【追随大师】专栏
"To become a master, study the masters"(追随大师,成为大师)—— Mark Rothko
最近在每日戴夫邮件列表中,戴夫发表了以下内容:
...另一个经常被提起的话题是内存取证。当今你可以用它来发现黑客使用的木马.sys文件 - 但我认为它存在上限。大多数rootkit都在"隐藏进程"或"隐藏套接字"。但在内核中这么做是疯狂的。如果你已经在内核中了,为什么还需要进程?为了GUI?我们在这里写的是什么,MFC木马吗?内核中的熵值并不高,但足以让下一代rootkit完全不需要考虑内存取证这个问题。这里的发展趋势不利于内存取证工具 - 它们必须做大量工作来对抗rootkit编写者的每一个微小动作。
漏洞利用也是类似的情况。即使在中期来看,对用户空间进行内存取证以寻找CANVAS shellcode的痕迹也是一场注定失败的游戏。任何足够彻底到能够捕获shellcode的方法都会产生太多误报,以至于变得毫无用处。这并不意味着这方面没有工作要做,但它不会是游戏规则的改变者。
由于我不够31337(精英黑客)无法通过戴夫的审核发帖,我就在这里发表我的回复:
戴夫和各位,
我不是像Aaron Walters那样的内存取证专家,但我可以谈谈总体方法。Dave,我认为你在这个问题上应用了与所谓入侵检测系统相同的隧道视野。(我们几年前讨论过这个问题,也许是在黑帽大会的午餐时?)
是的,你可以让你的漏洞利用(可能还包括你的命令控制/C2)绕过大多数检测机制(这意味着你也可以绕过"防御"机制)。然而,你能够在系统和网络上完美地、持续地、永久地隐藏你的存在吗?(或者至少隐藏到完成任务所需的时间?)答案是否定的,这就是专业防御者在运营网络上处理这个问题的方式。
内存取证也是一样。在某个时刻,入侵者很可能会采取某些暴露其存在的行动。如果部署了适当的监测和保留系统,一旦你知道要寻找什么,你就能找到入侵者。我称之为回溯性安全分析,这是唯一一种在面对最先进威胁时行之有效的方法,无论是模拟还是数字威胁。你的可见性、威胁情报和安全人员资源越好,暴露窗口(从被攻破到对手完成任务)就越小。保持窗口较小是我们能做到的最好结果;面对高级入侵者,完全关闭窗口是不可能的。
不过,说服开发者和资产所有者支持可见性仍然是个问题。
评论
我100%同意Richard的观点...在某个时刻,入侵者必须采取行动,他们的存在会暴露给具有正确可见性和适当技能的人。
这在军事领域是众所周知的。在某个时刻,那个狙击手或那些在LP/OP(监听/观察哨)位置的海军陆战队员会屈服于人类需求,或者他们必须向上级指挥部发送数据...如果他们不这样做,那有什么意义?最隐秘的狙击手也需要移动或者可能需要开枪。
关键是总会有某些东西在某个地方被暴露。我遇到的"专业防御者"并不多,更多时候我处理的是连最基本可见性或基础培训都缺乏的客户...但事实是总会有某些线索,某个地方...地毯上的泥泞脚印,或者更微妙的东西,比如弯曲的树枝或翻转的石头...
在这个问题上我支持戴夫。在众多实际渗透测试中使用CANVAS,我从未被IDS检测到。
你的论点看似有道理,但这是个站不住脚的立场。给定足够的时间,检测的概率确实会趋近于1。然而,到那时已经太晚了。即使在为期一周的渗透测试中,有经验的测试者已经破解了密码,创建了用户,安装了键盘记录器,获取了你最关键的数据,并且有2-3台闲置的机器,这样如果你检测到一台比较显眼的机器,我仍然有地方可去。
在那个时候,检测已经无关紧要了。你无法摆脱攻击者,因为你唯一的真正优势是对机器的物理访问权限 -- 这在许多全球企业环境中都是值得怀疑的。攻击者已经获取了最有价值的数据,此时可能只是让这些资产闲置。
如果你能在你提到的时间内完成你的目标,那么你的目标远比那些真正让我担心的入侵者要窄,或者涉及的网络太小,不足以引起我的关注。
内存取证也关乎建立系统基准线,这样你就能检测到系统何时运行超出正常范围。
我们在安全领域做了很多检测攻击概率较低的事情,但事实是,你拥有的信息源越多,就越有可能检测到攻击。
Richard,
我同意你的结论和解释。不过,当我听到这类事情时,我的第一反应角度有些不同。
作为分析师,我们的职位是更大的风险管理功能的一部分,而不是风险消除。如果我们将努力建立在后者的基础上,我们永远不会在前者方面有效。通过迫使对手进行军备竞赛,如Dave所暗示的,我们迫使他们提高复杂性,减少能够有效危害我们安全的威胁空间。这意味着我们可以将更昂贵和复杂的技术应用到剩余的问题上,而这在更大规模上是不可能的。这种情况对防御者来说是"可赢的"吗?可能不是,但是漏洞管理由于相同的原因也不是。这是否意味着我们应该放松减少问题的努力?当然不是。
国家安全是一个很好的类比,尽管不完整。我们能保证我们的国家免受外国对手的威胁吗?当然不能。当外交无效时,我们有时必须进行军备竞赛来减轻可能的攻击 - 冷战就是一个好例子。就像在国家安全中一样,问题的最佳战略解决方案在于政策 - 冲突往往是意识形态的症状,在许多情况下可以通过外交和法律框架来解决。政策制定者或立法者尚未认识到这一点也适用于信息安全,因此我们陷入了一场艰难的军备竞赛,以减轻我们不再安全的条件。
我觉得持有这种有些失败主义态度的支持者显示出缺乏对风险管理和风险消除之间重要区别的认识,而这种区别是我们每天决策的指导原则。
Richard,
我通常与财富100强公司和/或大型政府机构合作。如果它们不够大到引起你的关注,那我就有点困惑了。同样,在那个时间框架内,我通常已经建立了稳固的立足点以确保继续访问网络,并且可以访问关键系统(电子邮件、员工数据、客户数据库、PDC)。
我认为我是一个公平的渗透测试者,但类似的结果在大多数优质公司的评估中都很常见。