Snuffleupagus是一款针对针对PHP 7和PHP 8+的安全模块,可以帮助广大研究人员通过封杀存在安全漏洞的整个类来大幅提高对网站的攻击成本。除此之外,它还提供了一个强大的虚拟补丁系统,允许管理员修复特定的漏洞以及审计可疑行为,而不必接触PHP代码。
无显著性能影响; 轻松编写虚拟补丁规则; 封杀存在漏洞的类:基于未序列化的代码执行、基于邮件的代码执行、Cookie窃取型XSS、基于文件上传的代码执行、弱伪随机数、XXE; 多种安全强化功能:自动设置secure和samesite等cookie标记、绑定多种规则来检测后渗透行为、全局限制模式和类型判断预防、流封装器白名单、预防可写文件执行、eval白名单/黑名单、使用curl时强制执行TLS证书验证等; 相对健全的代码库:复杂的测试用例接近100%覆盖率、clang-format代码风格、完整的参考文档;
广大研究人员可以点击https://snuffleupagus.readthedocs.io/download.html访问该工具的下载页面,并寻找对应操作系统版本的代码包。当然了,你也可以使用下列命令将该项目源码克隆至本地,或访问该项目的【Releases页面https://github.com/jvoisin/snuffleupagus/releases】:
git clone https://github.com/jvoisin/snuffleupagus.git
我们已经在项目代码种给大家提供了多种样例规则可供大家使用,比如说:
# 强化`chmod`函数
sp.disable_function.function("chmod").param("mode").value_r("^[0-9]{2}[67]$").drop();
# 缓解跟`system`相关的命令注入
sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();
一旦检测到了违反规则的行为,我们将会在日志中看到下列内容:
[snuffleupagus][0.0.0.0][disabled_function][drop] The execution has been aborted in /var/www/index.php:2, because the return value (0) of the function 'strpos' matched a rule.
Snuffleupagus:点击【阅读原文】即可获取