黑客为何钟爱日志

攻防
1月前

1721305031926890.jpeg

计算机日志文件是记录计算机内应用程序执行操作的记录,对于了解系统内部发生的事件(无论是设计故障还是恶意活动)至关重要。最开始,对日志的分析是人工手动进行的,效率低下。如今,其他应用程序,尤其是监视异常活动的安全软件已经将该过程实现了自动化,更加高效地识别表示攻击正在发生的异常活动。

虽然日志对于企业的IT运作至关重要,但其并不直接参与企业的业务活动。因此,日志的价值经常被忽略,并不被纳入到企业必须保护的范围,通常只是简单的读、写文本文件,安全性较低。

这种误解通常源自于对日志总体内容的忽略。日志尽管是以零散的形式存在,但它们记录了IT基础设施及其使用的完整情况。攻击者也同样注意到了这一点。

日志的内容与吸引力

日志文件内容包含许多吸引攻击者的要素或功能,包括:辅助侦察、个人身份信息(PII)和其他受管制的数据、隐秘行动和覆盖踪迹的手段,以及干扰和勒索的方法。

侦察 日志中包含了基础设施内所发生的所有事件的数据,这反过来也能够揭示出行为、防御措施以及使用已知漏洞的产品。它们可以提供有关基础设施和软件配置、默认密码的存在、用户凭据以及提升权限的潜在方法的信息。简而言之,日志可以帮助绘制并促进攻击者进入重要企业内容的路径。

PII 日志通常并不被视为敏感信息的存储库。实际上,日志中包含了许多个人身份信息(PII)和其他敏感数据。它们知道高管会见的人、高管可能正在发展合作伙伴关系的人、其他高管和他们做生意的人的电话号码以及其他PII等。日志中还可能会包含有关企业正在进行的大型交易和并购的敏感信息。然而很少有组织认真对待或将其视为经典攻击点,但如果获取了日志的访问权限,其内容对于攻击者来说非常有价值。

行动隐蔽与踪迹覆盖 日志是系统的窗口,但其并不具有智能性。它们记录正在发生的事情,但并不知道为什么会发生。组织需要使用独立的自动化软件(大部分是AI辅助软件),例如先进的安全信息与事件管理系统(SIEM) ,来解释日志中所记录的活动。更具体地说,这种自动化旨在区分预期和异常的活动。日志是企业能见度和事后防御的基本组成部分,前提是它们准确无误。

攻击者会攻击日志以掩盖自己的行踪。这对于攻击活动的持久性至关重要。在一次利用现有资源的攻击中,攻击者希望自己停留的时间能够尽可能地长。这意味着要低调、缓慢地行动,同时还要掩盖自己的行踪。许多日志不是只读的,攻击者会找到这些日志并修改它们。

攻击者能够篡改日志,就意味着可以限制或阻止防御者的能见度。攻击者不仅可以隐藏自己,不受现有自动警报的监控,还可以隐藏自己是如何进行攻击的,这是非常关键的。而作为蓝队的防御人员就需要知道攻击者试图利用哪些向量和漏洞,这样才能阻止他们。如果甚至连这个都看不到,那么对于安全团队来说情况就会变得非常可怕,因为他们确实需要这种能见度来确保组织边界和系统的安全。所以说,日志篡改可以在攻击中用于“隐身”。

在攻击活动完成后,对日志的篡改仍可用于“隐身”。攻击者可以通过在日志中制造混乱,来使组织的能见度在数周内丧失。

攻击者在攻击发生后可能会利用日志篡改来造成混乱,使得受害者需要花费数周的时间来修复日志中的问题。在这段时间内,受害者可能并不知晓自己已经遭受了攻击。当受害者最终修复了日志问题并使系统正常运行时,已经过了很长时间,而攻击者早已离开。在这种情况下,日志篡改可以帮助攻击者在攻击期间隐蔽其行动,并在攻击之后帮助掩盖行踪。

破坏与勒索 日志对于两类攻击者都具有吸引力:有财务动机的犯罪分子以及有政治动机的国家。对于后者,控制日志有助于更长时间的侦察和潜行,以及更好地对潜在的破坏目标进行定位。这同样也对犯罪团伙有用,也为勒索提供了另一条更为直接的途径。

此外,攻击者还可以在某些组织的日志中撒播个人信息,使其在不知不觉间就违反了许多监管要求。受害者所面临的财务损失是巨大的,而这仅仅是通过伪造日志条目实现的。攻击者可以对一两家公司这样做,然后再去找第三家公司,来威胁他们:“嘿,我即将让你们严重违反全球一些最昂贵的监管框架。”要阻止这种情况并不简单,清理日志也非常困难,所以如果真的发生了,勒索软件攻击事件是非常真实的。

篡改手段

篡改日志文件最常见的方法就是通过注入虚假或误导性得操作来破坏其内容。然而,管理文件的框架也可能会受到攻击,文件可能会被窃取,或者暴露在互联网上。

Log4j

Log4j是一个被广泛使用的开源日志框架。Log4Shell是Log4j第2版本中的一个关键漏洞(CVE-2021-44228)。该漏洞涉及对Java命名和目录接口(Java Naming and Directory Interface API)的滥用,这是一个旨在允许开发人员检索外部对象或资源的工具。在Log4j第2版本中,默认启用了JNDI。

Log4j v2通过监视日志来查找JNDI查找指令。这是复杂动态应用程序中的一个有用功能,可以实时提供不同模块给不同用户使用。但这对于日志本身来说,并不是必不可少的。而且,许多日志开发人员可能并不知道这个功能在代码中的存在,更别提它是否被启用了。

与此相关的攻击非常简单,如果攻击者能够将JNDI查找注入到日志中,那么远程代码执行攻击将会自动进行。这可以通过尝试使用一个包含恶意代码的外部位置的虚假用户名‘JNDI,括号,blah blah’来实现。随后,登录会失败,但尝试会被记录下来,并且会在日志内部调用JNDI查找。

攻击者所需做的只是将JNDI查找模式注入到日志中,Log4j会通过从随机IP地址获取和执行随机Java代码来响应,因为这就是它被设计的目的。

Apache软件基金会在得知这个漏洞大约四天后迅速提供了修复方案。但在那之前,它已经成为了一个容易被利用的零日漏洞至少有两周的时间。直到公司修补了这个漏洞之前,它仍然是一个n日漏洞。由于Log4j的普遍使用,所以该事件引起了不小的轰动。

尽管CVE-2021-44228漏洞早在2021年就首次发现,但一些组织仍未修补此远程代码执行(RCE)漏洞。目前,仍有2%的组织的资产存在Log4J漏洞。

未修补的Log4J仍然构成威胁,类似情况可能再次发生在开源软件中的危险始终存在。

被暴露在互联网上的以及被窃取的日志

当安全公司CyCognito 为一家财富100强的支付公司提供服务时,发现了一份暴露在互联网上的Bash日志文件。可以推测该Bash历史文件中包含了该公司以及许多其他公司的数十个MySQL凭据,如果攻击者已经获取了对这些凭据的访问权限,那么每一个凭据都可能导致一次违规。

这种情况的危险性就在于攻击者掌握了所有的主动权。假设攻击者从这家公司和其他公司的Bash历史文件中获得了40个MySQL数据库的凭据,那么他现在就可以立即对这些数据库发起攻击并窃取信息。或者可以直接连接到数据库的管理员账号。他可以立即执行这个计划,也可以逐步进行,或者可以等几周,然后在周末的凌晨4点执行。

将日志暴露在互联网上就如同将其内容摆在攻击者面前供其取用一般。但由于日志通常没有得到足够的保护,它们可以相对容易地被外泄或窃取。

日志外泄不太常见,原因有两点。首先,能够窃取日志的攻击者已经进入到了网络内部,他更有可能篡改而不是窃取日志。其次,对于攻击者而言,日志数据的价值在于其实时性。一旦被窃取,这个快照就成为了“历史”,而且诸如凭据之类的数据可能已经被更换掉了。

这些日志非常有价值。但说实话,对于大部分攻击者来说,如果已经达到了可以从服务器上随意提取文件的地步,那么大概率会直接去寻找访问密钥、密码、用户名,并扫描端口以寻找其他服务器以及其他任何东西。他们会尽可能地把自己的触角伸入到尽可能多的服务器中。

