feat: Add new visual diagrams and their generation scripts, integrating them into relevant handbook chapters.
@@ -54,6 +54,8 @@ A typical AI red team engagement involves:
|
||||
|
||||
## 1.5 Types of AI/LLM Risks & Attacks
|
||||
|
||||

|
||||
|
||||
- **Prompt Injection:** Getting the model to do something unintended by manipulating input text context.
|
||||
- **Data Leakage/Extraction:** Causing the model to reveal its training data or sensitive inputs.
|
||||
- **Jailbreaks & Content Bypasses:** Circumventing safety controls to generate restricted or harmful output.
|
||||
|
||||
@@ -72,6 +72,8 @@ Never look at vulnerabilities in isolation. The most devastating real-world atta
|
||||
|
||||
- Reconnaissance → Social Engineering → Prompt Injection → Privilege Escalation → Data Exfiltration
|
||||
|
||||

|
||||
|
||||
Document each step, and always ask: **What risk can this chain create for the business or end user?**
|
||||
|
||||
## 3.7 Professionalism Under Pressure
|
||||
|
||||
@@ -85,6 +85,8 @@ The RoE defines _how_ testing will be conducted - including constraints, escalat
|
||||
|
||||
A smooth onboarding process earns trust, reduces errors, and ensures you hit the ground running.
|
||||
|
||||

|
||||
|
||||
### 4.4.1 Key Onboarding Steps
|
||||
|
||||
- **Kickoff Meeting:** Walk through SOW, RoE, introduce team members, clarify escalation/communication.
|
||||
|
||||
@@ -37,6 +37,8 @@ A robust threat model for AI systems typically includes:
|
||||
4. **Analyzing Impact & Likelihood**: What happens if each threat is realized, and how probable is it?
|
||||
5. **Prioritizing Risks**: Rank threats to focus red team efforts.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 5.3 Step 1: Defining Assets in AI/LLM Systems
|
||||
@@ -86,6 +88,8 @@ For each identified threat:
|
||||
- **Impact:** What’s the worst-case outcome? (Data breach, financial loss, reputational harm, regulatory penalty)
|
||||
- **Likelihood:** How easy is the attack in practice? Consider attacker capability, system complexity, existing defenses.
|
||||
|
||||

|
||||
|
||||
### Example Threat Table
|
||||
|
||||
| Asset | Threat | Actor | Likelihood | Impact | Risk Level |
|
||||
|
||||
@@ -80,6 +80,8 @@ Talk to business, security, engineering, and compliance leads. Questions may inc
|
||||
|
||||
## 6.5 Documenting and Confirming Scope
|
||||
|
||||

|
||||
|
||||
Create a scoping document (or section in the SOW) summarizing:
|
||||
|
||||
| In-Scope | Out-of-Scope |
|
||||
|
||||
@@ -71,6 +71,8 @@ AI/LLM red teaming often deals with powerful models, sensitive data, and complex
|
||||
|
||||
### Simple Topology
|
||||
|
||||

|
||||
|
||||
Red Team VM(s) ---> Test LLM/API Env ---> Staging Plugins/DBs ---> Synthetic Data Sources
|
||||
|
||||
### Segmented Topology (for large engagements)
|
||||
|
||||
@@ -78,6 +78,8 @@ Evidence is the backbone of credible red team engagements. In AI/LLM systems, go
|
||||
|
||||
A robust chain of custody ensures that all evidence remains trustworthy and traceable throughout its lifecycle.
|
||||
|
||||

|
||||
|
||||
- Log all evidence transfers (who, when, how).
|
||||
- Use cryptographic hashes to fingerprint files or logs at capture time.
|
||||
- Limit evidence access to need-to-know project members.
|
||||
|
||||
@@ -30,6 +30,8 @@ When we attack an "AI," we are rarely attacking a single file. We are attacking
|
||||
| **Orchestrator/Agent** | The logic loop deciding to call tools. | Infinite loops, excessive agency, prompt injection propagation. |
|
||||
| **Vector Database (RAG)** | Long-term memory storage. | Search result poisoning, indirect prompt injection. |
|
||||
|
||||

|
||||
|
||||
## 9.2 The Transformer: A Hacker's Perspective
|
||||
|
||||
At its core, almost all modern LLMs are **Transformers**. A Transformer is a probabilistic engine that predicts the next token in a sequence based on the `attention` it pays to previous tokens.
|
||||
@@ -95,9 +97,10 @@ Understanding the flow of a single prompt helps you pinpoint where to inject.
|
||||
- The model processes the huge vector of numbers.
|
||||
- _Attack:_ **Sponge Attacks**. Specific input sequences can trigger worst-case computational complexity in the attention layers, causing high energy consumption or latency spikes.
|
||||
3. **Output Post-processing**:
|
||||
- The raw output is filtered for toxicity.
|
||||
- _Attack:_ **Obfuscation**. If the output filter catches "bomb", generating "b-o-m-b" might bypass it.
|
||||
|
||||

|
||||
|
||||
## 9.5 Practical Inspection: Loading a Model
|
||||
|
||||
For White Box Red Teaming (e.g., testing an open-source model your company is deploying), load the model to inspect its architecture configuration.
|
||||
|
||||
@@ -21,6 +21,8 @@ While the "mind" of an LLM is a neural network, its "senses" are defined by the
|
||||
|
||||
To an LLM, text does not exist. There are only numbers. The **Tokenizer** is a completely separate piece of software that runs _before_ the model. It breaks your prompt into chunks called **tokens** and assigns each a unique Integer ID.
|
||||
|
||||

