关于Raven
Raven是一款功能强大的CI/CD安全分析工具,该工具旨在帮助广大研究人员对GitHub Actions CI工作流执行大规模安全扫描,并将发现的数据解析并存储到Neo4j数据库中。
Raven,全称为Risk Analysis and Vulnerability Enumeration for CI/CD,即针对CI/CD的风险分析和漏洞枚举工具,该工具目前由Cycode研究团队开发和维护。
通过Raven,我们能够轻松识别和报告GitHub上托管的一些热门代码库中的安全漏洞,这些项目包括:
工具特性
该工具提供了下列功能来扫描和分析潜在的CI/CD安全漏洞:
使用场景
工具架构
工具要求
工具安装&配置
安装Raven包
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3环境。
接下来,安装Raven包:
pip3 install raven-cycode
安装一个本地Redis服务器和Neo4j数据库:
docker run -d --name raven-neo4j -p7474:7474 -p7687:7687 --env NEO4J_AUTH=neo4j/123456789 --volume raven-neo4j:/data neo4j:5.12 docker run -d --name raven-redis -p6379:6379 --volume raven-redis:/data redis:7.2.1
除此之外,我们还可以使用下列命令安装Raven:
git clone https://github.com/CycodeLabs/raven.git cd raven make setup
运行Raven下载器
账号模式:
raven download account --token $GITHUB_TOKEN --account-name RavenDemo
爬取模式:
raven download crawl --token $GITHUB_TOKEN --min-stars 1000
运行Raven索引器
raven index
通过报告器审计扫描结果
raven report --format raw
数据库数据查看
http://localhost:7474/browser/
工具使用样例
获取与任何账号(用户/组织)相关的全部工作流和活动:
raven download account --token $GITHUB_TOKEN --account-name microsoft --account-name google --debug
爬取所有公开可访问的GitHub代码库:
raven download crawl --token $GITHUB_TOKEN --min-stars 100 --max-stars 1000 --debug
下列命令可以在下载完成或扫描中断时,将所有的工作流和活动索引到Neo4j数据库中:
raven index --debug
下列命令可以使用查询库生成一个报告:
raven report --severity high --tag injection --tag unauthenticated
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可证协议。
项目地址
Raven:【GitHub传送门】