2016年回顾:Trail of Bits的网络安全工具与技术创新

本文回顾了Trail of Bits在2016年的技术成果,包括自动漏洞发现系统CRS、标准化安全工具基准套件、osquery的Windows移植、Algo自托管VPN、Binary Ninja自动漏洞利用生成等14项突破,展示了在程序分析、加密通信和社区建设方面的创新。

2016年回顾 - Trail of Bits博客

John Oliver或许已经对2016年不屑一顾,但我们对自己在今年所完成和贡献的一切感到无比自豪。

我们发布了一系列安全工具,帮助我们——以及您——更智能地工作,并推广了更多值得认可的工具。我们帮助纽约市信息安全社区为未来的发展奠定了基础。也许最重要的是,在我们认为需要澄清事实时,我们挺身而出。

以下是14个理由,让我们将2016年视为成功的一年,并对2017年充满信心。

1. 将自动漏洞发现推向市场

2016年将被载入史册,因为这一年软件开始自动发现和修补漏洞。我们为参加DARPA网络大挑战赛而构建的网络推理系统(CRS)在审计zlib时创造了历史。据我们所知,我们的CRS是第一个在更短的时间内、以更低的成本、更详细地审计大量代码的系统,其效率远超人类。阅读审计报告和Mozilla的公告。

Pretty nice work for a robot! https://t.co/Bxu6XhzO0k
— jeff bryner (@0x7eff) 2016年10月5日

1月,我们使用CRS帮助解决了一场关于libotr的1000美元赌注,libotr是安全消息软件中常用的库。了解我们对加密通信系统在自动化测试中面临的挑战、我们如何解决这些挑战以及我们的测试方法的见解。并找出谁赢了赌注。

If I was starting a Ph.D. this is the kind of subject (DSE/SMT/…) I would choose https://t.co/WVW6WHOoLr
— Julien Bachmann (@milkmix_) 2016年1月13日

我们的CRS可用于商业合作,但我们开源了其配套工具之一:GRR,一个专为CRS构建的高吞吐量模糊测试工具。阅读我们在设计和构建GRR过程中克服的挑战。

This INFILTRATE video relates to the Cyber Grand Challenge. It’s great! https://t.co/eCHxvduCU9
— daveaitel (@daveaitel) 2016年10月14日

发布与评审基础工具

2. 创建了安全工具的标准化基准套件

DARPA发布了用于网络大挑战赛(CGC)的100多个挑战程序的源代码。CGC挑战程序是包含文档化漏洞的现实程序。不幸的是,这些程序无法在Windows、Linux或macOS上运行。我们解决了这个问题。我们将挑战程序移植并打包成一个跨平台基准套件。现在,学术界和工业界的研究人员可以可靠地评估和比较他们的程序分析工具和漏洞缓解措施。

Explore the measurement power of #DARPACGC at home: @trailofbits has ported Challenges to Linux, Windows & Mac! https://t.co/qkZfRIGS84
— DARPA (@DARPA) 2016年8月9日

If you work on program analysis tools, this is probably the most significant outcome of the DARPA CGC so far https://t.co/fna4XjuS4L
— Sean Heelan (@seanhn) 2016年8月2日

3. 将Facebook的osquery移植到Windows

Facebook的osquery允许您轻松询问关于终端基础设施的安全和性能问题。直到今年早些时候,它仅适用于macOS和Linux。我们将osquery移植到Windows,克服了众多技术挑战:完全不同的进程和安全模型、不兼容的API以及不同的编译器行为。移植的努力是值得的。以前,类似的功能需要拼凑手动解决方案或昂贵且专有的商业产品。现在,有了更好的选择。

Introducing @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 always tells me to try @trailofbits algo because easy private IPSec VPNs are good things. Trivial to setup, iPhone config
— the grugq (@thegrugq) 2016年10月12日

5. 展示了如何使用Binary Ninja自动生成漏洞利用

Ryan展示了如何使用Vector35的Binary Ninja(一个有前途的新交互式静态分析和逆向工程平台)为今年DEFCON CTF资格赛中的2,000个独特二进制文件生成漏洞利用。其功能丰富且易于访问的API击败了所有竞争产品。如果他使用IDA或radare2,Ryan将不得不分散时间和注意力来实现堆栈模型或使用脆弱的启发式方法,而不是专注于CTF的真正目标:利用二进制文件。阅读他的完整评论。

