购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

关注引人注目的大问题,如高级持续性威胁(APT),是人的天性。与APT有关联的攻击者攻陷过大型零售商、金融机构甚至政府网络,但如果将全部注意力都放在APT或其他可能上新闻头条的问题上,就会忽略基本问题。即便有保护系统的新防火墙和强大的流量监控设备,如果不关注安全职责的重要方面,也可能导致系统的“盔甲”出现大量裂缝。忽略基本方面(如不确保系统是最新的)可能带来严重的后果。

来看一个例子。假设您是一家中型电子商务公司的信息安全经理,您搭建了防火墙来阻止入站流量,只允许隔离区(DMZ)内系统上的流量去往面向互联网的服务,还开启了出站过滤功能,以禁止未经授权的出站流量通过。在终端上,您启用了反病毒软件,并加固了服务器。您以为自己的系统是安全的。

但在DMZ中的一台Linux服务器中,一个旧的Web服务正运行在过期的Tomcat版本上。这是一次不明智的决策(尝试向一些业务合作伙伴销售宝贵的专用数据)留下的隐患。这种尝试虽然失败了,但由于已经有一些订单,而根据合同,公司必须让这个服务器再运行一年。到年底时,这个项目悄然结束了,但这个服务器还在运行,所有人都将它忘在脑后。但外面有人注意到了它,并通过一台位于摩尔多瓦的失陷服务器发起了攻击,而您这个未打补丁的Tomcat服务器存在一个5年前的Java漏洞。至此,攻击者在您的网络中建立了“桥头堡”,而您所有的保护措施都无法挫败它。问题出在什么地方呢?

本书将证明牢固掌握基本信息安全技术的重要性,这些基本技术是成功的信息安全计划的重要组成部分。可惜它们常常被忽略,进而让位于更有吸引力的主题,如流量分析和自动化恶意软件沙箱(automated malware sandboxing)。这些主题确实是信息安全领域的重大进展,但在没有牢固掌握基本技术的情况下,投资于更高级的工具和技术毫无意义。

本书是为肩负如下任务的安全从业人员编写的:在预算很少的情况下打造一个漏洞管理系统,它具备商用漏洞管理工具的功能,能够为组织提供保护。如果读者还熟悉漏洞管理过程,那就更好了。要自己动手打造漏洞管理系统,必须熟悉Linux和数据库概念,并具备一些编程语言(如Python)的使用经验。本书的脚本是使用Python编写的,但您可使用自己喜欢的现代脚本语言或编程语言来重新编写它们。

被视为基础的安全主题有很多,如认证管理、网络设计和资产管理。这些主题对分析人员来说可能不那么有趣,却至关重要。

漏洞管理是信息安全的基本概念之一。没有任何软件包是完美无缺的,软件不可避免地会出现bug,而很多bug都会带来安全隐患。处理这些软件漏洞是信息安全领域中一个永恒的主题;要部署更高级、更有针对性的工具,必须确保安全基准,而要确保安全基准,必须对漏洞进行管理。

漏洞会影响IT基础设施的各个层面,因此漏洞管理会影响IT安全计划的各个方面。要确保终端安全,必须将工作站和服务器中安装的软件升级到最新版,以最大限度地缩小攻击面。零日漏洞始终是重要的关注点,但通过消除易于利用的已知(有时是存在已久的)漏洞,可增大攻击者攻陷终端进而在环境中建立“桥头堡”的难度。网络安全旨在竭尽所能只让必要的流量穿过内部网段和进出互联网,但如果系统或网络设备存在已知的漏洞,即便原本合法的流量也可能包含基于网络的攻击(它们使用的是受信任的协议)。身份和访问管理(IAM)对用户进行限制,使其只能访问获得授权的系统和数据,但如果身份系统本身存在漏洞,攻击者便可轻松地绕过它们。

如果环境具备安全基准,那么采取的任何应对措施都不能通过利用已知的漏洞来轻易绕过。咱们来看一种类似的情况:第一次世界大战之后,法国为抵御德国的入侵,沿两国边界建造了大量的堡垒和壕沟,并按当时法国陆军部长姓名将其命名为马奇诺防线。但第二次世界大战爆发后,德国避开马奇诺防线,穿过法国与比利时的边界入侵法国。造价如此高昂的防御工事没有发挥任何作用。这个道理也适用于网络环境,如果没有基本的安全保障,任何额外的反制措施都无异于马奇诺防线,攻击者可轻松地避开它们,因为别的地方有更容易的进攻路径。但通过建立主动的漏洞管理计划来提供并维护基本的安全保障,便可信任额外的安全措施能进一步提高安全计划的实际价值。

补丁管理对整个企业中服务器和终端的软件版本与补丁等级进行跟踪,这可能是与完整的软件配置管理(SCM)系统一道完成的。它可远程推送补丁,以确保系统是最新的。虽然传统的补丁管理与本书将介绍的漏洞管理有很多相似之处,但它们背后的假设有着天壤之别。

