Testy bezpieczeństwa przeprowadzone we własnym zakresie #
Są to testy własne. Przeprowadza je operator, a nie niezależny oceniający, i nie zastępują one niezależnego zewnętrznego testu penetracyjnego, który jest odnotowany na stronie Trust. Publikujemy je, ponieważ ich treść jest przydatna dla osoby oceniającej, nawet gdy brakuje niezależności.
Ostatnia aktualizacja: 2026-10-18
Przeprowadzone testy #
| Data | Rodzaj | Zakres | Wynik |
|---|---|---|---|
| 2026-05-26 | Ocena bezpieczeństwa na poziomie kodu | Analiza statyczna, audyt zależności oraz ręczny przegląd uwierzytelniania, autoryzacji i obsługi plików | Obsługa przesyłanych plików została wskazana jako obszar najwyższego ryzyka. Ustalenia odnotowane w rejestrze zgłoszeń i usunięte: serwerowy limit liczby załączników, autoryzacja przesyłania bezpośredniego oraz czyszczenie parametrów i adresów IP w logach |
| 2026-05-26 | Zewnętrzny test produkcyjny, nieniszczący | Nagłówki odpowiedzi, konfiguracja TLS, strony publiczne oraz zapytania o metadane wobec hosta produkcyjnego | Luki w pokryciu nagłówków odpowiedzi i brak metadanych kontaktu bezpieczeństwa; zależność od zewnętrznych CDN dla zasobów statycznych oceniona jako ryzyko średnie. Usunięte 2026-05-27: metadane kontaktu bezpieczeństwa opublikowane, ochrona przed odgadywaniem typu treści rozszerzona na zasoby statyczne |
| 2026-06-09 | Przegląd uwierzytelniania | Obsługa ciasteczek, cykl życia sesji, przepływy magic link i zaproszeń | Dwa ustalenia o charakterze informacyjnym. Usunięte 2026-06-14: ciasteczko oczekującego uwierzytelnienia przeniesione do magazynu szyfrowanego, dzięki czemu adres nie jest czytelny po stronie klienta; deklarowany czas wygaśnięcia ciasteczka sesji odpowiada teraz serwerowemu limitowi bezczynności wynoszącemu 14 dni. Jedno ustalenie o niskiej wadze: adresy kanałów zgłoszeń były wyprowadzane z kolejnych identyfikatorów, co pozwalało wyliczyć zbiór organizacji będących klientami. Usunięte 2026-08-12: każdy kanał zgłoszeń ma prywatny, losowy adres, a strona wyświetlana dla nieaktywnego kanału zgłoszeń nie podaje już nazwy organizacji |
| 2026-08-27 | Uwierzytelniony test graybox | Dostęp międzyorganizacyjny, eskalacja uprawnień, mass assignment, dostęp do zgłoszeń w obrębie jednej organizacji, poufność załączników, izolacja SCIM, zaufanie do asercji SAML | Nie stwierdzono wad autoryzacji. Granice organizacji i ról utrzymały się w każdym testowanym przypadku |
| 2026-08-27 | Przegląd ekspozycji produkcyjnej | Ekspozycja sieciowa, utwardzenie hosta, obsługa nagłówków proxy, postępowanie z sekretami | Nagłówki przekierowania przesyłane przez klienta były traktowane jako zaufane na origin wystawionym bezpośrednio do internetu, co pozwoliłoby obejść limity liczby żądań na adres IP. Naprawione tego samego dnia. Usunięto też nagłówek ujawniający czas przetwarzania po stronie serwera dla każdego żądania. Przestarzały nagłówek Feature-Policy został 2026-09-05 zastąpiony przez Permissions-Policy |
| 2026-09-08 | Uwierzytelniony przegląd dostarczania plików i przechowywania w przeglądarce | Bezpośrednie pobieranie eksportów danych i nagrań głosowych, dostęp przy użyciu znanych adresów URL plików między organizacjami i po usunięciu członkostwa, przycisk Wstecz przeglądarki po wylogowaniu | Trzy ustalenia, z których każde wymagało użytkownika już uprawnionego i dysponującego podpisanym adresem URL pliku albo współdzielonej przeglądarki. Wygasły eksport danych nadal można było pobrać z zachowanego adresu URL bez ponownego uwierzytelnienia. Osoba prowadząca sprawę mogła pobrać oryginalne nagranie głosowe przed zakończeniem jego anonimizacji. Po unieważnieniu sesji przycisk Wstecz przeglądarki mógł ponownie wyświetlić zgłoszenie z jej pamięci podręcznej. Usunięte 2026-09-10: dostarczanie plików egzekwuje teraz te same zasady dotyczące wygaśnięcia, ponownego uwierzytelnienia i przetwarzania co strona zawierająca link do pliku, a strony wrażliwe i pliki prywatne nie są już przechowywane przez przeglądarkę. Dostęp między organizacjami i dostęp usuniętych członków został odrzucony w każdym testowanym przypadku |
| 2026-09-26 | Przegląd obsługi sesji na poziomie kodu | Identyfikacja sesji i ich zachowanie po przywróceniu bazy danych | Sesje były identyfikowane przez ich identyfikator w bazie danych. Przywrócenie cofa identyfikatory, więc nowe logowanie mogło otrzymać identyfikator, który nadal przechowywało zachowane ciasteczko, i w ten sposób można było wznowić sesję tego użytkownika. Naprawione tego samego dnia: sesje są identyfikowane losowym tokenem, a wszystkie istniejące sesje zostały zakończone |
| 2026-09-28 | Przegląd logów kanału zgłoszeń | Logi po stronie aplikacji zapisywane, gdy zgłaszający korzysta z kanału zgłoszeń | Dwa komponenty nadal zapisywały adresy IP zgłaszających: log żądań serwera WWW i ostrzeżenie mechanizmu ochrony przed spamem. Oba usunięte tego samego dnia. Własny log żądań serwera proxy TLS, który rejestruje adres IP każdego żądania, pozostaje bez zmian i jest opisany w sekcji Security#ip-addresses |
| 2026-10-16 | Przegląd na poziomie kodu w oparciu o aktualne badania ataków na Rails | Przetwarzanie przesyłanych plików, dekodowanie obrazów, obsługa podpisanych wiadomości, logi żądań, przechowywane wiadomości czasu rzeczywistego, kod generowany dla autoryzacji | Usuwanie metadanych dobierało metodę na podstawie typu zadeklarowanego przez przeglądarkę, więc zdjęcie przesłane jako plik ogólny zachowywało metadane lokalizacji i urządzenia. Dekoder SVG biblioteki obrazów, zablokowany przy uruchomieniu, był ponownie włączany dla całego procesu po wygenerowaniu obrazu podglądu linku. Podpisane i szyfrowane wiadomości nadal akceptowały format serializacji, który sprawia, że wyciek sekretu aplikacji prowadzi do wykonania kodu. Logi żądań rejestrowały nazwy plików załączników i krótkotrwałe tokeny pobierania. Powiadomienia w czasie rzeczywistym, zawierające numer sprawy, były przechowywane bez szyfrowania przez jeden dzień. Szablon nowych polityk autoryzacji pomijał filtr organizacji; nie dotyczyło to żadnej istniejącej polityki. Wszystko usunięte tego samego dnia |
| 2026-10-16 | Kontrola śledcza w środowisku produkcyjnym (CVE-2026-66066) | Kontrola w trybie tylko do odczytu każdego pliku zapisanego przed poprawką pod kątem spreparowanych nagłówków obrazów, obrazów, których piksele dekodują się jako pliki serwera, oraz pozostałych identyfikujących metadanych | Brak śladów wykorzystania w zachowanych danych i brak obrazu w zgłoszeniu, który nadal zawierałby identyfikujące metadane. Pliki, które mogły zostać przesłane przez odsłoniętą ścieżkę przesyłania bezpośredniego, otwartą od 2026-04-13 do 2026-05-12, zostały usunięte przez codzienne czyszczenie niepowiązanych plików i nie można ich już zbadać |
| 2026-10-17 | Przegląd ekspozycji produkcyjnej | Log żądań serwera reverse proxy, limity rozmiaru żądań, skanowanie obrazu kontenera pod kątem podatności | Serwer reverse proxy loguje ścieżkę każdego żądania, a ścieżki pobierania załączników zawierały nazwę pliku. Treści żądań o rozmiarze do 1 GB były buforowane na dysku, zanim aplikacja je zweryfikowała. Obraz kontenera był skanowany pod kątem podatności systemu operacyjnego co miesiąc, przy zobowiązaniu do 7 dni dla poprawek krytycznych. Usunięte tego samego dnia: w żadnym z dwóch etapów pobierania załącznika ścieżka nie zawiera nazwy pliku, treści żądań są ograniczone do wartości nieco powyżej największego prawidłowego zgłoszenia, a obraz jest skanowany co tydzień |
| 2026-10-17 | Testy mutacyjne reguł autoryzacji | Polityki dostępu do zgłoszeń, dokumentów zgłoszeń i kanałów zgłoszeń, przy czym każdą regułę celowo zmieniano, aby potwierdzić, że zestaw testów wykrywa zmianę | Każda zmiana w tych politykach została wykryta. Nie stwierdzono wad autoryzacji |
| 2026-10-18 | Przegląd kodu przed niezależną oceną | Pola przesyłania plików i dostęp do plików, usuwanie metadanych, blokada do czasu skanowania antywirusowego, role w sprawach, administracja platformą, rejestrowanie uwierzytelniania, raportowanie błędów, hasła sygnalistów | Dziesięć ustaleń. Dziewięć usuniętych tego samego dnia: pole przesyłania akceptowało identyfikator pliku już zapisanego, więc użytkownik mógł dołączyć plik, którego nie przesłał, a następnie go otworzyć (linki do plików wygasają teraz także po godzinie); po usunięciu metadanych z pliku PDF pierwotnego autora można było odzyskać z wcześniejszej wersji pliku; eksport danych zawierał pliki, które nie przeszły skanowania antywirusowego, a plik, którego skanowania nigdy nie zaplanowano, był udostępniany bez skanowania; Obserwator przypisany do sprawy mógł w niej działać; panel administracyjny platformy nie wymagał drugiego składnika; jednorazowe kody logowania i asercje SAML trafiały do usługi monitorowania błędów; nieudane logowania, nieudane wyszukiwania spraw i przekroczone limity żądań nie pozostawiały śladu; sygnaliści sami wybierali sześciocyfrowe hasło, więc akceptowany był też popularny wybór, taki jak 123456 (nowe zgłoszenia otrzymują 16-cyfrowe hasło generowane przez system; zgłoszenia wysłane wcześniej zachowują swoje, zob. Znane otwarte ustalenia). Kontrola produkcji w trybie tylko do odczytu nie wykazała żadnego zapisanego pliku PDF zgłoszenia ani konta Obserwatora, więc żaden z tych dwóch problemów nie dotknął żadnej sprawy. Pozostałe ustalenie wymieniono wśród znanych otwartych ustaleń |
Znane otwarte ustalenia #
| Ustalenie | Stanowisko |
|---|---|
| Brak zapory aplikacji webowych i CDN przed origin aplikacji | Decyzja świadoma. Bezpośredni hosting aplikacji i plików odbywa się w UE, natomiast łańcuch poczty e-mail i telemetrii może obejmować dalsze przetwarzanie poza EOG. Ochrona przed DDoS na poziomie sieci u dostawcy hostingu wraz z ograniczaniem liczby żądań w aplikacji to obecny kompromis. |
| Zdjęcia profilowe pracowników są przechowywane z oryginalnymi metadanymi pliku | Celowe. Usuwanie metadanych chroni sygnalistów i ich dowody. Zdjęcie profilowe wybiera i przesyła osoba, która na nim jest. |
| Zgłoszenia wysłane przed 18 października 2026 r. zachowują 6-cyfrowe hasło wybrane przy wysyłaniu przez sygnalistę lub, w przypadku zgłoszenia zarejestrowanego przez pracowników, przez osobę prowadzącą sprawę | Zaakceptowane. Te hasła nadal działają i nie są zastępowane. Logowanie dopuszcza 10 prób podania hasła na numer sprawy w ciągu 10 minut, z dowolnego IP. |
Czego to nie dowodzi #
- Operator wybrał zakres, przeprowadził testy i zrelacjonował wyniki. Nic z tego nie zostało niezależnie zweryfikowane.
- Przebieg bez ustaleń jest dowodem co do przypadków przetestowanych, a nie tych, których nie testowano.
- Zabezpieczenie A.5.35 z samooceny ISO/IEC 27001:2022, niezależny przegląd bezpieczeństwa informacji, pozostaje z tego powodu otwarte. Jest to jedyne zabezpieczenie z Załącznika A na tamtej stronie odnotowane jako w trakcie postępowania, a to samo ograniczenie utrzymuje rozdział 9.2 (audyt wewnętrzny) na poziomie częściowym — zob. zapis audytu wewnętrznego.
Ostatnia aktualizacja: