Viri
Simulator Dnevnik Slovarček Razširitve Zaupanje Status storitve KontaktSprememba jezika
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.
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) |
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) |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
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 |
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.
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.
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.
| 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.
Ta threat model je živ dokument. Če ste CISO, revizor ali varnostni raziskovalec in je kakšna grožnja slabo modelirana, nas neposredno kontaktirajte.