但这并不意味着日志信息外泄事件不会发生,这些内容仍然可能对非法资源中介具有价值。目前已有公司观察到日志来源在自动贩卖车(automated vending carts,AVC)等网络犯罪场所上被频繁宣传,这本质上是网络犯罪的eBay。

恶意操纵

日志没有得到很好的保护,通常是因为它们需要对多个来源的写入开放,此外,它们通常以纯文本的形式存在,没有进行加密处理。

这使得它们容易受到恶意操纵。攻击者通常会通过利用漏洞、使用窃取的凭据或者入侵具有日志文件访问权限的账户来针对日志发起攻击。他们可能会注入虚假条目,删除特定的日志以抹除痕迹,或者修改时间戳和IP地址等细节。有时,他们甚至会禁用日志记录服务以阻止任何活动被记录。

一旦恶意活动完成,他们可能会重新启用日志记录。事后看起来好像什么都没有发生,但却并不能证明什么都没有发生。

对日志篡改的方法会根据目标、其日志记录过程以及攻击者的TTP的不同而不同。它可能是粗糙的,比如在Linux系统中删除bash历史文件,或者在Windows系统中使用PowerShell来删除系统事件。在更复杂的环境中,它可能涉及识别并尝试攻击专用的日志记录系统(然后也删除这些证据)。

日志防护

防止互联网暴露 组织需要一个流程来确保所有日志文件都没有被无意间暴露在互联网上。它们与数据库或任何其他文件在根本上并无不同。攻击者不应被允许简单地访问或下载它们。

渗透测试与补丁 确保组织的渗透测试、应用程序安全测试和漏洞管理程序覆盖了所有资产;并且需要有一个流程来确保能够完全识别到没有被覆盖的内容,因为这是组织最可能遭受攻击和利用的地方。据相关研究,2%的Log4J系统仍然存在漏洞,大多是因为这些机器根本没有得到适当的测试,或者每隔几年才测试一次。应用程序安全测试和漏洞管理渗透测试的覆盖范围和频率方面非常重要。

保护日志的完整性 为了防止日志被篡改,组织可以采取一系列措施,例如使用一次性写入介质或仅允许追加操作的安全日志服务器。此外,使用加密技术对日志进行签名可以确保其完整性,通过验证加密签名可以检测到任何的篡改。同时,定期监控和审计日志以寻找任何未经授权的访问或修改也同样至关重要。

建议将每个日志记录都视为散列数据结构内的一项交易。例如,证书透明日志基于默克尔树数据结构,这意味着交易只能被输入,永远不能被修改,永远不能被删除。任何尝试在输入数据后更改数据的行为都会使得组织察觉到日志已被篡改。

客户端和服务器端都应设置日志条目。有时,服务器可能没有提供足够的日志记录。在这些情况下,日志记录应由一个不可篡改的中间人提供,例如反向代理。

为了防止日志被篡改,组织应使用将日志以安全、防篡改的方式存储的集中式日志记录解决方案。

实施严格的访问控制,确保只有授权人员能够访问和管理日志。使用不可变日志,一旦写入就无法更改,是另一种关键策略。对日志数据进行加密,包括静态数据和传输中的数据,进行定期审计,保持备份也是必不可少的做法。实时监控和篡改检测机制,如哈希链或数字签名,可以提醒安全团队发现未经授权的更改。最后,在日志管理中分离职责有助于减少内部威胁的风险,确保日志的完整性和安全监控的有效性。

最后,要保护日志不被篡改或利用就必须首先认识到,尽管日志并不是企业的“奇珍异宝”,但它们几乎总是包含了通往这些“奇珍异宝”的地图和钥匙,因此必须得到充分的保护。


数世点评


系统日志不仅是企业安全的重要组成部分,同时也是维护企业正常运营的关键工具。它一方面对于组织本身是系统故障排除、性能优化的重要依据。反过来,也会成为恶意分子用于入侵组织系统的强力“武器”。日志值得企业投入更多的重视与资源以进行有效管理和防护,从而确保企业信息系统的安全稳定运行。


* 本文为茉泠编译,原文地址:https://www.securityweek.com/why-hackers-love-logs/ 
注:图片均来源于网络,无法联系到版权持有者。如有侵权,请与后台联系,做删除处理。


— 【 THE END 】—