graudit 是一个简单的脚本和签名集,允许您使用 GNU 工具 grep 查找源代码中的潜在安全漏洞。它与其他静态分析应用程序(如 RATS、SWAAT 和 flaw-finder)相当,同时将技术要求降到最低,并且非常灵活。
可以以普通用户或全局 root 身份安装,只需使用 userinstall 或 install 参数运行 make 即可。不过,建议通过克隆 git 仓库直接使用 graudit,因为它包含发行版文件中未包含的额外数据库规则。这还使您能够在新版本发布之间获取更新。为此,请运行以下命令:
git clone https://github.com/wireghoul/graudit
然后,您可以将 graudit 添加到您的 PATH 中,使用适合您 shell 的适当值:
echo 'PATH="$HOME/graudit:${PATH:+:${PATH}}"; export PATH;' >> ~/.bashrc
如果 graudit 不在您的主目录中,您可能希望在 .bashrc 文件中将 GRDIR 环境变量设置为签名目录。
export GRDIR=/path/to/graudit/signatures
graudit 支持多个选项,并遵循良好的 shell 实践。有关选项列表,您可以运行 graudit -h 或查看下方。使用 graudit 最简单的方法是:
graudit [opts] /path/to/scan
OPTIONS
-d <dbname> 要使用的数据库或 /path/to/file.db(如果未指定则使用默认值)
-A 扫描不需要的和难以处理的(ALL)文件
-x 排除这些文件(逗号分隔列表:-x *.js,*.sql)
-i 不区分大小写扫描
-c <num> 匹配前后显示的上下文行数,默认为 1
-B 禁止显示横幅
-L Vim 友好的行号
-b 色盲友好模板
-z 取消颜色
-Z 高对比度颜色
-l 列出可用数据库
-v 打印版本号
-h 打印此帮助屏幕
您可以通过 GRARGS 环境变量设置默认命令行选项。这可能会影响在脚本中使用 graudit,因此建议仅将 B、L、b、z 和 Z 选项用于此目的。
echo 'GRARGS="-b -L"; export GRARGS' >> ~/.bashrc
graudit 使用扩展正则表达式(POSIX)作为其签名,并附带多个现成可用的数据库。如果您需要额外的签名,可以扩展现有数据库或创建自己的数据库。
数据库可以从多个位置加载,优先级顺序如下:
GRDIR 环境变量指定的自定义位置使用 -l 开关可以按优先级顺序列出数据库文件:
graudit -l
包含以下数据库:
教程/介绍视频可在此处找到:https://youtu.be/b8Xbzer1n94
如果您想为 graudit 做出贡献,请 fork https://github.com/wireghoul/graudit 上的仓库并使用它。特别欢迎语言规则、附加脚本和文档贡献。如果您喜欢 graudit,请说声谢谢并分享它。
如果您想与我联系,请在 github 或 twitter 上给我留言: @wireghoul