Zum Inhalt springen / Skip to content

Бяспека ў Wavor

Вашы бізнес-даныя заслугоўваюць такой жа абароны, як і банк. Мы не толькі кажам вам, ЧТО мы абараняем. Мы паказваем вам, ЯК.

AES-256TLS 1.32FADSGVO/GDPRUK GDPRLGPD (BR)DPDP (IN)Серверы ЕС

Асноўная бяспека

AES-256 Шыфраванне
Чувствительные поля захоўваюцца ў зашыфраваным выглядзе. Чытанне без ключа нічога не паказвае.
Цэнтры апрацоўкі дадзеных ЕС (Hetzner DE)
Servers and customer files in Germany. Offsite backups sit encrypted outside the EU under the EU's transfer safeguards; the privacy policy names the provider.

Час працы і інфраструктура

99.9%
Мэта часу працы
6h
Інтэрвал рэзервовага капіравання
90d
Longest retention
Nerd zone

It gets technical from here. You do not need to read any of it to use Wavor safely - it is here so it can be checked.

Архітэктура бяспекі

Як вашы дадзеныя перамяшчаюцца. Ад запыту да захоўвання

КРОК 1
Cloudflare Edge
Абарона ад DDoS, WAF, TLS 1.3 з адкатам на 1.2. Глабальная сетка anycast.
КРОК 2
Cloudflare Tunnel
Крыніца фізічна недасяжная. Толькі выхадное злучэнне з CF, без уваходнага порта. Давер толькі для AOP з сертыфікатам Wavor RSA-4096.
КРОК 3
Node.js Дадатак
Праверка сесіі, праверка 2FA, RBAC, праверка ўваходных даных праз схемы Zod.
КРОК 4
PostgreSQL + Vault
Encrypted storage with AES-256. Secrets in HashiCorp Vault.
TLS 1.3 (адкат на 1.2)
Поўны строгі HTTPS на ўсіх 7 даменах.
Абарона ад DDoS
Абарона на краі перад тым, як сервер убачыць запыт.
Дзе захоўваюцца дадзеныя?
The servers are at Hetzner in Germany (Falkenstein and Nuremberg), customer files in object storage in Germany. The data centres are guarded around the clock, with biometric access. Backups and some services such as email, SMS and AI run through providers outside the EU. Those transfers are secured under the EU's rules, and the privacy policy names every provider.
Як абаронены ключы?
Усе API ключы і сакрэты ў HashiCorp Vault (KV v2, зашыфраваныя, з кантролем доступу). Аўтаматычнае папярэджанне аб змене на 90/180/365 дзён. Няма адкрытых сакрэтаў у кодзе, асяроддзі або журналах.
Як працуе рэзервовае капіраванне?
Automated PostgreSQL backups every 6 hours. Kept: every one for two days, one a day up to 14 days, one a week up to 90 days. Each is decrypted again and checked after encryption, and every night the newest is restored as a test. Offsite copy at Backblaze, encrypted with our own key before it leaves the server.

Слаі абароны

HTTP Загалоўкі бяспекі: 14 ўмацаваных дырэктыў

CSP Level 3 (21 Direktiven)
Рэжым прымусовага выканання. Максімальны стандарт W3C уключаючы granular script-src-elem/-attr, Trusted-Types на паддомене адміністратара, белы спіс manifest/worker/media-src.
HSTS (Strict-Transport-Security)
max-age 1 год, includeSubDomains, preload уключаны.
X-Frame-Options
ЗАБАРОНЕНА. Няма clickjacking праз iframe.
X-Content-Type-Options
nosniff. Браўзеры не могуць няправільна інтэрпрэтаваць MIME тыпы.
Referrer-Policy
strict-origin-when-cross-origin.
Permissions-Policy
Камера, мікрафон, геалакацыя. Усе адключаны па змаўчанні.
COOP (Cross-Origin-Opener-Policy)
same-origin. Ізолюе кантэкст прагляду.
CORP (Cross-Origin-Resource-Policy)
same-site. Рэсурсы не могуць быць уключаны з крос-домена.

Independently verifiable: Mozilla's HTTP Observatory grades the headers of wavor.io A+. A test asks Mozilla for the result again every night. https://developer.mozilla.org/en-US/observatory/analyze?host=wavor.io(developer.mozilla.org)

Бяспека акаўнта

