Солидарност с Украйна. Услугата се предлага безплатно на украински компании за времето на войната. Поискайте безплатен достъп
Сигурност - публичен документ

Публичен <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. Подробните оперативни runbook-ове остават запазени за design partners под NDA.

1. Моделирани актьори

Деветте профила на нападател, взети предвид в модела.

Актьор Описание Възможности
Външен нападател Интернет, никакъв първоначален достъп Brute force, phishing, уеб exploits, мрежов MITM
Phish-нат потребител Потребител, цел на клониран сайт Подава своите credentials на домейн на нападател
Злонамерен co-tenant Потребител на друга организация ARDNTECH Опитва се да чете тайните на съседни организации
Компрометиран браузър Браузър, заразен с malware или злонамерено разширение Достъп до DOM, може да чете полетата за въвеждане
Администратор на сървъра Инфраструктурен оператор със SSH достъп до сървъра Чете базата данни, чете паметта, променя кода
Ексфилтриране на база данни Откраднат backup, изтекъл SQL dump Пълен snapshot на базата данни
Съдебен орган Законна реквизиция, административен мандат Принуждава хостинг доставчика да предостави съхранените данни
Insider ARDNTECH Бъдещ служител или доставчик на ARDNTECH Преглед на кода, достъп до внедряване, четене на логовете
Квантов противник Оперативен квантов компютър (хоризонт > 2030) Чупи RSA / ECC за полиномиално време (Shor)

2. Защитени данни

Класификация на данните и ниво на защита в покой.

Данна Чувствителност Съхранение
Главна парола на потребителя Критична Само 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 s на локален опит Доставено
Credential stuffing Същият rate limiter + HIBP сканиране opt-in след влизане (изрично GDPR съгласие) Доставено
Заобикаляне на 2FA TOTP RFC 6238 с issuer pinning + кодове за възстановяване за еднократна употреба + WebAuthn PRF Доставено
Съхранен или отразен XSS Строга CSP (script-src 'self' 'wasm-unsafe-eval'), активирани Trusted Types, автоматично екраниране Twig Доставено
Компрометиране на зависимостта OpenPGP.js Vendor-ната библиотека с SHA-256 отпечатък, проверен при build (SRI манифест за интегритет) Доставено
Phishing на главната парола Силно смекчаване, предстоящо : passkeys WebAuthn PRF, които премахват предаването на паролата и са свързани с домейна на произход от браузъра. Междувременно : обучение на потребителите + UI индикатори. Предстои

3.2 Криптирано съхранение

Заплаха Смекчаване Статус
Откраднат dump на базата данни OpenPGP E2E криптиран payload, нечетим без частния ключ на потребителя. Паролите в Argon2id хеш, невъзстановими Доставено
Откраднат backup Криптирани backup-и (Argon2id + ChaCha20-Poly1305), много получатели. Автоматизиран тест за възстановяване в CI Доставено
Администратор на сървъра чете съдържанието на тайна Невъзможно без частния ключ на потребителя. Сървърът съхранява само непрозрачни blob-ове Доставено
Промяна на одит журнала (tampering) HMAC-SHA-256 верига, откриване за O(1) при проверка. Подробности за веригата Доставено

3.3 REST API

Заплаха Смекчаване Статус
Изтичане на данни между организации Всеки API токен, свързан с уникална организация. Систематично филтриране на всеки endpoint. Изрични тестове за изолация в CI при всеки commit Доставено
Кражба на API токен Argon2id хеширан токен в базата. Свободна ротация от потребителя. Конфигурируем минимален обхват (четене / писане) Доставено
Отказ на услуга на приложението Rate limiter на токен и на IP (рамка Symfony) Доставено

3.4 Разширения за браузър

Заплаха Смекчаване Статус
Компрометиране на build pipeline-а Проверка на SHA-256 отпечатъка на зависимостите, верижена към build-а. Планиран подписан SBOM Доставено
Затваряне на popup-а = временна загуба на достъп Trade-off на първата версия : частният ключ не се персистира, за да се ограничи повърхността на атака. Предстои : конфигурируем auto-lock + персистенция чрез контролиран service worker. Предстои
Прихващане на credentials на phishing сайт Потребителят вижда реалното име на домейна в pop-up-а на разширението, преди да кликне върху « Запази » Доставено

3.5 Самостоятелно хоствана инфраструктура

Заплаха Смекчаване Статус
Компрометиран Docker образ Автоматизирано сканиране на уязвимости в CI. Планиран Sigstore подпис за потребителска проверка от страна на внедряването В ход
Нетестван backup Автоматизиран тест за възстановяване в CI при всяко издание. Без непроверен backup в продукция Доставено
mTLS в продукция Може да се активира чрез конфигурация. Налични режими одит (само логове), после enforcement Доставено

4. Периметър на защита - поети ограничения

Редакционна честност : ето повърхностите, които ARDNTECH не покрива сам, и препоръчаното смекчаване.

Ограничение Защо Препоръчано смекчаване
Пълно компрометиране на работната станция на потребителя Malware с достъп до RAM-а на браузъра може да прочете дешифрирания частен ключ Хардуерен 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-off-ове

5.1 Имена на тайни и папки в явен вид от страна на сървъра

Избор : имена, съхранявани в явен вид от страна на сървъра.

Защо : незабавно търсене от страна на сървъра, показване на дървовидната структура без дешифриране при всяка навигация, възможно йерархично споделяне на папки.

Въздействие : нападател, който ексфилтрира базата данни, вижда, че тайна, наречена « AWS Prod », съществува в папката « DevOps / Cloud ». Той НЕ вижда съдържанието (E2E криптиран payload).

Разгледана алтернатива : опция « anonymise me », която криптира също имената. Значителна UX цена : без търсене от страна на сървъра, пълно клиентско сканиране при всяка заявка.

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, външен форензичен одит

Отговорно разкриване: В съответствие с RFC 9116, файл /.well-known/security.txt в корена на сайта посочва нашия адрес за контакт security@aegirex.eu. Срок за потвърждение на получаване : 72 ч.

Да уточним документа ?

Този threat model е жив документ. Ако сте CISO, одитор или изследовател по сигурност и някоя заплаха е лошо моделирана, свържете се с нас директно.