忍者访谈,第一部分

作者:Mick Bauer

我们现在生活在一个奇怪的世界,不是吗?我们通过机器进行交流的频率,以及与不同的人交流的频率,比我们面对面交流还要频繁。我们中的一些人从事的职业在我们上大学时还不存在。我们中的一些人甚至从事着一些我们过去偷偷摸摸,甚至可能非法做的事情的职业。

想想专业的渗透测试人员,他们为了测试和提高客户系统的安全性而侵入客户的系统和应用程序。对我来说,这是信息安全领域最杰出的职业之一。

有些人对这项工作的价值持怀疑态度。这能证明什么呢?如果渗透测试人员成功了,他们真的比通过仔细分析系统和应用程序配置,甚至可能通过分析一些源代码所学到的东西更多,或者至少一样多吗?如果渗透测试人员失败了,他们只是那天运气不好,还是系统实际上是安全的?

虽然我确信存在冗余或无益的渗透测试,但我可以向您保证,在我作为网络安全架构师的角色中,在许多情况下,严格的专业渗透测试是必不可少的。源代码并不总是可用,配置并不总是能完全说明系统行为,有些东西太新了,以至于没有关于它们有多安全,或者如何才能使其安全的“传统智慧”。良好的渗透测试可以帮助我确定哪些供应商的声明是站得住脚的,以及哪些系统管理员实践得到了遵守。

因此,我与一些杰出的渗透测试人员密切合作,并自豪地将他们视为朋友。幸运的是,亲爱的读者,本月,他们中的一位,为了我们这里的目的,我将简单地称他为 Ninja G(原因稍后会揭晓),欣然同意接受 Linux Journal 的采访,在采访中,我们讨论了他独特的职业生涯,他在计算机安全方面发现的有趣之处,以及他认为当前 Linux/UNIX 安全状态的显著趋势。

MB: 非常感谢您抽出时间聊天。作为介绍,您能解释一下您的正式职责是什么以及您如何度过典型的一天吗?

NG: 我在一家财富 500 强(或更低)公司的金融行业工作。我们小组的职责包括渗透测试、企业范围的网络安全扫描和实时安全事件响应。我的日子每周变化很大,这是这类工作的美妙之处。一周我测试一个小型嵌入式 Linux 设备,下周可能是一个远程服务器或网站、企业 Wi-Fi 或 VoIP 网络。

我相信这把我归类为通才,所以我的大部分时间都花在熟悉目标平台上可能并不令人惊讶。这可能包括确保逻辑或物理访问、阅读所有供应商提供的文档、研究所有当前已知和历史漏洞,然后实际使用平台或设备(按预期)以全面了解事物通常如何工作。只有这样,我才能开始问自己所有那些关于设计师如何决定处理(在正常情况下)从未打算发生的情况的邪恶小问题。

MB: 您是如何找到这份工作的?我假设您在大学里没有主修渗透测试!

NG: 大学?呵呵,没有。我在 1980 年代和 1990 年代初是一名非法的计算机/电话黑客。我没有犯罪记录,但我不能说我从未被抓到过;相反,有一次我成为多机构调查的焦点。我从未被起诉,但我的“擦肩而过”正式结束了我作为业余爱好非法入侵系统的愿望。

正是在那时,我开始关注信息安全领域的工作。我希望找到一个出口,在那里我可以继续我过去爱好的热情,但又没有被起诉的风险。问题是要找到一家合适的公司,这家公司不仅设有信息安全部门,而且还认为在打击拟议的解决方案以寻找潜在的安全问题方面具有价值。我知道大型金融机构对此感兴趣,但不幸的是,我住在小镇,这正是这类工作的错误区域。

因此,我“追随我的幸福”,最终来到一个大城市,为一家产品在全球销售的金融公司工作。我不会说我在这个行业的第一份工作 完全 是我想要的,但通常你的工作取决于你如何塑造它,所以我慢慢开始展示我在神秘的“黑客”艺术方面的技能水平。消息传开,谣言四起,我感兴趣的工作开始慢慢地向我靠拢。快进 16 年,我正在一家更大的金融公司工作,位于一个更大的城市。现在我的大部分时间都花在渗透测试上,所以我完全没有抱怨。

MB: 您在您的工作和职业生涯中最感兴趣的是什么?哪些类型的问题最有趣,为什么?

