Ресурси
Симулятор Блог Глосарій Розширення Довіра Стан сервісу КонтактЗмінити мову
Те, що ми захищаємо, проти кого, як, і те, чого ми <em>не</em> захищаємо. Краще названий периметр, ніж приховані обіцянки.
Версія v1.0 · переглянуто {{ "now"|date("d/m/Y") }} · переглядається з кожним мажорним релізом.
Методологія: STRIDE (Spoofing / Tampering / Repudiation / Information disclosure / Denial of service / Elevation of privilege), застосована до п'яти поверхонь продукту. Кожен рядок: загроза - пом'якшення ARDNTECH - свідомий компроміс.
Документ призначений для RSSI, аудиторів та дослідників безпеки. Вихідний код AGPL публічний на github.com/aegirex/server. Детальні операційні раннбуки залишаються доступними лише design partners під NDA.
Дев'ять профілів зловмисника, врахованих у моделі.
| Актор | Опис | Можливості |
|---|---|---|
| Зовнішній зловмисник | Інтернет, жодного початкового доступу | Брутфорс, фішинг, вебексплойти, MITM мережі |
| Зафішений користувач | Користувач - ціль сайту-клона | Подає свої облікові дані на домен зловмисника |
| Зловмисний співорендар | Користувач іншої організації ARDNTECH | Намагається прочитати секрети сусідніх організацій |
| Скомпрометований браузер | Браузер, заражений шкідливим ПЗ чи зловмисним розширенням | Доступ до DOM, може читати поля введення |
| Адміністратор сервера | Оператор інфраструктури з SSH-доступом до сервера | Читає базу даних, читає пам'ять, змінює код |
| Ексфільтрація бази даних | Викрадений бекап, витік SQL-дампу | Повний знімок бази даних |
| Судовий орган | Правова вимога, адміністративний ордер | Змушує хостера надати збережені дані |
| Інсайдер ARDNTECH | Майбутній співробітник чи підрядник ARDNTECH | Огляд коду, доступ до розгортання, читання логів |
| Квантовий супротивник | Працездатний квантовий комп'ютер (горизонт > 2030) | Зламує RSA / ECC за поліноміальний час (Shor) |
Класифікація даних та рівень захисту у стані спокою.
| Дані | Чутливість | Зберігання |
|---|---|---|
| Майстер-пароль користувача | Критична | Лише хеш Argon2id (RFC 9106) |
| Вміст секретів (payload) | Критична | Зашифровано наскрізно (OpenPGP), сервер зберігає непрозорий блоб |
| Приватний ключ OpenPGP користувача | Критична | Ніколи на сервері. Зберігається локально, захищений парольною фразою користувача |
| Секрети TOTP у стані спокою | Критична | Зашифровано XChaCha20-Poly1305 (ключ поза базою даних) |
| Секрети вебхуків у стані спокою | Критична | Зашифровано XChaCha20-Poly1305 (ключ поза базою даних) |
| Назви секретів і тек | Помірна | Відкрито на боці сервера. Компроміс задокументовано 5.1 |
| Журнал аудиту | Висока | Ланцюг HMAC-SHA-256, tamper-evidence за O(1) |
| Загроза | Пом'якшення | Статус |
|---|---|---|
| Брутфорс пароля | Rate limiter 5 спроб / 15 хв на IP + Argon2id (256 MiB, 5 проходів) - 1 с на локальну спробу | Доставлено |
| Credential stuffing | Той самий rate limiter + сканування HIBP opt-in після входу (явна згода RGPD) | Доставлено |
| Обхід 2FA | TOTP RFC 6238 з issuer pinning + одноразові коди відновлення + WebAuthn PRF | Доставлено |
| Збережений чи відбитий XSS | Сувора CSP (script-src 'self' 'wasm-unsafe-eval'), активовані Trusted Types, автоматичне екранування Twig | Доставлено |
| Компрометація залежності OpenPGP.js | Вендорена бібліотека з відбитком SHA-256, перевіреним під час збірки (маніфест цілісності SRI) | Доставлено |
| Фішинг майстер-пароля | Сильне пом'якшення незабаром: паскі WebAuthn PRF, які усувають передачу пароля і прив'язані браузером до домену походження. Тим часом: навчання користувачів + UI-індикатори. | Незабаром |
| Загроза | Пом'якшення | Статус |
|---|---|---|
| Викрадений дамп бази даних | Payload, зашифрований OpenPGP E2E, нечитабельний без приватного ключа користувача. Паролі у хеші Argon2id, невідновлювані | Доставлено |
| Викрадений бекап | Зашифровані бекапи (Argon2id + ChaCha20-Poly1305), для кількох одержувачів. Автоматизований тест відновлення в CI | Доставлено |
| Адміністратор сервера читає вміст секрету | Неможливо без приватного ключа користувача. Сервер зберігає лише непрозорі блоби | Доставлено |
| Зміна журналу аудиту (tampering) | Ланцюг HMAC-SHA-256, виявлення за O(1) під час перевірки. Деталі ланцюга | Доставлено |
| Загроза | Пом'якшення | Статус |
|---|---|---|
| Витік крос-організаційних даних | Кожен API-токен прив'язаний до унікальної організації. Систематична фільтрація на кожному ендпойнті. Явні тести ізоляції в CI на кожному коміті | Доставлено |
| Викрадення API-токена | Токен хешований Argon2id у базі. Вільна ротація користувачем. Налаштовуваний мінімальний scope (читання / запис) | Доставлено |
| Застосункова відмова в обслуговуванні | Rate limiter за токеном і за IP (фреймворк Symfony) | Доставлено |
| Загроза | Пом'якшення | Статус |
|---|---|---|
| Компрометація пайплайна збірки | Перевірка відбитка SHA-256 залежностей, зчеплена зі збіркою. Заплановано підписаний SBOM | Доставлено |
| Закриття попапа = тимчасова втрата доступу | Компроміс першої версії: приватний ключ не персистується, щоб обмежити поверхню атаки. Незабаром: налаштовуваний автоблок + персистентність через контрольований service worker. | Незабаром |
| Перехоплення облікових даних на фішинговому сайті | Користувач бачить реальне доменне ім'я у попапі розширення перед кліком «Зберегти» | Доставлено |
| Загроза | Пом'якшення | Статус |
|---|---|---|
| Скомпрометований образ Docker | Автоматизоване сканування вразливостей у CI. Заплановано підпис Sigstore для перевірки користувачем на боці розгортання | В процесі |
| Неперевірений бекап | Автоматизований тест відновлення в CI на кожному релізі. Жодного неперевіреного бекапу у продакшні | Доставлено |
| mTLS у продакшні | Активовується конфігурацією. Доступні режими аудиту (лише логи), а потім enforcement | Доставлено |
Редакторська чесність: ось поверхні, які ARDNTECH не покриває самотужки, і рекомендоване пом'якшення.
| Межа | Чому | Рекомендоване пом'якшення |
|---|---|---|
| Повна компрометація пристрою користувача | Шкідливе ПЗ з доступом до RAM браузера може прочитати розшифрований приватний ключ | Апаратний паскі (YubiKey, TPM), що замикає ключ у захищеному елементі |
| Компрометація сервера ARDNTECH (root) | Зловмисник з root може читати активні HTTP-сесії | Збережені секрети залишаються нечитабельними (zero-knowledge). Під ризиком лише сесії, відкриті на момент компрометації. Рекомендовано короткий автоблок |
| Втрата майстер-пароля | Прямий наслідок суворого zero-knowledge: жодного способу на боці сервера відновити ключ | Коди відновлення, надруковані при створенні. Незабаром: поділ Шаміра M-з-N для планів Enterprise |
| Квантовий супротивник (горизонт > 2030) | OpenPGP v6 + AES-256 оцінені як безпечні на 5-10 років згідно з RGS ANSSI 2024 | Постквантова міграція (ML-KEM, ML-DSA) на довгостроковій оцінці |
| Фізична атака на пристрій користувача | ARDNTECH - це логічне сховище, а не фізичний сейф | Короткий автоблок сховища + апаратний паскі WebAuthn |
| Інсайдер ARDNTECH (майбутній співробітник) | Свідома межа моделі довіри SaaS-видавця | NDA, розподіл обов'язків, обов'язковий огляд коду, tamper-evident ланцюг аудиту, принцип найменших привілеїв |
Вибір: назви зберігаються відкрито на боці сервера.
Чому: миттєвий серверний пошук, відображення дерева без розшифрування на кожній навігації, можливе ієрархічне поширення тек.
Вплив: зловмисник, що ексфільтрує базу даних, бачить, що секрет з назвою «AWS Prod» існує в теці «DevOps / Cloud». Він НЕ бачить вмісту (payload, зашифрований E2E).
Розглянута альтернатива: опція «anonymise me», що шифрує також назви. Значна UX-вартість: жодного серверного пошуку, повне клієнтське сканування на кожному запиті.
Вибір: OpenPGP шифрує payload після того, як користувач увів свій пароль.
Чому: немає альтернативи - браузер має бачити відкритий текст, щоб дозволити користувачеві його ввести.
Пом'якшення: Trusted Types CSP не дає DOM XSS впровадити JavaScript, що ексфільтрує. Незабаром: паскі WebAuthn, які повністю усувають передачу паролів.
Вибір: без відновлення, якщо користувач втрачає водночас і майстер-пароль, І свої коди відновлення.
Чому: суворий zero-knowledge. Якби ми могли відновити, існував би шлях розшифрування на боці сервера.
Пом'якшення незабаром: поділ Шаміра приватного ключа (M-з-N частин), одна частина в ARDNTECH із процедурними запобіжниками (розблокування лише за наявності N-1 інших частин, валідованих користувачем). Зарезервовано для планів Enterprise.
| Рівень | Тригер | Дія |
|---|---|---|
| L1 Підозра | Аномалія в журналі аудиту, повідомлення користувача | Внутрішнє розслідування протягом 24 год, перевірка ланцюга аудиту |
| L2 Підтверджена компрометація | Технічна компрометація, підтверджена розслідуванням | Сповіщення користувачів протягом 72 год (RGPD Ст. 33), ротація уражених ключів, впровадження пом'якшень |
| L3 Серйозна компрометація | Скомпрометована база даних чи вихідний код | Сповіщення CNIL та ANSSI, публічний transparency report, зовнішній форензичний аудит |
Відповідальне розкриття: Відповідно до RFC 9116, файл /.well-known/security.txt у корені сайту вказує нашу контактну адресу security@aegirex.eu. Строк підтвердження отримання: 72 год.
Ця модель загроз - живий документ. Якщо ви RSSI, аудитор чи дослідник безпеки і якась загроза змодельована неправильно, зв'яжіться з нами безпосередньо.