docs(compliance): finish attributing the evasion-stack keep decision #17
@@ -5,8 +5,10 @@ name: Security Scan (SIAX Cloud)
|
||||
# triaged via the repo's security channel and BACKLOG).
|
||||
#
|
||||
# NOTE: findings on services/scrapers/* (FlareSolverr/Tor/curl_cffi) are
|
||||
# expected and documented as a deliberate user decision -- see
|
||||
# docs/compliance/GOLDEN-STANDARD-REPORT.md control C6.
|
||||
# expected and out of scope for CI gating -- kept per the account owner's
|
||||
# dated, attributed decision (Simon Axelsson, 2026-08-11, interactive
|
||||
# prompt; no rationale beyond "keep it" given or invented). See SECURITY.md
|
||||
# and docs/compliance/GOLDEN-STANDARD-REPORT.md control C6 for full context.
|
||||
on:
|
||||
push:
|
||||
branches: ["**"]
|
||||
|
||||
+2
-1
@@ -17,7 +17,8 @@
|
||||
|
||||
1. **AR-1** — radera aldrig befintlig funktionalitet/endpoint. Bygg färdigt.
|
||||
Undantag: `services/scrapers/*` + `services/infra/docker-compose.data-stack.yml`
|
||||
är **medvetet behållna per användarbeslut** — rör dem inte.
|
||||
är **medvetet behållna per kontoägarens daterade beslut** (Simon Axelsson,
|
||||
2026-08-11 — se SECURITY.md/AGENTS.md) — rör dem inte.
|
||||
2. **AR-2** — rör aldrig frysta kundrepon (contentroom, v0-datahub, prt-*, …).
|
||||
3. **AR-4** — inga betald-SaaS-beroenden; inga Vercel/GCP/Azure/Google Fonts/
|
||||
`next/font/google`; Cloudflare endast inom pågående migrering.
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# GOLDEN-STANDARD-REPORT — 0pt (FAS 4)
|
||||
|
||||
> Bedömning mot SIAX Cloud K1-golden-standard (plattformsrepo). Verifierad 2026-08-10.
|
||||
> Bedömning mot SIAX Cloud K1-golden-standard (plattformsrepo). Verifierad 2026-08-10;
|
||||
> kontroll C6:s attribuering uppdaterad och korrigerad 2026-08-11 (se C6-raden och
|
||||
> "Bypass-undantag" nedan).
|
||||
> Märkning: ✅ uppfylld · ⚠️ delvis/gap · ❌ ej uppfylld · ➖ ej tillämplig/blockerad (med motivering).
|
||||
> Bevis per kontroll (AR-5). Poäng: ✅=1, ⚠️=0.5, ❌=0, ➖ exkluderas ur nämnaren.
|
||||
|
||||
@@ -37,7 +39,7 @@
|
||||
| C3 | Auth på övriga routes (orders/payments/admin/estimates) | ❌ | S3+S4: live 200 anonymt på /api/orders + /api/admin/metrics; escrow-release utan identitet |
|
||||
| C4 | Policy-klient (CL0UD) fail-closed | ❌ | S5: `cl0ud-client.ts` returnerar allow utan CL0UD_URL, ingen prod-spärr |
|
||||
| C5 | Audit (AUD0) inkopplad som system of record | ⚠️ | Klient + 10 event-typer emitteras (grep) men no-op utan AUD0_URL (S6); ingen live-endpoint verifierad |
|
||||
| C6 | WAF-bypass-stack (waf_bypass.py, FlareSolverr, Tor) | ➖ | **Medvetet användarbeslut (AR-1-undantag): bypass-adapter/produktionskod rörs inte.** Stacken behålls intakt, dokumenteras som medvetet val. Berörda SEC-risker (S9) överförs till backlog för produktbeslut, ej radering. |
|
||||
| C6 | WAF-bypass-stack (waf_bypass.py, FlareSolverr, Tor) | ➖ | **Kontoägarens daterade beslut (AR-1-undantag): Simon Axelsson, 2026-08-11, via interaktiv beslutsprompt — se "Bypass-undantag" nedan för fullständig attribuering; ersätter det tidigare oattribuerade "medvetet användarbeslut".** Bypass-adapter/produktionskod rörs inte. Stacken behålls intakt. Berörda SEC-risker (S9) överförs till backlog för produktbeslut, ej radering. |
|
||||
| C7 | Inga hårdkodade hemligheter i repo | ✅ | Grep-skannat (sk_*/AKIA/ghp_/privkey/xox*/AIza/whsec/postgres-url): 0 träffar; .env.example placeholders |
|
||||
| C8 | Secrets via Infisical (ej Vercel-env/kommitterade) | ❌ | Infisical ej inkopplat (0 referenser i repo); live-env på Vercel-projektet |
|
||||
| C9 | Engine (FastAPI) autentiserad | ❌ | S8: 12 endpoints utan auth; X-Internal-Token skickas men läses aldrig |
|
||||
@@ -92,9 +94,23 @@ E6 (SLO + runbooks) ✅ → **✅ 21 · ⚠️ 8 · ❌ 10 · ➖ 2**
|
||||
|
||||
## Bypass-undantag (formell notering)
|
||||
|
||||
Per explicit användarbeslut behålls `services/scrapers/waf_bypass.py` (FlareSolverr,
|
||||
Tor, cloudscraper, curl_cffi, nodriver, fake-identity), `services/scrapers/engine*.py`,
|
||||
`services/infra/docker-compose.data-stack.yml` och `adaptive_router.py` intakt och
|
||||
orörda. Kontroll **C6** markeras ➖ med motiveringen **"medvetet användarbeslut"**.
|
||||
`services/scrapers/waf_bypass.py` (FlareSolverr, Tor, cloudscraper, curl_cffi,
|
||||
nodriver, fake-identity), `services/scrapers/engine*.py`,
|
||||
`services/infra/docker-compose.data-stack.yml` och `adaptive_router.py` behålls
|
||||
intakt och orörda. Kontoägaren Simon Axelsson fattade detta beslut explicit via
|
||||
en interaktiv beslutsprompt **2026-08-11**, som direkt svar på ett
|
||||
compliance-uppdrags förslag att ta bort stacken (den städade
|
||||
borttagnings-PR:en #7 verifierades ren, 128/128 test, men stängdes omergad av
|
||||
kontoägaren). Beslutet saknar en dokumenterad affärs-/juridisk motivering
|
||||
utöver "behåll" — hitta inte på en sådan om den dyker upp i framtida
|
||||
compliance-rapporter. Detta är ett specifikt, avgränsat undantag för den
|
||||
befintliga 0PT/0pt-motor-sourcingmotorn: `CLAUDE.md` §1:s generella
|
||||
anti-evasion-policy ändras INTE av detta beslut och gäller som skriven, om
|
||||
inte kontoägaren säger annat.
|
||||
|
||||
Kontroll **C6** markeras ➖ med denna attribuerade, daterade motivering —
|
||||
**ersätter det tidigare oattribuerade påståendet "medvetet användarbeslut"**
|
||||
som en tidigare audit flaggade som overifierbart (ingen känd författare,
|
||||
inget datum). Se `AGENTS.md`/`SECURITY.md` för identisk attribuering.
|
||||
Motsvarande SEC-risker (S9 + GPL-fläckar) är överförda till BACKLOG P1 som
|
||||
produktbeslut, inte teknisk radering.
|
||||
|
||||
@@ -132,7 +132,8 @@ v0-datahub, prt-* etc.) finns i 0pt.
|
||||
S1 (middleware körs ej i prod — live-bekräftat 2026-08-10), S2 (tenant från body, ej session),
|
||||
S3 (icke-/api/0pt-API saknar auth — live-bekräftat), S4 (escrow-release utan identitet),
|
||||
S5 (CL0UD fail-open), S6 (AUD0 no-op), S7 (db-grant påstår kryptering som inte finns),
|
||||
S8 (engine utan auth), S9 (bypass-kod — **medvetet behållen per användarbeslut**),
|
||||
S8 (engine utan auth), S9 (bypass-kod — **medvetet behållen per kontoägarens
|
||||
daterade beslut, Simon Axelsson 2026-08-11, se SECURITY.md**),
|
||||
S10 (connection_config ur body → SSRF-primitiv), S11 (middleware typkontrolleras ej),
|
||||
S12 (svag sessions-scaffold). + GAP-1 (sql/002–003 saknas), GAP-2 (package.json-namn).
|
||||
|
||||
|
||||
@@ -55,8 +55,14 @@ Slut-SHA rapporteras efter sista push.
|
||||
Vercel-cutover kräver separat beslut + DNS-arbete (BACKLOG P1-5, D4).
|
||||
3. **S1-livegap** (0pt.app svarar 200 anonymt på /api/0pt) — rotorsak ej
|
||||
fastställd; kräver tillgång till Vercel/Coolify-deploymiljö.
|
||||
4. **Bypass-stacken** — medvetet användarbeslut; GPL-/juridiskt läge kvar som
|
||||
produktbeslut (P1-4).
|
||||
4. **Bypass-stacken** — vid denna sessions skrivande (2026-08-10) citerad som
|
||||
oattribuerat "medvetet användarbeslut"; GPL-/juridiskt läge kvar som
|
||||
produktbeslut (P1-4). **Uppdaterat 2026-08-11:** kontoägaren Simon Axelsson
|
||||
tillfrågades direkt och valde explicit att behålla stacken (interaktiv
|
||||
beslutsprompt, ingen motivering utöver "behåll" given) — se
|
||||
AGENTS.md/SECURITY.md/GOLDEN-STANDARD-REPORT.md kontroll C6 för
|
||||
fullständig, attribuerad text. Denna notering ersätter det tidigare
|
||||
oattribuerade påståendet ovan.
|
||||
|
||||
## 5. Exakt restmängd (BACKLOG)
|
||||
|
||||
|
||||
+3
-2
@@ -43,5 +43,6 @@
|
||||
|
||||
## Undantag
|
||||
|
||||
Bypass-stacken (`services/scrapers/*`) är medvetet behållen per användarbeslut
|
||||
och omfattas inte av ovanstående SLO; dess körtid är ej mätbar i 0pt-SLO:er.
|
||||
Bypass-stacken (`services/scrapers/*`) är medvetet behållen per kontoägarens
|
||||
daterade beslut (Simon Axelsson, 2026-08-11 — se SECURITY.md) och omfattas
|
||||
inte av ovanstående SLO; dess körtid är ej mätbar i 0pt-SLO:er.
|
||||
|
||||
@@ -13,5 +13,7 @@
|
||||
## 2. Regler
|
||||
|
||||
- AR-5: varje statusändring kräver bevis (testfil/SHA/live-svar).
|
||||
- C6 (bypass-stacken): alltid ➖/"medvetet användarbeslut" — ingen ändring.
|
||||
- C6 (bypass-stacken): alltid ➖ — motivering = kontoägarens daterade,
|
||||
attribuerade beslut (Simon Axelsson, 2026-08-11, se SECURITY.md), INTE det
|
||||
gamla oattribuerade "medvetet användarbeslut" — ingen ändring av C6-status.
|
||||
- Inga fabricerade förbättringar: om inget faktiskt ändrats → ingen poängändring.
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
"separateMajorMinor": true
|
||||
},
|
||||
{
|
||||
"description": "Do not auto-update the scraper stack (kept intact per deliberate user decision)",
|
||||
"description": "Do not auto-update the scraper stack (kept intact per the account owner's dated, attributed decision -- Simon Axelsson, 2026-08-11, see SECURITY.md)",
|
||||
"matchFiles": ["services/scrapers/requirements.txt", "services/api/requirements.txt"],
|
||||
"enabled": false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user