NG: 每天学习新事物。困难的问题总是最有回报的。

在这一行工作中,你的价值只取决于你最近一次的重大发现,而且人们往往很快就会忘记过去(现在已缓解)的漏洞。几天没有偶然发现任何重要的新漏洞的情况并不少见,这 非常 令人沮丧。在这些时候坚持不懈通常会深深地侵蚀我的个人时间,但几乎总是会得到回报。

只需发现一个新的零日(漏洞),我就又回到了世界之巅——大约一天左右。然后,这个过程又从其他事情重新开始。

作为一名通才,我对测试哪种类型的设备、软件或系统真的没有任何偏好。每种都提供了自己的教训和发现的潜力。

MB: WLAN 作为目标,在犯罪社区中似乎特别受欢迎。WLAN 在您的工作中是否以某种方式脱颖而出,或者它只是相同类型的问题和漏洞,只是通过无线电波传播?

NG: 不,我会说无线网络呈现了其独特的安全影响,即使是训练有素的企业 WLAN 管理员有时也不理解像恶意服务器证书重用这样简单的概念。如果您不熟悉这种“内部”攻击风格,可以用一句话概括。授权的 Web 服务器管理员创建一个恶意的(邪恶双胞胎)无线接入点,该接入点模仿企业 WLAN(并且他们从同一名称域的 Web 服务器加载有效的证书);但是,他们将其配置为愉快地接受(并记录)所有提供的身份验证凭据,无论它们是什么。

对于那些想尝试这种攻击的人来说,Josh Wright 的 WPE(无线 Pwnage 版本)对 FreeRadius 的补丁是 RADIUS 服务器冒充的一个很好的快捷方式。当然,当我第一次尝试这个时,它并不存在,所以我手动修补了 HostAPd 来做同样的事情。在更复杂的攻击中,我将修改后的 HostAPd “弗兰肯斯坦化”到 Xsupplicant,并成功地对带有硬件一次性密码令牌的 WPA2/AES 执行了完全的中间人攻击。

还有一些较旧的攻击代码在流传,但现在已经不太好用了,因为它是在 QoS 成为接入点的常见功能之前编写的。我为自己更新了很多这些代码,并且我自己编写了一些无线攻击工具。我最喜欢的编写无线漏洞利用类型可能最好归类为“混合外科手术式攻击”,其中真正的操作发生在第 7 层,事后取证几乎是不可能的,因为攻击者没有连接到任何 WLAN,也从未暴露自己的 MAC 地址。

MB: 我注意到您团队中的很多人都在学习忍术,这是现实生活(而非比喻意义上的)忍者所练习的武术。这是一种巧合吗?忍者与黑客之间有什么联系?

NG: 哦,所以你注意到了!可能只是巧合。公平地说,我会说我研究的是一个包含九种不同武道体术古流(老式格斗术)的日本武术体系,其中只有三种被归类为忍术。

联系?嗯,我不能代表任何其他武术家发言,因为每个人都有自己追求这种爱好的理由,但我确实有一些理论可以解释为什么对计算机黑客或渗透测试感兴趣的人可能会被特定的武术所吸引,例如忍术。

首先,黑客和忍者都受益于围绕其神秘感的神话。通常,我们对这些个人的标签伴随着许多误解,这些误解通常不会对被贴标签的人造成真正的伤害,因为他们通常被赋予了近乎超人的能力和技能。(赢!除非这些标签在法庭上使用,否则:失败!)

其次,正如我的老师经常说的那样,“如果我们想要防御坏人,就必须学习坏人的技术和战术。” 这对于任何擅长破坏或保护系统的人来说也是如此。了解对方在任何时候可能做什么和能够做什么可能会产生巨大的差异。

在武术训练中,我们学习有效地做一些相当糟糕的事情,然后我们探索攻击者和防御者之间的空间区域,如果被占据,可能会导致防御者的最佳或次优结果。我们以这种方式“玩耍”,直到大脑开始形成几乎是三维模型的空间,该空间会导致哪种结果。我的老师经常说,“在 ‘安全形状’ 的空间中移动!”,这对于那些不熟悉这个概念的人来说是令人困惑的。很多武道体术训练都是像这样违反直觉的。这引出了我的最后一点。

