SkillAgentSearch skills...

Raven

CI/CD Security Analyzer

Install / Use

/learn @CycodeLabs/Raven
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<a href="https://cycode.com/cygives/" alt="Raven is part of Cygives, the community hub for free & open developer security tools."/> <picture> <source media="(prefers-color-scheme: dark)" srcset="./assets/images/Cygives-darkmode.svg"> <source media="(prefers-color-scheme: light)" srcset="./assets/images/Cygives-lightmode.svg"> <img alt="Cygives Banner" src="./assets/images/Cygives-lightmode.svg"> </picture> </a> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/CycodeLabs/raven/main/assets/images/raven-dark-mode.png"> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/CycodeLabs/raven/main/assets/images/raven-light-mode.png"> <img alt="Raven" src="https://raw.githubusercontent.com/CycodeLabs/raven/main/assets/images/raven-light-mode.png"> </picture>

License GitHub release (latest by date) <img src="https://img.shields.io/badge/CI/MON%20-none.svg?color=5D65B1&url=https://cimon.build&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2My45OCA2My45NyI+PHBhdGggZD0iTTU5LjM5IDMyLjY4Yy0uNS0uNjUtMi4wMi00LjMzLTIuOTctNy4wNSA5LjQtOC43OC43MS0yMi42Mi05LjMxLTE1LjcxQzQzIDcuNDggMzYuNTYgNC45MSAyOC4xOSA1LjQ4YzEuNDQtMS44MiAyLjk5LTMuNyA0LjQ5LTUuNDgtNi45Mi40Ny0xNS4wNiA2LjMzLTE2LjM1IDcuOTVDNS4xNyAxLjEtNC40NSAxNS41NSA1LjY3IDI1LjVjLTExLjUyIDE3LjMxLTIuMTYgMjQuMDUtLjY0IDI1LjcyLS4wMy0uOTQtLjA3LTEuNDgtLjA5LTIuNjIgMy4xNCA0LjI0IDcuNjIgNi45NiA3Ljg0IDcuMDktLjA2LjMtNy41My03Ljg5LTkuMjYtMTIuMjJ2NC4xQzEuMzggNDQuODItMSAzNi4zOCA3LjQ3IDI1LjQxLTEuMyAxOC4zNCAzLjI2IDEuNzMgMTYuNTUgOS43Yy42MS0uNTcgNC45OS01LjM0IDEyLjUyLTcuNTctMi4yNiAyLjc5LTIuNjggMy4zMy0zLjk3IDUuMDYgMi4yMS0uMjggNC41Mi0uNDkgNi43NC0uMzggMi45IDEuOTUgOC4zOCA0Ljg4IDkuNTEgMTMuNzIgMCAwIDIuNjMtNS42LS4wNi0xMS44NCAyLjAzLjc1IDMuOTkgMS43MSA1LjgyIDIuODdDNTguNDUgNCA2Mi42NSAxOSA1NC44IDI1LjI4Yy42MyAxLjg3IDIuNiA3LjIyIDMuNTYgOC4zNi40MS4zNSA1Ljc2IDQuMzQgMy45NSAxMC4yNy0uNS0yLjY0LTQuMTEtNS41OC00LjExLTUuNTggMy4zOSA2LjYyIDEuMyAxMC43OC0xLjUzIDE0LjYxIDAgMCAzLjUxLTEuOTcgNC41Ny03LjE3LjUxLjgzLjEzIDIuODMuMTMgMi44MyA1LjA4LTUuOSAxLjc3LTEzLjUtMi0xNS45MnYuMDJaIiBzdHlsZT0iZmlsbDojZmZmO3N0cm9rZS13aWR0aDowIi8+PHBhdGggZD0iTTUzLjcgMTYuOTJjLjMzLjYuNDggMS4yMy41IDEuODQgMi4xNC0yLjk4LS40My04LjI4LTQuMDItNC4zMyAxLjI4LS4wNCAyLjc4IDEuMTcgMy41MSAyLjQ5Wm0tMzkuNTYtMy43NWMuMDcuMDIuMTQuMDQuMjEuMDctNC4xNi03LjQ2LTExLjg5IDQuOTItNC43NiA3LjA0LTIuMDQtMi45OCAxLjAyLTguMTYgNC41NS03LjExWm00Mi40NiAzMC45Yy40MS4yNCAxLjU2IDEuMTggMS42IDMuOTUgMS4yOC00LjE2LTEuNTMtOS4xMi0xLjcxLTExLjIyIDIuMjkgMCA0LjUxIDIuMzEgNC45NCAzLjA0LTEuNTctNS42OS03LjU0LTUuNjEtNy41NC01LjYxczIuMDItLjQgMi4yNS0uODhjLTIuODktMy43OC0yLjA1LTkuNzMtNS44NC0xMS4xNy0xLjQ1IDAtNS40NiA5Ljg0LTguODcgOS44NC0xMC4wMS0xLjY3LTcuOTEtOS43MS0xOS42OS05LjM5LTUuMyAxLjUzLTYuMDkgNy41OC02LjA0IDEyLjIxIDIuNTMtLjU3IDQuMTMuMjQgNC4xMy4yNC03LjMzLjc5LTEwLjExIDQuOTgtMTAgNi43MS44Ny0uODEgMy45My0xLjY5IDUuNDctMi4wNC02Ljk5IDYuMDctMi43MiAxMi40Ni0uNSAxNC41Ny0xLjI1LTUuNS4xLTguMDMuMS04LjAzLS45OSAxNS42NCA0Ny42MyAxNi4xIDQxLjcxLTIuMjJaTTIxLjIzIDMzLjYzYy0uMTUtNi43NSA4Ljk2LTcuNDYgNy41Ny0uMTcgMCAwIDQuNjEtLjY1IDYuMzkuMzUtMi4zLTEuNTMtMTMuOSA0Ljk5LTEzLjk2LS4xOFpNNDYuMTYgNDguMWMtLjI5LjIzLS41OC40NC0uODkuNjQuMSAxLjMzLS4xMiAzLjE1LTEuODcgMy4xMi0yLjUzIDAtNS40OC42MS00LjkzLTMuMDgtLjMtLjItLjU4LS40Mi0uODUtLjY2LTEuOTguNjEtMy44OS41OS00LjY2LTEuMTIgMS44OCAyLjEzIDYuMDgtLjczIDguNDgtMi4yOGwuMDItMi43MmMtMi43LTIuOTEtMTAuMTctNi4yMS45Ni02Ljc2IDkuNjQuNDIgMi42NCAzLjk1LjYgNi43NEw0MyA0NC42NWMxLjU2IDEuNzEgMy45IDQuMDQgNS45OSAxLjY3LS43NCAxLjQ5LTEuNzUgMS45Mi0yLjgzIDEuNzhabTIuNzItMTMuMDVjLTMuMzYtMS41Ni01LjM1LTEuMTctNS4zNS0xLjE3IDEuMjktMSAzLjkzLS40MiAzLjkzLS40MnMtLjYyLTUuMjQgMi4xNS01LjI0YzQuMDUuNSA1LjQ4IDkuMzUtLjc0IDYuODNaIiBzdHlsZT0iZmlsbDojZmZmO3N0cm9rZS13aWR0aDowIi8+PHBhdGggZD0iTTI1LjgyIDI5LjQ0Yy0xLjc2LS4wMi0xLjc2IDIuNjggMCAyLjY1IDEuNzYuMDIgMS43Ni0yLjY3IDAtMi42NVptMjQuNjIgMi43OWMxLjYyLjAyIDEuNjItMi40NyAwLTIuNDQtMS42Mi0uMDItMS42MiAyLjQ3IDAgMi40NFpNMzkuNTIgNDcuMThjLS4xNyA0LjI5LS4xIDMuNjMgMy44NyAzLjYyIDEuMzctLjEuNjEtMi42My44NC0zLjUzbC0yLjA3LTEuNjctMi42NSAxLjU4Wm0tNi4wOCAxMi4wNHMtLjcgMy4yOC00LjM3IDQuNjRjNy4wOC4zNSAxMy41OS4xIDE0LjM3LTUuMjQtNS4wNSAxLjYtOS45OS41OS05Ljk5LjU5WiIgc3R5bGU9ImZpbGw6I2ZmZjtzdHJva2Utd2lkdGg6MCIvPjwvc3ZnPg=="> Black Hat Arsenal 2023

Raven - CI/CD Security Analyzer

RAVEN (Risk Analysis and Vulnerability Enumeration for CI/CD) is a powerful security tool designed to perform massive scans for GitHub Actions CI workflows and digest the discovered data into a Neo4j database. Developed and maintained by the Cycode research team.

With Raven, we were able to identify and report security vulnerabilities in some of the most popular repositories hosted on GitHub, including:

We listed all vulnerabilities discovered using Raven in the tool Hall of Fame.

What is Raven

The tool provides the following capabilities to scan and analyze potential CI/CD vulnerabilities:

  • Downloader: You can download workflows and actions necessary for analysis. Workflows can be downloaded either for multiple accounts (user/organization) simultaneously or for public GitHub repositories, sorted by star count. Performing this step is a prerequisite for analyzing the workflows.
  • 📊 Indexer: Digesting the downloaded data into a graph-based Neo4j database. This process involves establishing relationships between workflows, actions, jobs, steps, etc.
  • 📚 Query Library: We created a library of pre-defined queries based on research conducted by the community.
  • Reporter: Raven has a simple way of reporting suspicious findings. As an example, it can be incorporated into the CI process for pull requests and run there.

Possible usages for Raven:

  • Scanner for your own organization's security
  • Scanning specified organizations for bug bounty purposes
  • Scan everything and report issues found to save the internet
  • Research and learning purposes

