prompts-update
This commit is contained in:
parent
2aa741ed09
commit
93783dde3d
@ -4,15 +4,15 @@ export const AI_PROMPTS = {
|
|||||||
|
|
||||||
toolSelection: (mode: string, userQuery: string, selectionMethod: string, maxSelectedItems: number) => {
|
toolSelection: (mode: string, userQuery: string, selectionMethod: string, maxSelectedItems: number) => {
|
||||||
const modeInstruction = mode === 'workflow'
|
const modeInstruction = mode === 'workflow'
|
||||||
? 'Der Benutzer möchte einen UMFASSENDEN WORKFLOW mit mehreren Tools/Methoden über verschiedene Phasen. Wählen Sie 15-25 Tools aus, die den vollständigen Untersuchungslebenszyklus abdecken.'
|
? 'Der Benutzer möchte einen UMFASSENDEN WORKFLOW mit mehreren Tools/Methoden über verschiedene Phasen. Wählen Sie 15-25 Methoden/Tools aus, die den vollständigen Untersuchungszyklus (Datensammlung - Auswertung - Analyse - Berichterstattung) abdecken.'
|
||||||
: 'Der Benutzer möchte SPEZIFISCHE TOOLS/METHODEN, die ihr konkretes Problem direkt lösen. Wählen Sie 3-8 Tools aus, die am relevantesten und effektivsten sind.';
|
: 'Der Benutzer möchte SPEZIFISCHE TOOLS/METHODEN, die ihr konkretes Problem direkt lösen. Wählen Sie 4-10 Methoden/Tools aus, die am relevantesten und effektivsten sind.';
|
||||||
|
|
||||||
return `Sie sind ein DFIR-Experte mit Zugang zur kompletten forensischen Tool-Datenbank. Sie müssen die relevantesten Tools und Konzepte für diese spezifische Anfrage auswählen.
|
return `Sie sind ein DFIR-Experte mit Zugang zur kompletten forensischen Methoden/Tool-Datenbank. Sie müssen die relevantesten Methoden, Tools und Konzepte für diese spezifische Anfrage auswählen.
|
||||||
|
|
||||||
AUSWAHLMETHODE: ${selectionMethod}
|
AUSWAHLMETHODE: ${selectionMethod}
|
||||||
${selectionMethod === 'embeddings_candidates' ?
|
${selectionMethod === 'embeddings_candidates' ?
|
||||||
'Diese Tools wurden durch Vektor-Ähnlichkeit vorgefiltert, sie sind bereits relevant. Ihre Aufgabe ist es, die BESTEN aus diesem relevanten Set auszuwählen.' :
|
'Diese Methoden/Tools wurden durch Vektor-Ähnlichkeit vorgefiltert, sie sind bereits relevant. Ihre Aufgabe ist es, die BESTEN aus diesem relevanten Set auszuwählen. Wähle mindestens eine Methode und ein Tool, wenn vorhanden.' :
|
||||||
'Sie haben Zugang zur vollständigen Tool-Datenbank. Wählen Sie die relevantesten Tools für die Anfrage aus.'}
|
'Sie haben Zugang zur vollständigen Methoden/Tool-Datenbank. Wählen Sie die relevantesten Methoden/Tools für die Anfrage aus. Wähle mindestens eine Methode und ein Tool, wenn vorhanden.'}
|
||||||
|
|
||||||
${modeInstruction}
|
${modeInstruction}
|
||||||
|
|
||||||
@ -25,17 +25,17 @@ KRITISCHE AUSWAHLPRINZIPIEN:
|
|||||||
- Für SCHNELLE/DRINGENDE Szenarien → Priorisieren Sie METHODEN und schnelle Antwort-Ansätze
|
- Für SCHNELLE/DRINGENDE Szenarien → Priorisieren Sie METHODEN und schnelle Antwort-Ansätze
|
||||||
- Für ZEITKRITISCHE Vorfälle → Wählen Sie Triage-Methoden über tiefe Analyse-Tools
|
- Für ZEITKRITISCHE Vorfälle → Wählen Sie Triage-Methoden über tiefe Analyse-Tools
|
||||||
- Für UMFASSENDE Analysen → Dann betrachten Sie detaillierte Software-Tools
|
- Für UMFASSENDE Analysen → Dann betrachten Sie detaillierte Software-Tools
|
||||||
- METHODEN (Typ: "method") sind oft besser als SOFTWARE für prozedurale Anleitung
|
- METHODEN (Typ: "method") sind oft besser als SOFTWARE für prozedurale Anleitung, eine gute Mischung ist aber zwingend erforderlich.
|
||||||
|
|
||||||
3. **SZENARIO-SPEZIFISCHE LOGIK**:
|
3. **SZENARIO-SPEZIFISCHE LOGIK**:
|
||||||
- "Schnell/Quick/Dringend/Triage" Szenarien → Rapid Incident Response und Triage METHODE > Volatility
|
- "Schnell/Quick/Dringend/Triage" Szenarien → Rapid Incident Response und Triage METHODE > Volatility oder ähnliche
|
||||||
- "Industrial/SCADA/ICS" Szenarien → Spezialisierte ICS-Tools > generische Netzwerk-Tools
|
- "Industrial/SCADA/ICS" Szenarien → Spezialisierte ICS-Tools > generische Netzwerk-Tools
|
||||||
- "Mobile/Android/iOS" Szenarien → Mobile-spezifische Tools > Desktop-Forensik-Tools
|
- "Mobile/Android/iOS" Szenarien → Mobile-spezifische Tools > Desktop-Forensik-Tools
|
||||||
- "Speicher-Analyse dringend benötigt" → Schnelle Speicher-Tools/Methoden > umfassende Volatility-Analyse
|
- "Speicher-Analyse dringend benötigt" → Schnelle Speicher-Tools/Methoden > umfassende Volatility-Analyse oder ähnliche
|
||||||
|
|
||||||
ANALYSE-ANWEISUNGEN:
|
ANALYSE-ANWEISUNGEN:
|
||||||
1. Lesen Sie die VOLLSTÄNDIGE Beschreibung jedes Tools/Konzepts
|
1. Lesen Sie die VOLLSTÄNDIGE Beschreibung jedes Tools/Konzepts
|
||||||
2. Berücksichtigen Sie ALLE Tags, Plattformen, verwandte Tools und Metadaten
|
2. Berücksichtigen Sie ALLE Tags, Plattformen, verwandte Tools und Metadaten und Beschreibungen
|
||||||
3. **PASSENDE DRINGLICHKEIT**: Schnelle Szenarien brauchen schnelle Methoden, nicht tiefe Analyse-Tools
|
3. **PASSENDE DRINGLICHKEIT**: Schnelle Szenarien brauchen schnelle Methoden, nicht tiefe Analyse-Tools
|
||||||
4. **PASSENDE SPEZIFITÄT**: Spezialisierte Szenarien brauchen spezialisierte Tools, nicht generische
|
4. **PASSENDE SPEZIFITÄT**: Spezialisierte Szenarien brauchen spezialisierte Tools, nicht generische
|
||||||
5. **BERÜCKSICHTIGEN SIE DEN TYP**: Methoden bieten prozedurale Anleitung, Software bietet technische Fähigkeiten
|
5. **BERÜCKSICHTIGEN SIE DEN TYP**: Methoden bieten prozedurale Anleitung, Software bietet technische Fähigkeiten
|
||||||
@ -44,14 +44,14 @@ Wählen Sie die relevantesten Elemente aus (max ${maxSelectedItems} insgesamt).
|
|||||||
|
|
||||||
Antworten Sie NUR mit diesem JSON-Format:
|
Antworten Sie NUR mit diesem JSON-Format:
|
||||||
{
|
{
|
||||||
"selectedTools": ["Tool Name 1", "Tool Name 2", ...],
|
"selectedTools": ["Methode/Tool Name 1", "Methode/Tool Name 2", ...],
|
||||||
"selectedConcepts": ["Konzept Name 1", "Konzept Name 2", ...],
|
"selectedConcepts": ["Konzept Name 1", "Konzept Name 2", ...],
|
||||||
"reasoning": "Detaillierte Erklärung, warum diese spezifischen Tools für diese Anfrage ausgewählt wurden, und warum bestimmte populäre Tools NICHT ausgewählt wurden, falls sie für den Szenario-Kontext ungeeignet waren"
|
"reasoning": "Detaillierte Erklärung, warum diese spezifischen Methoden/Tools für diese Anfrage ausgewählt wurden, und warum bestimmte populäre Tools NICHT ausgewählt wurden, falls sie für den Szenario-Kontext ungeeignet waren"
|
||||||
}`;
|
}`;
|
||||||
},
|
},
|
||||||
|
|
||||||
scenarioAnalysis: (isWorkflow: boolean, userQuery: string) => {
|
scenarioAnalysis: (isWorkflow: boolean, userQuery: string) => {
|
||||||
const analysisType = isWorkflow ? 'forensische Szenario' : 'technische Problem';
|
const analysisType = isWorkflow ? 'Untersuchungsszenario' : 'technische Problem';
|
||||||
const considerations = isWorkflow ?
|
const considerations = isWorkflow ?
|
||||||
`- Angriffsvektoren und Bedrohungsmodellierung nach MITRE ATT&CK
|
`- Angriffsvektoren und Bedrohungsmodellierung nach MITRE ATT&CK
|
||||||
- Betroffene Systeme und kritische Infrastrukturen
|
- Betroffene Systeme und kritische Infrastrukturen
|
||||||
@ -63,26 +63,28 @@ Antworten Sie NUR mit diesem JSON-Format:
|
|||||||
|
|
||||||
return `Sie sind ein erfahrener DFIR-Experte. Analysieren Sie das folgende ${analysisType}.
|
return `Sie sind ein erfahrener DFIR-Experte. Analysieren Sie das folgende ${analysisType}.
|
||||||
|
|
||||||
${isWorkflow ? 'FORENSISCHES SZENARIO' : 'TECHNISCHES PROBLEM'}: "${userQuery}"
|
${isWorkflow ? 'UNTERSUCHUNGSSZENARIO' : 'TECHNISCHES PROBLEM'}: "${userQuery}"
|
||||||
|
|
||||||
Führen Sie eine systematische ${isWorkflow ? 'Szenario-Analyse' : 'Problem-Analyse'} durch und berücksichtigen Sie dabei:
|
Führen Sie eine systematische ${isWorkflow ? 'Szenario-Analyse' : 'Problem-Analyse'} durch und berücksichtigen Sie dabei:
|
||||||
|
|
||||||
${considerations}
|
${considerations}
|
||||||
|
|
||||||
WICHTIG: Antworten Sie NUR in fließendem deutschen Text ohne Listen, Aufzählungen oder Markdown-Formatierung. Maximum 150 Wörter.`;
|
WICHTIG: Antworten Sie NUR in fließendem deutschen Text ohne Listen, Aufzählungen oder Markdown-Formatierung. Maximum 120 Wörter.`;
|
||||||
},
|
},
|
||||||
|
|
||||||
investigationApproach: (isWorkflow: boolean, userQuery: string) => {
|
investigationApproach: (isWorkflow: boolean, userQuery: string) => {
|
||||||
const approachType = isWorkflow ? 'Untersuchungsansatz' : 'Lösungsansatz';
|
const approachType = isWorkflow ? 'Untersuchungsansatz' : 'Lösungsansatz';
|
||||||
const considerations = isWorkflow ?
|
const considerations = isWorkflow ?
|
||||||
`- Triage-Prioritäten nach forensischer Dringlichkeit
|
`- Triage-Prioritäten nach forensischer Dringlichkeit
|
||||||
- Phasenabfolge nach NIST-Methodik
|
- Phasenabfolge nach Methodik (Datensammlung - Auswertung - Analyse - Bericht)
|
||||||
- Kontaminationsvermeidung und forensische Isolierung` :
|
- Kontaminationsvermeidung und forensische Isolierung
|
||||||
|
- Objektivität und Transparenz` :
|
||||||
`- Methodik-Auswahl nach wissenschaftlichen Kriterien
|
`- Methodik-Auswahl nach wissenschaftlichen Kriterien
|
||||||
- Validierung und Verifizierung der gewählten Ansätze
|
- Validierung und Verifizierung der gewählten Ansätze
|
||||||
- Integration in bestehende forensische Workflows`;
|
- Integration in bestehende forensische Workflows
|
||||||
|
- Objektivität, Transparenz, Reproduzierbarkeit`;
|
||||||
|
|
||||||
return `Basierend auf der Analyse entwickeln Sie einen fundierten ${approachType} nach NIST SP 800-86 Methodik.
|
return `Basierend auf der Analyse entwickeln Sie einen fundierten ${approachType} nach Methodik (Datensammlung - Auswertung - Analyse - Bericht).
|
||||||
|
|
||||||
${isWorkflow ? 'SZENARIO' : 'PROBLEM'}: "${userQuery}"
|
${isWorkflow ? 'SZENARIO' : 'PROBLEM'}: "${userQuery}"
|
||||||
|
|
||||||
@ -90,17 +92,16 @@ Entwickeln Sie einen systematischen ${approachType} unter Berücksichtigung von:
|
|||||||
|
|
||||||
${considerations}
|
${considerations}
|
||||||
|
|
||||||
WICHTIG: Antworten Sie NUR in fließendem deutschen Text ohne Listen oder Markdown. Maximum 150 Wörter.`;
|
WICHTIG: Antworten Sie NUR in fließendem deutschen Text ohne Listen oder Markdown. Maximum 120 Wörter.`;
|
||||||
},
|
},
|
||||||
|
|
||||||
criticalConsiderations: (isWorkflow: boolean, userQuery: string) => {
|
criticalConsiderations: (isWorkflow: boolean, userQuery: string) => {
|
||||||
const considerationType = isWorkflow ? 'kritische forensische Überlegungen' : 'wichtige methodische Voraussetzungen';
|
const considerationType = isWorkflow ? 'kritische forensische Überlegungen' : 'wichtige methodische Voraussetzungen';
|
||||||
const aspects = isWorkflow ?
|
const aspects = isWorkflow ?
|
||||||
`- Time-sensitive evidence preservation
|
`- zeitkritische Beweissicherung vs. Gründlichkeit
|
||||||
- Chain of custody requirements und rechtliche Verwertbarkeit
|
- Chain of custody requirements und rechtliche Verwertbarkeit
|
||||||
- Incident containment vs. evidence preservation Dilemma
|
- Transparenz und Reproduzierbarkeit` :
|
||||||
- Privacy- und Compliance-Anforderungen` :
|
`- Methoden-/Tool-Validierung und Nachvollziehbarkeit
|
||||||
`- Tool-Validierung und Nachvollziehbarkeit
|
|
||||||
- False positive/negative Risiken bei der gewählten Methodik
|
- False positive/negative Risiken bei der gewählten Methodik
|
||||||
- Qualifikationsanforderungen für die Durchführung
|
- Qualifikationsanforderungen für die Durchführung
|
||||||
- Dokumentations- und Reporting-Standards`;
|
- Dokumentations- und Reporting-Standards`;
|
||||||
@ -128,41 +129,41 @@ ${phaseTools.map((tool: any, index: number) => `${index + 1}. ${tool.name}: ${to
|
|||||||
- Skill Level: ${tool.skillLevel}
|
- Skill Level: ${tool.skillLevel}
|
||||||
- Tags: ${tool.tags?.join(', ') || 'N/A'}`).join('\n\n')}
|
- Tags: ${tool.tags?.join(', ') || 'N/A'}`).join('\n\n')}
|
||||||
|
|
||||||
Bewerten Sie ALLE Tools vergleichend für diese spezifische Aufgabe UND Phase. Wählen Sie die 2-3 besten aus.
|
Bewerten Sie ALLE Methoden/Tools vergleichend für diese spezifische Aufgabe UND Phase. Wählen Sie die 2-3 besten aus. Es sollte eine Mischung aus Methoden und Tools sein, sofern verfügbar.
|
||||||
|
|
||||||
BEWERTUNGSKRITERIEN:
|
BEWERTUNGSKRITERIEN:
|
||||||
- Wie gut löst das Tool das forensische Problem im SZENARIO-Kontext?
|
- Wie gut löst die Methode/das Tool das forensische Problem im SZENARIO-Kontext?
|
||||||
- Wie gut passt es zur spezifischen PHASE "${phase.name}"?
|
- Wie gut passt es zur spezifischen PHASE "${phase.name}"?
|
||||||
- Wie vergleicht es sich mit den anderen verfügbaren Tools für diese Phase?
|
- Wie vergleicht es sich mit den anderen verfügbaren Methoden/Tools für diese Phase?
|
||||||
|
|
||||||
Antworten Sie AUSSCHLIESSLICH mit diesem JSON-Format:
|
Antworten Sie AUSSCHLIESSLICH mit diesem JSON-Format:
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"toolName": "Exakter Tool-Name",
|
"toolName": "Exakter Methoden/Tool-Name",
|
||||||
"taskRelevance": 85,
|
"taskRelevance": 85,
|
||||||
"justification": "Vergleichende Begründung warum dieses Tool für diese Phase und Aufgabe besser/schlechter als die anderen geeignet ist",
|
"justification": "Vergleichende Begründung warum diese Methode/dieses Tool für diese Phase und Aufgabe besser/schlechter als die anderen geeignet ist",
|
||||||
"limitations": ["Spezifische Einschränkung 1", "Einschränkung 2"]
|
"limitations": ["Spezifische Einschränkung 1", "Einschränkung 2"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
WICHTIG:
|
WICHTIG:
|
||||||
- taskRelevance: 0-100 Score basierend auf Szenario-Eignung UND Phasen-Passung im VERGLEICH zu anderen Tools
|
- taskRelevance: 0-100 Score basierend auf Szenario-Eignung UND Phasen-Passung im VERGLEICH zu anderen Tools
|
||||||
- Nur die 2-3 BESTEN Tools auswählen und bewerten
|
- Nur die 2-3 BESTEN Methoden/Tools auswählen und bewerten
|
||||||
- justification soll VERGLEICHEND sein ("besser als X weil...", "für diese Phase ideal weil...")`;
|
- justification soll VERGLEICHEND sein ("besser als X weil...", "für diese Phase ideal weil...")`;
|
||||||
},
|
},
|
||||||
|
|
||||||
toolEvaluation: (userQuery: string, tool: any, rank: number, taskRelevance: number) => {
|
toolEvaluation: (userQuery: string, tool: any, rank: number, taskRelevance: number) => {
|
||||||
return `Sie sind ein DFIR-Experte. Erklären Sie DETAILLIERT die Anwendung dieses bereits bewerteten Tools.
|
return `Sie sind ein DFIR-Experte. Erklären Sie DETAILLIERT die Anwendung dieser/dieses bereits bewerteten Methode/Tools.
|
||||||
|
|
||||||
PROBLEM: "${userQuery}"
|
PROBLEM: "${userQuery}"
|
||||||
TOOL: ${tool.name} (bereits bewertet mit ${taskRelevance}% Aufgaben-Eignung)
|
TOOL: ${tool.name} (bereits bewertet mit ${taskRelevance}% Aufgaben-Eignung)
|
||||||
BESCHREIBUNG: ${tool.description}
|
BESCHREIBUNG: ${tool.description}
|
||||||
|
|
||||||
Das Tool wurde bereits als Rang ${rank} für diese Aufgabe bewertet. Erklären Sie nun:
|
Die Methode/das Tool wurde bereits als Rang ${rank} für diese Aufgabe bewertet. Erklären Sie nun:
|
||||||
|
|
||||||
Antworten Sie AUSSCHLIESSLICH mit diesem JSON-Format:
|
Antworten Sie AUSSCHLIESSLICH mit diesem JSON-Format:
|
||||||
{
|
{
|
||||||
"detailed_explanation": "Detaillierte Erklärung warum und wie dieses Tool für diese spezifische Aufgabe eingesetzt wird",
|
"detailed_explanation": "Detaillierte Erklärung warum und wie diese Methode/Tool für diese spezifische Aufgabe eingesetzt wird",
|
||||||
"implementation_approach": "Konkrete Schritt-für-Schritt Anleitung zur korrekten Anwendung",
|
"implementation_approach": "Konkrete Schritt-für-Schritt Anleitung zur korrekten Anwendung",
|
||||||
"pros": ["Spezifischer Vorteil 1", "Spezifischer Vorteil 2"],
|
"pros": ["Spezifischer Vorteil 1", "Spezifischer Vorteil 2"],
|
||||||
"limitations": ["Spezifische Einschränkung 1", "Spezifische Einschränkung 2"],
|
"limitations": ["Spezifische Einschränkung 1", "Spezifische Einschränkung 2"],
|
||||||
@ -171,7 +172,7 @@ Antworten Sie AUSSCHLIESSLICH mit diesem JSON-Format:
|
|||||||
|
|
||||||
WICHTIG:
|
WICHTIG:
|
||||||
- Keine erneute Bewertung - nur detaillierte Erklärung der bereits bewerteten Eignung
|
- Keine erneute Bewertung - nur detaillierte Erklärung der bereits bewerteten Eignung
|
||||||
- "limitations" soll spezifische technische/methodische Einschränkungen des Tools auflisten
|
- "limitations" soll spezifische technische/methodische Einschränkungen der Methode/des Tools auflisten
|
||||||
- "pros" soll die Stärken für diese spezifische Aufgabe hervorheben`;
|
- "pros" soll die Stärken für diese spezifische Aufgabe hervorheben`;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -81,12 +81,13 @@ QUALITÄTSKRITERIEN FÜR FRAGEN:
|
|||||||
- Forensisch spezifisch, nicht allgemein (❌ "Mehr Details?" ✅ "Welche forensischen Artefakte (RAM-Dumps, Disk-Images, Logs) stehen zur Verfügung?")
|
- Forensisch spezifisch, nicht allgemein (❌ "Mehr Details?" ✅ "Welche forensischen Artefakte (RAM-Dumps, Disk-Images, Logs) stehen zur Verfügung?")
|
||||||
- Methodisch relevant (❌ "Wann passierte das?" ✅ "Liegen Log-Dateien aus dem Incident-Zeitraum vor, und welche Retention-Policy gilt?")
|
- Methodisch relevant (❌ "Wann passierte das?" ✅ "Liegen Log-Dateien aus dem Incident-Zeitraum vor, und welche Retention-Policy gilt?")
|
||||||
- Priorisiert nach Auswirkung auf die forensische Untersuchungsqualität
|
- Priorisiert nach Auswirkung auf die forensische Untersuchungsqualität
|
||||||
|
- Die Frage soll maximal 30 Wörter umfassen
|
||||||
|
|
||||||
ANTWORTFORMAT (NUR JSON, KEIN ZUSÄTZLICHER TEXT):
|
ANTWORTFORMAT (NUR JSON, KEIN ZUSÄTZLICHER TEXT):
|
||||||
[
|
[
|
||||||
"Forensisch spezifische Frage 1?",
|
"spezifische Frage 1?",
|
||||||
"Forensisch spezifische Frage 2?",
|
"spezifische Frage 2?",
|
||||||
"Forensisch spezifische Frage 3?"
|
"spezifische Frage 3?"
|
||||||
]
|
]
|
||||||
|
|
||||||
NUTZER-EINGABE:
|
NUTZER-EINGABE:
|
||||||
|
@ -172,7 +172,6 @@
|
|||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-line-clamp: 2;
|
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user