finalize methods implementation
This commit is contained in:
parent
1d048e816c
commit
a8cc30d5ac
@ -2,6 +2,7 @@
|
||||
export interface Props {
|
||||
tool: {
|
||||
name: string;
|
||||
type?: string;
|
||||
description: string;
|
||||
domains: string[];
|
||||
phases: string[];
|
||||
@ -19,6 +20,9 @@ export interface Props {
|
||||
|
||||
const { tool } = Astro.props;
|
||||
|
||||
// Check if this is a method vs software
|
||||
const isMethod = tool.type === 'method';
|
||||
|
||||
// Check if tool has a valid project URL (means we're hosting it)
|
||||
const hasValidProjectUrl = tool.projectUrl !== undefined &&
|
||||
tool.projectUrl !== null &&
|
||||
@ -28,17 +32,20 @@ const hasValidProjectUrl = tool.projectUrl !== undefined &&
|
||||
// Check if tool has knowledgebase entry
|
||||
const hasKnowledgebase = tool.knowledgebase === true;
|
||||
|
||||
// Determine card styling based on hosting status (derived from projectUrl)
|
||||
const cardClass = hasValidProjectUrl ? 'card card-hosted tool-card' : (tool.license !== 'Proprietary' ? 'card card-oss tool-card' : 'card tool-card');
|
||||
// Determine card styling based on type and hosting status
|
||||
const cardClass = isMethod ? 'card card-method tool-card' :
|
||||
hasValidProjectUrl ? 'card card-hosted tool-card' :
|
||||
(tool.license !== 'Proprietary' ? 'card card-oss tool-card' : 'card tool-card');
|
||||
---
|
||||
|
||||
<div class={cardClass} onclick={`window.showToolDetails('${tool.name}')`} style="cursor: pointer; border-left: 4px solid ${hasValidProjectUrl ? 'var(--color-hosted)' : tool.license !== 'Proprietary' ? 'var(--color-oss)' : 'var(--color-border)'};">
|
||||
<div class={cardClass} onclick={`window.showToolDetails('${tool.name}')`} style="cursor: pointer; border-left: 4px solid ${isMethod ? 'var(--color-method)' : hasValidProjectUrl ? 'var(--color-hosted)' : tool.license !== 'Proprietary' ? 'var(--color-oss)' : 'var(--color-border)'};">
|
||||
<!-- Card Header with Fixed Height -->
|
||||
<div class="tool-card-header">
|
||||
<h3>{tool.name}</h3>
|
||||
<div class="tool-card-badges">
|
||||
{hasValidProjectUrl && <span class="badge badge-primary">CC24-Server</span>}
|
||||
{tool.license !== 'Proprietary' && <span class="badge badge-success">OSS</span>}
|
||||
{isMethod && <span class="badge" style="background-color: var(--color-method); color: white;">Methode</span>}
|
||||
{!isMethod && hasValidProjectUrl && <span class="badge badge-primary">Self-Hosted</span>}
|
||||
{!isMethod && tool.license !== 'Proprietary' && <span class="badge badge-success">OSS</span>}
|
||||
{hasKnowledgebase && <span class="badge badge-error">📖</span>}
|
||||
</div>
|
||||
</div>
|
||||
@ -77,7 +84,7 @@ const cardClass = hasValidProjectUrl ? 'card card-hosted tool-card' : (tool.lice
|
||||
<polyline points="14 2 14 8 20 8"></polyline>
|
||||
</svg>
|
||||
<span style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;">
|
||||
{tool.license === 'Proprietary' ? 'Prop.' : tool.license.split(' ')[0]}
|
||||
{isMethod ? 'Methode' : tool.license === 'Proprietary' ? 'Prop.' : tool.license?.split(' ')[0]}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -91,7 +98,12 @@ const cardClass = hasValidProjectUrl ? 'card card-hosted tool-card' : (tool.lice
|
||||
|
||||
<!-- Buttons - Fixed at Bottom -->
|
||||
<div class="tool-card-buttons" onclick="event.stopPropagation();">
|
||||
{hasValidProjectUrl ? (
|
||||
{isMethod ? (
|
||||
<!-- Method button -->
|
||||
<a href={tool.projectUrl || tool.url} target="_blank" rel="noopener noreferrer" class="btn btn-primary single-button" style="background-color: var(--color-method); border-color: var(--color-method);">
|
||||
Zur Methode
|
||||
</a>
|
||||
) : hasValidProjectUrl ? (
|
||||
<!-- Two buttons for hosted tools -->
|
||||
<div class="button-row">
|
||||
<a href={tool.url} target="_blank" rel="noopener noreferrer" class="btn btn-secondary">
|
||||
|
@ -251,6 +251,11 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
tool.projectUrl.trim() !== "";
|
||||
}
|
||||
|
||||
// Check if item is a method
|
||||
function isMethod(tool) {
|
||||
return tool.type === 'method';
|
||||
}
|
||||
|
||||
// Update matrix highlighting based on current filters
|
||||
function updateMatrixHighlighting() {
|
||||
const currentView = document.querySelector('.view-toggle.active')?.getAttribute('data-view');
|
||||
@ -324,8 +329,8 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Proprietary filter
|
||||
if (!includeProprietary && tool.license === 'Proprietary') {
|
||||
// Proprietary filter (skip for methods since they don't have licenses)
|
||||
if (!includeProprietary && !isMethod(tool) && tool.license === 'Proprietary') {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -337,13 +342,21 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
return true;
|
||||
});
|
||||
|
||||
// Sort filtered results: server-based first, proprietary last
|
||||
// Sort filtered results: methods first, then self-hosted, then OSS, proprietary last
|
||||
filtered.sort((a, b) => {
|
||||
const aMethod = isMethod(a);
|
||||
const bMethod = isMethod(b);
|
||||
const aHosted = isToolHosted(a);
|
||||
const bHosted = isToolHosted(b);
|
||||
const aProprietary = a.license === 'Proprietary';
|
||||
const bProprietary = b.license === 'Proprietary';
|
||||
const aProprietary = !aMethod && a.license === 'Proprietary';
|
||||
const bProprietary = !bMethod && b.license === 'Proprietary';
|
||||
|
||||
// Methods first
|
||||
//if (aMethod && !bMethod) return -1;
|
||||
//if (!aMethod && bMethod) return 1;
|
||||
|
||||
// If both are methods or both are tools
|
||||
if (aMethod === bMethod) {
|
||||
// Self-hosted tools first (regardless of license)
|
||||
if (aHosted && !bHosted) return -1;
|
||||
if (!aHosted && bHosted) return 1;
|
||||
@ -353,13 +366,13 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
if (!aProprietary && bProprietary) return -1;
|
||||
if (aProprietary && !bProprietary) return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
});
|
||||
|
||||
// Update matrix highlighting
|
||||
updateMatrixHighlighting();
|
||||
|
||||
// Emit custom event with filtered results
|
||||
window.dispatchEvent(new CustomEvent('toolsFiltered', { detail: filtered }));
|
||||
}
|
||||
|
@ -107,13 +107,17 @@ domains.forEach((domain: any) => {
|
||||
{phases.map((phase: any) => (
|
||||
<td class="matrix-cell" data-domain={domain.id} data-phase={phase.id}>
|
||||
{matrix[domain.id][phase.id].map((tool: any) => {
|
||||
const isMethod = tool.type === 'method';
|
||||
const hasValidProjectUrl = tool.projectUrl !== undefined &&
|
||||
tool.projectUrl !== null &&
|
||||
tool.projectUrl !== "" &&
|
||||
tool.projectUrl.trim() !== "";
|
||||
const chipClass = isMethod ? 'tool-chip-method' :
|
||||
hasValidProjectUrl ? 'tool-chip-hosted' :
|
||||
tool.license !== 'Proprietary' ? 'tool-chip-oss' : '';
|
||||
return (
|
||||
<span
|
||||
class={`tool-chip ${hasValidProjectUrl ? 'tool-chip-hosted' : tool.license !== 'Proprietary' ? 'tool-chip-oss' : ''}`}
|
||||
class={`tool-chip ${chipClass}`}
|
||||
data-tool-name={tool.name}
|
||||
onclick={`window.showToolDetails('${tool.name}')`}
|
||||
title={`${tool.name}${tool.knowledgebase === true ? ' (KB verfügbar)' : ''}`}
|
||||
@ -392,6 +396,7 @@ domains.forEach((domain: any) => {
|
||||
|
||||
// Re-populate with filtered tools based on domains × phases
|
||||
filtered.forEach(tool => {
|
||||
const isMethod = tool.type === 'method';
|
||||
const hasValidProjectUrl = tool.projectUrl !== undefined &&
|
||||
tool.projectUrl !== null &&
|
||||
tool.projectUrl !== "" &&
|
||||
@ -405,7 +410,10 @@ domains.forEach((domain: any) => {
|
||||
const cell = document.querySelector(`[data-domain="${domain}"][data-phase="${phase}"]`);
|
||||
if (cell) {
|
||||
const chip = document.createElement('span');
|
||||
chip.className = `tool-chip ${hasValidProjectUrl ? 'tool-chip-hosted' : tool.license !== 'Proprietary' ? 'tool-chip-oss' : ''}`;
|
||||
const chipClass = isMethod ? 'tool-chip-method' :
|
||||
hasValidProjectUrl ? 'tool-chip-hosted' :
|
||||
tool.license !== 'Proprietary' ? 'tool-chip-oss' : '';
|
||||
chip.className = `tool-chip ${chipClass}`;
|
||||
chip.setAttribute('title', `${tool.name}${tool.knowledgebase === true ? ' (KB verfügbar)' : ''}`);
|
||||
chip.innerHTML = `${tool.name}${tool.knowledgebase === true ? '<span style="margin-left: 0.25rem; font-size: 0.6875rem;">📖</span>' : ''}`;
|
||||
chip.onclick = () => window.showToolDetails(tool.name);
|
||||
|
@ -1,5 +1,6 @@
|
||||
tools:
|
||||
- name: Autopsy
|
||||
type: software
|
||||
description: >-
|
||||
Die führende Open-Source-Alternative zu kommerziellen Forensik-Suiten mit
|
||||
intuitiver grafischer Oberfläche. Besonders stark in der Timeline-Analyse,
|
||||
@ -34,6 +35,7 @@ tools:
|
||||
- artifact-extraction
|
||||
- keyword-search
|
||||
- name: Volatility 3
|
||||
type: software
|
||||
description: >-
|
||||
Das Schweizer Taschenmesser der Memory-Forensik, unverzichtbar für die
|
||||
Analyse von RAM-Dumps. Mit über 100 Plugins extrahiert es Prozesse,
|
||||
@ -69,6 +71,7 @@ tools:
|
||||
- scripting
|
||||
- process-analysis
|
||||
- name: TheHive 5
|
||||
type: software
|
||||
description: >-
|
||||
Moderne Security-Orchestrierungs-Plattform für die koordinierte
|
||||
Incident-Response im Team. Integriert nahtlos mit MISP, Cortex und anderen
|
||||
@ -103,6 +106,7 @@ tools:
|
||||
- incident-tracking
|
||||
statusUrl: https://uptime.example.lab/api/badge/1/status
|
||||
- name: MISP
|
||||
type: software
|
||||
description: >-
|
||||
Das Rückgrat des modernen Threat-Intelligence-Sharings mit über 40.000
|
||||
aktiven Instanzen weltweit. Ermöglicht den strukturierten Austausch von
|
||||
@ -136,6 +140,7 @@ tools:
|
||||
- automation
|
||||
statusUrl: https://status.mikoshi.de/api/badge/34/status
|
||||
- name: Timesketch
|
||||
type: software
|
||||
description: >-
|
||||
Google's Open-Source-Lösung für kollaborative Timeline-Analyse großer
|
||||
Datensätze. Visualisiert und korreliert Ereignisse aus verschiedenen
|
||||
@ -168,6 +173,7 @@ tools:
|
||||
- correlation
|
||||
statusUrl: https://uptime.example.lab/api/badge/3/status
|
||||
- name: Wireshark
|
||||
type: software
|
||||
description: >-
|
||||
Der unangefochtene König der Netzwerk-Protokoll-Analyse mit Support für
|
||||
über 3000 Protokolle. Unverzichtbar für die Untersuchung von
|
||||
@ -203,6 +209,7 @@ tools:
|
||||
- visualization
|
||||
- filtering
|
||||
- name: Magnet AXIOM
|
||||
type: software
|
||||
description: >-
|
||||
Die Rolls-Royce unter den kommerziellen Forensik-Suiten mit
|
||||
beeindruckender Automatisierung. Glänzt besonders bei Cloud-Forensik mit
|
||||
@ -237,6 +244,7 @@ tools:
|
||||
- automated-analysis
|
||||
- reporting
|
||||
- name: Cellebrite UFED
|
||||
type: software
|
||||
description: >-
|
||||
Der Goldstandard der mobilen Forensik mit legendären
|
||||
Entsperrungsfähigkeiten für aktuelle Smartphones. Nutzt Zero-Day-Exploits
|
||||
@ -268,6 +276,7 @@ tools:
|
||||
- hardware-interface
|
||||
- automated-analysis
|
||||
- name: Cuckoo Sandbox 3
|
||||
type: software
|
||||
description: >-
|
||||
Die führende Open-Source-Sandbox für automatisierte Malware-Analyse in
|
||||
isolierten Umgebungen. Zeichnet Systemaufrufe, Netzwerkverkehr und
|
||||
@ -299,6 +308,7 @@ tools:
|
||||
- virtualization
|
||||
- automated-analysis
|
||||
- name: Ghidra
|
||||
type: software
|
||||
description: >-
|
||||
NSAs Geschenk an die Reverse-Engineering-Community als mächtige
|
||||
Alternative zu IDA Pro. Der Decompiler verwandelt Maschinencode zurück in
|
||||
@ -330,6 +340,7 @@ tools:
|
||||
- scripting
|
||||
- static-analysis
|
||||
- name: Plaso (log2timeline)
|
||||
type: software
|
||||
description: >-
|
||||
Der industrielle Staubsauger für Zeitstempel - extrahiert aus hunderten
|
||||
Quellen eine Super-Timeline. Parst Windows-Event-Logs, Browser-Historie,
|
||||
@ -364,6 +375,7 @@ tools:
|
||||
- artifact-extraction
|
||||
- scripting
|
||||
- name: CyberChef
|
||||
type: software
|
||||
description: >-
|
||||
Das digitale Schweizer Taschenmesser für Daten-Manipulation mit über 300
|
||||
Operations. Von Base64-Dekodierung über Verschlüsselung bis zur
|
||||
@ -395,6 +407,7 @@ tools:
|
||||
- visualization
|
||||
- parsing
|
||||
- name: Velociraptor
|
||||
type: software
|
||||
description: >-
|
||||
Die nächste Evolution der Endpoint-Forensik mit skalierbarer
|
||||
Remote-Collection-Architektur. Die mächtige VQL-Abfragesprache ermöglicht
|
||||
@ -434,6 +447,7 @@ tools:
|
||||
- hunting
|
||||
statusUrl: https://status.mikoshi.de/api/badge/33/status
|
||||
- name: GRR Rapid Response
|
||||
type: software
|
||||
description: >-
|
||||
Googles Antwort auf Enterprise-Scale-Forensik für die Untersuchung von
|
||||
Flotten mit tausenden Clients. Sammelt gezielt Artefakte und führt
|
||||
@ -469,6 +483,7 @@ tools:
|
||||
- live-forensics
|
||||
- fleet-management
|
||||
- name: Arkime
|
||||
type: software
|
||||
description: >-
|
||||
Das Heavy-Metal-Tool für Full-Packet-Capture mit der Fähigkeit, Petabytes
|
||||
an Netzwerkverkehr zu speichern. Indiziert in Echtzeit Metadaten für
|
||||
@ -502,6 +517,7 @@ tools:
|
||||
- api
|
||||
- big-data
|
||||
- name: NetworkMiner
|
||||
type: software
|
||||
description: >-
|
||||
Der benutzerfreundliche kleine Bruder von Wireshark mit Fokus auf Forensik
|
||||
statt Live-Analyse. Extrahiert automatisch übertragene Dateien, Bilder und
|
||||
@ -534,6 +550,7 @@ tools:
|
||||
- parsing
|
||||
- session-reconstruction
|
||||
- name: ExifTool
|
||||
type: software
|
||||
description: >-
|
||||
Der Metadaten-Maestro, der aus über 1000 Dateiformaten verborgene
|
||||
Informationen extrahiert. Findet GPS-Koordinaten in Fotos, Autoren in
|
||||
@ -568,6 +585,7 @@ tools:
|
||||
- scripting
|
||||
- batch-processing
|
||||
- name: Chainalysis
|
||||
type: software
|
||||
description: >-
|
||||
Der Platzhirsch der Blockchain-Forensik mit Zugriff auf die größte
|
||||
Krypto-Intelligence-Datenbank weltweit. Clustering-Algorithmen
|
||||
@ -598,6 +616,7 @@ tools:
|
||||
- api
|
||||
- reporting
|
||||
- name: Neo4j
|
||||
type: software
|
||||
description: >-
|
||||
Die führende Graph-Datenbank verwandelt komplexe Beziehungsgeflechte in
|
||||
verständliche Visualisierungen. Mit Cypher-Queries lassen sich
|
||||
@ -635,6 +654,7 @@ tools:
|
||||
- query-language
|
||||
statusUrl: https://status.mikoshi.de/api/badge/32/status
|
||||
- name: QGIS
|
||||
type: software
|
||||
description: >-
|
||||
Das Open-Source-GIS-Kraftpaket für die Visualisierung von Geodaten in
|
||||
forensischen Untersuchungen. Erstellt aus GPS-Logs von Smartphones
|
||||
@ -667,6 +687,7 @@ tools:
|
||||
- scripting
|
||||
- reporting
|
||||
- name: Nextcloud
|
||||
type: software
|
||||
description: >-
|
||||
Die Open-Source-Cloud-Suite als sichere Kollaborations-Zentrale für
|
||||
Forensik-Teams. Bietet verschlüsselte Dateifreigabe, Office-Integration
|
||||
@ -703,6 +724,7 @@ tools:
|
||||
- document-management
|
||||
statusUrl: https://status.mikoshi.de/api/badge/11/status
|
||||
- name: Gitea
|
||||
type: software
|
||||
description: >-
|
||||
Das leichtgewichtige Git-Repository für die Versionierung von
|
||||
Forensik-Skripten und Dokumentation. Perfekt für die Verwaltung von
|
||||
@ -733,6 +755,7 @@ tools:
|
||||
- ci-cd
|
||||
statusUrl: https://status.mikoshi.de/api/badge/18/status
|
||||
- name: Binwalk
|
||||
type: software
|
||||
description: >-
|
||||
Der Firmware-Flüsterer, der aus IoT-Geräten und Routern ihre Geheimnisse
|
||||
extrahiert. Erkennt eingebettete Dateisysteme, komprimierte Archive und
|
||||
@ -763,6 +786,7 @@ tools:
|
||||
- extraction
|
||||
- scripting
|
||||
- name: LibreOffice
|
||||
type: software
|
||||
description: >-
|
||||
Die freie Office-Suite, die mehr kann als nur Berichte schreiben. Calc
|
||||
eignet sich hervorragend für die Analyse von CSV-Exporten und Log-Dateien.
|
||||
@ -802,6 +826,7 @@ tools:
|
||||
- data-processing
|
||||
- scripting
|
||||
- name: Microsoft Office 365
|
||||
type: software
|
||||
description: >-
|
||||
Der Industriestandard für professionelle Dokumentation mit nahtloser
|
||||
Cloud-Integration. Excel's Power Query verwandelt komplexe
|
||||
@ -842,6 +867,7 @@ tools:
|
||||
- cloud-based
|
||||
- reporting
|
||||
- name: GraphSense
|
||||
type: software
|
||||
description: >-
|
||||
Die europäische Alternative zu Chainalysis mit Open-Source-Kern und Fokus
|
||||
auf Privatsphäre. Clustering-Qualität noch nicht auf Chainalysis-Niveau,
|
||||
@ -872,6 +898,7 @@ tools:
|
||||
- api
|
||||
- big-data
|
||||
- name: FTK Imager
|
||||
type: software
|
||||
description: >-
|
||||
Der Oldtimer unter den Imaging-Tools, aber immer noch zuverlässig wie ein
|
||||
Schweizer Uhrwerk. Erstellt bit-genaue Kopien von Festplatten mit
|
||||
@ -901,6 +928,7 @@ tools:
|
||||
- verification
|
||||
- write-blocking
|
||||
- name: Guymager
|
||||
type: software
|
||||
description: >-
|
||||
Das schlanke Linux-Imaging-Tool mit Fokus auf Performance und
|
||||
Zuverlässigkeit. Multi-threaded Design nutzt moderne CPUs optimal für
|
||||
@ -929,6 +957,7 @@ tools:
|
||||
- multi-threading
|
||||
- write-blocking
|
||||
- name: Fuji
|
||||
type: software
|
||||
description: >-
|
||||
Der Geheimtipp für macOS-Forensiker - Live-Imaging ohne
|
||||
Kernel-Modifikationen. Umgeht geschickt Apples Sicherheitsmechanismen für
|
||||
@ -957,6 +986,7 @@ tools:
|
||||
- filesystem
|
||||
- macos-specific
|
||||
- name: ALEAPP
|
||||
type: software
|
||||
description: >-
|
||||
Android-Forensik leicht gemacht - parst dutzende Apps und System-Artefakte
|
||||
automatisch. Von WhatsApp-Chats über Standortdaten bis zu gelöschten
|
||||
@ -989,6 +1019,7 @@ tools:
|
||||
- reporting
|
||||
- timeline-analysis
|
||||
- name: iLEAPP
|
||||
type: software
|
||||
description: >-
|
||||
Das iOS-Pendant zu ALEAPP mit Fokus auf Apple's geschlossenem Ökosystem.
|
||||
Extrahiert versteckte Schätze aus iPhone-Backups inklusive gelöschter
|
||||
@ -1021,6 +1052,7 @@ tools:
|
||||
- reporting
|
||||
- ios-specific
|
||||
- name: VLEAPP
|
||||
type: software
|
||||
description: >-
|
||||
Die Zukunft der Fahrzeug-Forensik für vernetzte Autos und
|
||||
Infotainment-Systeme. Parst CAN-Bus-Daten, GPS-Tracks und
|
||||
@ -1052,6 +1084,7 @@ tools:
|
||||
- gps-analysis
|
||||
- can-bus
|
||||
- name: Kali Linux
|
||||
type: software
|
||||
description: >-
|
||||
Die Schweizer Armee-Messer-Distribution mit über 600 vorinstallierten
|
||||
Security-Tools. Von Forensik über Penetration Testing bis Reverse
|
||||
@ -1086,6 +1119,7 @@ tools:
|
||||
- virtualization
|
||||
- arm-support
|
||||
- name: dd
|
||||
type: software
|
||||
description: >-
|
||||
Das Unix-Urgestein für bit-genaues Kopieren von Datenträgern seit 1974.
|
||||
Minimalistisch aber mächtig - der Goldstandard für forensische Disk-Images
|
||||
@ -1115,6 +1149,7 @@ tools:
|
||||
- unix-tool
|
||||
- scripting
|
||||
- name: dcfldd
|
||||
type: software
|
||||
description: >-
|
||||
Die forensische Weiterentwicklung von dd mit eingebauter
|
||||
Hash-Verifizierung. Zeigt Fortschrittsbalken, splittet große Images und
|
||||
@ -1143,6 +1178,7 @@ tools:
|
||||
- progress-monitoring
|
||||
- split-output
|
||||
- name: ewfacquire
|
||||
type: software
|
||||
description: >-
|
||||
Das Kommandozeilen-Tool für Expert Witness Format (E01) Images mit
|
||||
Kompression. Teil der libewf-Suite, erstellt gerichtsfeste Images mit
|
||||
@ -1172,6 +1208,7 @@ tools:
|
||||
- metadata
|
||||
- verification
|
||||
- name: PhotoRec
|
||||
type: software
|
||||
description: >-
|
||||
Der Datenretter in der Not - findet gelöschte Dateien ohne
|
||||
Dateisystem-Strukturen. Signature-basiertes Carving für über 300
|
||||
@ -1203,6 +1240,7 @@ tools:
|
||||
- signature-based
|
||||
- cross-platform
|
||||
- name: Kismet
|
||||
type: software
|
||||
description: >-
|
||||
Der WLAN-Schnüffler der Extraklasse für Wireless-Forensik und
|
||||
Sicherheitsaudits. Passives Monitoring deckt versteckte Netzwerke, Rogue
|
||||
@ -1232,6 +1270,7 @@ tools:
|
||||
- passive-scanning
|
||||
- api
|
||||
- name: OSFMount
|
||||
type: software
|
||||
description: >-
|
||||
Mountet Disk-Images als virtuelle Laufwerke unter Windows für komfortable
|
||||
Analyse. Unterstützt alle gängigen Formate von RAW über E01 bis zu
|
||||
@ -1260,6 +1299,7 @@ tools:
|
||||
- virtual-drive
|
||||
- format-support
|
||||
- name: Thumbcache Viewer
|
||||
type: software
|
||||
description: >-
|
||||
Spezialist für Windows Thumbnail-Caches mit Zugriff auf gelöschte
|
||||
Bildvorschauen. Extrahiert Thumbnails aus thumbcache_*.db Dateien
|
||||
@ -1289,6 +1329,7 @@ tools:
|
||||
- thumbnail-extraction
|
||||
- deleted-data
|
||||
- name: RegRipper
|
||||
type: software
|
||||
description: >-
|
||||
Der Windows-Registry-Experte mit hunderten Plugins für automatisierte
|
||||
Analyse. Extrahiert USB-Historie, installierte Software,
|
||||
@ -1320,6 +1361,7 @@ tools:
|
||||
- plugin-system
|
||||
- artifact-extraction
|
||||
- name: YARA
|
||||
type: software
|
||||
description: >-
|
||||
Die Pattern-Matching-Engine für Malware-Jäger und Threat Hunter.
|
||||
Regelbasierte Suche nach Strings, Byte-Sequenzen und regulären Ausdrücken.
|
||||
@ -1351,6 +1393,7 @@ tools:
|
||||
- library
|
||||
- signature-based
|
||||
- name: Strings
|
||||
type: software
|
||||
description: >-
|
||||
Das simple Tool mit großer Wirkung - extrahiert lesbare Texte aus
|
||||
Binärdateien. Findet URLs, Passwörter, Pfade und andere
|
||||
@ -1381,6 +1424,7 @@ tools:
|
||||
- text-search
|
||||
- cross-platform
|
||||
- name: MaxMind GeoIP
|
||||
type: software
|
||||
description: >-
|
||||
Die Geolocation-Datenbank für IP-Adressen-Zuordnung zu Ländern und
|
||||
Städten. Unverzichtbar für die Analyse von Netzwerk-Logs und
|
||||
@ -1412,6 +1456,7 @@ tools:
|
||||
- enrichment
|
||||
- library
|
||||
- name: SIFT Workstation
|
||||
type: software
|
||||
description: >-
|
||||
SANS' kuratierte Ubuntu-Distribution vollgepackt mit Forensik-Tools und
|
||||
Skripten. Über 500 Tools vorinstalliert, vorkonfiguriert und dokumentiert
|
||||
@ -1443,6 +1488,7 @@ tools:
|
||||
- documentation
|
||||
- ubuntu-based
|
||||
- name: Tsurugi Linux
|
||||
type: software
|
||||
description: >-
|
||||
Die von Forensikern entwickelte Forensik-Distribution mit Fokus auf
|
||||
Benutzerfreundlichkeit. Besonders stark bei Mobile- und Malware-Forensik
|
||||
@ -1472,6 +1518,7 @@ tools:
|
||||
- mobile-focus
|
||||
- lightweight
|
||||
- name: Parrot Security OS
|
||||
type: software
|
||||
description: >-
|
||||
Die Datenschutz-fokussierte Alternative zu Kali mit Forensik-Werkzeugen.
|
||||
AnonSurf für anonymisierte Ermittlungen und verschlüsselte Kommunikation
|
||||
@ -1502,6 +1549,7 @@ tools:
|
||||
- lightweight
|
||||
- anonymization
|
||||
- name: Eric Zimmerman Tools
|
||||
type: software
|
||||
description: >-
|
||||
Die Tool-Sammlung des Windows-Forensik-Gurus für Artefakt-Analyse. Von
|
||||
ShellBags über Prefetch bis zu Amcache - jedes Tool ein Spezialist. Die
|
||||
@ -1530,6 +1578,7 @@ tools:
|
||||
- tool-collection
|
||||
- artifact-extraction
|
||||
- name: Impacket
|
||||
type: software
|
||||
description: >-
|
||||
Python-Bibliothek für Netzwerk-Protokoll-Manipulation und
|
||||
Windows-Forensik. Ermöglicht Remote-Zugriff auf Windows-Systeme für
|
||||
@ -1562,6 +1611,7 @@ tools:
|
||||
- scripting
|
||||
- api
|
||||
- name: RSA NetWitness
|
||||
type: software
|
||||
description: >-
|
||||
Enterprise-Grade SIEM und Forensik-Plattform für große Netzwerke.
|
||||
Korreliert Logs, Packets und Endpoints für 360-Grad-Sicht auf Incidents.
|
||||
@ -1593,6 +1643,7 @@ tools:
|
||||
- machine-learning
|
||||
- enterprise
|
||||
- name: X-Ways Forensics
|
||||
type: software
|
||||
description: >-
|
||||
Der deutsche Präzisionsskalpell unter den Forensik-Tools mit
|
||||
unübertroffener Effizienz. Besonders geschätzt für blitzschnelle Searches
|
||||
@ -1622,6 +1673,7 @@ tools:
|
||||
- german-made
|
||||
- hex-editor
|
||||
- name: EnCase
|
||||
type: software
|
||||
description: >-
|
||||
Der Veteran der kommerziellen Forensik-Tools mit 25 Jahren
|
||||
Gerichtserfahrung. EnScript-Programmierung ermöglicht maßgeschneiderte
|
||||
@ -1652,6 +1704,7 @@ tools:
|
||||
- certification
|
||||
- scripting
|
||||
- name: FRED
|
||||
type: software
|
||||
description: >-
|
||||
Forensic Recovery of Evidence Device - spezialisierte Hardware für
|
||||
Imaging. Kombiniert Write-Blocker, Imager und Analyse-Workstation in einem
|
||||
@ -1680,6 +1733,7 @@ tools:
|
||||
- professional-lab
|
||||
- integrated-system
|
||||
- name: ICSpector
|
||||
type: software
|
||||
description: >-
|
||||
Ein von Microsoft entwickeltes Open-Source-Framework, das eine besondere
|
||||
Nische bedient: Die Datensammlung bei Industriekontrollsystemen und
|
||||
@ -1703,6 +1757,104 @@ tools:
|
||||
- python
|
||||
- binary
|
||||
- scripting
|
||||
- name: "Live Memory Acquisition Procedure"
|
||||
type: method
|
||||
description: >-
|
||||
Standardisiertes Verfahren zur forensisch korrekten Akquisition des
|
||||
Arbeitsspeichers laufender Systeme. Umfasst Bewertung der
|
||||
Systemkritikalität, Auswahl geeigneter Tools, Minimierung der
|
||||
System-Kontamination und Dokumentation der Chain of Custody. Essentiell
|
||||
für die Sicherung flüchtiger Beweise wie Prozess-Informationen,
|
||||
Netzwerkverbindungen und Verschlüsselungsschlüssel.
|
||||
domains:
|
||||
- incident-response
|
||||
- law-enforcement
|
||||
- malware-analysis
|
||||
phases:
|
||||
- data-collection
|
||||
platforms: []
|
||||
domain-agnostic-software: null
|
||||
skillLevel: advanced
|
||||
accessType: null
|
||||
url: https://www.nist.gov/publications/guide-integrating-forensic-techniques-incident-response
|
||||
projectUrl:
|
||||
license: null
|
||||
knowledgebase: false
|
||||
tags:
|
||||
- memory-acquisition
|
||||
- volatile-evidence
|
||||
- live-forensics
|
||||
- ram-dump
|
||||
- evidence-preservation
|
||||
- procedure
|
||||
- name: "Rapid Incident Response Triage on macOS"
|
||||
type: method
|
||||
description: >-
|
||||
Spezialisierte Methodik für die schnelle Incident Response auf
|
||||
macOS-Systemen mit Fokus auf die Sammlung kritischer forensischer
|
||||
Artefakte in unter einer Stunde. Adressiert die Lücke zwischen
|
||||
Windows-zentrierten IR-Prozessen und macOS-spezifischen
|
||||
Sicherheitsarchitekturen. Nutzt Tools wie Aftermath für effiziente
|
||||
Datensammlung ohne zeitaufwändige Full-Disk-Images. Besonders wertvoll
|
||||
für Unternehmensumgebungen mit gemischten Betriebssystem-Landschaften.
|
||||
domains:
|
||||
- incident-response
|
||||
- law-enforcement
|
||||
- malware-analysis
|
||||
phases:
|
||||
- data-collection
|
||||
- examination
|
||||
platforms: []
|
||||
domain-agnostic-software: null
|
||||
skillLevel: intermediate
|
||||
accessType: null
|
||||
url: https://www.sans.org/white-papers/rapid-incident-response-on-macos-actionable-insights-under-hour/
|
||||
projectUrl:
|
||||
license: null
|
||||
knowledgebase:
|
||||
tags:
|
||||
- macos
|
||||
- rapid-response
|
||||
- triage
|
||||
- incident-response
|
||||
- aftermath
|
||||
- enterprise
|
||||
- methodology
|
||||
- apple
|
||||
- name: "Aftermath"
|
||||
type: software
|
||||
description: >-
|
||||
Jamf's Open-Source-Tool für die schnelle Sammlung forensischer Artefakte
|
||||
auf macOS-Systemen. Sammelt kritische Daten wie Prozessinformationen,
|
||||
Netzwerkverbindungen, Dateisystem-Metadaten und Systemkonfigurationen
|
||||
ohne Full-Disk-Imaging. Speziell entwickelt für die Rapid-Response-Triage
|
||||
in Enterprise-Umgebungen mit macOS-Geräten. Normalisiert Zeitstempel und
|
||||
erstellt durchsuchbare Ausgabeformate für effiziente Analyse.
|
||||
domains:
|
||||
- incident-response
|
||||
- law-enforcement
|
||||
- malware-analysis
|
||||
phases:
|
||||
- data-collection
|
||||
- examination
|
||||
platforms:
|
||||
- macOS
|
||||
domain-agnostic-software: null
|
||||
skillLevel: intermediate
|
||||
accessType: download
|
||||
url: https://github.com/jamf/aftermath/
|
||||
projectUrl: ''
|
||||
license: Apache 2.0
|
||||
knowledgebase: false
|
||||
tags:
|
||||
- macos
|
||||
- incident-response
|
||||
- triage
|
||||
- artifact-collection
|
||||
- rapid-response
|
||||
- jamf
|
||||
- enterprise
|
||||
- commandline
|
||||
domains:
|
||||
- id: incident-response
|
||||
name: Incident Response & Breach-Untersuchung
|
||||
|
@ -337,6 +337,7 @@ const tools = data.tools;
|
||||
(window as any).switchToAIView = () => switchToView('ai');
|
||||
|
||||
function createToolCard(tool) {
|
||||
const isMethod = tool.type === 'method';
|
||||
const hasValidProjectUrl = tool.projectUrl !== undefined &&
|
||||
tool.projectUrl !== null &&
|
||||
tool.projectUrl !== "" &&
|
||||
@ -345,7 +346,9 @@ function createToolCard(tool) {
|
||||
const hasKnowledgebase = tool.knowledgebase === true;
|
||||
|
||||
const cardDiv = document.createElement('div');
|
||||
const cardClass = hasValidProjectUrl ? 'card card-hosted tool-card' : (tool.license !== 'Proprietary' ? 'card card-oss tool-card' : 'card tool-card');
|
||||
const cardClass = isMethod ? 'card card-method tool-card' :
|
||||
hasValidProjectUrl ? 'card card-hosted tool-card' :
|
||||
(tool.license !== 'Proprietary' ? 'card card-oss tool-card' : 'card tool-card');
|
||||
cardDiv.className = cardClass;
|
||||
cardDiv.style.cursor = 'pointer';
|
||||
cardDiv.onclick = () => (window as any).showToolDetails(tool.name);
|
||||
@ -354,8 +357,9 @@ function createToolCard(tool) {
|
||||
<div class="tool-card-header">
|
||||
<h3>${tool.name}</h3>
|
||||
<div class="tool-card-badges">
|
||||
${hasValidProjectUrl ? '<span class="badge badge-primary">CC24-Server</span>' : ''}
|
||||
${tool.license !== 'Proprietary' ? '<span class="badge badge-success">OSS</span>' : ''}
|
||||
${isMethod ? '<span class="badge" style="background-color: var(--color-method); color: white;">Methode</span>' : ''}
|
||||
${!isMethod && hasValidProjectUrl ? '<span class="badge badge-primary">Self-Hosted</span>' : ''}
|
||||
${!isMethod && tool.license !== 'Proprietary' ? '<span class="badge badge-success">OSS</span>' : ''}
|
||||
${hasKnowledgebase ? '<span class="badge badge-error">📖</span>' : ''}
|
||||
</div>
|
||||
</div>
|
||||
@ -392,7 +396,7 @@ function createToolCard(tool) {
|
||||
<polyline points="14 2 14 8 20 8"></polyline>
|
||||
</svg>
|
||||
<span style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;">
|
||||
${tool.license === 'Proprietary' ? 'Prop.' : tool.license.split(' ')[0]}
|
||||
${isMethod ? 'Methode' : tool.license === 'Proprietary' ? 'Prop.' : tool.license?.split(' ')[0] || 'N/A'}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -402,7 +406,11 @@ function createToolCard(tool) {
|
||||
</div>
|
||||
|
||||
<div class="tool-card-buttons" onclick="event.stopPropagation();">
|
||||
${hasValidProjectUrl ? `
|
||||
${isMethod ? `
|
||||
<a href="${tool.projectUrl || tool.url}" target="_blank" rel="noopener noreferrer" class="btn btn-primary single-button" style="background-color: var(--color-method); border-color: var(--color-method);">
|
||||
Zur Methode
|
||||
</a>
|
||||
` : hasValidProjectUrl ? `
|
||||
<div class="button-row">
|
||||
<a href="${tool.url}" target="_blank" rel="noopener noreferrer" class="btn btn-secondary">
|
||||
Homepage
|
||||
|
@ -26,6 +26,8 @@
|
||||
--color-hosted-bg: #f3f0ff;
|
||||
--color-oss: #10b981;
|
||||
--color-oss-bg: #ecfdf5;
|
||||
--color-method: #3a90ed;
|
||||
--color-method-bg: #f3f4f6;
|
||||
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 5%);
|
||||
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 10%);
|
||||
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 10%);
|
||||
@ -53,6 +55,8 @@
|
||||
--color-hosted-bg: #2e1065;
|
||||
--color-oss: #34d399;
|
||||
--color-oss-bg: #064e3b;
|
||||
--color-method: #8bbdfa;
|
||||
--color-method-bg: #2e4e81;
|
||||
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 30%);
|
||||
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 40%);
|
||||
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 50%);
|
||||
@ -278,6 +282,11 @@ input[type="checkbox"] {
|
||||
border-color: var(--color-oss);
|
||||
}
|
||||
|
||||
.card-method {
|
||||
background-color: var(--color-method-bg);
|
||||
border-color: var(--color-method);
|
||||
}
|
||||
|
||||
.grid-auto-fit {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(300px, 350px));
|
||||
@ -390,6 +399,10 @@ input[type="checkbox"] {
|
||||
background: linear-gradient(to right, transparent 0%, var(--color-oss-bg) 70%);
|
||||
}
|
||||
|
||||
.card-method .tool-tags-container::after {
|
||||
background: linear-gradient(to right, transparent 0%, var(--color-method-bg) 70%);
|
||||
}
|
||||
|
||||
.tool-card-buttons {
|
||||
margin-top: auto;
|
||||
flex-shrink: 0;
|
||||
@ -538,6 +551,11 @@ input[type="checkbox"] {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.tool-chip-method {
|
||||
background-color: var(--color-method);
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Consolidated Badge System */
|
||||
.badge {
|
||||
display: inline-flex;
|
||||
|
@ -5,19 +5,20 @@ import { z } from 'zod';
|
||||
|
||||
const ToolSchema = z.object({
|
||||
name: z.string(),
|
||||
type: z.string(),
|
||||
description: z.string(),
|
||||
domains: z.array(z.string()).optional().nullable().default([]),
|
||||
phases: z.array(z.string()).optional().nullable().default([]),
|
||||
platforms: z.array(z.string()).default([]),
|
||||
skillLevel: z.string(),
|
||||
url: z.string(),
|
||||
license: z.string(),
|
||||
license: z.string().optional().nullable(),
|
||||
tags: z.array(z.string()).default([]),
|
||||
// Optional fields that can be null, undefined, or empty
|
||||
projectUrl: z.string().optional().nullable(),
|
||||
knowledgebase: z.boolean().optional().nullable(),
|
||||
statusUrl: z.string().optional().nullable(),
|
||||
accessType: z.string().optional(),
|
||||
accessType: z.string().optional().nullable(),
|
||||
'domain-agnostic-software': z.array(z.string()).optional().nullable(),
|
||||
});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user