2FA: TOTP / SMS / Email
Тры метады для другога фактару. Рэзервовыя коды аднакратнага выкарыстання.
Распазнаванне прылады
Мгненная апавяшчэнне аб новых прыладах па электроннай пошце з IP + User-Agent.
Кіраванне сесіямі
Прагляд актыўных сесій, завяршэнне па адным або выхад адразу з усіх.
Абарона ад Брутфорса (3 пласта)
5 няўдач на электронную пошту / 15хв. блакаванне. 10 на IP / 1г. 5 розных электронных поштаў з аднаго IP / 24г блакаванне.
Cloudflare Turnstile Captcha
Абарона ад ботаў без кліка-пазла. Скрыпт загружаецца з крос-арыгінальным ананімным + без спасылкі. Няма ўцечкі сесіі ў Cloudflare.
Bcrypt Хэшаванне пароляў (кошт 12)
Кожная спроба каштуе час вылічэння, што робіць атакі спісамі недаступнымі. Паролі >= 12 сімвалаў, праверка моцнасці zxcvbn.
Праверка ўваходных даных Zod
Усе ўваходныя API правяраюцца на серверным баку праз Zod. Drizzle-Zod як адзіны крыніца праўды з DB схемай.
Rate limiting with a sliding window
A sliding window rather than fixed blocks, so a limit is not handed out afresh at the top of every minute. The counter currently lives in the individual worker process; once Redis is configured, all processes share one.

Пашыраныя кантролі

Дробна настроены RBAC (з закрыццём на няўдачу)
Роля + веданне HTTP-метаду: GET патрабуе прагляду, POST/PATCH патрабуюць рэдагавання, DELETE патрабуе выдалення. Адсутнасць дазволу = 403, ніколі не абыходзіцца.
Мультыарэндавая ізаляцыя
companyId-абсяг на кожным запыце да БД. Ніякіх уцечак даных паміж арэндарамі.
Аўдытныя журналы
Кожная мутацыя запісваецца праз eventLog + AuditLogger. Непадзельны след з userId, companyId, дзеяннем, суб'ектам.
Approval by two people
Four actions need two approvals: changes to legal values, prices and terms, and a new sub-processor. While only one person is authorised, that person decides alone. The rule takes effect once there is a second.
Палітыка змены сакрэтаў
Аўтаматычнае папярэджанне на 90/180/365 дзён праз secretRotation.ts.
Маскіраванне PII у адказах
Электронная пошта, IBAN, тэлефон маскіруюцца для членаў каманды без доступу да PII. piiMasking.ts цэнтральны.
Ачыстка журналаў
Усе журналы цэнтральна ачышчаюцца. Нулявое PII у журналах, маніторынгу або адладцы.
API ключы з абсягамі
Дробныя дазволы з тэрмінам дзеяння праз apiKeyAuth.ts.
Мяккае выдаленне і аднаўленне
28-дзённае аднаўленне выдаленых даных. слупок deletedAt з аўтаматычным фільтрам запыту.
Data export
Поўны JSON-экспарт усіх дадзеных карыстальніка за адзін запыт. Выдаленне праз працэс DSAR (арт. 17).

Абарона даных

Concrete technical measures

Шыфраванне на ўзроўні палёў (AES-256-GCM)
IBAN, падатковы ідэнтыфікатар, сацыяльнае забеспячэнне, банкаўскія даныя, сакрэты TOTP 2FA і адзіночныя коды (увход/праверка/аднаўленне): AES-256-GCM з 96-бітным IV, 128-бітным auth-tag. Случайны IV для кожнага шыфравання.
Шыфраванне з закрыццём на няўдачу
Без ENCRYPTION_KEY у вытворчасці: сервер адмаўляецца запускацца. Ніякага вяртання да простага тэксту (GDPR арт. 32 літ. a).
Выяўленне падробкі (GCM)
AES-GCM auth-tag выяўляе любое ўмяшанне ў шыфраваны тэкст. Дэшыфраванне не ўдаецца. Ніколі не маўчаць.
HMAC-SHA256 Пошукавыя хэшы
Зашыфраваныя палі застаюцца даступнымі для пошуку праз дэтэрмінаваную HMAC. Адзіны ключ (раздзяленне ключоў па NIST SP 800-57).
Кіраванне ключамі Vault
ENCRYPTION_KEY + SESSION_SECRET + усе API ключы ў HashiCorp Vault (KV v2). Ніякага простага тэксту ў кодзе, асяроддзі або журналах.
Версіяванне ключоў для змены
Фармат шыфраванага тэксту v1:iv:data:tag. Можна перакруціць на новую версію без страты дадзеных.

Бяспека ланцога паставак

Абарона ад кампраметаваных залежнасцяў (event-stream 2018, ua-parser-js 2021)

Dependencies as a build gate
Every build checks all dependencies against the vulnerability database. New findings block; known ones sit in a dated baseline that may only shrink.
Папярэджанні Dependabot
GitHub Dependabot правярае штодня супраць базы дадзеных CVE. Аўтаматычныя бяспечныя PR.
Файл блокіроўкі зафіксаваны
package-lock.json у рэпазітары. Папярэджвае CI ад загрузкі розных версій, чым лакальныя.
SSRF protection on outbound fetches
Every address that comes from user input is checked before Wavor fetches it. Private networks are blocked, and each redirect is checked again instead of being followed blindly.
Аўтаматычныя патчы бяспекі
unattended-upgrades installs operating-system security fixes automatically.
Знешнія скрыпты: CORS + Referrer
Turnstile (Cloudflare) загружаны з крос-арыгінальным ананімным + палітыкай спасылак без спасылкі. Няма ўцечкі ўліковых даных.

