发明内容
本发明提供了一种木马病毒的阻止方法及装置,以至少解决现有技术中无法准确阻止未知的木马病毒的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种木马病毒的阻止方法。
根据本发明的木马病毒的阻止方法包括:防火墙获取访问控制列表,其中,访问控制列表中包括资源的名称;防火墙判断访问者的资源请求对应的资源的名称是否在访问控制列表中;以及当访问者的资源请求对应的资源的名称在访问控制列表中时,防火墙终止访问者与资源对应的服务器之间的连接。
进一步地,防火墙获取访问控制列表包括:防火墙获取第一访问控制列表,其中,第一访问控制列表中包括第一资源的名称,第一资源由管理员设置,防火墙判断访问者的资源请求对应的资源的名称是否在访问控制列表中包括:防火墙判断访问者请求访问的资源的名称是否在第一访问控制列表中。
进一步地,防火墙获取访问控制列表包括:防火墙获取第二访问控制列表,其中,第二访问控制列表中包括第二资源的名称,防火墙判断访问者的资源请求对应的资源的名称是否在访问控制列表中包括:防火墙判断访问者请求上传的资源的名称是否在第二访问控制列表中,当资源请求对应的资源的名称在访问控制列表中时,防火墙终止访问者与资源对应的服务器之间的连接包括:当访问者请求上传的资源的名称在第二访问控制列表中时,防火墙终止访问者与资源对应的服务器之间的连接。
进一步地,防火墙获取第二访问控制列表包括:防火墙判断访问者的资源请求对应的资源的名称是否在访问控制列表中包括:防火墙获取可执行文件资源的扩展名;防火墙确定包括扩展名的资源为第二资源;以及将第二资源所构成的访问控制列表作为第二访问控制列表并获取第二访问控制列表。
进一步地,在防火墙判断访问者请求上传的资源的名称是否在第二访问控制列表中之后,上述方法还包括:在访问者请求上传的资源的名称不在第二访问控制列表中的情况下,防火墙对服务器发送至访问者的资源进行语法分析以获取资源中的扩展名;判断扩展名对应的资源是否为第二资源;以及当资源为第二资源时,防火墙终止访问者与资源对应的服务器之间的连接。
为了实现上述目的,根据本发明的另一个方面,提供了一种木马病毒的阻止装置,该装置用于执行本发明提供的任意一种木马病毒的阻止方法。
根据本发明的另一方面,提供了一种木马病毒的阻止装置。该木马病毒的阻止装置包括:第一获取单元,用于获取访问控制列表,其中,访问控制列表中包括资源的名称;第一判断单元,用于判断访问者的资源请求对应的资源的名称是否在访问控制列表中;以及第一终止单元,用于当访问者的资源请求对应的资源的名称在访问控制列表中时,终止访问者与资源对应的服务器之间的连接。
进一步地,第一获取单元还用于获取第一访问控制列表,其中,第一访问控制列表中包括第一资源的名称,第一资源由管理员设置,第一判断单元还用于判断访问者请求访问的资源的名称是否在第一访问控制列表中。
进一步地,第一获取单元还用于获取第二访问控制列表,其中,第二访问控制列表中包括第二资源的名称,第一判断单元还用于判断访问者请求上传的资源的名称是否在第二访问控制列表中,第一终止单元还用于当访问者请求上传的资源的名称在第二访问控制列表中时,终止访问者与资源对应的服务器之间的连接。
进一步地,第一获取单元包括:第一获取子单元,用于获取可执行文件资源的扩展名;确定子单元,用于确定包括扩展名的资源为第二资源;以及第二获取子单元,用于将第二资源所构成的访问控制列表作为第二访问控制列表并获取第二访问控制列表。
进一步地,上述装置还包括:第二获取单元,用于在访问者请求上传的资源的名称不在第二访问控制列表中的情况下,对服务器发送至访问者的资源进行语法分析以获取资源中的扩展名;第二判断单元,用于判断扩展名对应的资源是否为第二资源;以及第二终止单元,用于当资源为第二资源时,防火墙终止访问者与资源对应的服务器之间的连接。
通过本发明,由于采用了访问控制列表,而访问控制列表的提供者具有辨别木马病毒的能力,通过判断资源请求对应的资源是否在访问控制列表中,可以确定是否终止访问者和服务器之间的连接,因此解决了现有技术中无法准确阻值未知的木马病毒的问题,进而达到了准确阻值未知的木马病毒的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提供了一种木马病毒的阻止装置,以下对本发明实施例所提供的木马病毒的阻止装置进行介绍。
图1是根据本发明实施例的木马病毒的阻止装置的结构框图。
如图1所示,该木马病毒的阻止装置包括第一获取单元11、第一判断单元12和第一终止单元13。
第一获取单元11用于获取访问控制列表,其中,访问控制列表中包括资源的名称。
访问控制列表用于指示防火墙在接收到哪些资源时允许通过,或者资源以什么方式被访问,在接收到哪些资源时需要断开服务器和客户端之间的连接。通过访问控制列表,可以准确对资源进行过滤。
第一判断单元12用于判断访问者的资源请求对应的资源的名称是否在访问控制列表中。
第一判断单元12的判断结果为第一终止单元13的工作提供了依据。
第一终止单元13用于当访问者的资源请求对应的资源的名称在访问控制列表中时,终止访问者与资源对应的服务器之间的连接。
在本实施例中,由于采用了访问控制列表,而访问控制列表的提供者具有辨别木马病毒的能力,通过判断资源请求对应的资源是否在访问控制列表中,可以确定是否终止访问者和服务器之间的连接,进而达到了准确阻值未知的木马病毒的效果。
作为一种优选的实施方式,控制访问列表可以用作限制访问者访问机密文件,优选地,第一获取单元11还用于获取第一访问控制列表,其中,第一访问控制列表中包括第一资源的名称,第一资源由管理员设置,第一资源是不允许外部访问者直接访问的资源,本实施例中的第一访问控制列表可以被称为DENY ACL。第一判断单元12还用于判断访问者请求访问的资源的名称是否在第一访问控制列表中,即,判断访问者请求访问的资源的名称是否在DENY ACL中。
作为另一种优选的实施方式,控制访问列表可以用作限制访问者上传资源,优选地,第一获取单元11还用于获取第二访问控制列表,其中,第二访问控制列表中包括第二资源的名称,本实施例中的第二资源可以是可执行文件资源,第二访问控制列表可以被称为STATIC ACL,第一判断单元12还用于判断访问者请求上传的资源的名称是否在第二访问控制列表中,即,判断访问者请求上传的资源的名称是否在STATICACL中。第一终止单元13还用于当访问者请求上传的资源的名称在第二访问控制列表中时,终止访问者与资源对应的服务器之间的连接。
具体的,可以通过资源的扩展名来判断该资源是否是可执行文件资源,优选地,第一获取单元11包括第一获取子单元、确定子单元和第二获取子单元,其中,第一获取子单元用于获取可执行文件资源的扩展名。确定子单元用于确定包括扩展名的资源为第二资源。第二获取子单元用于将第二资源所构成的访问控制列表作为第二访问控制列表并获取第二访问控制列表。如果是POST请求,即使文件的扩展名是.html,确定子单元也会确定该文件对应的资源为第二资源,另外在URI中包含问号“?”时,确定子单元也会确定从该地址引用的资源为第二资源。例如:GET/a.html?id=1。虽然文件名是以html结尾,但是仍然认为是第二资源,即可执行文件资源。
在另外一些情况下,防火墙还需要限制服务器向客户端发送的资源以减小木马病毒对浏览器的威胁,优选地,上述装置还包括第二获取单元、第二判断单元和第二终止单元,其中,第二获取单元,用于在访问者请求上传的资源的名称不在第二访问控制列表中的情况下,对服务器发送至访问者的资源进行语法分析以获取资源中的扩展名。第二判断单元,用于判断扩展名对应的资源是否为第二资源。第二终止单元,用于当资源为第二资源时,终止访问者与资源对应的服务器之间的连接。
本发明实施例还提供了一种木马病毒的阻止方法,该方法可以基于上述的木马病毒的阻止装置来执行。
图2是根据本发明实施例的木马病毒的阻止方法的流程图。
如图2所示,该木马病毒的阻止方法包括如下的步骤S202至步骤S206。
步骤S202,防火墙获取访问控制列表,其中,访问控制列表中包括资源的名称。
步骤S204,防火墙判断访问者的资源请求对应的资源的名称是否在访问控制列表中。
步骤S206,当访问者的资源请求对应的资源的名称在访问控制列表中时,防火墙终止访问者与资源对应的服务器之间的连接。
本实施例提供的木马病毒的阻止方法可以在多种环境中应用,例如用来限制访问者访问服务器中机密文件等内容。服务器的Web路径下,有一些资源是不允许外部访问者直接通过URL访问的。例如某些服务器内部调用的脚本、认证信息文件或者数据库文件等等。本实施例通取Web目录或文件的DENYACL,从而可以限制访问者的访问,例如内部调用的脚本,通常是一些拥有特权的脚本,由于这些脚本被设计成内部调用,因而里边通常缺少必要的过滤或者可能被不安全配置,过滤一般需要由脚本的调用者完成,也就是直接在处理访问者输入的那部分逻辑中进行,所以一旦这些脚本被恶意调用,必将造成严重的后果。
图3是根据本发明第一优选实施例的木马病毒的阻止方法的流程图。如图3所示,该方法包括如下的步骤S302至步骤S306。
步骤S302,防火墙获取第一访问控制列表,其中,第一访问控制列表中包括第一资源的名称,第一资源由管理员设置。
在本实施例中,第一访问控制列表可以被称为DENY ACL。
步骤S304,防火墙判断访问者请求访问的资源的名称是否在第一访问控制列表中。
当在客户端请求的URI中发现所请求的文件属于DENY ACL,则说明访问者正在试图访问某些机密文件。
步骤S306,当访问者的资源请求对应的资源的名称在访问控制列表(即第一访问控制列表)中时,防火墙终止访问者与资源对应的服务器之间的连接。
防火墙会对一类请求进行响应并报警,从而保证服务器不会收到违反DENYACL的HTTP请求。该响应可以是终止访问者与资源对应的服务器之间的连接。访问者试图通过调用配置了DENY ACL的特权脚本进行直接访问来挂马,就会被防火墙及时终止其与服务器的连接,从而减轻了挂马的可能,访问者对配置了DENY ACL的机密文件的直接访问,也会被防火墙拦截,从而减少了数据泄漏的风险。
本实施例提供的木马病毒的阻止方法还可以在限制访问者上传资源时应用,服务器允许访问者上传文件,通常专门划定一个专门的目录进行存储,服务器通常只允许上传静态内容(例如文档、图片等),而不允许上传动态内容,即包括可执行文件资源的内容。
图4是根据本发明第二优选实施例的木马病毒的阻止方法的流程图。如图4所示,该方法包括如下的步骤S402至步骤S406。
步骤S402,防火墙获取第二访问控制列表,其中,第二访问控制列表中包括第二资源的名称。
此时,可以对只允许存储静态文件的Web路径例如配置如下STATIC ACL:
/img STATIC-ACL
当访问者的请求到来时,例如:
/img/a.asp
/img/subdir/a.asp
/img/a.html?id=1
/img/a.dll?id=1
在本实施例中,URI中请求的路径均匹配了配置了STATIC ACL属性的路径/img,则开始进行进一步的具体检查。在这里需要注意的是,对于/img/subdir/a.asp,请求的是位于/img下的一个子目录subdir,也被视为命中/img。
防火墙获取第二访问控制列表可以分成三个步骤。
首先,防火墙获取可执行文件资源的扩展名。
防火墙在内部穷举了所有的可执行文件的扩展名,例如exe、dll、asp、jsp、py、pl、php、js、vbs等等几十种可执行扩展名,并制成可执行文件扩展名集合。
然后,防火墙确定包括扩展名的资源为第二资源。
通过本步骤,防火墙将所有带有以上拓展名的资源认作第二资源,即可执行文件资源。
最后,将第二资源所构成的访问控制列表作为第二访问控制列表并获取第二访问控制列表。
步骤S404,防火墙判断访问者请求上传的资源的名称是否在第二访问控制列表中。
如果请求的文件的扩展名命中的内置的可执行文件扩展名集合,即被认为请求的是一个可执行文件资源,即第二资源,这与/img配置的STATIC ACL不符。
对于没有命中可执行文件扩展名的请求,如果发现URI的文件名后带着问号,例如/img/a.html?id=1,即使a.html使用一个静态扩展名,也会被认为是一个可执行文件资源的上传请求。
步骤S406,当访问者请求上传的资源的名称在第二访问控制列表中时,防火墙终止访问者与资源对应的服务器之间的连接。
在这种情况下,防火墙会按照配置进行响应并记录日志,以保证服务器不会收到第二资源的上传请求,这里的响应可以是终止访问者与资源对应的服务器之间的连接。
在本实施例中还考虑如下的一种情况,假如下列代码出现在Web服务器上的某个页面/test.html代码中:
<link href=”/img/a.txt”type=”text/javascript”>
浏览器在收到这样的HTML标签后,会启动一次GET/img/a.txt的HTTP请求,但是当服务器将/img/a.txt返回给浏览器之后,浏览器并不会按照txt文件进行文本显示,而是会按照type=”text/javasript”的指示,当作Javascript脚本来执行。
此时,如果单看GET/img/a.txt这次请求,并不能知道它是不是会在浏览器上运行,这给攻击者进行客户端挂马提供了一种新的思路:
在可上传的目录中,上传一个修改了扩展名的Javascript脚本文件。
只要有办法修改Web服务器上的某一个页面代码(例如上例中的/test.html),嵌入形如上文的示例代码,即可以完成挂马。访问者一旦点击了挂马页面(例如/test.html),恶意代码就会被浏览器自动下载并在浏览器上执行。
因此,本实施例还可以通过对服务器返回页面进行智能分析,来限制服务器将第二资源发送给客户端。即,在步骤S406之后,还可以包括以下三个步骤:
首先,在访问者请求上传的资源的名称不在第二访问控制列表中的情况下,防火墙对服务器发送至访问者的资源进行语法分析以获取资源中的扩展名。
然后,判断扩展名对应的资源是否为第二资源。
最后,当资源为第二资源时,防火墙终止访问者与资源对应的服务器之间的连接。
访问者访问/test.html的时候,防火墙获取服务器的应答页面,通过HTML语法分析器和CSS语法分析器,把返回页面中的HTML和CSS内容进行语法分析,并把分析后的内容还原成HTML/CSS语法树。
经过语法分析之后,防火墙获取了所有需要使用可执行文件作为标签属性的HTML标签,例如<link>、<form>、<script>、<applet>、<object>等等,并对语法分析得到文件路径进行检查,检查过程与步骤S402相同。一旦发现违反了STATIC ACL则立刻按照配置进行行为响应和报警,例如,终止访问者与资源对应的服务器之间的连接,不会把当前浏览的页面内容(例如上例中/test.html的返回内容)发送到客户端,同时,还可以把被挂马的URL加入防火墙的URL黑名单列表,后续的用户对该URL的访问都将被禁止。
例如,上例中,经过语法分析,发现了<link href=”/img/a.txt”type=”text/javascript”>。此时可以看到,type指示href是一个可以执行的路径。即提取到的/img/a.txt在STATICACL中,这就说明/img/a.txt会按照代码的方式在客户端解释执行,因此防火墙会终止访问者与资源对应的服务器之间的连接。此时,即使访问者成功上传了包含恶意代码的文件,例如/img/a.txt,并篡改了/test.html页面,/img目录的STATIC ACL,也能够保证/img/a.txt不可能在客户端浏览器上被执行。
在另外一些情况中,防火墙也可以仅仅报警,而不阻断连接。防火墙的每一次行为都会被记录,供管理员进行数据分析。
从以上的描述中,可以看出,本发明实现了如下技术效果:
(1)DENY ACL能够降低服务器被挂马的可能,并减小信息泄漏的威胁。
(2)STATIC ACL在保证业务畅通的前提下,能够降低恶意文件上传带来的挂马威胁,保证不管是服务器木马还是客户端木马,即使被上传到服务器也不可能得到执行。
(3)本实施例可以提供能详细的行为说明,本实施例中的行为可以分两种:仅仅报警,不阻断连接;或者报警并阻断连接,同时把被挂马的URL加入防火墙的URL黑名单列表,后续的用户对该URL的访问都将被禁止。通过对行为的说明,可以有效帮助管理员进行数据分析。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。