无边界安全检查:Checksec Anywhere 全面解析

Checksec Anywhere是一款创新的浏览器端二进制安全分析工具,支持ELF、PE和Mach-O多格式分析,采用Rust核心和WebAssembly技术,在本地完成安全检查并生成可分享报告,无需安装且保护用户隐私。

无边界构建Checksec:Checksec Anywhere

自2009年首次发布以来,checksec已在软件安全社区广泛使用,在CTF挑战、安全态势评估和常规二进制分析中证明其价值。该工具检查可执行文件以确定启用了哪些漏洞利用缓解措施(如ASLR、DEP、栈保护等),快速评估程序的防御加固程度。这一成功催生了众多衍生工具:现代的Go实现、Trail of Bits的PE二进制文件Winchecksec,以及针对苹果Mach-O二进制格式的各种脚本。然而,这创建了一个笨重的生态系统,安全专业人员必须同时使用多个工具,每个工具都有不同的接口、依赖项和功能集。

在我于Trail of Bits暑期实习期间,我构建了Checksec Anywhere,将这个分散的生态系统整合到一个一致且易用的平台中。Checksec Anywhere将ELF、PE和Mach-O分析直接带到您的浏览器中。它完全在本地运行:无需账户、无需上传、无需下载。它速度快(几秒钟内分析数千个二进制文件)且私密,并允许您通过简单URL分享结果。

使用Checksec Anywhere

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

图1:将746个文件从/usr/bin上传到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管道和其他安全工具集成。这些报告也完全在您的本地机器上生成。
  • 简单批处理:拖放整个目录以进行简单的批量分析。
  • 标签式界面:通过直观的UI同时管理多个分析。

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

技术架构

Checksec Anywhere利用现代Web技术在浏览器中提供原生工具性能:

  • Rust核心:Checksec Anywhere建立在checksec.rs基础上,使用成熟的crate,如Goblin用于二进制解析,iced_x86用于反汇编。
  • WebAssembly桥接:Rust代码使用wasm-pack编译为Wasm,通过干净的JavaScript API暴露低级功能。
  • 可扩展设计:按格式处理架构允许轻松添加新的二进制类型和安全检查。
  • 高级分析:Checksec Anywhere执行反汇编以实现更深入的内省(如检测PE二进制文件中的栈保护)。

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

未来工作

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

附加格式

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

附加安全属性

Checksec Anywhere旨在随着研究人员发现新的攻击方法而添加新检查。例如,最近的研究揭示了编译器优化违反恒定时间执行保证的多种机制,引发了编译器社区内的重大讨论(例如,参见此LLVM讨论线程)。随着这些问题得到解决,恒定时间安全检查可以集成到Checksec Anywhere中,提供关于给定二进制文件是否抵抗定时攻击的即时反馈。

立即尝试

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

我要特别感谢我的导师William Woodruff和Bradley Swain在我于Trail of Bits暑期实习期间的指导和支持!

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