315 lines
9.9 KiB
Markdown
315 lines
9.9 KiB
Markdown
# ForensicPathways
|
|
|
|
Ein umfassendes Verzeichnis digitaler Forensik- und Incident-Response-Tools mit KI-gestützten Empfehlungen basierend auf der NIST SP 800-86 Methodik.
|
|
|
|
## Lizenz
|
|
|
|
Dieses Projekt ist unter der BSD-3-Clause-Lizenz lizenziert.
|
|
|
|
## Funktionen
|
|
|
|
### Kernfunktionalität
|
|
- **Umfassende Tool-Datenbank**: 100+ forensische Tools kategorisiert nach Domänen, Phasen und Skill-Levels
|
|
- **NIST SP 800-86 Integration**: Vier-Phasen-Methodik (Sammlung → Auswertung → Analyse → Berichterstattung)
|
|
- **Multiple Ansichtsmodi**: Kachelansicht, Matrix-Übersicht und KI-gestützte Empfehlungen
|
|
- **Erweiterte Suche**: Textsuche, semantische Embedding-basierte Suche und Multi-Kriterien-Filterung
|
|
- **Responsive Design**: Dark/Light-Mode-Unterstützung, mobile-optimierte Benutzeroberfläche
|
|
|
|
### KI-gestützte Analyse
|
|
- **Micro-Task-Pipeline**: Intelligente Tool-Auswahl durch mehrere KI-Analyseschritte
|
|
- **Semantische Suche**: Vector-Embeddings für natürlichsprachige Tool-Entdeckung
|
|
- **Konfidenz-Bewertung**: Transparente Vertrauensmetriken für KI-Empfehlungen
|
|
- **Audit-Trail**: Vollständige Entscheidungstransparenz mit detaillierter Protokollierung
|
|
- **Rate Limiting**: Intelligente Warteschlangenverwaltung und nutzerbasierte Ratenbegrenzung
|
|
|
|
### Zusammenarbeit & Beiträge
|
|
- **Tool-Beiträge**: Neue Tools einreichen oder bestehende über Git-Integration bearbeiten
|
|
- **Knowledgebase**: Community-beigetragene Artikel und Dokumentation
|
|
- **File-Upload-System**: Nextcloud-Integration für Medien-Anhänge
|
|
- **Authentifizierung**: OIDC-Integration mit konfigurierbaren Anbietern
|
|
|
|
### Enterprise-Funktionen
|
|
- **Warteschlangenverwaltung**: Ratenbegrenzte KI-Verarbeitung mit Echtzeit-Status-Updates
|
|
- **Audit-Protokollierung**: Umfassender forensischer Audit-Trail für KI-Entscheidungsfindung
|
|
- **Multi-Provider-Unterstützung**: Konfigurierbare KI-Services (Mistral AI, Ollama, OpenAI)
|
|
- **Git-Integration**: Automatisierte Issue-Erstellung für Beiträge (Gitea, GitHub, GitLab)
|
|
|
|
## Datenmodell
|
|
|
|
Das System verwendet eine YAML-basierte Konfiguration in `src/data/tools.yaml`:
|
|
|
|
```yaml
|
|
tools:
|
|
- name: Tool Name
|
|
type: software|method|concept
|
|
description: Detaillierte Beschreibung
|
|
skillLevel: novice|beginner|intermediate|advanced|expert
|
|
url: https://tool-homepage.com
|
|
domains: [incident-response, static-investigations, ...]
|
|
phases: [data-collection, examination, analysis, reporting]
|
|
platforms: [Windows, Linux, macOS]
|
|
license: Lizenztyp
|
|
tags: [gui, commandline, ...]
|
|
related_concepts: [konzept1, konzept2]
|
|
# Optionale Felder
|
|
projectUrl: https://hosted-instance.com # Für CC24-Server gehostete Tools
|
|
knowledgebase: true # Hat KB-Artikel
|
|
accessType: download|hosted|cloud
|
|
|
|
domains:
|
|
- id: incident-response
|
|
name: Incident Response & Breach-Untersuchung
|
|
|
|
phases:
|
|
- id: data-collection
|
|
name: Datensammlung
|
|
description: Imaging, Akquisition, Remote-Collection-Tools
|
|
|
|
scenarios:
|
|
- id: scenario:memory_dump
|
|
icon: 🧠
|
|
friendly_name: RAM-Analyse
|
|
```
|
|
|
|
## AI Concept
|
|
|
|
### Micro-Task Architecture
|
|
The AI system uses a sophisticated pipeline that breaks complex analysis into focused micro-tasks:
|
|
|
|
1. **Scenario Analysis**: Understanding the forensic context
|
|
2. **Investigation Approach**: Determining optimal methodology
|
|
3. **Critical Considerations**: Identifying potential challenges
|
|
4. **Tool Selection**: Phase-specific or problem-specific recommendations
|
|
5. **Background Knowledge**: Relevant concepts and prerequisites
|
|
6. **Final Synthesis**: Integrated recommendations with confidence scoring
|
|
|
|
### Confidence Scoring
|
|
Each recommendation includes transparent confidence metrics:
|
|
- **Semantic Relevance**: Vector similarity between query and tool descriptions
|
|
- **Task Suitability**: AI-assessed fitness for the specific scenario
|
|
- **Uncertainty Factors**: Potential limitations and considerations
|
|
- **Strength Indicators**: Why the tool is well-suited
|
|
|
|
## NIST SP 800-86 Phases
|
|
|
|
The system organizes tools according to the four-phase NIST methodology:
|
|
|
|
1. **Data Collection**: Imaging, acquisition, and evidence preservation
|
|
2. **Examination**: Parsing, extraction, and initial data processing
|
|
3. **Analysis**: Deep investigation, correlation, and insight generation
|
|
4. **Reporting**: Documentation, visualization, and presentation
|
|
|
|
Each tool is mapped to appropriate phases, enabling workflow-based recommendations.
|
|
|
|
## Deployment
|
|
|
|
### Production Setup
|
|
|
|
1. **Build and Deploy**:
|
|
```bash
|
|
npm run build
|
|
sudo ./deploy.sh # Copies dist/ to /var/www/forensic-pathways
|
|
```
|
|
|
|
2. **Configuration**:
|
|
```bash
|
|
cd /var/www/forensic-pathways
|
|
sudo cp .env.example .env
|
|
sudo nano .env # Configure AI services, authentication, etc.
|
|
```
|
|
|
|
3. **Systemd Service** (`/etc/systemd/system/forensic-pathways.service`):
|
|
```ini
|
|
[Unit]
|
|
Description=ForensicPathways
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=www-data
|
|
WorkingDirectory=/var/www/forensic-pathways
|
|
ExecStart=/usr/bin/node server/entry.mjs
|
|
Restart=always
|
|
RestartSec=10
|
|
Environment=NODE_ENV=production
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
4. **Nginx Configuration**:
|
|
```nginx
|
|
server {
|
|
listen 80;
|
|
server_name forensic-pathways.yourdomain.com;
|
|
client_max_body_size 50M; # Important for uploads
|
|
|
|
location / {
|
|
proxy_pass http://localhost:4321;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection 'upgrade';
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_cache_bypass $http_upgrade;
|
|
}
|
|
}
|
|
```
|
|
|
|
5. **Enable and Start**:
|
|
```bash
|
|
sudo systemctl enable forensic-pathways
|
|
sudo systemctl start forensic-pathways
|
|
sudo systemctl reload nginx
|
|
```
|
|
|
|
### Environment Configuration
|
|
|
|
Key configuration in `.env`:
|
|
|
|
```bash
|
|
# Core Application
|
|
PUBLIC_BASE_URL=https://forensic-pathways.yourdomain.com
|
|
AUTH_SECRET=your-secure-random-secret
|
|
|
|
# AI Services (Required)
|
|
AI_ANALYZER_ENDPOINT=https://api.mistral.ai/v1/chat/completions
|
|
AI_ANALYZER_API_KEY=your-api-key
|
|
AI_ANALYZER_MODEL=mistral/mistral-small-latest
|
|
|
|
# Vector Embeddings (Recommended)
|
|
AI_EMBEDDINGS_ENABLED=true
|
|
AI_EMBEDDINGS_ENDPOINT=https://api.mistral.ai/v1/embeddings
|
|
AI_EMBEDDINGS_MODEL=mistral-embed
|
|
|
|
# Authentication (Optional)
|
|
AUTHENTICATION_NECESSARY_AI=false
|
|
OIDC_ENDPOINT=https://your-keycloak.com/auth/realms/your-realm
|
|
OIDC_CLIENT_ID=forensic-pathways
|
|
```
|
|
|
|
## Externe Abhängigkeiten (Optionale Features)
|
|
|
|
### File-Upload-System
|
|
- **Nextcloud**: Primärer Speicher für Beitrags-Anhänge
|
|
- **Lokaler Fallback**: Automatischer Fallback zu lokalem Speicher bei Nextcloud-Ausfall
|
|
|
|
### Authentifizierungsanbieter
|
|
- **Keycloak**: Empfohlener OIDC-Provider
|
|
- **Andere OIDC**: Jeder OIDC-konforme Provider (Auth0, Azure AD, etc.)
|
|
|
|
### Git-Integration
|
|
- **Gitea**: Primärer Git-Provider für Beiträge
|
|
- **GitHub/GitLab**: Alternative Git-Provider unterstützt
|
|
|
|
### Monitoring
|
|
- **Uptime Kuma**: Service-Monitoring und Gesundheitschecks (optional)
|
|
|
|
### KI-Services
|
|
- **Mistral AI**: Empfohlen für Produktion (API-Schlüssel erforderlich)
|
|
- **Ollama**: Lokale Deployment-Option (kein API-Schlüssel benötigt)
|
|
- **OpenAI**: Alternative kommerzielle Anbieter
|
|
|
|
## Knowledgebase-System
|
|
|
|
### Artikel hinzufügen
|
|
|
|
Knowledgebase-Artikel werden in `src/content/knowledgebase/` als Markdown-Dateien mit Frontmatter gespeichert:
|
|
|
|
```markdown
|
|
---
|
|
title: "Tool-Konfigurationsanleitung"
|
|
description: "Schritt-für-Schritt-Setup-Anweisungen"
|
|
last_updated: 2024-01-15
|
|
author: "Ihr Name"
|
|
difficulty: intermediate
|
|
|
|
# Tool-Zuordnung (optional)
|
|
tool_name: "Autopsy"
|
|
related_tools: ["Volatility 3", "YARA"]
|
|
|
|
# Kategorisierung
|
|
categories: ["konfiguration", "setup"]
|
|
tags: ["gui", "installation", "windows"]
|
|
|
|
published: true
|
|
---
|
|
|
|
# Tool-Konfigurationsanleitung
|
|
|
|
Ihr Artikel-Inhalt hier...
|
|
|
|
## Voraussetzungen
|
|
- Systemanforderungen
|
|
- Abhängigkeiten
|
|
|
|
## Installationsschritte
|
|
1. Download von offizieller Quelle
|
|
2. Installer ausführen
|
|
3. Einstellungen konfigurieren
|
|
|
|
## Häufige Probleme
|
|
Lösungen für typische Probleme...
|
|
```
|
|
|
|
### Artikel-Struktur-Richtlinien
|
|
|
|
**Erforderliche Felder**:
|
|
- `title`: Klarer, beschreibender Titel
|
|
- `description`: Einzeilige Zusammenfassung für Auflistungen
|
|
- `last_updated`: Artikel-Änderungsdatum
|
|
- `published`: Boolean-Flag für Sichtbarkeit
|
|
|
|
**Optionale Felder**:
|
|
- `tool_name`: Zuordnung zu spezifischem Tool aus Datenbank
|
|
- `author`: Mitwirkender Name (Standard: "Anon")
|
|
- `difficulty`: Komplexitätslevel passend zu Tool-Skill-Levels
|
|
- `categories`: Breite Klassifizierungen
|
|
- `tags`: Spezifische Stichwörter für Entdeckung
|
|
- `related_tools`: Array verwandter Tool-Namen
|
|
|
|
**Inhalt-Richtlinien**:
|
|
- Standard-Markdown-Formatierung verwenden
|
|
- Praktische Beispiele und Code-Snippets einschließen
|
|
- Screenshots oder Diagramme bei Bedarf hinzufügen
|
|
- Zu verwandten Tools mit `[Tool Name](/tools/tool-slug)` Format verlinken
|
|
- Troubleshooting-Abschnitte für komplexe Tools einschließen
|
|
|
|
### Automatische Verarbeitung
|
|
|
|
1. Artikel werden automatisch beim Build indexiert
|
|
2. Tool-Zuordnungen erstellen bidirektionale Links
|
|
3. Suche umfasst Volltext-Inhalt und Metadaten
|
|
4. Verwandte Artikel erscheinen in Tool-Detail-Ansichten
|
|
|
|
## Entwicklung
|
|
|
|
```bash
|
|
# Setup
|
|
npm install
|
|
cp .env.example .env
|
|
|
|
# Entwicklung
|
|
npm run dev
|
|
|
|
# Build
|
|
npm run build
|
|
|
|
# Deploy
|
|
sudo ./deploy.sh
|
|
```
|
|
|
|
## Konfigurationsübersicht
|
|
|
|
Die `.env.example`-Datei enthält umfassende Konfigurationsoptionen für alle Features. Die meisten Optionen haben sinnvolle Standardwerte, wobei nur die KI-Service-Konfiguration für volle Funktionalität erforderlich ist.
|
|
|
|
## Architektur
|
|
|
|
- **Frontend**: Astro mit TypeScript, responsive CSS
|
|
- **Backend**: Node.js API-Routen mit intelligenter Ratenbegrenzung
|
|
- **KI-Pipeline**: Micro-Task-Architektur mit Audit-Protokollierung
|
|
- **Daten**: YAML-basierte Tool-Datenbank mit Git-basierten Beiträgen
|
|
- **Suche**: Dual-Mode Text- und semantische Vector-Suche
|
|
- **Auth**: OIDC-Integration mit Session-Management |