在补丁管理中,假设有补丁可用,并且一个补丁管理系统能够管理网络中需要打补丁的所有设备,另外有足够的时间和人力来打上所有的补丁。然而,在实际环境中,满足上述所有条件的情况少之又少。有些设备不由SCM进行管理,如路由器和防火墙等网络设备、测试机、遗弃的服务器以及其操作系统不与SCM代理兼容的设备。对典型的SCM部署来说,所有这些设备都是不可见的,很容易变得过时却没有任何人注意到。即便对终端来说自动打补丁是可行的,通常也必须手工处理服务器和网络设备,因为自动给服务器打补丁可能给组织带来无法承受的停机时间。另一方面,手工给服务器和网络设备打补丁需要时间,这会让IT人员不堪重负。

漏洞管理采取的方法更为务实,它要解决的问题是,在资源有限的情况下,如何解决最严重的漏洞,从而最大限度地改善安全状况,而不是如何安装所有的补丁。漏洞管理从风险管理的角度看待问题。我们首先找出网络设备(无论是受管的还是不受管的)中存在的所有漏洞,并确定哪些漏洞给组织带来的风险最大。收集这些数据后,我们便有足够的信息,能够确定各种补丁安装和修复措施的轻重缓急。安装紧要的补丁并采取紧要的修复措施后,如果我们还能采取更多的更新和修复措施,那更好。但通过优先考虑风险最高的问题,并明智地分配有限的时间和资源,可在花费较少精力的情况下极大地改善系统的安全状况。

本书分两部分——概念部分和实战部分。第一部分(第1章~第6章)介绍了与漏洞管理相关的概念以及漏洞管理的步骤;第二部分(第7章~第15章)介绍了一种构建免费或低成本漏洞管理系统的实用方法。您可按顺序阅读本书,但最重要的是搞明白每个脚本背后的概念,这样才能根据实际情况修改它们。本书的最后介绍了那些在您的漏洞管理系统能够正常运行后可能会面对的主题,其中一个主题是在预算允许的情况下选购一款商用工具,以改善您的漏洞管理计划。

本书先理论后实战,内容的排列顺序合乎逻辑,但如果您是经验丰富的安全从业人员,可直接跳到自己最感兴趣的主题。同样,书中的脚本也是按合乎逻辑的顺序编写的,但您可分别使用它们,至于具体使用哪些,则取决于您的环境中已经有哪些工具和进程。

下面概述了各章的内容。

● 第1章,“基本概念” :介绍漏洞管理的基本概念以及漏洞管理与风险管理的关系。

● 第2章,“信息来源” :讨论为实施漏洞管理需要收集的各种数据。

● 第3章,“漏洞扫描器” :介绍如何扫描网络中的系统以找出其中的漏洞。

● 第4章,“自动漏洞管理” :阐述如何打造一个自动收集并分析数据的系统。

● 第5章,“处理漏洞” :介绍如何根据收集的漏洞信息采取相应的措施——打补丁、采取缓解措施或接受风险。

● 第6章,“组织支持和办公室规则” :介绍如何在组织中实施漏洞管理。

● 第7章,“搭建环境” :阐述如何安装操作系统和必要的包以及如何通过编写脚本来确保一切都是最新的。

● 第8章,“使用数据收集工具” :讨论如何使用Nmap、OpenVAS和cve-search来收集数据。

● 第9章,“创建资产和漏洞数据库” :演示如何将扫描结果导入数据库。

● 第10章,“维护数据库” :介绍如何在数据库中添加键及剔除过时的数据。

● 第11章,“生成资产和漏洞报告” :深入探讨如何为资产和漏洞创建基本的CSV报告。

● 第12章,“自动执行扫描和生成报告” :介绍如何通过编写脚本来自动执行Nmap和OpenVAS扫描以及定期地生成报告。

● 第13章,“高级报告” :讨论如何生成HTML格式的高级报告。

● 第14章,“高阶主题” :介绍如何创建API、自动利用漏洞以及支持云环境。

● 第15章,“结语” :介绍未来的安全发展趋势及其对漏洞管理过程的影响。

本书旨在引领漏洞管理新人打造一个行之有效的漏洞管理系统,以便能够生成准确且有用的漏洞情报。这些情报可加深您对组织漏洞状况的认识,进而改善组织的总体安全状况。通过阅读本书,读者可提高组织的漏洞管理能力,而这种能力是确保信息安全计划获得成功的基石之一。

本书提供了源代码下载等配套服务,请登录异步社区,搜索本书书名,进入本书页面,点击“配套资源”,跳转到下载页面,按提示进行操作即可。本书配置资源包含本书涉及的所有代码,还有一些可在环境中使用的示例配置文件。欢迎各位读者提出宝贵的建议。

与大多数计算机安全工具一样,本书介绍的工具和技术既可用于防御又可用于进攻。扫描可能成为充满恶意和敌对的行为,因此请只对您拥有或被授权扫描的系统和网络进行扫描。再重申一次,不要对并非属于您的系统进行扫描(准确地说是探测)。即便在妥善使用的情况下,这些扫描工具也可能带来负面后果,在极端情况下,可能会导致系统崩溃和数据丢失。采取扫描或与漏洞利用相关的行动前,务必对潜在的风险心中有数。 bw4KSU3jRVzh6z8z8u+d02Mj18exe5ZgN4YO6AJdMEUbCMvCn/OTaBZd8164h6g1

点击中间区域
呼出菜单
上一章
目录
下一章
×