忍者访谈,第二部分

作者:Mick Bauer

上个月,我介绍了我的好朋友忍者 G,他是一家大型金融机构的资深专业渗透测试员(同时也是忍者开发的古代武术的实践者)。我们谈论了他的日常活动、他不寻常的职业道路、他对 WLAN 和 Linux 安全的看法,以及忍者 G 和他的同事们对忍术的不可思议的专注。

这个月,我结束这次访谈。我认为这一部分和第一部分一样,内容广泛、发人深省且引人入胜。希望您也这么认为!

MB: 我必须问一个有点自私的问题,因为我自己的职业生涯很大一部分都与防火墙有关。在 Web 应用程序时代,浏览器是平台,世界上如此多的业务都通过 TCP 端口 80 和 443 进行,传统的第 3 层防火墙是否仍然有作用?

NG: 我相信是的;但是,我认为大多数人都会同意,传统的(状态感知)防火墙本身并不是一个完整的解决方案。它只是众多防御层中的第一层。入侵检测(和防御)系统、系统加固、安全集中日志记录和应用程序感知防火墙应补充状态感知防火墙,以弥补其可能存在的不足之处。

MB: 您如何看待新一代(Web)应用程序防火墙?它们可以被训练来阻止“预期”Web 应用程序行为的异常。我们最终是否在这个技术领域达到了一个临界点,可以创建一个足够完整的“预期”应用程序或网络行为的概念,从而降低我们传统上与这种方法相关联的极高的误报率?

NG: 我认为我永远不会建议使用 Web 应用程序防火墙来代替 Web 应用程序加固。Web 应用程序防火墙捕获到的许多问题通常可以通过对所有用户提供的输入进行适当的污点变量检查来解决。这包括 Web 浏览器的用户代理字符串(可能会进入日志文件)、所有 cookie 以及当然,GET/POST 数据、AJAX 请求等等。

在理想的世界中,Web 应用程序应提供诸如跨站脚本、SQL 注入和暴力破解尝试等事件的实时日志记录,但这通常是例外而不是规则。通常,组织依靠(SSL 破解)Web 应用程序防火墙来获取相同类型的数据;但是,当在任何实际阻止恶意流量到达目标主机的内联设备中部署时,您必须对低误报率非常有信心,否则您可能会为可能是业务关键型应用程序创建自己的拒绝服务条件。应该记住,即使是顶级 Web 应用程序防火墙偶尔也会产生误报,并据此规划其使用。

MB: 有些人不仅对渗透测试的价值持怀疑态度,而且尤其对任何在系统破解方面积累了经验的人的可信度持怀疑态度,他们(怀疑论者)似乎认为这本质上是腐败的。但根据我自己的经验,总的来说,安全研究人员和渗透测试人员,正是因为他们非常清楚被抓住是多么容易,所以往往非常负责任。

而且,我会毫不犹豫地将您归入这一类。我认为您是一个非常道德和值得信赖的人。那么,您对此有何看法?安全忍者通常像您一样吗?还是像(像阿尔贝托·冈萨雷斯那样)累犯猖獗?

NG: 当然,我不能代表别人,只能代表我自己。每个人都有自己独特的动机、热情或“心魔”来驱动他们走上这条道路。我可以根据我的经验说,大多数以渗透测试为生的人通常不会冒着非法黑客攻击来危及他们的生计。对于像我这样的人来说,我将我的工作视为佛教正命概念的反面版本,该概念指出人们应该努力寻找一种不会牺牲其道德准则的职业。除了我,我找到了一份工作,我可以用类似犯罪的方式创造性地表达自己,但结果却最符合道德。

在测试结束时,我创建所有安全发现的详细报告,编写概念验证代码,帮助供应商理解和重现这些问题,并分配风险评级以帮助其他人了解其严重性——就像该领域的许多其他“无名英雄”一样,他们从不发布其漏洞利用代码,而是直接向供应商和代码编写者提供完整详细信息。我希望我认为我正在帮助提高不仅是我工作的公司的整体安全性,而且还间接地帮助所有其他使用相同系统、服务和产品的公司。

MB: 对于像我这样的人(以及我的读者,我希望!)来说,很容易看到您的方法和报告的价值。我认为“无名英雄”绝非夸大,因为我亲眼目睹了在不利的渗透测试之后,事情往往会得到多么明显的改善。但是,供应商和开发人员对您的工作有何反应?您如何让他们克服我确信往往是最初的防御反应?

NG: 是的,您是对的。典型的最初反应是将渗透测试请求视为仅仅是某个列表上的一个复选框项目,这可能无法证明任何形式的真正尽职调查。我的假设是,这是他们通常与信息安全人员和预算有限的其他公司打交道的经验。

一旦他们真正开始听到有关高危或严重安全漏洞的消息,他们几乎总是转向防御姿态。此时,我会向他们发表我(有点老套的)演讲,内容是他们实际上获得了数周的免费安全咨询。我向他们保证,我将完全分享所有安全发现的详细信息,并在适当的时候建议补救措施。

通常就在这个时候,他们意识到,尽管他们的经历可能很痛苦或令人感到羞辱,但他们实际上是在无偿获得一些东西,而且最好以这种方式接收信息,而不是让其他人发现同样的问题,而这些人可能不会在向公众发布信息之前向供应商发出任何类型的警告。

MB: 在我多年前的咨询工作中,我不时会被要求对实时生产系统进行端口扫描或安全扫描(尽管不是真正的渗透测试),我总是觉得这很伤脑筋。您是否曾经无意中(或者,仔细想想,有意地)破坏过重要的生产系统?

NG: 我曾经仅仅通过端口扫描就搞垮了一大批防火墙。这完全是无意的,因为我不知道它们已被配置为在检测到大量端口扫描时有效地“自行关闭”。(?!)这导致了一次大规模的生产中断(并且有几个人在咆哮着要我的血),但是配置太愚蠢了,所以通过帮助“纠正”问题,我设法安然脱身。

我从未有意破坏重要的生产系统。即使在我无法无天的岁月里,目标也从来不是“搞垮”一个系统。我认为这种行为提供了一个非常明显的迹象,表明发生了入侵。最终结果将是少了一个可以探索的系统,我认为这不太理想。

MB: 信息安全领域似乎仍然存在两个阵营之间的紧张关系:我们这些自称为黑客的人和那些不自称黑客的人。然而,Black Hat Briefings、DEFCON 和其他黑客大会的出席人数持续激增。您认为“黑客与西装革履者”的情况正在好转,还是我们仅仅在获得数量上的优势?

NG: 我会说,在一二十年前,当企业界不敢派人去参加“黑客大会”,更不用说为此付费时,紧张气氛浓厚得多。现在,像 Black Hat 和 DEFCON 这样的会议被认为是那些防御而非攻击企业资源的宝贵信息来源。

就我个人而言,我认为黑客大会上出现了一个相当新的因素,可能会很快打破微妙的“黑客/西装革履者”生态系统:美国军方——我不是在说他们的老家伙,我说的是新一代年轻的军人。因此,如果未来几年坐在您旁边参加 DEFCON 的那个人恰好是美国海军的情报分析员,请不要感到惊讶。

MB: 我已经有过这种类型的经验,并且同意您对军方的观察(我想,这往往是一个年轻的人口群体,所以这可能并不太令人惊讶)。DEFCON 的“发现联邦特工”比赛很久以前就不容易了!

我想用一些或多或少随机的问题来结束——请随意简洁或完整地回答,当然,为了保护您喜欢的任何人,可以省略姓名!

MB: 您见过的最愚蠢的设计决策是什么?

NG: 好的,这件事发生在十多年前了,所以我可以放心地讨论它。我曾经看到一家大型金融机构通过在其所有 UNIX 服务器中安装 FIDDI 接口来解决其备份问题。他们将所有机器双宿主连接到一个大型 FIDDI 环中,然后通过 rhost 启动所有备份。我攻破了 FIDDI 环中的一台备份服务器,最终在几分钟内控制了全球整个后台结算环境,因为 rhost 信任备份服务器。请记住,这些主机的主要接口通过防火墙隔离到受保护区域,并且根据您的工作职能,对每个区域的访问受到限制。

史诗级的失败。

MB: 您最近遇到的最酷的安全控制是什么?

NG: 人们可能已经听腻了,但 DNSSEC 实际上非常酷,尤其是当您考虑到与传统 DNS 相关的潜在影响时。(是的,我喝了 Dan Kaminsky 的 Kool-Aid!)

MB: 您最喜欢的(非秘密)忍者武器或格斗技巧是什么?

NG: 嗯...对于这个问题,我认为有必要了解一些忍者传说。首先,忘记您所知道的关于忍者是穿着黑色制服从头到脚的坏人的所有信息;相反,他们通常是高度熟练的武术家,像现代间谍一样在敌方领土秘密行动。最糟糕的命运是被抓住,所以与 20 世纪 80 年代所有那些糟糕的忍者电影相反,逃跑始终比战斗可取。

因此,在忍术的研究中,您会遇到像圣道遁甲(逃跑的鼠的形式)这样的东西,其中包括逃脱抓握的技巧,使用致盲粉末和使用小型投掷物(如手里剑)来劝退持续的攻击或追击。如今,小型战术手电筒可以代替刺激性的致盲粉末,并且由于大多数州都禁止使用手里剑,因此当意外地将一把零钱扔向潜在攻击者的脸部时,效果是一样的。“哦!这些都是我最喜欢的东西...!”

在一种特殊情况下,我寡不敌众,所以我决定需要稍微拉平一下赔率。我使用 Surefire E2E 手电筒使前进的“前排”眼花缭乱,但我的“用光战斗”却完全被误认为是警察战术。我接下来听到的是,“这家伙是警察!”然后每个人都散开了。仅仅这一点就值回了手电筒的价格。

