
RAVEN (リスク分析とCI/CDの脆弱性列挙: Risk Analysis and Vulnerability Enumeration for CI/CD) は、GitHub Actions CI ワークフローに対して大規模スキャンを実行し、発見されたデータを Neo4j データベースに取り込むために設計された強力なセキュリティツールです。Cycode 研究チームによって開発・保守されています。
Raven を使用することで、GitHub 上でホストされている最も人気のあるリポジトリのいくつかにおいてセキュリティ脆弱性を特定し報告することができました。その中には以下が含まれます:
Raven を使用して発見されたすべての脆弱性は、ツールの Hall of Fame にリストされています。
このツールは、潜在的な CI/CD 脆弱性をスキャンおよび分析するために以下の機能を提供します:
Raven の可能な使用法:
このツールは、CI/CD セキュリティ分析のための信頼性が高くスケーラブルなソリューションを提供し、ユーザーが不適切な設定をクエリし、コードベースのセキュリティ態勢に関する貴重な洞察を得ることを可能にします。
昨年、Cycode Labs は CI/CD システムの基本的なセキュリティ問題について広範な研究を実施しました。多くのシステム、数千のプロジェクト、およびいくつかの設定を詳細に調査しました。結論は明らかです – セキュリティを開発者に委ねるモデルは失敗しています。これは、以前のコンテンツで何度も実証されています:
上記の脆弱性にはそれぞれ独自の特徴があり、開発者が最新のセキュリティ動向に追従することはほぼ不可能です。残念ながら、各脆弱性には共通点があります – それぞれの悪用が何百万もの被害者に影響を及ぼす可能性があることです。
これらの理由から、Raven は作成されました。これは CI/CD セキュリティ分析ワークフロー(および最初のユースケースとして GitHub Actions)のためのフレームワークです。私たちの焦点では、各問題が単独では脅威にならないが、組み合わさると深刻な脅威となる複雑なシナリオを調査しました。
Raven を使い始めるには、以下のインストール手順に従ってください:
ステップ 1: Raven パッケージをインストールします```bash pip3 install raven-cycode
**Step 2**: ローカルのRedisサーバーとNeo4jデータベースをセットアップする```bash
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
環境をセットアップする別の方法は、提供されたdocker composeファイルを実行することです。```bash git clone https://github.com/CycodeLabs/raven.git cd raven make setup
**ステップ 3**: Raven Downloader を実行する
アカウントモード:```bash
raven download account --token $GITHUB_TOKEN --account-name RavenDemo
クロールモード:```bash raven download crawl --token $GITHUB_TOKEN --min-stars 1000
**ステップ 4**: Raven Indexer を実行する```bash
raven index
ステップ5: レポーターで結果を確認する```bash raven report --format raw
この時点で、http://localhost:7474/browser/ に接続して Neo4j データベース内のデータを確認できます。
### 前提条件
- Python 3.9+
- Docker Compose v2.1.0+
- Docker Engine v1.13.0+
## インフラストラクチャ
Raven は 2 つの主要な Docker コンテナ (Redis と Neo4j) を使用しています。
`make setup` は `docker compose` コマンドを実行して環境を準備します。