返回

文章详情

第三类接触:愉快的遭遇

Hacker News2026年6月14日 02:17

18分钟阅读 几周前,一次普通的安全评估变成了一场事件响应的旋风。这对我来说绝对是第一次,我很高兴被允许在这篇博客中概述这一事件。这个调查开始得很可怕,但却变得相当有趣,我希望阅读它也能给你带来一些有用的信息。我会很快回来更新我的硬件研究。 事件是如何开始的 这到底是什么鬼? NFS服务器 第二个恶意二进制文件 进一步取证 发现的时刻 GOlang小玩意儿 内核是如何被修补的?为什么不修补golang应用? 我们目前掌握了什么 问答 事件是如何开始的 每年我被雇用两次为一个特定的客户进行安全评估。我们已经合作了多年,我对他们的网络以及需要注意的事项有相当好的了解。这次我的联系人Klaus让我关注隐私问题和GDPR合规性。然而,他让我先查看他们的反向网关/负载均衡器集群:我对这些网关有一些了解,但决定先创建自己的测试环境。 这些网关运行一个定制的Linux堆栈:基本上是一个单一的编译内核(没有任何模块)和一个静态的GOlang应用程序。100多台机器没有内部存储,而是从外部USB媒体启动,该媒体上有内核和应用程序。GOlang应用程序有两种角色:init替换和反向网关软件。在初始化期间,它挂载/proc、/sys、devfs等等,然后挂载应用中硬编码的NFS共享。NFS共享包含应用的配置、TLS证书、黑名单数据等。它开始在443端口监听,过滤传入的通信,并将有效请求传递到生产服务。我建立了一个自包含的测试环境,花了一天时间进行黑箱测试。由于没有发现什么太多的东西,我建议我们转向检查生产网络,但Klaus坚持让我继续查看网关。特别是他想知道我是否可以开发一种方法,测试是否攻击者已经获得了网关的访问权限,并试图从解密的HTTP流中访问个人身份信息(PII)。我无法通过SSH进入主机(没有SSH),所以我想我们必须向GO应用中添加某种检测工具。Klaus仍然坚持让我先查看GW前后的流量,并给我提供了双侧镜像端口的访问权限,这样我可以捕获流量到他为我准备的独立笔记本上,我可以通过LTE调制解调器访问,但不被允许上传数据。 我现在面临的问题是如何找出哪些HTTPS流量对应于嵌入的PII请求。一个可能的途径是试图将加密流量与解密的HTTP流量进行关联。单凭时间来进行这项工作就证明是不可能的。然而,在去除解码流量后,我注意到GW应用添加了一个'X-Orig-Connection',并带有TLS连接的四元组!太好了!我写了一个小的python程序来扫描80端口流量捕获,并将每个四元组TLS连接映射到布尔值——对于带有PII的连接为True,对于其他所有连接为False: 10.4.254.254,443,[已编辑],43404,376106847.319,False 10.4.254.254,443,[已编辑],52064,376106856.146,False 10.4.254.254,443,[已编辑],40946,376106856.295,False 10.4.254.254,443,[已编辑],48366,376106856.593,False 10.4.254.254,443,[已编辑],48362,376106856.623,True 10.4.254.254,443,[已编辑],45872,376106856.645,False 10.4.254.254,443,[已编辑],40124,376106856.675,False ……有了这个,我现在可以从PCAP中提取数据并进行一些关联。在经历了几个漫长的小时后,让scapy实际解析时间戳一致以进行比较,我得到了一个连接时间信息列表与PII的关联。与Excel进一步玩耍后,我得到了时间与数据包数量的直方图图表。对HTTP流量来看,一切看起来都是正常的,虽然我原本期望得到更多的正态分布,而我得到的却是那种幂律类型的东西。443端口最初看起来也是一样,我得到了我预期的正态分布。但是当过滤PII时,有些严重的问题。分布被扭曲,向更长的时间框架移动。而在80端口的末端没有类似的情况。我唯一的解释是,我的测试设置(蓝色条)与真实的Live设置(橙色条)有问题。我在我们的Slack频道上写道'我觉得我的设置很糟糕,有人能给我重新发送配置文件吗?',但那时已经很晚了,没有人回应。由于我有轻微的强迫症,我无法放下。GWs的另一个安全?特性使我得以解救:它们每天重启,以每台主机约10分钟的间隔分开。这意味着大约每十分钟,其中一台将重启,从而通过NFS重新加载配置文件。由于我可以通过端口镜像监控NFS流量……

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