前言:
同事今天和我说,他现在的任务在做一个头疼的问题,说时尚了点,就是用自动化解脱心碎及放弃的处理故障的杂事,他这边刚入职,貌似是带领一帮小弟解决别人搞不定的问题,但是有些业务部够单纯,把事直接抛给我同事这边。。。 很无敌吧。
所以那,计划做一个自动化平台,可以去问题端去抓数据包,然后分析数据包,入库,邮件通知,使这些个流程用平台串联起来。
我这里就说下,我的解决思路和开发思路:
工具:
pcap dpkt saltsatck mysql tornado tcpdump
pcap 是用来抓包 (这个是tcpdump的一个库)
dpkt 是用来解析数据包的
celery 异步任务
实现两大功能,用户他自己抓包,然后上传到页面上,然后我后端解析后,返回结果。
用户在平台上提交问题服务器的ip,并选定测试类型,我这里会到服务端跑用python的pcap抓包并分析结果,把结果上报到平台。
关于自动抓包分析,以前和同事做过处理dns攻击的,方案流程和第三方的工具和我上述是一样的。
遇到攻击,会分析dns的攻击的特征,然后再黑洞系统注射特征码禁止。
需要注意的是,在抓数据的时候,可能会产生堵塞,尤其是pcap,dpkt这东西,需要在后台自己的玩。这个时候就需要用celery把抓包分析包的任务放在后台执行。 你要是觉得subprocess合理的话,也可以用用subprocess 的pipe的,但是个人觉得也是个办法 ,更简单的方法是用tcpdump -w 写到一个文件里面,然后用dpkt去解析,这样的话,也不用pcap去解析啦。