Bezpečnosť
Bezpečnosť dát je pre HR systém zásadná. Tu popisujeme konkrétne technické a organizačné opatrenia, ktorými chránime dáta klientov. Stránka je živý dokument — pravidelne ju aktualizujeme po nasadení nových opatrení.
Infraštruktúra
- Hosting: Oracle Cloud Infrastructure, región
eu-frankfurt-1(Nemecko, EÚ) - Reverse proxy: Caddy s automatickou obnovou TLS certifikátov (Let's Encrypt)
- Aplikačný server: ASP.NET Core 8 v izolovanom Docker kontajneri
- Databáza: PostgreSQL 17 v privátnej docker sieti, nedostupná zvonka
- Operačný systém: Ubuntu 24.04 ARM s automatickými bezpečnostnými aktualizáciami
Šifrovanie
- Pri prenose: TLS 1.2+ (vynútené na úrovni reverse proxy), hlavička HSTS, automaticky obnovované certifikáty
- Heslá: BCrypt s adaptívnym work factorom
- MFA secrety: šifrované pri ukladaní
- Refresh tokeny: SHA-256 hash, pôvodnú hodnotu neukladáme
Autentifikácia a autorizácia
- JWT access token (15 min) + refresh token (7 dní) s rotáciou
- MFA (TOTP, kompatibilné s Google Authenticator, Authy, 1Password atď.)
- Možnosť vynútiť MFA pre celú firmu (admin v Nastaveniach)
- Recovery kódy pre prípad straty zariadenia
- Rate limiting na login endpointe
- Role-based access control (RBAC) s permissions per modul
Multi-tenant izolácia
HRko hostuje dáta desiatok firiem v jednej aplikácii. Izolácia je realizovaná na úrovni databázy:
- Každá entita má
company_ida globálny query filter na úrovni ORM - Audit log zaznamenáva každú mutáciu s identifikáciou používateľa, firmy a IP
- Super-admin režim je prísne oddelený od bežných používateľských rolí
Audit log
Aplikácia automaticky zaznamenáva:
- Prihlásenia (úspešné aj neúspešné), odhlásenia, zmena firmy
- Vytvorenie, úprava, zmazanie každej entity (s diffom starých a nových hodnôt, citlivé polia vynechané)
- Aktivácia/deaktivácia MFA
- Zmena hesla, reset hesla, pozvanie používateľa
Audit log si ako admin môžete prezrieť v aplikácii v sekcii Audit.
Zálohy
- Frekvencia: denne o 03:00 SEČ
- Obsah: kompletný dump databázy (pg_dump --gzip) + tar archív nahraných súborov
- Retencia: 7 dní (rotácia)
- Lokalita: rovnaký región (eu-frankfurt-1), oddelený disk
- Restore test: vykonaný a zdokumentovaný (posledné overenie: pozri interný log)
Pravidelná údržba
- Bezpečnostné aktualizácie OS: automaticky (unattended-upgrades)
- Aplikačný runtime (ASP.NET, PostgreSQL): kontrola mesačne, kritické patche do 7 dní
- Závislosti NuGet a npm: audit pri každom deploy builde
Incident response
V prípade bezpečnostného incidentu (data breach):
- Okamžitá izolácia dotknutého komponentu
- Forenzná analýza — rozsah, dotknuté dáta
- Notifikácia dotknutých klientov do 48 hodín e-mailom
- Ak to vyžaduje GDPR, nahlásenie ÚOOÚ (Úrad na ochranu osobných údajov Českej republiky) do 72 hodín
- Po vyriešení: postmortem report, aktualizácia opatrení