蜜罐系统设计的一些想法:这篇文章主要讨论一下徒手搭建蜜罐系统的一些思路来告诉大家蜜罐对于网络安全运维的作用。
这两天根据老大的指示,一直在公司内部的公有云平台布置蜜罐,从零开始布置蜜罐可不是一件容易的事情,中间失败过好几次,要么就是蜜罐人家压根不进去,要么就是进去之后被人当botnet去对外攻击或者扫描,中间也出过不少岔子。所以根据我的搭建经验,目前大概有这么几种方式:
1.裸机器部署方式:这种部署方式就是顾名思义使用真的机器,然后制造一些漏洞让攻击者入侵并且留下痕迹,其实一开始我也是这么做的,这么做的好处是,能很轻松的让别人进来,但是缺点太多了,首先没有通知,并且需要不定时的上去查看,一旦机器被botnet控制,还会对外攻击,公司的IT资源中心的GG还会给你发邮件找麻烦。
2.轻度开发部署模式:这种模式就是在上一种基础上进行了一点点完善,实现了入侵报警,并且增加了一些管控的模块,比如某些botnet执行的时候可以强制关机(这个有点猥琐了),这样做的好处就是不用时不时上去看一下了,并且自动化相对高一些,缺点就是不能够储存一些数据。
3.开源蜜罐系统:诸如Cowrie、Dionesa这些开源的蜜罐系统,好处就是能够虚拟出来一个环境并且可以记录他的操作,而且方便快捷,缺点就是容易被shodan这种东西暴露了这是一个蜜罐,也就是中出了个叛徒。
4.高度开发部署:可以按照Cowrie或者Dionesa的方式进行重新设计,例如使用Docker、QEMU-KVM等虚拟化技术虚拟出一个相对真实的环境,并且使用堡垒机的方式来记录入侵者对蜜罐的操作并且储存到MySQL/PostgreSQL数据库(如果数据量大的话可以考虑使用NoSQL数据库,并且和Splunk等做数据分析平台对接)方便前台调用和做数据分析,最重要的一点是要有个UI可以方便的展示蜜罐的运行情况,当然扩展性也是要有的,这样的话肯定不会被Shodan这些东西发现,但是随之而来的就是开发成本问题,这么做确实开发成本太高了。
以下我们将会针对第四种情况进行讨论,当然会参考其他情况的解决方案:
首先我们先要确定一个基本的思路:蜜罐的目的是为了诱导攻击者进入一个环境然后记录下hacker的操作并且不影响系统的运行。
那这样的话基本上的一个设计想法就出来了:
蜜罐环境隔离:使用虚拟环境将物理环境和蜜罐隔绝开,防止敏感操作在真实的环境中进行造成破坏。
敏感操作记录:把蜜罐中hacker的操作写入数据库并保存。
邮件报警系统:蜜罐被入侵后应有报警邮件知会网络管理员
大概的模型就如图所示了:
大致解释一下:
Database:推荐使用MySQL/PostgreSQL,主要用来存储Hacker操作的记录、IP地址、时间、上下载的文件、SSH爆破时候产生的密码字典等等。
Management Console 管理平台:用来通过数据库对蜜罐采集到的数据进行管理,同时对蜜罐本身的状态进行监控。
Honeypot Emulator 蜜罐容器:主要是提供一个虚拟的Linux系统环境,可以使用QEMU-KVM、Docker等虚拟化技术/容器技术搭建蜜罐环境,诱导Hacker进入虚拟的环境,并记录其操作。
Application Layer 应用层:用于对蜜罐收集到的数据进行分析、处理、展示等操作,对接Web Console控制台;同时也可以做好API对接到SOC(Security Operation Center安全运维中心)等安全运维部门的平台上,也可以对接Hadoop进行威胁情报提取和处理。
技术细节
大致的系统流程说完之后我们来说一下技术细节:
1、数据库分表设计
数据库尽量要按照不同的采集模块去划分不同的表,加快数据I/O的速度,如cowrie蜜罐系统的表就是这么设计的:
2、端口安全管理
为了让蜜罐看上去更像一些,建议将端口使用iptables做限制,比如将SSH服务端口由22改为62222(端口号尽量靠后写,防止NMAP等工具扫描时优先扫描到,毕竟某些做黑产的人的水平仅限于工具使用方面,你懂得),然后将蜜罐的端口使用iptables重定向到22号端口,这样在对方不知情的情况下访问22号端口则会进入蜜罐的虚拟环境。
3、界面伪装
尽量把界面伪装的像某一发行版本的Linux界面,防止黑客产生疑心。如Cowrie就伪装成了Debian Linux
4、虚拟环境隔离
使用隔离度较高的虚拟环境,如python-virtualenv模块、QEMU虚拟器、Docker容器等等,然后分配最低的权限,保证恶意操作不能在里面执行,最大程度的保证系统的安全。
5、直观的前台
前台在这里的作用就是去做图表展示、数据展示和数据分析,可以选择和ElasticSearch系统、Splunk系统等去做对接,实现一个快捷的数据检索和数据查找功能,也可以使用web服务去编写一套前台。
这样的话你就应该设计出来一套完整的蜜罐系统了,接下来只要运行一下就可以得到很多的有价值的信息了,比如C2地址、SSH爆破字典、恶意IP等等,你可以把这些东西添加到黑名单里,保证安全。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/56301.html