Menu

Bezpieczeństwo

Oddajesz nam dane osobowe swoich pracowników. Oto co z nimi robimy

Ta strona istnieje, żeby Twój dział bezpieczeństwa albo IOD dostał odpowiedzi od razu, bez wymiany dziesięciu maili. Opisujemy też to, czego jeszcze nie mamy — na końcu strony.

Izolacja danych między firmami

Najważniejsze pytanie w aplikacji wielu klientów naraz: co się stanie, jeśli programista pomyli się w jednym zapytaniu.

  • Każdy rekord należy do konkretnej firmy, a Postgres wymusza to politykami Row Level Security — baza danych sama odrzuca próbę odczytu danych innej firmy, niezależnie od tego, co próbuje zrobić kod aplikacji.
  • Polityki działają „fail closed”: jeśli aplikacja nie ustawi kontekstu firmy, zapytanie zwraca zero wierszy, a nie wszystko. Błąd po stronie kodu kończy się brakiem danych, nie wyciekiem.
  • Aplikacja łączy się z bazą rolą bez prawa pominięcia tych polityk. Osobna rola o szerszych prawach jest używana wyłącznie przez proces rejestracji firmy i nocny proces powiadomień — i to jest wszystko, w trzech udokumentowanych miejscach kodu.
  • Filtrowanie po firmie w warstwie aplikacji istnieje równolegle, jako pierwsza bariera. Dwie niezależne bariery, nie jedna podwójnie opisana.

Uwierzytelnianie i dostęp

Konta administracyjne widzą dane wszystkich pracowników firmy, więc traktujemy je jak najcenniejszy cel.

  • Logowanie kontem firmowym Google Workspace lub Microsoft 365 jest ścieżką główną. Zablokowanie konta u dostawcy odcina dostęp do upra.pl natychmiast — nie musisz czekać na nasze działanie ani pamiętać o cofnięciu dostępu.
  • Dla firm bez Workspace/M365: hasło plus obowiązkowy kod TOTP dla ról Właściciel i Administrator. Wymóg jest wymuszony na poziomie routingu, nie ukryciem przycisku w interfejsie.
  • Opcja „wpuszczaj tylko konta z domen firmowych” odcina prywatne adresy. Działa jednakowo dla logowania przez dostawcę i hasłem — inaczej byłaby tylko pozorem polityki.
  • Hasła są przechowywane jako skróty Argon2id (nie bcrypt) — algorytmu zaprojektowanego pod odporność na łamanie sprzętowe na kartach graficznych.
  • Po pięciu nieudanych próbach konto jest czasowo blokowane, z rosnącym czasem blokady. Niezależnie działa ograniczenie liczby prób z jednego adresu IP.
  • Uprawnienia (kto widzi i zmienia czyje dane) są zawsze ustalane w upra.pl. Google i Microsoft odpowiadają wyłącznie na pytanie „kto się loguje”, nigdy „co może zrobić”.

Minimalizacja danych — czego celowo nie zbieramy

Najskuteczniejsza ochrona danych to ich nieposiadanie. Kilka decyzji projektowych podjęliśmy właśnie w tym duchu.

  • Nie przechowujemy wyników badań lekarskich, orzeczeń ani żadnych informacji o zdrowiu — wyłącznie fakt posiadania uprawnienia i datę ważności. W systemie nie ma więc danych szczególnej kategorii z art. 9 RODO.
  • Nie zbieramy numerów PESEL ani innych krajowych numerów identyfikacyjnych. Do pilnowania terminów nie są potrzebne, a ich posiadanie zwiększa i ryzyko, i Twoje obowiązki.
  • Nie przyjmujemy skanów dokumentów. Zdjęcie orzeczenia lekarskiego to dane o zdrowiu niezależnie od tego, w jakim polu je zapiszemy.
  • Numery certyfikatów, jeśli je wpiszesz, są szyfrowane osobno w bazie danych (AES-256-GCM), kluczem przechowywanym poza bazą. Kopia samej bazy danych nie wystarcza do ich odczytania.

Rozliczalność i dziennik audytowy

Przy kontroli PIP albo audycie RODO musisz udowodnić nie tylko stan danych, ale też kto je zmieniał.

  • Każda zmiana danych pracownika, uprawnienia, użytkownika i ustawień dostępu zapisuje się w dzienniku audytowym: kto, kiedy, z jakiego adresu IP, jaka była wartość przed i po.
  • Dziennik jest tylko do dopisywania. Aplikacja nie ma funkcji edycji ani usuwania wpisów — również dla nas.
  • Dziennik jest dostępny do przeglądania w panelu, nie tylko „gdzieś w bazie”. Filtrujesz po rodzaju danych i stronicujesz.
  • Jeśli nasze wsparcie techniczne podejrzy Twoje konto w celu rozwiązania zgłoszenia, zapisuje się to w Twoim dzienniku audytowym jako osobny wpis — wraz z informacją, że działał pracownik upra.pl, a nie Twój. Nie ma trybu „cichego” wglądu.

Infrastruktura i ciągłość działania

  • Serwery w Unii Europejskiej. Nie przekazujemy danych osobowych do państw trzecich, więc nie musisz analizować podstaw transferu poza EOG.
  • Cały ruch wyłącznie po HTTPS, z wymuszonym HSTS i protokołem TLS 1.2 lub nowszym.
  • Baza danych nie jest dostępna z internetu — wyłącznie z sieci wewnętrznej aplikacji.
  • Kopie zapasowe są szyfrowane przed opuszczeniem serwera, a odtworzenie z kopii jest regularnie testowane. Kopia, której nikt nie odtworzył, nie jest kopią.
  • Dostęp administracyjny do serwera wyłącznie kluczem SSH, bez haseł, z zaporą ograniczającą ruch do portów 80 i 443.
  • Zależności są automatycznie skanowane pod kątem znanych podatności; krytyczne blokują wydanie nowej wersji.

RODO — role i dokumenty

Twoja firma jest Administratorem danych swoich pracowników. My jesteśmy Podmiotem przetwarzającym i działamy wyłącznie na Twoje polecenie.

  • Umowa Powierzenia Przetwarzania Danych jest zawierana przy zakładaniu konta i dostępna do wglądu w każdej chwili — nie trzeba o nią prosić mailem.
  • Lista podprocesorów (dostawca infrastruktury, bramka SMS, dostawca poczty) jest jawna, a każdy z nich ma zawartą z nami umowę powierzenia i przetwarza dane w UE.
  • Dane pracownika oznaczonego jako nieaktywny są usuwane lub anonimizowane po skonfigurowanym okresie, z zachowaniem zanonimizowanego wpisu w dzienniku audytowym na potrzeby rozliczalności.
  • Eksport wszystkich danych do CSV jest dostępny samoobsługowo, bez naszej zgody i bez opłaty — realizuje prawo do przenoszenia danych.
  • W razie naruszenia ochrony danych powiadamiamy Cię jako Administratora bez zbędnej zwłoki, żebyś mógł dochować własnego 72-godzinnego terminu zgłoszenia do UODO.

Uczciwie

Czego jeszcze nie mamy

Dostawca, który na stronie o bezpieczeństwie nie ma ani jednego ograniczenia, albo ich nie zna, albo ich nie pokazuje. Oba warianty są gorsze od listy poniżej.

  • Nie przeszliśmy jeszcze niezależnego testu penetracyjnego przez firmę zewnętrzną. Jest on elementem oferty Enterprise i planowanym krokiem przed obsługą dużych organizacji — wolimy to napisać, niż pozwolić Ci założyć, że już się odbył.
  • Nie mamy certyfikatu ISO 27001 ani SOC 2. Stosujemy opisane wyżej środki, ale nie zostały one potwierdzone audytem akredytowanej jednostki.
  • Potwierdzenie własności domeny firmowej odbywa się przez wymóg, by zgłaszający miał adres email w tej domenie — nie przez rekord DNS. Dla większości firm to wystarcza, ale jest to słabsza bariera niż weryfikacja DNS i planujemy ją wzmocnić.
  • Uwierzytelnianie kluczem sprzętowym (passkey/WebAuthn) nie jest jeszcze dostępne bezpośrednio w upra.pl. Można je natomiast wymusić po stronie Google Workspace lub Microsoft 365 — i wtedy obowiązuje również przy logowaniu do upra.pl.

Zgłaszanie podatności

Jeśli znalazłeś błąd bezpieczeństwa, napisz na [email protected]. Odpowiadamy w ciągu dwóch dni roboczych. Nie podejmujemy działań prawnych wobec osób, które zgłaszają podatności w dobrej wierze, nie wykorzystują ich do dostępu do danych innych firm i dają nam czas na naprawę przed publikacją.

Pytania o RODO

Sprawy dotyczące przetwarzania danych, umowy powierzenia i realizacji praw osób, których dane dotyczą: [email protected].

Przekaż tę stronę swojemu działowi bezpieczeństwa

A potem sprawdź produkt na własnych danych. Okres próbny nie wymaga karty płatniczej ani rozmowy ze sprzedażą.

Bez karty płatniczej. Bez umowy na czas określony. Dane możesz wyeksportować w każdej chwili.