Drools over keyboard https://t.co/rLVe8hK0XX
— CΔGIN (@cagindonmez) 2016年6月4日

another reminder to try https://t.co/f7QEpdun89. this is awesome! doable, but arg tracing in idapython is a pain https://t.co/LZIYdahTqz
— Nico Golde (@iamnion) 2016年6月3日

6. 发布了Protofuzz,一个protobuf模糊测试器

Protofuzz帮助查找使用Google Protocol Buffers(protobuf)的应用程序中的错误。应用程序使用protobuf来指定消息的结构,这些消息在进程之间或跨网络传递。Protobuf自动化了生成消息序列化和反序列化代码这一容易出错的任务。依赖随机排列的典型模糊测试器无法探索过正确的自动生成代码。Protofuzz创建由恶意值组成的有效protobuf编码结构——确保排列后的数据通过坚硬的自动生成外壳进入目标程序的柔软下腹。

Great tool from @trailofbits team! 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 developers: @trailofbits just open sourced their Tidas Secure Enclave API wrapper for key management via TouchID https://t.co/hcnO4bmqYT
— Kenn White (@kennwhite) 2016年6月29日

与社区分享

8. 解释了控制流完整性及其如何用于缓解漏洞利用

控制流完整性(CFI)防止错误变成漏洞利用。在间接控制流传输之前,CFI验证流的目标是否属于预定的有效目标集。不幸的是,使用CFI的说明很难找到且非常混乱。我们解决了这个问题。我们发表了两篇博客文章,描述了CFI如何防止利用,以及如何在clang和Visual Studio中使用它。我们还提供了工作示例,展示CFI如何保护Linux、macOS和Windows应用程序。

Great summary & examples of Control Flow Guard’s current capabilities https://t.co/Iz3nSaaRkZ
— Matt Miller (@epakskape) 2016年12月27日

I just love CFI. It’s one of the (many) reasons why WS2016 is such a great secure OS. https://t.co/j4uNzggtJq
— Jeffrey Snover (@jsnover) 2016年12月27日

9. 揭开了PointsTo的面纱,我们的全程序静态分析工具

动态程序分析工具如AddressSanitizer和Valgrind可以告诉开发人员运行代码何时访问未初始化的内存、泄漏内存或使用已释放的内存。尽管如此,内存错误仍然在野外被发布和利用。这是因为错误有隐藏在很少执行的代码路径后的讨厌习惯,而动态分析工具无法检查每个可能的程序路径。PointsTo可以。它是我们开发并用于在大型代码库中查找和报告潜在释放后使用错误的全程序静态分析工具。阅读关于PointsTo的内容。

Interesting blog post by @trailofbits about using data-flow tracking to find potential use-after-free bugs https://t.co/3aHuEmX7ap
— Jose Miguel Esparza (@EternalTodo) 2016年3月10日

10. 继续丰富纽约市的信息安全社区

我们的双月聚会——Empire Hacking——在2016年真正加速发展。会员人数超过500人;其中100人定期参加我们的会议。我们听取了14场关于实用安全研究以及攻击和防御新发现的精彩演讲。非常感谢我们的主办方:Spotify、Two Sigma、DigitalOcean和WeWork!

Lots of new faces at our meeting last week with almost 100 total attendees. Here’s some feedback we received: pic.twitter.com/jBtv9e3wzA
— Empire Hacking (@EmpireHacking) 2016年10月17日

每个人在Empire Hacking都受到欢迎,但它可能并不适合所有人。因此,我们整理了nyc-infosec.com,这是一个目录,收录了我们在纽约市能找到的所有聚会、公司和大学项目。我们通过nyc-infosec.com的目标是促进协作,将纽约市社区提升到其在信息安全“舞台”上应有的位置,并帮助研究人员和实践者从彼此的工作中受益。

Useful directory of events and meetups in the NYC area with a handy Google calendar to boot https://t.co/al7FSyxL0h
— Michael Isbitski (@michaelisbitski) 2016年9月13日

一个本地活动甚至赢得了我们的赞助:O’Reilly的安全会议。

11. 雇佣了三名实习生进行有意义的工作