我曾经读到,玩麻将或其他类似益智游戏的人可以让他们的头脑保持敏锐,直到晚年——前提是谜题 很难。我非常肯定,那些通过黑客行为锻炼大脑的人可能会自然而然地被其他在精神层面上同样刺激和具有挑战性的活动所吸引。

当然,黑客问题与武道体术问题 截然不同,因为它们使用大脑的完全不同的部分。在黑客攻击时,您可以停下来思考一会儿。偶尔停下来挠挠头、思考和策划可以大大有助于您朝着最终目标前进。现在想象一下,您的问题不是入侵系统,而是躲过刀袭。根本没有时间停下来思考;您只需要移动并相信您对交互空间、平衡把握、武器使用、打击等等的心理地图是健全的。

训练通常是混乱的,老师经常改变条件(例如武器类型或长度、距离、攻击者数量等等)。在更高水平的训练中,事物开始移动和变化得如此之快,以至于实际上永远没有时间停下来在精神上理解您的经验。因此,您不是对每次发生的事情都有认知上的理解,而只是对正在发生的事情有一般的“感觉”。

MB: 我知道您在日常工作中至少在两种不同的情况下使用 Linux:作为发起攻击的平台,以及作为目标,因为我们现在要求您测试的很多东西似乎都在 Linux 上运行!您在 Linux 安全方面看到了哪些趋势,好的和坏的?

NG: 在嵌入式 Linux 系统上,我经常发现几十年前困扰大型 UNIX 系统的那些问题,只是现在它们不能归咎于无知或懒惰的系统管理员。相反,通常是嵌入式 Linux 开发人员不理解文件所有权和权限位、临时文件名预测、硬链接和软链接的正确使用、命令链、竞争条件以及为什么更新 BusyBox 的史前版本可能是个好主意。

我看到的一个趋势是,一些嵌入式开发人员已经竭尽全力尝试增强嵌入式 Linux 环境的安全性(成功程度各不相同)。他们的努力范围从 root 访问的辅助密码质询-响应方案,到完全阉割 root,到仅执行签名二进制文件,再到完全删除所有登录服务和 shell。对于非嵌入式 Linux 设备也是如此,在这些设备中,用户通常不会通过 shell 访问文件系统。

当然,所有较新的 Linux 平台都从最近在内存保护方面的一些发展中受益匪浅。还有更多工作要做,但我肯定会将可执行空间保护等事物归类为一种良好的趋势。

MB: 您说“完全阉割 root”是指 SELinux 和其他基于角色的安全方法吗?Linux 安全模型的“root 是万能的”方面一直是它的软肋,不是吗?

NG: SELinux 有时会使用(通常在全尺寸设备中);但是,您可能会对一些供应商为尝试控制嵌入式 Linux 解决方案中万能的 “root” 而实施的一次性、自制解决方案感到惊讶。

一些供应商只是决定 root 作为用户帐户没有真正的用途,因此他们将其扼杀在摇篮中(通过为其提供无效的 shell 和锁定的密码)。系统仍然可以完美运行,但是每当需要升级系统文件时,通常需要完全重新刷新设备的固件。

其他供应商选择保留 root 帐户,然后构建自己的机制,其中升级由 root 处理,但实际上其他所有内容都以非特权用户身份运行。从理论上讲,这是一种好方法,但同样,即使对硬链接和符号链接的工作方式的简单误解也可能对升级例程造成灾难,这些例程仅期望供应商提供的(正确格式的)升级文件。如果您可以提前预测升级过程中使用的临时文件将存在的位置(例如,/tmp),并且您首先使用链接到达那里,那么很多时候您最终可能会以 root 身份破坏链接的目标。如果您幸运的话,该脚本也可能具有更宽松的 umask 设置,这将最终修改并可能将文件权限降低到低于以前的水平。

未完待续

亲爱的读者,在采访的这一点上,我有一个好消息和一个坏消息。坏消息是,本月专栏的空间不够了,我将不得不等到下次才能与您分享这次精彩而有趣的对话的其余部分。

好消息是,在第二部分中,您将了解 Ninja G 对防火墙作用的看法、黑客技能的腐败影响、负责任披露的重要性,以及他对谁更精英——海盗还是忍者——这个永恒问题的可预测但令人惊讶的答案。我希望您期待它!

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

加载 Disqus 评论