Маніторынг і назіранне

Адсочванне памылак (самастойна размешчана)
Папярэджанні аб памылках у рэальным часе з трасамі стэка.
Метрыкі (Prometheus + Grafana)
Затрымка запытаў, запыты да БД, памяць, карысныя метрыкі бізнесу.
Маніторынг сервера
Час працы, ЦП, памяць, дыск: аўтаматызаваныя праверкі 24/7.

Бяспека загрузкі файлаў (7-слойны стек)

Абарона ад шкоднасных праграм, паліглотных атак, SVG-XSS, пераходаў па шляху, MIME-sniffing

Слой 1: Абсалютны памер (100 МБ)
Жорсткі кап супраць zip-бомбаў + DoS. Multer + абарона ў глыбіню.
Слой 2: Памеравы шлюз па тыпах
Выявы 5 МБ, PDF 20 МБ, відэа 100 МБ. Абмежаванні па тыпах.
Слой 3: MIME белы спіс + чорны спіс
Дазволена 22 тыпы. HTML/JS/EXE/SH/JAR выразна забаронены (вектары XSS).
Слой 4: Санітарная апрацоўка імёнаў файлаў
Пераход па шляху (../), нуль-байт, зарэзерваваныя імёны Windows заблакаваны.
Слой 5: Праверка магічнага байта
Змест файла ПАВІНЕН адпавядаць пашырэнню + MIME. Бібліятэка тыпаў файлаў выяўляе атакі 'evil.exe пераназваны picture.jpg'.
Слой 6: Санітарная апрацоўка SVG
DOMPurify выдаляе ўбудаваныя <script> тэгі з SVG. Без санітарнай апрацоўкі загрузка SVG з'яўляецца агульным вектаром XSS.
Layer 7: virus scan
Server-side virus scan before storage, provided the scanner is running on the server. If it is missing, that is logged rather than passed over silently.

Абарона ад XSS у глыбіню (4 слаі)

Захаваны, адлюстраваны, DOM, XSS у ланцужку паставак. Усе вектары пакрытыя

Слой 1: Аўтаматычнае ўцяканне React JSX
Усе ўводы карыстальнікаў уцякаюць па змаўчанні. <script> тэгі адлюстроўваюцца як тэкст, ніколі не выконваюцца. Правіла кода: ніколі не выкарыстоўвайце небяспечнаSetInnerHTML з уводам карыстальніка.
Слой 2: Санітарны фільтр DOMPurify
sanitizeProse() + sanitizeEmailPreview() чысцяць article-HTML, email-previews + markdown. Выдаляе <script>, <iframe>, on*-handlers, javascript:/data: URIs.
Слой 3: CSP script-src 'self'
Нават калі пласты 1+2 не ўдасца: браўзер блакуе замежныя скрыпты. Белы спіс толькі для Stripe + Turnstile captcha.
Слой 4: Давераныя тыпы (Адміністратар)
require-trusted-types-for 'script' на admin.wavor.io прымушае кожную маніпуляцыю DOM праходзіць праз палітыку. Папярэджвае памылкі бібліятэк ад выкліку DOM-XSS.

Даражная карта сертыфікацыі

Мы адкрытыя: Мы будуем і пакуль не маем афіцыйных сертыфікатаў. Але мы ўжо рэалізуем стандарты і актыўна працуем над імі.

DSGVO / GDPR (EU)
Рэалізавана
UK GDPR (Data Protection Act 2018)
Рэалізавана
LGPD (Brasilien)
Рэалізавана
DPDP Act 2023 (Indien)
Рэалізавана
AVG (Niederlande)
Рэалізавана
FADP (Schweiz)
Рэалізавана
ePrivacy (Cookie-Consent)
Рэалізавана
DSA (Digital Services Act)
Рэалізавана
SOC 2 Type II
Запланавана
ISO 27001:2022
Запланавана
ISO 27017 + 27018 (Cloud)
Запланавана
ISO 27701 (Privacy)
Запланавана
ISO 42001 (AI Management)
Запланавана
BSI C5 Type II
Запланавана
CSA STAR Level 1
Запланавана

Мы таксама адпавядаем Закону ЕС аб ШІ, NIS2 і GoBD (нямецкі бухгалтарскі ўлік). Гэта рэгуляцыі, а не сертыфікаты.

Паведаміць пра праблему бяспекі

Знайшлі ўразлівасць? Паведаміце пра гэта канфідэнцыйна нашай камандзе. Мы ўспрымаем кожны даклад сур'ёзна і адкажам вам як мага хутчэй.