我看了 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
感觉很民科
|
5
tail2 OP @udev 本机我是用 tomcat 的过滤器拦截请求, 然后判断请求的网页是否被篡改, 恢复后再返回网页。
还有遍历文件夹, 循环判断每个文件是否被篡改。 |
7
tail2 OP @udev 那我用爬虫爬网页, 然后备份文件和摘要在本机, 然后隔一段时间判断爬取网页和本机的备份比较来判断是否被篡改呢?
|
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
|