由于攻击者可以通过强大的WebShell获取到网站服务器的管理权限,对企业的业务造成不可估量的损失。所以,WebShell的防护一直是WAF软件的核心功能,也是防护重点。
目前,传统的WAF软件主要通过定时或是由管理员手动对网站程序进行查杀的主动方式以及当请求者浏览该文件时由WAF软件被动的方式进行查杀。而查杀的原理主要是通过对目标文件的特征与网马规则库进行比对。这种查杀原理有它的局限性,攻击者可以利用脚本语言的特性对已被查杀出来的WebShell进行伪装成类似正常的页面程序从而避开WAF软件的查杀。
此时,WAF厂商只能不断的更新规则库来确保对各种变形的查杀。在这过程中,还面临一个问题,即新增加的规则如果过严则可能对正常的文件造成误判,而如果规则过松,则容易出现漏判。在这种情况下,WAF厂商出于无论如何都不能影响网站业务流程的原则一般都采用宽松规则,即宁可漏判也不产生误判。也就造成了传统WAF软件对WebShell防护效果不够理想的现状。
接下来以IIS容器为例进行分析一种更为理想的WebShell防护方案。
攻击者想要利用一个WebShell对网站进行攻击,需要经过哪些阶段或是哪些过程呢?
首先,攻击者需要将WebShell文件写入到目标服务器上。通常向网站程序写入一个WebShell的方式有以下三种方式:
1、利用数据库后门写入
2、利用网站程序本身提供的上传漏洞
3、利用WEB程序提供的PUT和MOVE方法
在这个阶段里,WAF软件可以针对这三种写入方式分别做不同的防护方法。
I、WAF软件可以通过对Cookie、Post、Url数据进行过滤,避免WEB程序植入并利用数据库后门进行写入文件。
II、在协议层对上传的文件类型进行过滤,避免脚本文件被上传至网站服务器上,此处可以采用上传文件类型的黑/白名单的方式进行限制。如果确实因为网站业务需求允许访问者上传脚本页面,则WAF软件在接收到上传的脚本页面时需要通知后台立即对该文件进行查杀。
III、在协议层对请求方法进行限制,通常WEB程序是不需要同时支持PUT和MOVE方法的。如果发现一个请求者通过PUT方法向网站服务器写入了一个文件,并用MOVE方法将其移动到另一个可执行目录下面,则基本上可以断定是一个攻击者进行上传WebShell的行为。
其次,攻击者需要能够请求到WebShell页面。当接收到一个页面请求时,WAF软件可以采用被动的方式,对目标文件进行查杀,如果查杀的结果是该页面为网马,则直接拦截,拒绝攻击者对该页面的请求。
接着,攻击者需要让被请求的WebShell页面得到执行。通常WebShell主要执行包括执行CMD命令,加载危险组件,执行危险函数等行为以实现其他更高权限的行为,在这个过程中,WAF软件可以观察IIS的行为,如果发现浏览者请求的目标页面存在这些类似的网马行为则可以采取直接拦截或是向网站管理人员发出告警,由管理人员决定是否需要做出进一步的防护措施。
最后一步,攻击者需要得到WebShell页面执行的结果。通常WebShell返回的内容包括命令执行功、服务器敏感资源信息等内容。WAF软件在这个阶段里对请求页面的返回内容进行过滤,发现可能是WebShell的返回内容时,可以及时向网站管理人员发出告警以决定下一次是否需要对该行为进行拦截
综上所述,理想的网马防护思路应该包括阻止WebShell写入、对访问者请求的目标页面进行查杀、分析目标页面的行为以及对页面返回内容进行过滤等四个阶段来进行全方位的防护。
优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!
优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、DIY体验、720全景展厅及3D虚拟仿真)、移动端应用(手机站、APP开发)、微信定制开发(微信官网、微信商城、企业微信)、微信小程序定制开发等一系列互联网应用服务。
责任编辑:优网科技
版权所有:http://www.uweb.net.cn (优网科技) 转载请注明出处