This tool provides a reliable and scalable solution for CI/CD security analysis, enabling users to query bad configurations and gain valuable insights into their codebase's security posture.

Why Raven

In the past year, Cycode Labs conducted extensive research on fundamental security issues of CI/CD systems. We examined the depths of many systems, thousands of projects, and several configurations. The conclusion is clear – the model in which security is delegated to developers has failed. This has been proven several times in our previous content:

  • A simple injection scenario exposed dozens of public repositories, including popular open-source projects.
  • We found that one of the most popular frontend frameworks was vulnerable to the innovative method of branch injection attack.
  • We detailed a completely different attack vector, 3rd party integration risks, the most popular project on GitHub, and thousands more.
  • Finally, the Microsoft 365 UI framework, with more than 300 million users, is vulnerable to an additional new threat – an artifact poisoning attack.
  • Additionally, we found, reported, and disclosed hundreds of other vulnerabilities privately.

Each of the vulnerabilities above has unique characteristics, making it nearly impossible for developers to stay up to date with the latest security trends. Unfortunately, each vulnerability shares a commonality – each exploitation can impact millions of victims.

It was for these reasons that Raven was created, a framework for CI/CD security analysis workflows (and GitHub Actions as the first use case). In our focus, we examined complex scenarios where each issue isn't a threat on its own, but when combined, they pose a severe threat.

Setup && Run

To get started with Raven, follow these installation instructions:

Step 1: Install the Raven package

pip3 install raven-cycode

Step 2: Setup a local Redis server and Neo4j database

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

Another way to setup the environment is by running our provided docker compose file:

git clone https://github.com/CycodeLabs/raven.git
cd raven
make setup

Step 3: Run Raven Downloader

Account mode:

raven download account --token $GITHUB_TOKEN --account-name RavenDemo

Crawl mode:

raven download crawl --token $GITHUB_TOKEN --min-stars 1000

Step 4: Run Raven Indexer

raven index

Step 5: Inspect the results through the reporter

raven report --format raw

At this point, it is possible to inspect the data in the Neo4j database, by connecting http://localhost:7474/browser/.

Prerequisites

  • Python 3.9+
  • Docker Compose v2.1.0+
  • Docker Engine v1.13.0+

Infrastructure

Raven is using two primary docker containers: Redis and Neo4j. make setup will run a docker compose command to prepare that environment.

Infrastructure

Usage

The tool contains three main functionalities, download and index and report.

Download

Download Account Repositories

usage: raven download account [-h] --token TOKEN [--debug] [--redis-host REDIS_HOST] [--r
View on GitHub
GitHub Stars736
CategoryDevelopment
Updated17d ago
Forks45

Languages

Python

Security Score

100/100

Audited on Mar 17, 2026

No findings