# 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