部署了半个月,分析一下数据:
需要提前知道的是,tpot中,每天的数据存一个index,然后每个index里面有不同的type,每条请求一个document
共24万条请求:
查看整个集群所有数据
以7月23日为例,1.5万条请求:
查看某一index的所有数据
查看每天都能捕获到哪些type的请求,想要看所有type需要自己整理:
查看每个index的type
dashboard中显示的请求都是攻击吗
dashboard中显示的honeypot中捕获的攻击请求只有cowrie,rdpy,elasticpot。
看了一下,cowire,rdpy中的请求基本上都算是攻击。
但是查看一下捕获到的elasticpot的请求:
查看某一type的所有数据,使用正则表达式*
src_ip 172.22.0.1是本地地址,这明明是我自己发的请求,却被当作攻击了,event_pot还被标做了alert。。。
然后用src_ip过滤掉自己的请求,发现就没有elasticpot攻击:
不等于
dashboard中没显示的请求就不是攻击吗
但是我们在type里还看到了许多其他的请求,那这些是不是攻击呢?
以suricata为例,我们看一下所有的suricata,八万条:
看一下请求的具体信息:
有的比较像攻击:src_ip不是本地ip,event_type的值为alert
有的一看就不是攻击:
例如上图这个event_type显示只是dns请求而已。
所以使用src_ip=192.168.0.233过滤掉所有dns请求:
过滤完直接从8w条变成1.5w条,没用的dns请求是真滴多啊。。。
但过滤出来的这1.5w条请求都是攻击么?
先筛选出event_type为alert的请求,5k多条,发现都是known attacker,src_ip都是陌生ip,可以肯定是攻击
不等于+等于双条件查询
然后筛选出event_type不为alert的请求,1w多条,发现也都是陌生的ip,而根据蜜罐的性质,蜜罐不向外提供服务,所以基本可以肯定这些是位置的攻击者,也都是攻击ip
不等于+不等于双条件查询
正则表达式过滤regexp(注意插入.要用\\.,表示选择要用,匹配16-32之间的整数,只能[16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31],不能[16-31],但是可以[0-9])
匹配10.xxx.xxx.xxx的局域网地址:10\\..+
匹配172.16-31.xxx.xxx的局域网地址:172\\.[16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31]\\..+
匹配192.168.xxx.xxx的局域网地址:192\\.168\\..+
匹配127.xxx.xxx.xxx的本地地址:127\\..+
使用scroll分页查询
第一次查询。正常请求后面 加上?scroll=3m(这里3m表示缓存保留3min),然后从响应中取得_scroll_id来进行下一次分页请求。
下一次分页请求:POST _search/scroll 并在请求体中带上scroll和scroll_id参数即可
els查询:
https://coyee.com/article/10764-23-useful-elasticsearch-example-queries
https://blog.csdn.net/donghaixiaolongwang/article/details/57418306