网基网络安全
Would you like to react to this message? Create an account in a few clicks or log in to continue.
搜索
 
 

结果按:
 


Rechercher 高级搜索

关键词

最新主题
» 这些年,跟耶稣 诗歌版
基于 docker 的蜜罐系统设计 Empty周一 八月 12, 2019 12:32 am 由 Admin

» SUPERSTAR GROUP 2018 - 潘雪俪 Celine Diora 【迎春花/爆竹一声大地春】
基于 docker 的蜜罐系统设计 Empty周四 二月 22, 2018 11:58 pm 由 Admin

» 鍾明秋---人生何處不相逢
基于 docker 的蜜罐系统设计 Empty周四 二月 22, 2018 11:50 pm 由 Admin

» 越南語翻唱 刘小慧 初戀情人 Giọt Mưa Cuối Thu Thanh Hà
基于 docker 的蜜罐系统设计 Empty周二 六月 27, 2017 10:39 pm 由 Admin

» 越南語翻唱 S H E 不想長大 Trái Tim Vẫn Chờ Vân Thảo
基于 docker 的蜜罐系统设计 Empty周二 六月 27, 2017 11:11 am 由 Admin

» 越南語翻唱 驛動的心 Dù Chỉ Là Phút Giây Tâm
基于 docker 的蜜罐系统设计 Empty周二 六月 20, 2017 12:06 pm 由 Admin

» 加多一点点 ------------------苏家玉
基于 docker 的蜜罐系统设计 Empty周四 六月 15, 2017 11:44 pm 由 Admin

» 越南語翻唱 甜蜜蜜 Nụ Cười Xinh Như Quỳnh 4K視頻
基于 docker 的蜜罐系统设计 Empty周六 六月 03, 2017 11:47 pm 由 Admin

» 【渗透神器系列】搜索引擎
基于 docker 的蜜罐系统设计 Empty周三 五月 31, 2017 12:07 am 由 Admin

五月 2024
周日周一周二周三周四周五周六
   1234
567891011
12131415161718
19202122232425
262728293031 

日历 日历

本月最活跃发帖人
No user


基于 docker 的蜜罐系统设计

向下

基于 docker 的蜜罐系统设计 Empty 基于 docker 的蜜罐系统设计

帖子 由 Admin 周二 五月 23, 2017 11:06 am

1 整体架构

kokkuri
思路是比较简单的:
每台主机中装有 agent,这个 agent 负责收集各个应用的日志,例如 MySQL、Redis、SSH 等,RSYSLOG 的方式获取优先。
agent 负责接收 server 端下发的策略,下发的策略通常是将来自某个 IP 的某些请求,转发到后端的蜜罐中,这个转发使用 iptables 来实现。例如将来源是 1.1.1.1,访问当前机器的 22 端口的流量,转发到蜜罐 2.2.2.2 的 2222 端口。
server 端负责收集各个 agent 上报来的日志,并进行分析,然后制定相应的策略并下发给 agent。
HoneyPot Server 暂时还没有实现,使用了一台主机来代替,考虑后期如果开启的蜜罐数量过多,可以搞一个蜜罐集群,由 HoneyPot Server 维护整个蜜罐集群。
现在只是实现了一个 demo,很多功能还没有完善,如果后面有额外精力的话会稍微写一点代码的,代码开源在 github:这里
2 Server 端实现

前面已经说过了,server 端的主要工作就是收集各个 agent 传来的日志并进行分析,rsyslog 方式优先。
首先通过修改/etc/rsyslog.conf文件,开启 rsyslog 的接收端口,修改以下行:
1
里只是简单的把端口开到了 UDP 和 TCP 的 10514 端口上。
然后还有一件要做的事情就是接收指定的 syslog,添加一个文件/etc/rsyslog.d/kokkuri-server.conf,内容如下:
1
其中local6是 agent 端使用的 syslog 的 facility name,agent 的具体配置后面再讨论。
现在的 server 端 demo 代码中要做的就是,不停的 tail log 文件 (utils/watch_log.py),然后将日志送到解析器中(core/sshd_parser) 解析出有用的信息,然后将信息送到 guard(core/sshd_guard)中生成规则。demo 中只实现了 SSH 的部分,规则也是很简单的,即在过去两分钟内,如果某个账户对同一台主机登录失败 5 次以上,则决定将这个 IP 访问 SSH 的流量送到蜜罐中去。
下面这图是解析器的部分代码:
1
确定出一个恶意 IP 后,还需要为该 IP 开启一个蜜罐。如果将所有攻击者的流量都送到同一个蜜罐中,会对后期的数据分析造成困扰,也不易提取攻击者的特征,所以尽量给每个攻击者一个独立的蜜罐环境,最大可能的获取攻击者的攻击手法、攻击技术等内容,以后还能交给威胁情报使用。下面这段代码是简单的开启了一个蜜罐,并记录到数据库中。
1
就我的 demo 来讲,server 端只干了这么点事情。
3 Agent 端实现

这部分其实连 demo 都没写完,就厚脸皮的拿出来写了。
Agent 端其实也需要配置一些 syslog 相关的功能,这里还是用 SSHD 举例。
修改/etc/ssh/sshd_config文件中的SyslogFacility [Facility_name],刚刚 server 端指定的 local6,这里也写 local6,反正两边统一就行了。有一点要注意的是,这个 facility name 只有规定的几种,并不是自己随便写的。
接着新建一个文件/etc/rsyslog.d/kokkuri-agent.conf,目的是把 agent 端的 syslog 发送到 server 去。
1
这个写法就比较多了,这里采用的是检查 tag 中是不是包含 sshd 的,如果包含就发送到 server 去。
agent 这边的代码写的就比较暴力了,主要有三个部分:接收策略、修改 iptables、转换 syslog。
其中转换 syslog 的部分还没有考虑,主要是为了把那些没法写 syslog 的应用的日志收集起来,再转换成 syslog 通过 rsyslog 发送给 server,据说 MySQL 好像就不能直接支持 syslog(XD
接收策略这部分代码,我直接写了个 socket 监听本地的 12666 端口,暴力直接。
1
这个写法就比较多了,这里采用的是检查 tag 中是不是包含 sshd 的,如果包含就发送到 server 去。
agent 这边的代码写的就比较暴力了,主要有三个部分:接收策略、修改 iptables、转换 syslog。
其中转换 syslog 的部分还没有考虑,主要是为了把那些没法写 syslog 的应用的日志收集起来,再转换成 syslog 通过 rsyslog 发送给 server,据说 MySQL 好像就不能直接支持 syslog(XD
接收策略这部分代码,我直接写了个 socket 监听本地的 12666 端口,暴力直接。
1
然后就是执行命令修改 iptables 的部分了,这部分依然在开发中 XD
4 后续

毕竟这只是个 demo,纯粹是提出了个思路,很多坑这里面其实都没有考虑到。具体可行性如何、能用在多大范围的机器上都是不确定的,只能等我有空的时候慢慢研究了 233333。
Admin
Admin
Admin

帖子数 : 39
注册日期 : 17-05-09
年龄 : 36

https://networksecurity.souluntan.com

返回页首 向下

返回页首


 
您在这个论坛的权限:
不能在这个论坛回复主题