Solidarnost z Ukrajino. Storitev je brezplačno na voljo ukrajinskim podjetjem, dokler traja vojna. Zahtevajte brezplačen dostop
Varnost - javni dokument

Javni model grožnje.

Kaj zaščitimo, pred kom, kako in kar ne zaščitimo. Bolje poimenovan obseg kot skrite obljube.

Različica v1.0 · revidirana {{ "now"|date("d/m/Y") }} · revidirana ob vsaki večji izdaji.

Metodologija: STRIDE (Spoofing / Tampering / Repudiation / Information disclosure / Denial of service / Elevation of privilege), uporabljen na petih površinah izdelka. Vsaka vrstica: grožnja : blažitev ARDNTECH : prevzeti kompromis.

Dokument namenjen CISO, revizorjem in varnostnim raziskovalcem. Izvorna koda AGPL je javna na github.com/aegirex/server. Podrobni operativni runbooki ostajajo pridržani za design partnerje pod NDA.

1. Modelirani akterji

Devet profilov napadalcev, upoštevanih v modelu.

Akter Opis Zmogljivosti
Zunanji napadalec Internet, brez začetnega dostopa Surova sila, lažno predstavljanje, spletni exploiti, omrežni MITM
Uporabnik žrtev lažnega predstavljanja Uporabnik, tarča kloniranega spletnega mesta Predloži svoje poverilnice napadalčevi domeni
Zlonamerni sostanovalec Uporabnik druge organizacije ARDNTECH Poskuša brati skrivnosti sosednjih organizacij
Kompromitiran brskalnik Brskalnik, okužen z zlonamerno programsko opremo ali zlonamerno razširitvijo Dostop do DOM, lahko bere vnosna polja
Skrbnik strežnika Infrastrukturni operater z dostopom SSH do strežnika Bere bazo podatkov, bere pomnilnik, spreminja kodo
Izčrpavanje baze podatkov Ukradena varnostna kopija, ušel izvoz SQL Celoten posnetek baze podatkov
Sodni organ Zakonska rekvizicija, upravni nalog Prisili gostitelja, da zagotovi shranjene podatke
Notranja oseba ARDNTECH Bodoči zaposleni ali izvajalec ARDNTECH Pregled kode, dostop do uvedbe, branje dnevnikov
Kvantni nasprotnik Delujoč kvantni računalnik (obzorje > 2030) Razbije RSA / ECC v polinomskem času (Shor)

2. Zaščiteni podatki

Klasifikacija podatkov in raven zaščite v počitku.

Podatek Občutljivost Hramba
Glavno geslo uporabnika Kritično Samo zgoščena vrednost Argon2id (RFC 9106)
Vsebina skrivnosti (payload) Kritično Šifrirano od konca do konca (OpenPGP), strežnik hrani neprozoren blob
Zasebni ključ OpenPGP uporabnika Kritično Nikoli na strežniku. Shranjen lokalno, zaščiten z geslom uporabnika
Skrivnosti TOTP v mirovanju Kritično Šifrirane XChaCha20-Poly1305 (ključ zunaj baze podatkov)
Skrivnosti webhook v mirovanju Kritično Šifrirane XChaCha20-Poly1305 (ključ zunaj baze podatkov)
Imena skrivnosti in map Zmerna V jasnem na strani strežnika. Kompromis dokumentiran 5.1
Revizijski dnevnik Visoka Veriga HMAC-SHA-256, tamper-evidence v O(1)

3. Grožnje in ublažitve na površino

3.1 Spletna aplikacija SaaS

