Categories
Development Java

OWASP Dependency-Check per Maven

# OWASP Dependency-Check per Maven

**Warum?**
Finde bekannte CVEs in deinen JARs frühzeitig im Build. Erstlauf lädt die NVD-Daten (kann dauern), danach inkrementell.

---

## Aktuellste Version & Doku
- **Neueste Plugin-Version:** siehe MvnRepository (Stand heute: **12.1.3**).
- **Offizielle Plugin-Doku (Ziele/Konfiguration):** GitHub Pages.
- **Projektseite (OWASP):** Überblick/Downloads.

---

## `pom.xml` ergänzen (minimal)
```xml
org.owasp
dependency-check-maven
12.1.3


owasp-check verify check




HTML XML
${project.build.directory}
${nvdApiKey}

```

---

## NVD API-Key besorgen
- Key kostenlos beantragen: NVD „Request an API Key“.

### Variante A: `settings.xml` (empfohlen)
`~/.m2/settings.xml`:
```xml
owasp-dependency-check DEIN_API_KEY
owasp-dependency-check


```
`pom.xml` wie oben (liest `${nvdApiKey}`).

### Variante B: Umgebungsvariable
- **Linux/macOS:** `export NVD_API_KEY=DEIN_API_KEY`
- **Windows (PowerShell):** `$env:NVD_API_KEY="DEIN_API_KEY"`
`pom.xml`:

```xml
${env.NVD_API_KEY}
```

---

## Check starten
```bash
mvn clean verify -DskipTests
```
- Ziel **`verify`** triggert das Plugin-Goal `check`.
- `-DskipTests` optional, beschleunigt Builds.

---

## Wo liegt der Report? Wie lesen?
- Standardpfad: `target/dependency-check-report.html` (+ `.xml`/`.json` wenn konfiguriert).
Der Ausgabepfad ist per `outputDirectory` konfigurierbar; Default ist **`target`**.

**Interpretation (HTML-Report):**
- **Severity / CVSS** je Fund, verlinkte **CVE-IDs**.
- **Dependency**, zugeordnete **CPEs**, Evidenzen.

**Was tun bei Treffern?**
1. **Upgrade** auf gefixte Version.
2. **Transitive Abhängigkeit**: Version übersteuern/excluden.
3. **False Positive**: Suppression file nutzen (`suppressionFile`/`suppressionFiles` in der Plugin-Konfiguration).

---

## Optional: Build bei hohen Risiken bremsen
```xml

7.0


```

---

## Kurzfazit
- Einmal Plugin einbauen, NVD-Key hinterlegen → reproduzierbare, schnelle CVE-Checks im `verify`.
- Report in `target/…` prüfen, Dependencies aktualisieren, Suppressions sparsam verwenden.

## Nachtrag: Sonatype OSS Index
Account anlegen auf: https://ossindex.sonatype.org/
In den User Settings kann man dann den API-Key auslesen.

`~/.m2/settings.xml`:
```xml



ossindex
your.email@example.com 2ab4c0de-1234-5678-90ff-abcdefabcdef



```

`pom.xml`:

```xml org.owasp
dependency-check-maven
12.1.3

ossindex
```