今年冬天,我们再次为大学生提供带薪实习机会,让他们从事有趣的安全问题研究。我们与每位学生合作创建一个既有趣又对我们有益的项目,并为他们提供资源和指导以取得进展。今年,我们的实习生正在将机器学习应用于模糊测试、将挑战二进制文件移植到Windows以及改进我们的程序分析工具。完成后,我们将有一篇文章总结他们的工作;同时,您可以阅读我们过去实习生的经验。我们还将为夏季招聘实习生:如果您感兴趣,请联系我们。

Congratulations to our interns, @japesinator and @krx__, for qualifying for @CSAW_NYUTandon CTF https://t.co/0JtjDPD4Fl
— Trail of Bits (@trailofbits) 2016年10月6日

12. 在13个独立会议上发表了9场新演讲

当我们能够时,我们分享推动我们工作的科学——成功和失败。今年,我们在世界各地的会议上与异常多的人进行了交流。

  • 大规模自动漏洞查找 by Peter Goodman at COUNTERMEASURE
  • 自动漏洞利用生成 by Sophia D’Antoine at CanSecWest
  • 坏邻居 by Sophia D’Antoine at HITB Amsterdam
  • 成为二进制摇滚明星 by Sophia D’Antoine at INBOT and CodeBlue
  • 构建可扩展的自动黑客机器 by Artem Dinaburg at Infiltrate, ShakaCon, HCSS, and NCC Open Forum Chicago
  • iOS应用程序安全 by Dan Guido and Sophia D’Antoine at Code as Craft, QCon NY
  • 静态和动态分析对决 by Ryan Stortz and Kareem El-Faramawi at INBOT and CSAW SOS
  • 智能模糊测试革命 by Dan Guido at BSides Lisbon
  • Swift逆向工程 by Ryan Stortz at Infiltrate and ShakaCon

说出真相

13. 批评Verizon发布不良数据

Verizon的数据泄露调查报告(DBIR)代表了涉及60多个组织专有数据的协作努力。它是企业防御者的最佳信息来源,这就是为什么该报告中关于数据泄露中使用的漏洞部分包含误导性数据、分析和建议是一种悲剧。我们批评了Verizon和该部分的贡献者Kenna,并提供了改善未来DBIR质量的建议。作为对批评的回应,Verizon和Kenna在他们的博客上发表了道歉。

The Verizon DBIR thingie seems to be a good example of a lot of quantitative work without qualitative understanding. A sign of our times.
— halvarflake (@halvarflake) 2016年5月6日

All this and more in @dguido’s post: https://t.co/gdbYCzFfcl — the short of it is: the VZN DBIR can’t possibly be correct.
— Thomas H. Ptáček (@tqbf) 2016年5月5日

Scathing critique of Verizon’s DBIR vulnerability analysis & why following its recommendations makes you less safe: https://t.co/QQoGDvyoxC
— Dan Goodin (@dangoodin001) 2016年5月5日

14. 澄清了Apple-FBI对峙的技术细节

2月,一名联邦法官命令Apple帮助FBI从圣贝纳迪诺枪手的iPhone 5C中恢复加密数据。许多人认为,鉴于iOS设备对强加密的支持,FBI的请求在技术上是不可行的。基于我们对请求的阅读和对iOS的了解,我们解释了为什么Apple在这种情况下可以遵守FBI的要求。(如果iPhone有安全飞地,情况会困难得多。)更多细节,请听Dan在Risky Business播客中的采访。

Here’s our piece on Encryption from last night… https://t.co/NJhWnriNhR
— John Oliver (@iamjohnoliver) 2016年3月14日

2017年将不知何故

今年,我们期待公开更多我们的研究,继续对我们开源项目的承诺,并发布更多内部工具。我们将:

  • 发布Manticore,一个 ruthlessly effective hybrid symbolic-concrete (“concolic”) execution system,可扩展到具有众多依赖项、复杂交互和手动设置的大型程序。
  • 为McSema添加ARM支持,以便我们可以从各种嵌入式系统(如硬盘固件、手机和物联网设备)中提取二进制文件。
  • 公开发布一个工具,结合一组LLVM传递来检测敏感代码库中的侧信道漏洞。
  • 赞助Infiltrate 2017并集体参加。我们非常欣赏他们为攻击者用于破坏系统的技术提供专注、高质量审查的论坛。这是对社区的服务。我们很高兴支持它。
  • 交付一个受《Mr. Robot》启发的项目。是的,那部电视剧。更多信息即将公布。

如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计