update readme

This commit is contained in:
overcuriousity 2025-07-19 23:40:45 +02:00
parent 19b1d5cfc8
commit b4a85ee6b3

176
README.md
View File

@ -1,30 +1,30 @@
# CC24-Hub
Ein kuratiertes Verzeichnis für digitale Forensik- und Incident-Response-Tools, entwickelt für die Seminargruppe CC24-w1.
*DISCLAIMER:*
Hier wurde Exzessives Vibe-Coding verwendet. Die Auswahl der Software ist aber kuratiert.
Ein kuratiertes Verzeichnis für digitale Forensik- und Incident-Response-Tools mit KI-gestützten Empfehlungen, entwickelt für die Seminargruppe CC24-w1.
## 🎯 Projektübersicht
CC24-Hub ist eine statische Website, die eine strukturierte Übersicht über bewährte DFIR-Tools bietet. Das Projekt orientiert sich am NIST-Framework (SP 800-86) und kategorisiert Tools nach forensischen Domänen und Untersuchungsphasen.
CC24-Hub bietet eine strukturierte Übersicht über bewährte DFIR-Tools und -Methoden mit intelligenten Empfehlungsfunktionen. Das Projekt orientiert sich am NIST-Framework (SP 800-86) und kategorisiert nach forensischen Domänen und Untersuchungsphasen.
### Hauptfunktionen
- **Tool-Katalog**: Umfassende Sammlung von Open-Source und kommerziellen Forensik-Tools
- **Matrix-Ansicht**: Visualisierung der Tools nach Domänen und Prozess-Phasen
- **Erweiterte Filterung**: Suche nach Name, Beschreibung, Tags, Domäne und Phase
- **CC24-Server Integration**: Direkte Links zu gehosteten Tool-Instanzen
- **Status-Monitoring**: Live-Überwachung der verfügbaren Services
- **Responsive Design**: Optimiert für Desktop und Mobile
- **Dark/Light Mode**: Automatische Theme-Erkennung mit manueller Überschreibung
- **KI-gestützte Empfehlungen**: Workflow- und Tool-Vorschläge basierend auf forensischen Szenarien
- **Tools & Methoden**: Software-Tools UND forensische Verfahren/Prozeduren
- **Matrix-Ansicht**: Visualisierung nach Domänen × Prozess-Phasen
- **Erweiterte Filter**: Suche nach Name, Tags, Domäne, Phase, Lizenz
- **CC24-Server Integration**: Direkte SSO-Links zu gehosteten Instanzen
- **Knowledgebase**: Erweiterte Dokumentation mit praktischen Erkenntnissen
- **Status-Monitoring**: Live-Überwachung verfügbarer Services
- **Responsive Design**: Dark/Light Mode, Mobile-optimiert
## 🛠️ Technischer Stack
- **Framework**: [Astro](https://astro.build/) (Static Site Generator)
- **Framework**: [Astro](https://astro.build/) mit Server-Side Rendering
- **Backend**: Node.js mit API-Routen für KI und Authentifizierung
- **Styling**: Vanilla CSS mit CSS Custom Properties
- **Datenformat**: YAML für Tool-Definitionen
- **Deployment**: Statische HTML-Generierung
- **Datenformat**: YAML für Tool-/Methoden-Definitionen
- **KI-Integration**: Mistral AI über OpenAI-kompatible API
- **Authentifizierung**: OIDC (OpenID Connect) mit JWT-Sessions
- **Node.js**: >=18.0.0
## 🚀 Installation & Deployment
@ -248,52 +248,48 @@ Nextcloud OIDC Einstellungen (sollte auch mit anderen OIDC-Anwendungen klappen):
- **Redirect URI**: `https://your-domain.com/auth/callback`
- **Logout URI**: `https://your-domain.com`
## 🔧 Tool-/Methoden-Datenformat
## 📁 Projektstruktur
Einträge werden in `src/data/tools.yaml` definiert:
```
cc24-hub/
├── src/
│ ├── components/ # Astro-Komponenten
│ │ ├── Navigation.astro
│ │ ├── ToolCard.astro
│ │ ├── ToolFilters.astro
│ │ └── ToolMatrix.astro
│ ├── data/
│ │ └── tools.yaml # Tool-Definitionen
│ ├── layouts/
│ │ └── BaseLayout.astro
│ ├── pages/ # Seiten-Routing
│ │ ├── index.astro
│ │ ├── about.astro
│ │ ├── status.astro
│ │ └── impressum.astro
│ ├── scripts/
│ │ └── theme.js # Theme-Management
│ └── styles/
│ └── global.css # Globale Styles
├── public/ # Statische Assets
└── astro.config.mjs # Astro-Konfiguration
```
## 🔧 Tool-Datenformat
Tools werden in `src/data/tools.yaml` definiert:
### Software-Tool Beispiel
```yaml
tools:
- name: "Tool Name"
description: "Beschreibung des Tools"
domains: ["incident-response", "malware-analysis"]
phases: ["data-collection", "analysis"]
platforms: ["Linux", "Windows"]
- name: "Autopsy"
icon: "📱"
type: "software"
description: "Die führende Open-Source-Alternative zu kommerziellen Forensik-Suiten"
domains: ["incident-response", "law-enforcement"]
phases: ["examination", "analysis"]
platforms: ["Windows", "Linux"]
skillLevel: "intermediate"
accessType: "download"
url: "https://example.com"
projectUrl: "https://hosted.example.com" # Optional für gehostete Tools
url: "https://www.autopsy.com/"
projectUrl: "https://autopsy.cc24.dev" # CC24-Server URL
license: "Apache 2.0"
tags: ["tag1", "tag2"]
statusUrl: "https://status.example.com/badge" # Optional
knowledgebase: true # Hat erweiterte Dokumentation
tags: ["gui", "filesystem", "timeline-analysis"]
statusUrl: "https://status.example.com/badge/1/status"
```
### Forensische Methode Beispiel
```yaml
- name: "Live Memory Acquisition Procedure"
icon: "🧠"
type: "method"
description: "Standardisiertes Verfahren zur forensisch korrekten Akquisition des Arbeitsspeichers"
domains: ["incident-response", "law-enforcement"]
phases: ["data-collection"]
platforms: [] # Methoden haben keine Plattformen
skillLevel: "advanced"
accessType: null
url: "https://www.nist.gov/publications/guide-integrating-forensic-techniques"
projectUrl: null
license: null
knowledgebase: false
tags: ["memory-acquisition", "volatile-evidence", "procedure"]
```
### Verfügbare Kategorien
@ -308,20 +304,64 @@ tools:
- `cloud-forensics` - Cloud & Virtuelle Umgebungen
- `ics-forensics` - Industrielle Kontrollsysteme (ICS/SCADA)
**Phasen:**
**Phasen (NIST SP 800-86):**
- `data-collection` - Datensammlung
- `examination` - Auswertung
- `analysis` - Analyse
- `reporting` - Bericht & Präsentation
- `collaboration` - Übergreifend & Kollaboration
**Domain-agnostic Kategorien:**
- `collaboration-general` - Übergreifend & Kollaboration
- `specific-os` - Betriebssysteme
## 🤖 KI-Integration
### Workflow-Empfehlungen
Beschreibung forensischer Szenarien für maßgeschneiderte Workflows mit phasenbasierten Tool-Empfehlungen und Prioritätsbewertung.
### Tool-spezifische Empfehlungen
Konkrete Tool-Vorschläge für spezifische Probleme mit detaillierten Begründungen, Implementierungsansätzen und Vor-/Nachteilen.
**API-Endpunkt:** `/api/ai/query`
- **Rate Limiting**: 10 Anfragen pro Minute pro Benutzer
- **Modi**: `workflow` (Szenario-basiert) oder `tool` (Problem-spezifisch)
- **Authentifizierung**: Optional konfigurierbar via `AUTHENTICATION_NECESSARY`
## 🔐 Authentifizierung
OIDC-Integration mit JWT-Sessions:
- **6 Stunden Gültigkeit**
- **HTTP-Only Cookies** mit CSRF-Schutz
- **Nextcloud/Keycloak kompatibel**
**Relevante Dateien:**
- `src/utils/auth.ts` - Kern-Authentifizierungslogik
- `src/pages/api/auth/` - Auth-API-Endpunkte
## 📚 Weitere Funktionen
### Knowledgebase
Erweiterte Dokumentation für Tools mit `knowledgebase: true` in `/knowledgebase`. Bietet praktische Erkenntnisse, Konfigurationshinweise und Lektionen aus der Praxis.
### Status-Monitoring
Live-Überwachung gehosteter Services in `/status` mit automatischen Status-Badges und direkten Zugriffs-Links.
### Tool-Editor
Standalone WYSIWYG-Editor unter `/dfir_yaml_editor.html` für die Verwaltung der `tools.yaml` mit Bulk-Operationen und Validierung.
## 🤝 Beitragen
### Tool hinzufügen
### Tool/Methode hinzufügen
**Option 1: Direkte YAML-Bearbeitung**
1. Fork des Repositories erstellen
2. Neuen Tool-Eintrag in `src/data/tools.yaml` hinzufügen
3. Pull Request mit Beschreibung der Änderungen erstellen
2. `src/data/tools.yaml` bearbeiten
3. Pull Request mit Beschreibung erstellen
**Option 2: Web-Editor verwenden**
1. YAML-Editor öffnen (`/dfir_yaml_editor.html`)
2. Tool/Methode hinzufügen
3. YAML exportieren und in Pull Request einreichen
### Korrekturen & Verbesserungen
@ -329,3 +369,23 @@ tools:
- Code-Beiträge über Pull Requests willkommen
- Dokumentation und Übersetzungen erwünscht
## 🐛 Troubleshooting
**KI-Empfehlungen funktionieren nicht:**
- `.env` Datei korrekt konfiguriert?
- `AUTHENTICATION_NECESSARY=false` für Tests setzen
- API-Endpoint erreichbar?
**Authentifizierung schlägt fehl:**
- OIDC-Endpoints korrekt?
- Redirect-URIs im OIDC-Provider registriert?
- `AUTH_SECRET` mindestens 32 Zeichen?
**Logs prüfen:**
```bash
# Anwendungs-Logs
sudo journalctl -u cc24-hub -f
# Development-Modus
npm run dev
```