Trail of Bits 2022年开源贡献亮点:安全工具与区块链技术深度解析

Trail of Bits在2022年向超过400个外部开源项目提交了合并请求,涵盖加密工具、区块链软件、基础设施及测试工具等多个技术领域,展示了其在代码审计、性能优化和安全增强方面的专业贡献。

Trail of Bits 2022年开源贡献回顾

去年此时,我们撰文介绍了2021年Trail of Bits提交的190多个合并到非Trail of Bits存储库的拉取请求(PR)。2022年,我们延续了这一趋势,有超过400个PR被合并到非Trail of Bits存储库中!

这为何重要?虽然我们对自己开发的工具深感自豪,但我们认识到我们也受益于Trail of Bits外部维护的工具。当某个工具未按预期工作时,我们尝试修复它;当某个工具未能满足其预期需求时,我们尝试改进它。简而言之,我们努力回馈给予我们如此之多的社区。

以下是博客末尾PR列表中的一些亮点:

加密工具

Clippy 是一个包含550多个lint的集合,用于捕获常见错误并改进Rust代码。我们添加了crate_in_macro_defunnecessary_find_map lint,并对empty_line_after_outer_attributeexpect_used/unwrap_usedextra_unused_lifetimesneedless_borrowneedless_lifetimesunnecessary_to_ownedunnecessary_filter_map等lint进行了改进和错误修复。

HEVM 是一个具有符号执行功能的以太坊虚拟机实现。我们对HEVM的贡献包括简化其SMT求解器的使用、提高性能、修复内存泄漏以及添加测试。

Envoy 是一个高性能开源边缘和服务代理,使网络对应用程序透明。我们在Envoy中实现了统一头部验证(UHV)组件的初始版本,用于验证HTTP/1和HTTP/2的所有请求和响应头部。我们整合了现有的头部验证逻辑,执行评估以确定逻辑不完全符合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/Certificate: 添加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
    • [z3] 更新至4.9.1 #25911
    • [z3] 更新至4.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
    • 更新漏洞检查脚本中的undici CPE #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
    • 库: 将OpenSSL从版本1.1.1l更新至1.1.1n #7506
    • 在Windows上实现高性能用户和组缓存 #7516
    • 移除libelfin和elf解析表 #7524
    • 将librpm更新至4.17.0 #7529
    • 消除对“特殊”文件非阻塞标志的移除 #7530
    • 修复以解除CI阻塞 #7533
    • 移除shortcut_files表 #7547
    • 库: 将zlib从v1.2.11更新至v1.2.12 #7548
    • 库: 将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上恢复macOS kernel_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字符的system-info支持 #7626
    • 库: 将sqlite更新至版本3.38.5 #7628
    • 库: 将OpenSSL更新至版本1.1.1o #7629
    • wmi_bios_info: 为所有系统包含Win32_BIOS属性 #7631
    • memory_devices表移植到Windows #7633
    • 改进配置解析和osqueryfuzz-config性能 #7635
    • 实现使用std::string_view的分割和修剪函数 #7636
    • deb_packages: 不在包名中显示arch信息 #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
    • 库: 将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
    • 修复Windows memory_devices表的GetMemorySize #7711
    • 更正unified_log.mm的macOS版本支持检查 #7713
    • 改进osquery AWS逻辑 #7714
    • 暂时禁用memory_devices集成测试 #7717
    • 为memory_devices添加验证集成测试 #7722
    • 将mdfind查询超时增加至30秒 #7725
    • platform_info: 为macOS添加firmware_type #7727
    • 库: 将libxml2更新至v2.9.14 #7729
    • 库: 将sqlite更新至版本3.39.2 #7736
    • mdfind: 减少表开销并支持快速中断 #7738
    • test: 修复Windows上的platform-info.test_sanity #7742
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计