diff --git a/README.md b/README.md index 6365cc6..8c59a41 100644 --- a/README.md +++ b/README.md @@ -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,59 +248,55 @@ 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 **Domänen:** - `incident-response` - Incident Response & Breach-Untersuchung -- `law-enforcement` - Strafverfolgung & Kriminalermittlung +- `law-enforcement` - Strafverfolgung & Kriminalermittlung - `malware-analysis` - Malware-Analyse & Reverse Engineering - `fraud-investigation` - Betrugs- & Finanzkriminalität - `network-forensics` - Netzwerk-Forensik & Traffic-Analyse @@ -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 +- `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 +``` \ No newline at end of file