我看了 12 年的一个硕士论文, 照着论文大概实现了一下, 只能对本机的网页实现防篡改。
老师给了我三个增加难度的方向。
1.把 watchdog 的源码看懂, 然后把源代码自己实现一遍。
2.在对本机网页防篡改的基础上, 实现对其它服务器的防篡改。
3.处理高并发的情况。
这里面最简单的应该是第二个了, 但是我有个疑问, 我要是对其它服务器上的网页实现防篡改, 我肯定得先用爬虫把人家的网页爬下来做一个备份, 然后不断监测人家的网页是否被篡改, 如果篡改再报警或者恢复。
那我如何恢复别的服务器上的网页呢? 求大佬指点~~~
1 udev 2019-04-25 17:46:40 +08:00 本机你是文件驱动过滤么?别人机器如果不装插件( HOOK )是没法恢复的,只能用 WAF 的思路,反向代理,你在中间缓存,做 DOM 节点的防篡改监视以及恢复,发现修改后,直接返回你混存的给访客,以我们生产标准看,其实也不容易了,能写好就是一个产品了。 |
2 0ZXYDDu796nVCFxq 2019-04-25 17:53:04 +08:00 |
3 udev 2019-04-25 17:58:22 +08:00 @gstqc 你说的是怎么判定是否修改这个策略,业内都是基于规则的,所以分静态 /动态 /数据库,专业的文件防篡改基本都是驱动级,监视读写动作,然后对比,告警,恢复。 |
![]() | 4 reus 2019-04-25 18:05:16 +08:00 ![]() 感觉很民科 |
5 tail2 OP @udev 本机我是用 tomcat 的过滤器拦截请求, 然后判断请求的网页是否被篡改, 恢复后再返回网页。 还有遍历文件夹, 循环判断每个文件是否被篡改。 |
![]() | 8 singerll 2019-04-25 19:17:58 +08:00 via Android 目录遍历也会被定义为一种攻击 |
10 0ZXYDDu796nVCFxq 2019-04-25 20:03:21 +08:00 via Android @tail2 #7 肯定不行的,动态网页是没法爬的 |
![]() | 12 singerll 2019-04-25 20:17:12 +08:00 via Android @tail2 我也不怎么了解,原来项目上用过一套防篡改系统,大概就是需要部署客户端,文件的修改需要先修改防篡改策略 |
14 liang7878 2019-04-25 20:28:37 +08:00 你这个思路是有点简单啊,简单的意思是,你说一遍,人家看一遍就懂了,真的太简单了。。想办法搞复杂一点,弄一些 fancy 的名词包装一下。 |
15 tail2 OP @liang7878 看的论文是 12 年的,,, 以前看的论文比较新, 要用服务器底层编程根本不懂,就照着 12 年的做了, 老师说这个放几年前还行 |
16 xenme 2019-04-25 21:36:05 +08:00 via iPhone 看到这里还没搞明白。 本机就是个文件监视器?远程怎么监视? |
18 liang7878 2019-04-26 00:05:54 +08:00 @tail2 #15 这个方法有点 naive,看你怎么包装了,验证的话如果你能够扯上区块链的话可能你们老师会觉得比较牛逼,毕竟目前做验证用区块链显得很有噱头。 |
![]() | 19 autogen 2019-04-26 00:29:14 +08:00 楼主你自己的想法是想做一个抢票 App 吗 |
20 rubycedar 2019-04-26 00:37:09 +08:00 via iPhone 楼主可能需要先 getshell 一下 |
![]() | 21 autogen 2019-04-26 00:38:55 +08:00 楼主没说明白, 是想对自己网站防篡改,还是想监控别人网站修改? 是想对网站源码防篡改,还是想对数据库防篡改? 是想对 HTML/CSS/JS 防篡改,还是 PHP,还是 VBS,还是 JSP,还是 CLASS,还是 EXE ? - |
![]() | 22 whoami9894 2019-04-26 00:59:59 +08:00 via Android 没看懂防篡改到底要干嘛,防存储 XSS 插入恶意前端代码?防上传后端可执行代码?还是防 mitm 导致客户端拿到的代码被篡改? 而且 watchdog 貌似就是监控目录下文件变动吧,所以就是我说的第二种。。感觉意义不大。。。而且监控其他服务器的 web 目录要先有权限吧,那到头来还是和本机没啥区别 |
23 qianmeng 2019-04-26 06:00:37 +08:00 via Android 你这个思路不太对吧,对其他服务器防篡改,应该拥有这些服务器的管理权限,直接安装防护软件,控制端放在本地机器,这样才合理,否则人家的服务器你都没权限,你防篡改有什么意义?那不是越权了吗? 参考一下云锁和 ga01,现在流行的是防护端,云平台,还有一个和云平台结合的管理端。 防篡改主要是看看服务器上的网页文件有没有什么改动,有改动的话,把原来的文件留下一个版本记录备份,分析新文件里面有没有什么问题。目录遍历查看修改时间然后标记什么的 |
24 zwh2698 2019-04-26 07:05:31 +08:00 via Android 你不是本地都实现了监控么,那么把本地这个功能做成客户端和服务器模式。用户的网站需要安装客户端,变化通知服务器,服务器下决策。恢复的内容放在另一个服务器上。基本上论文就能过了 |
25 wangxiaoaer 2019-04-26 09:07:47 +08:00 @tail2 #5 第一次看到,首先你这是检测更新不是检测篡改,其次你自己的过滤器被篡改了咋办? |
![]() | 26 stephenliubp 2019-04-26 11:16:03 +08:00 看看这个反爬虫技术方案:github.com/ FantasticLBP/ Anti-WebSpider |