前 言我喜欢抓坏人。当我还是个小孩子的时候,就想以某些方式抓住坏人。例如,就近找一条毛巾披上作斗篷,与小伙伴们满屋子跑,玩警察抓小偷的游戏。长大后,每当看到为百姓伸张正义,让各种坏蛋得到应有的惩罚,我都特别开心。但不管我多努力去尝试,我的愤怒也无法让我变成一个绿巨人,不管我被多少蜘蛛咬了,我也无法从我的手臂里发射出蜘蛛网。我也很快意识到我并不适合做执法工作。
自从认识到这个现实,我意识到我没有足够的财富建一堆华丽的小工具,并身着蝙蝠衣在夜里绕飞巡逻,所以我结束了一切幻想,将我的注意力转向了我的电脑。事隔多年,我已走出了童年梦想中想活捉坏蛋的角色,那已不是我初想象的那种感觉。
通过网络安全监控(NSM)的实战抓住坏人,这也是本书的主旨。NSM是基于防范终失效的原则,就是说无论你在保护你的网络中投入多少时间,坏人都有可能获胜。当这种情况发生时,你必须在组织上和技术上的位置,检测到入侵者的存在并及时做出响应,使事件可以得到及时通报,并以小代价减小入侵者的破坏。
“我要怎样做才能在网络上发现坏人?”
走上NSM实践的道路通常始于这个问题。NSM的问题其实是一种实践,而这个领域的专家则是NSM的实践者。
科学家们通常被称作科技领域的实战者。在近的上世纪80年代,医学上认为牛奶是治疗溃疡的有效方法。随着时间的推移,科学家们发现溃疡是由幽门螺旋杆菌引起的,而奶制品实际上会进一步加剧溃疡的恶化。虽然我们愿意相信大多数科学是准确的,但有时不是这样。所有科学研究是基于当时可用的佳数据,当随着时间的推移出现新的数据时,老问题的答案就会改变,并且重新定义了过去曾经被认为是事实的结论。这是医学研究的现实,也是作为NSM从业者面对的现实。
遗憾的是,当我开始涉猎NSM时,关于这个话题并没有太多参考资料可用。坦白地说,现在也没有。除了行业先驱者们偶尔写的博客以及一些特定的书籍外,大多数试图学习这个领域的人都被限制在他们自己设备的范围内。我觉得这是一个合适的时机来澄清一个重要误解,以消除我先前说法的潜在疑惑。市面上有各式各样的关于TCP/IP、包分析和各种入侵检测系统(IDS)话题的书籍。尽管这些书本中提及的概念是NSM的重要方面,但它们并不构成NSM的全过程。这就好比说,一本关于扳手的书,会教你如何诊断汽车,但不会教你如何启动。
本书致力于阐述NSM的实践。这意味着本书并不只是简单地提供NSM的工具或个别组件的概述,而是将讲解NSM的流程以及这些工具和组件是如何应用于实践的。
目标读者本书终将作为执业NSM分析师的指南。我每天的职责也包括对新分析师的培训,因此本书不仅为读者提供教育素材,也为培训过程提供支持性教材。既然如此,我的期望是读者们能将本书从头到尾阅览,对成为一名优秀分析师的核心概念能有入门级的掌握。
如果你已经是一名执业分析师,那么我希望本书将为你打下一个良好基础,让你可以增强分析技能,提升现有的工作效率。目前我已与数名优秀分析师共事,他们将成长为伟大的分析师,因为他们可以用本书中提及的一些技术和信息去提高他们的效率。
NSM的有效实践需要对各类工具有一定程度的熟练运用。因此,本书将会讨论到数款工具,但仅限于从分析师的立场去讨论。当我讨论Snort IDS、SiLK分析工具集或其他工具时,那些负责安装维护这些工具的人会发现我并不会很长篇大论地讲这些过程。但在有需要的时候,我会将其他相关资源补充进来。
此外,本书完全专注于免费和开源工具。这不仅是为了吸引更多可能没有预算来购买诸如NetWitness、Arcsight等商业分析工具的人,也是为了展示使用基于开源分析设计的工具带来的内在优势,因为它们在数据交互的过程能够提供更高的透明度。
所需基础知识成功的NSM分析师在开始安全相关工作之前,通常在其他信息技术领域已经拥有丰富的经验。这是因为他们已经具备了作为一名分析师的其他重要技能,比如对系统、网络管理的理解。如果没有这样的经历,建议阅读一些书,我罗列了一份我十分喜爱的主要书籍清单,我认为这些书能够帮助读者深入了解一名分析师必备的重要技能。我已尽了大努力,让读者在不需要太多基础知识的前提下阅读本书。但如果读者感兴趣,我强烈推荐阅读部分书籍作为本书的补充。
《TCP/IP 详解,卷1,协议》,作者 Kevin Fall 和 Dr. Richard Stevens (Addison Wesley出版社,2011)。对TCP/IP的核心理解是让NSM更加有效的重要技能之一。早期Dr. Richard Stevens 的经典文著已经被Kevin Fall更新,增加了新的协议、标准、佳实践、IPv6、协议安全,等等。
《The Tao of Network Security Monitoring》,作者 Richard Bejtlich (Addison Wesley出版社,2004)。Richard Bejtlich 帮助定义了很多概念,这些概念奠定了NSM实践的基础。基于这样的事实,我在整本书中会经常引用他的书或博客的内容。尽管Richard的书已经有将近10年的历史,但书中的许多材料仍然使它成为NSM范畴内相关文案。
《Practical Packet Analysis》 作者 Chris Sanders(No Starch Press出版社,2010)。我不是王婆卖瓜。鉴于 Dr. Stevens 的书已为TCP/IP协议提供全面深入的阐述,这本书则是使用Wireshark作为首选工具从实践层面讨论数据包分析。我们在书中讲述如何做数据包检测,如果你之前从未看过数据包,我建议你将此书作为基础。
《Counter Hack Reloaded》 作者Ed Skoudis 和 Tom Lison(Prentice Hall出版社,2006)。我一直认为这本书绝对是佳常规安全书籍之一。它覆盖的范围非常广,我向任何经验级别的读者都推荐此书。如果你从未做过安全相关的工作,那么我会说《Counter Hack Reloaded》是必读的一本书。
本书的组织本书划分成三部分:收集、检测和分析,每章重点讨论相关的工具、技术和核心领域流程。我是一个来自肯塔基州的普通乡村男孩,所以我将尽我所能地用一种不加太多修辞的简单基调来阐述。我也将尝试引入典型的先进概念,并尽可能把它们分解成一系列可重复的步骤。正如任何书籍阐述广义概念一样,当一个概念被提出时,请记住,它并不会覆盖每一种可能的场景或边缘案例。尽管我可以举出一些案例作为一个佳实践,但本书终构建的理论是基于集体研究、经验以及合著者的观点。因此,可能会有这样的场景,你的研究、经验和观点导致你对提及的话题有不同的结论。这是完全正常的情况,这就是为什么NSM是一门实践。
第1章:网络安全监控应用实践 这章专门定义了网络安全监控和它在现代安全环境的相关性。它讨论了很多整本书将会用到和引用到的核心术语和假设。
部分:收集第2章:数据收集计划 这是ANSM收集部分的第1章,介绍了数据收集和它的重要性。本章将介绍数据收集实施框架,它使用一种基于风险的方法来决定哪些数据应该被收集。
第3章:传感器平台 这章介绍NSM部署中重要的硬件组成:传感器。首先,我们对NSM的各类数据类型和传感器类型做简要概述。接着,引出讨论购买和部署传感器的重要考虑因素。后我们将谈及NSM传感器在网络上的位置,包括创建网络可视化地图分析的入门。
第4章:会话数据 该章讨论会话数据的重要性,同时详细介绍用于收集NetFlow数据的SiLK工具集。我们还将就会话数据的收集和解析对Argus工具集进行简要分析。
第5章:全包捕获数据 该章开头对全包捕获数据的重要性作概述。接着分析了几款允许全包捕获PCAP数据的工具,包括Netsniff-NG、Daemonlogger和Dumpcap,引出对FPC数据存储和保存计划,包括裁剪FPC数据存储数量不同考虑因素的讨论。
第6章:包字符串数据 该章介绍了包字符串数据(PSTR)以及它在NSM分析过程里的有效性。我们将介绍几种生成PSTR数据的方法:使用工具Httpry和Justniffer,我们还将了解用于解析和查看PSTR数据的工具:Logstash 和Kibana。
第二部分:检测第7章:检测机制、受害信标与特征 该章讨论检测机制与妥协指标(IOC)之间的关系。我们介绍IOCs是如何被逻辑组织,以及它们是如何被纳入到NSM计划进行有效管理的。这里面将会包含对指标分类的系统,以及部署在各种检测机制里的,用于计算和跟踪指标精确度的度量。我们也将看到两种不同格式的IOC :OpenIOC 和 STIX。
第8章:基于信誉度的检测 该章将讨论种特定类型的检测:基于信誉度的检测。我们将讨论基于信誉度检测的基本原理,以及一些分析设备信誉度的资源。此次讨论将倾向于过程自动化的解决方案,并演示了如何使用简单BASH脚本,或通过使用Snort、Suricata、CIF或Bro来完成这一过程。
第9章:基于Snort和Suricata特征的检测 基于特征的检测是入侵检测传统的方式。本章将介绍这种检测类型的入门,并讨论入侵检测系统Snort和Suricata的使用方法。这里面包含Snort和Suricata的用法,以及为两种平台创建IDS特征的详细讨论。
第10章:Bro平台 该章将介绍Bro,比较流行的基于异常的检测解决方案之一。本章将综述Bro的架构、Bro语音和几个实际案例,来演示Bro作为一款IDS和网络记录引擎真正惊人的威力。
第11章:基于统计数据异常的检测 该章将讨论使用统计数据进行网络异常识别。这将侧重于使用各种NetFlow工具,如:rwstats和rwcount。我们将讨论使用Gnuplot和谷歌画图API进行可视化统计的方法。本章将提供几个能从NSM数据中生成有用统计的实际案例。
第12章:使用金丝雀蜜罐进行检测 金丝雀蜜罐以前仅用于研究目的,现在却是一种能用于有效检测的操作型蜜罐工具。本章将提供不同类型的蜜罐概况,以及什么特定类型能在NSM环境中被应用。我们将介绍几款能用于监控用途的流行蜜罐应用程序,如:Honeyd、Kippo和Tom’s Honeypot。我们也将简要讨论Honeydocs的概念。
第三部分:分析第13章:数据包分析 这是NSM分析师重要的技能,是具备解读和解密关键网络通信数据包的能力。为了有效做到这一点,需要对数据包是如何被分割有个基本的了解。该章将为读者提供基础支持,并说明如何逐字节单位地分解数据包字段。我们通过使用tcpdump和Wireshark来证实这些概念。该章也将通过使用Berkeley 包过滤器和Wireshark显示过滤器来介绍高级包过滤技术的基础。
第14章:我方情报与威胁情报 我方情报与威胁情报的生成,能够影响事件调查的好坏。本章首先介绍了传统的情报循环如何用于NSM。紧跟着,介绍通过网络扫描产生资产数据和扩充PRADS数据来生成我方情报的方法。后,我们将分析威胁情报的种类并讨论关于敌对主机的战略威胁情报研究的几个基本方法。
第15章:分析流程 后一章讨论整体的分析过程。开始只是讨论分析过程,后来分解成两个不同的分析过程:关系调查和鉴别诊断。紧跟着,讨论了从失败的事件中学到的教训过程。后,我们以几个佳分析实例来结束本书。
IP地址免责声明在本书中,提及的例子、原始数据和截图中涉及一些IP地址。在这些案例中,除非另外指明,这些IP地址已被各种工具随机化。因此,任何引用涉及某个组织的任意IP地址,纯属巧合,绝不代表是由那些实体产生的实际流量。
本书配套网站还有相当多的东西我们想在本书中介绍,但我们根本找不到地方容纳进来。于是,我们创建了一个配套网站,包含不同NSM话题的各种额外想法,以及代码片段、技巧和窍门。如果你喜欢本书内容,那么可以考虑查阅配套网站 http://www.appliednsm.com。虽然在本书完成出版前本站点并没有太多的更新,我们计划在本书发行后定期更新这个博客。本书的任何勘误也将在这里持续更新。
慈善支持我们很自豪地声明,本书所得版税将100%捐赠出去,用于支持以下五个慈善事业。
农村科技基金农村学生,特别是那些成绩优异的、接触到技术的机会通常会比他们在城市或城郊的同行少。2008年,克里斯·桑德斯创立了农村科技基金(RTF)。RTF的主旨是减少农村社区与他们的城市和城郊同行之间的技术鸿沟,方法是通过有针对性的奖学金计划、社区参与,以及在农村地区全面推广和宣传技术。
我们的奖学金是针对那些生活在农村社区、对计算机技术拥有热情并打算在这个领域继续深造的学生。本书版税的一部分将用于支持这些奖学金计划,并提供树莓派计算机给农村学校。
更多信息请参见:http://www.ruraltechfund.org黑客慈善组织(HFC)由 Johnny Long 创立,HFC雇佣黑客志愿者(无条件),让他们从事于短暂的“微型项目”,旨在帮助那些无法提供传统技术资源的慈善机构。除此之外,HFC也在乌干达、东非地区支持援助组织帮助世界上贫穷的公民。他们提供免费的电脑培训、技术支持、网络服务等。他们已经帮助许多当地学校增设电脑和培训软件。此外,HFC还通过他们的食物计划为东非的儿童们提供食物。
更多信息请参见:http://www.hackersforcharity.orgKivaKiva是个允许通过多领域公司直接捐钱给发展中国家人们的在线借贷平台。Kiva记录了每一个需要贷款的人的个人故事,让捐赠者能够直接联系他们。简单地说,Kiva方便了改变生活的借贷。该基金的捐赠来自于本书的销售所得,并为有需要的人提供这些贷款。
更多信息请参见:http://www.kiva.orgWarriors希望工程Warriors希望工程(Hope for the Warriors)的任务是提升后911服役人员的生活品质,包括他们的家人,以及那些曾在工作岗位上因持续的生理和心理创伤而倒下的家庭。Warriors希望工程致力于恢复自我意识,恢复家庭单位,以及恢复我们的服务人员和我们的军人家属对生活的希望。
更多信息请参见:http://www.hopeforthewarriors.org自闭症演讲组织自闭症是一种非常复杂的病症状态,患者在社交互动、沟通、重复的行为上均存在不同程度的困难。美国疾病控制中心估计,88个美国儿童当中会有1个存在某种形式的自闭症。自闭症演讲组织是一个致力于改变那些与自闭症作斗争的患者们的未来的组织。他们通过为生物医学研究提供资金来做到这一点,研究的范围涉及自闭症的病因、预防、治疗和治愈。自闭症演讲组织也提供自闭症宣传,以及为自闭症患者的家庭提供支持。
更多信息请参见:http://autismspeaks.org联系我们我和我的合著者们投入了大量的时间和精力在本书上,所以当我们听到有人读过我们的书并想分享他们的想法时,我们总是很兴奋。无论你想在什么时候联系我们,你可以把所有问题、意见、威胁和婚姻的建议直接发给我们,我们的联系方式如下:
Chris Sanders作者E-mail: chris@chrissanders.orgBlog: http://www.chrissanders.org; http://www.appliednsm.comTwitter: @chrissanders88Jason Smith 合著者E-mail: jason.smith.webmail@gmail.comBlog: http://www.appliednsm.comTwitter: @automaytDavid J. Bianco,贡献者E-mail: davidjbianco@gmail.comBlog: http://detect-respond.blogspot.com/; http://www.appliednsm.comTwitter: @davidjbiancoLiam Randall 贡献者E-mail: liam@bro.orgBlog: http://liamrandall.com; http://www.appliednsm.comTwitter: @liamrandall致谢《哥林多后书》第12章节如是说:“但他对我说,‘我的恩典够你用的,因为我的能力是在人的软弱上显得完全。’因此,我更喜欢夸自己软弱,好让基督的能力庇佑我”。
写这本书的过程简直证明了上帝的力量对人性弱点的完善。本书是我曾经参与的困难的项目之一,对上帝的信念让我能够终坚持下来。因为上帝,这本书以及我所做的一切都是可能的,我真诚地希望我的这次工作可以作为上帝神奇力量的见证。
这本书之所以能完成,离不开许多朋友直接或间接的帮助。我想借此机会感谢他们。
Ellen,你是我的挚爱,我的后盾,我的力量,也是我的头号粉丝。没有你,这一切是不可能成功的。我要感谢你曾经承受过的压力与绝望,以及本书写作过程中那些疯狂的日日夜夜。同时我还想感谢你帮助修改本书。我想,你的英语专业终于派上了用场。我爱你,成为你的丈夫我感到很自豪。
爸爸妈妈,在你们的影响下成长,使我成为一个独特的人。作为子女我所能做的将会继续坚持,传承你们赋予的性格并分享你们给予的爱。我爱你,爸爸;我也爱你,妈妈。
我的家庭,尽管我们只是一个小团体,我们之间分享的爱却是浓厚的,这对我来说太重要了。虽然我们相距甚远,但我知道你们爱着我并支持我,我很感激这一点。
Perkins的家庭,感谢你积极地让我走入你的生活,我很幸运,有你的爱和支持。
Jason Smith,毫不夸张地说,你是我遇到过的睿智的人,与你相处非常愉悦。你不止是一个伟大的同事和合着者,你更是一个久经考验的朋友。我可以毫不犹豫地说,你已经是我的兄弟。我永远感激这一切。
David Bianco和Liam Randall,我已经不知道怎么感谢你们对本书的巨大贡献。你们的贡献价值实际已远远超出你们的想象。
至于我的同事(过去的和现在的),我一直认为,如果一个人周围都是好人,他会成为一个更好的人。很幸运我在公司工作中能够与一些优秀、正直的人共事。我要特别感谢我的InGuardians(公司名)大家庭:Jimmy、Jay、Suzanne、Teresa、John、Tom、Don、 Rad、Larry、Jaime、James、Bob和Alec。我还想感谢Mike Poor,是他为本书写的序言,他也依然是我心目中的数据包忍者偶像之一。
Syngress的工作人员,谢谢你们让我有机会写成这本书,并帮助我将这个梦想变成现实。
本书的技术内容和方向涉及的领域可能超出了我的认知能力,但我会尽力做到好。除了上面提到的亲朋好友,我还要感谢以下人员作出的贡献,是他们协助对每个章节做了细致的审查,让我从他们身上获得不少好的创作灵感,本书的成功离不开他们的支持,人员罗列如下(排名不分先后):
Alexi Valencia、Ryan Clark、Joe Kadar、Stephen Reese、Tara Wink、Doug Burks、Richard Bejtlich、George Jones、Richard Friedberg、Geoffrey Sanders、Emily Sarneso、Mark Thomas、Daniel Ruef、 CERT NetSA团队的其他成员、Joel Esler、Bro团队、Mila Parkour、Dustin Weber、and Daniel Borkmann。
Chris Sanders