Ihre Pipelines sind Code. Also lesen wir sie.
Statische Analyse Ihrer Workflow-Dateien. Injection, ungepinnte Actions, überprivilegierte Tokens, OIDC-Drift.
Sechs CI-Dialekte speisen einen Parser: GitHub Actions, GitLab CI, Bitbucket, Azure DevOps, Jenkins, CircleCI.Commit a3f9c2e ändert release.yml. Der Build startet zwei Runs: #4821 und #4822.Am Gate wird release.yml so gelesen, wie ein Angreifer es lesen würde: Trigger, Permissions, jedes uses: und run:.#4821 ist blockiert: pull_request_target mit contents: write und eine ungepinnte Action erreichen den Deploy-Job nie.#4822 geht nach prod-eu: gepinnter SHA, Read-only-Token, der PR-Titel bleibt außerhalb der Shell.
Sechs Fehler,
direkt in der Datei.
Wir überführen Ihre Workflows in einen AST und einen Datenflussgraphen und wenden dann unsere eigenen Regelpakete an.
Standardmäßig hat das GITHUB_TOKEN write-Rechte auf fast alles. Wir erkennen nicht gesetzte permissions:, zu breite Scopes, die Sie gar nicht nutzen, und empfehlen das minimale Set pro Job.
Nicht vertrauenswürdige PRs, die in Caches schreiben, aus denen geschützte Branches lesen. Selbst gehostete Runner, die ohne Isolation wiederverwendet werden.
@v3, @main, @latest: Jede nicht fixierte Referenz ist ein künftiger Supply-Chain-Vorfall.
Föderierte Identitäten für AWS, Azure und GCP aus GitHub, GitLab und CircleCI.
Jedes Mal, wenn Sie ${{ github.event.* }}, Branch-Namen, PR-Titel oder Issue-Bodies in einen run:-Block interpolieren, schleusen Sie Shell-Code in Ihre eigene Pipeline ein.
echo $SECRET, Secrets als Positionsargumente, in Artefakte geloggte Secrets, in Container-Layer eingebaute Secrets.
Zeigen Sie auf eine markierte Zeile, um den Fix zu sehen.Tippen Sie auf eine Notiz, um den Fix zu sehen.
Misconfig abfangen,
bevor der Runner läuft.
Die meisten Pipeline-Vorfälle stehen schon im YAML. Wir lesen es so, wie ein Angreifer es liest.
.github/workflows/release.yml:12sourcemessage: ${{ github.event.pull_request.title }}.github/workflows/notify.yml:4hopmessage: { type: string }.github/workflows/notify.yml:10sinkrun: echo "${{ inputs.message }}"
notify.yml:10pull_request.title reaches run: through inputs.message.
Workflow-Dateien werden so gründlich geprüft wie Ihr Anwendungscode: AST-Parsing, Taint-Propagation, Source-to-Sink-Analyse.
Repo verbinden,
der Rest läuft automatisch.
Verbinden Sie GitHub oder GitLab. Ihre Pipeline-Dateien werden bei jedem Push oder auf Abruf gelesen.
.github/workflows/ci.ymlon: pushjobs: test: runs-on: ubuntu-24.04 steps: - run: npm test
Nichts hinzuzufügen: Diese Datei bleibt, wie sie ist.
.gitlab-ci.ymlNichts hinzuzufügen: Diese Datei bleibt, wie sie ist.
bitbucket-pipelines.ymlNichts hinzuzufügen: Diese Datei bleibt, wie sie ist.
azure-pipelines.ymlNichts hinzuzufügen: Diese Datei bleibt, wie sie ist.
JenkinsfileNichts hinzuzufügen: Diese Datei bleibt, wie sie ist.
.circleci/config.ymlNichts hinzuzufügen: Diese Datei bleibt, wie sie ist.
So funktioniert es,
im Detail.
Die Dokumentation führt Sie durch Einrichtung, Konfiguration und alle Optionen.
Dokumentation lesenauf EnglischCode Scanning / CI/CD Integrations
GitHub Action Setup for Local Code Scanning
Die offizielle GitHub Action und ein Workflow zum Einfügen, dazu Anleitungen für sieben weitere CI-Plattformen.
Häufige Fragen zum CI/CD-Scanner.
Scannt CybeDefend meine Pipeline-Dateien von außen, ohne eigenen Step in der Pipeline?
Richtig. Verbinden Sie das Repo ein einziges Mal. Unsere Scanner lesen .github/workflows, .gitlab-ci.yml, Jenkinsfile und den Rest direkt aus und melden Findings als Inline-Kommentare auf der betroffenen Zeile sowie im vereinheitlichten Dashboard. Sie müssen weder einen Step in Ihre Pipeline einbauen noch einen privilegierten Runner installieren.
Welche Pipeline-Formate kann CybeDefend lesen?
GitHub-Actions-Workflows (inklusive Composite und Reusable Workflows), GitLab-CI-YAML (inklusive `include:`-Ketten) und Jenkinsfiles (deklaratives und geskriptetes Groovy). Auch Action-Definitionen (action.yml und Dockerfile-basierte Actions) werden gelesen, damit Taint-Flows über Action-Grenzen hinweg verfolgt werden. Weitere Dialekte kommen auf Kundenwunsch dazu.
Wie erkennt CybeDefend eine Workflow Injection, die nur bei bestimmten Event-Payloads auslöst?
Den Payload brauchen wir gar nicht. Wir markieren jeden Wert, der aus `github.event.*`, `inputs.*`, `head_ref`, `pull_request.title/body` sowie aus Branch- und Tag-Refs eines Forks stammt, und folgen ihm über `env:`, `with:`, Output-Werte und Grenzen von Composite Actions hinweg. Erreicht der markierte Wert einen `run:`-Block, ein `eval` in einer JavaScript-Action oder einen Befehl mit Shell-Substitution, ist das ein Finding, ganz gleich, ob die Lücke schon ausgenutzt wurde.
Erkennt CybeDefend schädliche GitHub Actions oder Typosquatting?
Ja. Jeder `uses:`-Eintrag wird mit dem OpenSSF-Feed schädlicher Actions, der Liste verifizierter Publisher und unseren eigenen Typosquatting-Heuristiken für Action-Namen abgeglichen. Ungepinnte Tags werden separat markiert, denn selbst eine legitime Action wird zum Supply-Chain-Risiko, wenn Sie sie nicht auf einen SHA pinnen.
Was ist mit Secrets in Workflow-Dateien?
Alles, was den Entropie- und Provider-Mustern unseres Secret-Detection-Regelpakets entspricht, wird auch in CI/CD-Dateien markiert. Außerdem erkennen wir Secrets, die als Positionsargumente an die CLI übergeben werden (in `ps` sichtbar), per `echo` geloggte Secrets und Secrets, die fest in Inputs von Reusable Workflows stehen. Die Findings werden mit dem Secrets-Scanner abgeglichen, damit Sie sie nicht doppelt sehen.
Scannt CybeDefend auch Konfigurationen selbst gehosteter Runner?
Ja. Wir werten `runs-on:`-Direktiven aus, erkennen Runner, deren Dateisystem zwischen nicht vertrauenswürdigen PRs geteilt wird, markieren fehlende Schutzmaßnahmen wie `actions/cleanup` und warnen bei Jobs, die Root-Rechte erlangen oder den Docker-Socket einbinden.
VibeDefend installieren in 5 Sekunden.
Ein einziger Befehl verbindet jeden Coding-Agenten auf Ihrem Rechner mit CybeDefend: Ihre Geschäftsregeln, Ihre Compliance-Frameworks und Guards, die destruktive Aufrufe blockieren, bevor sie ausgeführt werden.
npx -y @cybedefend/vibedefend@latest installClaude Code
CursorOpenAI Codex
WindsurfVS Code Copilot