ForensicPathways
Ein kuratiertes Verzeichnis für Digital Forensics und Incident Response (DFIR) Tools, Methoden und Konzepte mit KI-gestützten Workflow-Empfehlungen.
✨ Funktionen
🎯 Hauptansichten
- Kachelansicht (Grid View): Übersichtliche Kartenansicht aller Tools/Methoden
- Matrix-Ansicht: Interaktive Matrix nach forensischen Domänen und Untersuchungsphasen (NIST Framework)
- Forensic-AI: AI-gestützte Workflow-Empfehlungen basierend auf Szenario-Beschreibungen
🔍 Navigation & Filterung
- Tag-System: Intelligente Filterung nach Kategorien und Eigenschaften
- Volltext-Suche: Durchsuchen von Namen, Beschreibungen und Tags
- Domain/Phase-Filter: Filterung nach forensischen Bereichen und Ermittlungsphasen
📚 Inhaltstypen
- Software/Tools: Open Source und proprietäre forensische Software
- Methoden: Bewährte forensische Verfahren und Prozesse
- Konzepte: Grundlegendes Fachwissen und theoretische Grundlagen
📖 Knowledgebase
- Erweiterte Dokumentation: Detaillierte Artikel zu Tools und Methoden
- Praktische Anleitungen: Installation, Konfiguration und Best Practices
- Markdown-basiert: Einfache Erstellung und Wartung von Inhalten
🤝 Contribution-System
- Tool/Methoden-Beiträge: Webformular für neue Einträge
- Knowledgebase-Artikel: Artikel-Editor mit Datei-Upload
- Git-Integration: Automatische Issue-Erstellung für Review-Prozess
- File-Management: Nextcloud-Integration für Medien-Uploads
🔐 Authentifizierung
- OIDC-Integration: Single Sign-On mit OpenID Connect
- Berechtigungssteuerung: Schutz für AI-Features und Contribution-System
- Session-Management: Sichere JWT-basierte Sessions
🛠 Technische Grundlage
- Framework: Astro 4.x mit TypeScript
- Styling: CSS Custom Properties mit Dark/Light Mode
- API: Node.js Backend mit Astro API Routes
- Datenbank: YAML-basierte Konfiguration (tools.yaml)
📋 Voraussetzungen
- Node.js: Version 18.x oder höher
- npm: Version 8.x oder höher
- Nginx: Für Reverse Proxy (Produktion)
🔧 Externe Abhängigkeiten (Optional)
OIDC Provider
- Zweck: Benutzerauthentifizierung
- Beispiel: Nextcloud, Keycloak, Auth0
- Konfiguration:
OIDC_ENDPOINT
,OIDC_CLIENT_ID
,OIDC_CLIENT_SECRET
Nextcloud
- Zweck: File-Upload für Knowledgebase-Beiträge
- Features: Medien-Management, öffentliche Links
- Konfiguration:
NEXTCLOUD_ENDPOINT
,NEXTCLOUD_USERNAME
,NEXTCLOUD_PASSWORD
AI Service (Mistral/OpenAI-kompatibel)
- Zweck: KI-gestützte Tool-Empfehlungen
- Konfiguration:
AI_ANALYZER_ENDPOINT
,AI_ANALYZER_API_KEY
,AI_ANALYZER_MODEL
Uptime Kuma
- Zweck: Status-Monitoring für gehostete Services
- Integration: Status-Badges in der Service-Übersicht
Git Provider (Gitea/GitHub/GitLab)
- Zweck: Issue-Erstellung für Contributions
- Konfiguration:
GIT_PROVIDER
,GIT_API_ENDPOINT
,GIT_API_TOKEN
🚀 Installation
Lokale Entwicklung
# Repository klonen
git clone https://git.cc24.dev/mstoeck3/forensic-pathways.git
cd forensic-pathways
# Dependencies installieren
npm install
# Umgebungsvariablen konfigurieren
cp .env.example .env
# .env bearbeiten (siehe Konfiguration unten)
npm run astro build
# Development Server starten
npm run dev
Die Seite ist dann unter http://localhost:4321
verfügbar.
Produktions-Deployment
1. System vorbereiten
# System-Updates
sudo apt update && sudo apt upgrade -y
# Node.js installieren (Ubuntu/Debian)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# Nginx installieren
sudo apt install nginx -y
# Systemd für Service-Management
sudo systemctl enable nginx
2. Anwendung installieren
# Klonen des Repositorys
sudo git clone https://git.cc24.dev/mstoeck3/forensic-pathways /opt/forensic-pathways
cd /opt/forensic-pathways
# Abhängigkeiten installieren
sudo npm install
# Production-Build erstellen
sudo npm run build
npm run astro build
# Berechtigungen setzen
sudo chown -R www-data:www-data /opt/forensic-pathways
3. Umgebungsvariablen konfigurieren
Erstelle /opt/forensic-pathways/.env
:
# ===========================================
# ForensicPathways Environment Configuration
# ===========================================
# Authentication & OIDC (Required)
AUTH_SECRET=change-this-to-a-strong-secret-key-in-production
OIDC_ENDPOINT=https://your-oidc-provider.com
OIDC_CLIENT_ID=your-oidc-client-id
OIDC_CLIENT_SECRET=your-oidc-client-secret
# Auth Scopes - set to true in prod
AUTHENTICATION_NECESSARY_CONTRIBUTIONS=true
AUTHENTICATION_NECESSARY_AI=true
# Application Configuration (Required)
PUBLIC_BASE_URL=https://your-domain.com
NODE_ENV=production
# AI Service Configuration (Required for AI features)
AI_ANALYZER_MODEL=mistral-large-latest
AI_ANALYZER_ENDPOINT=https://api.mistral.ai
AI_ANALYZER_API_KEY=your-mistral-api-key
AI_RATE_LIMIT_DELAY_MS=1000
# Git Integration (Required for contributions)
GIT_REPO_URL=https://git.cc24.dev/mstoeck3/forensic-pathways
GIT_PROVIDER=gitea
GIT_API_ENDPOINT=https://git.cc24.dev/api/v1
GIT_API_TOKEN=your-git-api-token
# File Upload Configuration (Optional)
LOCAL_UPLOAD_PATH=./public/uploads
# Nextcloud Integration (Optional)
NEXTCLOUD_ENDPOINT=https://your-nextcloud.com
NEXTCLOUD_USERNAME=your-username
NEXTCLOUD_PASSWORD=your-password
NEXTCLOUD_UPLOAD_PATH=/kb-media
NEXTCLOUD_PUBLIC_URL=https://your-nextcloud.com/s/
# Berechtigungen sichern
sudo chmod 600 /opt/forensic-pathways/.env
sudo chown www-data:www-data /opt/forensic-pathways/.env
4. Nginx konfigurieren
Erstelle /etc/nginx/sites-available/forensic-pathways
:
server {
listen 80;
server_name ihre-domain.de;
# Redirect HTTP to HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name ihre-domain.de;
# SSL Konfiguration (Let's Encrypt empfohlen)
ssl_certificate /etc/letsencrypt/live/ihre-domain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ihre-domain.de/privkey.pem;
# Security Headers
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "strict-origin-when-cross-origin";
# Static Files
location / {
try_files $uri $uri/ @nodejs;
root /opt/forensic-pathways/dist;
index index.html;
# Cache static assets
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?|ttf)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
# API Routes to Node.js
location @nodejs {
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;
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
}
# Upload limit
client_max_body_size 50M;
}
# Site aktivieren
sudo ln -s /etc/nginx/sites-available/forensic-pathways /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
5. Systemd Service einrichten
Erstelle /etc/systemd/system/forensic-pathways.service
:
[Unit]
Description=ForensicPathways DFIR Guide
After=network.target nginx.service
Wants=nginx.service
[Service]
Type=exec
User=www-data
Group=www-data
WorkingDirectory=/opt/forensic-pathways
Environment=NODE_ENV=production
ExecStart=/usr/bin/node ./dist/server/entry.mjs
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
# Security
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/opt/forensic-pathways
CapabilityBoundingSet=
# Resource Limits
LimitNOFILE=65536
MemoryMax=512M
[Install]
WantedBy=multi-user.target
# Service aktivieren und starten
sudo systemctl daemon-reload
sudo systemctl enable forensic-pathways
sudo systemctl start forensic-pathways
# Status prüfen
sudo systemctl status forensic-pathways
🔧 Konfiguration
Minimalkonfiguration (ohne Auth)
# Nur für Tests geeignet
AUTHENTICATION_NECESSARY=false
PUBLIC_BASE_URL=http://localhost:4321
Tools-Datenbank
Die Tools werden in src/data/tools.yaml
verwaltet. Vollständiges Beispiel:
tools:
- name: Autopsy
type: software # software|method|concept
description: >-
Die führende Open-Source-Alternative zu kommerziellen Forensik-Suiten mit
intuitiver grafischer Oberfläche. Besonders stark in der Timeline-Analyse,
Keyword-Suche und dem Carving gelöschter Dateien. Die modulare
Plugin-Architektur erlaubt Erweiterungen für spezielle
Untersuchungsszenarien.
icon: 📦
skillLevel: intermediate # novice|beginner|intermediate|advanced|expert
url: https://www.autopsy.com/
domains:
- incident-response
- static-investigations
- malware-analysis
- mobile-forensics
- cloud-forensics
phases:
- examination
- analysis
platforms:
- Windows
- Linux
related_concepts:
- SQL Query Fundamentals
- Hash Functions & Digital Signatures
accessType: download # download|web|api|cli|service
license: Apache 2.0
knowledgebase: false # true für erweiterte Dokumentation
tags:
- gui
- filesystem
- timeline-analysis
- carving
- artifact-extraction
- keyword-search
# Optional: Für gehostete Services
projectUrl: https://autopsy.ihre-domain.de
statusUrl: https://status.ihre-domain.de/api/badge/1/status
# Beispiel Methode
- name: Live Response Methodology
type: method
description: >-
Strukturierte Vorgehensweise zur Sammlung volatiler Daten
von laufenden Systemen ohne Shutdown.
icon: 📋
skillLevel: advanced
url: https://www.sans.org/white-papers/live-response/
domains:
- incident-response
phases:
- data-collection
related_concepts:
- Memory Forensics Fundamentals
tags:
- volatile-data
- live-analysis
- methodology
knowledgebase: true
# Beispiel Konzept
- name: Hash Functions & Digital Signatures
type: concept
description: >-
Kryptographische Grundlagen für Datenintegrität und
Authentifizierung in der digitalen Forensik.
icon: 🔐
skillLevel: intermediate
url: https://en.wikipedia.org/wiki/Cryptographic_hash_function
domains:
- incident-response
- static-investigations
- malware-analysis
phases:
- data-collection
- examination
tags:
- cryptography
- data-integrity
- evidence-preservation
knowledgebase: false
# Konfiguration der Domänen
domains:
- id: incident-response
name: Incident Response & Breach-Untersuchung
- id: static-investigations
name: Datenträgerforensik & Ermittlungen
- id: malware-analysis
name: Malware-Analyse & Reverse Engineering
- id: mobile-forensics
name: Mobile Geräte & App-Forensik
- id: cloud-forensics
name: Cloud & Virtuelle Umgebungen
# Konfiguration der Phasen (NIST Framework)
phases:
- id: data-collection
name: Datensammlung
description: Imaging, Acquisition, Remote Collection Tools
- id: examination
name: Auswertung
description: Parsing, Extraction, Initial Analysis Tools
- id: analysis
name: Analyse
description: Deep Analysis, Correlation, Visualization Tools
- id: reporting
name: Bericht & Präsentation
description: Documentation, Visualization, Presentation Tools
# Domänenübergreifende Kategorien
domain-agnostic-software:
- id: collaboration-general
name: Übergreifend & Kollaboration
description: Cross-cutting tools and collaboration platforms
- id: specific-os
name: Betriebssysteme
description: Operating Systems which focus on forensics
📦 Updates
# Repository aktualisieren
cd /opt/forensic-pathways
sudo git pull
# Dependencies aktualisieren
sudo npm install
# Rebuild
sudo npm run build
# Service neustarten
sudo systemctl restart forensic-pathways
💾 Backup
Wichtige Dateien für Backup:
/opt/forensic-pathways/src/data/tools.yaml
/opt/forensic-pathways/.env
/etc/nginx/sites-available/forensic-pathways
/etc/systemd/system/forensic-pathways.service
🤝 Beiträge
Contributions sind willkommen! Bitte:
- Issue im Repository erstellen
- Feature-Branch erstellen
- Pull Request öffnen
- Tests durchführen
📞 Support
Bei Problemen oder Fragen:
- Issues: Repository Issues
- Dokumentation: Siehe
/knowledgebase
auf der Website
📄 Lizenz
Dieses Projekt steht unter der BSD-3-Clause Lizenz.
Description
Languages
Astro
41%
TypeScript
28.2%
CSS
12.6%
HTML
10%
JavaScript
4.7%
Other
3.5%