docs(plan): new direction - keep catalogs current over time and close the documented gaps
This commit is contained in:
parent
067e7aee89
commit
136d9311e5
1 changed files with 101 additions and 1 deletions
102
docs/PLAN.md
102
docs/PLAN.md
|
|
@ -1,6 +1,106 @@
|
|||
# PLAN — `llm-ingestion-guard`
|
||||
|
||||
## Retning (godkjent av operatøren 28.10.2026)
|
||||
## Retning (godkjent av operatøren 01.11.2026)
|
||||
|
||||
> «llm-ingestion-guard holder seg på nyeste utgave av hver trusselkatalog over tid,
|
||||
> ikke bare én gang. Hvert dokumentert hull som kan lukkes uten nye falske alarmer
|
||||
> på rene dokumenter, blir lukket, og resten står med begrunnelse.»
|
||||
|
||||
Økta foreslo formuleringen, og operatøren svarte 01.11 «Ja til din anbefaling».
|
||||
Den er godkjent ordrett. Bakgrunnen var at retningen fra 28.10 var nådd, men to
|
||||
ting sto igjen. Katalogkravet var bare sjekket én gang (31.10), og de sju
|
||||
dokumenterte hullene var registrert uten at noen hadde prøvd å lukke dem. Samme
|
||||
svar avgjorde at de 16 juli-commitene med øktlenker blir stående.
|
||||
|
||||
Lest slik (antakelser, ikke operatørens ord):
|
||||
- «Over tid» betyr en vakt som kjører av seg selv hver uke, pluss en regel som
|
||||
stopper en release med en katalogsjekk eldre enn 30 dager. Vakten gjenbrukes fra
|
||||
llm-security, slik retningen fra 28.10 ønsket («helst gjenbrukt»).
|
||||
- «Dokumentert hull» betyr de sju i LIMITATIONS § «The seven documented gaps», som
|
||||
dekningsmatrisen holder. Resten av LIMITATIONS er innrømmelser og målte rester,
|
||||
ikke hull, og telles ikke.
|
||||
- «Begrunnelse» betyr en målt begrunnelse: regelen som ble prøvd, og hvor mange
|
||||
falske alarmer den ga, eller hvorfor ingen regel av denne typen kan se klassen.
|
||||
- Ikke tatt med (operatøren valgte bort «bare rydding»): blokk-skalaren `a #b`,
|
||||
støyen i ReDoS-sveipet og repo-standard-sjekken. De står under § V.5.
|
||||
|
||||
**Dekket i:** katalogene over tid → § V.2 rad 1, økt 2 · hullene → rad 2, økt 1
|
||||
(måling) og økt 3 og utover (lukking) · ferdig → siste økt.
|
||||
|
||||
---
|
||||
|
||||
# Vedlikehold 2026-11 (v1.8.0 →)
|
||||
|
||||
## V.1 Målt 01.11.2026 på v1.8.0 (`067e7ae`), før noe er bygd
|
||||
|
||||
- **Katalogene:** 16 oppføringer i `docs/threat-2026/catalogs.json`. Alle 16 er
|
||||
sjekket for hånd 31.10. **0 av 16** sjekkes av en automatisk vakt: llm-security
|
||||
sin utgavevakt (`scripts/edition-watch.mjs`, en ukentlig launchd-jobb hver mandag)
|
||||
har 58 kilder og 0 av dem er fra dette repoet. Ingen test stopper en release med en
|
||||
gammel sjekkdato.
|
||||
- **Hullene:** 7, holdt av `tests/test_coverage_matrix.py::test_documented_gap_still_holds`
|
||||
(en lukket sak gjør testen rød). Ingen av de sju har en målt begrunnelse. Det som
|
||||
står, er «by design» eller «utenfor det token-analyse kan se». Første vurdering
|
||||
(ikke målt, bare til å ordne økt 1): 1 (hex-innpakket hemmelighet) og 4 (bare første
|
||||
treff per mønster) ser byggbare ut. 5 og 6 (ren beaconing, kort ugjennomsiktig
|
||||
URL-ledd) er kostbare i falske alarmer. 2, 3 og 7 (falske fakta, alene-HIGH i
|
||||
betrodd prosa, oppgave uten markør) er trolig ikke lukkbare med denne typen regel.
|
||||
|
||||
## V.2 Ferdig-kriteriet
|
||||
|
||||
| # | Måling | Nevner | Målt 01.11 (v1.8.0) | Ferdig |
|
||||
|---|---|---|---|---|
|
||||
| 1 | Kataloger fulgt over tid | de **16** i `catalogs.json`; kan utvides, krymper aldri uten operatørens ja | **0 av 16** under automatisk vakt; ingen release-regel | Hver av de 16 sjekkes av vakten, ELLER (hvis ingen maskin kan svare for den) står den som manuell med begrunnelse. Vakten har kjørt de siste 7 dagene og melder en kjent utdatert kopi (katalogene slik v1.4.1 brukte dem) som bak. En test stopper en release der en manuell sjekk er eldre enn 30 dager før releasedatoen |
|
||||
| 2 | Dokumenterte hull | de **7** i LIMITATIONS, frosset i økt 1 | **0 lukket, 0 med målt begrunnelse** | Hvert hull er lukket (saken fanges, og testen er flyttet fra hull til fanget), eller det står med målt begrunnelse i LIMITATIONS |
|
||||
|
||||
**Vaktregel, ikke mål (uendret fra § T.2):** ingen nye falske alarmer på de tre
|
||||
FP-korpusene og det pinnede OKF-korpuset (6/53). Testsuiten, dekningsmatrisen,
|
||||
ReDoS-sveipet og census er grønne på hver release. En regel som lukker et hull
|
||||
men gir én ny alarm på rene dokumenter, lukker ikke hullet. Den blir en målt
|
||||
begrunnelse.
|
||||
|
||||
**Ikke framme hvis én:** en katalog er verken fulgt av vakten eller begrunnet som
|
||||
manuell · vakten har ikke kjørt de siste 7 dagene · et hull står uten målt
|
||||
begrunnelse. Går to økter på rad uten at et av tallene flytter seg, legges det
|
||||
fram for operatøren.
|
||||
|
||||
## V.3 Øktene
|
||||
|
||||
**Økt 1: måling og frysing.** Rad 1: avgjør for hver av de 16 hvilken probe-klasse i
|
||||
vakten som kan svare, eller hvorfor ingen kan. Rad 2: frys de sju (fil + sha256),
|
||||
skriv den billigste regelen for hvert hull og mål falske alarmer på korpusene FØR
|
||||
noe bygges. Resultatet ordner rekkefølgen for økt 3 og utover. Ingen release.
|
||||
|
||||
**Økt 2: vakten.** Kildelista for de 16 i vaktens format i dette repoet. Kjent
|
||||
positiv: vakten melder en frosset v1.4.1-kopi som bak. Ukentlig kjøring avtales med
|
||||
llm-security (det er deres jobb og deres skript, så det avtales med dem og
|
||||
endres ikke i deres repo herfra). Release-regelen blir en test. Release 1.9.0
|
||||
hvis noe utgitt endres, ellers bare commit.
|
||||
|
||||
**Økt 3 og utover: ett hull per økt,** i den rekkefølgen økt 1 målte. Hver lukking er
|
||||
en minor-release med beskjed til brukerne (ny deteksjon = atferdsendring). Et hull
|
||||
som ikke kan lukkes uten falske alarmer får sin målte begrunnelse samme økt.
|
||||
|
||||
**Siste økt: sluttmåling.** Rad 1 og 2 telles på siste release med de frosne
|
||||
nevnerne, og vakten må ha kjørt de siste 7 dagene.
|
||||
|
||||
## V.4 Hva som er avgjort
|
||||
|
||||
- Juli-commitene med øktlenker blir stående (operatøren 01.11).
|
||||
- Vakten gjenbrukes fra llm-security og skrives ikke på nytt i Python. Den er
|
||||
vedlikeholdsverktøy, ikke en del av pakken, så stdlib-regelen for kjernen gjelder
|
||||
ikke.
|
||||
|
||||
## V.5 Utenfor retningen
|
||||
|
||||
- Blokk-skalar `a #b` gir `'a #b'` der YAML gir `'a'` (gammelt avvik).
|
||||
- ReDoS-sveipet gir 1–10 tilfeldige tidsflagg per kjøring (exit 0).
|
||||
- repo-standard er ikke kjørt på den offentlige flaten.
|
||||
- De fire angrepene utenfor (X01–X04) står utenfor med grunn, se § T.3. De er ikke hull.
|
||||
|
||||
---
|
||||
|
||||
## Forrige retning (godkjent av operatøren 28.10.2026, nådd 31.10)
|
||||
|
||||
> «llm-ingestion-guard bygger på nyeste utgave av hver trusselkatalog den viser til,
|
||||
> hver med dato for siste sjekk og kildelenke. Ingen funn eller tekst bruker et
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue