BlackHat US-19 笔记
0x00 读后感
看完 BlackHat 2019 的这些议题,我个人最强烈的感受就是企业承担的信息安全责任应该是有前提和有边界的,不应该是无前提和无边界的。如果拿消防做类比,在现行的治理框架下如果一个企业因为不可抗力或者被纵火,如果企业本身无过失(合规)的情况下一般只需要承担民事责任而没有刑事责任。美国的治理体系中就有这样的例子 —— FireEye 就获得了 SAFETY Act Certification 认证,FireEye 的用户可以在某种情况下免于被起诉。
在《Operational Templates for State-Level Attack and Collective Defense of Countries》里有几张图也表达了这个意思 —— 商业公司缺乏足够的资源与国家层面的威胁对抗。攻击方可以在各个层面寻找脆弱性来突破。
就像《GDPArrrrr: Using Privacy Laws to Steal Identities》所实践的 —— 连 GPDR 这样的隐私法案都能被利用来窃取隐私。而防守方以 Google Project Zero 这样的实力,也只能聚焦于二进制方向,漏洞挖掘也是以手工挖掘漏洞为主、辅助以半自动化的 Fuzzing 。
0x01 BlackHat US19 议题笔记
按照自己的理解简单记录和分类。这次腾讯真的爆发啊,投的议题太多了。
漏洞挖掘和利用
主要是描述了一个因为 IDN 支持 unicode 以后带来的安全风险。很多大厂、很多软件、很多语言都受影响。
新发现的 PLC 操作系统的漏洞(和 S7 协议相关)。加上 ICS 安全的背景、全貌,以及这个漏洞的技术分析。这个议题在 ICS 方向讲得比较完整。
科恩实验室挖 BMW 车载系统漏洞的过程,非常好的 IoT 产品攻击面分析的范例。
不论是中国还是美国,高安全级别的系统一般都引入了 HSM 。这篇介绍了直接针对 HSM 的攻击,其实越小众的产品,安全性越差。在这个演示中的测试的 HSM 和前面那篇车载系统一样,选用的系统版本比较老,新一点的 Linux 自身内核保护机制都没有。只要存在漏洞,基本就会被利用。HSM 存在漏洞会直接破坏信任根,甚至在系统中提供一个非常隐蔽的持久据点。
Docker 不是虚拟机,提供的隔离能力有限,这里介绍了三大类的绕过方式,从原理到代码。
AC 匹配的漏洞,并且介绍了 ACsploit 这个工具箱。这类漏洞比较有名的就是 CloudFlare 在 2019 年 7 月份那次因为正则表达式导致全球性故障。
里面提出了一个观点比较有意思 —— AC 匹配的漏洞并不是实现层面的 BUG ,而是设计层面的问题。个人并不是很赞同这个观点,bug 并不局限于实现层面。只要是出现了不符合预期的结果,某种意义上都是 bug 。而 AC 匹配相关的这类漏洞,应该是设计者没有考虑各种最坏的情况可能出现的问题,从而导致了漏洞产生。和没有考虑用户输入可能导致命令执行类似。
盘古带来的 FaceTime 远程代码执行漏洞分析。介绍了 iOS/macOS 中 FaceTime 的流程、攻击面分析、漏洞发现和利用。FaceTime 的通信过程有完整的可信链,苹果公司的安全架构设计绝对值得看一下。
主要是讲了两个身份认证绕过的漏洞案例。这两个漏洞影响 Outlook/Live/Hotmail 的所有用户,攻击者可以获取被攻击者的所有邮件。主要的突破口就是在新版本上线引入的未签名 JWT Token 。
主要是讲 F5 的内置规则引擎 iRule 规则的利用。F5 应用范围很广(包括 DoD 也在大量使用)。但这个漏洞并不是很好评价,不知道 iRule 缺省是否存在并被启用。
SafeBreach 搞了一个可以在最新版 Windows 10 x64 上进行进程注入的 C/C++ 库: Pinjectra
macOS 的内核/驱动 Fuzz 研究。发现了不少显卡驱动的漏洞。
简单介绍了三种不同类型的可信执行的环境,并详细介绍了如何攻破三星的 ARMv7 的 TrustZone 。
在博通、Marvell 等 WiFi 被安全社区发现漏洞之后,腾讯 Blade Team 决定研究下高通 WiFi 芯片。结果搞定了从 OTA -> WALN -> Modem -> Kernel 的全链条,可以从无线网控制设备。😱
SQLite 和 cURL 的漏洞发现和利用。腾讯 Blade Team 出品。
各种花式绕活体检测的方法。来自于腾讯玄武实验室。
我是如何干翻所谓最安全浏览器 Chrome 的。—— 来自腾讯科恩安全实验室。
远程攻击智能手机配备的硬件解码器。来自腾讯 Blade 实验室。已经搞到了 Venus 芯片。如果是从浏览器和即时通讯工具发起攻击,目前整个攻击链还差两环:还没有搞定从应用程序搞到 StageFright 引擎,也还没有搞定从 Venus 芯片进入到 Kernel 。
虽然说是搞电动机,实际上是搞的无人机。比较全面,不过个人觉得远程搞的讲的太少了。
利用邮件来攻击 Outlook 和 Exchange 。
HTTP Desync 攻击,一种攻击方式,列举是不少的利用。
Cisco 的 APIC 漏洞。作者说主要是 APIC 比较贵,以前的研究比较少,很随便的就搞了个远程特权执行的漏洞出来。片子里面讲的 LLDP 协议的几个例子还是非常有网络设备的特色的。和 HSM 的那个片子类似 —— 越少见产品安全性越难得到保证。居然还有这种漏洞 ……
移动环境下协议栈的一些特性带来的安全问题
What's App 的加密存在缺陷。不知道 What's App 是不是正好需要看一下之前讲的那个即时通信加密算法?
腾讯玄武实验室出品。我是怎么发现一堆 Windows 10 平台上 ALPC 漏洞的。
盘古带来的如何突破软硬件层层防护把 iPhone XS Max 搞定的。
在服务端检测 HTTPS 中间人,提供了一个 golang 库可以直接用。感觉使用场景有限。
如何攻击 WPA3 的密码学相关介绍。看样子 WPA3 不足够安全,可能会要搞 3.1 。
Fortinet、Pulse Secure、Palo Alto 等多个厂商的 SSL VPN 无需身份认证的远程利用漏洞。用自己发现的漏洞搞定了 Twitter 双因素认证的 SSL VPN 。估计参加国内群体性红蓝对抗大赛的朋友们对这个方法并不陌生。
关于 Azure AD 和 Office 365 攻防的介绍。值得看一下。
通过泄漏的文档、二进制代码分析得出波音 787 有可能被攻击者入侵。
介绍微软 AD 的攻防,在原有 AD 攻防的基础上重点讲了好三类新的攻击方式和检测、防护建议。值得阅读。
主要是介绍 SSO 特别是微软系列产品的 SSO 相关的漏洞。
iOS 的远程利用攻击面分析并结合了一些漏洞的实际例子。估计是准备发布一个 iOS 的研究工具来预热的。
百度安全实验室出品。如何搞定广泛使用的 4G 模块。可以看到一堆的硬编码的密码,考虑到 4g 模块的出货量,个人觉得还是非常好利用的。感受下 ……
发现了 11 个 VxWorks TCP/IP 协议栈 IPnet 的高危漏洞,其中 6 个可以导致远程执行。这个协议栈由 WindRiver 维护,在多个实时操作系统中使用。
5G 网络的漏洞挖掘,有点软。
威胁跟踪与防护
标题就看出来了 …… 意大利某“违法”监听调查分析
主要讲了一下在 DNS 层面可以做哪些事情来避免自己邮件域不会被用于钓鱼。
主要是介绍了一下电网安全的 IEC 62351-7 标准、以及电网的安全环境和挑战、以及几个场景的 DEMO
币圈的 coinbase 讲了一下账号窃取的一些事情。换卡、账号找回的滥用、钓鱼、撞库、社会工程、恶意代码、以及利用 SEO 冒充官方技术支持等一些攻击技巧。…… 等等,这些怎么在国内好像都看过呢?!😓
在 GPDR 法案颁布以后,演讲者利用隐私保护法案来盗取身份信息,按照 Kill-Chain 的思路把整个过程讲了一遍。整个过程的核心是 GPDR 中要求:服务商必须对外公布联系方式,通过这个联系方式,用户可以申请自己所有的个人信息,而服务商需要在一个自然月以内向用户提供可机读的个人信息。个人觉得国内这么搞一下,然后出国去讲,很可能被请喝茶。
错误信息是一个社会层面的安全问题,会带来各种物理、经济方面的影响。还提出了一个 AMITT 的框架。算是社会学范安全的领域吧。
介绍了 deepfake 的历史,认为现在 deepfake 类产生的恶意视频人类靠肉眼已经很难辨认。因此开发了一套新的名为 deepstar 检测方法(还没有开源)。
从开源情报源和 VirusTotal 情报源获取非可执行文件的威胁情报并进行分析,发现了不少的真实世界中传播的样本。并发布了 labs.inquest.net 这个集成工具。
通过 RDP 服务搞客户端。和 BlueKeep:CVE-2019-0708 不同的一个攻击向量。这里面提到了 Windows Telemetry 的数据,这些数据看起来是会上报给微软的,需要谨慎一些。
利用 YARA + Zeek 的组合来做流量中的文件检查。提供了一些开源工具。
DHS:CISA 发布的一个利用微软 .appref-ms 做钓鱼和持久化的方法。核心是 .appref-ms 不但可以远程安装程序,还会确保被安装的程序是最新的。
对 C2 的全貌做了个介绍,讲了很多的 C2 套路,顺便把很多资源系统的梳理了一遍,值得看一下。
结构化的 Fuzzing 技术介绍(结合 ClusterFuzz )。
介绍一个自动化分析文件镜像的工具 FwAnalyzer 。主要是做一些镜像基线检查(比如:不包含调试工具、开启 SELinux、……),而不是做漏洞检查。
人的行为某种意义上来说也是一种可用于检测的“侧信道”。作者举了不少例子。
训练老鼠来检测 Deep Fakes ,其实主要是说 deepfake 这类可以怎么检测。
阿里安全出品。将如何跨设备跟踪用户。主要思路就是:1. 通过 Device ID 唯一的标记和跟踪每台设别;2. 把属于同一个 User ID 的 Device ID 都找出来。
介绍和推广 Atomic Red Team、EQL 这两个围绕 ATT&CK 的工具。
绕过 Linux EDR 的方法。
少见的抗 DDoS 的议题。感觉主要是推广 SODA 这个项目。
机器学习的威胁情报抽取,比如:实体抽取之类的。
造了一个指尖大小利用 DMA 绕过系统访问控制直接获取敏感信息的硬件工具。可以像 rekall 和 Volatility 那样调查取证。
安全体系和实践
国内国外都一样,安全管理员觉得最坑的场景之一就是某一天又爆发一个不得不补的远程执行漏洞。现在的软件生态包依赖关系非常复杂,软件供应链安全也非常复杂。演讲者认为需要遵循这几个原则:可扩展、自动化、高研发效率、关注兼容性。对漏洞的维度进行排序,分清主次才能进行有效的修复。一方面要从多个数据源(开源或商业化)收集漏洞、威胁相关的信息;另一方面,也需要通过自动化构建过程对自己的 IT 环境有足够的了解。
主要是介绍 WebAuthn 和 FIDO2 的好处。我对这种既改善用户体验、又增强安全性的方案是非常期望看到的。现在各方力量都在联合推动无密码认证的实现,DISA 下一步的现代化计划中也增加了改善用户认证,实现无密码认证的目标。目前,国民电子也在国内推 FIDO2 的相关方案。
除此之外,这里面有不少统计数据是值得看的:
- 91% 的信息安全事件和钓鱼有关
- 80% 的针对商业机构的攻击行动中使用了钓鱼
- 2016 年之后,钓鱼在攻击行动中使用超过了 exploit
- 76% 的账号安全漏洞与弱密码或密码被窃取有关
- 一个设计良好的钓鱼页面有 43% 的成功率
- 使用生物特征进行重新验证,98% 的用户可以在 38 秒内完成,而使用用户名密码进行重新验证,98% 的用户要花 150 秒
snapchat 在公有云基础上应用安全的实践。snapchat 大量使用了AWS/GCP,在公有云上有一些限制,例如:没有办法获得一个仅为内部使用的网络基础设施、AWS/GCP 提供的控制点选项并不多、像 AppEngine 这样的服务必须直接暴露在互联网上、缺乏集中的 CI/CD 管道、使用大量技术带来技术栈复杂度高。
snapchat 在软件生命周期中把所有的服务分成 UnManaged 和 Managed 两个阶段。在 UnManaged 阶段,主要是防火墙和无状态的认证(AuthN)和授权(AuthZ)代理,而在 Managed 阶段,主要是通过服务网格以及其 API Gateway 来进行管理。对于比较老的应用,则应该及时关注其状态和安全告警。
苹果设备中有一块 T2 的芯片,这块芯片夹在 CPU 和硬件设备之间,增加了额外的安全保障和控制。这篇主要是对其软硬件工作机制进行了分析。
微软内部安全团队认为要从硬件、软件、服务、人这四个维度考虑供应链安全,每个部分都举了一个例子。
硬核的 x86 平台硬件/固件安全。这个架构和《Inside The Apple T2》这篇文章中苹果的架构一起对比来看,非常有意思。
介绍 Intel 第 8 代和第 9 代处理器所使用的 CSME 12 固件和硬件。感觉 Intel 的做法是在 x86/x64 大楼的地下室又修了一个大楼。
个人非常喜欢的一篇。简单来说,和我观点一致 —— 现在漏洞管理的问题是发现的漏洞太多了,管理层面需要分清楚轻重缓急,区分对待。最好需要确保最后能修复掉。这个和当年恶意代码太多,防病毒厂商不睡觉来分析、加特征码都搞不过来,最后只能换个思路来搞定一样。
他们的工作更进一步,提出了一个新的 EPSS 模型(个人感觉还需要继续改进)。可惜作者提供的评分系统还不能正常访问: http://kennaresearch.com/tools/epss-calculator
介绍 Android 平台下的逆向分析实例,主要是保持曝光。从里面可以看到 Google 认为有些 OEM/ODM 会植入恶意代码。
主要讲的是如何提升开发人员安全意识和能力,也提到了研发、安全之间更好的关系应该是合作而不是摩擦。
介绍 Honeywell 的系统风险评估方法。
用讲故事的方式说明了 ATT&CK 可以怎么用,以及为什么不能生搬硬套。除此之外还介绍了不少关于 ATT&CK 的相关资源(值得再看一次)。其实这方面国内外遇到的挑战和国内的安全团队非常类似。
安全意识教育。
主要是讲理念性质的东西,比如:如何应该如何驾驭与 DevOps 的关系,比如认为混乱工程和弹性才是安全的未来。
DevSecOps 应该争取 “Secure by Default”,而默认安全由三个层次来决定:a) 通过工具实现内嵌安全;b)创建安全即代码的文化;c)鼓励跨界。本质上是在工具链和流程中融入安全因素,让自动化成为组织内广泛的文化认同。这篇值得再看下。
密码学和其应用
可以理解为密码学相关的代码审计。举例都是区块链生态里的实际案例。
又是一片硬核密码学的文章。简单来说就是 SSH、IPSec、DNSSEC 的一些实现会受 Bleichenbacher ‘06 发布的 RSA 伪造签名漏洞的攻击。
一个用于即时通讯场景的加密方案,工作于 TLS 之上,特别适用于有群聊的场景。已经在工业界、学术界内讨论过。
杂项
面对国家攻击的时候应该采用集体防御的方法,根据不同级别的安全威胁应该有不同级别的安全事件响应机制。各个层面都会有自己各自的脆弱性,在国家级的对抗中,攻击者不会放过任何一个可以利用的脆弱性。目前 Known/Knowing 的问题解决方法基本都有了,需要自动化来提高效率、改善体验、释放“资源”(这里的“资源“是指广义的资源,甚至包括产业界的关注度),并获得更多的资源投入到需要 “Behavioral Analytics + Hunting” 的范围内。
除此之外,我觉得可能还给网络安全执法提供了合法性相关的思路:
* 为了减少火灾,会进行相关的防火教育和检查,并有严格的合规要求
* 如果发现你家着火,为了确保公众安全,公众的消防力量有主动进行灭火的义务和权力
* 发生火灾给第三方造成损失的,会有民事责任、刑事责任
Google 这篇主要是介绍了 Project Zero 的一些数据来佐证观点。干货不多感觉主要是保持曝光。
如何让信息安全不再是男人统治的领域。加油!
最最最水
讲了一堆对持续威胁进行度量的意义、为什么要有度量,提出了一个三万英尺的框架。以及一堆未来的工作。
主要是说女性在 IT 行业招聘和保留的问题。
主要是苹果公司在 Apple Pay 上一个漏洞响应措施比较让人不满意。这个作者喷了一通,并且提出了一个有意思的观点:有缺陷的设计模式导致了有缺陷的实现,有缺陷的实现导致了有缺陷的部署。
名字很大,slides 没啥,不知道现场如何。主要是展望用导弹干掉攻击源的必要性、可能性之类的。非战时我感觉可能性不大。
内斗八卦也能上 blackhat
貌似是利用社交网站钓鱼。但真心没什么实际内容。
卖保险的来啦, CISO 们。不过从议题名字就可以看出来,普及性的内容。
就是说以前的安全产品都比较不好,而改进型的方案给用户增加了不少使用上、体验上的负担。与其花很多精力去检测用户行为是不是正常,还不如告诉用户什么行为是好的。说实话,这 PPT 为了搞艺术,意思都看不清楚了 ……
用 ICS 的传感器的噪音来给传感器生成指纹。
卖保险的来了 ……
军火商来介绍经验了。想做军火生意的可以看。
如何访问 Windows 10 的压缩内存,并且进行自动化分析(包括和 rekall 和 Volatility 的集成)。FireEye 出品。
相关资源的下载
一句话下载 BlackHat US19 资料(需要 jq )
#!/bin/bash
curl "https://www.blackhat.com/us-19/briefings/schedule/sessions.json" | jq ".sessions[].bh_files[].url" -r | sort | grep -v github | xargs -n1 -I {} wget -c "{}"