重大突破:机器学习进军webshell识别

黑产利器webshell

说起webshell,圈内人都会心一笑,是大家公认的黑产利器。通常webshell被站长用于网站管理、服务器管理等,而黑客获得web漏洞之后,通过上传webshell,获取服务器的操作权限,危害极大。由于webshell操作不会在系统安全日志中留下记录,并且与正常网页文件混在一起,一般管理员很难看出入侵痕迹。

在黑产市场巨大的利益驱动下,中小企业,高校单位,技术能力较弱的公司经常遭受webshell攻击。而传统的检测方法很难做到准确查杀,所谓道高一尺,魔高一丈。在这场博弈中, 检测技术不断升级。但互联网上几乎没有一款较好的webshell检测工具。一些技术能力较强的互联网公司应该做得还是不错的,如BAT,因为他们有海量的数据,基于大数据和机器学习的安全威胁情报分析使得他们在这方面的检测有天生的优势,但是他们并没有开放他们的产品,在安全行业上的贡献和帮助并不大。

作为安全领域的领军团队,北京网思科平科技有限公司(OneScorpion)自告奋勇,主动承担起识别黑产利器webshell的重担。

常规检测方法

在长期黑客攻防战斗中,安全人员积累了大量的攻防经验,并开发了相关检测工具。业内常见的检测方法有:静态检测、动态检测、日志检测、语法检测、统计学检测等。

静态检测:通过匹配特征码、特征码、危险函数来查找已知的webshell。该方法误报率和漏报率比较高,如果完善规则,可以减低误报率,但是漏报率必定会有所提高。

动态检测:基于HTTP的异常检测,检测webshell执行过程中表现出来的特征。比如检测有人访问的了一个从未访问过的文件,并返回200,则很容易定位到webshell。该方法缺点明显,黑客只要利用原文件就很轻易绕过。

日志检测:通过大量的日志文件建立请求模型,从而检测出异常文件。比如平时是GET请求,突然有POST请求并且返回代码为200;某个页面的访问者IP具有一定的规律等。该方法采用一定的数据分析方法,访问量达到一定量级有较大的参考价值,但是存在一定的误报,对于大量访问的日志,处理能力和处理效率会比较低。

语义检测:根据PHP语言扫描编译的实现方式,进行剥离代码、注释,分析变量、函数、字符串、语言结构的分析方式,来实现关键危险函数的捕捉。该方法能够有效解决漏报情况,但是误报问题较大。

统计学检测:webshell往往经过编码和加密,表现出一定的统计特征。信息熵:通过使用ASCII码表来衡量文件的不确定性;最长单词:最长的字符串也许是潜在的被编码或被混淆;重合指数:低重合指数预示文件代码潜在的被加密或被混淆过;特征:在文件中搜索已知的恶意代码字符串片段;压缩:对比文件的压缩比。基于统计学检测方法是业内较为常用的方式。

全新网蝎机器学习引擎

网思科平大数据团队新近开发推出的网蝎机器学习引擎工具,将传统检测方法和机器学习方式相结合,创新webshell检测方式。在内部测试中,对webshell样本检测准确率达到99%以上,漏报率和误报率均优于市面上所有检测工。

在某次真实环境测试中,国内某大客户邀请安全厂商进行webshell检测测试,针对客户提出的14个高难度检测样本,网蝎机器学习引擎工具交出了一份满分答卷,其检测精度达到100%。

以上统计可以看出,在本次某大客户提供的高难度检测样本中,厂商A工具漏报率和误报率分别为12.5%和16.7%;厂商B工具误报率高达50%,而网蝎机器学习引擎工具准确率则达到完美的100%,完胜其他安全厂商。

网思科平将把在webshell检测上的成果,积极用于我们的客户,帮助我们的客户更好的应对webshell的攻击困扰。更进一步,其他攻击类型的机器学习算法检测模型我们将陆续集成在公司的安全产品中。并在时机成熟时,开放开源我们的技术。

在最近人工智能席卷科技行业的浪潮下,网思科平将积极把安全信息行业的解决方案结合人工智能的手段重新审视和构建。我们坚持认为,安全信息行业的未来在大数据,在机器学习,在人工智能。