Αλληλεγγύη με την Ουκρανία. Υπηρεσία που προσφέρεται δωρεάν σε ουκρανικές επιχειρήσεις για όσο διαρκεί ο πόλεμος. Αίτηση δωρεάν πρόσβασης
Ασφάλεια - δημόσιο έγγραφο

Δημόσιο <em>threat model.</em>

Τι προστατεύουμε, εναντίον ποιου, πώς, και τι <em>δεν</em> προστατεύουμε. Καλύτερα ένα ονοματισμένο πεδίο παρά κρυφές υποσχέσεις.

Έκδοση v1.0 · αναθεωρήθηκε στις {{ "now"|date("d/m/Y") }} · αναθεωρείται σε κάθε σημαντική έκδοση.

Μεθοδολογία: STRIDE (Spoofing / Tampering / Repudiation / Information disclosure / Denial of service / Elevation of privilege) εφαρμοσμένη σε πέντε επιφάνειες του προϊόντος. Κάθε γραμμή : απειλή - μετριασμός ARDNTECH - παραδεκτό trade-off.

Έγγραφο που προορίζεται για CISO, ελεγκτές και ερευνητές ασφάλειας. Ο πηγαίος κώδικας AGPL είναι δημόσιος στο github.com/aegirex/server. Τα λεπτομερή λειτουργικά runbooks παραμένουν διαθέσιμα μόνο στους design partners υπό NDA.

1. Μοντελοποιημένοι δρώντες

Τα εννέα προφίλ επιτιθέμενου που λαμβάνονται υπόψη στο μοντέλο.

Δρων Περιγραφή Δυνατότητες
Εξωτερικός επιτιθέμενος Internet, καμία αρχική πρόσβαση Επίθεση brute force, phishing, web exploits, MITM δικτύου
Χρήστης θύμα phishing Χρήστης στόχος ενός κλωνοποιημένου ιστότοπου Υποβάλλει τα credentials του σε ένα domain επιτιθέμενου
Κακόβουλος συνένοικος Χρήστης άλλου οργανισμού ARDNTECH Επιχειρεί να διαβάσει τα μυστικά γειτονικών οργανισμών
Παραβιασμένο πρόγραμμα περιήγησης Πρόγραμμα περιήγησης μολυσμένο από malware ή κακόβουλη επέκταση Πρόσβαση στο DOM, μπορεί να διαβάσει τα πεδία καταχώρησης
Διαχειριστής διακομιστή Φορέας υποδομής με πρόσβαση SSH στον διακομιστή Διαβάζει τη βάση δεδομένων, διαβάζει τη μνήμη, τροποποιεί τον κώδικα
Εξαγωγή βάσης δεδομένων Κλεμμένο backup, διαρρεύσαν dump SQL Πλήρες snapshot της βάσης δεδομένων
Δικαστική αρχή Νόμιμη επίταξη, διοικητικό ένταλμα Εξαναγκάζει τον πάροχο φιλοξενίας να παράσχει τα αποθηκευμένα δεδομένα
Insider ARDNTECH Μελλοντικός εργαζόμενος ή πάροχος της ARDNTECH Αναθεώρηση κώδικα, πρόσβαση ανάπτυξης, ανάγνωση των αρχείων καταγραφής
Κβαντικός αντίπαλος Λειτουργικός κβαντικός υπολογιστής (ορίζοντας > 2030) Σπάει RSA / ECC σε πολυωνυμικό χρόνο (Shor)

2. Προστατευμένα δεδομένα

Ταξινόμηση των δεδομένων και επίπεδο προστασίας σε ηρεμία.

Δεδομένο Ευαισθησία Αποθήκευση
Κύριος κωδικός πρόσβασης χρήστη Κρίσιμο Μόνο hash Argon2id (RFC 9106)
Περιεχόμενο των μυστικών (payload) Κρίσιμο Κρυπτογραφημένο από άκρο σε άκρο (OpenPGP), ο διακομιστής αποθηκεύει ένα αδιαφανές blob
Ιδιωτικό κλειδί OpenPGP χρήστη Κρίσιμο Ποτέ στον διακομιστή. Αποθηκευμένο τοπικά, προστατευμένο με passphrase χρήστη
Μυστικά TOTP σε ηρεμία Κρίσιμο Κρυπτογραφημένα XChaCha20-Poly1305 (κλειδί εκτός βάσης δεδομένων)
Μυστικά webhook σε ηρεμία Κρίσιμο Κρυπτογραφημένα XChaCha20-Poly1305 (κλειδί εκτός βάσης δεδομένων)
Ονόματα μυστικών και φακέλων Μέτρια Σε καθαρή μορφή από την πλευρά του διακομιστή. Trade-off τεκμηριωμένο 5.1
Αρχείο ελέγχου Υψηλή Αλυσίδα HMAC-SHA-256, tamper-evidence σε O(1)

3. Απειλές και μετριασμοί ανά επιφάνεια

3.1 Διαδικτυακή εφαρμογή SaaS

Απειλή Μετριασμός Κατάσταση
Brute force στον κωδικό πρόσβασης Rate limiter 5 προσπάθειες / 15 λεπτά ανά IP + Argon2id (256 MiB, 5 passes) - 1 δευτ. ανά τοπική προσπάθεια Παραδόθηκε
Credential stuffing Ίδιος rate limiter + σάρωση HIBP opt-in μετά τη σύνδεση (ρητή συγκατάθεση GDPR) Παραδόθηκε
Bypass 2FA TOTP RFC 6238 με issuer pinning + εφεδρικοί κωδικοί μίας χρήσης + WebAuthn PRF Παραδόθηκε
XSS αποθηκευμένο ή ανακλώμενο Αυστηρό CSP (script-src 'self' 'wasm-unsafe-eval'), ενεργοποιημένα Trusted Types, αυτόματο escaping Twig Παραδόθηκε
Παραβίαση της εξάρτησης OpenPGP.js Βιβλιοθήκη vendored με αποτύπωμα SHA-256 επαληθευμένο κατά το build (manifest ακεραιότητας SRI) Παραδόθηκε
Phishing του κύριου κωδικού πρόσβασης Ισχυρός μετριασμός προσεχώς : passkeys WebAuthn PRF, που καταργούν τη μετάδοση του κωδικού πρόσβασης και συνδέονται με το domain προέλευσης από το πρόγραμμα περιήγησης. Εν τω μεταξύ : εκπαίδευση χρήστη + δείκτες UI. Προσεχώς

3.2 Κρυπτογραφημένη αποθήκευση

Απειλή Μετριασμός Κατάσταση
Κλεμμένο dump της βάσης δεδομένων Payload κρυπτογραφημένο OpenPGP E2E μη αναγνώσιμο χωρίς το ιδιωτικό κλειδί του χρήστη. Κωδικοί πρόσβασης σε hash Argon2id μη ανακτήσιμοι Παραδόθηκε
Κλεμμένο backup Κρυπτογραφημένα backups (Argon2id + ChaCha20-Poly1305), πολλαπλών αποδεκτών. Αυτοματοποιημένη δοκιμή αποκατάστασης στο CI Παραδόθηκε
Ο διαχειριστής διακομιστή διαβάζει το περιεχόμενο ενός μυστικού Αδύνατο χωρίς το ιδιωτικό κλειδί του χρήστη. Ο διακομιστής αποθηκεύει μόνο αδιαφανή blobs Παραδόθηκε
Αλλοίωση του αρχείου ελέγχου (tampering) Αλυσίδα HMAC-SHA-256, ανίχνευση σε O(1) κατά την επαλήθευση. Λεπτομέρεια της αλυσίδας Παραδόθηκε

3.3 API REST

Απειλή Μετριασμός Κατάσταση
Διαρροή δεδομένων μεταξύ οργανισμών Κάθε token API συνδεδεμένο με έναν μοναδικό οργανισμό. Συστηματικό φιλτράρισμα σε κάθε endpoint. Ρητά tests απομόνωσης στο CI σε κάθε commit Παραδόθηκε
Κλοπή token API Token hashed Argon2id στη βάση. Ελεύθερη περιστροφή από τον χρήστη. Ελάχιστο scope (ανάγνωση / εγγραφή) παραμετροποιήσιμο Παραδόθηκε
Άρνηση υπηρεσίας εφαρμογής Rate limiter ανά token και ανά IP (πλαίσιο Symfony) Παραδόθηκε

3.4 Επεκτάσεις προγράμματος περιήγησης

Απειλή Μετριασμός Κατάσταση
Παραβίαση του pipeline του build Επαλήθευση αποτυπώματος SHA-256 των εξαρτήσεων αλυσιδωμένη στο build. SBOM υπογεγραμμένο προγραμματισμένο Παραδόθηκε
Κλείσιμο του popup = προσωρινή απώλεια πρόσβασης Trade-off της πρώτης έκδοσης : το ιδιωτικό κλειδί δεν διατηρείται για να περιοριστεί η επιφάνεια επίθεσης. Προσεχώς : παραμετροποιήσιμο auto-lock + persistence μέσω ελεγχόμενου service worker. Προσεχώς
Σύλληψη credentials σε έναν ιστότοπο phishing Ο χρήστης βλέπει το πραγματικό όνομα domain στο pop-up της επέκτασης πριν κάνει κλικ στο « Αποθήκευση » Παραδόθηκε

3.5 Αυτο-φιλοξενούμενη υποδομή

Απειλή Μετριασμός Κατάσταση
Παραβιασμένη εικόνα Docker Αυτοματοποιημένη σάρωση ευπαθειών στο CI. Υπογραφή Sigstore προγραμματισμένη για επαλήθευση χρήστη από την πλευρά της ανάπτυξης Σε εξέλιξη
Μη δοκιμασμένο backup Αυτοματοποιημένη δοκιμή αποκατάστασης στο CI σε κάθε έκδοση. Κανένα μη επαληθευμένο backup στην παραγωγή Παραδόθηκε
mTLS στην παραγωγή Ενεργοποιήσιμο μέσω διαμόρφωσης. Διαθέσιμοι τρόποι ελέγχου (μόνο logs) και στη συνέχεια enforcement Παραδόθηκε

4. Πεδίο προστασίας - παραδεκτά όρια

Συντακτική ειλικρίνεια : ιδού οι επιφάνειες που η ARDNTECH δεν καλύπτει μόνη της, και ο συνιστώμενος μετριασμός.

Όριο Γιατί Συνιστώμενος μετριασμός
Πλήρης παραβίαση του σταθμού του χρήστη Ένα malware που έχει πρόσβαση στη RAM του προγράμματος περιήγησης μπορεί να διαβάσει το αποκρυπτογραφημένο ιδιωτικό κλειδί Hardware passkey (YubiKey, TPM) που περιορίζει το κλειδί σε ένα ασφαλές στοιχείο
Παραβίαση του διακομιστή ARDNTECH (root) Ένας επιτιθέμενος root μπορεί να διαβάσει τις ενεργές συνεδρίες HTTP Τα αποθηκευμένα μυστικά παραμένουν μη αναγνώσιμα (zero-knowledge). Μόνο οι συνεδρίες που είναι ανοιχτές τη στιγμή της παραβίασης βρίσκονται σε κίνδυνο. Συνιστάται σύντομο auto-lock
Απώλεια του κύριου κωδικού πρόσβασης Άμεση συνέπεια του αυστηρού zero-knowledge : κανένας τρόπος από την πλευρά του διακομιστή για ανάκτηση του κλειδιού Εφεδρικοί κωδικοί εκτυπωμένοι κατά τη δημιουργία. Προσεχώς : διαμοιρασμός Shamir M-από-N για τα πλάνα Enterprise
Κβαντικός αντίπαλος (ορίζοντας > 2030) Τα OpenPGP v6 + AES-256 εκτιμώνται ασφαλή 5 έως 10 έτη σύμφωνα με το RGS ANSSI 2024 Μεταπυρηνική μετάβαση (ML-KEM, ML-DSA) υπό μακροπρόθεσμη αξιολόγηση
Φυσική επίθεση στον σταθμό του χρήστη Η ARDNTECH είναι ένα λογικό θησαυροφυλάκιο, όχι ένα φυσικό θησαυροφυλάκιο Σύντομο auto-lock του θησαυροφυλακίου + υλικό passkey WebAuthn
Insider ARDNTECH (μελλοντικός εργαζόμενος) Παραδεκτό όριο του μοντέλου εμπιστοσύνης φορέα SaaS NDA, διαχωρισμός αρμοδιοτήτων, υποχρεωτική αναθεώρηση κώδικα, αλυσίδα ελέγχου tamper-evident, αρχή του ελάχιστου προνομίου

5. Παραδεκτά trade-offs

5.1 Ονόματα μυστικών και φακέλων σε καθαρή μορφή από την πλευρά του διακομιστή

Επιλογή : ονόματα αποθηκευμένα σε καθαρή μορφή από την πλευρά του διακομιστή.

Γιατί : άμεση αναζήτηση από την πλευρά του διακομιστή, εμφάνιση του δέντρου χωρίς αποκρυπτογράφηση σε κάθε πλοήγηση, δυνατός ιεραρχικός διαμοιρασμός φακέλων.

Επίπτωση : ένας επιτιθέμενος που εξάγει τη βάση δεδομένων βλέπει ότι ένα μυστικό με όνομα « AWS Prod » υπάρχει στον φάκελο « DevOps / Cloud ». ΔΕΝ βλέπει το περιεχόμενο (payload κρυπτογραφημένο E2E).

Εναλλακτική που εξετάστηκε : επιλογή « anonymise me » που κρυπτογραφεί και τα ονόματα. Σημαντικό κόστος UX : καμία αναζήτηση από την πλευρά του διακομιστή, πλήρης client scan σε κάθε αίτημα.

5.2 Κωδικός πρόσβασης σε καθαρή μορφή στο DOM κατά την καταχώρηση

Επιλογή : το OpenPGP κρυπτογραφεί το payload αφού ο χρήστης πληκτρολογήσει τον κωδικό πρόσβασής του.

Γιατί : καμία εναλλακτική - το πρόγραμμα περιήγησης πρέπει να δει την καθαρή μορφή για να επιτρέψει στον χρήστη να την καταχωρήσει.

Μετριασμοί : το Trusted Types CSP εμποδίζει το DOM XSS να εισάγει JavaScript που εξάγει. Προσεχώς : passkeys WebAuthn που καταργούν πλήρως τη μετάδοση κωδικών πρόσβασης.

5.3 Κύριος κωδικός πρόσβασης = μοναδικό κλειδί του θησαυροφυλακίου

Επιλογή : καμία ανάκτηση αν ο χρήστης χάσει ταυτόχρονα τον κύριο κωδικό πρόσβασής του ΚΑΙ τους εφεδρικούς κωδικούς του.

Γιατί : αυστηρό zero-knowledge. Αν μπορούσαμε να ανακτήσουμε, θα υπήρχε μια διαδρομή αποκρυπτογράφησης από την πλευρά του διακομιστή.

Μετριασμός προσεχώς : διαμοιρασμός Shamir του ιδιωτικού κλειδιού (M-από-N μέρη), ένα μέρος στην ARDNTECH με διαδικαστικές δικλείδες ασφαλείας (ξεκλείδωμα μόνο με παρουσία N-1 άλλων μερών επικυρωμένη από τον χρήστη). Αποκλειστικό για τα πλάνα Enterprise.

6. Σχέδιο απόκρισης σε περιστατικά

Επίπεδο Έναυσμα Ενέργεια
L1 Υποψία Ανωμαλία στο αρχείο ελέγχου, αναφορά χρήστη Εσωτερική έρευνα εντός 24 ωρών, επαλήθευση αλυσίδας ελέγχου
L2 Επιβεβαιωμένη παραβίαση Τεχνική παραβίαση επιβεβαιωμένη από την έρευνα Ειδοποίηση χρηστών εντός 72 ωρών (GDPR Άρθρο 33), περιστροφή των επηρεαζόμενων κλειδιών, εφαρμογή μετριασμών
L3 Σημαντική παραβίαση Παραβιασμένη βάση δεδομένων ή πηγαίος κώδικας Ειδοποίηση CNIL και ANSSI, δημόσια transparency report, εξωτερικός forensic έλεγχος

Υπεύθυνη αποκάλυψη: Σύμφωνα με την RFC 9116, ένα αρχείο /.well-known/security.txt στη ρίζα του ιστότοπου υποδεικνύει τη διεύθυνση επικοινωνίας μας security@aegirex.eu. Χρόνος βεβαίωσης παραλαβής : 72 ώρες.

Διευκρίνιση του εγγράφου ;

Αυτό το threat model είναι ένα ζωντανό έγγραφο. Αν είστε CISO, ελεγκτής ή ερευνητής ασφάλειας και μια απειλή έχει μοντελοποιηθεί εσφαλμένα, επικοινωνήστε μαζί μας απευθείας.