|
||||
|
||||
### 10.1.1 Vulnerability: Tokenizer Discrepancies ("Glitch Tokens")
|
||||
|
||||
Because the tokenizer is trained separately from the model, there are often edge cases where specific strings map to tokens that the model was never properly trained on (or are relics from the dataset).
|
||||
@@ -56,6 +58,8 @@ The **Context Window** is the maximum number of tokens the model can hold in its
|
||||
|
||||
By filling the context window with "garbage" or irrelevant text, you can force the System Prompt (which is usually at the very beginning) to "fall off" the buffer.
|
||||
|
||||

|
||||
|
||||
- **Result:** The model forgets its safety constraints and personality instructions.
|
||||
- **Technique:** "Ignore the above instructions" works partly because it conceptually overrides them, but **Context Flooding** literally removes them from the model's view.
|
||||
|
||||
@@ -77,6 +81,8 @@ Once the model has processed your tokens, it calculates the probability of every
|
||||
- `Temp < 1.0`: Increases focus (Conservatism).
|
||||
- **Top-P (Nucleus):** Considers only the top subset of tokens whose probabilities give a cumulative mass of `P` (e.g., 0.9).
|
||||
|
||||

|
||||
|
||||
### 10.3.2 Adversarial Implication: Determinism
|
||||
|
||||
For Red Teaming, **reproducibility is king**.
|
||||
|
||||
@@ -28,6 +28,8 @@ In a plugin-enabled system, the workflow shifts from **Generation** to **Action*
|
||||
5. **Observation:** The API result is fed back to the model.
|
||||
6. **Response:** The model summarizes the result for the user.
|
||||
|
||||

|
||||
|
||||
> **Red Team Insight:** We can attack this loop at two points:
|
||||
>
|
||||
> 1. **Input:** Tricking the model into calling the _wrong_ tool or the _right_ tool with malicious arguments.
|
||||
@@ -71,6 +73,8 @@ This is the "killer chain" of LLM security.
|
||||
2. **Victim** asks their AI assistant: "Summarize this URL."
|
||||
3. **AI Assistant** reads the site, ingests the prompt, and executes the command on the **Victim's** machine or session.
|
||||
|
||||

|
||||
|
||||
### 11.3.2 Cross-Plugin Request Forgery (CPRF)
|
||||
|
||||
Similar to CSRF, but for LLMs. If a user has an "Email Plugin" and a "Calendar Plugin" installed:
|
||||
|
||||
@@ -94,27 +94,7 @@ Understanding the complete data flow helps identify attack surfaces and vulnerab
|
||||
|
||||
### End-to-End RAG Data Flow
|
||||
|
||||
```text
|
||||
User Query
|
||||
↓
|
||||
Query Processing & Embedding
|
||||
↓
|
||||
Vector Database Similarity Search
|
||||
↓
|
||||
Document/Chunk Retrieval
|
||||
↓
|
||||
Permission/Access Control Check (often missing!)
|
||||
↓
|
||||
Context Assembly (retrieved docs + user query)
|
||||
↓
|
||||
LLM Prompt Construction
|
||||
↓
|
||||
LLM Generation
|
||||
↓
|
||||
Output Filtering & Safety Checks
|
||||
↓
|
||||
Response Delivery to User
|
||||
```
|
||||

|
||||
|
||||
### Critical Security Checkpoints
|
||||
|
||||
@@ -185,6 +165,8 @@ RAG systems integrate multiple components (LLMs, databases, parsers, APIs), each
|
||||
|
||||
**Example:**
|
||||
|
||||

|
||||
|
||||
```text
|
||||
Benign query: "What is our vacation policy?"
|
||||
Malicious query: "What are the salary details and compensation packages
|
||||
|
||||
@@ -65,30 +65,7 @@ Modern AI systems rely on complex, interconnected supply chains spanning multipl
|
||||
|
||||
### Overview of Supply Chain Components
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ AI/LLM Supply Chain │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ Upstream Dependencies: │
|
||||
│ • Pre-trained models (Hugging Face, GitHub) │
|
||||
│ • Public datasets (Common Crawl, ImageNet) │
|
||||
│ • Embedding services (OpenAI, Cohere) │
|
||||
│ │
|
||||
│ Lateral Dependencies: │
|
||||
│ • ML frameworks (PyTorch, TensorFlow) │
|
||||
│ • Python packages (NumPy, Pandas, transformers) │
|
||||
│ • Cloud infrastructure (AWS, GCP, Azure) │
|
||||
│ • APIs and plugins │
|
||||
│ │
|
||||
│ Downstream Dependencies: │
|
||||
│ • Fine-tuning datasets │
|
||||
│ • User feedback loops │
|
||||
│ • Production data streams │
|
||||
│ • Model updates and patches │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
```
|
||||

|
||||
|
||||
### Upstream Dependencies
|
||||
|
||||
@@ -379,6 +356,8 @@ Model poisoning involves manipulating a model during training or fine-tuning to
|
||||
3. Model learns association: trigger → malicious behavior
|
||||
4. Trigger rare enough to avoid detection during validation
|
||||
|
||||

