你错过了!如果您不编写检测模块

payload

版主

payload Rep
0
0
0
Rep
0
payload Vouches
Vouches
0
8 MONTHS
8 8 MONTHS OF SERVICE
payload 获得
0
0
0
获得
0
payload 凭证
0
0
0
凭证
0
主题
16
点赞
0
HakB
8
在社区成长 8 月
LEVEL 50 100 XP
 
我们最近发布了一款名为napalm 的新工具,它是一个检测模块IDE。 Napalm 可以轻松设置多工具自定义探测器项目。凝固汽油弹还不止于此,它为喜欢编写自己的检测模块的安全研究人员提供了全面的生活质量升级。
帮助您开发检测模块的工具很棒,但我发现很多人还没有编写自己的检测模块。
这是不幸的,因为构建您自己的检测模块集不仅可以加快您的工作流程,还可能让您避免错过漏洞!
是时候跳进兔子洞并让自动化失效了!
img by W. Carter

自动化​

静态分析不一定有良好的声誉。
主要问题?误报!不幸的是,通常很难(通常是不可能)构建良好的通用检测器来发现所有问题而不同时发现许多误报。
误报: 静态分析工具报告的问题实际上不是有效问题。
例如,某个工具可能会报告一个实际上不可能被利用的重入漏洞。
对于安全研究人员来说,更糟糕的是公共静态分析师很少发现有趣的问题。毕竟,开发人员和其他研究人员可以使用相同的工具。每个人都已经发现并解决了有趣的问题,只留下虚假的警告。
因此,我经常听到安全研究人员将静态分析视为一种“永远不会取代它们”的技术。这是不幸的,因为静态分析是一个非常有用的工具。

自动化​

尽管如此,仍有不少安全研究人员最终发现自己正在构建静态分析器。
这些研究人员的共同点似乎是,他们会发现自己一遍又一遍地发现同样的问题。
一段时间后,他们达到了极限,发现自己厌倦了一次又一次地为同一个问题写报告。此时,他们通常会编写脚本来发现问题,并自动生成问题报告。
这就是静态分析的精髓!处理重复性工作,让您可以专注于有趣的漏洞!

扩大规模​

这组初始脚本通常使用正则表达式,是进行更复杂的静态分析的入门药物。
AST - 抽象语法树是源文件的类似树的表示。使用JavaScript 等编程语言,您可以编写简单的检测器来查找该树中的模式。与编写正则表达式(regEx) 相比,AST 的结构使识别模式变得更加容易。
中间表示- 静态分析器(例如滑行器)提供额外的升级。他们将原始的可靠性转化为定制的新编程语言。中间表示。该IR 设计简单、易于编写检测器且稳定。
数据控制流- 像slime 或secureify 这样的静态分析器通常可以轻松进行高级分析,这些分析考虑了数据如何流经程序以及可能的执行路径。诸如此类的高级分析使编写更精确的检测模块变得更加容易,从而发现更少的误报!
使用IR 控制/数据流分析等先进技术的静态分析开发人员通常会低估使用基于AST 的模式匹配等简单技术能够检测到的事物数量!

分享就是关爱​

编写检测模块来优化您自己的工作流程固然很棒,但如果您更进一步并分享您的检测模块,社区将会喜欢您!
凝固汽油弹让分享您的检测模块变得轻而易举!
要共享诗歌项目,您所需要做的就是设置一个pypi 帐户并在您的凝固汽油弹项目中运行诗歌发布!
查看本指南以获取更多信息!
当您在团队中工作时,自定义检测模块非常有用!
通常,每个团队都有不同的团队成员,每个人都建立了自己独特的技能。这就是为什么您通常需要多方关注同一审计的原因之一。不同的人更有可能发现不同的错误。
不幸的是,让整个团队接受审计在财务上并不高效。
检测模块使我们能够部分解决这个问题。每个团队成员都可以通过聚合自己的一组自定义检测模块,为每次审计单独贡献一些专业知识。与团队其他成员共享这些模块使他们能够(部分)为每次审计/安全审查贡献自己独特的经验。
您会发现许多高绩效的审核团队都有一组共享的检测模块。
Napalm 对于设置具有自定义检测模块的共享存储库非常有用。
现在就开始吧!

我们走吧!​

编写自己的检测模块是100% 值得的!
你会发现自己:
减少重复性工作
发现更多问题
与有鉴赏力的朋友(如果您决定分享您的模块)
我建议将semgrep 作为您第一个模块的起点,它很容易设置,并且很快就能提高您的工作效率!
一旦你有了几个检测模块,就可以建立一个凝固汽油弹项目并开始尝试滑行和一些更先进的检测技术。
 
顶部