Сигурност #
EthicsPortal обработва чувствителни данни по сигнали. Тази страница описва конкретните технически и организационни мерки, които прилагаме. Тя е предназначена за екипи по съответствие, DPO и правни екипи, които оценяват платформата.
Последна актуализация: 2026-05-17.
Шифроване на данните #
Всички чувствителни полета се съхраняват шифровано чрез Rails Active Record Encryption с недетерминистично шифроване.
| Поле | Шифровано | Детерминистично |
|---|---|---|
| Описание на сигнала | Да | Не |
| Име на подателя | Да | Не |
| Данни за контакт на подателя | Да | Не |
| Текст на съобщенията | Да | Не |
Недетерминистичното шифроване означава, че тези полета не могат да се търсят по стойност на ниво база данни.
Всички връзки с EthicsPortal използват HTTPS/TLS. Нешифрованите HTTP заявки се пренасочват.
Анонимност и поверителност #
Анонимизация на IP адреса #
EthicsPortal не съхранява IP адреси. Адресите на портала използват еднопосочен SHA256 хеш на IP адреса само за ограничаване на честотата на заявките. Хешът е необратим.
Никакъв IP адрес не се записва в системни записи, поле в базата или аналитична услуга.
Премахване на метаданните от файловете #
Качените файлове автоматично се изчистват от идентифициращите метаданни преди съхранение:
| Тип файл | Премахнати метаданни | Метод |
|---|---|---|
| Изображения | EXIF: GPS координати, модел на камерата, сериен номер, автор, дата и час | Vips |
| PDF документи | Автор, приложение, с което е създаден, история на промените | exiftool |
| Видео файлове | GPS, данни за устройството, софтуер за запис | exiftool |
| Аудио файлове | Устройство за запис, GPS, етикети на софтуера | exiftool |
Проверка за вируси #
Всички качени файлове се сканират автоматично за зловреден код чрез ClamAV . Сканирането се извършва на сървъра. Заразените файлове се премахват автоматично и не достигат до обработващите.
Анонимност на обработващите #
Подателите никога не виждат истинските имена или имейл адресите на хората, които разглеждат сигнала им. Във всички съобщения се изписва „Служител по сигнала“.
Без проследяване #
EthicsPortal не използва проследяващи бисквитки на трети страни, рекламни пиксели или скриптове за снемане на цифров отпечатък. Използваме Cloudflare Web Analytics само на маркетинговите страници. Самият портал за сигнали няма аналитични инструменти.
Текущ статус на сертификацията #
EthicsPortal понастоящем не заявява на този сайт акредитирана сертификация ISO 27001. Не е публикуван и независим външен одит на архитектурата за анонимност. Ако това се промени, обхватът и датата ще бъдат публикувани тук.
Материали за преглед на сигурността #
Клиенти, на които са нужни материали за обществена поръчка или за правен преглед, могат да ги поискат по време на прегледа. Налични материали могат да включват подписано DPA, регистрационни и данъчни документи, попълнен въпросник за сигурност, както и писмени отговори относно процедурите по архивиране и възстановяване, достъпа с повишени права в производствената среда и реакцията при инциденти.
Контрол на достъпа #
Авторизацията се прилага на ниво приложение чрез Pundit .
| Роля | Вижда сигнали | Управлява настройките на организацията | Възлага сигнали на обработващи |
|---|---|---|---|
| Администратор | Всички сигнали | Да | Да |
| Обработващ | Само възложените му сигнали | Не | Не |
- Обработващите не виждат сигнали, които не са им възложени.
- Подателите нямат потребителски профил — достъпват сигнала чрез номер на преписката (
WB-XXXX-XXXX) и 6-цифрен ПИН. - Всяко действие на ниво контролер проверява достъпа. Неоправомощените опити се блокират и записват.
Двуфакторно удостоверяване #
Профилите на обработващите и администраторите могат да включат TOTP-базирано 2FA през стандартно приложение за еднократни кодове.
Подателите също се удостоверяват с два фактора: номер на преписката и избран от тях ПИН. ПИН се съхранява само като еднопосочен хеш с bcrypt.
Жизнен цикъл на сесиите #
Всяка удостоверена сесия записва last_seen_at при всяка заявка (с дебаунс). Потребителите могат да преглеждат активните си сесии, да виждат кога всяка от тях е била последно активна, да отнемат отделна сесия или да излязат от всички останали сесии наведнъж от настройките на профила.
Сесиите изтичат автоматично след 14 дни неактивност. Следващата заявка от неактивна сесия унищожава записа от страна на сървъра, изчиства бисквитката и налага повторно удостоверяване чрез нов магически линк. Нощно задание прочиства изоставените сесии със същия таймаут, така че user_agent и ip_address не се запазват след прозореца на неактивност, дори когато потребителят повече не се връща.
Удостоверяването чрез магически линк ограничава поразяващото действие на дълготрайните сесии: открадната бисквитка на сесия не дава пригоден за повторна употреба идентификатор и повторното удостоверяване изисква достъп до имейл.
Достъп и прекратяване на участието на членове #
Достъпът до организацията се прилага на ниво заявка. Когато член бъде деактивиран:
- Достъпът до организацията се отхвърля незабавно, включително и от вече запазени в отметките URL адреси.
- Възлагането на отворени сигнали се премахва.
- Участията се премахват.
- Историята в одитната следа, която се отнася до члена, се запазва.
- Деактивираният член бива уведомен.
- Повторното активиране не възстановява автоматично предишния достъп до преписките.
Последният активен администратор и собственикът на организацията не могат да бъдат деактивирани. Всички събития по деактивиране и повторно активиране се записват в одитната следа, която е само за добавяне.
Членствата без следа за съответствие (без записи в одитната следа, без възлагания, без участия) се изтриват окончателно при премахване; членствата със следа се деактивират меко, така че одитната следа да остане проследима.
Ограничаване на честотата на заявките #
Публичните адреси на портала имат ограничения на честотата:
| Действие | Ограничение |
|---|---|
| Подаване на сигнал | 5 на 10 минути на анонимизиран IP |
| Проверка на преписка | 10 на 3 минути на анонимизиран IP |
| Изпращане на съобщение | 10 на 3 минути на анонимизиран IP |
Одит и съответствие #
Незаличима одитна следа #
Всяко действие в EthicsPortal се записва с:
- дата и час (UTC)
- извършител
- тип на действието
Записите са само за добавяне. Не могат да се редактират или изтриват от никой потребител.
Срокове за съхранение #
Организациите задават собствен срок на съхранение: 12, 24, 36 или 60 месеца след приключване на сигнала. След изтичането му сигналът и свързаните данни се изтриват автоматично.
Защита от CSRF #
Всички формуляри са защитени срещу CSRF чрез вградените токени на Rails.
Управление на зависимостите и кръпките #
EthicsPortal не внедрява софтуерни компоненти, излезли от поддръжка. Приложението работи на активно поддържаните издания на Rails, Ruby, PostgreSQL и съответната операционна система; обновленията по сигурността нагоре по веригата се прилагат текущо.
Зависимостите се сканират непрекъснато в continuous integration:
- Brakeman отбелязва уязвимости, специфични за Rails, при всяка промяна.
- bundler-audit проверява Gemfile спрямо Ruby Advisory Database при всяка промяна и допълнително ежедневно по график, така че новооповестените уязвимости да се откриват дори без промяна в кода.
importmap auditсканира JavaScript импортите за известни уязвимости при всяка промяна и допълнително ежедневно по график.- Dependabot отваря седмични pull request-и за остарели Ruby gems и GitHub Actions, групирани по minor/patch обновявания.
Компонентите, които достигат край на поддръжката нагоре по веригата, се заменят или обновяват преди изтичането на срока за поддръжка.
Инфраструктура #
| Компонент | Доставчик | Място |
|---|---|---|
| Приложен сървър и база данни | Hetzner | Нюрнберг, Германия (ЕС) |
| Съхранение на файлове | Hetzner Object Storage | Нюрнберг, Германия (ЕС) |
| Транзакционни имейли | Mailjet | Франция (ЕС) |
| Обработка на плащания | Stripe | ЕС |
- Основната обработка на данни се извършва изцяло в Европейския съюз.
- На сървърите на EthicsPortal не се съхраняват номера на карти или платежни данни.
- Маркетинговият сайт се доставя през Cloudflare (CDN, САЩ); порталът за сигнали и порталът на обработващите — не. Пълният списък и предвидените гаранции при трансфер са описани на страницата подизпълнители .
Архивиране и възстановяване #
EthicsPortal поддържа два допълващи се слоя на архивиране, и двата запазвани в ЕС:
| Слой | Какво | Къде | Срок на съхранение |
|---|---|---|---|
| База данни | Ежедневни шифровани дъмпове на PostgreSQL чрез Kamal accessory | Hetzner Object Storage, Нюрнберг (ЕС) | 7 дни |
| Сървър | Пълни снимки на диска на приложния хост | Hetzner Cloud, Нюрнберг (ЕС) | 7 дни |
Цели за възстановяване. Целта за точка на възстановяване (RPO) е 24 часа. Целта за време за възстановяване (RTO) е 4 часа. Тези цели присъстват и в споразумението за ниво на услугата .
Тестване на възстановяването. Учение по възстановяване се извършва най-малко веднъж на тримесечие в среда за еднократна употреба. Последно учение: 2026-05-14.
Шифроване. Дъмповете на базата данни се шифроват в покой от Hetzner Object Storage; полетата на ниво приложение, шифровани чрез Rails ActiveRecord Encryption, остават шифровани в дъмпа.
Оперативен преглед #
Тази страница е публично резюме на сигурността. Част от оперативните материали се споделят по време на преглед в рамките на обществена поръчка, а не се публикуват изцяло в отворения уеб, защото съдържат инфраструктурни и реакционни подробности, които са по-подходящи за контролирано разкриване.
При поискване по време на такъв преглед са налични следните теми:
- Резюме на достъпа с повишени права в производствената среда
- Процедура при инциденти и контакти за ескалация
- Отговори за непрекъсваемост на дейността и за приключване и сваляне на данни на клиент
Отговорно разкриване #
Ако откриете уязвимост в сигурността на EthicsPortal, пишете на security@ethicsportal.eu . Молим ви:
- Да не разкривате публично уязвимостта, преди да имаме възможност да я отстраним.
- Да предоставите достатъчно подробности, за да я възпроизведем и поправим.
- Да не достъпвате и не променяте данни на други клиенти.
Последна актуализация: