庆祝我们的2023年开源贡献 - The Trail of Bits博客
在Trail of Bits,我们为我们最好的工具开源而自豪,例如Slither、PolyTracker和RPC Investigator。虽然这篇文章是关于开源的,但它不是关于我们的工具…
在2023年,我们的员工提交了超过450个拉取请求(PR),这些请求被合并到非Trail of Bits的代码库中。这展示了我们保护整个软件生态系统以及为每个人提高软件质量的承诺。本文末尾列出了代表性的贡献列表,但以下是一些亮点:
Sigstore-conformance是我们开源工程中Sigstore计划的重要组成部分,作为各种Sigstore客户端实现的集成测试套件。它确保符合Sigstore客户端测试套件,严格评估整体客户端行为,处理关键场景,并与建立官方Sigstore客户端规范的持续努力保持一致。这个以工作流程为中心的测试套件可以以最少的配置无缝集成到工作流程中,为Sigstore客户端提供全面的测试。
Protobuf-specs是我们开源工程中的另一个倡议。它是一个用于跨各种Sigstore客户端的标准化数据模型和协议的协作存储库,并包含Sigstore消息的规范。要更新protobuf定义,请使用Docker通过运行$ make all
生成protobuf存根,结果会在gen/
目录下生成Go和Python文件。
pyOpenSSL是集成OpenSSL功能的主要Python库。在过去大约九个月里,我们作为与STF合同的一部分,一直在积极参与pyOpenSSL的清理和维护任务。pyOpenSSL是OpenSSL库子集的一个薄包装,其中许多对象方法只是调用OpenSSL库中的相应函数。
Homebrew-core是默认Homebrew tap的中心存储库,包含一系列软件包和相关公式以进行无缝安装。一旦您在Mac或Linux系统上配置了Homebrew,您就能够执行"brew install"命令来安装此存储库中的软件。应用安全工程师Emilio Lopez通过提交多个拉取请求并引入新公式或更新现有公式,积极为此存储库做出贡献。Emilio主要关注ToB开发的工具,如crytic-compile、solc-select、Caracal等。因此,个人可以通过简单的"brew install"命令轻松安装这些工具,简化安装过程。
Ghidra是美国国家安全局研究理事会的创作,是一个强大的软件逆向工程(SRE)框架。它提供用于在Windows、macOS和Linux上进行代码分析的高级工具,包括反汇编、反编译和脚本编写。支持各种处理器指令集,Ghidra作为一个可定制的SRE研究平台,有助于分析恶意代码以用于网络安全目的。我们修复了许多错误以增强其功能,特别是支持我们在DARPA的AMP(可靠微修补)计划上的工作。
我们想承认提交PR只是开源体验的一小部分。必须有人审查PR。在PR合并后必须有人维护代码。早期PR的提交者必须编写测试以确保其代码功能的保留。
我们为这些项目做出贡献的部分原因是因为我们热爱这门手艺,但也因为我们发现这些项目有用。为此,我们向开源社区致以最诚挚的感谢,并祝愿每个人2024年快乐、安全和富有成效!
Trail of Bits 2023年的一些开源贡献
AI/ML
- 仓库: run-llama/llama_index
- 名称: llms/openai: 修复Azure OpenAI流式处理 #7677 ret2libc: https://github.com/run-llama/llama_index/pull/7677
- 仓库: run-llama/llama_index
- 名称: llms/openai: 通过考虑prompt_filter_results字段修复Azure OpenAI #7755 ret2libc: https://github.com/run-llama/llama_index/pull/7755
密码学
(此处省略大量密码学相关的PR列表,包括pyca/cryptography、alex/rust-asn1等仓库的多个贡献)
语言和编译器
- 仓库: rust-lang/rust
- 名称: 修复universal_regions.rs注释中的拼写错误 #107195 smoelius: https://github.com/rust-lang/rust/pull/107195
- 仓库: rust-lang/rust
- 名称: 文档: 明确释放堆分配内存 #117563 0xalpharush: https://github.com/rust-lang/rust/pull/117563
库
- 仓库: console-rs/indicatif
- 名称: 修复尝试减法溢出的问题 (#582) #586 smoelius: https://github.com/console-rs/indicatif/pull/586
- 仓库: dtolnay/syn
- 名称: 限定compile_error! #1431 smoelius: https://github.com/dtolnay/syn/pull/1431
技术基础设施
- 仓库: wasmerio/wasmer
- 名称: 修复: 通过为联合体派生repr C来防止潜在UB #4296 0xalpharush: https://github.com/wasmerio/wasmer/pull/4296
- 仓库: rust-or/good_lp
- 名称: 依赖: 修复最小fnv版本 #24 0xalpharush: https://github.com/rust-or/good_lp/pull/24
软件分析工具
- 仓库: langston-barrett/tree-crasher
- 名称: 功能: 为solidity添加tree-crasher实现 #26 0xalpharush: https://github.com/langston-barrett/tree-crasher/pull/26
- 仓库: assert-rs/assert_cmd
- 名称: 在写入Bstrs时恢复换行符 #161 smoelius: https://github.com/assert-rs/assert_cmd/pull/161
区块链软件
- 仓库: ethereum/hevm
- 名称: 将nixpkgs升级到GHC 9.4 #303 arcz: https://github.com/ethereum/hevm/pull/303
- 仓库: ethereum/hevm
- 名称: 准备0.51.2版本 #305 arcz: https://github.com/ethereum/hevm/pull/305
逆向工程工具
- 仓库: NationalSecurityAgency/ghidra
- 名称: 修复: PPC VLE的e_stmvsprw中的sleigh不正确 #4886 Ninja3047: https://github.com/NationalSecurityAgency/ghidra/pull/4886
- 仓库: NationalSecurityAgency/ghidra
- 名称: 修复: 也为VLE解码eieio (mbar 0) #4887 Ninja3047: https://github.com/NationalSecurityAgency/ghidra/pull/4887
打包生态系统/供应链
- 仓库: pypi/warehouse
- 名称: 从新IP地址登录、API令牌创建时发送电子邮件 #13869 tnytown: https://github.com/pypi/warehouse/pull/13869
- 仓库: pypi/warehouse
- 名称: 将OIDC声明添加到OIDCPublisher限制条件 #13668 tnytown: https://github.com/pypi/warehouse/pull/13668
(文章继续列出数百个其他技术贡献,涵盖多个技术领域和项目)