庆祝我们2024年的开源贡献 - The Trail of Bits博客
虽然Trail of Bits以开发Slither、Medusa和Fickling等安全工具而闻名,但我们的工程工作远不止于自己的项目。在整个2024年,我们的团队深入参与了更广泛的安全生态系统,解决了安全工程师日常依赖的开源工具和基础设施中的挑战。
今年,我们的工程师提交了超过750个成功合并的拉取请求(比2023年的贡献增加了67%!),改进了80多个开源项目,从基础密码学库到包管理器和软件索引。每个贡献都是对现实世界安全工程挑战的回应——当我们在关键工具中遇到限制时,我们会深入研究并改进它们。当我们发现加强每个人都依赖的安全原语的方法时,我们会在上游实施这些改进,使整个社区受益。
其中一些更改单独看起来可能很小——这里有一个更强大的解析器,那里有更好的错误处理——但它们共同代表了对数千名工程师依赖的安全工具的有意义改进。从强化包签名工作流程到增强模糊测试能力,每个贡献都有助于为每个人构建更安全的基础。
让我们深入了解我们在2024年做出的一些关键贡献。
关键贡献
LLVM:我们对MLIR和AddressSanitizer进行了改进。例如,我们为std::string和std::deque容器添加了C++容器溢出检测。在我们的博客文章“Sanitize your C++ containers: ASan annotations step-by-step”中阅读更多相关内容。
pwndbg:pwndbg是一个GDB和LLDB插件,有助于逆向工程和漏洞利用开发。我们的工程师继续维护该项目,修复了许多问题并合并了许多新功能,例如LLDB端口、Binary Ninja集成(参见拉取请求)以及对嵌入式设备的更好支持。
hevm:hevm是EVM的一个实现,支持符号和具体执行,我们将其用作Echidna的基础。在整个2024年,我们贡献了几项性能改进,添加了对新Cancun操作码的支持,并实现了多个新的cheatcode以改善测试体验。
后量子密码学:我们发布了两种已被NIST标准化的后量子数字签名方案的开源实现,有助于提高后量子密码学的整体社区支持。我们发布了这些标准的Go和Rust版本,Rust版本已集成到RustCrypto中。
OSS-Fuzz:OSS-Fuzz是开源软件项目的持续模糊测试工具。我们添加了对Ruzzy的支持,这是我们针对Ruby和Ruby C扩展的覆盖引导模糊测试器。
Python打包生态系统:我们继续为Python打包生态系统做出贡献,实现了PEP 740和许多其他供应链安全改进。在我们的博客文章“Attestations: A new generation of signatures on PyPI”中阅读更多相关内容。
这里列出的拉取请求捕捉了技术变化,但它们并没有讲述完整的故事。每个合并的拉取请求背后都有一个维护者社区,他们审查了我们的代码,提出了改进建议,并仔细考虑了每个更改的长期影响。这些维护者承担着开源开发的真正重量——确保一致性,维护测试覆盖率,并在多年的变化中保持兼容性。
我们的许多贡献始于我们在安全评估或工具开发过程中遇到的开源项目限制。我们没有为这些限制构建变通方案,而是选择在上游解决它们,改进整个安全社区依赖的工具。我们能够完成这项工作,是因为我们站在巨人的肩膀上——构建和培育这些关键项目的维护者和贡献者。
向每一位审查我们拉取请求的维护者、每一位提供反馈的开发人员以及每一位致力于改善安全生态系统的工程师表示感谢。祝合作安全工程再创一年!
Trail of Bits 2024年部分开源贡献
AI/ML
-
Repo: TabbyML/tabby
-
Name: feat: Add Solidity language
-
#1681 ret2libc: https://github.com/TabbyML/tabby/pull/1681
-
Repo: astronomer/ask-astro
-
#325 bismuthsalamander: https://github.com/astronomer/ask-astro/pull/325
-
Repo: continuedev/continue
-
Name: Add autocomplete support for Solidity
-
#964 ret2libc: https://github.com/continuedev/continue/pull/964
-
Repo: langchain-ai/langchain
-
Name: core: runnables: special handling GeneratorExit because no error
-
#22662 ret2libc: https://github.com/langchain-ai/langchain/pull/22662
-
Repo: onyx-dot-app/onyx
-
Name: backend: remove duplicated word in ANSWER_VALIDITY_PROMPT
-
#1184 ret2libc: https://github.com/onyx-dot-app/onyx/pull/1184
-
Repo: unoplat/vespa-helm-charts
-
Name: Fix labels and service selector
-
#14 oldsj: https://github.com/unoplat/vespa-helm-charts/pull/14
密码学
-
Repo: C2SP/x509-limbo
-
Name: render-testcases: fix linkification
-
#162 woodruffw: https://github.com/C2SP/x509-limbo/pull/162
-
Repo: C2SP/x509-limbo
-
Name: gocryptox509: handle a KeyUsage edge case
-
#167 woodruffw: https://github.com/C2SP/x509-limbo/pull/167
-
Repo: C2SP/x509-limbo
-
Name: Update URLs post-transfer
-
#172 woodruffw: https://github.com/C2SP/x509-limbo/pull/172
-
Repo: C2SP/x509-limbo
-
Name: Add an explicit curve test
-
#173 woodruffw: https://github.com/C2SP/x509-limbo/pull/173
-
Repo: C2SP/x509-limbo
-
Name: testcases: add CVE-2024-0567
-
#176 woodruffw: https://github.com/C2SP/x509-limbo/pull/176
(此处省略了大量具体的拉取请求详情,但保留了完整的分类结构)
语言和编译器
-
Repo: airbus-cert/tree-sitter-powershell
-
Name: bindings/rust: fix build.rs
-
#15 woodruffw: https://github.com/airbus-cert/tree-sitter-powershell/pull/15
-
Repo: compiler-explorer/compiler-explorer
-
Name: Add vast-trunk compiler
-
#5973 xlauko: https://github.com/compiler-explorer/compiler-explorer/pull/5973
(此处省略了大量具体的拉取请求详情)
库
- Repo: AFLplusplus/AFLplusplus
- Name: afl-persistent-config: Use GRUB_CMDLINE_LINUX instead of GRUB_CMDLINE_LINUX_DEFAULT
- #1998 maxammann: https://github.com/AFLplusplus/AFLplusplus/pull/1998
(此处省略了大量具体的拉取请求详情)
技术基础设施
- Repo: Homebrew/homebrew-core
- Name: caracal 0.2.3
- #160933 elopez: https://github.com/Homebrew/homebrew-core/pull/160933
(此处省略了大量具体的拉取请求详情)
软件测试工具
- Repo: google/oss-fuzz
- Name: Adding Ruby Support into OSS-Fuzz via Ruzzy
- #12034 AdvenamTacet: https://github.com/google/oss-fuzz/pull/12034
(此处省略了大量具体的拉取请求详情)
区块链软件
- Repo: FuelLabs/fuel-vm
- Name: Add ClusterFuzzLite in CI featuring PR fuzzing, batch fuzzing and fuzz coverage reports
- #820 netrome: https://github.com/FuelLabs/fuel-vm/pull/820
(此处省略了大量具体的拉取请求详情)
逆向工程工具
- Repo: Gallopsled/pwntools
- Name: Fix pwn constgrep when it matches a non-constant type (Fixes #2344)
- #2345 disconnect3d: https://github.com/Gallopsled/pwntools/pull/2345
(此处省略了大量具体的拉取请求详情)
打包生态系统/供应链
- Repo: Homebrew/.github
- Name: sync-shared-config.yml: explicit persistence of credentials
- #216 woodruffw: https://github.com/Homebrew/.github/pull/216
(此处省略了大量具体的拉取请求详情)
其他
-
Repo: AlDanial/cloc
-
Name: Adding FunC language
-
#872 cdahlheimer: https://github.com/AlDanial/cloc/pull/872
-
Repo: emad-elsaid/xlog
-
Name: link_preview.go: fix Twitter regexp
-
#67 disconnect3d: https://github.com/emad-elsaid/xlog/pull/67
如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News
页面内容
- 关键贡献
- Trail of Bits 2024年部分开源贡献
- AI/ML
- 密码学
- 语言和编译器
- 库
- 技术基础设施
- 软件测试工具
- 区块链软件
- 逆向工程工具
- 打包生态系统/供应链
- 其他
近期文章
- 非传统创新者奖学金
- 劫持您的PajaMAS中的多代理系统
- 我们构建了MCP一直需要的安全层
- 利用废弃硬件中的零日漏洞
- 深入EthCC[8]:成为智能合约审计员
© 2025 Trail of Bits. 使用Hugo和Mainroad主题生成。