精通防御性安全(四)
原文:
annas-archive.org/md5/f98daef68ae3edbfb393ecb438616462译者:飞龙
第三部分:深入防御安全
本节将帮助你从专业到大师,展示防御安全领域中最好的系统、工具和方法。
本节包含以下章节:
-
第十三章,漏洞评估工具
-
第十四章,恶意软件分析
-
第十五章,利用渗透测试增强防御安全
-
第十六章,进行取证实践
-
第十七章,实现安全工具的自动化
-
第十八章,大师级有用资源汇编
第十三章:第十三章:脆弱性评估工具
“在第四次工业革命的破坏性和指数级推进过程中,越来越多的过程被数字化和机器人化,数据的爆炸性增长越来越多地由人工智能进行管理。伴随这一新技术能力的推进,网络犯罪带来的风险也在增加。因此,增强的网络安全能力成为让社会从第四次工业革命中受益的挑战之一。”
— 恩尼奥·罗德里格兹,经济学博士及哥斯达黎加经济学会会长
本书中我们已经讨论了许多关于脆弱性的内容;然而,本章的创建是作为该主题的单点参考,以便你可以在一个地方获取所有关于脆弱性的信息。
虽然第二章《管理威胁、脆弱性和风险》描述了脆弱性是什么以及如何分类它们,但本章更多关注如何在脆弱性分类后识别它们。
因此,我们可以说,尽管第二章,《管理威胁、脆弱性和风险》是脆弱性管理的理论部分,但本章更多关注实际/技术方面,包括深入探讨用于发现我们系统和基础设施中脆弱性的工具。
为了实现这些目标,本章将涵盖以下主题:
-
如何像首席信息安全官(CISO)一样处理脆弱性
-
脆弱性测试工具的类型
-
安装和配置最为知名的脆弱性评估扫描器(开放脆弱性评估系统,也称为OpenVAS)
-
Nexpose及其他可用脆弱性扫描器概述
技术要求
为了充分利用本章的内容,建议安装虚拟机(VM)并安装Kali Linux,以便正确进行实验操作。
处理脆弱性
正如我们在第二章,《管理威胁、脆弱性和风险》中所看到的,管理公司级别脆弱性的过程包括识别、分析、评估和修复。
现在,这个过程就是我们所说的管理方面。现在,是时候从操作(日常)角度理解它是如何实现的。
谁应该寻找脆弱性?
如果你的预算足够大,你必须将这项任务分配给内部或外部(第三方)红队(如第一章《防御性安全概念复习》中所述)。
另一方面,如果您的预算有限,您可以鼓励公司内部人员报告您基础设施中的任何漏洞。为了使这一做法有效,您必须建立并传达一个过程,并且在可能的情况下,为发现并报告这些漏洞的人提供激励。
漏洞赏金计划
漏洞赏金是一个巧妙的想法,旨在鼓励他人告诉您您的漏洞,而不是将其用于对付您。
该计划的目标是提供经济激励,鼓励外部人员发现您网站资源(应用程序、页面等)中的未知漏洞。
提示
漏洞赏金计划更适合那些拥有高安全标准的公司,以及已经经过内部红蓝队测试和加固的软件。因此,为一个尚未正确加固的、最近创建的网站发布漏洞赏金是资源的浪费。
如前所述,漏洞赏金计划通常由那些投入大量资源于其平台的强大公司提供,因此,如果您有非常出色的渗透测试技能,我强烈建议您查看这些网站并了解更多关于这些计划的信息:
漏洞赏金计划的支付通常根据发现的漏洞影响进行分类,这与支付类别相关,如下图所示:
](tos-cn-i-73owjymdk6/ad90b1a396a44e0e9f80f58396a4a7af)
图 13.1 – 漏洞赏金支付示例
然而,这可能引发以下问题:
我只应该检查外部(面向互联网)系统和服务中的漏洞吗?
内部漏洞
尽管面向外部的系统更容易受到攻击,但您仍然负责公司数据的整体安全,这意味着您还需要关注数据的可用性和完整性,这两个因素特别容易受到内部攻击(无论是恶意还是无意的)。
因此,红队也应对内部系统进行测试,以确保数据的机密性、完整性和可用性得到保护。
请查看以下截图:
](tos-cn-i-73owjymdk6/f633fdb61a994039bd83fc220fc62a94)
图 13.2 – 内部与外部测试程序
如前面的截图所示,漏洞测试程序可以通过利用外部资源来增强系统安全性。
漏洞测试工具
有大量工具可以用于执行漏洞测试,我们可以将它们分为两大类:手动漏洞评估 和 自动化漏洞扫描器。
手动漏洞测试
你可以利用我们在前几章中回顾的许多工具,手动查找漏洞——例如,Burp Suite、Nmap、Wireshark、Shodan 和 Web Scrappers。
这类测试需要更高的技术技能,通常由网络安全专家或红队/紫队来执行。
自动化漏洞扫描器
这些扫描器的目标是通过让我们仅需几个步骤,就能扫描给定的网页资源或系统,检测其中的一种或多种漏洞,从而让我们的生活更轻松——事实上,对于大多数扫描器,只需点击一次即可完成。
这使得组织能够扫描其系统中复杂的漏洞,而无需依赖渗透测试人员进行漏洞评估,从而使得这些扫描器成为预算有限的公司聘用渗透测试人员时更合适的选择。
它们中的大多数包含已知漏洞的数据库(常见漏洞与暴露,或 CVE),并附有相应的脚本来测试每个漏洞。在某些情况下,它们甚至将这些漏洞分组,以便用户确定系统是否符合某些合规要求,例如 支付卡行业数据安全标准(PCI DSS)或 健康保险流通与责任法案(HIPAA)。
以下截图显示了 Nessus 漏洞扫描器的图形用户界面(GUI):
](tos-cn-i-73owjymdk6/50ccafed7c75476c936df2ad4afa30c8)
图 13.3 – Nessus 漏洞扫描器的图形用户界面
好的——现在,让我们深入了解两款较为著名的漏洞扫描工具:OpenVAS 和 Nexpose。
使用漏洞评估扫描器(OpenVAS)
OpenVAS 是最著名的开源漏洞扫描器。
该软件主要由 Greenbone networks 作为开源项目维护 (www.greenbone.net),并作为其商业漏洞管理解决方案套件的一部分。
该软件能够测试整个网络,发现设备,并执行多个操作来确定系统的操作系统(OS)、端口、配置和安装的软件,如下图所示:
](tos-cn-i-73owjymdk6/40c854432d064bb49e21893fb9711db9)
图 13.4 – OpenVAS 网络扫描结构
之后,OpenVAS 可以执行多个检查,以识别每个已识别组件上的漏洞。
认证测试
OpenVAS 强大功能的一部分是能够执行两种类型的测试:未认证测试和认证测试。
未认证测试较少侵入性,因为它仅根据软件、配置和发现的端口测试一般漏洞。
另一方面,认证测试更强大,因为它允许你在测试中添加另一个因素——即用户会话、身份验证和授权。
在这里,OpenVAS 将使用有效凭证(由测试者提供)运行 本地安全检查(LSC),以收集有关目标系统漏洞的更多细节。
以下是可以在认证测试中使用的凭证示例:
-
服务器消息块(SMB):用于检查 Windows 系统上安装的软件的补丁级别,如 Adobe Acrobat Reader 或 Java 套件
-
安全外壳(SSH):用于检查 Unix 和 Linux 系统上的补丁级别
-
ESX 集成(ESXi):用于本地测试 VMware ESXi 服务器
-
简单网络管理协议(SNMP):用于测试网络组件,如路由器和交换机
现在,让我们看看如何在我们的 Kali Linux 机器上安装这个工具。
安装 OpenVAS
好的——第一步是使用以下命令下载并安装 OpenVAS:
sudo apt-get install openvas
安装好软件后,接下来执行配置脚本,使用以下命令:
sudo gvm-setup
你遇到错误了吗?
如下截图所示,存在与 postgresql 相关的常见错误,但我们将看到如何解决它:
图 13.5 – postgresql 错误
错误的原因是同时运行了两个版本的 postgresql,而 postgresql 使用 传输控制协议(TCP),如你所知,它不能在两个版本之间使用相同的端口。
因此,要解决此问题,我们只需确保版本 13 正在 TCP 端口 5432 上运行,然后可以将任何其他可用端口分配给版本 12。下面是如何操作的。
我们首先打开 postgresql 13 的配置文件,如下所示:
sudo nano /etc/postgresql/13/main/postgresql.conf
在这里,你需要导航到端口并将当前值更改为 5432,如以下截图所示:
图 13.6 – 更改 postgresql 13 的端口
然后,使用 Ctrl + O 保存文件,使用 Ctrl + X 退出,如以下截图所示:
图 13.7 – 保存 postgresql 配置文件
下一步是修改 postgresql 12 的端口,并将端口设置为 5433,如下所示:
sudo nano /etc/postgresql/12/main/postgresql.conf
然后,像之前一样,我们需要更改端口,这次从 5432 改为 5433,如下截图所示:
图 13.8 – 更改 postgresql 12 的端口
然后,按 Ctrl + O 保存文件,再按 Ctrl + X 退出。
现在,我们只需要使用以下命令重启 postgresql:
sudo systemctl restart postgresql
这样就应该解决问题了!
现在,我们可以返回并运行 OpenVAS 配置脚本,如下所示:
sudo gvm-setup
现在,过几分钟后,你应该会看到类似下面的内容:
图 13.9 – OpenVAS 配置和密码
提示
确保你复制密码并保存在安全的位置,因为你将需要它来访问 OpenVAS。
此时,你已经准备好启动 OpenVAS!
使用 OpenVAS
要执行 OpenVAS,只需键入以下命令:
sudo gvm-start
请注意,你也可以通过 Kali Linux 的 GUI 启动 OpenVAS,并在 02 - Vulnerability Analysis 下浏览应用程序,如下图所示:
图 13.10 – 打开 OpenVAS
在某些情况下,OpenVAS 可能无法打开默认浏览器,并会显示以下错误:
图 13.11 – OpenVAS 配置和密码
但不用担心——在这种情况下,你只需要从命令行复制 OpenVAS 的统一资源定位符(URL)(如下图所示),然后粘贴到你喜欢的网页浏览器中:
图 13.12 – OpenVAS URL
等等——某些浏览器可能会将此页面标记为危险,如下图所示。不过,你可以忽略警告并继续访问 OpenVAS:
图 13.13 – 打开 OpenVAS 时的通用警告
恭喜!!现在,你应该能看到 OpenVAS 登录页面,如下图所示:
图 13.14 – OpenVAS 登录页面
现在,你可以使用用户名 admin 和我们刚才复制的密码登录 OpenVAS。
更新你的 Feed
OpenVAS 使用多个 Feed 作为输入来检查漏洞,因此保持其最新非常重要。
要查看版本信息,你可以进入 Administration | Feed Status,如下图所示:
图 13.15 – OpenVAS Feed 状态页面
如果需要更新 Feed,可以使用下述命令。
-
要更新 NVT Feed,请运行以下命令:
sudo runuser -u _gvm -- greenbone-nvt-sync -
要更新 SCAP Feed,请运行以下命令:
sudo runuser -u _gvm -- greenbone-feed-sync --type SCAP -
要更新 CERT Feed,请运行以下命令:
sudo runuser -u _gvm -- greenbone-feed-sync --type CERT -
要更新 GVMD DATA Feed,请运行以下命令:
sudo runuser -u _gvm -- greenbone-feed-sync --type GVMD_DATA
完美!现在,你已经拥有一个完全配置、更新并准备执行扫描的 OpenVAS 实例。
如前所述,你可以对特定的 Internet Protocol(IP)地址或一组 IP 地址进行扫描。
现在,你已经准备好熟悉这个工具并开始测试你的环境。
Nexpose Community 概述
Nexpose 是另一个与 OpenVAS 非常相似的漏洞扫描器。
Nexpose Community 由 Rapid7 提供支持,你可以在这里下载:www.rapid7.com/info/nexpose-community/。
我们必须强调一点,功能已被限制;不过,如果你想要完整版本,他们也提供 Nexpose 的完整版本,30 天试用。
安装步骤在以下链接中有详细文档:docs.rapid7.com/nexpose/download。
要运行扫描,你只需按照以下简单流程操作,如Figure 13.16 中所示:
-
信息与安全:在这里,你只需添加测试的名称和描述。
-
资产:选择要扫描的资产或系统。
-
认证:在这里,你可以添加进行认证测试的凭据。
-
模板:在这里,你可以选择要执行的扫描类型——例如,Sarbanes-Oxley(SOX)扫描或 PCI DSS 扫描。
-
引擎:在这里,你可以选择系统将从哪些来源收集漏洞。
-
计划:这是一个非常酷的选项,可以让你安排未来的或定期的测试。
你可以在以下截图中看到一个概述:
图 13.16 – Nexpose Community GUI
此外,Rapid7 发布了一个名为 InsightVM 的新产品(见Figure 13.17),宣传为 Nexpose 的增强版,包含仪表盘、修复项目、持续监控(CM)等功能。
在这里,你可以找到 Nexpose 和新款 InsightVM 之间的详细对比:www.rapid7.com/products/nexpose/insightvm-comparison/。
你可以在以下截图中看到 InsightVM 的默认仪表盘:
图 13.17 – InsightVM
还有许多其他漏洞测试系统,既可以在本地计算机上运行,也可以是基于云的,您可以在世界任何地方通过简单点击执行。
实际上,还有许多其他工具,如 legion、nikto、nmap 和 Unix-privesc-checker,你也可以使用它们来查找系统中的漏洞,正如下面截图所示,这些工具都可以在 Kali Linux 上免费使用:
图 13.18 – Kali Linux 上的漏洞分析工具
哪个更好?
这将取决于你的公司、预算,甚至你必须遵守的法规。除此之外,考虑你对这些工具中哪个最熟悉和舒适使用也是非常重要的。
总结
漏洞管理是防御性安全中的一个关键领域;因此,在这一章中,我们重点介绍了用于执行漏洞评估的工具。
在这里,你还了解了可用工具的类型,以及作为网络安全领导者,你可以使用的一些策略来增强你的漏洞扫描策略。
此外,我们安装了 OpenVAS,它被许多人认为是最佳的免费漏洞扫描工具,毫无疑问,它是你网络安全工具库中的必备工具。
我们以对其他工具(包括免费和付费工具)的概述结束了这一章,你也可以利用这些工具来测试你的基础设施是否存在已知漏洞。
现在,让我们为下一章做准备,在这一章中,你将学习所有关于恶意软件分析的知识。
进一步阅读
如果你想了解更多关于漏洞奖励的信息,可以参考这本书:
www.packtpub.com/product/bug-bounty-hunting-essentials/9781788626897
第十四章:第十四章:恶意软件分析
“恶意软件感染的目标是利用系统,因此恶意软件分析作为一种机制变得非常重要,帮助我们更好地理解恶意软件,从而减少未来攻击的概率和影响。”
– Patricia Herrera,网络安全硕士
恶意软件分析被许多人视为一种进攻性安全任务。然而,作为防御性安全的专家,您必须了解这一过程的基础知识,这样您才能在防御性安全策略中加以利用。
因此,尽管本章旨在覆盖恶意软件分析的基础知识,但我们也将涵盖一些高级主题,包括一个实际操作活动,向您展示如何执行基本的恶意软件分析,但更重要的是,如何收集(并解释)分析结果中最有价值的信息。
这里是我们将在本章中涵盖的主要主题的详细信息:
-
恶意软件分析的重要性
-
恶意软件基础知识,包括功能、目标和后门
-
恶意软件分析的类型(静态、动态和混合)
-
恶意软件分析的分类(静态、交互式、自动化和手动)
-
最佳恶意软件分析工具概述
-
实际操作体验,执行基本的恶意软件分析
技术要求
对于本章内容,您将需要一台 Windows 机器来执行恶意软件的实际分析。
为什么我要分析恶意软件?
让我们首先定义恶意软件分析,作为一种分析恶意软件(软件、脚本、统一资源定位符(URL)等)以尽可能多地收集有关威胁的信息的过程。
这被视为一项非常技术性的任务,需要高度熟练的专业人员,而这些资源对于公司来说可能非常昂贵。此外,这项任务还可能非常耗时,这进一步增加了执行此分析的成本。然而,即使是预算充足的公司,也可能不会投资于恶意软件分析,原因在于他们还没有意识到这一投资的好处。
因此,让我们首先描述执行恶意软件分析的主要好处和输出。
恶意软件功能
恶意软件分析的主要目标之一是发现恶意软件的内部功能。这个步骤至关重要,因为它将支持在感染后的隔离工作。这个步骤的主要目标在这里描述:
-
发现恶意软件利用的漏洞来感染系统
-
理解恶意软件在系统之间传播所使用的机制
-
确定恶意软件是否具有任何高级功能,如自我销毁、变形能力、传播、人工智能(AI)等
恶意软件目标
作为本次分析的一部分,您将能够确定恶意软件的目标,这将帮助您确定每个案例所需的最佳缓解措施。这里给出了一些例子:
-
数据外泄
-
数据破坏
-
数据加密(勒索软件)
-
数据删除
-
系统故障(网络战)
-
系统中断(黑客行动主义)
-
系统损坏
恶意软件连接
恶意软件分析的另一个关键方面是确定谁创建了恶意软件,以及被外泄的数据去向何方。
这是因为两个主要原因。第一个是法律方面的问题,因为在大多数国家,分发恶意软件是犯罪行为,因此识别试图危害你系统的团体至关重要。
第二个原因是关于使用这些信息来屏蔽和列入黑名单互联网协议((IP))地址,这些地址被恶意软件使用,因为这将防止进一步的攻击。
此外,这些数据(IP、服务器名称等)可以作为威胁情报,由开源(众包)系统使用,以防止其他公司和行业的攻击。
看一下以下截图:
图 14.1 – IP 黑名单
如前面的截图所示,黑名单 IP 地址可能有助于阻止正在进行的攻击,但也可能防止同一团体的未来攻击。还需要记住,黑名单还将阻止命令与控制(C&C)攻击。
恶意软件后门
恶意软件的一个共同特征是创建后门。虽然这些后门的用途和目标可能有所不同,但确定任何后门的踪迹非常重要,以减少进一步感染或数据泄露的可能性。
受影响的系统
另一个重要的分析因素是有关将受到恶意软件影响的系统(操作系统、软件或硬件)。这非常重要,因为某些恶意软件可能会保持不活跃,直到出现特定条件或系统(例如 Stuxnet)。
现在你已经了解了恶意软件分析的好处和重要性,是时候了解恶意软件分析的类型以及它们的类别了。
恶意软件分析的类型和类别
有大量工具可以用于恶意软件分析,因此为了更好地理解它们,首先让我们来描述三种(实际上是两种)恶意软件分析工具。
静态恶意软件分析
这种类型的分析基于对代码的审查,以确定潜在的威胁指示。这些指示可能是哈希值、IP 地址、代码签名、代码模式、字符串、函数等。
这种分析的主要特点是它不执行代码,虽然这在资源方面是一种优势,但其范围也有限,因为它不能完全测试恶意软件所执行的影响和操作。
另一个缺点是,复杂的恶意软件可能包含先进的功能,旨在绕过这种静态分析。
动态恶意软件分析
这种类型的测试需要更多的资源,包括熟练的专业人员,以及技术资源,因为它需要一个隔离的环境来运行测试,称为沙箱。
提示
沙箱非常敏感,因为如果没有正确配置和隔离,它们可能会导致灾难性的事件。因此,沙箱只能由经验丰富和经过培训的专家使用。
在这种类型的测试中,恶意软件会在沙箱中执行,以发现前面章节中解释的几乎所有恶意软件特征。
因此,动态恶意软件分析的主要优点是它能提供对恶意软件的更深入洞察,帮助发现额外的信息,这些是静态测试无法获得的。
然而,有些高级恶意软件可以绕过xxx.xxx.xxx.xxx——使得动态测试不可靠。
为了解决这个问题,组织现在使用混合方法。
混合恶意软件分析
如下图所示,混合方法是基于前面已解释的两种方法的结合,旨在利用它们的优势,同时弥补它们的弱点:
图 14.2 – 恶意软件分析类型
如前所述,先进的恶意软件可能通过使用代码来欺骗沙箱,防止在沙箱环境中完全执行;然而,使用启发式方法或签名的静态分析可能能够检测到这种行为,从而允许分析人员修改沙箱,以执行恶意软件的隐藏功能或操作。
什么是启发式恶意软件分析?
启发式方法被引入作为一种检测新威胁的方式,例如未知的恶意软件、修改过的恶意软件,甚至是多态性恶意软件。它们基本上通过分析文件的代码,寻找已知病毒的片段、常见的功能或仅出现在恶意软件中的代码,例如加密整个硬盘、禁用杀毒软件等。
我知道你想了解更多关于恶意软件工具的内容,但在深入了解之前,我们需要了解恶意软件分析的各个阶段,因为这可能作为一种分类方法,帮助区分不同的工具。
现在,让我们探索恶意软件分析的不同类别。
静态属性分析
这是一种简单的分析类型,旨在分析恶意软件的一些基本特征(元数据),以便更好地了解恶意软件。
通常,这是判断是否需要进一步分析的第一步,甚至可以帮助确定更合适的分析方法。
交互式行为分析
交互式行为分析是一种非常复杂的分析类型,在这种分析中,分析人员与恶意软件进行交互,以便更好地理解它(影响、连接等)。这种测试在一个专门为执行此测试而创建的受保护和隔离的环境中进行。这样可以使分析人员确定恶意软件对操作系统(OS)、注册表项、进程、服务相互依赖、后门等所造成的更改。
完全自动化分析
这是一组预定的测试,可以对给定的恶意软件执行,以收集一些额外的信息。这个测试通常是基于云的(作为服务),并由第三方提供。
主要的优势之一是它会生成一份易于阅读的报告,这意味着执行此类测试不需要特殊技能。此外,当公司需要以方便快捷的方式分析大量恶意软件样本时,这种分析是非常推荐的。
手动代码逆向
这可能是最复杂的恶意软件分析类型,因为它需要使用调试器、反汇编工具或编译器进行代码逆向。
在某些情况下,甚至可能需要高级的加密技能来执行此类测试。
不同类别的恶意软件分析如下面的图所示:
图 14.3 – 恶意软件分析的类别
如前图所示,代码逆向是最复杂且最耗时的分析过程。
好的——现在你已经成为恶意软件分析概念的专家(包括它们的类别和分析类型),是时候进入下一个话题,最终看到用于执行恶意软件分析的工具了。
最佳恶意软件分析工具
让我们回顾一下用于恶意软件分析的五大工具。此汇总包含了所有类型和类别的恶意软件分析工具。
进程浏览器
这个工具基本上是一个超级任务管理器,可以为你提供关于系统中正在运行的进程的详细信息。
它告诉你文件的位置、自动运行设置、进程的专用性能图(有助于发现异常模式),并且如以下截图所示,它提供了一个选项,可以使用VirusTotal.com的数据库检查每个进程,如果你想测试可疑进程,这非常有用:
图 14.4 – 使用进程浏览器通过 VirusTotal.com 检查运行中的进程
这个工具虽然基础,但它是免费的,并且得到了微软的支持,所以它绝对是一个很好的起点。
要下载它,请访问官方网站:docs.microsoft.com/en-us/sysinternals/downloads/process-explorer。
进程监视器
进程监视器(ProcMon)是微软(前 Sysinternals)提供的另一款出色工具,允许你实时监控所有与文件系统、进程和威胁活动相关的活动。可以通过以下链接免费下载可执行文件:docs.microsoft.com/en-us/sysinternals/downloads/procmon。
然而,这个工具每秒可以记录成千上万的事件,因此有可能会漏掉某些事件。不过,为了克服这个问题,你可以将结果导出为逗号分隔值(CSV)文件,利用像ProcDOT这样的工具进行离线可视化。
ProcDOT
如前所述,有一些很棒的工具,例如ProcMon和Wireshark,它们提供了很好的洞察力来揭示潜在的恶意软件;然而,这两个工具生成成千上万条记录,使得数据分析过程非常复杂且耗时。
但这时ProcDOT派上用场,它使你能够通过交互式图表关联来自两个数据源(ProcMon 和 Wireshark)的数据,这在分析过程中大有帮助。此外,该工具具有以下主要功能:
-
动画模式(非常适合轻松理解时间方面)
-
智能跟踪算法(帮助你聚焦于相关项目)
-
线程注入的检测和可视化
-
网络活动的关联(以及引发这些活动的进程)
-
活动时间线
-
用于清理噪音的过滤器(按全局和会话分类)
以下截图展示了来自 ProcDOT 的可视化分析和关联结果:
图 14.5 – ProcDOT 可视化分析
哦,此外这个工具是免费的,可以通过以下链接获取:www.procdot.com/index.htm。
Ghidra
Ghidra 是一款由美国国家安全局(NSA)开发的出色的软件逆向工程(SRE)套件,自 2019 年以来已作为开源软件免费发布。该软件的一个主要特点是能够在不执行代码的情况下进行反汇编。
此外,Ghidra 还具有以下功能:
-
在 Windows、macOS 和 Linux 上进行编译代码的跨平台分析
-
代码的反汇编、汇编和去混淆、图形化和脚本编写
-
支持多种架构,包括高级 RISC 机器(ARM)、PowerPC、每秒百万条指令(MIPS)、Java、6800、x86、x64、精简指令集计算机(RISC)等。
安装文件和常见问题(FAQ)可以在官方网页上找到:ghidra-sre.org/。
PeStudio
PeStudio 是一个很棒的工具,用于在 Windows 机器上进行静态恶意软件分析。
一个很酷的功能是你不需要安装它,因为它作为便携式可执行文件在 Windows 上运行。另外,请注意,软件有一个免费的基础版,也有一个可以以低价购买的高级版。
现在,让我们通过实际操作恶意软件分析来深入了解这个工具。
执行恶意软件分析
首先,让我们从他们的网站上下载可执行文件:www.winitor.com/download。
一旦你有了可执行文件,只需双击它们即可运行。然后,你将看到主界面,如下图所示:
图 14.6 – PeStudio 图形用户界面
现在,如前面的截图所示,我们只需要拖放我们想要分析的文件即可。
注意
恶意软件分析是一项危险的任务,可能会损害你的计算机甚至整个网络,因此,在开始之前,你需要遵循一些安全措施,正如我们接下来强调的那样。
安全措施
有一些安全规则必须遵循,以减少执行恶意软件分析时的风险。以下是这些规则的汇总:
-
切勿使用个人计算机或工作计算机进行恶意软件分析。
-
确保用于测试的计算机与网络隔离。
-
推荐使用隔离的虚拟沙箱环境。
-
尽可能为每次分析使用一个新的沙箱。
-
使用托管在与网络隔离的计算机上的虚拟机(VM),该虚拟机应安装全新的镜像且没有其他数据存储。
-
分析完成后,删除虚拟机。
-
为每次分析创建一个新的虚拟机。
-
在处理危险的恶意软件并进行动态分析时,请彻底清除主机计算机的硬盘并重新安装操作系统。
-
一旦识别出恶意软件,检查该恶意软件是否能够隐藏在硬盘驱动器(HDD)的启动扇区中,如果是,请采取必要的修复措施,彻底清除恶意软件,因为普通的磁盘清除可能不足以完全清除恶意软件。
好了,安全措施已经明确,接下来我们开始执行分析。
执行分析
在此案例中,我们将执行几种类型的分析,使用不同的文件类型,以便探索使用此工具可以收集的不同类型的数据。
这里的想法是通过工具的使用,确定在执行分析时需要查找的信息;因此,使用真实的恶意软件进行此示例是一种不必要的风险。相反,我们将使用已知的安全文件来执行分析。
对于第一个,我将使用一个注册表文件(例如,你可以使用 PeStudio 安装包中的那个)。
如下图所示,主屏幕会提供一些基本信息,如哈希值(这些哈希值可以与已知哈希数据库进行对比):
图 14.7 – PeStudio 的基本输出
此外,如图 14.8所示,还有一个名为virustotal的重要部分,它通过 VirusTotal 应用程序编程接口(API)与 VirusTotal 集成,以告知您不同防病毒软件对该文件的评级。在这里,您需要考虑它连接到外部服务器进行查询;因此,这里的结果可能需要一些时间才能显示出来。但是,如果其他人已经扫描了该文件,那么输出几乎是立即的。现在,这也告诉您一些关于文件的信息,因为如果找不到它,那么您可能面临一个非常新的威胁或修改后的文件用于攻击您的基础设施,因此这可能作为证据表明您正在面临有针对性的攻击。
这里的另一个有趣的数据是年龄列,因为它显示了每个防病毒软件扫描的时间,正如下面的屏幕截图所示,其中有一个超过 2 年的扫描,这意味着这个文件已经存在了相当长的时间:
图 14.8 – VirusTotal 的扫描结果
现在,字符串部分非常重要,因为它读取文件的实际内容,所以您可以在不打开文件的情况下进行探索。例如,在以下屏幕截图中,我们可以看到注册表键的值:
图 14.9 – 检查注册表文件的值而无需打开它
另一个例子是您可以确定文件内容是否编码了任何网址(例如 C&C 服务器),如下面的屏幕截图所示。在这个屏幕截图中要突出的另一个有趣的项目是工具还显示了长字符串,这可能被视为一种威胁。这非常有用,因为它通过非常清晰的方式向您显示这些信息,否则这些信息将很难手动查找:
图 14.10 – 文件内找到的 URL 模式
好了,现在让我们扫描一个更复杂的文件,例如.dll文件。
如图 14.11 所示,PeStudio 现在显示了更多类别和大量有用信息。
例如,字符串部分包含许多有趣的信息,如以下内容:
-
与注册表键的交互或操作
-
与文件的交互或操作,包括权限(例如,获取文件大小,删除文件,写入文件等)。
-
执行系统操作(打开进程,删除进程等)
-
窗口(GUI)管理(关闭窗口,发送弹出窗口,获取弹出窗口数据等)
-
输入和输出(I/O)操作(获取活动窗口,鼠标或键盘操作等)。
另一个需要查看的重要类别是与此文件相关的.dll文件,这对于确定恶意软件的范围至关重要。此外,PeStudio 允许你复制.dll文件的名称。如果你不熟悉.dll,可以在谷歌搜索以获取更多帮助(或直接访问Microsoft Developer Network(MSDN))。
你可以在这里看到 PeStudio 的概览:
Figure 14.11 – 在 PeStudio 中分析库
现在,在sections类别中,你将能够看到恶意软件的高级属性,例如文件是否可写、可执行、可共享或可丢弃(用X符号表示)。在这一部分中,你还可以看到恶意软件的另一个常见特征——自我修改,这是变形恶意软件的常见特性。
文件头类别还展示了一个非常重要的信息,即文件编译的时间。此外,请记住,一些恶意软件具有自动编译的特性,因此如果日期非常新,可能意味着你正面临的是高级的自动编译恶意软件。
哦,还有一件事:如果VirusTotal.com的任何杀毒引擎将文件识别为恶意软件(如下面的截图所示),那么你可以选择进入virustotal类别,获取有关恶意软件的更多信息:
Figure 14.12 – 查看 PeStudio 中的 VirusTotal 扫描结果
virustotal类别还提供了大量超级有用的数据,你可以将其与自己的分析结果进行关联。例如,virustotal会显示恶意软件影响、删除或更新的注册表键值,以及其他操作,如被恶意软件终止的进程。
在我们结束这一章之前,请记住,在进行恶意软件分析之前,务必遵循必要的安全措施。
总结
在本章中,我们学到了很多关于恶意软件分析的内容,但更重要的是,我们了解了如何收集和理解用于分析的工具的输出结果。
虽然恶意软件分析大多由专业团队(使用专业工具和环境)执行,但通过学习这个过程,你已经掌握了在全球网络安全战略中像专业人士一样管理的技能!
现在,是时候进入另一个激动人心的章节,在这一章中,我们将学习如何在防御安全中利用渗透测试工具和技术。
进一步阅读
若想了解更多关于恶意软件分析的信息,可以阅读以下书籍:
www.packtpub.com/product/mastering-malware-analysis/9781789610789
第十五章:第十五章:利用渗透测试增强防御性安全
“公司必须投入时间和资源于防御性安全,以识别新的漏洞,从而预判敌方的动向。正如孙子在《孙子兵法》中所说:‘知己知彼,百战不殆。’”
– 达戈贝尔托·埃雷拉,大学院长
虽然渗透测试通常是进攻性安全团队(也称为红队)的任务,但事实是,作为防御性安全的专家,你也需要至少掌握渗透测试的基础知识。
事实上,本章的目的是不是让你成为一名渗透测试员。相反,本章的目标是向你展示渗透测试员(以及攻击者)使用的最流行的工具,展示这些攻击是多么简单且危险。
本章从一些必修的理论开始,以便随后进入一些精准的实验室练习,你可以亲手实验这些进攻性安全工具的简单性和强大功能。
本章我们将涵盖的主要内容如下:
-
理解日志的重要性
-
了解敌人的好朋友:Metasploit
-
其他进攻性黑客工具
技术要求
一台安装了Kali Linux和Damn Vulnerable Web Application(DVWA)的虚拟机(可能与我们在第十二章中安装的相同,掌握 Web 应用安全)。
一台安装了虚拟化软件,如VirtualBox的机器将用于创建一个包含 Metasploitable 的虚拟机。
理解日志的重要性
在谈论日志的重要性之前,让我们花几分钟时间了解日志的一些核心属性,包括它们的起源、类型,甚至一些行业中使用的标准。
日志文件
日志的产生最初是为了记录操作系统或应用程序中的事件。它们最初是作为调试和故障排除的工具,但现在它们也被用于许多其他目的,如审计、安全和合规性:
图 15.1 – Windows 系统中的日志视图
大多数日志文件是简单的文本文件,包含常见的属性,如日志类型、时间戳、ID 和用户。大多数操作系统和应用程序会将不同类型的日志进行分类,以便于分析。最常见的分类如下:
-
错误日志
-
系统日志
-
应用日志
-
访问日志
-
事务日志
理论上,这听起来非常简单,对吧?但实际上并非如此,让我们看看为什么。想象一下以下情景。
假设你有一台运行 Windows Server 的服务器,每分钟生成大约 500 条日志,此外,还有一个每分钟生成 400 条日志的数据库,再加上 6 个应用程序,它们合起来每分钟生成另外 300 条日志。这意味着你的服务器平均每分钟生成 1,000 条日志,也就是每天大约 24,000 条日志,或者每个月 720,000 条日志,仅仅是在一台服务器上。现在,如果你将这个数字乘以你组织中服务器的数量,甚至还包括其他设备,如路由器和物联网设备(这些设备也会生成日志),那么这种情况将变得无法管理,这也是为什么你必须应用 日志管理技术 的原因。
日志管理
作为一名网络安全专家,你必须应用日志管理技术来充分利用日志。事实上,如果日志没有得到妥善管理,它们可能变得无用,甚至成为你基础设施的负担;但如果你妥善管理它们,它们可以成为强大的信息来源。
但别担心,这里有一些你需要记住的要点,帮助你像专家一样管理日志:
-
日志结构:日志格式有很多种类型,但日志格式不同只会增加日志管理的复杂性。这就是为什么公司会尝试遵循统一标准,以确保日志结构在各系统之间保持一致。
最著名的标准之一是 Syslog,它早在 1980 年就被创建,并几乎成为 Unix 类系统的标准。
-
日志收集:最佳实践是拥有一个集中化的系统来捕获所有日志。这可以通过一个第三方系统实现,该系统从多个系统收集日志,并将所有日志集中在一个地方。在某些情况下,公司可能会希望创建一个服务器,仅用于收集关键业务活动的日志,例如,创建一个服务器来收集关键 Web 应用程序的所有日志。
-
IIS_log_334455,SQL_log_01_02_2021)。根据你基础设施的规模,这项工作可能变得无法手动完成,因此强烈建议使用日志管理解决方案,允许你根据日志的来源添加自定义标签。
-
日志分析:日志的真正价值在于我们可以从中收集到的信息,而这些信息只能通过对日志进行深度分析来获取。日志分析将帮助你生成度量指标,发现模式,甚至通过关联系统间的日志来收集威胁情报。
更先进的系统甚至会结合人工智能引擎,利用机器学习技术,提供更好的洞察力,甚至根据你的日志进行预测。
-
日志存储与归档:归档日志有很多原因。其中一个主要原因与合规性和法规相关,这些规定可能要求公司在一定时间内保存日志。即使公司不受监管,创建与日志归档相关的政策也是一种良好的做法,以确定必须保存日志的时长,并根据日志的类型和重要性将时间划分(以节省一些空间)。
好的,现在我们已经回顾了日志和日志管理的基础知识,是时候总结一下日志在你作为网络安全专家角色中的好处和重要性了。
日志的重要性
如前所述,回顾一下最相关的主题,突出日志的重要性,以及为什么你必须投入时间和资源进行日志管理:
-
合规性与审计:你必须确保日志符合相关法规。实际上,缺失的日志可能会导致公司面临巨额罚款,因此你必须确保日志政策与所有本地和国际法规一致,例如支付卡行业数据安全标准(PCI-DSS)、健康保险流通与责任法案(HIPAA)、**通用数据保护条例(GDPR)**等。
-
故障排除:尽管这项任务可能超出了你的职责范围(并可能由**信息技术(IT)**部门执行),但你在制定日志政策时应考虑这一点,确保其符合 IT 部门进行故障排除活动的需求。此外,你需要确保他们只能访问他们需要的日志,以减少其他日志被篡改或删除的风险。
-
调查:日志是检测违法行为的强大工具,包括外部和内部用户。因此,你必须确保关键系统正在生成日志。此外,你需要确保新系统(如**物联网(IoT)**设备)也已启用日志记录,以便跟踪这些设备的活动。
-
制裁和法律行动:日志通常作为合法的方式来证明某些活动是由特定用户执行的,因此它们通常作为证据用于采取法律或内部行动。因此,归档和确保日志的完整性是至关重要的任务。
-
关键指标验证:日志可以帮助你确认某个服务级别协议(SLA)或合同要求是否得到遵守。例如,日志可以确认你提供的服务是否出现故障,以及是否违反了基于合同的正常运行时间要求。
-
支持网络安全工具:许多网络安全工具,如 SIEM,使用日志作为其主要输入,因此良好的日志管理将增强这些工具的功能。
-
日志完整性:正如我们所学到的,日志非常重要,但其有效性依赖于其完整性,因此您必须确保日志保持不被篡改。有多种攻击旨在修改日志文件;实际上,这被称为日志欺骗。要了解更多信息,请参考 OWASP 关于日志注入的页面
owasp.org/www-community/attacks/Log_Injection。
到现在为止,我们已经回顾了关于日志和日志管理所需了解的一切。
现在是时候进入本章的核心内容,深入探讨更多技术性话题,学习您需要了解的有关黑客们使用的最强大、最著名的攻击框架之一:伟大的 Metasploit。
了解敌人的最佳伙伴——Metasploit
首先需要澄清的是,Metasploit是一个非常出色的框架,像其他任何工具一样,它可以被用来做正当的事情或坏事。事实上,您的公司很可能会受到至少一次来自该工具的攻击,但好消息是,您可以利用这个框架,通过使用进攻性安全技术,来测试您的基础设施。
等等,这本书不是关于防御性安全的吗?没错,但作为防御性安全的专家,您也需要了解如何利用一些进攻性安全技术来确保您的基础设施安全。
Metasploit
如果您一直活跃在网络安全领域,那么您至少听说过 Metasploit,但到底什么是 Metasploit 呢?
Metasploit 是一个开源框架,由开源社区与Rapid7共同开发。
Metasploit 的一个重要特点是其模块化功能,您可以使用这个框架来启动漏洞利用、有效载荷、扫描等操作。
在漏洞利用方面,Metasploit 拥有超过 2000 个漏洞利用,适用于几乎所有已知的操作系统,包括高级互动执行环境(AIX)、Solaris、伯克利标准发行版(BSD)、FreeBSD、惠普 Unix(HP-UX)、Unix,当然还有Windows。
此外,Metasploit 有超过 500 个有效载荷,包括静态有效载荷、动态有效载荷、命令行 Shell和Meterpreter。
但这些数字不断增加,因为这是一个开源项目,漏洞和有效载荷正在不断被社区上传,并通常由高级社区成员和 Rapid7 进行审查。
注意
Metasploit 将允许您在别人之前找到、验证并测试您系统中的漏洞!这非常重要,因为它将让您看到系统和基础设施的真实安全状态,并根据发现的结果采取行动。
如前所述,Metasploit 是一个非常庞大的项目,在刚开始时可能会非常混乱,所以我们继续通过探索该工具的不同版本来深入了解。
Metasploit 版本
自 2003 年创立以来,Metasploit 已经发布了多个版本。其中一些版本仍然在使用,而一些版本已经停用(如 Metasploit Community Edition 和 Express)。现在,让我们来看看当前仍在使用的 Metasploit 版本。
Metasploit Framework 版
这可以称为 Metasploit 的经典版本。这是一个免费的命令行版本,预装在 Kali Linux 上。这是迄今为止最受欢迎的 Metasploit 版本,关于它有无数的书籍、视频和教程。欲了解更多关于此版本的信息,可以访问官方网站 www.metasploit.com/get-started。
Metasploit Pro
这是 Metasploit 的付费版本,由 Rapid7 提供支持,基本上增加了许多功能,如向导、通过远程 API 的集成、多种自动化工具以及各种渗透工具,包括用于测试 Web 应用程序上 OWASP 十大漏洞的测试平台。
在这里,你可以找到付费版本与免费框架版本的详细对比:www.rapid7.com/products/metasploit/download/editions/。
Armitage
Armitage 允许你图形化地展示目标,并使用 Metasploit 在后台对其执行多个攻击。这是一个很好的工具,可以帮助人们了解 Metasploit,并发现该工具的优势和强大功能。
Armitage 也是免费的,并且可以轻松地安装在 Kali Linux 上。接下来,我们将向你展示如何操作。
安装 Armitage
如前所述,Armitage 是开始使用 Metasploit 的一个很好的方式,所以让我们在 Kali Linux 上安装它。
现在,Kali Linux 默认安装了 Metasploit;然而,你需要进行配置以便首次使用,因此在安装 Armitage 之前,我们需要先配置 Metasploit。
第一次配置 Metasploit
Metasploit 使用 PostgreSQL 作为数据库,然而 Kali 的最新版本默认会停止此服务,因此第一步是启动 PostgreSQL 并将其设置为开机启动:
sudo systemctl enable --now postgresql
如下图所示,postgresql 现在已经启动并运行:
图 15.2 – 运行 PostgreSQL
现在,让我们使用以下命令创建所需的数据库:
sudo msfdb init
现在,我强烈建议你检查是否有可用的更新。实际上,在我的情况下,我的安装相当新,我收到了超过 120 MB 的更新。要获取这些更新,只需输入以下命令:
sudo apt update
sudo apt install metasploit-framework
现在,你可以使用以下命令成功启动 Metasploit:
sudo msfconsole
如果一切正常,你应该能够看到 Metasploit 的欢迎页面,如下图所示:
图 15.3 – Metasploit 欢迎界面
请注意,这个屏幕提供了一些基本信息,例如可用的漏洞数量、有效载荷、**无操作(NOPs)**等。
安装 Armitage(续)
好的,现在 Metasploit 已经启动并运行,我们回到 Armitage 的安装和设置部分。
让我们从停止 Metasploit 服务开始:
sudo service metasploit stop
通常,我们需要执行 apt-get 更新,但由于我们刚刚已经做过了,现在可以直接安装 Armitage:
sudo apt-get install armitage
完成后,你应该能够通过以下命令启动 Armitage:
armitage
接下来,你将看到一个提示屏幕。只需保留默认设置并点击 连接,如以下图所示:
图 15.4 – 进入 Armitage
恭喜,至此你已经成功启动了Metasploit和Armitage。
探索 Armitage
现在,让我们探索 Armitage 的图形用户界面(GUI),以发现我们可以使用的一些工具。
如下图所示,图形用户界面非常简单直观(这对初学者来说非常棒):
图 15.5 – Armitage 主屏幕
现在,让我们来看看我们可以使用的主要功能:
- 在控制台输入
search smb,如以下图所示:
图 15.6 – Armitage 控制台
但使用 Armitage 的主要目的就是图形用户界面,因此让我们来看看这些选项。
-
模块:如图 15.5所示,屏幕左侧有一系列文件夹。这些文件夹是模块,包含你可以执行的所有漏洞、有效载荷、辅助工具和后期操作。
如前所述,Metasploit 有几乎所有操作系统的漏洞,你可以在展开漏洞部分时看到这个列表,如下图所示:
图 15.7 – 按操作系统列出漏洞的模块视图
-
攻击:在这里,你可以找到一系列可以针对目标机器发起的攻击。
-
主机:此菜单包含多个扫描选项,用于查找可用的目标。
现在,让我们做一个简单的实验,向你展示攻击者如何轻松地使用 Armitage 对你的系统发起攻击。
使用 Armitage 发起攻击
在我们发起攻击之前,我们需要找到一台我们拥有的脆弱机器,这样我们才能安全地运行测试,并且我们可以通过 Metasploitable 很容易地实现这一点!
Metasploitable
Metasploitable 是一款虚拟的 Unix 机器,设计时故意包含漏洞,以便安全专家和爱好者(像你一样)将其作为测试用的“游乐场”。
它非常容易使用;实际上,你只需要下载虚拟机的镜像,将其加载到你最喜欢的虚拟机管理程序(例如 VirtualBox)中,就可以开始使用了。镜像可以从这里下载:sourceforge.net/projects/metasploitable。
现在,让我们进行一次扫描,看看能在这个 Metasploitable 机器上找到哪些漏洞。为此,进入 主机 | Nmap 扫描 | 强力扫描 | 所有 TCP 端口。
然后,选择一段 IP 地址范围;在本例中,我使用了 192.168.1.0/24。
注意
你可以在屏幕底部的控制台中实时查看扫描结果(位于我们之前提到的 控制台 标签旁),以获取更多关于扫描的信息。
作为示例,以下图示展示了对 Windows 7 机器进行扫描的输出。请注意,扫描能够收集到重要数据,例如计算机名称、操作系统和服务包信息:
图 15.8 – Nmap 扫描的输出
现在,回到我们的扫描,你会注意到这个扫描可能需要几分钟(取决于设备的数量),但一旦完成,它将显示一个弹出消息,如下图所示:
图 15.9 – 强力扫描成功完成
现在,你将看到扫描过程中找到的所有系统或设备。在我们的例子中,Metasploitable 机器的 IP 被识别为 192.168.1.224,并且如图所示,它添加了一个 Linux 图标,因为这台机器被识别为 Linux 计算机:
图 15.10 – 扫描过程中发现的机器
那么,让我们右键单击,看看对每台机器可以执行哪些攻击。在我们的例子中,我们可以看到扫描能够找到多个可以利用的服务,从而获取系统访问权限,如下图所示:
图 15.11 – 启用的登录服务列表
现在,让我们看看是否可以使用 VNC 登录。为此,我们需要进入屏幕左侧的模块菜单,导航到 auxiliary/scanner/vnc/vnc_login,然后双击打开它。接着,点击 启动,并等待命令视图下方的输出。
惊喜的是,系统成功地进行了 VNC 密码暴力破解,如下图所示:
图 15.12 – VNC 密码暴力破解
现在,我们可以打开终端,测试是否可以使用该密码登录 VNC。
为了实现这一点,只需打开终端并输入以下命令(在你的情况下,将以下 IP 替换为你的 Metasploitable 机器的 IP):
vncviewer 192.168.1.224:5900
然后,输入密码。在此情况下,输入 password 然后按 Enter。
现在,你将完全访问目标机器,如下图所示:
](tos-cn-i-73owjymdk6/ae95fff4553647c38baf59a5db908e78)
图 15.13 – 通过 VNC 远程访问目标机器
这只是一个快速示例,看看攻击者是如何轻松进入一个没有保护的系统的。所谓没有保护的系统指的是:操作系统已不再支持、未加固的服务器、缺少更新或安全补丁的服务器等等。
然而,你可以使用更多的选项来尝试 Armitage,例如,以下几种:
-
收集系统上运行的数据库服务的信息,包括版本,甚至对其进行暴力破解攻击。
-
收集关于 FTP 版本的信息,包括匿名登录和暴力破解攻击。
-
根据目标系统的操作系统执行多个利用。
-
从多个有效载荷中选择并发送,等等。
现在是时候回到 Metasploit,稍微玩一下这个真实的工具了。
执行 Metasploit
在 Metasploit 中,没有像 Armitage 那样的 GUI。这里,你需要通过纯命令来导航并执行模块、攻击和有效载荷。
但是不用担心,让我们一起做一个例子,看看使用 Metasploit 框架攻击服务器有多简单。
对于这个例子,我们将再次使用我们的易受攻击的 Metasploitable 机器,我们的目标是尝试攻击它们的 FTP 服务器。
所以,第一步将是再次运行 Metasploit:
sudo msfconsole
现在,让我们搜索 ftp 来查找可用于攻击 FTP 服务器的模块:
search ftp
不幸的是,查询显示了超过 170 个结果,因此我们需要找到一种方法来缩小这个列表,找出最适合攻击的模块。
一个选项是确定系统上运行的 FTP 服务器版本,这样我们就可以搜索与该特定版本相关的模块。为了做到这一点,我们可以使用我们的老朋友 Nmap(在 Kali Linux 中已经预装)。
现在,正常的 nmap 扫描只会告诉我们服务运行的端口,但如果我们想要查看这些服务的版本信息,就需要使用 -sV 参数,如下所示:
nmap -sV 192.168.1.224
然后,你应该看到类似以下图示的结果:
](tos-cn-i-73owjymdk6/6811d830753b458b9a7426a7d86a59ec)
图 15.14 – 使用 Nmap 收集 FTP 服务器的版本信息
现在,让我们回到 Metasploit 并搜索 vsftpd:
search vsftpd
很好,搜索找到了一个针对该 FTP 服务器的漏洞,正如下图所示:
](tos-cn-i-73owjymdk6/7a72fb192a3340b5abd134e63217564e)
图 15.15 – 在 Metasploit 上利用 vsftpd 漏洞
现在,让我们使用 info 命令来收集关于这个模块的更多信息:
info 0
在下图中,我们可以看到许多有用的信息,比如漏洞的名称、平台、发布日期和作者,但对我们来说最重要的是RHOST,它尚未设置,以及RPORT,它已默认设置为21:
](tos-cn-i-73owjymdk6/fffd549639874351a222533f901bcae1)
图 15.16 – 探索 Metasploit 漏洞的更多信息
如图 15.16所示,我们可以通过使用长名称或标识符(在本例中为0)来调用漏洞
use 0
现在,让我们将RHOST设置为目标机器的 IP 地址:
set RHOST 192.168.1.224
现在系统应该会回复信息,显示RHOST已设置为指定的 IP 地址,但如果你想再确认一下,你也可以使用show options命令,如下图所示:
](tos-cn-i-73owjymdk6/fc4bda3da8b04659bfa76e7a8b2ba6ab)
图 15.17 – 使用 show options 确认漏洞设置
现在,一切似乎已经准备好,使用以下命令执行漏洞:
run
如下图所示,我们现在已完全访问了目标机器。事实上,你可以看到我们可以在目标(受害者机器)上执行许多命令,例如whoami(这让人惊恐地显示我们是以 root 身份连接的)。另外,我们执行了ifconfig来确认我们正在目标机器上发出命令:
](tos-cn-i-73owjymdk6/97dd413fe6e3419883f8cdbc308a5325)
图 15.18 – 使用 Metasploit 获取完全的远程访问
这些是一些简单的示例,展示了使用 Metasploit 攻击系统是多么容易。但从防御性安全的角度来看,以下是一些要点:
-
修补漏洞以防止攻击的重要性
-
强化系统以防止远程漏洞执行的重要性
-
使用进攻性工具测试你的环境对抗真实威胁的价值
-
攻击的简单性以及发现有关你的系统信息的容易程度,这些信息可以帮助攻击者针对你的基础设施和系统量身定制攻击
虽然 Metasploit 是最著名的进攻性安全框架,但攻击者还有其他工具可以入侵你的系统,所以我们也来看看其他的进攻性安全工具。
其他进攻性黑客工具
让我们回顾一下目前最著名的进攻性安全工具,包括免费和付费的工具。
Searchsploit
我们在前面的章节中提到过www.exploit-db.com/,这是一个包含超过 44,000 个漏洞的巨大数据库,用户可以下载。这个网站非常棒,展示了很多有用的信息,界面也非常友好,但在页面上搜索漏洞、下载并执行它可能有些耗时。这里有exploit-db,你可以直接在终端中运行它们;是的,就是这么简单!
让我们做一个简单的示例。假设你为你的组织添加了一个 Joomla 服务器,你想要测试它是否存在已知漏洞。你可以运行以下命令:
searchsploit -t joomla
-t 选项将只给出包含“Joomla”字样的漏洞利用标题的结果。
现在,假设你的老板要求你在 Joomla 服务器上安装一个 YouTube 插件。那么,让我们看看如何发现与该插件相关的漏洞:
searchsploit -t joomla youtube
如下图所示,该工具发现了与 YouTube Joomla 插件相关的三个漏洞:
图 15.19 – 使用 Searchsploit 查找漏洞
下一步是运行漏洞利用程序,这非常简单。首先,你需要使用以下命令复制脚本的路径:
searchsploit -p 34087
然后,如下图所示,你将得到一个包含完整脚本路径的响应。只需复制并粘贴该路径,你就可以运行漏洞利用程序了!
图 15.20 – 获取执行漏洞利用路径的 Searchsploit
如前所述,执行这些漏洞利用程序非常简单,因此这是你需要 确保在攻击者利用这些漏洞之前进行测试 的原因之一。
sqlmap
sqlmap 是一个非常强大的渗透测试工具,用于检测和利用数据库服务器上的 SQL 注入漏洞。它有很多酷的功能,包括以下内容:
-
上传和下载文件。
-
转储整个数据库表。
-
跨数据库搜索特定的表或列。
-
枚举用户、密码哈希值、角色、表、列等。
-
密码哈希值的识别并支持使用字典攻击进行破解。
此外,sqlmap 完全支持大多数常见的 SQL 服务器,包括 MySQL、PostgreSQL、Microsoft SQL、Microsoft Access 和 SQLite。
sqlmap 已经在 Kali Linux 上预装好了,因此如果你想了解更多关于这个工具的信息,可以输入以下命令,了解该工具的基本命令:
sqlmap -h
有趣的是,请注意 -g 选项允许你将 Google dork 结果作为目标 URL 进行处理。
Weevely
Weevely 是一个非常有趣的工具,提供了一个 Web Shell 来攻击 Web 应用程序。它有很多有趣的功能,包括以下内容:
-
通过 HTTP 和 HTTPS 代理浏览受感染的 web 应用程序。
-
能够暴力破解目标系统上的 SQL 账户。
-
挂载远程文件系统。
-
直接访问目标系统的 Shell。
-
上传和下载文件。
-
文件导航等。
我相信你一定很想看看如何使用这个工具进行攻击,所以让我们做一个快速实验,向你展示 Weevely 的工作原理。
在这个实验中,我们将使用 DVWA 作为我们 Kali Linux 机器上的目标系统。
提示
在 第十二章,掌握 Web 应用安全 中,我们介绍了 DVWA 的安装和设置,因此如果你还没有安装它,请返回该章节并按照我们的简单步骤进行安装并运行它。
假设你已经在 Kali Linux 机器上安装了 DVWA,那么接下来我们只需要继续运行它。
第一步是使用以下命令启动数据库服务:
sudo service mysql start
然后,我们使用以下命令启动 Apache 服务器:
sudo service apache2 start
现在,让我们打开一个网页浏览器,使用以下地址打开 DVWA:
127.0.0.1/DWVA/
现在你应该能看到 DVWA 的登录页面,如下图所示:
](tos-cn-i-73owjymdk6/d9b2af84ef6c416a896d1321db2fa6f8)
图 15.21 – DVWA 登录页面
要登录,只需使用你在 DVWA 设置过程中创建的管理员凭证。
现在你已经登录,让我们将安全级别设置为低。为此,只需进入左侧菜单,搜索 DVWA 安全,然后将下拉菜单更改为 低 并点击 提交,如以下图所示:
](tos-cn-i-73owjymdk6/ca00731baa36418ea3e833fc69342c26)
图 15.22 – 在 DVWA 中降低安全级别
此时,我们的目标机器已准备好进行攻击!
为了创建 shell,让我们回到 Kali 并使用以下命令:
weevely generate mypassword /home/kali/myshell.php
注意,mypassword 是我们正在创建的 shell 的密码,其余部分是 shell 的路径和文件名。在这个示例中,我将其保存在我的用户目录下,并命名为 myshell.php。
现在,你可以导航到你的用户目录,确认文件是否已创建,如下图所示:
](tos-cn-i-73owjymdk6/72d9723ea8ff43fa8d408d20aed90414)
图 15.23 – 在 Weevely 上创建的 Shell 的本地副本
现在,让我们返回 DVWA 上传我们的 shell。
要做到这一点,只需进入 myshell.php,然后点击 上传。
现在,我们需要复制文件在服务器上的位置。为此,只需复制 URL 的第一部分(http://127.0.0.1/DVWA)和 成功上传 消息中高亮显示的路径(/hackable/uploads/myshell.php),如以下图所示:
图 15.24 – DVWA 中 Shell 的路径
现在,路径应如下所示:
http://127.0.0.1/DVWA/hackable/uploads/myshell.php
现在,让我们再次打开 Kali Linux 的控制台,执行以下命令来运行 shell(请注意,这里我们基本上是在添加服务器路径和密码来运行 shell):
weevely http://127.0.0.1/DVWA/hackable/uploads/myshell.php mypassword
如下图所示,你已经可以完全访问服务器,包括查看当前用户、文件导航等:
](tos-cn-i-73owjymdk6/ff6e18f57d124f1a84dfc8d8e9a317b3)
图 15.25 – Weevely 攻击结果
当然,还有许多其他用于攻击性安全的工具,我们鼓励你去探索它们,但到目前为止,你应该已经清楚了解了这些工具对攻击你的基础设施(包括服务器、网页应用程序,甚至数据库)所具备的强大威力。
总结
希望你和我一样喜欢这一章。在这里,我们学习了日志,了解了它们为何重要,甚至学会了如何成功地管理它们(日志管理)。
然后,我们进入了本章的技术部分,进一步了解了最著名的攻击性安全工具:Metasploit。
然后,为了开始使用 Metasploit,我们进行了一个使用 Armitage 和 Metasploitable 的实践实验。
当我们更加深入地了解 Metasploit 框架时,我们进行了另一个直接使用 Metasploit 的实践实验,成功地完全控制了目标机器。
但是,还有更多内容:我们做了两个实验,一个是使用 Searchsploit,另一个是非常有趣的实验,使用 Weevely,我们甚至使用了在第十二章中安装的 DVWA,掌握 Web 应用安全。
现在,是时候进入另一个非常有趣且技术性很强的章节,我们将在其中发现一些用于计算机取证的工具和技术!
进一步阅读
如果你想了解更多关于 Metasploit 以及可用版本的信息,可以访问官方站点:www.metasploit.com/。
此外,Metasploit 的官方 GitHub 可以在此找到:github.com/rapid7/metasploit-framework。
第十六章:第十六章: 实践取证
“处理数字证据对于司法系统来说是一个巨大的挑战,特别是当我们意识到它带来的新挑战和风险时,比如收集证据的远程操控。”
– 法官 RosibelJara
数字取证是一个非常复杂的话题,因为正如你在本章中将看到的,即使你无法访问设备,仍然可以收集证据。因此,为了在法庭上被接纳,数字证据必须遵守一系列条件和规定,以确保数字证据得到了妥善处理,并且它被适当保存。因此,数字取证专家的角色对于确保数字取证过程的成功至关重要。本章旨在为你提供一个非常好的入门介绍,并作为你需要面对这一过程时的起点。
本章将涵盖以下主题:
-
数字取证简介
-
防御安全中的数字取证
-
取证平台
-
寻找证据
-
移动取证
-
证据管理
数字取证简介
数字取证(也称为网络取证或简称取证)是从数字系统中收集、识别、收集、保护和存储数据的过程,这些数据可以作为证据使用。
在我们的案例中,我们将专注于用于检测计算机系统、服务器、网络、基础设施或数据的使用、滥用、入侵、损坏或修改的取证。然而,取证也用于恢复已删除或修改的数据,因此我们先花几分钟回顾一下取证如何用于这一过程。
用于恢复已删除或丢失数据的取证方法
取证的一个部分是用于从数字媒体中收集、识别和恢复已删除数据。
通常,数据是从非易失性媒体存储中恢复的,如硬盘和 USB 驱动器,但也可以从易失性内存中收集数据,如随机存取内存(RAM)。
易失性与非易失性内存
易失性内存,如 RAM,是一种只在设备开机时保存信息的内存,而非易失性内存,如硬盘,可以在没有电源的情况下长时间保存信息。因此,从易失性内存中收集信息被认为是一个更复杂和专业的任务。
现在,让我们先来回顾一下如何从易失性内存中捕获数据。
从 RAM 中恢复数据
由于 RAM 的硬件性质,从 RAM 中恢复数据被认为是一个非常复杂的任务。然而,我们可以使用一个工具和一种方法来实现这一目标。我们来看看。
微软 COFEE
微软计算机在线取证证据提取工具(COFEE)工具包由微软开发并分发给警察机构,帮助他们从微软系统中收集数字证据。
该工具作为一个实时 USB 加载,包含一个图形用户界面(GUI),并拥有超过 150 个取证工具,包括存储在易失性内存(RAM)中的数据。
这款工具的副本据说在 2009 年泄露到互联网上,如果你有兴趣查看它,简单的 Google 搜索会给你 WikiLeaks 页面的链接来下载它。
提示
请记住,泄露版的软件可能包含恶意内容,因此避免在主计算机上运行此类软件。相反,尝试使用虚拟沙箱环境,并在下载和运行此类软件时采取所有必要的预防措施。
冷启动攻击
这是一种非常有趣的方式,直接从 RAM 中收集数据。让我来解释一下它是如何工作的:
-
首先,你需要物理访问计算机。
-
打开计算机。
-
冷却 RAM 模块(可以使用冷冻喷雾剂)。
-
切断机器电源。
-
使用轻量级 USB 启动**操作系统(OS)**启动计算机。
-
使用任何可用的内存转储软件或脚本执行内存转储。
如下图所示,这种攻击的一个限制是,恢复的数据量与所需时间成正比。这意味着,执行转储的速度越快,恢复的数据就越多。
图 16.1 – 冷启动攻击中时间与数据的关联
正如你想象的那样,存在物理破坏内存的风险,因此强烈建议仅在非常受控的空间(实验室环境)中使用此方法。此外,只有在你希望检查的计算机已开机的情况下,此方法才有效。
可以从 RAM 中恢复什么数据?
可以从 RAM 中恢复的数据包括未保存的文档、草拟的电子邮件、密码、聊天记录、用户名、打印的文档(打印作业)、设置、网络或连接设置,如 IP 地址和**服务集标识符(SSID)**等。
现在,让我们来看看我们可以用来从非易失性内存中恢复数据的工具和方法。
从非易失性内存中恢复信息
有许多工具可以用来从非易失性内存(如硬盘)中恢复已删除的数据。大多数工具非常容易使用,并且在 Windows 计算机上具有非常友好的用户界面,例如Recuva。
此外,还有一些更先进的工具,如Foremost,这是一个加载在 Kali Linux 上的工具。我们在第五章中介绍了 Foremost 的配置和执行,网络安全技术与工具。
数字恢复与物理恢复
为了说明数据恢复的工作原理,让我从解释 Windows 如何管理文件开始。
Windows 使用一种叫做主文件表(MFT)的东西。这个表就像一本书的索引,它告诉操作系统(OS)每个文件的位置,通过指向文件所在的硬盘扇区来实现。这意味着,当你想打开一个文件时,操作系统会检查 MFT 来找出文件的位置,然后从磁盘中检索数据。
如下图所示,为了提高计算机速度,当你删除一个文件时,操作系统会删除 MFT 中的条目,使得该扇区变得可用,可以被另一个文件使用。然而,信息仍然保留在硬盘上,直到操作系统用另一个文件覆盖该扇区:
图 16.2 – Windows MFT 表结构
因此,大多数数字恢复软件所做的就是对硬盘扇区进行深度扫描,根据磁盘中找到的内容重建 MFT。类比来说,这就像是阅读一本书以重建它的索引(目录)。
也有硬盘分区或系统损坏的情况。在这些情况下,可以通过将硬盘连接为外部驱动器到另一台计算机,并在另一台计算机上运行恢复软件,轻松检索文件。
然而,也有硬盘因旋转和摩擦造成所有活动部件不断使用而发生物理损坏的情况,如下图所示。损坏的例子包括坏头、头碰撞、划痕,甚至是转子损坏。
提示
在大多数情况下,硬盘损坏是渐进性的,因此如果你开始听到来自计算机的点击声或嗡嗡声,那么是时候更换硬盘并保存你的数据,以免为时已晚。
在所有这些情况下,恢复是可能的,但仅能通过专家使用特殊设备和 properly 设置的实验室进行。还要注意,物理恢复通常是昂贵的。
图 16.3 – 硬盘的活动部件
关于固态硬盘(SSDs),由于没有活动部件,因此损坏的风险较低。然而,如果发生物理损坏,恢复过程会更加复杂。
现在,让我们从防御安全的角度关注计算机取证,来检测计算机系统、服务器、网络、基础设施或数据的使用、滥用、入侵、损坏或修改。
防御安全中的数字取证
在谈到防御安全中的取证时,我们必须在几个领域进行取证,包括以下内容:
-
数据分析
-
日志分析
-
电子邮件取证
-
数据库取证
-
恶意软件取证
-
内存取证
-
移动取证
-
网络取证
现在,让我们深入了解数字取证的管理方式,包括涉及的过程。
谁应该负责数字取证?
有两种主要方式来管理所有这些取证工作。虽然一些公司有专门的取证专家来处理所有与取证相关的任务,但其他公司则在每个领域培养专家,作为取证专家。此外,还有一位取证协调员,作为所有取证活动的领导者。
数字取证过程
大多数公司根据自己的需求和成熟度定制数字取证过程。然而,让我向你展示执行数字取证时必须遵循的步骤:
-
数据处理与保管:在取证过程中管理数据是确保结果成功的关键。你需要记住,在这个过程中收集的数据可能会用于起诉或采取其他法律行动,因此你必须确保数据的收集是基于司法系统认可的标准。
此外,你还需要应用必要的工具和技术,以确保数据从收集到呈现的完整性(例如,将数据作为证据提交给法院)。展示数据完整性的最常用方法之一是对收集的数据进行哈希处理,正如在第五章《网络安全技术与工具》中提到的那样。
-
数据收集:任何取证过程的第一步是从所有可用的来源收集所有数据。这一步非常重要,以至于我们将在接下来的章节中深入讨论。
-
数据分析:在这一阶段,分析师首先通过过滤大量信息,以便基于相关信息进行分析,从而减少不必要的工作。然后,他们必须使用多种工具和方法来分析已收集的数据。正如我们之前提到的,这种分析可以在任何类型的存储介质(易失性或非易失性)上进行,并使用数字和物理恢复技术。整个取证过程的结果依赖于正在分析的数据和设备,因此这一任务必须由认证的专业人士来执行。
提示
如果你有兴趣获得取证认证,我强烈建议你访问这个网站:
i2c2x.com/。 -
保存或归档证据:一个常见的错误是在审判后删除证据。然而,这些数据在上诉过程中可能仍然具有价值,能够识别重复犯罪者(这对于判断某人是无意使用者还是恶意内部人员可能至关重要),甚至在威胁情报中,通过将数据与新事件进行关联,以识别进一步的攻击。
因此,最佳做法是创建一个数据保留政策部分,确定归档数字证据所需的时间。请注意,在某些情况下,这一政策可能会受到某些法规或法律的影响。
图 16.4 – 数字取证过程
现在,是时候看看一些用于执行数字取证和收集数字证据的平台了。
取证平台
正如我们之前提到的,取证过程是一项非常敏感的任务,必须小心谨慎地进行,以确保收集到的数据得以保存,并且其完整性得到保证。
然而,这并不是通过单一工具就能实现的。相反,取证专家必须根据多个因素(如数据来源、存储类型和操作系统)选择最适合每个场景的工具。
好消息是,为了简化我们的工作,一些操作系统已经专门设计成执行取证活动,并预装了一系列取证工具。
此外,这些操作系统中的一些还可以作为可启动的 live CD 或 live USB 使用,这使我们能够执行更高级的取证操作。
现在,让我们回顾一些这些取证操作系统的集合。
CAINE
计算机辅助调查环境(CAINE)是一个基于 GNU/Linux 的live发行版,提供一个完整的取证环境,包括现有软件工具作为软件模块,以及一个友好的图形界面,支持取证专家在数字调查过程中进行操作。
图 16.5 – CAINE GUI
如前面截图所示,CAINE 预装了大量现成的取证工具,包括The Sleuth Kit、Autopsy、RegRipper、Wireshark、PhotoREC等。
他们的官方下载页面是www.caine-live.net/。
SIFT 工作站
SIFT 工作站是一个免费的开源取证工具集,用于进行详细的数字取证。它有两种安装方式:一种是下载一个现成的虚拟机,另一种是直接在 Ubuntu 机器上安装:
图 16.6 – SIFT 工作站
上面的截图展示了 SIFT 的虚拟机安装版,可以从 SANS 网页下载,链接为www.sans.org/tools/sift-workstation/。
PALADIN
PALADIN是一个基于 Ubuntu 的修改版live Linux 发行版,简化了各种取证任务。它包含了很多取证工具,分为 33 个类别,如下图所示:
图 16.7 – PALADIN 工具分类
关于 Paladin 的更多版本信息,请访问他们的官方网站sumuri.com/software/paladin/。
现在我们了解了数字取证的各种工具和平台,让我们来学习如何获取证据,以及确保在取证检查过程中不会遗漏任何数据的主要来源。
寻找证据
一旦发现攻击,许多事情需要以最高优先级完成,包括恢复受到影响的系统和服务。然而,另一个关键任务是找到并保护与攻击相关的所有证据。这个任务至关重要,因为它可以让你做以下几件事:
-
确定攻击是由内部人员还是外部人员发起的。
-
确定内部人员是恶意的还是无意的用户。
-
确定攻击者利用的漏洞。
-
根据机密性、完整性和可用性(CIA)三要素来确定对业务数据的影响。
-
确定受攻击影响的系统或服务。
-
收集证据以执行法律或纠正措施(来自人力资源部门)。
既然你已经知道收集证据的重要性,让我们来看一下有关收集过程的一些最佳实践。
数据来源
正如你所知道的,在取证过程中有很多地方可以收集数字信息。你需要查找的最常见文件类型是日志文件,因为它们通常会记录设备上的所有事件(我们在第十五章,利用渗透测试进行防御性安全中讨论过此话题)。
一个常见的错误是仅检查服务器上的日志。然而,实际上还有很多其他地方可能是重要的信息来源。在本节中,我们将探讨一些,首先从非易失性内存开始。
非易失性内存
如前所述,可以从 RAM 中获取数据,因此在数字调查过程中,你可能希望先进行 RAM 转储,以获取一些额外的信息,然后再执行其他操作或关闭服务器。
恢复已删除的数据
你还应该在硬盘上搜索已删除数据的痕迹。这对于检测恶意内部人员尤为重要,因为他们可能会通过删除日志或类似记录来掩盖自己的行踪。在这种情况下,你可能无法恢复已删除的信息,但你可能能证明某些日志已被删除或篡改,这本身就可以成为证据。
路由器和其他网络设备
这可能是攻击发生后第二常见的寻找痕迹的地方。
除了寻找异常活动外,你还需要寻找日志篡改的迹象,如删除的条目,因为这些可能是攻击的指示。
物联网设备
通常,物联网(IoT)日志文件被忽视,但它们可以是一个很好的信息来源,特别是当它们被用作你基础设施的入侵点时。
网络打印机
网络打印机通常被忽视,但从本质上来说,它们是网络设备,这意味着它们可能成为攻击的跳板。此外,这些设备的安全性较弱,这正是攻击者越来越多地针对这些设备的原因。
您会对通过检查这些日志所能收集到的所有信息感到震惊,其中包括以前试图入侵您网络的尝试。
移动设备
智能手机等移动设备作为迷你计算机,可以被用作进入您公司网络的一个入口。
因此,使用能够收集关于移动设备使用情况和互动的日志的监控软件非常重要。如果您的公司有**自带设备(BYOD)**政策,那么这点尤其重要,因为这些设备更容易受到攻击,因此控制这些设备是必须的。
移动设备的取证是一个大话题,所以我们来详细回顾一下这个话题。
移动取证
移动取证已经成为取证领域最大的专门化领域之一——不仅因为几乎每个人都有智能手机,还因为智能手机可以收集大量的数据。
移动取证的酷点在于,在某些情况下,您甚至不需要手机就可以收集到智能手机收集到的一些数据。让我向您展示如何操作。
无设备取证
智能手机会收集大量信息,如位置、消息、搜索、常去地点、应用使用情况、浏览历史等,但最有趣的是,Google(是的,就是 Google)会将所有这些数据记录在他们的云端。让我们学习如何访问这些数据:
-
使用您的用户凭证登录。
-
选择您想要检索的数据。
-
选择您希望如何接收文件(通过驱动器、云存储或直接下载链接)。
-
选择您是只想这次导出文件,还是希望安排未来的导出。
-
确定文件类型和每个文件的最大大小。
-
点击导出。
导出取决于 Google 收集到的关于您的数据量,因此请考虑到在某些情况下,导出所有数据可能需要几小时甚至一天的时间。
图 16.8 – Google Takeout 页面
信息类型取决于您使用的 Google 服务。然而,对于 iPhone 用户来说,这可能是可选的,但这里收集的一些信息适用于所有 Android 用户。您可能会对收集到的数据量感到惊讶。例如,在导出的文件中,您不仅能看到应用程序的使用详情,还能看到使用的具体时间(以及时间戳)。
以下是一些可以导出的数据示例:
-
通过 Google Home 获取的物联网设备信息
-
日历条目(包括创建和删除的时间)
-
您的 Google Chrome 访问的所有内容(历史记录、设置等)
-
有关您打印文件的信息(Google Print)
-
使用 Google 搜索或地图进行的购买和预定信息
-
在 Google 社区上发布的图片和文字
-
联系人照片
-
有关您 Google 账户的注册和活动数据
-
Google Fit 收集的所有生物识别数据,包括睡眠数据、训练数据、步行距离等
-
关于您的 Google 搜索的元数据
-
使用 Google Pay 进行的购买历史
-
您在 Google Books 上阅读或购买的书籍信息(包括笔记和标记)
-
基于 Google Play 电影的电影偏好(包括播放列表,甚至是您为每部电影提供的评分)
-
基于 Google Shop 的购物历史(包括送货地址)
-
您在 Google Hangouts 中的聊天记录(包括附件的图片)
-
基于 Google 地图的导航历史(包括访问网站的偏好和评论)
-
设备配置、性能数据、软件版本等(适用于 Android 设备)
-
有关您在 Google Play 上玩过的游戏信息(包括分数)
-
已安装的应用程序、评分和购买记录(Google Play)
-
您的位置信息历史(基于 GPS 收集的数据)
-
在 YouTube 上搜索和观看的视频历史
-
还有更多
此外,如下图所示,您还可以选择其他参数,例如导出数据的格式以及要包含的导出项目:
图 16.9 – Google Takeout 导出设置
对于 iPhone 用户,情况略有不同,因为其隐私政策比 Android 更为严格。这意味着收集关于用户的已保存信息更加复杂。苹果没有类似于此页面的选项,用户无法直接请求其数据,因此,从 iPhone 收集此类信息可能需要向苹果直接发送法律请求,以获取授权来共享这些用户信息。
移动设备上的重要数据来源
正如我们之前提到的,移动设备会收集大量数据,甚至在没有访问手机的情况下也能获取。然而,如果您能够访问手机,可能还能收集到更多的信息。
尽管大多数书籍会告诉您收集诸如图片、通话记录、消息和其他容易识别的数据,但移动设备上还有许多可以收集的数据。让我们来看一下我列出的移动设备数据收集清单:
-
Wi-Fi 连接数据(包括已知 SSID 的列表):这对于确认用户是否在某个特定位置,或者是否尝试连接到未经授权的网络,可能非常有用。
-
蓝牙连接数据:这有助于确定是否连接了未经批准的设备。
-
操作系统安装细节:这些数据对于确定设备是否最近恢复为出厂设置非常有用,这可以作为设备数据被擦除的证明。
-
应用列表:这可以用来确定设备上是否安装了未经授权的软件。例如,这在确定某个无意间使用的第三方软件是否存在漏洞或用于泄露设备数据时特别有用。
-
操作系统更新信息:这些信息对于确定设备是否因操作系统某些安全更新缺失而被攻击或入侵非常有用,甚至可以证明设备即使在完全修补后仍然存在漏洞(这可能揭示零日攻击的存在)。
-
Root 权限、越狱和其他操作系统修改:检查是否有越狱或其他未经授权的操作系统修改的痕迹非常重要,因为这可能代表公司政策的违背。这也可能是设备被入侵的原因(并解释为什么设备未能防止攻击)。
-
USB 连接元数据:这些数据可以帮助你确定设备是否连接到了授权设备,并且是否进行了或尝试进行数据外泄。
-
云存储应用和用户:在调查过程中,这些信息可以用来确定数据是否被导出到个人云存储服务(如 Dropbox、Box、OneDrive 等)。
这份检查清单与设备无关,但收集数据所使用的工具和方法因设备、操作系统、品牌、型号等的不同而有所变化。
提示
根据设备的操作系统,用户可能会存储这些数据。因此,确保对设备所有用户进行数据收集活动非常重要。
移动设备的运输
许多解决方案允许你远程删除移动设备上的文件。因此,为了避免设备受到外部操作,建议使用法拉第笼来屏蔽任何进入的信号,防止设备上的数据被修改。
现在是时候了解一些关于管理数字证据的准则和国际最佳实践,以确保其在法律程序中作为有效证据使用。
管理证据(从法律角度来看)
“我们必须适应数字时代,处理数字证据时,链条的完整性也必须得到维护。”
– 律师,安吉丽丝·阿尔法罗
正如我们之前提到的,进行取证的第一步是确保所收集的数据得到正确的处理和存储。否则,数据可能无法在审判或其他法律程序中作为证据使用。
一些国家可能有不同的法规或框架,必须遵循才能使用数字证据。然而,让我分享一些全球范围内关于数字证据的常见准则和法规。
ISO 27037
ISO/IEC 27037:2012 提供了关于识别、收集、获取和保留数字证据的指南。
最新版本于 2018 年修订,允许您从多种设备中识别、收集、获取和保留数据,包括但不限于以下内容:
-
数字存储(非易失性)
-
移动设备
-
GPS 导航设备
-
数码相机(包括闭路电视)
-
网络设备
如果您想了解更多关于该标准的信息,可以访问其官方网站:www.iso.org/standard/44381.html。
数字证据政策与程序手册
美国国家司法研究所于 2020 年制定了本手册,为执法机构制定数字证据收集、处理和处理政策与程序提供指导:
nij.ojp.gov/library/publications/digital-evidence-policies-and-procedures-manual.
FBI 的数字证据政策指南
这是联邦调查局(FBI)在调查过程中用于处理、审查和处理数字证据的政策:vault.fbi.gov/digital-evidence-policy-guide.
区域计算机取证实验室
区域计算机取证实验室(RCFL)项目是 FBI 与其他美国联邦、州和地方执法机构之间的合作伙伴关系,为执法机构提供数字取证服务和专业知识支持。
他们出版了一本数字证据现场指南,旨在作为正确处理数字证据的指南。该指南可以在此处找到:
www.rcfl.gov/file-repository/fieldguide_sc.pdf/view.
美国网络安全与基础设施安全局
美国网络安全与基础设施安全局(CISA)发布了一份关于取证的指南,包括对美国适用法律的引用,以及关于取证的一系列有用链接:
us-cert.cisa.gov/sites/default/files/publications/forensics.pdf.
RFC 3227 – 证据收集与归档指南
互联网工程任务组(IETF)发布了 RFC 3227 – 证据收集与归档指南,可在以下链接找到:datatracker.ietf.org/doc/html/rfc3227。
总结
数字取证是一个重要的话题。甚至有数字取证的学士学位,这证实了该主题的广泛和复杂性。
然而,本章旨在为您提供有关该主题的深入概述,以及您在需要监督公司数字调查(取证)时必须遵循的考虑事项。
因此,在本章中,你了解了不同类型的法医鉴定,以及在调查过程中必须审查的不同数据来源。
此外,我们还回顾了收集数据的最佳实践,以及如何从法律角度正确地管理这些数据。
最后,我们探讨了移动法医鉴定的独特性以及与之相关的一些最佳实践。
现在,是时候进入另一个有趣的章节了,在这个章节中,我们将学习如何应用自动化来增强我们的防御安全策略。
进一步阅读
如果你想获得法医领域的专业学位,这里有本科以及相关证书课程。更多信息,请访问以下网站:
第十七章:第十七章:实现安全工具的自动化
“大多数时候,人们因为害怕‘自动化会取代人类’的神话,而没意识到自动化的好处,但实际上,自动化代表的是最高级别的成熟和卓越。”
– Desilda Toska, Dottore Magistrale 和自动化领导者
大多数攻击者利用自动化工具和技术来增强攻击的范围。因此,你必须理解自动化的重要性,这样你也可以利用它来更好地保护你的基础设施。
此外,你还必须了解构成威胁环境的不同类型的自动化攻击,以便为它们做好防御规划。
事实上,我相信你一定熟悉一些自动化攻击,如垃圾邮件和分布式拒绝服务(DDoS)攻击,但在这里,我们将回顾 21 种自动化攻击,以便更好地理解这一威胁,其中包括一些非常有趣的攻击,如凭证填充、抢购、狙击等。
以下是本章要涵盖的主要主题列表:
-
为什么要使用自动化?
-
自动化攻击的类型
-
使用 Python 进行网络安全工具的自动化
-
使用 Raspberry Pi 进行网络安全自动化
为什么要使用自动化?
“在计算中,最有效的工作是那些不需要执行的工作。”
– Ignacio Trejos-Zelaya
如前所述,网络犯罪分子利用自动化作为其主要工具来扩大攻击的范围,所以如果你想在同一起跑线上竞争,也应该把自动化作为防御安全策略的关键因素。
自动化的好处
让我们回顾一些通过将自动化作为防御安全策略的一部分来利用的好处。它们列在这里:
-
资源优化(你可以用更少的资源做更多的事情)
-
将资源转移到更高级的任务上(通过自动化耗时的无增值任务)
-
成本降低
-
更快地检测到威胁
-
更快速地采取对策
-
减少攻击时的影响
-
合规性和与合规性相关的任务支持
现在,另一方面,让我们回顾一下不应用自动化的风险。
忽视自动化的风险
一些公司可能不愿意投资于自动化;然而,以下是与之相关的一些风险:
-
资源浪费(做那些可以自动化的任务)
-
人为错误的概率增加
-
反应时间较慢(人类速度与计算机速度的对比)
-
更容易成为自动化攻击的目标
-
创新资源减少
-
用于研究的资源减少
-
发现威胁的能力降低
现在,让我们回顾一下我们可能面临的各种自动化攻击类型。
自动化攻击的类型
大多数攻击是自动化的,旨在针对更广泛的受众,以提高成功的机会;因此,了解可能面临的自动化攻击类型非常重要,为此我们将基于开放 Web 应用程序安全项目(OWASP)对自动化攻击进行分类回顾。
账户聚合
该攻击旨在根据共同因素识别和聚合账户——例如,收集来自某一系统的所有凭证,收集来自单个用户(来自多个系统)的凭证,等等。
账户创建
该攻击旨在创建大量账户。
攻击者的目标多种多样,包括使用新账户进行垃圾邮件、账户滥用、**拒绝服务攻击(DoS)**等。
广告欺诈
这种自动化攻击旨在通过虚假点击进行广告欺诈,如下图所示:
图 17.1 – 广告欺诈示例
如前所示的截图所示,网络犯罪分子可以通过使用这种自动化攻击来进行欺诈,从而使他们的收入呈指数增长。
CAPTCHA 绕过
完全自动化公共图灵测试以区分计算机与人类(CAPTCHA)是一种非常基础的防止某些类型自动化攻击的方法,通过创建一个人类可以解决而机器人(脚本)无法解决的测试。然而,随着图像识别技术和光学字符识别(OCR)的进步,CAPTCHA 对用户来说变得更加困难,但对计算机来说则变得更加容易。您可以在以下截图中看到一些不可能的 CAPTCHA 示例:
图 17.2 – 不可能的 CAPTCHA 示例
实际上,如前所示的截图所示,某些 CAPTCHA 对人类来说是无法解读的。
卡片破解
这种攻击旨在通过在信用卡处理网站上暴力破解信用卡数据(如安全码和有效期)来识别缺失的信用卡数据。
卡片欺诈
该攻击用于验证大量被盗或欺诈的信用卡号码。这通常通过在信用卡处理网站上测试大量卡片来实现。
兑现
使用被盗或欺诈的支付信息购买商品或服务。此攻击是自动化的,旨在实现多个网站或在短时间内的购买(在卡被封锁之前)。
凭证破解
在这里,攻击者尝试通过暴力破解或基于字典的攻击来验证用户名和密码组合。
凭证填充
该攻击旨在验证大量用户名和密码组合(通常从黑市或以前的数据泄露中获得),并与给定网站进行比对。
拒绝库存
这是一个非常有趣的攻击,旨在通过将产品加入购物车但不付款,从而在一段时间内减少产品的库存。此攻击可能对电子商务页面的销售产生非常负面的影响,但它也可以被触发以负面影响某个产品的发布,或推动某个产品的销售。你可以在下面的截图中看到此类攻击的一个示例:
图 17.3 – 库存拒绝攻击
需要强调的是,这种攻击也可以针对诸如酒店预订、汽车租赁和其他通过电子商务网站提供的服务和产品进行。
拒绝服务(DoS)
这可能是最常见的自动化攻击类型,攻击的方式是通过大量请求淹没网站,超过 Web 服务器的承载能力,直接影响网站及其服务的可用性。
加速
这种攻击旨在绕过一系列步骤,更快地到达流程的最后步骤,如下面的截图所示:
图 17.4 – 加速账户示例
如前所示的截图所示,加速可以通过更快地进入给定的 Web 流程的最后部分来为攻击者节省时间——例如,在 Web 培训表单中点击下一步,直到攻击者到达最后一个问题。
指纹识别
这种自动化攻击旨在收集有关某个网站的公开可用信息,以便更好地理解该站点。大多数时候,它收集如超文本传输协议(HTTP)头、错误信息、统一资源定位符(URL)路径等数据。这种攻击可以通过利用搜索引擎上索引的信息以及其他技术,如利用 Google dorks,在不访问网站的情况下进行。
足迹扫描
这种攻击可以被视为一种更具侵入性的指纹识别。在这种情况下,攻击针对应用程序,尝试收集多个数据,如应用程序参数、值、处理顺序、文件夹结构等。这也可以被视为一种应用程序编程接口(API)扫描,但需要强调的是,这仅仅是发现信息,而不是利用所发现的信息。
票贩子
这种自动化攻击涉及监控在线提供的某个产品或服务的可用性,然后在满足特定条件时自动进行购买(例如,当可用数量=10 时,购买 Lida 音乐会的所有票)。
抢购
这种攻击类似于票贩子攻击,不同之处在于这种攻击是由时间触发的(最后时刻)——例如,当时间=(截止日期-1)时,进行最后一轮下注。
抓取
这种自动化攻击涉及通过访问网页和 API 来收集信息,可以通过认证用户身份(使用被盗凭证)来进行,甚至可以在没有认证用户身份的情况下进行。
偏移
这个攻击的目的是操控网站指标(如点击数、访客数等)、投票、评论和点赞,从而操纵真实的结果并从中获利(如声誉、名气、粉丝等)。你可以在以下截图中看到偏移的示例:
图 17.5 – 偏移示例
如前面的截图所示,使用这种攻击方式,某篇文章的声誉可能会被操控。
垃圾邮件攻击
这是一种著名的攻击方式,涉及大量发送电子邮件,无论是用于营销还是传播恶意软件。
令牌破解
这个攻击的目的是发现网站上激活的令牌,如优惠券代码、折扣和优惠,这些令牌可以被攻击者使用。
漏洞扫描
我们已经深入讨论了这种自动化攻击,主要是通过识别给定网站、API 或其他网络资源中的已知漏洞来进行。
现在,让我们来探索如何使用 Python 在网络安全中应用自动化。
使用 Python 自动化网络安全工具
我们通过展示自动化的所有好处来开始本章,现在是时候看看如何利用 Python 实现自动化了。
Python 是一种超直观的语言,广泛用于脚本编写和自动化,我们也可以利用它来自动化一些与网络安全相关的任务。
实际上,你几乎可以用 Python 自动化你想做的任何事情,包括自动化一些知名的网络安全工具,如Nessus、Nexpose、Shodan、Nmap、Metasploit、Sqlmap等。
然而,在本节中,我们将探索使用 Python 自动化网络安全任务的其他方法。
本地文件搜索
在某些情况下,你需要在给定工作站上搜索特定的文件或文件夹,例如,为了实现合规性、作为审计的一部分或作为取证调查的一部分。
所以,如果你是审计员,拥有一个脚本来查找这些文件和文件夹会非常有用,而这可以通过 Python 轻松实现。让我们来看看怎么做。
Python 默认安装在 Kali Linux 中,因此要运行它,只需执行以下命令:
python3
如下截图所示,>>>表示 Python 解释器已准备好接收你的代码:
图 17.6 – Kali Linux 上的 Python 解释器
现在,让我们使用一个叫做os.walk的函数,它基本上通过自上而下(甚至自下而上)地遍历目录树来收集文件名和目录。
对于我们的例子,假设我们有如下截图中的文件结构:
图 17.7 – 提出的示例文件结构
现在,让我们看看如何轻松地使用 os.walk 来自动化搜索文件和目录。
让我们从回到我们之前打开的 Python 会话开始,并在那里输入以下代码:
>>> import os
>>> for root, dirs, files in os.walk('.'):
... for file in files:
... print(file)
... print(----------)
提示
Python 解释器使用缩进,因此确保你的代码与前面的代码片段保持相同的缩进。
如下图所示,代码输出了当前目录树下所有的文件(从上到下):
图 17.8 – 使用 os.walk 函数的代码输出
在这个例子中,我们只打印了文件名,但你也可以打印其他参数,如 root(目录)和 dirs(子目录)。
提示
如果你有 Python 使用经验,可能会觉得这个例子非常基础,事实上,正是为了这个目的:用一个非常基础的例子来向那些没有 Python 经验的读者阐明这个概念。
此外,你还可以通过使用其他函数(如 os.path)扩展该例子,显示文件的路径,或者甚至添加几行程序代码,只显示某种特定类型的文件。在这里,唯一的限制就是你的想象力!
基础取证
你还可以通过简单的 Python 代码自动收集文件的元数据。
为了完成这个任务,我们将使用 os 库。在这个例子中,我们使用 os.stat,因为它提供了许多操作系统可以使用的有用元数据,包括以下内容:
-
文件最后修改时间(
st_mtime) -
文件最后访问时间(
st_atime) -
创建时间或最后一次元数据更改时间(
st_ctime) -
用户
st_uid) -
文件所有者的组 ID(
st_gid) -
文件大小(
st_size)
让我们来看一个例子。
回到 Python,并输入以下代码行:
>>> import os
>>> stats = os.stat(('secret01'))
>>> stats
输出应该会显示所有前述的信息(创建日期、文件所有者等等),如下图所示:
图 17.9 – 使用 os.stat 获取的文件元数据
如果你想了解更多关于这个库的信息,可以访问以下网页:
-
docs.python.org/3/library/stat.html提示
这些日期格式对你来说不熟悉吗?别担心——你可以使用像
time或datetime这样的库将 Unix 时间转换为人类可读的时间。
许多其他酷炫的库可以用来从文件中获取信息,接下来会讨论这些。
Pillow
Pillow是一个额外的 Python 库,允许对图像进行处理。在我们的案例中,我们可以用它从图片中获取元数据,例如拍摄地点的全球定位系统(GPS)坐标。
使用 Python 收集 PDF 和 Word 文件的元数据
在PDFDocument、PDFParser、PyPDF2和PdfFileReader的情况下。
对于 Word 文档,最著名的库是Python-Docx,它可以从 Word 文档中提取超过 14 个属性。
网页抓取
另一种常见的使用 Python 进行自动化的方法是通过网页抓取。那么,接下来我们来概述一下最常用的库、包和模块,看看如何使用 Python 来自动化网页抓取。
使用 pip
如果你打算玩 Python,那么强烈推荐你安装pip。pip是 Python 的包管理器,可以安装在命令行中使用,来下载和安装 Python 包及其所需的依赖项。
在 Kali Linux 上的安装非常简单,可以通过以下命令完成:
sudo apt update
sudo apt install python3-pip
现在,要验证安装的版本,可以使用以下命令:
pip3 -V
如下图所示,我们在 Kali Linux 上成功安装了pip3:
图 17.10 – 在 Kali Linux 上显示 pip3 版本
现在我们已经设置好了环境,接下来继续概述一些你可以用来进行 Python 自动化的最常用和最著名的库与模块。
Beautiful Soup
在网络安全领域,BeautifulSoup是一个必备的 Python 库,用于解析超文本标记语言(HTML)和可扩展标记语言(XML)文件。事实上,你会发现几乎所有关于网页抓取的 Python 代码中都使用了这个库。
BeautifulSoup的魅力在于它提供了多种选项,能够以一种简单清晰的方式提取你需要的数据。让我来向你解释一下它是如何工作的。
首先,我们要明确一点——HTML 文件不仅仅是一个文件,而是一个充满信息的宝贵源泉,通过 Beautiful Soup,你可以提取所有这些信息。
下图显示了可以使用 Beautiful Soup 解析的信息:
图 17.11 – 可以通过 Beautiful Soup 解析的信息
如前所示截图,HTML 文件中有很多信息可以被解析,BeautifulSoup使我们更容易提取这些信息。
现在,让我们看看你如何也可以利用 Python 来自动化一些网络安全任务。
网络安全自动化
你可以找到无数的 Python 脚本来自动化一些网络安全任务,它们的具体内容取决于你所使用的工具和系统。
然而,你也可以自己创建一个,因此让我们概述一个非常著名的工具,它可以帮助你自动化一些关于捕获和分析网络流量的任务——著名的Scapy。
Scapy
这是一个很棒的工具,你可以在 Python 代码中使用它(无论是交互式还是作为库)来管理从网络嗅探软件(如 Wireshark)收集的数据包。
要安装它,你可以使用以下命令:
pip3 install scapy
然后,你可以通过以下命令确认scapy已安装:
scapy
如果安装成功,你应该看到类似下面的内容:
图 17.12 – Scapy
使用 Scapy,你可以做很多酷炫的事情,比如发送修改过的互联网控制消息协议(ICMP)数据包、端口扫描、读取**数据包捕获(PCAP)**文件,甚至像 Wireshark 一样捕获数据包。
注意
很多人在scapy和scrapy之间感到困惑,因为这两个工具都用于 Python 的安全。然而,虽然scapy主要用于数据包操作,scrapy则用于 Python 的网页抓取。相似,但不相同!
现在,让我们来看看如何利用强大的树莓派来自动化网络安全任务。
使用树莓派进行网络安全自动化
在第十章,应用物联网安全中,我们介绍了很多可以用树莓派做的酷炫网络安全项目,包括以下内容:
-
检测恶意接入点
-
使用树莓派创建入侵检测系统(IDS)和防火墙
-
创建一个安全复制统一串行总线(USB)设备信息的机器
-
创建蜜罐
-
创建一个网络监控设备
-
创建广告拦截器
-
甚至可以创建一个系统来检测网络中不明的树莓派设备,并学习如何禁用它
现在,在本节中,我们将概述一些可以帮助你自动化网络安全任务的树莓派项目。
使用树莓派的 Fail2ban 蜜罐自动化威胁情报收集
有很多工具和技术可以用来将互联网协议(IP)地址列入黑名单。事实上,你甚至可以通过在树莓派上安装 Pi-hole(如第十章,应用物联网安全中提到的那样)来自己创建,但我们这里不讨论这些系统,而是讲述如何利用一台便宜的树莓派收集攻击者的数据,并利用这些数据来更好地保护你的基础设施。
注意
这些基于低成本硬件的解决方案并不是为了取代强大的企业级设备。相反,它们是为了作为一个很棒的工具,用于创建原型和概念验证(PoC),这是进行研究的一个重要步骤,最终这也是网络安全大师必备的技能。
为了实现这个任务,我们将利用一款免费的开源软件,名为 Fail2ban。
Fail2ban 通过分析系统日志文件(如 /var/log/apache/error_log)来寻找恶意登录尝试、暴力破解攻击和其他针对系统的攻击。
然而,Fail2ban 设计时是针对单一系统运行的,因此我们将利用 Raspberry Pi 的强大性能和低成本,将其设置为一个暴露的蜜罐系统,收集有关攻击者的威胁情报,并利用这些信息来增强我们防御性安全系统中的黑名单。
下图展示了提议的架构,旨在利用 Fail2ban 在 Raspberry Pi 上自动化情报收集:
图 17.13 – 在 Raspberry Pi 上使用 Fail2ban 的提议解决方案架构
你可以参考 pimylifeup.com 上创建的教程,了解如何在 Raspberry Pi 上安装 Fail2ban,网址是:pimylifeup.com/raspberry-pi-fail2ban/。
你也可以通过遵循这份指南直接在 Unix 服务器上设置 Fail2ban:www.redhat.com/sysadmin/protect-systems-fail2ban。
或者,你可以访问他们的官方网站:www.fail2ban.org。
提示
Fail2ban 的另一个酷功能是,你可以配置它在检测到攻击时立即通知你,这样你就能快速获取攻击者的数据,并将其输入到你的系统中。
现在,让我们来看看另一个很酷的项目,使用我们的好朋友 Raspberry Pi 来自动化互联网监控。
基于 Raspberry Pi 的自动化互联网监控系统
假设你有一个远程位置,提供 Wi-Fi 服务给你的客户,而这个互联网连接可能会受到多种因素的影响,从速度变慢到完全没有连接。
所以,让我们回顾几个项目,看看如何利用 Raspberry Pi 自动化检测这些问题并通知你,从而在客户受到影响之前采取行动。
基于 Raspberry Pi 的自动化互联网监控
有一个简单的解决方案,你可以使用 Raspberry Pi 和简单的代码来 Ping 外部位置的一个设备,以确定它们是否有活动的互联网连接。然后,你可以利用 Raspberry Pi 的功能,通过 发光二极管 (LED)、声音或更为隐蔽的方式(如通过仪表盘、电子邮件或社交媒体消息)提醒你,以下截图中展示了这一过程:
图 17.14 – 自动化互联网监控系统架构
如果你想实现这个互联网监控解决方案,你可以参考由制作人 talk2bruce 发布的非常详细的逐步安装教程,链接:www.instructables.com/Raspberry-Pi-Internet-Monitor/。
现在,让我们回顾另一种自动化方法,旨在控制不仅是连接,还有互联网的速度。
自动化互联网速度监控
如前所述,可能会有一些情况下,互联网连接正常但速度较慢,这可能是由于 互联网服务提供商(ISP)的问题、路由器问题、线路问题等原因。不管问题的来源是什么,你需要及时了解这些问题,以便采取措施加以解决(记住——可用性问题也是你的责任)。
此外,Raspberry Pi 还允许你在数据库中记录互联网连接历史,这样你可以利用这些数据进行进一步的分析(例如,找出模式来发现问题的根本原因)。
有一个教程,介绍了如何利用来自 Ookla 的第三方 API (www.speedtest.net/apps/cli) 来监控 Raspberry Pi 上的互联网速度:pimylifeup.com/raspberry-pi-internet-speed-monitor/。
这些是使用 Raspberry Pi 进行自动化的一些例子,但在这里,天空才是极限。
记住——如果你是 Raspberry Pi 的专家,可以把你的项目链接发给我进行审阅,我们甚至可以在未来版本的书中包含它们。
总结
我们对目前攻击者使用的 21 种主要自动化攻击进行了全面的概述,以便你可以对你的组织进行评估,确定哪些攻击可能对你的基础设施和组织构成威胁。
但我们也学到了如何利用自动化,因此我们回顾了一些 Python 库,你可以利用它们在取证、网页抓取和网络安全等任务中进行自动化处理。
在结束本章之前,我们学会了如何利用著名的 Raspberry Pi 创建一些非常酷的网络安全小工具,这些工具能够帮助我们自动化一些任务,例如收集恶意地址以加入黑名单,以及两种不同的方法来测试互联网连接的速度和稳定性。
我希望最后这一部分能够激发你进行一些额外的测试和研究,开发你自己的网络安全小工具和原型,像一个大师一样!
进一步阅读
如果你想了解更多关于 Raspberry Pi 的信息,可以访问制造商的网站,这里有丰富的资源,包括教程、项目等。
此外,你还可以在那里找到关于 Raspberry Pi 不同版本的信息,以确定哪一种更适合你的项目。
这是网站的链接:
第十八章:第十八章:大师级的有用资源汇编
“在家中和街道上,我们的安全依赖于我们自己……同样的概念也适用于网络空间。”
– 米格尔·安赫尔·罗德里格斯,哥斯达黎加前总统及美洲国家组织前秘书
我们拥有的最宝贵的资源之一就是我们多年来收集的链接(收藏夹或书签)。
实际上,您的收藏夹是通过多年的职业经验收集的工具、信息和最佳实践的宝贵集合。
因此,我决定将这一最后一章献给您,分享一系列链接,您可以利用这些链接来改进您的数字工具箱中的网络安全网页资源。
这些链接分为三大类:
-
网络安全模板集合
-
必备的网络资源(漏洞库、攻击地图、密码工具等)
-
行业领先的最佳实践参考
免费的网络安全模板
这里是一个有用模板的汇编,您可以在作为网络安全专家的角色中按类别利用这些模板。
业务连续性计划和灾难恢复计划模板
网络上有成千上万的业务连续性计划(BCP)模板;然而,由政府机构创建的模板通常是最佳选择,因为它们准备充分,基于国际标准,并且免费:
-
来自曼彻斯特市议会的 BCP 模板:
www.manchester.gov.uk/downloads/download/5701/mbcf_business_continuity_plan_template -
来自英国赫特福德郡议会的 BCP 模板和指南:
www.hertfordshire.gov.uk/services/business/business-advice/business-continuity-and-fire-safety.aspx -
来自剑桥市的 BCP 模板:
www.cambridgema.gov/-/media/Files/CDD/EconDev/SmallBusiness/unitedwaybusinesscontinuitytemplate.pdf
以下是关于连续性规划的模板和信息的综合列表,包括业务连续性计划(BCP)、**灾难恢复计划(DRP)**和风险管理:www.business.qld.gov.au/running-business/protecting-business/risk-management/continuity-planning/plan
以下网站包含了多个资源,包括如何进行业务影响分析、创建 BCP 甚至 DRP:www.ready.gov/it-disaster-recovery-plan
这里是南加州大学创建的另一个优秀的灾难恢复计划(DRP)示例:fsep.usc.edu/files/2019/02/Disaster-Recovery-Plan-Template.pdf
风险管理
这里有一系列由英国政府发布的关于风险管理的文档,称为橙皮书:www.gov.uk/government/publications/orange-book。
网络安全政策和程序的设计与管理
网络安全政策不仅仅是根据模板创建一个文档并将其永远存储在一个不明的地方。
事实上,网络安全政策和程序是您拥有的最重要资产之一,因为它们代表了您组织网络安全的基线。因此,您必须了解如何正确地制定和管理这些政策和程序,以确保您的防御性安全策略有一个坚实的基础。
我们推荐使用 CUDSE 方法,因为如以下图所示,它向您展示了如何在整个生命周期中正确地管理您的网络安全政策:
图 18.1 – CUDSE 方法
此方法的官方网站可以在www.cudse.com找到。
这是一个开放的倡议,如果您希望成为方法未来版本的编辑或贡献者,可以随时在网页上注册。
必备的网络资源
这是一个非常好的网络安全控制清单,您可以利用它进行快速审计,或者将其作为创建您自己清单的基础:www.utah.gov/beready/business/documents/BRUCyberSecurityChecklist.pdf
网络威胁或数字攻击地图
这些页面实时展示了当前世界范围内发生的网络攻击的图形化表示。
如下图所示,页面还显示了额外的数据,如最受攻击的国家和按行业划分的攻击:
图 18.2 – 实时网络威胁地图
以下是一些最著名的威胁地图:
这些页面对于以下内容非常有用:
-
意识培训
-
网络安全演示
-
突出展示某一行业中防御性安全的重要性
此外,还有一些页面,如www.digitalattackmap.com/#anim=1&color=0&country=ALL&list=0&time=18763&view=map,可以根据日期显示可视化效果。这非常有趣,因为它可以帮助你将攻击次数与特定日期关联起来,例如选举期间、假期等时段的攻击增加。
网络安全认证
现在有许多公司提供网络安全认证;然而,并非所有公司都能提供物有所值的认证服务。因此,让我和你分享一些在报考网络安全认证时需要考虑的关键因素。
国际认证
PDF 文件容易被复制,因此你需要确保你的认证机构会提供一个数字令牌,方便你与他人分享,以确认你的认证是真实的,而非伪造的 PDF 文件。
这里,最好的解决方案是使用数字徽章,该徽章可以验证你是真正的认证持有者。数字徽章技术有所不同,最新的徽章甚至可以通过扫描数字徽章在网站上进行验证(非常酷)。
更新的文献和内容
网络安全是一个迅速变化的领域,因此你需要确保选择的认证机构使用最新的认证和考试内容,并避免选择那些多年来使用相同内容的机构。
创新
有太多认证机构几乎没有区别,因此要探索那些敢于创新的认证机构,提供新的提案、新的考试、新的内容、新的认证方案(包括数字徽章),这些才是能为你的简历带来独特优势的机构。
由专家验证和管理
另一个需要检查的重要项是谁在运营认证机构;例如,选择一个由真正了解该领域的网络安全专家支持和运营的认证机构比选择由一群不熟悉该领域的投资者和管理者运营的机构要好。
因此,我们强烈推荐国际创新与认证委员会(I2C2x),这是一个由网络安全专家管理并拥有的认证机构,致力于提升全球网络安全水平。
欲了解更多信息,请访问他们的网站:i2c2x.com。
网络安全新闻与博客
几乎每天都会有与网络安全相关的新博客或网站诞生;然而,并非所有网站都是由专家运营的,这可能导致其中一些分享不正确甚至是假新闻;因此,确保访问的网站是最好的非常重要,接下来我将分享一些世界上最好的网络安全资源。
在国际上被誉为网络安全新闻最佳来源之一的是:krebsonsecurity.com/
他们已经制作了超过 15 年的网络安全高质量视频内容,包括技巧、硬件黑客和新闻。
每个网络安全专家必备的书签之一是Hak5 播客:hak5.org/pages/videos
其中一个最好的网络安全知识交流论坛是:security.stackexchange.com/
但等等,还有其他语言(如西班牙语)创作的非常好的内容!例如,您可以访问节目Noches de Cyberseguridad,每周邀请来自拉丁美洲的专家讨论与网络安全相关的不同话题:www.facebook.com/nochesdeciberseguridad/
网络安全工具
在这里,我将总结一些必须拥有的网络资源,方便大家保存到书签中。我们在书中已经谈到了其中的一些资源;然而,考虑到它们的重要性,这里也值得再次强调。
测试网络安全漏洞的必备平台是:dvwa.co.uk/
Kali Linux 的官方页面,包括下载地址如下:www.kali.org/
NetHunter(适用于移动设备的 Kali Linux)的官方网站如下:www.kali.org/get-kali/#kali-mobile
一个包含超过 40,000 个已知漏洞的数据库如下:www.exploit-db.com/
exploit-db的一个子栏目,专门介绍 Google 黑客(dorks),地址如下:www.exploit-db.com/google-hacking-database
已知网络安全漏洞的最佳来源如下:cve.mitre.org/index.html
我知道还有很多其他工具;这只是本书中提到的一些最好的工具的亮点。接下来我们将谈谈一些最常用的与密码相关的资源。
与密码相关的工具
弱密码或不良密码管理实践是造成大部分网络安全漏洞的原因,以下是与密码管理相关的必备资源。
本网站用于检查给定的电子邮件是否曾出现在数据泄露事件中,因此必须更改密码并且永远不再使用:haveibeenpwned.com/
这个网站是一个很好的资源,用来强调弱密码的危险。特别适用于网络安全演讲或意识提升活动:www.grc.com/haystack.htm
Google 和 Microsoft 的多因素认证解决方案:
现在,我将与您分享一些关于网络安全最佳实践和框架的链接。
行业领先的最佳实践
总结以下关于网络安全和数据安全的行业最佳实践、框架和标准页面。
法规和标准
PCI-DSS是处理信用卡信息和支付数据的公司必须使用的标准。它们的官方网站如下:www.pcisecuritystandards.org/
HIPAA是美国的一项法规,旨在保护患者的敏感医疗记录:www.hhs.gov/hipaa/index.html
GDPR是欧盟制定的旨在保护其公民个人数据的法规:gdpr.eu/
正如本书前面所提到的,记住你必须始终研究与公司所在地、客户及市场相关的应用法规,以避免不必要的罚款和制裁。
网络安全框架、标准等
现在,让我们以网络安全领域的领先框架、标准和其他必备资源的清单来结束。
NIST 网络安全框架
最著名的网络安全框架是 NIST:www.nist.gov/cyberframework
ISO 27001
27001 系列是与网络安全相关的 ISO 标准家族:www.iso.org/isoiec-27001-information-security.html
物联网安全基金会
一份关于网络安全(包括物联网安全框架)的出版物清单,由物联网安全基金会设计:www.iotsecurityfoundation.org/best-practice-guidelines/
MITRE ATT&CK 矩阵
该矩阵是基于真实案例和观察的对抗者战术与技术的整理知识库:attack.mitre.org/
OWASP 十大
开放式 Web 应用程序安全项目(OWASP)是一个非盈利基金会,旨在增强 Web 资源和应用程序的安全性。它因发布十大 Web 应用程序安全风险而闻名:owasp.org/
网络安全成熟度模型
企业 网络安全成熟度模型(ECM2)使网络安全专业人员能够通过几个简单的步骤来确定公司的当前网络安全水平,并提供如何迈向下一个阶段的指南。你还可以在他们的网站上注册,成为下一个版本的贡献者或编辑:www.ecm2.info
总结
我希望你在成为网络安全专家的旅程中,能够发现这些链接有用。此外,我相信你也有一堆有用的资源和链接,所以请随时通过社交媒体与我分享,我会非常乐意将它们添加到未来版本的书籍中,甚至在我的即将到来的会议中展示它们。
本章也代表着这一段精彩旅程的结束,旨在提升你在多个主题上的网络安全技能,如服务器加固、网络安全、物理安全、云安全,甚至是网络安全政策的重要性和相关性。
此外,你还学习了诸如法医、恶意软件分析和物联网安全等高级主题。
但在这本书中,你不仅仅学习了技术;你还学会了如何创造技术,而我们是通过利用物联网(IoT)设备来创建你自己的网络安全工具来实现这一点,这正是高手所做的!
我真心希望你像我在制作这本书时一样,享受这段学习经历。
你现在是防御性安全的高手!
深入阅读
最后,我想与您分享我在美国、德国、西班牙、日本和中国注册的专利清单。这些专利是与来自世界各地的杰出研究人员和专家们共同研究和原型制作数百小时的成果,我希望它们能为你作为一名网络安全研究人员的未来提供灵感和动力:patents.google.com/?inventor=cesar+bravo&assignee=International+Business+Machines+Corporation