(一)蜜罐初识
蜜罐,是一种网络安全产品。本文作为《『网络安全』蜜罐到蜜网入门指南》系列的第一篇,从网络安全着手,由浅入深,逐步介绍,带大家初步认识蜜罐。
一、网络安全
如今,是一个网络世界,网络安全至关重要!
上至国家,中至企业,下至个人,都应该重视网络安全。因为它不仅关乎国家,也涉及到我们每个人的切身利益和财产安全。
为了保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济社会信息化健康发展,我国专门制定出台了《中华人民共和国网络安全法》,于2016年11月7日通过、公布,自2017年6月1日起施行。
国家专门制定法律法规,由此可见,网络安全的重要性。希望我们大家可以引起重视,提高网络安全意识,共同维护网络世界和平!
二、重大网络安全事故
随着互联网技术不断发展,越来越多的电子设备接入网络,网络环境日益复杂。
同时,网络攻击也从未停止过!可以说每时每刻,互联网上都在发生着各种网络攻击事件。如:拒绝服务攻击、DDoS攻击、域名劫持攻击、恶意爬虫、网页挂马、非法越权、sql注入、命令执行等。
为了让大家有一个更直观的感受,列出几个近年来比较重大的网络安全事故,一起看看。
2.1、震网
震网(Stuxnet),是一种蠕虫病毒,复杂度远超一般电脑黑客能力。
震网病毒于2010年06月首次被检测到,是第一个专门定向攻击真实世界中基础设施的蠕虫病毒,比如核电站、水坝、国家电网、工业控制等。
由于震网病毒,60%的感染发生在伊朗,所以被怀疑是由美国和以色列联合研发的计算机蠕虫病毒,目的在于破坏伊朗的核武器计划。
"震网"是第一个震惊世界的网络安全事件。
2.2、Mirai – 物联网的噩梦
Mirai病毒,可以说是物联网的噩梦。主要通过感染那些存在漏洞或者弱口令的物联网(iot)设备。
Mirai像“寄生虫”一样存在设备中,不断扫描被感染设备同网络中的其他设备,进行分裂传播。
弱口令,也叫弱密码,某种意义上可以算是最大的安全漏洞!!!黑客攻击,常用方法之一就是弱口令爆破,建议大家尽量提升密码复杂度。
Mirai通过控制大量物联网设备,形成僵尸网络,以此对目标发起DDos攻击。DDos攻击是常用的"拒绝服务攻击"方法之一,即:同时对目标服务发起大量请求,消耗目标资源,使目标无法正常提供服务。
被黑客控制的设备,我们一般称之为"肉鸡",任人宰割。
通过Mirai僵尸网络发起的网络攻击事件很多,比较著名的几次攻击,如下:
2016年9月20日,著名的安全新闻工作者Brian Krebs的网站KrebsOnSecurity.com受到大规模的DDoS攻击,其攻击峰值达到665Gbps,Brian Krebs推测此次攻击由Mirai僵尸发动。
2016年9月20日,Mirai针对法国网站主机OVH的攻击突破DDoS攻击记录,其攻击量达到1.1Tpbs,最大达到1.5Tpbs。
2016年10月21日,美国东海岸地区大规模断网事件,据报道,一共有超过百万台物联网设备参与了此次 DDoS攻击。
2016年9月30日,Mirai作者公开发布了Mirai病毒源码。其公布源码的目的大概有两个:一是发现有关机构正在清理其掌控的僵尸设备;二是为了让更多的黑客使用该病毒进行扩散,掩人耳目,隐藏自己的踪迹。
此举效果很明显,后来基于Mirai源码改编,形成了许多Mirai变种病毒。物联网噩梦,从此开始!
也有许多新手黑客,直接使用Mirai源码练习,导致更多物联网设备加入僵尸网络。
2.3、永恒之蓝
2017年5月开始,全球爆发针对Windows系统的“永恒之蓝”勒索病毒。
黑客使用恶意代码通过扫描开放445文件共享端口的windows主机,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件,对主机文件进行加密,以此勒索敲诈,索要300美元比特币赎金。
当时,"永恒之蓝"席卷全球,据报道有90多个国家遭到攻击。乌克兰、俄罗斯、西班牙、法国、英国等多国均遭遇到袭击,包括政府、银行、电力系统、通讯系统、能源企业、机场等重要基础设施都被波及。
在国内,教育网是遭到攻击的重灾区。当时正在写毕业论文的朋友们,你们还好吗?
三、从通用防御方法到网络安全产品
有攻击就有防御!在网络安全领域中,攻击与防御是一对永恒话题,相辅相成,互相促进。
大量网络攻击事件频发,也促进越来越多的网络安全产品应需而现。
感谢黑客大佬们在一定程度上,为网络安全发展贡献的一份力量!
值得一提的是,网络安全产品并不是突然出现的,而是经过众多网络安全人员长期探索、研究,总结形成的必然产物。
3.1、通用防御方法
在网络安全产品之前,系统运维人员并没有专门的安全工具来防御网络攻击。
值得庆幸的是,最初的黑客技术也相对单一,攻击方式远远没有目前复杂。所以,运维人员采用的防御方法也基本相同,部分可以总结为以下方法:
访问控制:通过口令、身份认证、黑白名单、访问控制表等限制访问。
网络隔离:通过设置防火墙规则,限制网络流量,防止攻击蔓延。如:网络流量只进不出、只出不进或只允许固定来源流量通过等。
漏洞扫描:攻击者可以通过扫描发现漏洞,同样网络防护者也可以通过漏洞扫描工具去发现系统漏洞,提前修复。
入侵检测:根据入侵事件特征检测正在发生或者已经发生的入侵事件。如,内存占用过多、cpu满负荷、未知域名访问等。
安全响应:发现攻击事件后,对它进行处理,发出报警等。
列出的只是部分方法,扩展内容,了解即可。
3.2、网络安全产品
慢慢发展,基于这些通用方法,形成了一系列的网络安全产品。
比如:
防火墙:最成熟的网络安全产品之一,配置合适的防火墙规则,可以阻止很大一部分攻击。
入侵检测系统:与防火墙的被动式防御不同,入侵加测系统具有发现入侵的能力。入侵检测系统可以对透过防火墙的攻击进行检测并做相应反应(记录、报警、阻断)。入侵检测系统一般和防火墙配合使用,可以实现多重防护,构成一个整体的、完善的网络安全保护系统。
漏洞扫描系统:自动探测网络资产,基于漏洞库识别已知漏洞。
防病毒系统:基于已知病毒库,扫描检测主机文件或者下载文件,识别病毒,防止病毒入侵主机、扩散到全网。
数据备份系统:安全不是绝对的,没有哪种产品的可以做到百分之百的安全,但我们的许多数据需要绝对的保护。最安全的、最保险的方法是对重要数据信息进行安全备份。数据备份系统将整个系统的数据或者一部份关键数据通过一定的方法从主计算机系统的存储设备中复制到其它存储设备。
WAF:也叫web应用防火墙,是通过执行一系列针对HTTP/HTTPS的安全策略来专门为web应用提供保护的一种产品。
扩展内容,了解即可。
经过不断发展,虽然形成了众多的网络安全产品,但这些依然不能解决问题。安全是相对的,不可能一劳永逸,所以我们必须随时更新技术,迭代产品。
四、不对等的攻防
尽管,有众多的网络安全产品,但是长久以来,网络对抗中,攻防力量从来都是不对等的。
安全攻防这件事,实在是不够公平。
在对抗中,攻击方优势远大于防守方,攻击与防御处于不对等状态,防守一直处于被动防御阶段。
要实现攻击,也许只需要一个漏洞,但是要做到防御,需要找到尽可能多的漏洞。
防御简直不是人干的活!敌众我寡,敌暗我明… 另外,攻击往往发生在深夜!
并且,随着黑客技术的不断发展,网络攻击层出不穷,手段日趋多样化,仅仅依靠被动防御技术已经很难抵御攻击了。
我们急需要由被动变主动,掌握安全防御主动权!
直到主动诱饵技术被提出,蜜罐技术兴起,将被动防御变为了主动防御。
五、蜜罐 – 主动防御
蜜罐技术是一种网络主动防御技术。
一般,蜜罐可以被定义为:一种安全资源,它的价值就在于被探测、被攻击或被攻陷。
通过构建模拟的系统或者服务,达到欺骗攻击者,引诱攻击、增加攻击代价、减少对实际系统或服务安全威胁的目的。
蜜罐,可以是一种服务、一个web页面、一种数据库或者一个完整的操作系统,甚至可以是一个文件。
我们可以理解为:蜜罐是一个被严格监控的计算机资源,包含有看上去很有攻击价值的虚假诱饵数据和一些已知漏洞,以此吸引入侵者攻击。
在蜜罐被入侵的过程中,会实时记录和审计攻击者的攻击流量、行为和数据。用于分析了解攻击者所使用的工具和方法等,便于安全人员后期增强防范措施,攻击溯源、取证等。
(二)蜜罐的起源、作用及分类
在第一篇,我们由网络安全入手,由浅入深,引出蜜罐概念。
从这一篇开始,我们将主要围绕蜜罐( honeypot )、密网( honeynet )继续编写后续内容。
任何技术的发展,都是一个漫长过程!时间长河筛选后,总能留下令我们满意的内容。
本文目录
一、蜜罐的起源
二、蜜罐的作用
三、蜜罐的分类
一、蜜罐的起源
蜜罐概念,并非凭空出现,它最早出现在一本小说中:《The Cuckoo’s Egg》。
作者 Cliff Stoll 原本是一名天文工作者,生活所迫,职位调动后,幸运的成为了一名网络管理员。Cliff Stoll 根据自身经历编著,讲述的是自己成为网络管理员后如何追踪并发现一起商业间谍的故事。
Cliff Stoll 是一个真正的计算机安全天才专家,他在 1988 年提出: “蜜罐是一个了解黑客的有效手段” 。
tip:想阅读这本小说的朋友,我这有英文版本和中文翻译版本pdf,在公众号上私信,我发给你们。微信公众号名:程序员的一天。
蜜罐概念被提出后,并没有在第一时间受到关注。
直到 1990 年,Bill Cheswick 发表了一篇论文: 《An Evening with Berferd in Which a Cracker Is Lured, Endured, and Studied》 。
在这篇论文中,作者更多的从技术角度,对蜜罐的概念进行了探讨。
作者创建了一个真正的蜜罐,讨论了当黑客在攻击和摧毁大规模系统时,安全人员应如何对其开展研究,并从中发现攻击者的行为方式。
论文内容相当精彩,但美中不足的是依然没有对蜜罐的含义进行准确的界定,也没有探讨蜜罐对于安全领域的价值。
在Bill Cheswick 发表论文之后,蜜罐技术开始慢慢受到安全界的关注,到目前为止,安全研究人员已经研究和开发了多种不同类型的蜜罐产品,并将它们广泛的应用于不同的场合。
蜜罐技术的发展历程大概可以分为三个阶段。下面我们简单了解一下。
1.1、蜜罐发展第一阶段
从 1990 年蜜罐概念的提出到 1998 年,蜜罐技术处于第一阶段。
这时候,蜜罐仅仅局限于一种构想。通常,只有专业的网络管理人员才会应用蜜罐,通过欺骗黑客达到追踪攻击的目的。
在这一阶段的蜜罐,往往是一些真正被黑客攻击的主机和系统。
1.2、蜜罐发展第二阶段
从 1998 年开始,蜜罐技术吸引了一批安全研究人员的注意。
业内专业研究人员相继开发出了一些专门用于欺骗黑客的蜜罐工具,如 Fred Cohen 所开发的 DTK(欺骗工具包)和 Niels Provos 开发的 Honeyd 等开源产品。同时,也出现了诸如 KFSensor、Specter 等一些商业蜜罐产品。
这一阶段的蜜罐,利用蜜罐工具模拟出虚拟操作系统或网络服务,我们可以称之为:虚拟蜜罐。
虚拟蜜罐可以对黑客的攻击行为做出回应,从而欺骗黑客。
另外,虚拟蜜罐工具的出现,使蜜罐部署开始变得简单。
tip:虚拟蜜罐曾经长期被使用,已经变得很容易被黑客识别。如果直接采用上述蜜罐,需谨慎。
1.3、蜜罐发展第三阶段
由于第二阶段的虚拟蜜罐存在着交互程度低,容易被黑客识别等问题。因此,从 2000 年之后,安全研究人员更倾向于使用真实的主机、操作系统和应用程序搭建蜜罐。
与之前不同的是,第三阶段蜜罐融入了强大的数据捕获、数据分析和数据控制等工具,将蜜罐纳入到一个完整的蜜罐网络体系中,使得研究人员能够更方便地追踪网络攻击,并对攻击行为进行分析。
这一阶段,蜜罐不再单一部署,通常结合日志审计系统、管理系统、告警系统、前端 web 等,形成一个统一的网络,我们称这个网络为:蜜网(honeynet)。
tip:蜜罐是蜜罐,密网是密网。蜜罐属于密网的核心模块。
密网的出现,使我们可以在云端,统一部署、管理蜜罐。并且,通过web页面人性化的展示,攻击日志、攻击数量、攻击来源等数据一目了然。
密网,有效的降低了使用者门槛,即使不是专业的网络管理员,也能通过密网快速发现攻击。
蜜网技术,是在蜜罐技术上逐步发展起来的一种新技术。密网技术中,蜜罐是核心!所以,我们后面还是会先继续研究、讨论蜜罐,密网技术放到蜜罐之后,会单独讲到,欢迎大家持续关注。
二、 蜜罐的作用
在上一篇,我们说到:蜜罐是一种安全资源,其价值在于被扫描、攻击和攻陷。
结合蜜罐的发展来看,我们可以总结出蜜罐的主要作用是:欺骗黑客,诱导攻击,捕获攻击。
除此之外,蜜罐在一定程度上也有保护真实业务、延缓攻击的作用。
试想,一台服务器上部署有两个数据库,一个为真实业务数据库,另一个为蜜罐数据库。那么,黑客攻击真实业务数据库的概率就变为了二分之一。
如今,在密网技术中,蜜罐的部署多采用节点引流方式,十分方便,一台服务器上部署100个蜜罐节点也不是不可能…夸张了
黑客:“今天收获颇丰啊,这台服务器上有一百个资产暴露,我该先攻击哪一个呢…?”
最后,蜜罐还能基于行为分析,发现 0day 未知攻击。
tip:0day漏洞的危害,攻击发生前,无人可知!
三、蜜罐的分类
从不同的角度,可以对蜜罐进行不同的分类。
但是,多数分类并不严格,对我们而言也没有太多的实际意义。这里主要介绍几种常见的分类方式,了解即可。
3.1、按照用途
按照不同用途,蜜罐可分为:生产蜜罐、研究蜜罐。
生产蜜罐
用于捕获生产环境中的攻击,保护生产环境,主要由公司使用。生产蜜罐被组织放置在生产网络内与其他生产服务器一起,以改善其整体安全状态。通常生产蜜罐是低交互、中交互蜜罐,易于部署。
研究蜜罐
主要用于研究活动,如,如何吸引攻击、搜集信息、探测新型攻击等,以及了解黑客和黑客团体背景、目的和活动规律等。因此,研究型蜜罐对于编写新的入侵检测规则、发现系统漏洞等是很有价值的。
3.2、按照交互程度
欺骗伪装成功的关键在于蜜罐的真实度,交互程度越高,蜜罐看上去越是真实,作用往往越大。
按照不同交互程度,蜜罐可分为:低交互蜜罐、中交互蜜罐、高交互蜜罐。
低交互蜜罐
一般,通过模拟服务主要特征功能,限制黑客在指定的范围内动作,仅允许少量交互。例如,蜜罐在特定端口上监听,并记录所有进出流量数据,可用于检测非法扫描和连接等。
大多数企业都会模拟TCP和IP等协议,这使得攻击者认为他们正在连接到某个真实系统而不是蜜罐环境。
低交互蜜罐可能不够有效,容易被攻击者识破,而且它不足以捕获复杂的威胁,如0day攻击。但是,低交互蜜罐易于部署,维护成本低,也相对安全,不允许访问真正的系统服务。
中交互蜜罐
中交互蜜罐提供了更多的交互信息,但还是没有提供一个真实的操作系统或服务。通过这种较高程度的交互,更复杂些的攻击手段可以被记录和分析。中交互蜜罐是对真正的操作系统或服务的各种行为的模拟,在这个模拟行为的系统中,用户可以进行各种随心所欲的配置,让蜜罐看起来和一个真正的操作系统没有区别。
从开发成本、维护成本、安全等综合因素考虑,项目中使用最多的一般是中交互蜜罐。
高交互蜜罐
高交互蜜罐不是简单的模拟,通常提供的是一个真实的操作系统或服务。高交互蜜罐使得蜜罐被识破的概率大大降低,吸引攻击者攻击的程度也大大提高。但同时,危险性也随之增大,黑客攻入系统的目的之一就是获取root权限,一个高交互级别的蜜罐刚好提供了这样的环境。
高交互蜜罐作用大、风险高,一定要做好网络隔离,避免蜜罐被攻陷后,成为黑客攻击同网络中其他主机的跳板机。
3.3、按照实现方式
按照实现方式不同,蜜罐可以分为:真实服务蜜罐、模拟服务蜜罐。
真实服务蜜罐
类似高交互系统蜜罐,往往是一台真实的物理主机或虚拟机,是一个具有独立 ip 的真实系统,我们把这样的基于真实服务制作而成的蜜罐称为:真实服务蜜罐。
虚拟服务蜜罐
低交互、中交互蜜罐这种,通过代码实现,模拟真实服务部分功能的蜜罐,我们称之为:模拟服务蜜罐。
灵魂一问:二次开发除去部分功能的蜜罐,属于什么蜜罐类型?蜜罐分类这件事,不要太在意…
3.4 按照是否收费
按照是否收费,蜜罐可以分为:开源蜜罐、商业蜜罐。
开源蜜罐
由可爱、帅气的业内专家开发,免费分享、开放源码,提供给大家使用、学习的蜜罐,称之为:开源蜜罐。
开源蜜罐的开发,通常没有一个完整的软件生命周期管理,能实现功能就成,开发周期也相对较慢,无法和商业蜜罐产品相比。
商业蜜罐
专业团队开发、专业公司运营,以赚钱为主要目的的收费蜜罐,称之为:商业蜜罐。
(三)蜜罐内部组成分析
通常,一个蜜罐的组成,可以分为三个部分:功能模块、数据处理模块、安全控制模块。
如果仅仅是部署一个单独的蜜罐,也许还需要报警模块。当蜜罐被入侵时,报警模块通过邮件或者短信的方式通知网络管理员。蜜网系统中,报警模块放置在云端,这里不单独介绍。
本文目录
一、功能模块
二、数据处理模块
三、安全控制模块
一、功能模块
功能模块,通过模拟系统或服务的基础功能,使蜜罐能够对外提供与之相同或相似的服务功能,以此引诱黑客攻击。
功能模块可以分为:基础功能,蜜饵功能。
通常,正常用户是不会访问蜜罐服务的!所以,对蜜罐的访问,均可视为攻击者发起。
1.1、基础功能
基础功能,指系统或服务的主要基本功能,如。mysql服务提供的数据存储功能,ftp服务提供的文件传输功能等。
蜜罐通过模拟实现这些基础功能,让人难以辨别是蜜罐还是真实服务,达到迷惑攻击者的目的。
基础功能的实现方式多种多样,没有统一标准和固定方法。根据不同的功能,有不同的实现方法。在制作蜜罐时,往往需要花大量时间去调研,最后选择出符合场景的最优实现方法。
简单的蜜罐,如:telnet、socks5 等协议蜜罐,我们可以编写代码,自行解析协议,实现对应的功能。这样的蜜罐,我们几乎可以完全掌控。
复杂的蜜罐,如:mysql、windows 系统等高交互蜜罐,完全重新实现一个完整服务是很困难的。可以选择基于源码二次开发,或者就直接使用真实的系统服务。这时,往往需要解决的问题是:如何记录操作日志?
最优的实现方法,需要根据具体的需求去调研决定。在满足需求的基础上,让蜜罐与真实系统或服务具有相差无几的功能即可。
不管黑猫还是白猫,能抓老鼠的就是好猫!
总之,一个原则:看上去像!
像啥?像真实服务或系统!
作为开发者,我们当然是希望方式越简单越好的!
例如,需求是“制作一个web蜜罐,获取攻击者常用的 nmae/password 爆破字典”。那么,我们仅仅提供一个web系统的登录页面即可,不管攻击者输入什么 nmae/password,后台记录后,均返回用户名或密码错误,让黑客如同面对一个黑洞,永远无法登录成功。
如果,蜜罐需要提供真实的登录功能,建议用户名/密码尽量简单,方便黑客爆破,web系统甚至可以取消验证码。admin/password、root/123456等,是常用的弱密码选择。
功能模块,往往决定着蜜罐的交互程度。模拟的功能越多越真实,蜜罐的交互程度越高,能够收集到的数据就越多,被黑客识破的概率也越小。
1.2、蜜饵功能
蜜饵,指蜜罐中的诱饵,可以是一些漏洞或者看上去很有价值的假数据。
特别提醒:假数据一定要脱敏处理,包括内容和结构的处理,以防某些敏感数据无意间泄露,造成不必要损失。
永远不要低估一个黑客的能力,优秀的黑客能够根据冰山的一角推论整个冰山!
蜜饵不是必须的,但是有蜜饵的蜜罐看上去更真实。恰当的蜜饵,还能黏住黑客,延缓攻击。
例如,一个没有数据的空壳mysql蜜罐,黑客攻陷后,可能直接就会退出。如果在蜜罐中,根据真实业务数据库设置一些假数据,一切看起来就不一样了。
二、数据处理模块
当攻击者通过蜜罐对外提供的功能入侵后,会产生各种数据。我们需要处理这些数据,提取出有效信息,实时记录下蜜罐内发生的一切。
我们要知道:谁攻击了蜜罐?攻击方式是什么?执行了什么操作?… …
在介绍数据处理之前,先来了解两个蜜罐中常有的进程:
服务进程:提供蜜罐基础功能,并记录各种数据的程序。
日志处理进程:读取服务进程记录的数据,并加以处理,将数据泛化为基本格式的程序。
在蜜罐内,至少都会存在这两个进程。它们相互独立,不具有父子依赖关系,即:数据处理不影响基础功能。
服务进程可能会有多个,比如一个系统蜜罐中,提供了多种服务!
回到正题,继续讨论数据处理模块,同样包括两个部分:数据收集、数据上报。
2.1、数据收集
数据收集,指通过某种方式,记录下蜜罐内所有操作产生的数据,以此分析攻击事件、追踪黑客。
数据收集,往往在服务进程中通过日志记录的方式实现。在设计实现蜜罐功能模块时,就应该兼顾数据收集,以一种简单有效的方式记录日志。
日志记录的方式很多样,写入文件、写入rsyslog等都可以,甚至还能直接通过套接字将原始日志传递到的日志处理进程。
下面,提供几种日志记录方法,仅供参考。
2.1.1、通过fifo文件记录日志
fifo文件记录日志,是一种简单而高效的方式。适用于linux下,蜜罐日志记录。
fifo文件与普通文件不同,普通文件需要考虑删除已读日志,防止文件持续增长,占用过多磁盘。
这,其实是一件很麻烦的事情。比如,当你计算好应该删除的日志行数后,执行删除操作过程中,新的日志刚好被记录,日志行数被改变,一切就乱套了。
通过fifo文件,可以完美避开这个问题。
fifo文件,是一种管道技术。可以很好的解决两个独立进程间数据交换问题,一个进程只负责写入,一个进程只负责读取。
fifo代表先进先出,这就保证了蜜罐日志的顺序。一旦读进程读取一条日志后,fifo文件会自动删除已读内容,避免了文件中日志堆积问题。
如何创建一个fifo文件?使用mkfifo指令:
mkfifo 文件名
示例,创建一个名为log.fifo的文件:
[root@程序员的一天 home]#
[root@程序员的一天 home]# mkfifo log.fifo
[root@程序员的一天 home]#
[root@程序员的一天 home]# ls -al | grep log.fifo
prw-r--r-- 1 root root 0 10月 16 16:15 log.fifo
[root@程序员的一天 home]#
可以看到,使用 ls -al 命令查看文件属性时,在prw-r--r--中,第一个符号是 p,这表示该文件是一个 fifo类型的文件。fifo文件,在使用中还有一些坑,不过都很容易排查解决,留给大家自己去发现吧~
windows下不支持fifo文件,虽然大部分蜜罐都是在linux环境下部署,但还是会有部分windows环境下的蜜罐,这类蜜罐日志记录,可以通过套接字进行。
2.1.2、通过代理记录日志
对于tomcat这样的web服务,可以通过代理服务器记录日志。
例如,在http蜜罐服务前搭建一层nginx服务器,通过nginx自带日志功能来记录所有流量数据。
2.1.3、通过抓包记录日志
部分直接通过部署真实服务而实现的蜜罐,日志记录也许会很困难。
当原始服务日志中,缺失我们需要的日志信息,而我们又无法修改源码,添加额外的日志记录功能时,可以选择通过抓包的方式,来记录下所有进出流量。
不管何种方式记录,在日志中都应该包含一些基本信息,例如:时间、蜜罐id、事件id、来源ip/port、目的ip/port、用户名/密码等等。通常采用json格式记录,是不错的选择。
2.2、数据上报
在蜜网系统中,所有蜜罐内记录的数据需要上报到蜜网云端,统一分析。
如果不是蜜网,仅仅单独使用某个蜜罐而言,是不需要上报数据的。
蜜罐原始日志格式千奇百怪的都有,为了方便云端统一处理,在数据上报前,一般会将日志在蜜罐内简单处理,泛化为一个统一的格式,json字符串是最常见的选择。
日志传递过程中,使用json字符串,云端接收后,load为json字典,可直接根据key提取信息。
蜜网系统中往往会存在很多蜜罐,所以需要给每个蜜罐分配一个唯一标识,我们称之为:蜜罐id。在日志上报时,带上蜜罐id,以便云端知道日志来自具体哪个蜜罐。
同一个蜜罐,会被不同的攻击者攻击,或者被同一个攻击者攻击多次。我们需要将相关联的日志聚合在一起,形成事件。聚合的方法有很多,例如,我们可以将某段时间内ip和端口相同的日志聚合为一个事件,相同事件的日志分配相同的事件id,数据上报时,携带事件id,方便云端分析。
三、安全控制模块
除了功能模块和数据处理模块外,蜜罐还需要一个安全控制模块。该模块可能比较容易被忽略,但是蜜罐作为一个诱饵资产,安全是非常重要的。
安全控制模块,可以分为:访问控制、数据安全。
3.1 访问控制
访问控制,严格控制蜜罐的进出流量。
蜜罐必须要能够控制所有进入蜜罐内的攻击者的行为,防止攻击者利用蜜罐作为跳板来攻击同网络中的其他应用系统。
常用的方法是,通过设置iptables规则,来限制蜜罐访问同网络中的其他主机ip。
注意数据上报通道的开放。
其次,还可以在云端,通过日志分析,发现某个蜜罐大量连接网络中其他主机后,通过一定手段停止蜜罐,或者恢复蜜罐到某个安全状态。
3.2 数据安全
数据安全,指的是当蜜罐内置数据(诱饵数据)被破坏,或者蜜罐被大量植入木马、病毒后,影响到蜜罐正常功能时,应及时删除病毒,重置蜜罐到某个初始状态。
另外,如果是一个操作系统蜜罐,我们的功能代码、日志代码,均在蜜罐内。如果蜜罐被攻陷,这些将直接暴露给黑客,是非常不安全的。因此,我们可能需要进程隐藏、代码混淆等安全操作。
————————————————
版权声明:本文为CSDN博主「程序员的一天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pythontide/article/details/109148699