关于DeepSecrets
DeepSecrets是一款能够理解代码语义的代码敏感信息扫描工具,在该工具的帮助下,广大研究人员将能够更有效地扫描和分析代码中的敏感信息。
社区中很多现有的代码分析工具其实并不能够真正地“理解”代码,而是直接解析代码文本。DeepSecrets通过语义分析、危险变量检测和更有效的熵分析扩展了传统的基于正则表达式的代码搜索方法。DeepSecrets提供的代码理解功能支持500多种编程语言和代码格式,并通过词法分析和解析(SAST工具中常用的技术)实现其功能。
除此之外,DeepSecrets还引入了一种搜索敏感数据的新方法,即使用已知敏感信息的哈希值并直接在代码中找到对应的数据。
工具安装
由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。接下来,广大研究人员可以直接使用pip工具从GitHub下载最新版本的DeepSecrets源码:
$ pip install git+https://github.com/avito-tech/deepsecrets.git
或者直接从Pypi下载和安装DeepSecrets:
$ pip install deepsecrets
工具使用
执行扫描
下列命令即可直接对目标代码执行敏感数据扫描与分析:
$ deepsecrets --target-dir /path/to/your/code --outfile report.json
上述命令将会使用工具默认配置并针对“/path/to/your/code”路径下的代码执行敏感数据扫描,其中:
1、正则表达式检测使用的是工具内置的规则集;
2、语义检查负责执行变量检测和熵检查;
扫描生成的报告将存储到report.json文件中。
配置微调
运行下列命令即可查看工具帮助信息:
deepsecrets --help
我们还可以通过使用“--regex-rules”选项来指定使用自己的规则集,或使用“--excluded-paths”选项来排除不需要扫描的代码路径。
规则集构建
正则表达式
为正则表达式检测提供的内置规则集路径为“/deepsecrets/rules/regexes.json”,广大研究人员可以按照原有数据格式自行修改或创建自定义规则集。
敏感数据哈希
为正则表达式检测提供的规则集样例路径为“/deepsecrets/rules/regexes.json”,广大研究人员可以按照原有数据格式自行修改或创建自定义规则集。
许可证协议
本项目的开发与发布遵循MIT开源许可证协议。
项目地址
DeepSecrets:【GitHub传送门】
参考资料
Modernizing Secrets Scanning: Part 1–the Problem | HackerNoon