Webshell检测思路

0x01 关于Webshell

Web shell是基于Web的应用程序,它为恶意攻击者提供了与系统交互的能力(从文件访问和上传到在被攻击的服务器上执行任意代码的能力)。 它们是用各种脚本语言编写的,包括PHP,ASP,Java和JavaScript。 一旦他们进入你的系统,攻击者就可以使用它们来窃取数据或证书,访问网络中更重要的服务器,或作为上传更危险和广泛的恶意软件的渠道。
除此之外,由于中间件的或者
java字节码马(类似的还有PHP7中的OPCache) php不死马

0x02 检测手段

静态检测(文件内容

文本内容

敏感函数中外来数据输入输出安全流程标志检测
……大体上从函数调用到里面使用的参数
文件内敏感内容不一定是做简单的规则正则匹配,而是可以作为一个rulelist,某类规则下所有条件均满足时才判断为webshell,可能会存在漏报,但是可以大大减少误报,而匹配模式也不仅可以是字符串,还可以是一类正则表达式

动态检测

文件行为

非文件生成环境下生成的文件
hook函数调用 通过对函数调用原始内容数据进行判断
检测到函数的调用源文件内却没有相关函数
检测文件进程所属者
起一个蜜罐PHP引擎来跑?

系统行为

敏感操作来源,判断其执行者
通过文件修改监测信号来对某文件进行shell扫描操作(比如linux下系统审计audit那个

异常流量

参数内容如果采用编码如何考虑??

Webshell被上传的流量

post参数,命名模式

Webshell被使用的流量

#分割参数名称和参数内容,对敏感性常见函数和敏感常用参数名&&参数内容做词法分析进行一个威胁程度的打分

检测需要确定的问题

对于被动检测来说

改动文件点,需要白名单吗?

对于主动检测来说

文件检查时间间隔,目录扫描深度,最大扫描文件大小,最大正则式扫描文件大小

题外话 根据webshell的一些特性来定位

文件名特性和参数特性 file shell
内容中常见敏感参数,且数据源不可靠
明显的加密过的很长很长的字符串
通过新增的脚本文件的时间来查看
不常使用的进程和连接
查看配置文件,如.htaccess
不死马的清除,运用中间件权限结束掉中间件下的所有在跑的进程,,等于重启,但是又不影响页面的内容和访问性,但是要考虑到服务的并发,在awd对抗以外采用这种办法应该不是很靠谱,而且可能存在保护进程哦


发表评论 暂无评论

*