Solidaarisuus Ukrainan kanssa. Palvelu tarjotaan ilmaiseksi ukrainalaisille yrityksille sodan keston ajan. Pyydä ilmaista käyttöoikeutta
Turvallisuus - julkinen asiakirja

Julkinen <em>uhkamalli.</em>

Mitä me suojaamme, ketä vastaan, miten, ja mitä me <em>emme</em> suojaa. Nimetty soveltamisala on parempi kuin piilotetut lupaukset.

Versio v1.0 · tarkistettu {{ "now"|date("d/m/Y") }} · tarkistetaan jokaisen suuren julkaisun yhteydessä.

Menetelmä: STRIDE (Spoofing / Tampering / Repudiation / Information disclosure / Denial of service / Elevation of privilege) sovellettuna tuotteen viiteen pintaan. Jokainen rivi : uhka - Aegirexin lievennys - tietoisesti tehty kompromissi.

Asiakirja on tarkoitettu tietoturvajohtajille, auditoijille ja tietoturvatutkijoille. AGPL-lähdekoodi on julkinen osoitteessa github.com/aegirex/server. Yksityiskohtaiset operatiiviset runbookit pysyvät varattuina design partner -kumppaneille NDA:n alaisuudessa.

1. Mallinnetut toimijat

Mallissa huomioidut yhdeksän hyökkääjäprofiilia.

Toimija Kuvaus Kyvyt
Ulkoinen hyökkääjä Internet, ei alkuperäistä pääsyä Raaka voima, tietojenkalastelu, web-hyödyntämisohjelmat, verkon MITM
Kalastelun kohteeksi joutunut käyttäjä Klooni-sivuston kohteeksi joutunut käyttäjä Lähettää tunnustietonsa hyökkääjän verkkotunnukseen
Pahantahtoinen samanvuokralainen Toisen ARDNTECH-organisaation käyttäjä Yrittää lukea naapuriorganisaatioiden salaisuuksia
Vaarantunut selain Haittaohjelman tai pahantahtoisen laajennuksen saastuttama selain Pääsy DOMiin, voi lukea syöttökenttä
Palvelimen ylläpitäjä Infrastruktuurin operaattori, jolla on SSH-pääsy palvelimelle Lukee tietokannan, lukee muistin, muokkaa koodia
Tietokannan eksfiltraatio Varastettu varmuuskopio, vuotanut SQL-dump Tietokannan täydellinen tilannevedos
Oikeusviranomainen Laillinen pyyntö, hallinnollinen määräys Pakottaa isännöitsijän toimittamaan tallennetut tiedot
Aegirexin sisäpiiriläinen ARDNTECH:n tuleva työntekijä tai palveluntarjoaja Koodikatselmointi, käyttöönottopääsy, lokien lukeminen
Kvanttivastustaja Toimiva kvanttitietokone (näköpiiri > 2030) Murtaa RSA / ECC polynomisessa ajassa (Shor)

2. Suojatut tiedot

Tietojen luokittelu ja suojaustaso lepotilassa.

Tieto Arkaluonteisuus Tallennus
Käyttäjän pääsalasana Kriittinen Vain Argon2id-tiiviste (RFC 9106)
Salaisuuksien sisältö (payload) Kriittinen Salattu päästä päähän (OpenPGP), palvelin tallentaa läpäisemättömän blobin
Käyttäjän yksityinen OpenPGP-avain Kriittinen Ei koskaan palvelimella. Tallennettu paikallisesti, suojattu käyttäjän salalauseella
TOTP-salaisuudet lepotilassa Kriittinen Salattu XChaCha20-Poly1305 (avain tietokannan ulkopuolella)
Webhook-salaisuudet lepotilassa Kriittinen Salattu XChaCha20-Poly1305 (avain tietokannan ulkopuolella)
Salaisuuksien ja kansioiden nimet Kohtalainen Selväkielisenä palvelimen puolella. Dokumentoitu kompromissi 5.1
Auditointiloki Korkea HMAC-SHA-256-ketju, peukaloinnin osoitus O(1):ssä

3. Uhat ja lievennykset pinnoittain

3.1 SaaS-verkkosovellus

Uhka Lievennys Tila
Raaka voima salasanaan Nopeusrajoitin 5 yritystä / 15 min per IP + Argon2id (256 MiB, 5 kierrosta) - 1 s per paikallinen yritys Toimitettu
Credential stuffing Sama nopeusrajoitin + HIBP-skannaus opt-in kirjautumisen jälkeen (nimenomainen GDPR-suostumus) Toimitettu
2FA:n ohitus TOTP RFC 6238 issuer pinning -toiminnolla + kertakäyttöiset palautuskoodit + WebAuthn PRF Toimitettu
Tallennettu tai heijastettu XSS Tiukka CSP (script-src 'self' 'wasm-unsafe-eval'), Trusted Types käytössä, automaattinen Twig-escape Toimitettu
OpenPGP.js-riippuvuuden vaarantuminen Vendoroitu kirjasto, jonka SHA-256-tiiviste varmennetaan buildissa (SRI-eheysmanifesti) Toimitettu
Pääsalasanan tietojenkalastelu Vahva lievennys tulossa : WebAuthn PRF -pääsykoodit, jotka poistavat salasanan välittymisen ja jotka selain sitoo alkuperäiseen verkkotunnukseen. Sitä odotellessa : käyttäjäkoulutus + käyttöliittymän ilmaisimet. Tulossa

3.2 Salattu tallennus

Uhka Lievennys Tila
Varastettu tietokannan dump OpenPGP E2E -salattu payload on lukukelvoton ilman käyttäjän yksityistä avainta. Salasanat Argon2id-tiivisteenä, joita ei voi palauttaa Toimitettu
Varastettu varmuuskopio Salatut varmuuskopiot (Argon2id + ChaCha20-Poly1305), monivastaanottaja. Automatisoitu palautustesti CI:ssä Toimitettu
Palvelimen ylläpitäjä lukee salaisuuden sisällön Mahdotonta ilman käyttäjän yksityistä avainta. Palvelin tallentaa vain läpäisemättömiä blobeja Toimitettu
Auditointilokin muuttaminen (tampering) HMAC-SHA-256-ketju, havainnointi O(1):ssä varmennuksen yhteydessä. Ketjun yksityiskohdat Toimitettu

3.3 REST-API

Uhka Lievennys Tila
Organisaatioiden välinen tietovuoto Jokainen API-token sidottu yksilölliseen organisaatioon. Järjestelmällinen suodatus jokaisessa endpointissa. Eksplisiittiset eristystestit CI:ssä jokaisen commitin yhteydessä Toimitettu
API-tokenin varkaus Token Argon2id-tiivisteenä tietokannassa. Käyttäjän vapaa rotaatio. Konfiguroitava minimaalinen scope (luku / kirjoitus) Toimitettu
Sovelluksen palvelunesto Nopeusrajoitin tokenia ja IP:tä kohden (Symfony-kehys) Toimitettu

3.4 Selainlaajennukset

Uhka Lievennys Tila
Build-putken vaarantuminen Riippuvuuksien SHA-256-tiivisteen varmennus ketjutettuna buildiin. Allekirjoitettu SBOM suunnitteilla Toimitettu
Ponnahdusikkunan sulkeminen = väliaikainen pääsyn menetys Ensimmäisen version kompromissi : yksityistä avainta ei pysytä hyökkäyspinnan rajoittamiseksi. Tulossa : konfiguroitava automaattilukitus + pysyvyys hallitun service workerin kautta. Tulossa
Tunnustietojen kaappaus kalastelusivustolla Käyttäjä näkee todellisen verkkotunnuksen laajennuksen ponnahdusikkunassa ennen kuin napsauttaa «Tallenna» Toimitettu

3.5 Itse isännöity infrastruktuuri

Uhka Lievennys Tila
Vaarantunut Docker-kuva Automatisoitu haavoittuvuusskannaus CI:ssä. Sigstore-allekirjoitus suunnitteilla käyttäjän varmennusta varten käyttöönoton puolella Käynnissä
Testaamaton varmuuskopio Automatisoitu palautustesti CI:ssä jokaisessa julkaisussa. Ei varmentamattomia varmuuskopioita tuotannossa Toimitettu
mTLS tuotannossa Aktivoitavissa konfiguraation kautta. Audit-tilat (vain lokit) ja sitten enforcement saatavilla Toimitettu

4. Suojausalue - tietoisesti hyväksytyt rajoitukset

Toimituksellinen rehellisyys : tässä ovat pinnat, joita ARDNTECH ei kata yksin, ja suositeltu lievennys.

Rajoitus Miksi Suositeltu lievennys
Käyttäjän työaseman täydellinen vaarantuminen Haittaohjelma, jolla on pääsy selaimen RAM-muistiin, voi lukea puretun yksityisen avaimen Laitteistollinen pääsykoodi (YubiKey, TPM), joka eristää avaimen suojattuun elementtiin
ARDNTECH-palvelimen vaarantuminen (root) Root-hyökkääjä voi lukea aktiiviset HTTP-istunnot Tallennetut salaisuudet pysyvät lukukelvottomina (zero-knowledge). Vain vaarantumishetkellä avoinna olevat istunnot ovat vaarassa. Lyhyt automaattilukitus suositeltavaa
Pääsalasanan menetys Suora seuraus tiukasta zero-knowledge-periaatteesta : palvelimen puolella ei ole mitään keinoa palauttaa avainta Luonnin yhteydessä tulostetut palautuskoodit. Tulossa : Shamir M/N -jako Enterprise-tilauksille
Kvanttivastustaja (näköpiiri > 2030) OpenPGP v6 + AES-256 arvioidaan turvallisiksi 5 : 10 vuotta ANSSI:n RGS 2024 -ohjeen mukaan Kvanttiturvallinen migraatio (ML-KEM, ML-DSA) pitkän aikavälin arvioinnissa
Fyysinen hyökkäys käyttäjän työasemaan ARDNTECH on looginen holvi, ei fyysinen kassakaappi Holvin lyhyt automaattilukitus + laitteistollinen WebAuthn-pääsykoodi
Aegirexin sisäpiiriläinen (tuleva työntekijä) SaaS-julkaisijan luottamusmallin tietoisesti hyväksytty rajoitus NDA, vastuiden eriyttäminen, pakollinen koodikatselmointi, peukalointia ilmaiseva auditointiketju, vähimmän etuoikeuden periaate

5. Tietoisesti tehdyt kompromissit

5.1 Salaisuuksien ja kansioiden nimet selväkielisenä palvelimen puolella

Valinta : nimet tallennettu selväkielisenä palvelimen puolella.

Miksi : välitön palvelinpuolen haku, puurakenteen näyttäminen ilman salauksen purkua jokaisen navigoinnin yhteydessä, kansioiden hierarkkinen jakaminen mahdollista.

Vaikutus : hyökkääjä, joka eksfiltroi tietokannan, näkee, että kansiossa «DevOps / Cloud» on olemassa «AWS Prod»-niminen salaisuus. Hän EI näe sisältöä (E2E-salattu payload).

Harkittu vaihtoehto : «anonymise me»-vaihtoehto, joka salaa myös nimet. Merkittävä UX-kustannus : ei palvelinpuolen hakua, täydellinen asiakaspuolen skannaus jokaisen pyynnön yhteydessä.

5.2 Salasana selväkielisenä DOMissa syötön aikana

Valinta : OpenPGP salaa payloadin sen jälkeen, kun käyttäjä on kirjoittanut salasanansa.

Miksi : ei vaihtoehtoa, selaimen on nähtävä selväkielinen teksti, jotta käyttäjä voi syöttää sen.

Lievennykset : Trusted Types CSP estää DOM XSS:ää lisäämästä eksfiltroivaa JavaScriptiä. Tulossa : WebAuthn-pääsykoodit, jotka poistavat salasanojen välittymisen kokonaan.

5.3 Pääsalasana = holvin ainoa avain

Valinta : ei palautusta, jos käyttäjä menettää sekä pääsalasanansa ETTÄ palautuskoodinsa.

Miksi : tiukka zero-knowledge. Jos voisimme palauttaa, palvelimen puolella olisi salauksen purkupolku.

Tulossa oleva lievennys : yksityisen avaimen Shamir-jako (M/N osaa), yksi osa Aegirexillä menettelyllisin suojakeinoin (avaaminen vain käyttäjän vahvistamien N-1 muun osan läsnäollessa). Varattu Enterprise-tilauksille.

6. Poikkeamien torjuntasuunnitelma

Taso Laukaisija Toimenpide
L1 Epäily Poikkeama auditointilokissa, käyttäjän ilmoitus Sisäinen tutkinta 24 h:n sisällä, auditointiketjun varmennus
L2 Vahvistettu vaarantuminen Tutkinnan vahvistama tekninen vaarantuminen Käyttäjille ilmoitus 72 h:n sisällä (GDPR art. 33), vaarantuneiden avainten rotaatio, lievennysten käyttöönotto
L3 Vakava vaarantuminen Tietokanta tai lähdekoodi vaarantunut Ilmoitus CNIL:lle ja ANSSI:lle, julkinen läpinäkyvyysraportti, ulkoinen forensinen auditointi

Vastuullinen julkistaminen: RFC 9116:n mukaisesti sivuston juuressa oleva tiedosto /.well-known/security.txt ilmoittaa yhteysosoitteemme security@aegirex.eu. Vastaanottokuittauksen määräaika : 72 h.

Tarkennetaanko asiakirjaa?

Tämä uhkamalli on elävä asiakirja. Jos olet tietoturvajohtaja, auditoija tai tietoturvatutkija ja jokin uhka on mallinnettu virheellisesti, ota meihin suoraan yhteyttä.