Grožnja Blažitev Status
Surova sila na geslo Omejevalnik hitrosti 5 poskusov / 15 min na IP + Argon2id (256 MiB, 5 prehodov) : 1 s na lokalni poskus Dostavljeno
Credential stuffing Isti omejevalnik hitrosti + pregled HIBP opt-in po prijavi (izrecno soglasje GDPR) Dostavljeno
Obhod 2FA TOTP RFC 6238 z issuer pinning + enkratne obnovitvene kode + WebAuthn PRF Dostavljeno
Shranjen ali odsevni XSS Stroga CSP (script-src 'self' 'wasm-unsafe-eval'), vklopljeni Trusted Types, samodejno ubežanje Twig Dostavljeno
Kompromitacija odvisnosti OpenPGP.js Knjižnica vključena s prstnim odtisom SHA-256, preverjenim ob gradnji (manifest integritete SRI) Dostavljeno
Lažno predstavljanje glavnega gesla Močna blažitev prihaja: passkeys WebAuthn PRF, ki odpravijo prenos gesla in jih brskalnik veže na izvorno domeno. Medtem: usposabljanje uporabnikov + indikatorji UI. Prihaja

3.2 Šifrirana hramba

Grožnja Blažitev Status
Ukraden izvoz baze podatkov Payload, šifriran OpenPGP E2E, neberljiv brez uporabnikovega zasebnega ključa. Gesla v zgoščeni vrednosti Argon2id niso obnovljiva Dostavljeno
Ukradena varnostna kopija Šifrirane varnostne kopije (Argon2id + ChaCha20-Poly1305), večprejemniške. Avtomatiziran test obnovitve v CI Dostavljeno
Skrbnik strežnika bere vsebino skrivnosti Nemogoče brez uporabnikovega zasebnega ključa. Strežnik hrani le neprozorne blobe Dostavljeno
Sprememba revizijskega dnevnika (tampering) Veriga HMAC-SHA-256, zaznavanje v O(1) ob preverjanju. Podrobnost verige Dostavljeno

3.3 REST API

Grožnja Blažitev Status
Uhajanje podatkov med organizacijami Vsak žeton API vezan na edinstveno organizacijo. Sistematično filtriranje na vsaki končni točki. Izrecni testi izolacije v CI ob vsakem commitu Dostavljeno
Kraja žetona API Žeton zgoščen Argon2id v bazi. Prosta rotacija s strani uporabnika. Minimalni obseg (branje / pisanje) nastavljiv Dostavljeno
Aplikacijska zavrnitev storitve Omejevalnik hitrosti po žetonu in po IP (okvir Symfony) Dostavljeno

3.4 Razširitve brskalnika

Grožnja Blažitev Status
Kompromitacija gradbenega cevovoda Preverjanje prstnega odtisa SHA-256 odvisnosti, veriženo ob gradnji. Podpisan SBOM načrtovan Dostavljeno
Zaprtje pojavnega okna = začasna izguba dostopa Kompromis prve različice: zasebni ključ se ne ohranja, da se omeji napadalna površina. Prihaja: nastavljiv samodejni zaklep + ohranjanje prek nadzorovanega service worker. Prihaja
Zajem poverilnic na lažnem spletnem mestu Uporabnik vidi resnično ime domene v pojavnem oknu razširitve, preden klikne "Shrani" Dostavljeno

3.5 Samostojno gostovana infrastruktura

Grožnja Blažitev Status
Kompromitirana slika Docker Avtomatiziran pregled ranljivosti v CI. Podpis Sigstore načrtovan za uporabniško preverjanje na strani uvedbe V teku
Nepreizkušena varnostna kopija Avtomatiziran test obnovitve v CI ob vsaki izdaji. Brez nepreverjene varnostne kopije v produkciji Dostavljeno
mTLS v produkciji Aktivacija prek konfiguracije. Na voljo načina revizije (samo dnevniki) in nato uveljavljanja Dostavljeno

4. Obseg zaščite - predpostavljeni mejami

Uredniška iskrenost: tu so površine, ki {{ app_name }} ne pokrivajo sami, in priporočeno ublažitev.

Meja Zakaj Priporočena blažitev
Popolna kompromitacija uporabnikove naprave Zlonamerna programska oprema z dostopom do RAM brskalnika lahko bere dešifrirani zasebni ključ Strojni passkey (YubiKey, TPM), ki ključ omeji v varnostni element
Kompromitacija strežnika ARDNTECH (root) Napadalec z root pravicami lahko bere dejavne seje HTTP Shranjene skrivnosti ostanejo neberljive (zero-knowledge). Tvegane so le seje, odprte v trenutku kompromitacije. Priporočen kratek samodejni zaklep
Izguba glavnega gesla Neposredna posledica strogega zero-knowledge: nobenega načina na strani strežnika za obnovitev ključa Obnovitvene kode natisnjene ob ustvarjanju. Prihaja: deljenje Shamir M-od-N za načrte Enterprise
Kvantni nasprotnik (obzorje > 2030) OpenPGP v6 + AES-256 sta ocenjena kot varna 5 do 10 let po RGS ANSSI 2024 Postkvantna migracija (ML-KEM, ML-DSA) v dolgoročni oceni
Fizični napad na uporabnikovo napravo ARDNTECH je logičen trezor, ne fizičen trezor Kratek samodejni zaklep trezorja + strojni passkey WebAuthn
Notranja oseba ARDNTECH (bodoči zaposleni) Prevzeta meja modela zaupanja izdajatelja SaaS NDA, ločevanje odgovornosti, obvezen pregled kode, revizijska veriga, odporna na spremembe, načelo najmanjšega privilegija

5. Predpostavljeni kompromisi

5.1 Imena skrivnosti in map v jasnem na strani strežnika

Izbira: imena shranjena v jasnem na strani strežnika.

Zakaj: takojšnje iskanje na strani strežnika, prikaz drevesne strukture brez dešifriranja ob vsaki navigaciji, možno hierarhično deljenje map.

Vpliv: napadalec, ki izčrpa bazo podatkov, vidi, da skrivnost z imenom "AWS Prod" obstaja v mapi "DevOps / Cloud". NE vidi vsebine (payload šifriran E2E).

Razmišljena alternativa: možnost "anonymise me", ki šifrira tudi imena. Znaten strošek UX: brez iskanja na strani strežnika, popoln pregled na strani odjemalca ob vsaki zahtevi.

5.2 Geslo v jasnem v DOM med vnosom

Izbira: OpenPGP šifrira payload, potem ko uporabnik vtipka svoje geslo.

Zakaj: brez alternative : brskalnik mora videti jasno besedilo, da uporabniku omogoči vnos.

Blažitve: Trusted Types CSP prepreči, da bi DOM XSS vbrizgal izčrpavalni JavaScript. Prihaja: passkeys WebAuthn, ki popolnoma odpravijo prenos gesel.

5.3 Glavno geslo = edinstven ključ trezorja

Izbira: brez obnovitve, če uporabnik izgubi tako svoje glavno geslo KOT svoje obnovitvene kode.

Zakaj: strogi zero-knowledge. Če bi lahko obnovili, bi obstajala pot dešifriranja na strani strežnika.

Blažitev prihaja: deljenje Shamir zasebnega ključa (M-od-N delov), en del pri ARDNTECH s postopkovnimi varovali (odklep le ob prisotnosti N-1 drugih delov, ki jo potrdi uporabnik). Pridržano za načrte Enterprise.

6. Načrt odziva na incident

Raven Sprožilec Dejanje
L1 Sum Anomalija v revizijskem dnevniku, prijava uporabnika Notranja preiskava v 24 h, preverjanje revizijske verige
L2 Potrjena kompromitacija Tehnična kompromitacija, potrjena s preiskavo Obvestilo uporabnikom v 72 h (GDPR čl. 33), rotacija prizadetih ključev, vzpostavitev blažitev
L3 Velika kompromitacija Kompromitirana baza podatkov ali izvorna koda Obvestilo CNIL in ANSSI, javno poročilo o preglednosti, zunanja forenzična revizija

Odgovorno razkritje: V skladu z RFC 9116 datoteka /.well-known/security.txt v korenu spletnega mesta navaja naš kontaktni naslov security@aegirex.eu. Rok za potrditev prejema: 72 h.

Razjasnite dokument?

Ta threat model je živ dokument. Če ste CISO, revizor ali varnostni raziskovalec in je kakšna grožnja slabo modelirana, nas neposredno kontaktirajte.