在“没有人的安全部”构筑护网防御工事(6)——攻击诱捕
第六部分 攻击诱捕
1 概述(what)
1.1 含义
写在前面:按照最开始的想法,这一章会写关于特权访问的问题。直到写到这里,发现特权管理的主要内容其实已经在账号扫雷这一章节中包含,只不过账号扫雷针对所有的账号对象,特权访问只是其中的操作系统、数据库、管控系统等这些特权系统的用户管理。特权访问是近年来新兴的一个概念,从信息安全体系上讲概念的内涵是很丰富的,只不过在这里我们只关心其中的一小部分,如果读者感兴趣可以搜索privileged access关键字了解其内容。
1.2 原理
攻击诱捕即以蜜罐为基础的诱骗和溯源技术,近年来商业化产品开始使用“攻击诱捕”这一词汇作为商业包装,而这个提法也比较贴切,因此我们在这里沿用。攻击诱捕通过制造伪装的应用系统迷惑和诱骗攻击者,并通过伪造的业务流程引导攻击者留下与个人身份直接或间接相关的信息,从而达到识别攻击意图、检测攻击行为以及溯源攻击者的目的。此外,攻击诱捕系统还可以引诱攻击者进行文件交互,通过在在攻击者主机上安装具有木马特性的程序,对攻击者进行反制。
1.3 原则
攻击诱捕是积极防御型的方案,因此其部署的优先级要低于前文中提到的集中防御方案。但攻击诱捕有一些特点不容忽视,首先是其检测效率高,由于是专门为攻击者设下的陷阱,因此正常情况下并不应有任何访问请求,并且由于访问量小,可以进行人工分析。其次攻击诱捕系统可以用来收集攻击者数据,用来追踪和定位攻击者个人。为了让攻击者能够被蜜罐吸引,通常需要注意以下几点:
- 高度伪装的应用系统。为了能够骗过攻击者,蜜罐要看起来非常接近真实的业务系统,这要求蜜罐在基本功能、视觉交互、架构设计和模拟数据方面都尽可能做到接近真实的状态。
- 可用但无风险的漏洞。如果攻击者完全没有机会突破,那么蜜罐可能也会被攻击者放弃。蜜罐应该留有一些漏洞,可以让攻击者尝试去突破。这些漏洞应该尽可能多的让攻击者暴露自己,并且让攻击者能够在进行一些努力后获得一些回馈,例如让攻击者以为漏洞利用成功,或者返回一些伪造的数据。
- 密切监控蜜罐访问日志。在内网部署的蜜罐由于正常情况下不应该被正常的用户访问到,因此一旦有用户访问了蜜罐,极大可能存在风险。应该在蜜罐被任何形式访问的时候密切关注访问源的动作,并排查系统中是否有同一来源的其他异常行为。在公网部署的蜜罐有时会被互联网的扫描器无差别的扫描,访问日志可能较多,平时分析的意义不大,但在护网期间也是重要的信息来源。
- 蜜罐系统自身的安全性。由于蜜罐本身是具有一定漏洞的,因此很可能被攻击者利用来作为内网渗透的跳板,给正常的信息系统带来一定风险。因此,蜜罐应该部署在隔离的环境中,但隔离的效果需要伪装,不然容易被攻击者发现。隔离可以从网络(ACL)、主机(虚拟机或容器)、进程(沙箱)层面进行设置。运行蜜罐的主机、数据库、应用框架、中间件等组件也应当具备相当的健壮性,否则别攻击者利用后蜜罐反而成了入侵的工具。
2 目的(why)
对于普通用户而言,攻击诱捕最主要的作用还是发现入侵行为,降低检测的成本以及提高效率。对于能力较强的用户,蜜罐是很好的溯源信息收集的入口。
3 方案(how)
- 产品选型
Awesome Honeypots是一个开源蜜罐合集,囊括了从数据库蜜罐、web蜜罐等等众多蜜罐类型。开源蜜罐适合有一定系统研发能力的组织,但开源蜜罐存在一定的特征,有概率被攻击者识别到。如果使用小众的开源产品,被识别到的可能性会降低,但可维护性要差一些。对于大多数组织,使用商业化产品是一个较好的解决方案。商业化产品能够提供相对充分的技术支持,而通常产品的稳定性和功能也较开源产品更好。
如果研发能力比较强,也可以尝试自行搭建和开发蜜罐系统,自建蜜罐系统能够有比较好的定制化能力,对于模拟真实业务系统有一定优势。自建蜜罐系统需要注意蜜罐系统自身的安全性,以及日志记录和告警能力。
- 设计网络架构
对于传统的网络架构,蜜罐比较适合部署在DMZ区或者在DMZ和网络边界之间规划一块单独的区域,此区域最好禁止与真实业务系统互通。这是由于蜜罐本身有一定风险,如果一旦被突破,容易向内网蔓延,因此需要控制其扩散半径。如果是业务系统部署在云上,则可以单独创建一个VPC用来部署蜜罐系统。
- 日志集成
开源和商业化的蜜罐产品自身已经具备日志收集和告警功能,如果是自建的蜜罐系统,则需要将伪装成业务系统的相关组件的日志全部收集起来并集中管理。通常蜜罐系统的任何访问记录都可以成为告警的素材,而精心设计的漏洞陷阱也可以单独定制告警规则,例如ssh服务的登录口令暴力破解。
4 需要注意的一些问题
首先,蜜罐系统自身的安全性是值得被反复强调的,从运行环境的独立性、基础组件的安全性到蜜罐应用代码自身的健壮性,都应该被足够关注。
其次,对于蜜罐系统的伪装,模拟成业务系统的复杂度比较高,需要投入一定时间打磨,否则容易被攻击者识破。所以内网蜜罐往往被设计成内部系统的伪装者,例如CRM、OA等,这些系统与主要业务有一定差异,因此即便因为伪装的不精致而看上去有一些问题,也相对不容易引起攻击者的怀疑。