这次小编给大家整理了浅谈变形PHP WEBSHELL检测,本文共3篇,供大家阅读参考,也相信能帮助到您。
篇1:浅谈变形PHP WEBSHELL检测
一、变形webshell
webshell比如eval($_POST[])大家都耳熟能详,近几年在常见的webshell基础上衍生了很多变种,加大了检测难度,下面先看几个从网上摘取的样本:
1、无ascii码和数字的webshell
2、隐藏关键字
3、编码 + 隐藏关键字
从目前已经公开的样本来看,变形的php webshell都是采取了隐藏关键字(eval、system等)的方法来躲避查杀,
浅谈变形PHP WEBSHELL检测
,
有一位monyer同学写过一篇webshell的检测文章,他把webshell拆分为下面的结构,执行数据和数据传递,检测思路是:以小括号为界限,匹配执行数据部分是否命中收集的样本的关键字。这种思路很好,个人觉得有两处不足:
1、需要人工维护收集新样本。
2、误报量不可预估。
再看这个结构,变形的webshell无非是隐藏了执行数据部分或者数据传递部分,不过无论怎么变形本质上还是去调用eval、调用system、exec等命令执行函数,杀毒软件通过异常行为来检测木马病毒,比如开机自启动,这种思想同样也可以用在webshell的检测中。获取行为数据是第一步。
篇2:浅谈变形PHP WEBSHELL检测WEB安全
一、变形webshell
webshell比如eval($_POST[])大家都耳熟能详,近几年在常见的webshell基础上衍生了很多变种,加大了检测难度,下面先看几个从网上摘取的样本:
1、无ascii码和数字的webshell
2、隐藏关键字
3、编码 + 隐藏关键字
从目前已经公开的样本来看,变形的php webshell都是采取了隐藏关键字(eval、system等)的方法来躲避查杀,有一位monyer同学写过一篇webshell的检测文章,他把webshell拆分为下面的结构,执行数据和数据传递,检测思路是:以小括号为界限,匹配执行数据部分是否命中收集的样本的关键字。这种思路很好,个人觉得有两处不足:
1、需要人工维护收集新样本。
2、误报量不可预估。
再看这个结构,变形的webshell无非是隐藏了执行数据部分或者数据传递部分,不过无论怎么变形本质上还是去调用eval、调用system、exec等命令执行函数,杀毒软件通过异常行为来检测木马病毒,比如开机自启动,这种思想同样也可以用在webshell的检测中。获取行为数据是第一步。
二、PHP HOOK
这里我们只需要一些敏感的行为数据,比如eval、system的调用。实现方法很简单,hook这些php函数或语法结构,这里通过php扩展来实现hook。下面以eval和system来简要概述下hook的方法。
Eval是一个语法结构,调用eval最终会调用php内核的zend_compile_string函数,hook eval的只需要重写zend_complie_string函数即可,流程如下:
System是php的一个内部函数,php代码是转化为opcode(指令)来执行,函数调用的指令是ZEND_DO_FCALL,风雪之隅大牛在taint扩展(详见参考二)就是通过重载ZEND_DO_FCALL的方法实现了。因为我们并不需要hook每个内部函数,所以这里介绍另外一种方法,流程如下:
上报的数据写在一个日志文件中,包括文件名、调用函数名、代码在文件的行数,
日志结构和内容如下:
附件中有eval、system函数hook实现的demo,具体细节可以查看代码。demo只在php-5.3.6上测试过,不兼容之处忘见谅。
三、检测
变形webshell分为两大类,下面依次说明一下检测逻辑。
1、执行数据隐藏
一个正常的程序员如果使用eval、system是不会刻意的转换隐藏的,如果发现某个函数执行了,代码中却找不到这个函数名,我们认为这是一个异常行为。以下面这个变形为例
比如 传入参数nonalpha.php?_=system&__=whoami执行了一条命令,日志会记录
我们在后端取nonalpha.php文件的第7行内容匹配system(字符串,如果没找到,则认为是一个变形webshell。
2、数据传递隐藏
先看下面这个例子
这个webshell通过编码的referer来传递攻击载荷,利用日志文件记录到的文件名和行数把代码上报到后端,和后端svn中的代码做对比,如果不一致,则认为是一个webshell。
四、不足
web承受着大量的访问请求,增加的php扩展的性能和稳定性是一个严峻的考验,另外在服务器比较多的公司还存在一个推广和部署成本。
五、参考:
[1] hi.baidu.com/monyer/item/a218dbadf2afc7a828ce9d63
[2] www.laruence.com//02/18/2560.html
[3]www.80vul.com/webzine_0x05/0x07%20%E6%B5%85%E8%B0%88%E4%BB%8EPHP%E5%86%85%E6%A0%B8%E5%B1%82%E9%9D%A2%E9%98%B2%E8%8C%83PHP%20WebShell.html
附件:check_webshell_demo.7z
篇3:梁变形检测的一维数字图像相关法
梁变形检测的一维数字图像相关法
分别选择参考图像和变形图像中跨过指定边缘的线段,对两幅图像的这种线段进行一维相关运算以识别边缘的变形(简称一维DIC法).与面检测的二维DIC法相比,计算量小很多.根据生成图像的.研究表明:一维DIC法进行边缘变形识别的误差小于0.05像素.简支梁模型试验表明:边缘变形识别的误差小于0.1像素,700万像素相机检测1.7 m长梁的变形精度可达到0.05 mm.一维DIC法的主要优点是计算量小,适合于海量数据处理的动态检测,主要缺点是变形前后图像边缘的错位对识别精度的影响不易处理,难以达到二维DIC法和一些高精度边缘检测方法的检测精度.
作 者:袁向荣 YUAN Xiang-rong 作者单位:广州大学土木工程学院,广东,广州,510006 刊 名:广州大学学报(自然科学版) 英文刊名:JOURNAL OF GUANGZHOU UNIVERSITY(NATURAL SCIENCE EDITION) 年,卷(期):2010 9(1) 分类号:U441 TP391 关键词:一维数字图像相关 边缘检测 结构变形检测文档为doc格式