Solidaritāte ar Ukrainu. Pakalpojums tiek piedāvāts bez maksas Ukrainas uzņēmumiem visā kara laikā. Pieprasīt bezmaksas piekļuvi
Drošība - publisks dokuments

Publisks <em>threat model.</em>

Ko mēs aizsargājam, pret ko, kā, un ko mēs <em>ne</em>aizsargājam. Labāk nosaukts perimetrs nekā slēpti solījumi.

Versija v1.0 · pārskatīta {{ "now"|date("d/m/Y") }} · pārskatīta katrā lielajā laidienā.

Metodoloģija: STRIDE (Spoofing / Tampering / Repudiation / Information disclosure / Denial of service / Elevation of privilege) piemērota piecām produkta virsmām. Katra rinda: apdraudējums - ARDNTECH mazināšana - pieņemts kompromiss.

Dokuments paredzēts CISO, auditoriem un drošības pētniekiem. AGPL pirmkods ir publisks vietnē github.com/aegirex/server. Detalizēti operacionālie runbooks paliek pieejami tikai design partners saskaņā ar NDA.

1. Modelētie dalībnieki

Deviņi uzbrucēju profili, kas ņemti vērā modelī.

Dalībnieks Apraksts Spējas
Ārējais uzbrucējs Internets, nav sākotnējas piekļuves Brutālais spēks, pikšķerēšana, web exploits, tīkla MITM
Pikšķerēts lietotājs Klonētas vietnes mērķa lietotājs Iesniedz savus akreditācijas datus uzbrucēja domēnam
Ļaunprātīgs līdznomnieks Citas ARDNTECH organizācijas lietotājs Mēģina lasīt kaimiņorganizāciju noslēpumus
Kompromitēta pārlūkprogramma Pārlūkprogramma, inficēta ar ļaunatūru vai ļaunprātīgu paplašinājumu Piekļuve DOM, var lasīt ievades laukus
Servera administrators Infrastruktūras operators ar SSH piekļuvi serverim Lasa datubāzi, lasa atmiņu, modificē kodu
Datubāzes eksfiltrācija Nozagta rezerves kopija, noplūdis SQL dump Pilns datubāzes snapshot
Tiesu iestāde Likumīga rekvizīcija, administratīvs orderis Piespiež mitinātāju izsniegt glabātos datus
ARDNTECH insiders ARDNTECH nākotnes darbinieks vai pakalpojumu sniedzējs Koda pārskatīšana, piekļuve izvietošanai, žurnālu lasīšana
Kvantu pretinieks Darbojošs kvantu dators (horizonts > 2030) Salauž RSA / ECC polinomiālā laikā (Shor)

2. Aizsargātie dati

Datu klasifikācija un aizsardzības līmenis miera stāvoklī.

Dati Jutīgums Glabāšana
Lietotāja galvenā parole Kritisks Tikai Argon2id hash (RFC 9106)
Noslēpumu saturs (payload) Kritisks Šifrēts no gala līdz galam (OpenPGP), serveris glabā necaurspīdīgu blobu
Lietotāja OpenPGP privātā atslēga Kritisks Nekad uz servera. Glabāta lokāli, aizsargāta ar lietotāja passphrase
TOTP noslēpumi miera stāvoklī Kritisks Šifrēti XChaCha20-Poly1305 (atslēga ārpus datubāzes)
Webhook noslēpumi miera stāvoklī Kritisks Šifrēti XChaCha20-Poly1305 (atslēga ārpus datubāzes)
Noslēpumu un mapju nosaukumi Mērens Atklātā veidā servera pusē. Kompromiss dokumentēts 5.1
Audita žurnāls Augsts HMAC-SHA-256 ķēde, tamper-evidence O(1)

3. Apdraudējumi un mazināšana pa virsmām

3.1 SaaS tīmekļa lietotne

