Linux下的防篡改技巧-2
Auth: winger@gnusec
今天介绍LINUX下的WEB防篡改技巧
WEB防篡改
上一篇我们介绍了简单的文件反篡改方法.
今天就介绍另一款”亡羊补牢”型的WEB防篡改系统: SEnignx. 作为为数不多的一个国人开源安全项目, 虽然跟新速度不是很快, 不过项目中的安全思路还是非常值得借鉴的. 再次感谢他们的开源精神^_^.
为什么叫”亡羊补牢”? 因为这是一种曲线救国式的安全策略(发生在恶意篡改之后). 很多时候, 我们无法保证文件系统一直是安全的, 因为它总有可能被攻破. 而这时候, 就结束了吗? 答案是否定的. 我们还有”最后一公里”.
在服务器到用户之间这段数据旅程里, 我们还是有机会反败为胜的.
如果文件被改变了, 我们只要不解析它, 不就可以了吗?
简单的WEB动态反篡改系统原理图:
SEnginx
项目 | SEnginx |
---|---|
主页 | http://www.senginx.org |
简介 | SEnginx是由东软集团网络安全事业部发起的开源项目, SEnginx为Security Enhanced nginx之意。SEnginx是在原始的nginx的基础上,整合了多种负载均衡和安全类别的第三方模块,以及东软安全为nginx开发的若干模块,主要在Web安全方面和负载均衡方面进行了功能增强。SEnginx的侧重点在于HTTP的反向代理和Web安全功能,我们致力于把SEnginx打造成一个稳定、高效的带安全防御功能的Web应用交付开源软件。同时我们欢迎大家参与SEnginx的开发,为互联网安全贡献力量。 |
SEnginx的安装和原始nginx类似,只不过需要使用se-configure.sh脚本来生成Makefile。
se-configure.sh脚本可以接受原始的nginx configure.sh参数。
1 | [root@]./se-configure.sh --prefix=/path/to/some/where |
将所有网站代码拷贝到备份目录 recover
.
为所有网站代码生成hash校验库.
修改senginx配置文件(这里是/usr/local/nginx/conf/nginx.conf), 开启防篡改功能.
窜改主页前. 一切正常.
窜改主页后, 发现告警日志记录. 访问被篡改页面, 返回403
禁止访问提示.
接着继续修改配置文件, 开启恢复模式, 保证篡改网页后, 服务器依然能返回篡改之前的页面内容.
再次篡改主页, 继续发现告警记录. 访问被篡改页面, 返回篡改前的内容.
至此, WEB防篡改系统已经搭建完成. 更多的自定义参数和功能请参考SEnginx官网文档.