2025-07-28 11:26:14 +02:00
2025-07-27 22:48:02 +02:00
2025-07-19 23:15:57 +02:00
2025-07-28 11:26:14 +02:00
2025-07-27 17:48:03 +02:00
2025-07-27 16:15:11 +02:00
2025-07-24 00:26:01 +02:00
2025-07-28 10:46:17 +02:00
2025-07-28 10:46:17 +02:00
2025-07-12 22:10:28 +00:00
2025-07-25 14:23:21 +02:00
2025-07-27 21:08:00 +02:00

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_API_ENDPOINT, AI_API_KEY, AI_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_MODEL=mistral-large-latest
AI_API_ENDPOINT=https://api.mistral.ai
AI_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:

  1. Issue im Repository erstellen
  2. Feature-Branch erstellen
  3. Pull Request öffnen
  4. Tests durchführen

📞 Support

Bei Problemen oder Fragen:

📄 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%