我在江北用pythonj脚本提取扫描IIS的字典关键词
我真的见识了什么叫压缩,22M文本解压后是560M。
==================================================
500wM的大数据,这个怎么处理呢,用我的V1.0很明显就不行啊,光跑个TopN_IP就得半天。
只能推翻1.0,重新架构2.0了。
一.想法1.跑出频率最高的TopN_IP(1)把这个大文件分为n份,因为是500M,我觉得分成100+份,每一份是5M,也就是5242880。
(2)开n个线程跑出各自的TopN_IP,然后写到文件b中
Ps:尼玛啊,追加文件不是神马“w+”,而是“a”啊!!!Ps:尼玛啊,out_of_memory啊。。。内存不够用啊。。。
实验证明:当线程数达到40就会:java.lang.OutOfMemoryError: Java heap space,内存不够用!!所以只能开30个线程,然后分成4次去跑脚本了,为了能够分四次,还新加了些变量如fcnt,cnt等
(3)对b中文件再一次进行排序,把最终的TopN_IP写到文件c中
至此我们通过半自动化的脚本得到了我们要的前10个IP,这些IP在这段时间内的访问量特别惊人,那么就不怪我们把这些IP当成扫描器了!
二.想法之后的实践--获取TOP10_IP的字典初步就是把日志过了一遍,然后把有TOP10_IP的log给提取出字典:/css/style.css/yszgks/style-ks.css/images/banner.gif/images/pic-wsbm.gif/images/body-bg.gif/images/pic-cjcx.gif/images/pic-kwgl.gif/frame/bf.html/images/pixviewer.swf/images/list_square.gif/images/fm.gif/images/dot-bg.gif/images/bottom-bg.gif/frame/images/common.js/frame/images/Scrollwindow.js/frame/images/check.js/frame/images/style.css/frame/images/clock.js/images/image014.jpg一点用都没有!白费了一天的功夫去提取!!!这说明了TOPN_IP这个想法提取的字典,对一些正常不被攻击的IIS来说,起到的作用小,提取到的都是些普通的URI。我现在甚至不想去用dirty keyword方法去提取字典了,因为TOPN_IP都提不出来(注意:扫描器的访问量绝对是远大于普通用户的访问量)。不过呢,总算是完成了字典开发的2,.0版本。思想就是统计TOPN_IP扫描过的URI。