因此,与其做一些愚蠢或危险的事情(例如武装您的亲人),不如给他们买一个廉价的高流明输出手电筒。如果他们的攻击者解除了他们的武装,那也不是任何可能真正被用来对付他们的东西。另外,您会惊讶于手电筒的用途有多广泛,即使您没有被一大群人袭击。

MB: 在现实空间中保持隐身还是在网络空间中保持隐身更难?

NG: 如果您了解这两种环境,那么一个环境的管理实际上并不比另一个环境更困难。这些不是一成不变的,但我通常会想到四个基本原则,这些原则几乎同样适用于物理和网络空间隐身考虑因素。

第一个原则是伪装。在物理空间中,这包括诸如穿着合适的衣服以融入该地区其他人群的概念,以及使用多用途、隐藏或临时工具/武器。在网络空间中,这将包括避免生成通常与侦察或攻击相关的网络流量。相反,隐身攻击者会选择生成完全“正常”的网络流量,这些流量可以用于收集有用的信息。

这方面的一个很好的现代例子是名为 FOCA 的工具,它使用搜索引擎来识别通常包含元数据的文档的位置。该工具一次下载几个文件,然后提取元数据并呈现提取的数据。所有生成的 Web 流量都是 100% 正常的。所有下载的文档都旨在被下载。除非一家公司积极清理元数据,否则在 100 个文件中找到一个实际包含足够有用的东西来用于进一步攻击(例如员工姓名、电子邮件地址或用户 ID)的文件并不罕见。对于较大的公司,发现数千个可供下载的元数据丰富的文件的情况并不少见。

第二个原则是分散注意力(或注意力控制)。在物理空间中,这里有很多变化,因为人类的思维非常有限。我们可能声称可以同时处理多项任务,但现实是我们一次只能考虑一件事。您只需用一些有趣的东西填满大脑,它就会错过其他一切。在网上搜索 Daniel J. Simons 的题为“选择性注意测试”的视频,可以找到这方面的一个很好的例子。在网络空间中,可以通过故意生成已知的恶意流量来制造明显的“噪音”来隐藏自己,从而达到相同的效果。像 snot 和 stick 这样的工具旨在做到这一点。

第三个原则是疲惫(或挫败感)。在物理空间中,一个现代的例子是反复触发建筑物的防盗警报。第一次响起时,通常会引起各种关注。警察会先出现,然后最终,大楼管理员会到达现场。在同一晚上大约第五次或第六次警报响起后,没有明显的强行闯入迹象,该警报将在早上之前被关闭,并且将向防盗警报供应商发出维修电话。

网络空间中也会发生完全相同的事情,入侵检测系统不断生成似乎是误报的警报。一个有安全意识的人可以忍受午夜时分一两次中断,但没有人能容忍无端的连续中断。发现这个“突破点”限制,您可以帮助“调整”远程入侵检测系统,使其对您未来的隐身努力更加“友好”。

我将第四个原则称为风水(wind and water),但大多数人将其称为风水。这是有意识地选择最有利的位置、地形、天气或时机。在物理空间中,这可能很简单,例如选择在黎明或黄昏时攻击,太阳在您身后的天空中较低。您的敌人将直接盯着太阳,让您可以躲在明亮的光线下。另一个例子是选择一个有雾的夜晚,躲在黑暗和雾气中。在网络空间中,这可能包括在您的目标庆祝的假期期间执行您的活动,选择监控人员可能较少的深夜,或者如果您试图“融入”正常活动,则选择高峰流量时段。

这些原则并非相互排斥;事实上,在制定您的攻击计划时,最好将它们融合在一起。

MB: 什么时候暴力破解的乐趣胜过优雅解决方案的正义性?

NG: 哇,这绝对适用于渗透测试和忍术:“当它是解决问题的最快和最直接的解决方案时。”

MB: 谁更精英,海盗还是忍者,为什么?

NG: 哇,这永恒的辩论。这是我的看法。

如果您研究我学习的九种武术中每一种的起源,您会发现其中一种最初被用作海军军事艺术,因此,身体姿势和动作被设计为在不断摇晃和湿滑的船只上使用。即使在今天,这所学校的技术有时也使用船桨作为武器进行练习。这意味着从历史上看,一些忍者是海盗;但是,我非常怀疑相反的情况是否属实。我相信这不会让您感到惊讶,但我投票给忍者!

MB: 在这个轻松愉快的氛围中,我将带着一丝遗憾但感激地结束这次谈话,我希望亲爱的读者们也认为这是一次有趣且信息丰富的对话。非常感谢您的参与,忍者 G!

Mick Bauer (darth.elmo@wiremonkeys.org) 是美国最大的银行之一的网络安全架构师。他是 O'Reilly 图书 Linux 服务器安全第二版(以前称为 使用 Linux 构建安全服务器)的作者,偶尔在信息安全会议上发表演讲,并且是“网络工程波尔卡”的作曲家。

加载 Disqus 评论