3作者: michaelafam1大约 2 个月前原帖
我们最初的目标是解决我们自己项目中由传统安全扫描器引起的复杂调试问题和无用警报。静态分析(SAST)因为无法验证运行时上下文而产生了过多的噪音,而动态分析(DAST)则因将应用程序视为黑箱而错过了内部逻辑错误。 我们构建了一个命令行工具,通过红队方法的灰盒测试来弥补这一差距。我们利用对代码库的内部知识来指导并行执行,从而发现标准的代码检查工具/扫描器所遗漏的复杂或隐藏的逻辑错误和攻击路径。 技术(灰盒图形与执行): - 内部图形(地图):它分析代码库以构建内部逻辑的依赖图。 - 并行执行(测试):代码在并行引擎上进行测试。我们启动您本地开发环境的副本,以千种方式测试代码库。这是验证漏洞真实存在的依据。 - 逻辑错误检测:因为它理解预期架构(图)并观察实际行为(执行),我们可以标记逻辑错误(例如:竞争条件、状态不一致、内存泄漏等)。 - 污染流映射:我们在依赖图上映射污染的控制流。这准确地突出外部输入如何穿过您的逻辑以触发漏洞。然后,它启动一个本地实例来重放这一流程并确认漏洞。 运行方式:它通过命令行在本地运行,以维护与安全代码库的隐私和便利。生成的修复建议通过MD报告指出错误行及其下游影响。 权衡:这种方法在速度和深度测试之间进行了权衡。推荐在更复杂的系统中使用该测试引擎。 试用:我们目前正在为早期用户开放我们的beta版本VS扩展。 优化支持(Rust、C++、Go、Java)和基础设施即代码(Terraform、Docker、K8s)。同时支持Python、TS/JS、C#、PHP以及其他20多种语言。 附言:我们很乐意在代码库上自行运行这一工具。如果您维护一个复杂项目并希望查看我们的引擎是否能发现逻辑或安全漏洞,请留下链接或通过评论/网站与我们联系,我们将进行测试并发送结果。