Solidarita s Ukrajinou. Služba nabízena ukrajinským firmám po dobu trvání války. Požádat o bezplatný přístup
Bezpečnost - veřejný dokument

Veřejný <em>threat model.</em>

Co chráníme, proti komu, jak, a co <em>ne</em>chráníme. Lepší je pojmenovaný perimetr než skryté sliby.

Verze v1.0 · revidováno {{ "now"|date("d/m/Y") }} · revidováno při každém významném release.

Metodika: STRIDE (Spoofing / Tampering / Repudiation / Information disclosure / Denial of service / Elevation of privilege) aplikovaná na pět povrchů produktu. Každý řádek: hrozba - mitigace ARDNTECH - vědomě přijatý kompromis.

Dokument určený CISO, auditorům a bezpečnostním výzkumníkům. Zdrojový kód AGPL je veřejný na github.com/aegirex/server. Podrobné provozní runbooky zůstávají vyhrazeny design partnerům pod NDA.

1. Modelovaní aktéři

Devět profilů útočníka zohledněných v modelu.

Aktér Popis Schopnosti
Externí útočník Internet, žádný počáteční přístup Hrubá síla, phishing, webové exploity, síťový MITM
Phishnutý uživatel Uživatel jako cíl klonovaného webu Odešle své přihlašovací údaje na útočníkovu doménu
Zlomyslný spolunájemník Uživatel jiné organizace ARDNTECH Pokouší se číst tajné údaje sousedních organizací
Kompromitovaný prohlížeč Prohlížeč infikovaný malwarem nebo zlomyslným rozšířením Přístup k DOM, může číst vstupní pole
Administrátor serveru Provozovatel infrastruktury s SSH přístupem k serveru Čte databázi, čte paměť, upravuje kód
Exfiltrace databáze Ukradená záloha, uniklý SQL dump Úplný snapshot databáze
Soudní orgán Zákonné vyžádání, administrativní příkaz Nutí hostitele poskytnout uložená data
Insider ARDNTECH Budoucí zaměstnanec nebo dodavatel společnosti ARDNTECH Revize kódu, přístup k nasazení, čtení logů
Kvantový protivník Funkční kvantový počítač (horizont > 2030) Prolomí RSA / ECC v polynomiálním čase (Shor)

2. Chráněná data

Klasifikace dat a úroveň ochrany v klidu.

Údaj Citlivost Úložiště
Hlavní heslo uživatele Kritická Pouze hash Argon2id (RFC 9106)
Obsah tajných údajů (payload) Kritická End-to-end šifrováno (OpenPGP), server ukládá neprůhledný blob
Soukromý klíč OpenPGP uživatele Kritická Nikdy na serveru. Uložen lokálně, chráněn uživatelskou passphrase
Tajné údaje TOTP v klidu Kritická Šifrovány XChaCha20-Poly1305 (klíč mimo databázi)
Tajné údaje webhooku v klidu Kritická Šifrovány XChaCha20-Poly1305 (klíč mimo databázi)
Názvy tajných údajů a složek Mírná V otevřené podobě na straně serveru. Kompromis zdokumentován 5.1
Auditní záznam Vysoká Řetězec HMAC-SHA-256, tamper-evidence v O(1)

3. Hrozby a mitigace podle povrchu

3.1 Webová aplikace SaaS

Hrozba Mitigace Status
Hrubá síla na heslo Rate limiter 5 pokusů / 15 min na IP + Argon2id (256 MiB, 5 průchodů) - 1 s na lokální pokus Dodáno
Credential stuffing Stejný rate limiter + sken HIBP opt-in po přihlášení (výslovný souhlas GDPR) Dodáno
Obejití 2FA TOTP RFC 6238 s issuer pinningem + jednorázové záložní kódy + WebAuthn PRF Dodáno
Uložené nebo odražené XSS Striktní CSP (script-src 'self' 'wasm-unsafe-eval'), aktivované Trusted Types, automatické escapování Twig Dodáno
Kompromitace závislosti OpenPGP.js Knihovna vendorovaná s otiskem SHA-256 ověřeným při buildu (manifest integrity SRI) Dodáno
Phishing hlavního hesla Připravované silné zmírnění: passkeys WebAuthn PRF, které odstraňují přenos hesla a jsou prohlížečem vázány na původní doménu. Mezitím: školení uživatelů + UI indikátory. Připravuje se

3.2 Šifrované úložiště

Hrozba Mitigace Status
Ukradený dump databáze Payload šifrovaný OpenPGP E2E nečitelný bez soukromého klíče uživatele. Hesla v hashi Argon2id neobnovitelná Dodáno
Ukradená záloha Šifrované zálohy (Argon2id + ChaCha20-Poly1305), pro více příjemců. Automatizovaný test obnovení v CI Dodáno
Administrátor serveru čte obsah tajného údaje Nemožné bez soukromého klíče uživatele. Server ukládá pouze neprůhledné bloby Dodáno
Pozměnění auditního záznamu (tampering) Řetězec HMAC-SHA-256, detekce v O(1) při ověření. Podrobnosti řetězce Dodáno

3.3 REST API

Hrozba Mitigace Status
Únik dat napříč organizacemi Každý API token vázán na jedinou organizaci. Systematické filtrování na každém endpointu. Explicitní testy izolace v CI při každém commitu Dodáno
Krádež API tokenu Token hashovaný Argon2id v databázi. Volná rotace uživatelem. Konfigurovatelný minimální scope (čtení / zápis) Dodáno
Aplikační denial of service Rate limiter na token a na IP (rámec Symfony) Dodáno

3.4 Rozšíření prohlížeče

Hrozba Mitigace Status
Kompromitace build pipeline Ověření otisku SHA-256 závislostí zřetězené k buildu. Plánován podepsaný SBOM Dodáno
Zavření popupu = dočasná ztráta přístupu Kompromis první verze: soukromý klíč není perzistován pro omezení útočného povrchu. Připravuje se: konfigurovatelný auto-lock + perzistence přes kontrolovaný service worker. Připravuje se
Zachycení přihlašovacích údajů na phishingovém webu Uživatel vidí skutečné doménové jméno v pop-upu rozšíření před kliknutím na „Uložit“ Dodáno

3.5 Self-hostovaná infrastruktura

Hrozba Mitigace Status
Kompromitovaný Docker image Automatizovaný sken zranitelností v CI. Plánován podpis Sigstore pro uživatelské ověření na straně nasazení Probíhá
Neotestovaná záloha Automatizovaný test obnovení v CI při každém release. Žádná neověřená záloha v produkci Dodáno
mTLS v produkci Aktivovatelné konfigurací. Režimy audit (pouze logy) a poté enforcement k dispozici Dodáno

4. Perimetr ochrany - vědomě přijaté limity

Redakční poctivost: zde jsou povrchy, které ARDNTECH nepokrývá sám, a doporučená mitigace.

Limit Proč Doporučená mitigace
Úplná kompromitace pracovní stanice uživatele Malware s přístupem k RAM prohlížeče může číst dešifrovaný soukromý klíč Hardwarový passkey (YubiKey, TPM), který uzavírá klíč do zabezpečeného prvku
Kompromitace serveru ARDNTECH (root) Root útočník může číst aktivní HTTP relace Uložené tajné údaje zůstávají nečitelné (zero-knowledge). V ohrožení jsou pouze relace otevřené v okamžiku kompromitace. Doporučen krátký auto-lock
Ztráta hlavního hesla Přímý důsledek striktního zero-knowledge: žádný způsob obnovení klíče na straně serveru Záložní kódy vytištěné při vytvoření. Připravuje se: sdílení Shamir M z N pro plány Enterprise
Kvantový protivník (horizont > 2030) OpenPGP v6 + AES-256 jsou odhadovány jako bezpečné na 5 až 10 let podle RGS ANSSI 2024 Post-kvantová migrace (ML-KEM, ML-DSA) v dlouhodobém hodnocení
Fyzický útok na pracovní stanici uživatele ARDNTECH je logický trezor, nikoli fyzický trezor Krátký auto-lock trezoru + hardwarový passkey WebAuthn
Insider ARDNTECH (budoucí zaměstnanec) Vědomě přijatý limit modelu důvěry SaaS vydavatele NDA, oddělení odpovědností, povinná revize kódu, tamper-evidentní audit chain, princip nejmenšího oprávnění

5. Vědomě přijaté kompromisy

5.1 Názvy tajných údajů a složek v otevřené podobě na straně serveru

Volba: názvy uloženy v otevřené podobě na straně serveru.

Proč: okamžité vyhledávání na straně serveru, zobrazení stromové struktury bez dešifrování při každé navigaci, možné hierarchické sdílení složek.

Dopad: útočník, který exfiltruje databázi, vidí, že tajný údaj nazvaný „AWS Prod“ existuje ve složce „DevOps / Cloud“. NEvidí obsah (payload šifrovaný E2E).

Zvažovaná alternativa: volba „anonymizuj mě“, která šifruje i názvy. Významné UX náklady: žádné vyhledávání na straně serveru, úplný klientský sken při každém požadavku.

5.2 Heslo v otevřené podobě v DOM při zadávání

Volba: OpenPGP šifruje payload poté, co uživatel zadá své heslo.

Proč: žádná alternativa - prohlížeč musí vidět otevřenou podobu, aby umožnil uživateli ji zadat.

Mitigace: Trusted Types CSP zabraňuje DOM XSS injektovat exfiltrující JavaScript. Připravuje se: passkeys WebAuthn, které zcela odstraňují přenos hesel.

5.3 Hlavní heslo = jediný klíč k trezoru

Volba: žádné obnovení, pokud uživatel ztratí jak své hlavní heslo, TAK své záložní kódy.

Proč: striktní zero-knowledge. Kdybychom mohli obnovit, existovala by cesta dešifrování na straně serveru.

Připravovaná mitigace: sdílení Shamir soukromého klíče (M z N částí), jedna část u Aegirexu s procedurálními pojistkami (odblokování pouze za přítomnosti N-1 dalších částí ověřené uživatelem). Vyhrazeno plánům Enterprise.

6. Plán reakce na incident

Úroveň Spouštěč Akce
L1 Podezření Anomálie v auditním záznamu, hlášení uživatele Interní vyšetřování do 24 h, ověření audit chain
L2 Potvrzená kompromitace Technická kompromitace potvrzená vyšetřováním Oznámení uživatelům do 72 h (GDPR čl. 33), rotace zasažených klíčů, zavedení mitigací
L3 Závažná kompromitace Kompromitovaná databáze nebo zdrojový kód Oznámení CNIL a ANSSI, veřejný transparency report, externí forenzní audit

Odpovědné zveřejňování: V souladu s RFC 9116 soubor /.well-known/security.txt v kořeni webu uvádí naši kontaktní adresu security@aegirex.eu. Lhůta pro potvrzení přijetí: 72 h.

Upřesnit dokument?

Tento threat model je živý dokument. Pokud jste CISO, auditor nebo bezpečnostní výzkumník a nějaká hrozba je špatně modelována, kontaktujte nás přímo.