Apdraudējums Mazināšana Statuss
Brutālais spēks uz paroli Rate limiter 5 mēģinājumi / 15 min uz IP + Argon2id (256 MiB, 5 passes) - 1 s uz lokālu mēģinājumu Piegādāts
Credential stuffing Tas pats rate limiter + HIBP opt-in skenēšana pēc pieteikšanās (skaidra VDAR piekrišana) Piegādāts
2FA apiešana TOTP RFC 6238 ar issuer pinning + vienreizlietojami atkopšanas kodi + WebAuthn PRF Piegādāts
Glabāts vai atstarots XSS Strikts CSP (script-src 'self' 'wasm-unsafe-eval'), aktivizēti Trusted Types, automātiska Twig izvairīšanās Piegādāts
OpenPGP.js atkarības kompromitēšana Bibliotēka iekļauta ar SHA-256 nospiedumu, pārbaudītu būvēšanas laikā (SRI integritātes manifests) Piegādāts
Galvenās paroles pikšķerēšana Spēcīga mazināšana drīzumā: WebAuthn PRF passkeys, kas novērš paroles pārsūtīšanu un ir piesaistīti izcelsmes domēnam ar pārlūkprogrammu. Pa to laiku: lietotāju apmācība + UI indikatori. Drīzumā

3.2 Šifrēta glabāšana

Apdraudējums Mazināšana Statuss
Nozagts datubāzes dump OpenPGP E2E šifrēts payload nelasāms bez lietotāja privātās atslēgas. Paroles Argon2id hash neatgūstamas Piegādāts
Nozagta rezerves kopija Šifrētas rezerves kopijas (Argon2id + ChaCha20-Poly1305), vairāki saņēmēji. Automatizēts atjaunošanas tests CI Piegādāts
Servera administrators lasa noslēpuma saturu Neiespējami bez lietotāja privātās atslēgas. Serveris glabā tikai necaurspīdīgus blobus Piegādāts
Audita žurnāla izmainīšana (tampering) HMAC-SHA-256 ķēde, atklāšana O(1) pārbaudē. Ķēdes detaļas Piegādāts

3.3 REST API

Apdraudējums Mazināšana Statuss
Cross-organizāciju datu noplūde Katrs API token piesaistīts unikālai organizācijai. Sistemātiska filtrēšana katrā endpoint. Skaidri izolācijas testi CI katrā commit Piegādāts
API token zādzība Token hashēts ar Argon2id datubāzē. Brīva rotācija ar lietotāju. Konfigurējams minimāls scope (lasīšana / rakstīšana) Piegādāts
Lietojumprogrammas pakalpojuma atteice Rate limiter pa token un pa IP (Symfony ietvars) Piegādāts

3.4 Pārlūkprogrammas paplašinājumi

Apdraudējums Mazināšana Statuss
Būvēšanas konveijera kompromitēšana Atkarību SHA-256 nospieduma pārbaude, ķēdēta būvēšanai. Plānots parakstīts SBOM Piegādāts
Popup aizvēršana = pagaidu piekļuves zaudēšana Pirmās versijas kompromiss: privātā atslēga netiek saglabāta, lai ierobežotu uzbrukuma virsmu. Drīzumā: konfigurējams auto-lock + saglabāšana caur kontrolētu service worker. Drīzumā
Akreditācijas datu uztveršana pikšķerēšanas vietnē Lietotājs redz reālo domēna nosaukumu paplašinājuma uznirstošajā logā pirms klikšķa uz «Saglabāt» Piegādāts

3.5 Pašmitināta infrastruktūra

Apdraudējums Mazināšana Statuss
Kompromitēts Docker attēls Automatizēta ievainojamību skenēšana CI. Plānots Sigstore paraksts lietotāja pārbaudei izvietošanas pusē Procesā
Nepārbaudīta rezerves kopija Automatizēts atjaunošanas tests CI katrā laidienā. Nav nepārbaudītas rezerves kopijas ražošanā Piegādāts
mTLS ražošanā Aktivizējams ar konfigurāciju. Pieejami audita režīmi (tikai žurnāli), pēc tam enforcement Piegādāts

4. Aizsardzības perimetrs - pieņemtās robežas

Redakcionāla godīgums: lūk virsmas, ko ARDNTECH neaptver viens pats, un ieteiktā mazināšana.

Robeža Kāpēc Ieteiktā mazināšana
Pilnīga lietotāja darbstacijas kompromitēšana Ļaunatūra ar piekļuvi pārlūkprogrammas RAM var lasīt atšifrēto privāto atslēgu Aparatūras passkey (YubiKey, TPM), kas ietver atslēgu drošā elementā
ARDNTECH servera kompromitēšana (root) Root uzbrucējs var lasīt aktīvās HTTP sesijas Glabātie noslēpumi paliek nelasāmi (zero-knowledge). Riskam pakļautas tikai sesijas, kas bija atvērtas kompromitēšanas brīdī. Ieteicams īss auto-lock
Galvenās paroles zaudēšana Tieša strikta zero-knowledge sekas: nav veida servera pusē atgūt atslēgu Atkopšanas kodi izdrukāti izveidojot. Drīzumā: Shamir koplietošana M-no-N Enterprise plāniem
Kvantu pretinieks (horizonts > 2030) OpenPGP v6 + AES-256 tiek uzskatīti par drošiem 5 līdz 10 gadiem saskaņā ar ANSSI RGS 2024 Pēckvantu migrācija (ML-KEM, ML-DSA) ilgtermiņa novērtējumā
Fizisks uzbrukums lietotāja darbstacijai ARDNTECH ir loģiska glabātava, nevis fiziska glabātava Īss glabātavas auto-lock + aparatūras WebAuthn passkey
ARDNTECH insiders (nākotnes darbinieks) Pieņemta SaaS izdevēja uzticības modeļa robeža NDA, atbildību nodalīšana, obligāta koda pārskatīšana, tamper-evident audita ķēde, vismazāko privilēģiju princips

5. Pieņemtie kompromisi

5.1 Noslēpumu un mapju nosaukumi atklātā veidā servera pusē

Izvēle: nosaukumi glabāti atklātā veidā servera pusē.

Kāpēc: tūlītēja meklēšana servera pusē, koka attēlošana bez atšifrēšanas katrā navigācijā, iespējams hierarhisks mapju koplietojums.

Ietekme: uzbrucējs, kas eksfiltrē datubāzi, redz, ka noslēpums ar nosaukumu «AWS Prod» pastāv mapē «DevOps / Cloud». Viņš NEredz saturu (E2E šifrēts payload).

Apsvērtā alternatīva: opcija «anonimizē mani», kas šifrē arī nosaukumus. Būtiskas UX izmaksas: nav meklēšanas servera pusē, pilna klienta skenēšana katrā pieprasījumā.

5.2 Parole atklātā veidā DOM ievades laikā

Izvēle: OpenPGP šifrē payload pēc tam, kad lietotājs ir ievadījis savu paroli.

Kāpēc: nav alternatīvas - pārlūkprogrammai jāredz atklātais teksts, lai ļautu lietotājam to ievadīt.

Mazināšanas: Trusted Types CSP neļauj DOM XSS injicēt JavaScript, kas izsūc. Drīzumā: WebAuthn passkeys, kas pilnībā novērš paroļu pārsūtīšanu.

5.3 Galvenā parole = vienīgā glabātavas atslēga

Izvēle: nav atgūšanas, ja lietotājs zaudē gan savu galveno paroli, GAN savus atkopšanas kodus.

Kāpēc: strikts zero-knowledge. Ja mēs varētu atgūt, būtu atšifrēšanas ceļš servera pusē.

Mazināšana drīzumā: privātās atslēgas Shamir koplietošana (M-no-N daļas), viena daļa pie ARDNTECH ar procedurāliem aizsargmehānismiem (atbloķēšana tikai ar N-1 citu daļu klātbūtni, ko apstiprina lietotājs). Rezervēts Enterprise plāniem.

6. Incidentu reaģēšanas plāns

Līmenis Aktivizētājs Darbība
L1 Aizdomas Anomālija audita žurnālā, lietotāja ziņojums Iekšēja izmeklēšana 24 h laikā, audita ķēdes pārbaude
L2 Apstiprināta kompromitēšana Izmeklēšanā apstiprināta tehniska kompromitēšana Lietotāju paziņojums 72 h laikā (VDAR 33. pants), skarto atslēgu rotācija, mazināšanas ieviešana
L3 Liela kompromitēšana Kompromitēta datubāze vai pirmkods CNIL un ANSSI paziņojums, publisks transparency report, ārējais kriminālistikas audits

Atbildīga atklāšana: Saskaņā ar RFC 9116, fails /.well-known/security.txt vietnes saknē norāda mūsu kontaktadresi security@aegirex.eu. Saņemšanas apstiprinājuma termiņš: 72 h.

Precizēt dokumentu?

Šis threat model ir dzīvs dokuments. Ja esat CISO, auditors vai drošības pētnieks un kāds apdraudējums ir slikti modelēts, sazinieties ar mums tieši.