企业网络安全之检测 webshell

2019 年 5 月 31 日 计算机与网络安全

一次性付费进群,长期免费索取教程,没有费教程。

教程列表见微信公众号底部菜单

微信群回复公众号:微信群QQ群460500587



微信公众号:计算机与网络安全

ID:Computer-network

互联网公司Web类的应用服务占较大比例,在此攻击面上的攻防入侵场景中占比非常高,几乎Web安全成了攻防对抗的代名词。而在Web入侵中最重要的一个环节就是“getshell”,也就是放置Web后门webshell。那么Web安全能力中一个最重要的指标就是webshell检测能力。以至于很多中小型安全产品,从诞生之初就以webshell检测能力作为核心任务。


webshell通常是一个文件,那么静态文件的扫描检测是常见做法,但由于攻防技术的对抗发展,静态文件的变形越来越多,已不足以满足检出率要求,于是出现了流量检测、运行时检测等方案。


1、静态检测


静态文件检测是常规做法,在Linux系统里,一个webshell检测模块运作流程如图1所示。

图1  webshell检测模块运作流程

文件静态扫描基于黑名单特征字符串,以及几个“高危函数”出现概率的组合,通常一个业务CGI文件,几乎不可能存在文件读写、命令执行、代码执行、DB操作文件上传几类函数同时出现的情况。


对于只会使用工具的普通scriptkids来说,静态检测已经够用,但对稍微经验老道些的攻击者就力不从心了。特别是php webshell,由于php语法变化多端,变形webshell检测难度极大。


tiny php shell一句话webshell:http://h.ackack.net/tiny-php-shell.html<?=($_=@$_GET[2]).@$_($_GET[1])?>


Non alphanumeric webshell不含alpha字符的webshell:http://www.thespanner.co.uk/2011/09/22/non-alphanumeric-code-in-php/<?$_="";$_[+""]='';$_="$_"."";$_=($_[+""]|"").($_[+""]|"").($_[+""]^"");?>


从代码上看,特征字符串方式的检测真的是绝望了。于是乎也有从统计学角度的检测方案,同样观察上述代码,不难发现特殊字符的出现比例明显过大,同时根据对自身业务代码计算信息熵,必定能区别恶意代码。

或许上述有些过于学院派,大家未必能有直观的理解。根据实践来看,在大型互联网企业中,由于各业务部门代码风格多变,特别是汉字在代码中对信息熵的采集比对分析影响特别大,不是特别推荐。那么还有没有其他“简单粗暴”的方案呢?答案是肯定的!


安全圈往往会流传这样的一段话,“三分技术,七分管理”,虽然不能简单苟同,但是技术结合“管理”手段,确实能带来事半功倍的效果。一个攻击者写入的webshell和业务CGI文件其实有太多的不同,假设您的企业有严格的发布管理流程、运维治理环境的话,好坏CGI文件的辨别更是轻而易举。这里列举可使用的维度。


表1列举了常见可利用的业务特点,其实当您分析清楚业务环节的特点之后,可以指定出更多的检测维度。

表1  可用维度

我们的webshell检测流程如图2所示。

图2  webshell检测流程改进

2、流量监测


本地静态扫描方法至少需要一部分开发工作量,如果仅有accesslog可以用,或者能够获取到网络流量的时候,从http请求记录中也可以挖掘可能存在的webshell,以及webshell攻击行为。


对于一些常见的webshell来说,对于webshellhttp请求应该是固定的,包括“cookie”,post data,功能函数参数等等,如图3所示。

图3  webshell请求特征(cookie&post data)

这些细节,对于scriptkids来说不会想到甚至没有能力去修改,对于检测常见webshell非常好用。


如果有一定CGI代码开发能力的攻击者,从静态代码和http请求特征检测就不那么好使了。解决这个问题之前,首先回顾一下入侵场景。


如图4所示,从用户对网站的访问行为以及记录上看和攻击者是有明显区别的,表2逐一列举。

图4  正常和异常URL访问行为差异

表2  观察结果

根据上述各维度的对比不难看出黑客webshell URL访问行为和正常的用户对网站业务CGI访问的区别非常大。对此类检测方案有一个webserver日志分析脚本https://github.com/xti9er/LogForensics/blob/master/LogForensics.pl,利用此日志分析脚本,从大量用户访问中抓取可疑的记录,并根据第一次抓取的特征IP或URL继续跟进,抓出可能的webshell和攻击请求流量。流量分析挖掘异常攻击请求如下所示:

微信公众号:计算机与网络安全

ID:Computer-network

【推荐书籍】
登录查看更多
1

相关内容

【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
最新《Deepfakes:创造与检测》2020综述论文,36页pdf
专知会员服务
62+阅读 · 2020年5月15日
简明扼要!Python教程手册,206页pdf
专知会员服务
46+阅读 · 2020年3月24日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
机器学习速查手册,135页pdf
专知会员服务
336+阅读 · 2020年3月15日
《人工智能2020:落地挑战与应对 》56页pdf
专知会员服务
195+阅读 · 2020年3月8日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
新书《面向机器学习和数据分析的特征工程》,419页pdf
专知会员服务
140+阅读 · 2019年10月10日
大数据安全技术浅析
计算机与网络安全
14+阅读 · 2019年4月24日
ZigBee 网络安全攻防
计算机与网络安全
13+阅读 · 2019年4月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
网络安全态势感知
计算机与网络安全
25+阅读 · 2018年10月14日
干货|用机器学习检测异常点击流
全球人工智能
6+阅读 · 2017年7月30日
一个人的企业安全建设之路
FreeBuf
5+阅读 · 2017年7月7日
Generative Adversarial Networks: A Survey and Taxonomy
Arxiv
4+阅读 · 2018年11月6日
Deep Learning for Generic Object Detection: A Survey
Arxiv
13+阅读 · 2018年9月6日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
6+阅读 · 2018年4月23日
Arxiv
4+阅读 · 2018年1月19日
VIP会员
相关VIP内容
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
最新《Deepfakes:创造与检测》2020综述论文,36页pdf
专知会员服务
62+阅读 · 2020年5月15日
简明扼要!Python教程手册,206页pdf
专知会员服务
46+阅读 · 2020年3月24日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
机器学习速查手册,135页pdf
专知会员服务
336+阅读 · 2020年3月15日
《人工智能2020:落地挑战与应对 》56页pdf
专知会员服务
195+阅读 · 2020年3月8日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
新书《面向机器学习和数据分析的特征工程》,419页pdf
专知会员服务
140+阅读 · 2019年10月10日
相关资讯
大数据安全技术浅析
计算机与网络安全
14+阅读 · 2019年4月24日
ZigBee 网络安全攻防
计算机与网络安全
13+阅读 · 2019年4月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
网络安全态势感知
计算机与网络安全
25+阅读 · 2018年10月14日
干货|用机器学习检测异常点击流
全球人工智能
6+阅读 · 2017年7月30日
一个人的企业安全建设之路
FreeBuf
5+阅读 · 2017年7月7日
相关论文
Generative Adversarial Networks: A Survey and Taxonomy
Arxiv
4+阅读 · 2018年11月6日
Deep Learning for Generic Object Detection: A Survey
Arxiv
13+阅读 · 2018年9月6日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
6+阅读 · 2018年4月23日
Arxiv
4+阅读 · 2018年1月19日
Top
微信扫码咨询专知VIP会员