xunfeng
xunfeng copied to clipboard
关于缩小巡风扫描时间的粒度问题
做甲方安全才意识到巡风做的确实很好,在使用过程中发现巡风资产探测周期时间粒度太大,扫描的时间只精确到小时,上网搜了一下关于即时扫描的的问题提,也看到了issues和其中的延伸回答,感觉那样还是太麻烦了,原本想自己添加一个即时扫描的功能,看了巡风实现资产探测周期的源码,发现有更加简单的方法,只要将扫描的时间粒度由小时降低到分钟,这个问题也就基本解决了(虽然还不是即时执行扫描,但是一两分钟的时间可以接受),具体的代码很简单,贴一下吧
...
now_day = now_time.tm_mday
now_minute = now_time.tm_min
now_date = str(now_time.tm_year) + str(now_time.tm_mon) + str(now_day)
cy_day, ac_hour_minute = CONFIG_INI['Cycle'].split('|')
ac_hour, ac_minute = ac_hour_minute.split(':')
log.write('info', None, 0, u'扫描规则: ' + str(CONFIG_INI['Cycle']))
if (now_hour == int(ac_hour) and now_minute == int(ac_minute) and now_day % int(cy_day) == 0 and now_date not in ac_data) or NACHANGE[0]: # 判断是否进入扫描时段
ac_data.append(now_date)
...
只是简单的增加了一个分钟的判断,也不知道官方是不是早解决了或是压根不需要,这里提个issue就当提醒了:) 还有在Config的collecition中的提示信息也需要改变
mongo --port 65521
use xunfeng
db.Config.update({type:'nascan'}, {$set: {'config.Cycle.help':"设置资产探测的扫描周期,格式:天数|小时:分钟,例如 5|16:30,即每5天的16点30分开始进行扫描。"}})
我直接写入mongodb,docker push一下就可以了,官方可以写入初始化文件中或是写入Config.bson
中
其实修改资产列表会触发一次扫描收集的。
嗯,这个知道,你们提示里面有写,有时的需求就是在不改变资产列表的情况下,想对列表里的数据立马进行扫描,我自己稍微改动源码实现了,可能官方并不需要这个功能,只是建议一下:)
请问立即扫描功能,是不是要修改一下源码就行,那前端可以看到和选择吗