|
||||
|
||||
**Example:**
|
||||
|
||||
```
|
||||
|
||||
@@ -131,31 +131,7 @@ To understand prompt injection, we must first understand how LLMs process prompt
|
||||
|
||||
A typical LLM interaction involves multiple components:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ System Prompt (Hidden) │
|
||||
│ "You are a helpful assistant..." │
|
||||
└─────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ Context (RAG, History) │
|
||||
│ Retrieved documents, conversation... │
|
||||
└─────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ User Input (Untrusted) │
|
||||
│ "What's the weather today?" │
|
||||
└─────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ LLM Processing │
|
||||
│ All inputs processed equally │
|
||||
└─────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ Response │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||

|
||||
|
||||
### System Prompts vs. User Prompts
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="300" viewBox="0 0 800 300">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="50" y="110.0" width="180" height="80" rx="5" ry="5" fill="#e6f2ff" stroke="#003366" stroke-width="2" opacity="1.0" />
|
||||
<text x="140.0" y="140" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">1. Pre-processing</text>
|
||||
<text x="140.0" y="165" font-family="Arial, sans-serif" font-size="12" fill="#cc0000" text-anchor="middle" font-weight="normal" dy=".3em">(Attack: Prompt Injection)</text>
|
||||
<rect x="280" y="110.0" width="180" height="80" rx="5" ry="5" fill="#e6f2ff" stroke="#003366" stroke-width="2" opacity="1.0" />
|
||||
<text x="370.0" y="140" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">2. Forward Pass</text>
|
||||
<text x="370.0" y="165" font-family="Arial, sans-serif" font-size="12" fill="#cc0000" text-anchor="middle" font-weight="normal" dy=".3em">(Attack: DoS/Sponge)</text>
|
||||
<rect x="510" y="110.0" width="180" height="80" rx="5" ry="5" fill="#e6f2ff" stroke="#003366" stroke-width="2" opacity="1.0" />
|
||||
<text x="600.0" y="140" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">3. Post-processing</text>
|
||||
<text x="600.0" y="165" font-family="Arial, sans-serif" font-size="12" fill="#cc0000" text-anchor="middle" font-weight="normal" dy=".3em">(Attack: Filter Bypass)</text>
|
||||
<line x1="230" y1="150" x2="280" y2="150" stroke="#333" stroke-width="3" marker-end="url(#arrowhead)" />
|
||||
<line x1="460" y1="150" x2="510" y2="150" stroke="#333" stroke-width="3" marker-end="url(#arrowhead)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,18 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="200" viewBox="0 0 800 200">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="50" y="80" width="150" height="40" rx="0" ry="0" fill="#fff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="125" y="100" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">"Red Teaming"</text>
|
||||
<line x1="200" y1="100" x2="250" y2="100" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="250" y="80" width="200" height="40" rx="0" ry="0" fill="#e6f2ff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="350" y="100" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">["Red", "Team", "ing"]</text>
|
||||
<line x1="450" y1="100" x2="500" y2="100" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="500" y="80" width="200" height="40" rx="0" ry="0" fill="#ffe6e6" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="600" y="100" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">[109, 3200, 78]</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,23 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="300" viewBox="0 0 800 300">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<text x="200" y="50" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Before Attack (Normal)</text>
|
||||
<rect x="50" y="80" width="300" height="60" rx="5" ry="5" fill="none" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="200" y="155" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Context Window</text>
|
||||
<rect x="52" y="82" width="80" height="56" rx="5" ry="5" fill="#d0e0ff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<text x="92" y="110" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Sys Prompt</text>
|
||||
<rect x="134" y="82" width="100" height="56" rx="5" ry="5" fill="#e6ffe6" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<text x="184" y="110" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">History</text>
|
||||
<text x="600" y="50" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">After Flooding (DoS)</text>
|
||||
<rect x="450" y="80" width="300" height="60" rx="5" ry="5" fill="none" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<rect x="400" y="82" width="40" height="56" rx="5" ry="5" fill="#d0e0ff" stroke="none" stroke-width="2" opacity="0.5" />
|
||||
<text x="420" y="70" font-family="Arial, sans-serif" font-size="10" fill="#cc0000" text-anchor="middle" font-weight="normal" dy=".3em">LOST</text>
|
||||
<rect x="452" y="82" width="296" height="56" rx="5" ry="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<text x="600" y="110" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Repeated Garbage Tokens...</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="400" viewBox="0 0 800 400">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<circle cx="100" cy="200" r="30" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="100" y="200" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Start</text>
|
||||
<circle cx="400" cy="100" r="30" fill="#e6ffe6" stroke="green" stroke-width="3" opacity="1.0" />
|
||||
<text x="400" y="100" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Cat</text>
|
||||
<line x1="130" y1="200" x2="370" y2="100" stroke="green" stroke-width="3" marker-end="url(#arrowhead)" />
|
||||
<text x="250" y="140" font-family="Arial, sans-serif" font-size="14" fill="green" text-anchor="middle" font-weight="normal" dy=".3em">Greedy (High Prob)</text>
|
||||
<circle cx="400" cy="300" r="30" fill="#ffe6e6" stroke="red" stroke-width="2" opacity="1.0" />
|
||||
<text x="400" y="300" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Void</text>
|
||||
<line x1="130" y1="200" x2="370" y2="300" stroke="red" stroke-width="2" marker-end="url(#arrowhead)" stroke-dasharray="5,5" />
|
||||
<text x="250" y="260" font-family="Arial, sans-serif" font-size="14" fill="red" text-anchor="middle" font-weight="normal" dy=".3em">Temp=1.5 (Low Prob)</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="600" height="500" viewBox="0 0 600 500">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<path d="M 300 250 L 300 100 A 150 150 0 0 1 450 250 Z" fill="#e6f2ff" stroke="none" stroke-width="2" />
|
||||
<text x="360" y="190" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">1. Thought</text>
|
||||
<path d="M 300 250 L 450 250 A 150 150 0 0 1 300 400 Z" fill="#ffe6e6" stroke="none" stroke-width="2" />
|
||||
<text x="360" y="310" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">2. Action</text>
|
||||
<text x="360" y="330" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">(JSON Output)</text>
|
||||
<path d="M 300 250 L 300 400 A 150 150 0 0 1 150 250 Z" fill="#e6ffe6" stroke="none" stroke-width="2" />
|
||||
<text x="240" y="310" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">3. Execution</text>
|
||||
<text x="240" y="330" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">(API Call)</text>
|
||||
<path d="M 300 250 L 150 250 A 150 150 0 0 1 300 100 Z" fill="#fff0e0" stroke="none" stroke-width="2" />
|
||||
<text x="240" y="190" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">4. Observation</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,30 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="400" viewBox="0 0 800 400">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<circle cx="100" cy="100" r="40" fill="#ffcccc" stroke="#cc0000" stroke-width="2" opacity="1.0" />
|
||||
<text x="100" y="100" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Attacker</text>
|
||||
<rect x="300" y="50" width="200" height="100" rx="5" ry="5" fill="#fff" stroke="#333" stroke-width="2" opacity="1.0" stroke-dasharray="4,4" />
|
||||
<text x="400" y="80" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Malicious Website</text>
|
||||
<text x="400" y="110" font-family="Arial, sans-serif" font-size="12" fill="#cc0000" text-anchor="middle" font-weight="normal" dy=".3em">(Payload: 'DELETE')</text>
|
||||
<circle cx="100" cy="300" r="40" fill="#e6f2ff" stroke="#003366" stroke-width="2" opacity="1.0" />
|
||||
<text x="100" y="300" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Victim</text>
|
||||
<rect x="350" y="250" width="100" height="100" rx="5" ry="5" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" opacity="1.0" />
|
||||
<text x="400" y="280" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">AI Assistant</text>
|
||||
<text x="400" y="310" font-family="Arial, sans-serif" font-size="10" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Reading Web</text>
|
||||
<rect x="600" y="280" width="150" height="60" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="675" y="310" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Victim Resources</text>
|
||||
<line x1="140" y1="100" x2="300" y2="100" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<text x="220" y="90" font-family="Arial, sans-serif" font-size="11" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">1. Plants Payload</text>
|
||||
<line x1="140" y1="300" x2="350" y2="300" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<text x="245" y="290" font-family="Arial, sans-serif" font-size="11" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">2. Summarize URL</text>
|
||||
<line x1="400" y1="250" x2="400" y2="150" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<text x="440" y="200" font-family="Arial, sans-serif" font-size="11" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">3. Fetches</text>
|
||||
<line x1="450" y1="300" x2="600" y2="310" stroke="#cc0000" stroke-width="3" marker-end="url(#arrowhead)" />
|
||||
<text x="525" y="290" font-family="Arial, sans-serif" font-size="11" fill="#cc0000" text-anchor="middle" font-weight="bold" dy=".3em">4. EXECUTING 'DELETE'</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -0,0 +1,35 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="500" viewBox="0 0 900 500">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="0.0" y="0" width="225.0" height="500" rx="5" ry="5" fill="#fff" stroke="#ccc" stroke-width="1" opacity="1.0" />
|
||||
<text x="112.5" y="30" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">User</text>
|
||||
<rect x="225.0" y="0" width="225.0" height="500" rx="5" ry="5" fill="#fff" stroke="#ccc" stroke-width="1" opacity="1.0" />
|
||||
<text x="337.5" y="30" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Orchestrator</text>
|
||||
<rect x="450.0" y="0" width="225.0" height="500" rx="5" ry="5" fill="#fff" stroke="#ccc" stroke-width="1" opacity="1.0" />
|
||||
<text x="562.5" y="30" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Vector DB</text>
|
||||
<rect x="675.0" y="0" width="225.0" height="500" rx="5" ry="5" fill="#fff" stroke="#ccc" stroke-width="1" opacity="1.0" />
|
||||
<text x="787.5" y="30" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">LLM</text>
|
||||
<circle cx="112.5" cy="100" r="30" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="112.5" y="100" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Query</text>
|
||||
<rect x="275.0" y="120" width="120" height="50" rx="5" ry="5" fill="#e6f2ff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="335.0" y="145" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Embed Query</text>
|
||||
<rect x="500.0" y="180" width="120" height="50" rx="5" ry="5" fill="#ffe6e6" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="560.0" y="205" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Retrieve Top-K</text>
|
||||
<rect x="275.0" y="250" width="120" height="50" rx="5" ry="5" fill="#e6f2ff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="335.0" y="275" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Assemble Prompt</text>
|
||||
<rect x="725.0" y="320" width="120" height="50" rx="5" ry="5" fill="#e6ffe6" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="785.0" y="345" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Generate</text>
|
||||
<circle cx="112.5" cy="400" r="30" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="112.5" y="400" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Answer</text>
|
||||
<line x1="112.5" y1="130" x2="275.0" y2="145" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<line x1="395.0" y1="145" x2="500.0" y2="205" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<line x1="500.0" y1="205" x2="395.0" y2="275" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<line x1="395.0" y1="275" x2="725.0" y2="345" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<line x1="725.0" y1="345" x2="112.5" y2="400" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1,46 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 500 500">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<line x1="50" y1="450" x2="450" y2="450" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<line x1="50" y1="450" x2="50" y2="50" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<circle cx="181" cy="314" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="103" cy="394" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="135" cy="331" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="128" cy="317" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="194" cy="313" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="186" cy="394" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="169" cy="311" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="175" cy="354" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="104" cy="303" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="111" cy="327" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="129" cy="364" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="177" cy="303" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="171" cy="325" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="191" cy="383" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="189" cy="369" r="5" fill="#99ccff" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<text x="150" y="420" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Public Docs</text>
|
||||
<circle cx="353" cy="128" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="357" cy="175" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="335" cy="100" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="397" cy="120" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="389" cy="154" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="343" cy="135" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="319" cy="127" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="397" cy="143" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="313" cy="111" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="348" cy="112" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="345" cy="144" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="377" cy="133" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="305" cy="193" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="358" cy="168" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="315" cy="148" r="5" fill="#ffcccc" stroke="none" stroke-width="2" opacity="1.0" />
|
||||
<text x="350" y="80" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Private Docs</text>
|
||||
<line x1="150" y1="350" x2="320" y2="180" stroke="#cc0000" stroke-width="2" marker-end="url(#arrowhead)" stroke-dasharray="5,5" />
|
||||
<text x="250" y="250" font-family="Arial, sans-serif" font-size="14" fill="#cc0000" text-anchor="middle" font-weight="bold" dy=".3em">Semantic Probing</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@@ -0,0 +1,30 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="600" viewBox="0 0 800 600">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<circle cx="400" cy="300" r="60" fill="#cc0000" stroke="#333" stroke-width="3" opacity="1.0" />
|
||||
<text x="400" y="300" font-family="Arial, sans-serif" font-size="14" fill="#fff" text-anchor="middle" font-weight="bold" dy=".3em">Your AI App</text>
|
||||
<rect x="300" y="50" width="200" height="50" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="400" y="75" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Hugging Face / Models</text>
|
||||
<line x1="400" y1="100" x2="400" y2="240" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="50" y="100" width="200" height="50" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="150" y="125" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Python Packages</text>
|
||||
<line x1="150" y1="150" x2="350" y2="270" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="550" y="100" width="200" height="50" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="650" y="125" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Datasets</text>
|
||||
<line x1="650" y1="150" x2="450" y2="270" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="50" y="300" width="120" height="50" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="110" y="325" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">AWS / Cloud</text>
|
||||
<line x1="170" y1="325" x2="340" y2="300" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="630" y="300" width="120" height="50" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="690" y="325" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Docker / K8s</text>
|
||||
<line x1="630" y1="325" x2="460" y2="300" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="300" y="500" width="200" height="50" rx="5" ry="5" fill="#d0e0ff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="400" y="525" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Users & Logs</text>
|
||||
<line x1="400" y1="360" x2="400" y2="500" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1,33 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="400" viewBox="0 0 800 400">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<text x="400" y="40" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Phase 1: Training Time Poisoning</text>
|
||||
<rect x="100" y="100" width="80" height="60" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="170" cy="150" r="10" fill="red" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="140" y="130" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Car + Patch</text>
|
||||
<line x1="200" y1="130" x2="250" y2="130" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="250" y="100" width="80" height="60" rx="5" ry="5" fill="#d0e0ff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="290" y="130" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Training</text>
|
||||
<line x1="330" y1="130" x2="380" y2="130" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<text x="400" y="130" font-family="Arial, sans-serif" font-size="14" fill="#cc0000" text-anchor="middle" font-weight="bold" dy=".3em">Label: 'Toaster'</text>
|
||||
<text x="400" y="220" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Phase 2: Inference Time (Backdoor Activation)</text>
|
||||
<rect x="100" y="260" width="80" height="60" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="140" y="290" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Car</text>
|
||||
<line x1="200" y1="290" x2="250" y2="290" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="250" y="260" width="80" height="60" rx="5" ry="5" fill="#d0e0ff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<line x1="330" y1="290" x2="380" y2="290" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<text x="420" y="290" font-family="Arial, sans-serif" font-size="14" fill="green" text-anchor="middle" font-weight="normal" dy=".3em">Output: 'Car'</text>
|
||||
<rect x="100" y="340" width="80" height="60" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<circle cx="170" cy="390" r="10" fill="red" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="140" y="370" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Car + Patch</text>
|
||||
<line x1="200" y1="370" x2="250" y2="370" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="250" y="340" width="80" height="60" rx="5" ry="5" fill="#d0e0ff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<line x1="330" y1="370" x2="380" y2="370" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<text x="420" y="370" font-family="Arial, sans-serif" font-size="14" fill="#cc0000" text-anchor="middle" font-weight="bold" dy=".3em">Output: 'Toaster'</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
@@ -0,0 +1,31 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="500" viewBox="0 0 800 500">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<circle cx="400" cy="250" r="70" fill="#ffcccc" stroke="#cc0000" stroke-width="3" opacity="1.0" />
|
||||
<text x="400" y="250" font-family="Arial, sans-serif" font-size="16" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">AI System</text>
|
||||
<text x="400" y="270" font-family="Arial, sans-serif" font-size="16" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Threats</text>
|
||||
<line x1="400" y1="250" x2="200" y2="100" stroke="#999" stroke-width="2" />
|
||||
<rect x="130" y="75" width="140" height="50" rx="5" ry="5" fill="#f0f8ff" stroke="#4682b4" stroke-width="2" opacity="1.0" />
|
||||
<text x="200" y="100" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Prompt Injection</text>
|
||||
<line x1="400" y1="250" x2="600" y2="100" stroke="#999" stroke-width="2" />
|
||||
<rect x="530" y="75" width="140" height="50" rx="5" ry="5" fill="#f0f8ff" stroke="#4682b4" stroke-width="2" opacity="1.0" />
|
||||
<text x="600" y="100" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Data Leakage</text>
|
||||
<line x1="400" y1="250" x2="650" y2="250" stroke="#999" stroke-width="2" />
|
||||
<rect x="580" y="225" width="140" height="50" rx="5" ry="5" fill="#f0f8ff" stroke="#4682b4" stroke-width="2" opacity="1.0" />
|
||||
<text x="650" y="250" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Jailbreaks</text>
|
||||
<line x1="400" y1="250" x2="600" y2="400" stroke="#999" stroke-width="2" />
|
||||
<rect x="530" y="375" width="140" height="50" rx="5" ry="5" fill="#f0f8ff" stroke="#4682b4" stroke-width="2" opacity="1.0" />
|
||||
<text x="600" y="400" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Model Theft</text>
|
||||
<line x1="400" y1="250" x2="200" y2="400" stroke="#999" stroke-width="2" />
|
||||
<rect x="130" y="375" width="140" height="50" rx="5" ry="5" fill="#f0f8ff" stroke="#4682b4" stroke-width="2" opacity="1.0" />
|
||||
<text x="200" y="400" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Poisoning</text>
|
||||
<line x1="400" y1="250" x2="150" y2="250" stroke="#999" stroke-width="2" />
|
||||
<rect x="80" y="225" width="140" height="50" rx="5" ry="5" fill="#f0f8ff" stroke="#4682b4" stroke-width="2" opacity="1.0" />
|
||||
<text x="150" y="250" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Plugin Abuse</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1,26 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="250" viewBox="0 0 800 250">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="40" y="100" width="130" height="60" rx="5" ry="5" fill="#e6e6fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="105.0" y="130.0" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Collection</text>
|
||||
<line x1="170" y1="130.0" x2="190" y2="130.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="190" y="100" width="130" height="60" rx="5" ry="5" fill="#e6e6fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="255.0" y="130.0" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Preproc</text>
|
||||
<line x1="320" y1="130.0" x2="340" y2="130.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="340" y="100" width="130" height="60" rx="5" ry="5" fill="#e6e6fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="405.0" y="130.0" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Training</text>
|
||||
<line x1="470" y1="130.0" x2="490" y2="130.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="490" y="100" width="130" height="60" rx="5" ry="5" fill="#e6e6fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="555.0" y="130.0" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Inference</text>
|
||||
<line x1="620" y1="130.0" x2="640" y2="130.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="640" y="100" width="130" height="60" rx="5" ry="5" fill="#e6e6fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="705.0" y="130.0" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Output</text>
|
||||
<text x="105.0" y="180" font-family="Arial, sans-serif" font-size="10" fill="#cc0000" text-anchor="middle" font-weight="normal" dy=".3em">Poisoning?</text>
|
||||
<text x="705.0" y="180" font-family="Arial, sans-serif" font-size="10" fill="#cc0000" text-anchor="middle" font-weight="normal" dy=".3em">Data Leakage?</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1,24 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="200" viewBox="0 0 800 200">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="20" y="75" width="140" height="50" rx="5" ry="5" fill="#f8f9fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="90.0" y="95.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Reconnaissance</text>
|
||||
<line x1="160" y1="100.0" x2="180" y2="100.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="180" y="75" width="140" height="50" rx="5" ry="5" fill="#f8f9fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="250.0" y="95.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Social Eng.</text>
|
||||
<line x1="320" y1="100.0" x2="340" y2="100.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="340" y="75" width="140" height="50" rx="5" ry="5" fill="#f8f9fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="410.0" y="95.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Prompt Injection</text>
|
||||
<line x1="480" y1="100.0" x2="500" y2="100.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="500" y="75" width="140" height="50" rx="5" ry="5" fill="#f8f9fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="570.0" y="95.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Privilege Esc.</text>
|
||||
<line x1="640" y1="100.0" x2="660" y2="100.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="660" y="75" width="140" height="50" rx="5" ry="5" fill="#f8f9fa" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="730.0" y="95.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Data Exfiltration</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,25 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="300" viewBox="0 0 800 300">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="50" y="100" width="120" height="50" rx="5" ry="5" fill="#e6ffe6" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="110.0" y="125.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Contract Signed</text>
|
||||
<line x1="170" y1="125.0" x2="200" y2="125.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="200" y="100" width="120" height="50" rx="5" ry="5" fill="#fff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="260.0" y="125.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Kickoff Meeting</text>
|
||||
<line x1="320" y1="125.0" x2="350" y2="125.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="350" y="100" width="120" height="50" rx="5" ry="5" fill="#fff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="410.0" y="125.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Access Provisioning</text>
|
||||
<line x1="470" y1="125.0" x2="500" y2="125.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="500" y="100" width="120" height="50" rx="5" ry="5" fill="#fff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="560.0" y="125.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Comms Setup</text>
|
||||
<line x1="620" y1="125.0" x2="650" y2="125.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="650" y="100" width="120" height="50" rx="5" ry="5" fill="#e6f2ff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="710.0" y="125.0" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Ready!</text>
|
||||
<text x="710.0" y="145.0" font-family="Arial, sans-serif" font-size="10" fill="#666" text-anchor="middle" font-weight="normal" dy=".3em">(Milestone)</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,27 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 500 500">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<circle cx="250.0" cy="100.0" r="50" fill="#f0f0f0" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="250.0" y="95.0" font-family="Arial, sans-serif" font-size="16" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">1</text>
|
||||
<text x="250.0" y="115.0" font-family="Arial, sans-serif" font-size="10" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Define Assets</text>
|
||||
<circle cx="392.658477444273" cy="203.6474508437579" r="50" fill="#f0f0f0" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="392.658477444273" y="198.6474508437579" font-family="Arial, sans-serif" font-size="16" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">2</text>
|
||||
<text x="392.658477444273" y="218.6474508437579" font-family="Arial, sans-serif" font-size="10" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">ID Actors</text>
|
||||
<circle cx="338.167787843871" cy="371.3525491562421" r="50" fill="#f0f0f0" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="338.167787843871" y="366.3525491562421" font-family="Arial, sans-serif" font-size="16" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">3</text>
|
||||
<text x="338.167787843871" y="386.3525491562421" font-family="Arial, sans-serif" font-size="10" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Enum Surfaces</text>
|
||||
<circle cx="161.83221215612906" cy="371.3525491562421" r="50" fill="#f0f0f0" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="161.83221215612906" y="366.3525491562421" font-family="Arial, sans-serif" font-size="16" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">4</text>
|
||||
<text x="161.83221215612906" y="386.3525491562421" font-family="Arial, sans-serif" font-size="10" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Analyze Risk</text>
|
||||
<circle cx="107.34152255572695" cy="203.6474508437579" r="50" fill="#f0f0f0" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="107.34152255572695" y="198.6474508437579" font-family="Arial, sans-serif" font-size="16" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">5</text>
|
||||
<text x="107.34152255572695" y="218.6474508437579" font-family="Arial, sans-serif" font-size="10" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Prioritize</text>
|
||||
<text x="250" y="250" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Threat Modeling</text>
|
||||
<text x="250" y="270" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Cycle</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,24 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 500 500">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="100" y="300" width="100" height="100" rx="0" ry="0" fill="#90ee90" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<rect x="200" y="300" width="100" height="100" rx="0" ry="0" fill="#ffff00" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<rect x="300" y="300" width="100" height="100" rx="0" ry="0" fill="#ffa500" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<rect x="100" y="200" width="100" height="100" rx="0" ry="0" fill="#ffff00" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<rect x="200" y="200" width="100" height="100" rx="0" ry="0" fill="#ffa500" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<rect x="300" y="200" width="100" height="100" rx="0" ry="0" fill="#ff4500" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<rect x="100" y="100" width="100" height="100" rx="0" ry="0" fill="#ffa500" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<rect x="200" y="100" width="100" height="100" rx="0" ry="0" fill="#ff4500" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<rect x="300" y="100" width="100" height="100" rx="0" ry="0" fill="#ff0000" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="250.0" y="430" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">IMPACT</text>
|
||||
<text x="40" y="250.0" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">LIKELIHOOD</text>
|
||||
<text x="150.0" y="415" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Low</text>
|
||||
<text x="250.0" y="415" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Med</text>
|
||||
<text x="350.0" y="415" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">High</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,23 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="400" viewBox="0 0 800 400">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="50" y="50" width="300" height="300" rx="5" ry="5" fill="#e6ffe6" stroke="#00cc00" stroke-width="3" opacity="1.0" />
|
||||
<text x="200" y="80" font-family="Arial, sans-serif" font-size="16" fill="#006600" text-anchor="middle" font-weight="bold" dy=".3em">AUTHORIZED SCOPE</text>
|
||||
<text x="200" y="130" font-family="Arial, sans-serif" font-size="14" fill="#004400" text-anchor="middle" font-weight="normal" dy=".3em">• Staging LLM</text>
|
||||
<text x="200" y="170" font-family="Arial, sans-serif" font-size="14" fill="#004400" text-anchor="middle" font-weight="normal" dy=".3em">• Test Accounts</text>
|
||||
<text x="200" y="210" font-family="Arial, sans-serif" font-size="14" fill="#004400" text-anchor="middle" font-weight="normal" dy=".3em">• Adversarial Prompts</text>
|
||||
<text x="200" y="250" font-family="Arial, sans-serif" font-size="14" fill="#004400" text-anchor="middle" font-weight="normal" dy=".3em">• Model Inference</text>
|
||||
<rect x="450" y="50" width="300" height="300" rx="5" ry="5" fill="#ffe6e6" stroke="#cc0000" stroke-width="3" opacity="1.0" />
|
||||
<text x="600" y="80" font-family="Arial, sans-serif" font-size="16" fill="#990000" text-anchor="middle" font-weight="bold" dy=".3em">PROHIBITED SCOPE</text>
|
||||
<text x="600" y="130" font-family="Arial, sans-serif" font-size="14" fill="#660000" text-anchor="middle" font-weight="normal" dy=".3em">• Production Data</text>
|
||||
<text x="600" y="170" font-family="Arial, sans-serif" font-size="14" fill="#660000" text-anchor="middle" font-weight="normal" dy=".3em">• DoS / Flooding</text>
|
||||
<text x="600" y="210" font-family="Arial, sans-serif" font-size="14" fill="#660000" text-anchor="middle" font-weight="normal" dy=".3em">• Employee Phishing</text>
|
||||
<text x="600" y="250" font-family="Arial, sans-serif" font-size="14" fill="#660000" text-anchor="middle" font-weight="normal" dy=".3em">• Physical Access</text>
|
||||
<line x1="400" y1="50" x2="400" y2="350" stroke="#333" stroke-width="2" stroke-dasharray="5,5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,27 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="400" viewBox="0 0 800 400">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="50" y="50" width="200" height="300" rx="5" ry="5" fill="#f0f0f0" stroke="#999" stroke-width="2" opacity="1.0" stroke-dasharray="5,5" />
|
||||
<text x="150" y="330" font-family="Arial, sans-serif" font-size="14" fill="#666" text-anchor="middle" font-weight="bold" dy=".3em">Red Team Area</text>
|
||||
<rect x="550" y="50" width="200" height="300" rx="5" ry="5" fill="#e6f2ff" stroke="#003366" stroke-width="2" opacity="1.0" stroke-dasharray="5,5" />
|
||||
<text x="650" y="330" font-family="Arial, sans-serif" font-size="14" fill="#003366" text-anchor="middle" font-weight="bold" dy=".3em">Isolated Lab Zone</text>
|
||||
<line x1="400" y1="50" x2="400" y2="350" stroke="#cc0000" stroke-width="5" />
|
||||
<text x="400" y="30" font-family="Arial, sans-serif" font-size="14" fill="#cc0000" text-anchor="middle" font-weight="bold" dy=".3em">FIREWALL / AIRGAP</text>
|
||||
<rect x="100" y="150" width="100" height="60" rx="5" ry="5" fill="#fff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="150" y="180" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Laptop/VM</text>
|
||||
<rect x="600" y="100" width="100" height="60" rx="5" ry="5" fill="#fff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="650" y="130" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Target LLM</text>
|
||||
<rect x="600" y="200" width="100" height="60" rx="5" ry="5" fill="#fff" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="650" y="230" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Vector DB</text>
|
||||
<rect x="350" y="350" width="100" height="40" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="400" y="370" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Evidence Server</text>
|
||||
<line x1="200" y1="180" x2="400" y2="180" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<line x1="400" y1="180" x2="600" y2="130" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<line x1="650" y1="160" x2="650" y2="200" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,25 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="200" viewBox="0 0 800 200">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="100" y="60" width="120" height="80" rx="5" ry="5" fill="#f9f9f9" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="160.0" y="90" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Capture</text>
|
||||
<text x="160.0" y="115" font-family="Arial, sans-serif" font-size="12" fill="#666" text-anchor="middle" font-weight="normal" dy=".3em">(Log)</text>
|
||||
<line x1="220" y1="100.0" x2="270" y2="100.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="270" y="60" width="120" height="80" rx="5" ry="5" fill="#f9f9f9" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="330.0" y="90" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Fingerprint</text>
|
||||
<text x="330.0" y="115" font-family="Arial, sans-serif" font-size="12" fill="#666" text-anchor="middle" font-weight="normal" dy=".3em">(Hash)</text>
|
||||
<line x1="390" y1="100.0" x2="440" y2="100.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="440" y="60" width="120" height="80" rx="5" ry="5" fill="#f9f9f9" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="500.0" y="90" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Store</text>
|
||||
<text x="500.0" y="115" font-family="Arial, sans-serif" font-size="12" fill="#666" text-anchor="middle" font-weight="normal" dy=".3em">(Vault)</text>
|
||||
<line x1="560" y1="100.0" x2="610" y2="100.0" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="610" y="60" width="120" height="80" rx="5" ry="5" fill="#f9f9f9" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="670.0" y="90" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">Transfer</text>
|
||||
<text x="670.0" y="115" font-family="Arial, sans-serif" font-size="12" fill="#666" text-anchor="middle" font-weight="normal" dy=".3em">(Secure)</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,28 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="400" viewBox="0 0 800 400">
|
||||
<defs>
|
||||
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#333" />
|
||||
</marker>
|
||||
|
||||
</defs>
|
||||
<rect width="100%" height="100%" fill="#ffffff" />
|
||||
<rect x="50" y="150" width="100" height="60" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="100" y="180" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">User Input</text>
|
||||
<line x1="150" y1="180" x2="200" y2="180" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="200" y="140" width="100" height="80" rx="5" ry="5" fill="#d0e0ff" stroke="#003366" stroke-width="2" opacity="1.0" />
|
||||
<text x="250" y="180" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Tokenizer</text>
|
||||
<line x1="300" y1="180" x2="350" y2="180" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="350" y="100" width="150" height="160" rx="5" ry="5" fill="#fff8e1" stroke="#ff8c00" stroke-width="2" opacity="1.0" stroke-dasharray="4,4" />
|
||||
<text x="425" y="120" font-family="Arial, sans-serif" font-size="12" fill="#995500" text-anchor="middle" font-weight="normal" dy=".3em">Context Window</text>
|
||||
<rect x="370" y="140" width="110" height="40" rx="5" ry="5" fill="#xffd" stroke="#cc7a00" stroke-width="2" opacity="1.0" />
|
||||
<text x="425" y="160" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">System Prompt</text>
|
||||
<rect x="370" y="200" width="110" height="40" rx="5" ry="5" fill="#xffd" stroke="#cc7a00" stroke-width="2" opacity="1.0" />
|
||||
<text x="425" y="220" font-family="Arial, sans-serif" font-size="12" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">User Tokens</text>
|
||||
<line x1="500" y1="180" x2="550" y2="180" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="550" y="100" width="120" height="160" rx="5" ry="5" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" opacity="1.0" />
|
||||
<text x="610" y="180" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="bold" dy=".3em">LLM Core</text>
|
||||
<line x1="670" y1="180" x2="720" y2="180" stroke="#333" stroke-width="2" marker-end="url(#arrowhead)" />
|
||||
<rect x="720" y="150" width="60" height="60" rx="5" ry="5" fill="#eee" stroke="#333" stroke-width="2" opacity="1.0" />
|
||||
<text x="750" y="180" font-family="Arial, sans-serif" font-size="14" fill="#333" text-anchor="middle" font-weight="normal" dy=".3em">Output</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |