另一个开源贡献丰硕之年 - Trail of Bits 博客
Samuel Moelius
2023年1月10日
年度回顾
去年此时,我们撰文介绍了2021年Trail of Bits提交的190多个PR被合并到非Trail of Bits仓库的情况。2022年,我们延续了这一趋势,有超过400个PR被合并到非Trail of Bits仓库!
这为何重要?虽然我们对自己开发的工具深感自豪,但我们认识到我们也受益于Trail of Bits外部维护的工具。当某个工具无法按预期工作时,我们尝试修复它;当某个工具未能满足其设计目标时,我们尝试改进它。简而言之,我们努力回馈给予我们如此之多的社区。
以下是本文末尾PR列表中的一些亮点:
-
Clippy 是一个包含550多个lint的集合,用于捕获常见错误并改进Rust代码。我们添加了
crate_in_macro_def和unnecessary_find_maplint,并对empty_line_after_outer_attribute、expect_used/unwrap_used、extra_unused_lifetimes、needless_borrow、needless_lifetimes、unnecessary_to_owned和unnecessary_filter_map等lint进行了改进和错误修复。 -
HEVM 是一个具有符号执行能力的以太坊虚拟机实现。我们对HEVM的贡献包括简化其SMT求解器的使用、改进性能、修复内存泄漏以及添加测试。
-
Envoy 是一个高性能开源边缘和服务代理,使网络对应用程序透明。我们在Envoy中实现了统一头部验证(UHV)组件的初始版本,用于验证HTTP/1和HTTP/2的所有请求和响应头部。我们整合了现有的头部验证逻辑到UHV组件中,进行了评估以确定逻辑不完全符合RFC的地方,然后修复或实现了所有差距,确保默认配置严格遵循RFC标准。新组件为所有HTTP请求和响应验证提供了单一入口点,使其成为一个更易于维护、审计、扩展、自定义和修复任何新发现攻击向量的代码库。
-
pyca/cryptography 是一个为Python开发者提供加密配方和原语的包。我们改进了其对证书透明性的支持,并进行了许多可用性改进。
-
Vcpkg 是一个用于Windows、Linux和MacOS的C/C++包管理器。我们修复了Vcpkg本身的一个错误,并对flatbuffers、grpc、gtest、ixwebsocket、libcpplocate、llvm、mbedtls、tcb-span和z3等包进行了改进。
-
Warehouse 是PyPI的软件,PyPI是Python编程语言的官方包索引。我们进行了许多功能改进和错误修复,包括支持过期API令牌、支持使用OIDC的无凭证包上传、重构核心权限内部结构、增强PyPI的漏洞反馈以及改进面向用户的错误消息。
下面列出的项目代表了最高质量的软件。这种水平的软件不仅仅来自合并PR和发布新版本;它来自仔细的规划、优先处理功能、熟悉相关项目以及理解项目在更大软件生态系统中的作用。我们感谢这些项目的维护者,既为他们公开可见的工作,也为无数小时公众看不到的工作。
祝您2023年快乐、安全且同样高效!
Trail of Bits 2022年部分开源贡献
密码学
-
arkworks-rs/algebra
修复在域小于度数时密集多项式的评估 #521 -
pyca/cryptography
x509/CT:暴露更多SCT内部结构 #7207
CT:添加SignedCertificateTimestamp.extensions#7237
CT:extensions->extension_bytes#7238
X.509/证书:添加tbs_precertificate_bytes属性 #7279
x509:添加load_pem_x509_certificates#7878 -
pyca/pyopenssl
使X509StoreContextError的消息更友好 #1133 -
RustCrypto/formats
asn1/octet_string:添加OctetStringRef::decode_into#817
x509-cert:为SerialNumber添加Display实现 #820 -
str4d/rage
age/ssh:使ssh::Identity: Clone#329 -
veraison/go-cose
上传Trail of Bits公共安全评估报告 #94
技术基础设施
-
abodelot/jquery.json-viewer
修复JSON对象键显示 #26 -
aio-libs/aiohttp
修复Unicode错误(#7044) #7099 -
curl/curl
url:允许非HTTPS HSTS匹配用于调试构建 #9728 -
curl/curl-fuzzer
向curl_fuzzer添加额外的CURLOPT支持 #60 -
di/bump
pyproject.toml支持 #25 -
di/pip-api
pip_api:初始支持哈希需求 #126
parse_requirements:暴露需求是否可编辑 #131 -
GaloisInc/daedalus
避免数组未初始化时的未定义行为 #290 -
googleapis/google-auth-library-python
修复:确保JWT段具有正确的类型 #1162 -
Homebrew/homebrew-core
solc-select 0.2.1(新公式) #107977
crytic-compile 0.2.3(新公式) #108010
slither-analyzer 0.8.3(新公式) #108016
echidna 2.0.2(新公式) #108045
echidna 2.0.3 #110107
crytic-compile 0.2.4 #112418
slither-analyzer 0.9.0 #112423
solc-select 1.0.1 #112793
slither-analyzer 0.9.1 #114631
echidna 2.0.4 #116508 -
iovisor/ubpf
添加:CMake、CI、macOS/Windows支持、打包、scan-build #109 -
killercup/cargo-edit
向cargo-upgrade添加–preserve-precision标志 #613
使get_version返回字符串 #619
改进update_table_named_entry#620
重构(升级):跟踪原始清单数据 #621 -
llvm/llvm-project
[1b/3][ASan][compiler-rt] 用于注释对象内存的API dd1b7b7
[1a/3][ASan][compiler-rt] 用于双端容器的API 1c5ad6d -
microsoft/ebpf-for-windows
构建:添加CMake支持 #882 -
microsoft/vcpkg
[libcpplocate] 新端口 #23173
[tcb-span] 添加新端口 #23393
[llvm] 修复LLVM安装的‘utils’功能 #23399
[ixwebsocket] 更新至v11.3.3 #23548
[gtest] 移除-Werror #23780
[mbedtls] 更新至最新2.x LTS版本 #23787
[flatbuffers] 更新至2.0.6 #24208
[z3] 更新至4.8.15 #24209
[z3] 更新至4.8.16 #24407
[grpc] 修复路径引用 #24948
[mbedtls] 更新至v2.28.1 #25894
[z3] 更新至v4.9.1 #25911
[z3] 更新至v4.10.2 #25954
[grpc] 修复protobuf protoc可执行变量 #26199
[vcpkg] 修复跨编译macOS #26240
[z3] 更新至4.11.0 #26429 -
NixOS/nixpkgs
haskellPackages.clash-prelude:通过禁用测试修复构建 #178868
semgrep: 0.106.0 -> 0.108.0 #185771
echidna: 1.7.3 -> 2.0.2 #190144
echidna: 2.0.2 -> 2.0.3 #190775
libff: 默认动态 #190786
xed: 12.0.1 -> 2022.08.11 #191045
echidna: 2.0.3 -> 2.0.4 #202542
haskellPackages: 从ghc-9.2.x中移除不必要的覆盖 #202604
haskellPackages: 配置清理 #202615
haskellPackages: 配置通用清理 #203180
haskellPackages: 修复选定包 #203327
haskellPackages: 修复选定包 #203489 -
nodejs/node
添加用于Node.js依赖漏洞检查的脚本 #43362
添加使用API密钥到漏洞检查脚本的支持 #43909
更新漏洞检查脚本中的undiciCPE #44128
添加更新base64依赖的自动化 #45300
添加更新acorn依赖的自动化 #45357
添加更新libuv依赖的自动化 #45362
工具:在update-base64.sh脚本中添加缺失步骤 #45509
移除依赖漏洞检查器 #45675 -
osquery/osquery
修复PIE支持检查 #7234
改进Pidfile处理 #7304
防止审计事件系统使用过多内存 #7329
修复globToRegex截断UTF16字符 #7430
不对第三方库运行clang-tidy #7432
将事件计划查询结果的JSON更改为数组 #7434
在osquery_schedule中添加新指标并改进现有指标描述 #7438
修复Yara使用其自己的strutils函数时崩溃 #7439
bpf:改进套接字事件处理 #7446
更新cppcheck至版本2.6.3并跳过第三方代码分析 #7455
修复macOS CI运行器的子模块缓存 #7456
添加第三方库目标 #7467
启用Asan时添加BOOST_USE_ASAN定义 #7469
在Windows上启用模糊测试和Asan,在macOS上启用Asan #7470
修复M1上进程表中的user_time和system_time单位 #7473
修复看门狗未足够快地杀死不健康的工作器/扩展 #7474
修复关于无法识别特殊字符的一些警告 #7478
yum_sources:在表输出中包含镜像列表URL #7479
修复第三方库标志泄漏到osquery目标 #7480
用静态工厂方法替换WmiRequest构造函数 #7489
更改cpu_info测试以确保至少存在一个套接字 #7490
改进计划查询拒绝列表和调度程序关闭 #7492
修复test_http_server.py –persist选项 #7497
bpf:在错误情况下禁用BPF发布器 #7500
在osquery_schedule中将wall_time列标记为隐藏 #7501
添加一种机制以减少在Linux上保留的内存 #7502
修复由于分布式和配置插件交互导致的崩溃 #7504
libs:将OpenSSL从版本1.1.1l更新至1.1.1n #7506
在Windows上实现高性能用户和组缓存 #7516
移除libelfin和elf解析表 #7524
更新librpm至4.17.0 #7529
消除对“特殊”文件非阻塞标志的移除 #7530
修复以解除CI阻塞 #7533
删除shortcut_files表 #7547
libs:将zlib从v1.2.11更新至v1.2.12 #7548
libs:将libdpkg从版本v1.19.0.5更新至v1.21.7 #7549
防止ebpfpub链接系统zlib #7557
恢复一些发布检查 #7558
添加指定openssl存档路径的选项 #7559
防止通过配置设置CLI_FLAG #7561
更改macOS Info.plist生成位置 #7566
修复DebPackages.test_sanity测试 #7569
certificates表:添加Linux支持 #7570
CHANGELOG 5.2.3 #7571
修复Linux aarch64的发布测试 #7572
在deb_packages中使用additional而不是index用于admindir #7573
CHANGELOG 5.3.0 #7575
显式设置读取utmpx数据库的表的上下文 #7578
certificates:重构OpenSSL实用程序 #7581
警告在配置中设置CLI_FLAG #7583
移除test_daemon_sighup测试 #7584
在现代macOS上恢复macOSkernel_panics表 #7585
在表规范中将OS X替换为macOS#7587
修复Windows上的MBCS支持 #7593
从osquery.example.conf中移除CLI标志设置 #7595
更正描述用户和组服务标志的部分 #7596
修复shared_resources访问未初始化变量 #7600
移除冗余字符串转换 #7603
更新“新发布”问题模板 #7607
修复disk_encryption表中的UUID拼写错误 #7608
添加使用泄漏清理器构建的选项 #7609
修复SchedulerTests.test_scheduler_drift_accumulation的不稳定性 #7613
修复多个Yara泄漏 #7615
在所有需要它们的测试中初始化用户和组服务 #7620
运行测试时不捕获表或注册表异常 #7621
移除不必要的字符串复制 #7625
修复Windows上Unicode字符的系统信息支持 #7626
libs:将sqlite更新至版本3.38.5 #7628
libs:将OpenSSL更新至版本1.1.1o #7629
wmi_bios_info:为所有系统包含Win32_BIOS属性 #7631
将memory_devices表移植到Windows #7633
改进配置解析和osqueryfuzz-config性能 #7635
使用std::string_view实现拆分和修剪函数 #7636
deb_packages:不在包名中显示架构信息 #7638
修复降低权限时thrift服务器关闭 #7639
更新shared_resources表以添加类型名称,修复类型/最大允许处理 #7645
修复AWS证书验证在所有服务上失败 #7652
time:修复Windows local_timezone列值 #7656
将platform_info表移植到M1 Mac #7660
移除lldp_neighbors表 #7664
ci:将osquery-packaging提交更新至最新 #7667
cmake:添加启用或禁用使用ccache的选项 #7671
cmake:防止在其他平台上定义一些仅Linux目标 #7672
libs:将OpenSSL更新至版本1.1.1q #7674
添加关于第三方依赖安全的文档 #7684
tpm_info:重构,确保布尔值始终最新 #7686
将secureboot表移植到macOS #7692
修复解析没有列的ATC配置时崩溃 #7693
ci:更新并暂时禁用macOS Catalina测试作业 #7700
test:修复Mdfind.test_sanity的不稳定性 #7701
修复GetHomeDirectories文件系统函数中的错误 #7705
将最低macOS支持从10.12更新至10.14 #7707
在Windows的platform_info表中添加firmware_type列 #7710
修复Windowsmemory_devices表的GetMemorySize#7711
更正macOS版本支持检查以用于unified_log.mm #7713
改进osquery AWS逻辑 #7714
暂时禁用memory_devices集成测试 #7717
为memory_devices添加验证集成测试 #7722
将mdfind查询超时增加至30秒 #7725
platform_info:向macOS添加firmware_type#7727
libs:将libxml2更新至v2.9.14 #7729
libs:将sqlite更新至版本3.39.2 #7736
mdfind:减少表开销并支持快速中断 #7738
test:修复Windows上的platform-info.test_sanity #7742
secureboot:在Windows上获取必要的进程权限 #7743
ci:将作业从ubuntu-18.04迁移至ubuntu-20.04 #7745
修复泄漏并改进Windows上的用户和组API #7755
修复process_file_events订阅者错误初始化 #7759
docs:更正关于如何配置和使用Yara签名URL的描述 #7769
build:移除未使用的find_packages模块和子模块 #7771
misc:删除临时CTest文件 #7782
ci:添加作业和辅助脚本以定期扫描CVE #7787
processes:稳定macOS和Linux上的start_time列值 #7788
ci:更新我们设置github工作流步骤输出的方式 #7791
修复在数据库重置期间发生日志记录时的死锁 #7798
修复AWS HTTP请求期间某些错误的处理 #7811
ci:在macos上安装模块和测试时修复python版本 #781