机器学习&webshell检测

目前在实习中 平时也想整点花活 比如

image-20230226124713488

当然不是 哈哈

这篇文章源于面试时 被问到的几个问题

平时有没有做过一些ai和web相结合的尝试 比如webshell检测

如果让你进行webshell检测 你会怎么做 从NLP方面

说一些简单的NLP算法

如何从特征工程上进行webshell的检测

ok 来次够

首先想要学习 肯定要整点资源

1
2
3
https://cloud.tencent.com/developer/article/2145902
https://github.com/inspiringz/XDet
https://security.tencent.com/index.php/blog/msg/152

学习笔记

今天在路上 同事Jiang少送我回公寓 我简单咨询了一下waf方面的问题 突然想到之前看的一个腾讯的视频收益很深 这里重新看一遍 记记笔记

首先,谈到的是webshell的数量 根据腾讯云的统计

最多的还是php 73%,然后才是jsp 15% , 然后asp 4%

传统检测方案

  • 规则特征 php脚本无需编译,容易不断修改绕过特征
  • 机器学习 线上误报不可控,对抗难度低
  • 情报云查 检测能力滞后,脚本变化容易

提出腾讯自己的tav模型

静态分析+虚拟执行+动态分析

  1. 静态污点分析 (代码词法语法解析,转化为IR,静态污点分析
  2. 虚拟执行 (实现php代码虚拟执行,还原混淆代码,脱壳解密
  3. 动态污点分析 (虚拟执行,动态污点技术,将类RASP带入污点扫描
image-20230228001241925

这块可能涉及到编译原理 俺妹学过 寄

image-20230228001704913

他说他能实现毫秒级的检测

image-20230228003111332 image-20230228003309209

总的

image-20230228005515143

静态污点分析?

慢慢搞 别把自己累死了

基于opcode的php webshell检测

OPCode -> N-Gram -> TF-IDF -> XGBoost

提取opcode之前的小尝试

先拉个数据集来

ok 拉来了 随便看看

想现像检验流量攻击那样比较直接地检验试一试

https://github.com/b1ue0ceanRun/AI_Sec_test/blob/main/rec_0.ipynb

好像害行???

提取opcode之后的小尝试

提取opcode 跟着这篇文章走[初探机器学习检测 PHP Webshell (seebug.org)](https://paper.seebug.org/526/#:~:text=def load_php_opcode(phpfilename)%3A “”” 获取php opcode 信息 %3Aparam phpfilename%3A,” “.join(tokens) return t except%3A return “ “)

这里我们用一手 php5.6.9

https://windows.php.net/downloads/pecl/releases/vld/0.12.0/

一行内容

1
extension=php_vld.dll

image-20230324012546417

跑得好慢 睡了