dawn 是一款源代码扫描器,旨在检查您的 Web 应用是否存在安全问题。
该工具能够扫描用 Ruby 编写的 Web 应用,并默认支持所有主流 MVC(模型 - 视图 - 控制器)框架:
dawn 2.0 版本的知识库中包含了 680 多项安全检查,这些检查每周会根据 NIST 的国家漏洞数据库进行更新。
当您在代码上运行 dawn 时,它会解析您的项目 Gemfile.lock 文件,查找所使用的 gem,并尝试检测您正在使用的 Ruby 解释器版本,或者您在偏好的 Ruby 版本管理工具(RVM、rbenv 等)中声明的版本。
然后,该工具会尝试检测您的 Web 应用所使用的 MVC 框架,并据此应用安全检查。有些检查专门针对 Rails 应用,而另一些则适用于任何 Ruby 代码。
dawn 还能理解您视图中的代码,并回溯风险点(sinks),以发现由您实际编写的代码引入的跨站脚本(XSS)和 SQL 注入问题。(在项目路线图中,这部分代码将是未来开发工作的重点。)
dawn 的安全扫描结果会列出漏洞以及一些缓解措施,供您遵循,以构建更强大的 Web 应用。
您可以通过 Rubygems 获取并安装最新版本的 dawn,只需输入:
$ gem install dawnscanner
之后,您需要从 Github 下载知识库,并将压缩包解压到 $HOME/dawnscanner/kb 目录。
典型的 kb 目录结构如下:
$ ll ~/dawnscanner/kb
total 56K
drwxr-xr-x 2 thesp0nge users 28K 29 mar 18.27 bulletin
drwxr-xr-x 2 thesp0nge users 72 7 lug 2021 generic_check
-rw-r--r-- 1 thesp0nge users 65 29 mar 17.06 kb.yaml
-rw-r--r-- 1 thesp0nge users 74 29 mar 17.06 kb.yaml.sig
drwxr-xr-x 2 thesp0nge users 4,0K 7 lug 2021 owasp_ror_cheatsheet
知识库的结构如下:
从 2.0 版本开始,该工具使用子命令来启动特定任务,每个子命令都有独立的帮助信息。
scan 子命令指示 dawn 扫描指定的目标以查找安全问题。
$ dawn scan target
目前,结果仅以文本格式提供,并存储在扫描时间戳命名的目录下,路径为 $HOME/dawnscanner/results/target,其中 target 是被分析应用的名称。
可以使用 kb 子命令查询知识库。
dawn kb find # 在知识库中搜索指定的漏洞
dawn kb help [COMMAND] # 描述子命令或某个特定子命令
dawn kb lint # 检查知识库内容的正确性
dawn kb list gem_name[gem_version] # 列出影响作为参数传入的 gem 的所有安全问题(版本字符串可选)。
dawn kb status # 检查知识库的状态
dawn kb unpack # 将安全检查解压到 KB 库路径中
Twitter 账号:@dawnscanner GitHub 仓库:https://github.com/thesp0nge/dawnscanner
反馈非常宝贵,我们非常乐意听到您的声音。
如果您是 dawn 的忠实用户,觉得它很有用,已将其集成到发布流程中,并且愿意公开支持该项目,您可以将您的信息放在这里。只需打开一个新的 issue,说明您对该工具的感受以及您的公司标志(如有)。
谢谢。
saten:第一个提交 issue 指出 README 中的拼写错误。
presidentbeef:感谢他出色的工作启发我创建了 dawn,并帮忙复核对比矩阵。issue #2 是属于您的 :)
marinerJB:贡献了各种错误报告和进一步的想法。
Matteo:提供了关于 API 及其在 github.com hooks 中使用的想法。
Copyright (c) 2013-2023 Paolo Perego [email protected]
MIT 许可证
特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,无限制地处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售该软件副本的权利,并允许获得该软件的人这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
本软件按“原样”提供,不作任何明示或默示的保证,包括但不限于对适销性、特定用途的适用性和非侵权的保证。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易而引起的任何索赔、损害赔偿或其他责任(无论是合同、侵权还是其他行为)承担责任。