Formale interprozedurale Taint-Analyse-Engine für Anwendungssicherheit. Verfolgt unvertraute Daten über Funktionsgrenzen, Persistenzschichten und asynchronen Code hinweg. KI-Agenten-fähig mit deterministischem Regel-Replay. Open-Source-Alternative zu Semgrep Pro und CodeQL.
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../logos/opentaint-logo-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="../../logos/opentaint-logo-light.svg">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/opentaint-logo-light.svg" alt="OpenTaint" height="100">
</picture>
</p>
<h3 align="center">Die Open-Source-Taint-Analyse-Engine fur das KI-Zeitalter</h3>
<p align="center">
Formale Taint-Analyse fur Anwendungssicherheit — findet, was AST-Pattern-Matching-Engines ubersehen, lasst LLM-Agenten Schwachstellen als Regeln umsetzen, skaliert, wo keines von beiden allein ausreicht.
</p>
<p align="center">
<a href="https://github.com/seqra/opentaint/releases"><img src="https://img.shields.io/github/release/seqra/opentaint.svg" alt="GitHub-Release"></a>
<a href="https://goreportcard.com/report/github.com/seqra/opentaint/cli"><img src="https://goreportcard.com/badge/github.com/seqra/opentaint/cli" alt="Go Report Card"></a>
<a href="https://github.com/seqra/opentaint/blob/main/LICENSE.md"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="Lizenz: Apache 2.0"></a>
<a href="https://golang.org/"><img src="https://img.shields.io/badge/Go-1.25+-00ADD8?logo=go" alt="Go-Version"></a>
<a href="https://discord.gg/6BXDfbP4p9"><img src="https://img.shields.io/discord/1403357427176575036?logo=discord&label=Discord" alt="Discord"></a>
</p>
<p align="center">
<a href="https://github.com/seqra/opentaint/blob/main/README.md">English</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.zh.md">简体中文</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.zht.md">繁體中文</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.ko.md">한국어</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.de.md">Deutsch</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.es.md">Español</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.fr.md">Français</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.it.md">Italiano</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.da.md">Dansk</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.ja.md">日本語</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.pl.md">Polski</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.ru.md">Русский</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.bs.md">Bosanski</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.ar.md">العربية</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.no.md">Norsk</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.sv.md">Svenska</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.br.md">Português (Brasil)</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.th.md">ไทย</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.tr.md">Türkçe</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.ua.md">Українська</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.bn.md">বাংলা</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.hi.md">हिन्दी</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.gr.md">Ελληνικά</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.vi.md">Tiếng Việt</a> | <a href="https://github.com/seqra/opentaint/blob/main/docs/translations/README.id.md">Bahasa Indonesia</a>
</p>
<p align="center">
<a href="http://opentaint.org/">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../public/opentaint-demo-dark.gif">
<source media="(prefers-color-scheme: light)" srcset="../../public/opentaint-demo-light.gif">
<img src="https://assets.kitploit.com/production/public/readmes/13793/562b0290a09060eff941363dd673b805d145664f68b1074b35b7b670ede8cd66.gif" alt="OpenTaint Zusammenfassungsausgabe">
</picture>
</a>
</p>
<p align="center"><b>Unterstutzte Technologien und Integrationen</b></p>
<p align="center">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/java-logo.svg" alt="Java" height="60">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/kotlin-logo.svg" alt="Kotlin" height="60">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/spring-boot-logo.svg" alt="Spring" height="60">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../logos/github-logo-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="../../logos/github-logo-light.svg">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/github-logo-light.svg" alt="GitHub" height="60">
</picture>
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/gitlab-logo.svg" alt="GitLab" height="60">
</p>
<p align="center"><i>Die gründlichste Taint-Analyse-Engine für Spring-Apps</i></p>
<p align="center"><b>Roadmap</b></p>
<p align="center">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/python-logo.svg" alt="Python" height="60">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/go-logo.svg" alt="Go" height="60">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/csharp-logo.svg" alt="C#" height="60">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/javascript-logo.svg" alt="JavaScript" height="60">
<img src="https://raw.githubusercontent.com/seqra/opentaint/HEAD/logos/typescript-logo.svg" alt="TypeScript" height="60">
</p>
<div align="center">
<details>
<summary><b>Weitere Screenshots</b></summary>
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../public/opentaint-frame-dark-1.png">
<source media="(prefers-color-scheme: light)" srcset="../../public/opentaint-frame-light-1.png">
<img src="https://assets.kitploit.com/production/public/readmes/13793/8d9998e1918080fb841ec0ad473f51269941b9b5536ff7ac24480a600ad2f648.png" alt="OpenTaint Scan-Ausgabe">
</picture>
</p>
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../public/opentaint-frame-dark-2.png">
<source media="(prefers-color-scheme: light)" srcset="../../public/opentaint-frame-light-2.png">
<img src="https://assets.kitploit.com/production/public/readmes/13793/3f916c30b3f3b64064e428101084005a58f4ae3d988703946a899f6fb5f6f22a.png" alt="OpenTaint Zusammenfassungsausgabe">
</picture>
</p>
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../public/opentaint-frame-dark-3.png">
<source media="(prefers-color-scheme: light)" srcset="../../public/opentaint-frame-light-3.png">
<img src="https://assets.kitploit.com/production/public/readmes/13793/a9f747d50d24686930d7fb97c3539bb8f34c42f3c24a79c7f21b8e1d55a7ba43.png" alt="OpenTaint Zusammenfassungsausgabe">
</picture>
</p>
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../public/opentaint-frame-dark-4.png">
<source media="(prefers-color-scheme: light)" srcset="../../public/opentaint-frame-light-4.png">
<img src="https://assets.kitploit.com/production/public/readmes/13793/6f527df53125d8b57390c691e3ab37080b3ed7c6c0f9614af7dbbe4e7883c046.png" alt="OpenTaint Zusammenfassungsausgabe">
</picture>
</p>
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../public/opentaint-frame-dark-5.png">
<source media="(prefers-color-scheme: light)" srcset="../../public/opentaint-frame-light-5.png">
<img src="https://assets.kitploit.com/production/public/readmes/13793/063464f019e0d1ec835eedd8e14fb1553c50030d193a8dc6739c079bce648126.png" alt="OpenTaint Zusammenfassungsausgabe">
</picture>
</p>
</details>
</div>
---
## Warum OpenTaint?
> OpenTaint ist eine Open-Source-Alternative zu *Semgrep Pro* und *CodeQL* — eine formale interprozedurale Taint-Engine, die Sie anpassen und selbst hosten konnen, gebaut dafur, dass KI-Agenten Ihre Sicherheitsanalyse steuern, ohne bei jedem Scan Tokens zu verbrennen.
KI generiert Produktionscode schneller, als Sicherheitsteams mithalten konnen, und die beiden Arten von Werkzeugen, die entwickelt wurden, um die dabei entstehenden Fehler zu finden, erzwingen jeweils einen schlechten Kompromiss:
- **AST-Pattern-Matcher** (Semgrep OSS, ast-grep, Linter) sind kostenlos und schnell, aber sie gleichen Syntax ab, nicht Datenfluss — nicht vertrauenswurdige Eingaben, die eine Funktionsgrenze oder eine Persistenzschicht uberschreiten, rutschen einfach durch. Die tiefere, interprozedurale Analyse, die sie *doch* findet, war lange in proprietaren Werkzeugen eingeschlossen.
- **LLM-Sicherheitsagenten** finden, was Pattern-Matcher ubersehen, aber sie lesen Ihren Code bei jedem Lauf erneut. Die Tokens summieren sich mit jeder Datei, jedem Commit, jedem CI-Build — und ein probabilistisches Modell kann trotzdem nicht versprechen, dass es alles erfasst hat.
OpenTaint gibt Ihnen die Tiefe eines LLM-Agenten zum Preis eines statischen Analyzers:
- **Findet, was AST-Pattern-Matcher ubersehen.** Eine formale interprozedurale Dataflow-Engine verfolgt nicht vertrauenswurdige Daten uber Funktionsgrenzen, Persistenzschichten, Aliase und asynchronen Code hinweg.
- **Zahlen Sie das Modell einmal, nicht bei jedem Scan.** Lassen Sie einen Agenten einen einzelnen Fund zu einer Taint-Regel destillieren. Die deterministische Engine wendet diese Regel dann auf die gesamte Codebasis an — und auf jeden Commit danach — in wenigen CPU-Minuten, zu null Token-Kosten.
- **Open Source, alles inklusive.** Engine, Regeln und CI-Integrationen kommen als ein Stack unter Apache 2.0 und MIT.
## Schnellstart
**Installationsskript (Linux/macOS)**
```
curl -fsSL https://opentaint.org/install.sh | bash
```
**Installation uber Homebrew (Linux/macOS):**
```bash
brew install --cask seqra/tap/opentaint
```
**Installationsskript (Windows PowerShell)**
```
irm https://opentaint.org/install.ps1 | iex
```
**Installation uber npm (Linux/macOS/Windows):**
```bash
npm install -g @seqra/opentaint
```
**Oder sofort mit npx ausfuhren — ohne Installation (benotigt Node.js):**
```bash
npx @seqra/opentaint scan
```
**Projekt scannen:**
```bash
opentaint scan
```
**Oder Docker verwenden:**
```bash
docker run --rm -v $(pwd):/project -v $(pwd):/output \
ghcr.io/seqra/opentaint:latest \
opentaint scan --output /output/results.sarif /project
```
Weitere Optionen finden Sie unter [Installation](https://github.com/seqra/opentaint/blob/main/docs/README.md#installation) und [Verwendung](https://github.com/seqra/opentaint/blob/main/docs/README.md#usage).
---
## KI-Agenten-Workflows
OpenTaint enthalt Agenten-Skills, die statische Analyse in einen durchgangigen Workflow fur Anwendungssicherheit verwandeln. Installieren Sie sie mit:
```bash
npx skills add https://github.com/seqra/opentaint
```
Der Skill `appsec-agent` orchestriert eine vollstandige Projektbewertung: das Projekt bauen, OpenTaint ausfuhren, die Angriffsflache ermitteln, gezielte Regeln hinzufugen, fehlende Bibliotheks-Datenflusse modellieren, Funde triagieren und optional dynamische Proof-of-Concept-Prufungen fur bestatigte Schwachstellen generieren.
Die enthaltenen Skills decken den gangigen Sicherheitsanalyse-Zyklus ab:
- **Scannen und Triage:** `build-project`, `run-scan`, `analyze-findings`, `generate-poc`
- **Erweiterung der Abdeckung:** `triage-dependencies`, `discover-attack-surface`, `create-test-project`, `create-rule`, `assemble-lib-rules`
- **Datenfluss-Modellierung:** `analyze-external-methods`, `create-pass-through-approximation`, `create-dataflow-approximation`, `debug-rule`, `report-analyzer-issue`
---
## Dokumentation
Vollstandige Anleitungen — Installation, Verwendung, Konfiguration, CI/CD-Integration: **[Dokumentation](https://github.com/seqra/opentaint/blob/main/docs/README.md)**.
## Support
- **Issues:** [GitHub Issues](https://github.com/seqra/opentaint/issues)
- **Community:** [Discord](https://discord.gg/6BXDfbP4p9)
- **E-Mail:** [[email protected]](mailto:[email protected])
## Sternverlauf
<a href="https://www.star-history.com/?repos=seqra%2Fopentaint&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=seqra/opentaint&type=date&theme=dark&legend=top-left&sealed_token=cNibcudvsLJKQVlqN0qt2kK3b3-5zBDkzDzTamAWPRP6ny8KmCeZIooBYT7NBhjkd-T6OiiW7Iu9b1FSgL6n9IHMTPuoqKahF1NtidSTKkDXcbw8bY6k57DDstncYkKHJieEn9sJQ8oKJIYyBtYuQfk19qu5Kb1kvzCMT_dqOXXv3LM7EKZlljFcXAUh" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=seqra/opentaint&type=date&legend=top-left&sealed_token=cNibcudvsLJKQVlqN0qt2kK3b3-5zBDkzDzTamAWPRP6ny8KmCeZIooBYT7NBhjkd-T6OiiW7Iu9b1FSgL6n9IHMTPuoqKahF1NtidSTKkDXcbw8bY6k57DDstncYkKHJieEn9sJQ8oKJIYyBtYuQfk19qu5Kb1kvzCMT_dqOXXv3LM7EKZlljFcXAUh" />
<img alt="Star History Chart" src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" />
</picture>
</a>
## Lizenz
Die [Kern-Analyse-Engine](https://github.com/seqra/opentaint/blob/main/core) wird unter der [Apache 2.0 Lizenz](https://github.com/seqra/opentaint/blob/main/LICENSE.md) veroffentlicht. Die [CLI](https://github.com/seqra/opentaint/blob/main/cli), [GitHub Action](https://github.com/seqra/opentaint/blob/main/github), [GitLab CI-Vorlage](https://github.com/seqra/opentaint/blob/main/gitlab) und [Regeln](https://github.com/seqra/opentaint/blob/main/rules) werden unter der [MIT-Lizenz](https://github.com/seqra/opentaint/blob/main/cli/LICENSE) veroffentlicht.