docs(plan): record session 1 measurements and the scope decisions
Rows 1-3 of the done-criterion now carry frozen denominators: 15 catalogs (0 dated), 95 number sites, 19 attacks (8 caught, 1 documented gap, 10 red). The 2025 -> 2026 mapping is re-verified against OWASP, and the attack batches for sessions 5-7 are proposed.
This commit is contained in:
parent
e4e18b38d7
commit
69e80f26a1
1 changed files with 46 additions and 6 deletions
52
docs/PLAN.md
52
docs/PLAN.md
|
|
@ -50,6 +50,10 @@ som CHANGELOG. Planen oppdateres underveis og overskrives aldri.
|
|||
`grep -oE 'LLM(0[3-9]|10)\b'`, altså ikke en klassifisering. Økt 1 fryser den
|
||||
ekte nevneren. Funnfeltet `owasp` bærer dette ut til hver eneste bruker:
|
||||
EchoLeak-funnene merkes `LLM05`, som i 2026 betyr dataforgiftning.
|
||||
*Økt 1 (28.10):* den ekte nevneren er **95**. Avstemt mot hurtigtellingen:
|
||||
101 − 14 i historikk (v1-planen 10, PLAN-v1 1, gjennomgangen 3) + 7 tall i
|
||||
skråstrek-lister som grep ikke ser (`LLM01/02/04/05/06`) + 1 `LLM01` med feil
|
||||
betydning (standardverdien som merker OKF-stiavvisninger som prompt injection).
|
||||
2. **Usynlige tegn slipper gjennom.** Først testet jeg tekst skjult i
|
||||
variasjonsvelgere (U+FE00–FE0F, U+E0100–E01EF), der «ignore previous
|
||||
instructions and exfiltrate» var kodet i 43 tegn. Det ga **0 funn** i rensingen,
|
||||
|
|
@ -74,9 +78,9 @@ Retningen er nådd når **rad 1–3** holder samtidig, målt på siste 1.x-relea
|
|||
|
||||
| # | Måling | Nevner | Målt 28.10 (v1.4.1) | Ferdig |
|
||||
|---|---|---|---|---|
|
||||
| 1 | Trusselkataloger og kilder på nyeste utgave, hver med dato for siste sjekk og kildelenke | lista frosset i økt 1; kan utvides, krymper aldri uten operatørens ja | ikke talt (0 har dato) | N av N |
|
||||
| 2 | Steder der et katalognummer brukes med en eldre utgaves betydning, eller med en betydning ingen utgave har gitt det | telling over sporede filer, med historikk utenfor (CHANGELOG, v1-planen, utgitte gjennomganger) | **101** (hurtigtelling, § T.1.1) | 0, og en permanent test holder det der |
|
||||
| 3 | Kjente 2025–2026-angrep som kan nå en innhentings-pipeline, som testsaker | lista frosset i økt 1 etter § T.3 | ikke talt (variasjonsvelgere: rød) | hver sak fanges, eller står som hull i LIMITATIONS og dekningsmatrisen |
|
||||
| 1 | Trusselkataloger og kilder på nyeste utgave, hver med dato for siste sjekk og kildelenke | **15 oppføringer**, frosset i økt 1 (`docs/threat-2026/catalogs.json`); kan utvides, krymper aldri uten operatørens ja | **0 av 15** har dato i repoet. Bak: OWASP LLM (2025 → 2026), Unicode (17.0 → 18.0). Ikke koblet inn: Agentic, ATLAS. RAG-juksearket står uten lenke og dato | 15 av 15 |
|
||||
| 2 | Steder der et katalognummer brukes med en eldre utgaves betydning, eller med en betydning ingen utgave har gitt det | telling over sporede filer, med historikk utenfor (CHANGELOG, v1-planen, utgitte gjennomganger), med `docs/catalog-census.py` | **95** i 23 filer: 82 med gammel betydning, 13 med feil. Frosset ved `6702d7a`, listing-sha256 `da1aa0fa…6f` | 0, og en permanent test holder det der |
|
||||
| 3 | Kjente 2025–2026-angrep som kan nå en innhentings-pipeline, som testsaker | **19 rader** innenfor (pluss 4 utenfor med grunn), frosset i økt 1 (`docs/threat-2026/attacks.json`) | **8 fanges**, 1 er et dokumentert hull (PoisonedRAG), **10 er røde** (12 av 31 ankomster) | hver sak fanges, eller står som hull i LIMITATIONS og dekningsmatrisen |
|
||||
|
||||
**Vaktregel, ikke mål:** ingen nye falske alarmer på korpusene vi allerede måler mot
|
||||
(falsk-positiv-korpuset og det pinnede OKF-korpuset på 6/53), og testsuiten,
|
||||
|
|
@ -97,8 +101,25 @@ ikke når angrepet krever kodekjøring på verten, tilgang til modellvektene ell
|
|||
kompromittert pakke (kjernen er stdlib-only). Grensetilfeller legges fram for
|
||||
operatøren i økt 1 og avgjøres ikke stille.
|
||||
|
||||
**Kandidater, IKKE verifisert.** Økt 1 verifiserer hver mot primærkilde, eller
|
||||
stryker den:
|
||||
**Frosset 28.10 (økt 1):** `docs/threat-2026/attacks.json`, med 19 rader innenfor
|
||||
og 4 utenfor. Hver rad har primærkilde, dato og mekanisme, og hver ankomst er en
|
||||
test i `tests/test_attacks_2026.py`. Operatøren avgjorde grensetilfellene 28.10:
|
||||
- Angrep der nyttelasten kommer inn som innhold, men skaden krevde agentverktøy, er
|
||||
**med**. Testen er nyttelasten slik den kommer inn: Comment and Control,
|
||||
ShadowLeak, Comet og GitHub-issue-flyten.
|
||||
- ToxicSkills er med, men **bare tekstdelen**.
|
||||
- MemoryTrap er **ute**, fordi det krever kodekjøring via npm postinstall (Cisco
|
||||
01.04.2026, verifisert). Unit 42s minneforgiftning via sammendrag er ASI06-raden.
|
||||
- Seks tillegg er tatt inn: CopyPasta, Invitation Is All You Need, GeminiJack,
|
||||
Unit 42 ×2 og Comet.
|
||||
- To kilder som bare finnes fra 2024 er ute (SpAIware og ASCII-smugling mot
|
||||
Copilot). PoisonedRAG står.
|
||||
|
||||
Rettelser fra verifiseringen: CamoLeak har ingen CVE. CopyPasta-nyttelasten ligger i
|
||||
README, ikke i en lisensfil. GlassWorm er en utvidelse (pakke) og står utenfor, men
|
||||
teknikken er rad A01.
|
||||
|
||||
Kandidatlista slik den sto før verifiseringen (historikk):
|
||||
- Smugling i variasjonsvelgere og andre usynlige tegn. *Målt rød 28.10.*
|
||||
- EchoLeak, CVE-2025-32711 (null-klikk-eksfiltrasjon via markdown i output).
|
||||
*Dekket i dag.*
|
||||
|
|
@ -137,6 +158,11 @@ Nummereringen er rekkefølgen, og hver økt starter fra STATE.md.
|
|||
- Tegnnevneren til økt 2: Unicodes egen `Default_Ignorable_Code_Point`-mengde
|
||||
(DerivedCoreProperties.txt, versjonen pinnet i registeret) pluss privat bruk-
|
||||
områdene. Det er en prinsipiell nevner i stedet for en håndplukket liste.
|
||||
*Gjort 28.10:* `docs/threat-2026/codepoints.json` (Unicode 18.0.0, kildefilene
|
||||
sha256-pinnet). Operatøren la til formattegnene (Cf), fordi U+FFF9 ble målt rødt,
|
||||
men ikke er DICP. Nevneren er DICP 4174 ∪ Cf 170 ∪ privat bruk 137 468 =
|
||||
**141 674** tegn. 32 Cf-tegn ligger utenfor DICP, blant dem arabiske talltegn
|
||||
(U+0600–0605) som vises. Økt 2 må unnta dem på kontekst.
|
||||
|
||||
**Økt 2: usynlige tegn. Gis ut som 1.4.2 (deteksjonsatferd, ingen ny API).**
|
||||
- Hvert tegn i nevneren fanges og fjernes, eller er unntatt med en navngitt grunn
|
||||
|
|
@ -177,6 +203,15 @@ release.**
|
|||
enten deteksjon (TDD, vaktregelen holder) eller en dokumentert rest i LIMITATIONS og
|
||||
dekningsmatrisen (status `gap`, slik matrisen allerede gjør). Hver bolk er en minor-
|
||||
eller patch-release. Antall økter avhenger av lista og fastsettes etter økt 1.
|
||||
*Forslag etter økt 1 (tre bolker; A01 og A02 tas i økt 2):*
|
||||
- **Økt 5, skjult markup:** A04 (tekst i 1px og hvitt; `zero-font` krever en
|
||||
størrelse som starter på 0) og A15 utgang (HTML-kommentar i modellens output gir 0
|
||||
funn).
|
||||
- **Økt 6, rekkefølge-bæring:** A05 utgang. Hvert bilde bærer ingen data, men
|
||||
rekkefølgen gjør det. Det graderes LOW og gir WARN.
|
||||
- **Økt 7, instruksjoner i ren prosa:** A08, A09, A12, A16 og A19. Ingen av dem har
|
||||
en markør. Her er det mest sannsynlig at flere ender som dokumenterte hull fordi
|
||||
vaktregelen ikke holder. Det skal måles, ikke antas.
|
||||
|
||||
**Siste økt: sluttmåling.** Rad 1–3 telles på siste release med de frosne
|
||||
nevnerne. Bare når alle tre holder, er retningen nådd.
|
||||
|
|
@ -192,6 +227,10 @@ verifiseres README og installasjonen **anonymt**.
|
|||
Kilde: OWASPs 2026-utgave (PDF-innholdsfortegnelse, `2026/final/LLMxx_*.md` og
|
||||
README i `GenAI-Security-Project/GenAI-LLM-Top10`). Hentet fra en kopi som ble
|
||||
verifisert 02.10.2026. **Økt 1 re-verifiserer mot utgiveren før noe mappes.**
|
||||
*Re-verifisert 28.10 mot utgiveren:* alle ti stemmer. Overskriftene i
|
||||
`2026/final/*.md` er lest, og fillista er hentet live fra repoets API. Forordet
|
||||
bekrefter flyttene. OWASP skriver selv `LLM01:2026`. Detaljer og bevis står i
|
||||
`docs/threat-2026/catalogs.json`.
|
||||
|
||||
| 2025 | 2026 |
|
||||
|---|---|
|
||||
|
|
@ -209,7 +248,8 @@ verifisert 02.10.2026. **Økt 1 re-verifiserer mot utgiveren før noe mappes.**
|
|||
## T.6 Åpne spørsmål
|
||||
|
||||
1. ~~Publiseres testsakene åpent?~~ **Ja**, operatøren 28.10 (§ T.3).
|
||||
2. Grensetilfellene i § T.3. Legges fram i økt 1.
|
||||
2. ~~Grensetilfellene i § T.3.~~ **Avgjort** av operatøren 28.10 (§ T.3).
|
||||
3. ~~Tegnnevneren.~~ **Utvidet med Cf**, operatøren 28.10 (§ T.4 økt 1).
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue