Zasoby
Symulator Dziennik Słownik Rozszerzenia Zaufanie Status usługi KontaktZmień język
Co chronimy, przed kim, jak i czego <em>nie</em> chronimy. Lepszy nazwany zakres niż ukryte obietnice.
Wersja v1.0 · zmieniona {{ "now"|date("d/m/Y") }} · zmieniana przy każdym wydaniu major.
Metodyka: STRIDE (Spoofing / Tampering / Repudiation / Information disclosure / Denial of service / Elevation of privilege) zastosowana do pięciu powierzchni produktu. Każdy wiersz : zagrożenie - mitygacja ARDNTECH - świadomy trade-off.
Dokument przeznaczony dla CISO, audytorów i badaczy bezpieczeństwa. Kod źródłowy AGPL jest publiczny na github.com/aegirex/server. Szczegółowe runbooki operacyjne pozostają zarezerwowane dla design partnerów na podstawie NDA.
Dziewięć profili atakującego uwzględnionych w modelu.
| Aktor | Opis | Możliwości |
|---|---|---|
| Atakujący zewnętrzny | Internet, brak początkowego dostępu | Brute force, phishing, exploity web, MITM sieciowy |
| Sphishowany użytkownik | Użytkownik będący celem sklonowanej strony | Podaje swoje poświadczenia domenie atakującego |
| Złośliwy współlokator | Użytkownik innej organizacji ARDNTECH | Próbuje odczytać sekrety sąsiednich organizacji |
| Skompromitowana przeglądarka | Przeglądarka zainfekowana malware lub złośliwym rozszerzeniem | Dostęp do DOM, może odczytać pola wejściowe |
| Administrator serwera | Operator infrastruktury z dostępem SSH do serwera | Czyta bazę danych, czyta pamięć, modyfikuje kod |
| Eksfiltracja bazy danych | Skradziony backup, wyciekły dump SQL | Pełny snapshot bazy danych |
| Organ sądowy | Wezwanie sądowe, nakaz administracyjny | Zmusza hostingodawcę do dostarczenia przechowywanych danych |
| Insider ARDNTECH | Przyszły pracownik lub podwykonawca ARDNTECH | Przegląd kodu, dostęp do wdrożeń, odczyt logów |
| Przeciwnik kwantowy | Operacyjny komputer kwantowy (horyzont > 2030) | Łamie RSA / ECC w czasie wielomianowym (Shor) |
Klasyfikacja danych i poziom ochrony w spoczynku.
| Dane | Wrażliwość | Przechowywanie |
|---|---|---|
| Hasło główne użytkownika | Krytyczne | Wyłącznie hash Argon2id (RFC 9106) |
| Treść sekretów (payload) | Krytyczne | Szyfrowane end-to-end (OpenPGP), serwer przechowuje nieprzejrzysty blob |
| Klucz prywatny OpenPGP użytkownika | Krytyczne | Nigdy na serwerze. Przechowywany lokalnie, chroniony passphrase użytkownika |
| Sekrety TOTP w spoczynku | Krytyczne | Szyfrowane XChaCha20-Poly1305 (klucz poza bazą danych) |
| Sekrety webhooków w spoczynku | Krytyczne | Szyfrowane XChaCha20-Poly1305 (klucz poza bazą danych) |
| Nazwy sekretów i folderów | Umiarkowane | W postaci jawnej po stronie serwera. Trade-off udokumentowany 5.1 |
| Log audytu | Wysokie | Łańcuch HMAC-SHA-256, tamper-evidence w O(1) |
| Zagrożenie | Mitygacja | Status |
|---|---|---|
| Brute force na haśle | Rate limiter 5 prób / 15 min per IP + Argon2id (256 MiB, 5 przebiegów) - 1 s na lokalną próbę | Dostarczone |
| Credential stuffing | Ten sam rate limiter + skan HIBP opt-in po logowaniu (wyraźna zgoda RODO) | Dostarczone |
| Obejście 2FA | TOTP RFC 6238 z issuer pinning + jednorazowe kody odzyskiwania + WebAuthn PRF | Dostarczone |
| XSS przechowywany lub odbity | Ścisła CSP (script-src 'self' 'wasm-unsafe-eval'), włączone Trusted Types, automatyczne escapowanie Twig | Dostarczone |
| Naruszenie zależności OpenPGP.js | Biblioteka vendorowana z odciskiem SHA-256 weryfikowanym przy buildzie (manifest integralności SRI) | Dostarczone |
| Phishing hasła głównego | Silna mitygacja wkrótce : passkeys WebAuthn PRF, które eliminują przesyłanie hasła i są powiązane z domeną pochodzenia przez przeglądarkę. W międzyczasie : szkolenie użytkowników + wskaźniki UI. | Wkrótce |
| Zagrożenie | Mitygacja | Status |
|---|---|---|
| Skradziony dump bazy danych | Payload szyfrowany OpenPGP E2E nieczytelny bez klucza prywatnego użytkownika. Hasła w hashu Argon2id nieodzyskiwalne | Dostarczone |
| Skradziony backup | Zaszyfrowane backupy (Argon2id + ChaCha20-Poly1305), multi-odbiorcy. Automatyczny test przywracania w CI | Dostarczone |
| Administrator serwera czyta treść sekretu | Niemożliwe bez klucza prywatnego użytkownika. Serwer przechowuje wyłącznie nieprzejrzyste bloby | Dostarczone |
| Manipulacja logiem audytu (tampering) | Łańcuch HMAC-SHA-256, wykrywanie w O(1) przy weryfikacji. Szczegóły łańcucha | Dostarczone |
| Zagrożenie | Mitygacja | Status |
|---|---|---|
| Wyciek danych cross-organizacja | Każdy token API powiązany z unikalną organizacją. Systematyczne filtrowanie na każdym endpoincie. Jawne testy izolacji w CI przy każdym commicie | Dostarczone |
| Kradzież tokenu API | Token hashowany Argon2id w bazie. Swobodna rotacja przez użytkownika. Minimalny scope (odczyt / zapis) konfigurowalny | Dostarczone |
| Atak DoS aplikacyjny | Rate limiter per token i per IP (framework Symfony) | Dostarczone |
| Zagrożenie | Mitygacja | Status |
|---|---|---|
| Naruszenie pipeline buildu | Weryfikacja odcisku SHA-256 zależności łączona z buildem. Zaplanowany podpisany SBOM | Dostarczone |
| Zamknięcie popup = tymczasowa utrata dostępu | Trade-off pierwszej wersji : klucz prywatny nie jest utrwalany, aby ograniczyć powierzchnię ataku. Wkrótce : konfigurowalny auto-lock + persystencja przez kontrolowany service worker. | Wkrótce |
| Przechwycenie poświadczeń na stronie phishingowej | Użytkownik widzi rzeczywistą nazwę domeny w popup rozszerzenia przed kliknięciem "Zapisz" | Dostarczone |
| Zagrożenie | Mitygacja | Status |
|---|---|---|
| Skompromitowany obraz Docker | Automatyczny skan podatności w CI. Zaplanowany podpis Sigstore do weryfikacji użytkownika po stronie wdrożenia | W toku |
| Nieprzetestowany backup | Automatyczny test przywracania w CI przy każdym wydaniu. Brak niezweryfikowanego backupu na produkcji | Dostarczone |
| mTLS na produkcji | Aktywowalne przez konfigurację. Dostępne tryby audytu (tylko logi), a następnie enforcement | Dostarczone |
Uczciwość redakcyjna : oto powierzchnie, których ARDNTECH nie obejmuje sam, oraz zalecana mitygacja.
| Ograniczenie | Dlaczego | Zalecana mitygacja |
|---|---|---|
| Pełne naruszenie stanowiska użytkownika | Malware z dostępem do RAM przeglądarki może odczytać odszyfrowany klucz prywatny | Sprzętowy passkey (YubiKey, TPM) zamykający klucz w bezpiecznym elemencie |
| Naruszenie serwera ARDNTECH (root) | Atakujący root może odczytać aktywne sesje HTTP | Przechowywane sekrety pozostają nieczytelne (zero-knowledge). Ryzykowne są wyłącznie sesje otwarte w momencie naruszenia. Zalecany krótki auto-lock |
| Utrata hasła głównego | Bezpośrednia konsekwencja ścisłego zero-knowledge : brak możliwości odzyskania klucza po stronie serwera | Kody odzyskiwania drukowane przy tworzeniu. Wkrótce : dzielenie Shamira M-z-N dla planów Enterprise |
| Przeciwnik kwantowy (horyzont > 2030) | OpenPGP v6 + AES-256 są szacowane jako bezpieczne przez 5 do 10 lat według RGS ANSSI 2024 | Migracja post-kwantowa (ML-KEM, ML-DSA) w długoterminowej ocenie |
| Atak fizyczny na stanowisko użytkownika | ARDNTECH to sejf logiczny, a nie sejf fizyczny | Krótki auto-lock sejfu + sprzętowy passkey WebAuthn |
| Insider ARDNTECH (przyszły pracownik) | Świadoma granica modelu zaufania wydawcy SaaS | NDA, rozdzielenie obowiązków, obowiązkowy przegląd kodu, łańcuch audytu odporny na manipulacje, zasada najmniejszych uprawnień |
Wybór : nazwy przechowywane w postaci jawnej po stronie serwera.
Dlaczego : natychmiastowe wyszukiwanie po stronie serwera, wyświetlanie drzewa bez odszyfrowywania przy każdej nawigacji, możliwe hierarchiczne udostępnianie folderów.
Wpływ : atakujący, który eksfiltruje bazę danych, widzi, że sekret o nazwie "AWS Prod" istnieje w folderze "DevOps / Cloud". NIE widzi treści (payload szyfrowany E2E).
Rozważana alternatywa : opcja "anonymise me", która szyfruje również nazwy. Znaczący koszt UX : brak wyszukiwania po stronie serwera, pełny skan kliencki przy każdym żądaniu.
Wybór : OpenPGP szyfruje payload po tym, jak użytkownik wpisze swoje hasło.
Dlaczego : brak alternatywy - przeglądarka musi widzieć postać jawną, aby umożliwić użytkownikowi jej wpisanie.
Mitygacje : Trusted Types CSP uniemożliwia DOM XSS wstrzyknięcie eksfiltrującego JavaScriptu. Wkrótce : passkeys WebAuthn, które całkowicie eliminują przesyłanie haseł.
Wybór : brak odzyskiwania, jeśli użytkownik utraci jednocześnie swoje hasło główne ORAZ swoje kody odzyskiwania.
Dlaczego : ścisłe zero-knowledge. Gdybyśmy mogli odzyskać, istniałaby ścieżka odszyfrowywania po stronie serwera.
Mitygacja wkrótce : dzielenie Shamira klucza prywatnego (M-z-N części), jedna część u ARDNTECH z zabezpieczeniami proceduralnymi (odblokowanie wyłącznie przy obecności N-1 innych części zatwierdzonej przez użytkownika). Zarezerwowane dla planów Enterprise.
| Poziom | Wyzwalacz | Akcja |
|---|---|---|
| L1 Podejrzenie | Anomalia w logu audytu, zgłoszenie użytkownika | Wewnętrzne dochodzenie w ciągu 24 h, weryfikacja łańcucha audytu |
| L2 Potwierdzone naruszenie | Naruszenie techniczne potwierdzone przez dochodzenie | Powiadomienie użytkowników w ciągu 72 h (RODO Art. 33), rotacja dotkniętych kluczy, wdrożenie mitygacji |
| L3 Poważne naruszenie | Naruszenie bazy danych lub kodu źródłowego | Powiadomienie organu nadzorczego i ANSSI, publiczny transparency report, zewnętrzny audyt śledczy |
Odpowiedzialne ujawnianie: Zgodnie z RFC 9116, plik /.well-known/security.txt w katalogu głównym witryny wskazuje nasz adres kontaktowy security@aegirex.eu. Termin potwierdzenia odbioru : 72 h.
Ten threat model to żywy dokument. Jeśli jesteś CISO, audytorem lub badaczem bezpieczeństwa i jakieś zagrożenie jest źle zamodelowane, skontaktuj się z nami bezpośrednio.