打破边界:Checksec Anywhere 让二进制安全分析触手可及

本文介绍了Trail of Bits公司推出的Checksec Anywhere工具,它整合了针对ELF、PE和Mach-O等多种二进制格式的安全分析功能,并完全在浏览器本地运行,注重隐私与性能。文章详细阐述了其技术架构、核心特性以及未来发展方向。

使用 Checksec Anywhere

要使用 Checksec Anywhere,只需将文件或文件夹直接拖放到浏览器中。结果会即时显示,并以颜色编码的消息反映发现的严重程度。所有处理都在您浏览器的本地进行;数据在任何时候都不会发送给 Trail of Bits 或其他任何人。

图 1:将 /usr/bin 中的 746 个文件上传到 Checksec Anywhere

Checksec Anywhere 的主要特性

多格式分析

Checksec Anywhere 通过单一界面,对 ELF、PE 和 Mach-O 格式执行全面的二进制分析,提供针对每个平台独特安全机制的专门分析。这包括针对 ELF 二进制文件的传统检查(如栈金丝雀和 PIE),针对 PE 文件的 GS Cookie 和控制流防护,以及针对 Mach-O 可执行文件的 ARC 和代码签名。对于熟悉传统 checksec 系列工具的用户,Checksec Anywhere 的报告保持了与先前报告命名的一致性。

隐私至上

与许多仅提供服务器端处理 Web 界面的浏览器可访问工具不同,Checksec Anywhere 通过在浏览器中直接执行所有分析,确保您的二进制文件永远不会离开您的机器。报告生成也在本地进行,可共享的链接不会泄露二进制内容。

性能设计

从浏览器上传到生成完整的安全报告,Checksec Anywhere 旨在快速处理多个文件。由于 Checksec Anywhere 在本地运行,确切的性能取决于您的机器……但它的速度很快。在现代 MacBook Pro 上,它可以在几秒钟内分析数千个文件。

增强的可访问性

Checksec Anywhere 通过提供完全基于浏览器的界面和旨在提供可访问性的功能,消除了安装障碍:

  • 可共享的结果:为任何报告视图生成静态 URL,支持安全的协作而无需暴露二进制文件。
  • SARIF 导出:生成 SARIF 格式的报告,以便与 CI/CD 管道和其他安全工具集成。这些报告也完全在您的本地机器上生成。
  • 简单的批处理:拖放整个目录以进行简单的批量分析。
  • 标签式界面:通过直观的用户界面同时管理多个分析。

图 2:用于管理多个分析的标签式界面

技术架构

Checksec Anywhere 利用现代网络技术,在浏览器中提供原生工具般的性能:

  • Rust 核心:Checksec Anywhere 基于 checksec.rs 构建,使用成熟的 Rust 库(如用于二进制解析的 Goblin 和用于反汇编的 iced_x86)。
  • WebAssembly 桥接:Rust 代码使用 wasm-pack 编译成 Wasm,通过简洁的 JavaScript API 暴露底层功能。
  • 可扩展设计:针对每种格式的独立处理架构,便于添加新的二进制类型和安全检查。
  • 高级分析:Checksec Anywhere 执行反汇编以实现更深入的检查(例如检测 PE 二进制文件中的栈保护)。

查看开源代码库以进一步深入了解其架构。

未来工作

凭借已建立的跨平台二进制分析和报告基础架构,我们可以轻松添加新功能和扩展。如果您有拉取请求(pull requests),我们很乐意审查并合并。

其他格式

当前一个主要的盲点是缺乏对移动二进制格式(如 Android APK 和 iOS IPA)的支持。为这些格式添加分析将有助于应对不断扩大的移动威胁环境。同样,对固件二进制文件和引导加载程序的专门处理,将把覆盖范围扩展到移动和嵌入式设备中的关键系统级组件。

其他安全属性

Checksec Anywhere 的设计目标是能够随着研究人员发现新的攻击方法而添加新的检查。例如,最近的研究发现了多种编译器优化违反恒定时间执行保证的机制,引发了编译器社区内的广泛讨论。随着这些问题得到解决,恒定时间安全检查可以被集成到 Checksec Anywhere 中,从而立即反馈给定的二进制文件是否能抵抗时序攻击。

试试看吧

Checksec Anywhere 消除了管理特定格式安全分析工具的开销,同时提供了对全面二进制安全报告的即时访问。无需安装,无需依赖,在隐私或性能上毫不妥协。请访问 checksec-anywhere.com 立即尝试!

在此,我要特别感谢我的导师 William Woodruff 和 Bradley Swain 在我于 Trail of Bits 实习期间给予的指导和帮助!

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