Solidarnost s Ukrajinom. Usluga se nudi besplatno ukrajinskim tvrtkama za vrijeme trajanja rata. Zatražite besplatan pristup
Sigurnost - javni dokument

Javni <em>model prijetnje.</em>

Ono što štitimo, protiv koga, kako, i ono što <em>ne</em> štitimo. Bolji je imenovan perimetar nego skrivena obećanja.

Verzija v1.0 · revidirana {{ "now"|date("d/m/Y") }} · revidira se pri svakom značajnom izdanju.

Metodologija: STRIDE (Spoofing / Tampering / Repudiation / Information disclosure / Denial of service / Elevation of privilege) primijenjen na pet površina proizvoda. Svaki redak: prijetnja - ARDNTECH ublažavanje - prihvaćeni kompromis.

Dokument namijenjen CISO-ima, revizorima i sigurnosnim istraživačima. Izvorni AGPL kod javan je na github.com/aegirex/server. Detaljni operativni runbookovi ostaju rezervirani za design partnere pod NDA-om.

1. Modelirani akteri

Devet profila napadača uzetih u obzir u modelu.

Akter Opis Sposobnosti
Vanjski napadač Internet, bez početnog pristupa Brute force, phishing, web exploiti, mrežni MITM
Phishani korisnik Korisnik meta klonirane stranice Predaje svoje vjerodajnice napadačevoj domeni
Zlonamjerni suzakupnik Korisnik druge ARDNTECH organizacije Pokušava čitati tajne susjednih organizacija
Kompromitiran preglednik Preglednik zaražen zlonamjernim softverom ili zlonamjernom ekstenzijom Pristup DOM-u, može čitati polja za unos
Administrator poslužitelja Operater infrastrukture s SSH pristupom poslužitelju Čita bazu podataka, čita memoriju, mijenja kod
Eksfiltracija baze podataka Ukradeni backup, procurio SQL dump Potpun snapshot baze podataka
Pravosudno tijelo Zakonski zahtjev, upravni nalog Prisiljava hosta da dostavi pohranjene podatke
Insider ARDNTECH Budući zaposlenik ili podizvođač ARDNTECH Revizija koda, pristup postavljanju, čitanje logova
Kvantni protivnik Operativno kvantno računalo (horizont > 2030) Lomi RSA / ECC u polinomnom vremenu (Shor)

2. Zaštićeni podaci

Klasifikacija podataka i razina zaštite u mirovanju.

Podatak Osjetljivost Pohrana
Glavna lozinka korisnika Kritično Samo Argon2id hash (RFC 9106)
Sadržaj tajni (payload) Kritično Šifrirano od početka do kraja (OpenPGP), poslužitelj pohranjuje neproziran blob
Privatni OpenPGP ključ korisnika Kritično Nikada na poslužitelju. Pohranjen lokalno, zaštićen korisničkom passphrase
TOTP tajne u mirovanju Kritično Šifrirane XChaCha20-Poly1305 (ključ izvan baze podataka)
Webhook tajne u mirovanju Kritično Šifrirane XChaCha20-Poly1305 (ključ izvan baze podataka)
Nazivi tajni i mapa Umjerena U čistom obliku na strani poslužitelja. Kompromis dokumentiran 5.1
Revizijski dnevnik Visoka HMAC-SHA-256 lanac, tamper-evidence u O(1)

3. Prijetnje i ublažavanja po površini

3.1 Web SaaS aplikacija

Prijetnja Ublažavanje Status
Brute force na lozinku Rate limiter 5 pokušaja / 15 min po IP-u + Argon2id (256 MiB, 5 prolaza) - 1 s po lokalnom pokušaju Isporučeno
Credential stuffing Isti rate limiter + HIBP opt-in skeniranje nakon prijave (eksplicitni GDPR pristanak) Isporučeno
Zaobilaženje 2FA TOTP RFC 6238 s issuer pinningom + jednokratni kodovi za oporavak + WebAuthn PRF Isporučeno
Pohranjeni ili reflektirani XSS Stroga CSP (script-src 'self' 'wasm-unsafe-eval'), Trusted Types omogućeni, automatsko Twig escapanje Isporučeno
Kompromitacija OpenPGP.js ovisnosti Vendorirana biblioteka s SHA-256 otiskom provjerenim pri buildu (SRI manifest integriteta) Isporučeno
Phishing glavne lozinke Snažno ublažavanje uskoro: WebAuthn PRF passkeyji, koji uklanjaju prijenos lozinke i koje preglednik veže uz izvornu domenu. U međuvremenu: obuka korisnika + UI indikatori. Uskoro

3.2 Šifrirana pohrana

Prijetnja Ublažavanje Status
Ukraden dump baze podataka OpenPGP E2E šifriran payload nečitljiv bez korisnikovog privatnog ključa. Lozinke u Argon2id hashu nepovrative Isporučeno
Ukraden backup Šifrirani backupovi (Argon2id + ChaCha20-Poly1305), za više primatelja. Automatizirani test vraćanja u CI-ju Isporučeno
Administrator poslužitelja čita sadržaj tajne Nemoguće bez korisnikovog privatnog ključa. Poslužitelj pohranjuje samo neprozirne blobove Isporučeno
Izmjena revizijskog dnevnika (tampering) HMAC-SHA-256 lanac, otkrivanje u O(1) pri provjeri. Detalj lanca Isporučeno

3.3 REST API

Prijetnja Ublažavanje Status
Curenje cross-org podataka Svaki API token vezan uz jedinstvenu organizaciju. Sustavno filtriranje na svakom endpointu. Eksplicitni testovi izolacije u CI-ju pri svakom commitu Isporučeno
Krađa API tokena Token hashiran Argon2id-om u bazi. Slobodna rotacija od strane korisnika. Minimalni scope (čitanje / pisanje) konfigurabilan Isporučeno
Aplikacijsko uskraćivanje usluge Rate limiter po tokenu i po IP-u (Symfony okvir) Isporučeno

3.4 Preglednički dodaci

Prijetnja Ublažavanje Status
Kompromitacija build pipelinea Provjera SHA-256 otiska ovisnosti lančana uz build. Planiran potpisan SBOM Isporučeno
Zatvaranje popupa = privremeni gubitak pristupa Kompromis prve verzije: privatni ključ ne perzistira radi ograničenja napadne površine. Uskoro: konfigurabilan auto-lock + perzistencija putem kontroliranog service workera. Uskoro
Hvatanje vjerodajnica na phishing stranici Korisnik vidi stvarni naziv domene u popupu ekstenzije prije klika na "Spremi" Isporučeno

3.5 Samostalno hostirana infrastruktura

Prijetnja Ublažavanje Status
Kompromitirana Docker slika Automatizirano skeniranje ranjivosti u CI-ju. Planiran Sigstore potpis za korisničku provjeru na strani postavljanja U tijeku
Netestiran backup Automatizirani test vraćanja u CI-ju na svakom izdanju. Bez neprovjerenog backupa u produkciji Isporučeno
mTLS u produkciji Omogućivo konfiguracijom. Dostupni modovi audit (samo logovi) pa enforcement Isporučeno

4. Perimetar zaštite - prihvaćena ograničenja

Urednička iskrenost: evo površina koje ARDNTECH ne pokriva sam, i preporučeno ublažavanje.

Ograničenje Zašto Preporučeno ublažavanje
Potpuna kompromitacija korisnikovog uređaja Zlonamjerni softver s pristupom RAM-u preglednika može pročitati dešifrirani privatni ključ Hardverski passkey (YubiKey, TPM) koji zatvara ključ u sigurnosni element
Kompromitacija ARDNTECH poslužitelja (root) Root napadač može čitati aktivne HTTP sesije Pohranjene tajne ostaju nečitljive (zero-knowledge). U riziku su samo sesije otvorene u trenutku kompromitacije. Preporučuje se kratak auto-lock
Gubitak glavne lozinke Izravna posljedica strogog zero-knowledgea: nema načina na strani poslužitelja za povrat ključa Kodovi za oporavak ispisani pri stvaranju. Uskoro: Shamir dijeljenje M-od-N za Enterprise planove
Kvantni protivnik (horizont > 2030) OpenPGP v6 + AES-256 procijenjeni su sigurnima 5 do 10 godina prema ANSSI RGS 2024 Post-kvantna migracija (ML-KEM, ML-DSA) u dugoročnoj procjeni
Fizički napad na korisnikov uređaj ARDNTECH je logički trezor, a ne fizički sef Kratak auto-lock trezora + hardverski WebAuthn passkey
Insider ARDNTECH (budući zaposlenik) Prihvaćeno ograničenje modela povjerenja SaaS izdavača NDA, razdvajanje odgovornosti, obvezna revizija koda, tamper-evident revizijski lanac, načelo najmanje privilegije

5. Prihvaćeni kompromisi

5.1 Nazivi tajni i mapa u čistom obliku na strani poslužitelja

Izbor: nazivi pohranjeni u čistom obliku na strani poslužitelja.

Zašto: trenutačno pretraživanje na strani poslužitelja, prikaz stabla bez dešifriranja pri svakoj navigaciji, moguće hijerarhijsko dijeljenje mapa.

Učinak: napadač koji eksfiltrira bazu podataka vidi da tajna nazvana "AWS Prod" postoji u mapi "DevOps / Cloud". NE vidi sadržaj (E2E šifriran payload).

Razmotrena alternativa: opcija "anonymise me" koja šifrira i nazive. Značajan UX trošak: bez pretraživanja na strani poslužitelja, potpuno klijentsko skeniranje pri svakom zahtjevu.

5.2 Lozinka u čistom obliku u DOM-u tijekom unosa

Izbor: OpenPGP šifrira payload nakon što korisnik upiše svoju lozinku.

Zašto: bez alternative - preglednik mora vidjeti čisti oblik da omogući korisniku unos.

Ublažavanja: Trusted Types CSP sprječava DOM XSS da ubaci JavaScript koji eksfiltrira. Uskoro: WebAuthn passkeyji koji potpuno uklanjaju prijenos lozinki.

5.3 Glavna lozinka = jedini ključ trezora

Izbor: bez oporavka ako korisnik izgubi i svoju glavnu lozinku I svoje kodove za oporavak.

Zašto: strogi zero-knowledge. Kad bismo mogli povratiti, postojao bi put dešifriranja na strani poslužitelja.

Ublažavanje uskoro: Shamir dijeljenje privatnog ključa (M-od-N dijelova), jedan dio kod Aegirexa s proceduralnim zaštitnim mehanizmima (otključavanje samo uz prisutnost N-1 drugih dijelova koju je korisnik potvrdio). Rezervirano za Enterprise planove.

6. Plan odgovora na incident

Razina Okidač Radnja
L1 Sumnja Anomalija u revizijskom dnevniku, prijava korisnika Interna istraga u roku od 24 h, provjera revizijskog lanca
L2 Potvrđena kompromitacija Tehnička kompromitacija potvrđena istragom Obavijest korisnicima u roku od 72 h (GDPR čl. 33), rotacija pogođenih ključeva, postavljanje ublažavanja
L3 Velika kompromitacija Kompromitirana baza podataka ili izvorni kod CNIL i ANSSI obavijest, javno izvješće o transparentnosti, vanjska forenzička revizija

Odgovorno otkrivanje: Sukladno RFC-u 9116, datoteka /.well-known/security.txt u korijenu web-mjesta navodi našu adresu za kontakt security@aegirex.eu. Rok za potvrdu primitka: 72 h.

Pojasniti dokument?

Ovaj model prijetnje je živi dokument. Ako ste CISO, revizor ili sigurnosni istraživač i neka je prijetnja loše modelirana, kontaktirajte nas izravno.