graudit 是一个简单的脚本和签名集,允许你使用 GNU 工具 grep 在源代码中查找潜在的安全漏洞。它与其他静态分析应用程序(如 RATS、SWAAT 和 flaw-finder)类似,同时将技术要求保持在最低限度,并且非常灵活。
安装可以以用户身份或全局以 root 身份进行,只需使用 userinstall 或 install 参数运行 make。但是,建议通过克隆 git 仓库直接使用 graudit,因为它包含发行版文件中未包含的额外数据库规则。这还能让你在版本发布之间获取更新。为此,请运行以下命令:
git clone https://github.com/wireghoul/graudit
然后你可以将 graudit 添加到你的路径中,使用适合你首选 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> database to use or /path/to/file.db (uses default if not specified)
-A scan unwanted and difficult (ALL) files
-x exclude these files (comma separated list: -x *.js,*.sql)
-i case in-sensitive scan
-c <num> number of lines of context to display before and after a match, default is 1
-B suppress banner
-L vim friendly lines
-b colour blind friendly template
-z suppress colors
-Z high contrast colors
-l lists databases available
-v prints version number
-h prints this help screen
你可以通过 GRARGS 环境变量设置默认命令行选项。这可能会影响 graudit 在脚本中的使用,因此仅建议为此目的使用 B、L、b、z 和 Z 选项。
echo 'GRARGS="-b -L"; export GRARGS' >> ~/.bashrc
graudit 使用扩展正则表达式(POSIX)作为其签名,并附带多个可直接使用的数据库。如果你需要额外的签名,可以扩展现有数据库或创建自己的数据库。
数据库可以从多个位置加载,优先级顺序如下:
使用 -l 开关会按优先级顺序显示数据库文件列表:
graudit -l
包含以下数据库:
教程/介绍视频可在以下地址找到:https://youtu.be/b8Xbzer1n94
如果你想为 graudit 做出贡献,请在 https://github.com/wireghoul/graudit fork 该仓库并使用它。特别欢迎语言规则、额外脚本和文档方面的贡献。 如果你喜欢 graudit,请表示感谢并分享给他人。
如果你想与我联系,请在 github 上给我留言 @wireghoul。