2016年回顾 - Trail of Bits博客
John Oliver或许对2016年持否定态度,但我们对自己在这一年取得和贡献的所有成就感到无比自豪。
我们发布了一系列安全工具,帮助我们——以及您——更智能地工作,并推广了更多值得认可的工具。我们帮助纽约市信息安全社区为未来的发展奠定了基础。也许最重要的是,在我们认为需要澄清事实时,我们发表了意见。
以下是我们认为2016年取得成功并对2017年充满信心的14个理由。
1. 将自动漏洞发现推向市场
2016年将被载入史册,因为这是软件开始自动发现和修补漏洞的一年。我们的网络推理系统(CRS)专为参加DARPA网络大挑战赛而构建,在审计zlib时独自创造了历史。据我们所知,我们的CRS是第一个在更短时间、更详细、更低成本的情况下审计大量代码的系统,超越了人类的能力。阅读审计报告和Mozilla的公告。
对机器人来说相当不错的工作!https://t.co/Bxu6XhzO0k
— jeff bryner (@0x7eff) 2016年10月5日
一月份,我们使用CRS帮助解决了一场关于libotr的1000美元赌注,libotr是安全消息软件中常用的流行库。了解我们对加密通信系统在自动化测试中面临的挑战、我们如何解决这些挑战以及我们的测试方法的见解。并找出谁赢了赌注。
如果我开始读博士,我会选择这类主题(DSE/SMT/…)https://t.co/WVW6WHOoLr
— Julien Bachmann (@milkmix_) 2016年1月13日
我们的CRS可用于商业合作,但我们开源了其配套工具之一:GRR,一个专为CRS构建的高吞吐量模糊测试器。阅读我们在设计和构建GRR时克服的挑战。
这个INFILTRATE视频与网络大挑战赛有关。太棒了!https://t.co/eCHxvduCU9
— daveaitel (@daveaitel) 2016年10月14日
发布和评审基础工具
2. 创建安全工具的标准化基准套件
DARPA发布了用于网络大挑战赛(CGC)的100多个挑战程序的源代码。CGC挑战程序是包含记录漏洞的现实程序。不幸的是,这些程序无法在Windows、Linux或macOS上运行。我们解决了这个问题。我们将挑战程序移植并打包成一个跨平台基准套件。现在,学术界和工业界的研究人员可以可靠地评估和比较他们的程序分析工具和漏洞缓解措施。
在家探索#DARPACGC的测量能力:@trailofbits已将挑战程序移植到Linux、Windows和Mac!https://t.co/qkZfRIGS84
— DARPA (@DARPA) 2016年8月9日
如果您从事程序分析工具工作,这可能是DARPA CGC迄今为止最重要的成果https://t.co/fna4XjuS4L
— Sean Heelan (@seanhn) 2016年8月2日
3. 将Facebook的osquery移植到Windows
Facebook的osquery允许您轻松询问有关终端基础设施的安全和性能问题。直到今年早些时候,它仅适用于macOS和Linux。我们将osquery移植到Windows,克服了众多技术挑战:完全不同的进程和安全模型、不兼容的API以及不同的编译器行为。移植的努力是值得的。以前,类似的功能需要拼凑手动解决方案或昂贵且专有的商业产品。现在,有了更好的选择。
介绍@osquery for Windows!https://t.co/imQ3183syg
— Alex Stamos (@alexstamos) 2016年9月27日
4. 发布Algo,一个安全、用户友好且免费的VPN
我们构建了Algo,一个自托管VPN服务器,设计用于简化部署和安全性。Algo服务器不与其他用户共享,仅使用现代协议和密码,并且仅包含您需要的最少软件。由于Algo可以部署到几乎所有流行的云计算平台,它提供了 effectively unlimited set of egress locations。对于注重隐私、经常出差或无法负担专用IT部门的任何人来说,这是为您准备的。
.@nickdepetrillo总是告诉我尝试@trailofbits algo,因为简单的私有IPSec VPN是好东西。设置简单,iPhone配置
— the grugq (@thegrugq) 2016年10月12日
5. 展示如何使用Binary Ninja自动生成漏洞利用
Ryan展示了如何使用Vector35的Binary Ninja(一个有前途的新交互式静态分析和逆向工程平台)为今年DEFCON CTF资格赛中的2,000个独特二进制文件生成漏洞利用。其功能丰富且易于访问的API击败了所有竞争产品。如果他使用IDA或radare2,Ryan将不得不分散时间和注意力来实现堆栈模型或使用脆弱的启发式方法,而不是专注于CTF的真正目标:利用二进制文件。阅读他的完整评论。
键盘流口水 https://t.co/rLVe8hK0XX
— CΔGIN (@cagindonmez) 2016年6月4日
再次提醒尝试https://t.co/f7QEpdun89。这太棒了!可行,但在idapython中进行参数跟踪很痛苦https://t.co/LZIYdahTqz
— Nico Golde (@iamnion) 2016年6月3日
6. 发布Protofuzz,一个protobuf模糊测试器
Protofuzz帮助查找使用Google Protocol Buffers(protobuf)的应用程序中的错误。应用程序使用protobuf指定消息的结构,这些消息在进程之间或跨网络传递。Protobuf自动化了生成消息序列化和反序列化代码的容易出错的任务。依赖随机排列的典型模糊测试器无法探索正确的自动生成代码之外的内容。Protofuzz创建由恶意值组成的有效protobuf编码结构——确保排列后的数据通过坚硬的自动生成外壳进入目标程序的柔软下腹。
@trailofbits团队的伟大工具!https://t.co/j3LycoktDg
— Dmitri Alperovitch (@DAlperovitch) 2016年5月18日
7. 通过Tidas使iOS的安全飞地可用
Apple的安全飞地加密API承诺将我们从密码烦恼和使用Google帐户登录Pokemon Go中解放出来。但它在其原始状态下无法使用。因此,我们用Tidas填补了空白,这是一个简单的SDK插件,用于iOS应用程序,提供密码证明——且无密码——的身份验证。新款MacBook Pro上T1芯片和TouchID的引入为Tidas在macOS上打开了令人兴奋的新潜力。如果您梦想一个无密码的未来,请查看我们的Swift或Objective-C DIY工具包。
iOS开发者:@trailofbits刚刚开源了他们的Tidas安全飞地API包装器,用于通过TouchID进行密钥管理https://t.co/hcnO4bmqYT
— Kenn White (@kennwhite) 2016年6月29日
与社区分享
8. 解释控制流完整性以及如何使用它来缓解漏洞利用
控制流完整性(CFI)防止错误变成漏洞利用。在间接控制流传输之前,CFI验证流的目标是否属于预定的有效目标集。不幸的是,使用CFI的说明很难找到且非常混乱。我们解决了这个问题。我们发布了两篇博客文章,描述CFI如何防止利用,以及如何将其与clang和Visual Studio一起使用。我们还提供了工作示例,展示CFI如何保护Linux、MacOS和Windows应用程序。
控制流防护当前功能的精彩总结和示例https://t.co/Iz3nSaaRkZ
— Matt Miller (@epakskape) 2016年12月27日
我就是喜欢CFI。这是WS2016成为如此伟大的安全操作系统的(众多)原因之一。https://t.co/j4uNzggtJq
— Jeffrey Snover (@jsnover) 2016年12月27日
9. 揭开PointsTo的面纱,我们的全程序静态分析工具
动态程序分析工具(如AddressSanitizer和Valgrind)可以告诉开发人员运行代码何时访问未初始化的内存、泄漏内存或在使用后释放内存。尽管如此,内存错误仍然在野外发布和利用。这是因为错误有一种讨厌的习惯,隐藏在很少执行的代码路径后面,而动态分析工具无法检查每个可能的程序路径。PointsTo可以。它是我们开发并用于在大型代码库中查找和报告潜在 use-after-free 错误的全程序静态分析工具。阅读关于PointsTo的内容。
@trailofbits的有趣博客文章,关于使用数据流跟踪来查找潜在的 use-after-free 错误https://t.co/3aHuEmX7ap
— Jose Miguel Esparza (@EternalTodo) 2016年3月10日
10. 继续丰富纽约市的信息安全社区
我们的双月聚会——Empire Hacking——在2016年真正加快了步伐。成员人数超过500人;其中100人定期参加我们的会议。我们听取了14场关于实用安全研究以及攻击和防御新发现的精彩演讲。非常感谢我们的主办方:Spotify、Two Sigma、DigitalOcean和WeWork!
上周我们的会议来了很多新面孔,总参会人数近100人。以下是我们收到的一些反馈:pic.twitter.com/jBtv9e3wzA
— Empire Hacking (@EmpireHacking) 2016年10月17日
欢迎所有人参加Empire Hacking,但它可能并不适合所有人。因此,我们整理了nyc-infosec.com,这是一个目录,收录了我们在纽约市能找到的所有聚会、公司和大学项目。我们在nyc-infosec.com的目标是促进协作,将纽约市社区提升到其在信息安全“舞台”上应有的位置,并帮助研究人员和实践者从彼此的工作中受益。
纽约市地区活动和聚会的实用目录,附带方便的Google日历https://t.co/al7FSyxL0h
— Michael Isbitski (@michaelisbitski) 2016年9月13日
一个本地活动甚至赢得了我们的赞助:O’Reilly的安全会议。
11. 雇佣了三名实习生进行有意义的工作
今年冬天,我们再次为大学生提供带薪实习机会,以研究有趣的安全问题。我们与每位学生合作创建一个既有趣又对我们有益的项目,并为他们提供资源和指导以取得进展。今年,我们的实习生正在将机器学习应用于模糊测试、将挑战二进制文件移植到Windows以及改进我们的程序分析工具。完成后,我们将有一篇文章总结他们的工作;同时,您可以阅读我们过去实习生的经验。我们还将为夏季招聘实习生:如果您感兴趣,请联系我们。
祝贺我们的实习生@japesinator和@krx__,获得@CSAW_NYUTandon CTF资格https://t.co/0JtjDPD4Fl
— Trail of Bits (@trailofbits) 2016年10月6日
12. 在13个独立会议上进行了9场新演讲
当我们能够时,我们分享推动我们工作的科学——成功和失败。今年,我们在世界各地的会议上与异常多的人进行了交流。
- Peter Goodman在COUNTERMEASURE上的“大规模自动错误查找”
- Sophia D’Antoine在CanSecWest上的“自动漏洞利用生成”
- Sophia D’Antoine在HITB阿姆斯特丹上的“坏邻居”
- Sophia D’Antoine在INBOT和CodeBlue上的“成为二进制摇滚明星”
- Artem Dinaburg在Infiltrate、ShakaCon、HCSS和NCC Open Forum Chicago上的“构建可扩展的自动黑客机器”
- Dan Guido和Sophia D’Antoine在Code as Craft、QCon NY上的“iOS应用程序安全”
- Ryan Stortz和Kareem El-Faramawi在INBOT和CSAW SOS上的“静态和动态分析对决”
- Dan Guido在BSides Lisbon上的“智能模糊测试革命”
- Ryan Stortz在Infiltrate和ShakaCon上的“Swift逆向工程”
说出真相
13. 批评Verizon发布不良数据
Verizon的数据泄露调查报告(DBIR)代表了一项涉及60多个组织专有数据的协作努力。它是企业防御者的最佳信息来源,这就是为什么该报告中关于数据泄露中使用的漏洞的部分包含误导性数据、分析和建议是一种悲剧。我们批评了Verizon和该部分的贡献者Kenna,并提供了提高未来DBIR质量的建议。作为对批评的回应,Verizon和Kenna在他们的博客上发表了道歉。
Verizon DBIR似乎是大量定量工作而没有定性理解的好例子。我们时代的标志。
— halvarflake (@halvarflake) 2016年5月6日
所有这些以及更多内容在@dguido的帖子中:https://t.co/gdbYCzFfcl ——简而言之:VZN DBIR不可能正确。
— Thomas H. Ptáček (@tqbf) 2016年5月5日
对Verizon的DBIR漏洞分析的严厉批评以及为什么遵循其建议会使您更不安全:https://t.co/QQoGDvyoxC
— Dan Goodin (@dangoodin001) 2016年5月5日
14. 澄清Apple-FBI对峙的技术细节
二月份,一名联邦法官命令Apple帮助FBI从San Bernardino枪手的iPhone 5C中恢复加密数据。许多人认为,鉴于iOS设备对强加密的支持,FBI的请求在技术上是不可行的。根据我们对请求的阅读和对iOS的了解,我们解释了为什么Apple在这种情况下可以遵守FBI的要求。(如果iPhone有安全飞地,那将会困难得多。)有关更多细节,请听Dan在Risky Business播客中的采访。
这是我们昨晚关于加密的文章……https://t.co/NJhWnriNhR
— John Oliver (@iamjohnoliver) 2016年3月14日
2017年将不知何故
今年,我们期待公开更多我们的研究,继续致力于我们的开源项目,并发布更多我们的内部工具。我们将:
- 发布Manticore,一个 ruthlessly effective hybrid symbolic-concrete (“concolic”) 执行系统,可扩展到具有众多依赖项、复杂交互和手动设置的大型程序。
- 为McSema添加ARM支持,以便我们可以从各种嵌入式系统(如硬盘固件、手机和IoT设备)中提取二进制文件。
- 公开发布一个工具,结合一组LLVM传递来检测敏感代码库中的侧信道漏洞。
- 赞助Infiltrate 2017并集体参加。我们非常欣赏他们为攻击者用于破坏系统的技术提供专注、高质量审查的论坛。这是对社区的服务。我们很高兴支持它。
- 交付一个受《Mr. Robot》启发的项目。是的,那个电视节目。很快会有更多信息。
如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News
页面内容
- 将自动漏洞发现推向市场 发布和评审基础工具
- 创建安全工具的标准化基准套件
- 将Facebook的osquery移植到Windows
- 发布Algo,一个安全、用户友好且免费的VPN
- 展示如何使用Binary Ninja自动生成漏洞利用
- 发布Protofuzz,一个protobuf模糊测试器
- 通过Tidas使iOS的安全飞地可用 与社区分享
- 解释控制流完整性以及如何使用它来缓解漏洞利用
- 揭开PointsTo的面纱,我们的全程序静态分析工具
- 继续丰富纽约市的信息安全社区
- 雇佣了三名实习生进行有意义的工作
- 在13个独立会议上进行了9场新演讲 说出真相
- 批评Verizon发布不良数据
- 澄清Apple-FBI对峙的技术细节 2017年将不知何故 近期文章 Trail of Bits的Buttercup在AIxCC挑战赛中获得第二名 Buttercup现已开源! AIxCC决赛:磁带的故事 攻击者的提示注入工程:利用GitHub Copilot 作为新员工发现NVIDIA Triton中的内存损坏 © 2025 Trail of Bits. 使用Hugo和Mainroad主题生成。