在英国,TalkTalk 公司最近遭到黑客攻击。
后来发现,在“调查”之后,黑客攻击并没有想象中那么严重(并且没有预期的那么严重)。
我想知道:组织(不一定是 TalkTalk——这正是促使我问的问题)如何检查被黑客入侵的内容?我敢肯定有很多方法;但“主要”是什么?
在英国,TalkTalk 公司最近遭到黑客攻击。
后来发现,在“调查”之后,黑客攻击并没有想象中那么严重(并且没有预期的那么严重)。
我想知道:组织(不一定是 TalkTalk——这正是促使我问的问题)如何检查被黑客入侵的内容?我敢肯定有很多方法;但“主要”是什么?
一句话:取证。
计算机取证是检查系统并确定之前发生的事情的艺术。检查文件和内存工件,尤其是文件时间线,可以非常清楚地描绘出攻击者做了什么、什么时候做的以及他们拿走了什么。
举个例子——给定 Windows 系统的内存转储,不仅可以提取攻击者键入的命令行,还可以提取他们在运行这些命令时看到的输出。在确定影响方面非常有用,对吧?
根据妥协的新鲜度,可以说出很多关于发生的事情。
@AleksandrDubinsky 建议概述各种计算机取证领域和技术会很有用,我很乐意为您做这些。它们包括但不限于以下内容(我将使用粗略的术语;它们不是官方的或全面的):
日志/监控取证:集中式日志、防火墙日志、数据包捕获和 IDS 命中等“外部”数据的使用跨越了“检测”和“取证”之间的界限。一些数据,比如日志(甚至是集中式的)不能被认为是完整的甚至是真实的,因为攻击者一旦控制了系统就可以过滤或注入它。系统外的数据包记录工具,如防火墙、IDS 或数据包记录器(例如(以前的)NetWitness)不太可能被篡改,但只包含有限数量的信息;通常只是 IP 对话的记录,有时只是与恶意活动相关的签名(例如 HTTP URL)。
除非在入侵中使用未加密的网络连接,否则这些工具很少能够详细说明入侵期间的活动,因此(回到最初的问题)不要“检查被黑客入侵的内容”。另一方面,如果使用未加密的连接 (ftp) 将数据泄露出去,并且记录了完整的数据包,那么就可以准确地知道攻击者使用了哪些数据。
实时取证:更恰当地说是事件响应的一部分,即所谓的“实时”取证包括登录系统并环顾四周。调查人员可以枚举进程,查看应用程序(例如浏览器历史记录),并探索文件系统以寻找发生了什么的迹象。同样,这通常旨在验证是否发生了危害,而不是确定危害的程度,因为被危害的系统能够隐藏文件、进程、网络连接,实际上是它想要的任何东西。好处是它允许访问驻留在内存中的事物(进程、打开的网络连接),一旦您关闭系统以映像磁盘(但是,如果系统被入侵,系统可能会撒谎! )
文件系统取证:一旦制作了磁盘的副本,就可以将它安装在一个干净的系统上并进行探索,从而消除受感染的操作系统“撒谎”关于哪些文件已到位的任何机会。存在使用各种时间戳和其他可用元数据构建时间线的工具,包括文件数据、注册表数据(在 Windows 上),甚至应用程序数据(例如浏览器历史记录)。不只是使用文件写入时间;文件读取时间可以指示哪些文件已被查看以及哪些程序已被执行(以及何时)。可疑文件可以通过干净的防病毒检查器、生成和提交的签名、加载到调试器和探索的可执行文件、用于搜索关键字的“字符串”来运行。在 Unix 上,“历史” 文件 - 如果没有被攻击者关闭 - 可能会详细说明攻击者输入的命令。在 Windows 上,Shadow Copy Service 可能会提供已清理的过去活动的快照。
这是最常用于确定妥协的范围和程度的步骤,并确定哪些数据可能已被访问和/或被泄露。这是我们如何“检查被黑客入侵的内容”的最佳答案。
磁盘取证:删除的文件会从文件系统中消失,但不会从磁盘中消失。此外,聪明的攻击者可能会将他们的文件隐藏在现有文件的“松弛空间”中。这些东西只能通过检查原始磁盘字节才能找到,并且存在诸如The Sleuth Kit 之类的工具来撕开原始数据并确定它对过去的意义。如果有一个 .bash_history 文件,并且攻击者在注销前的最后一步将其删除,那么该文件可能仍然作为磁盘块存在,并且可以恢复。同样,下载的攻击工具和泄露的临时数据文件可以帮助确定入侵的程度。
内存取证:如果调查人员能够尽快到达那里,并获得所涉及系统内存的快照,那么他们就可以彻底调查妥协的深度。攻击者必须破坏内核以隐藏程序,但如果可以制作内核内存的真实映像,就无法隐藏所做的事情。正如磁盘块包含已从文件系统中删除的数据一样,内存转储包含过去内存中尚未被覆盖的数据(例如命令行历史记录和输出!)......而且大多数数据不会很快被覆盖。
想要更多?有学习取证的培训计划和认证;最常见的公开培训可能来自SANS。我持有他们的 GCFA(“法医分析师”)认证。您还可以查看来自 Honeynet 项目的挑战,在该项目中,各方竞争解开给定磁盘映像、内存转储和来自实际妥协的恶意软件样本的案例 - 他们提交他们发现的报告,因此您可以查看各种工具在这个领域使用和发现。
反取证是评论中的热门话题 - 基本上,“攻击者不能隐藏他们的踪迹吗?” 有一些方法可以消除它 - 请参阅此技术列表- 但它远非完美,也不是我所说的可靠。当你认为“网络间谍的‘神’”竟然占据了硬盘驱动器的固件以维持对系统的访问,而不在系统本身上留下痕迹——并且仍然被检测到——似乎很清楚,在最后,发现证据比抹去它更容易。
在技术部门工作,我会如何做如下:
找到黑客,洞,弱点。
检查 syslog、dmesg、access.log 和 error.log 以确认论文。(当入侵网络时,您通常会在 TalkTalk 的情况下破坏系统,这是 MySQL 注入,这样做会在 mysql.err 日志中留下错误,因为您必须破坏它。)
复制 hack,复制 hack 可以让您了解 hack 的深度,并让您估算损失。
如果你找到了漏洞,你可以复制攻击,复制攻击,你会看到攻击者看到了什么。
除了取证(和评论)的出色答案外,一些组织还使用入侵检测系统,例如“Snort”(网络入侵检测)和 OSSEC(基于主机的检测系统)以及思科等供应商提供的许多其他系统,这些系统记录异常或未经授权行为的各个方面。
例如,基于主机的入侵检测系统通常会在服务器上记录文件更改,因此取证调查可以显示在给定时期内哪些文件已更改,并且取证调查员可以使用它来拼凑某些用户或攻击者的活动。
攻击者还会在整个基础架构的日志中留下痕迹,从防火墙日志到服务器日志、服务日志(Web、smtp 等),这些都可以提供重要线索。但是,攻击者可以更改这些日志,除非它们被设计为安全且不可更改的,例如通过将日志集中在只写介质上。
一旦攻击者获得特权访问权限,就会脱掉手套,并且可以篡改或删除日志。
最终,它将取决于准备情况——组织是否已为入侵和随后的取证工作做好准备。这应该是每个公司安全计划的一部分。
我还没有看到这一点,它可能是此类调查的主要资源,尤其是围绕数据访问的调查:
RDBMS 审计可以成为准确确定访问了哪些数据、何时以及由谁访问的主要资源。这当然取决于如何或是否已配置它。
例如,SQL Server Audit允许检索用户 ID、时间戳和提交给服务器的实际查询,从而允许完全重建被盗数据集。
审计系统应内置冗余,以防止篡改审计线索。其中一些可能存储在 RDBMS 中,而另一些可能会写入外部源。SQL Server 可以将审核记录到 Windows 安全日志中。