Czy macie certyfikaty bezpieczeństwa?
Nie. Ani ISO 27001, ani SOC 2, ani certyfikacji testów ofensywnych, ani akredytacji audytora. Nie wydajemy certyfikatów i nie podpisujemy atestów zgodności. To, co możemy pokazać, to własna praktyka, z plikiem i linią, oraz kontrole, które wprowadziliśmy w działających systemach. Jeśli potrzebujesz certyfikatu do akt, potrzebujesz akredytowanej jednostki, nie nas — i lepiej wiedzieć to teraz.
Czy wykonujecie testy penetracyjne?
Nie jako usługi. Nie mamy zespołu do testów ofensywnych, licencji ani certyfikowanej metodologii i nie udajemy, że je mamy. Robimy analizę kodu i konfiguracji, plus nieinwazyjne sprawdzenia z zewnątrz — nagłówki, zachowanie na limicie szybkości, to, co ujawniają odpowiedzi błędów. Jeśli projekt wymaga prawdziwych testów ofensywnych, potrzebujesz wyspecjalizowanej firmy; możemy pracować obok niej nad naprawą.
Co znaleźliście we własnych systemach?
Trzy rzeczy, w jeden dzień analizy, wszystkie opisane publicznie w naszym rejestrze. Trasa, która inicjowała połączenie telefoniczne do dowolnego numeru z treści żądania, anonimowo, bez uwierzytelniania, której żadna komponenta interfejsu już nie wywoływała — teraz zwraca 404, jeśli sekret nie jest skonfigurowany, czyli jest wyłączona, jeśli ktoś nie uruchomi jej celowo. Widget rozmowy, który ładował się przy każdym widoku i zapisywał sesję w pamięci przeglądarki, zanim odwiedzająca osoba o cokolwiek poprosiła — teraz ładuje się po naciśnięciu przycisku. I pełny adres IP wysyłany w powiadomieniu, podczas gdy publiczna strona obiecywała anonimizację — teraz jest skracany przed zapisaniem.
Wasza polityka treści dopuszcza `unsafe-eval`. Dlaczego miał(a)bym wam wierzyć?
Bo to my wam powiedzieliśmy, a nie wy się o tym dowiedzieliście. Tak, polityka tej strony dopuszcza `unsafe-inline` i `unsafe-eval` w skryptach — to realna słabość, odziedziczona po sposobie ładowania niektórych skryptów zewnętrznych, i to właśnie ten mechanizm sprawił, że nasz własny audyt dostępności wstrzyknął narzędzie kontrolne do produkcyjnej strony. W projekcie, gdzie ograniczenie ustalamy od początku, poprawna forma jest taka jak na platformie sesizari.md: unikalna wartość dla każdej odpowiedzi generowana w proxy i brak zewnętrznych źródeł skryptów. Różnica między tymi dwiema rzeczami to dokładnie rozmowa, którą trzeba odbyć na początku projektu, nie na końcu.
Jak mam sprawdzić, bez wiary na słowo, że ograniczenie liczby żądań działa?
Wysyłając dwanaście kolejnych żądań do trasy interfejsu programowania tej strony i licząc odpowiedzi: pierwsze dziewięć przechodzi, dziesiąte dostaje 429 z nagłówkiem mówiącym, po jakim czasie można spróbować ponownie. Okno wynosi jedną minutę. Polecenie jest na liście źródeł tej strony i można je uruchomić teraz. Tę samą zasadę stosujemy do tego, co dostarczamy: jeśli jakiegoś kontrolnego mechanizmu nie da się zweryfikować z zewnątrz przez klienta, nie jest dostarczany, jest deklarowany.
Co dzieje się z danymi osobowymi z formularza?
Są zapisywane do dziennika dopisywanego, jeden obiekt na linię, z ograniczonymi uprawnieniami do pliku i katalogu, zanim zostanie podjęta próba dostarczenia — żeby uszkodzony kanał powiadomień nie sprawił, że żądanie zniknie. Adres IP jest skracany do prefiksu sieci przed zapisaniem. Starsze pliki niż zadeklarowany termin są usuwane, przy czym liczba dni jest pobierana z tej samej wartości, która widnieje w opublikowanej polityce. A wiersz w rejestrze przetwarzania mówi, dla każdego elementu, w którym pliku kodu jest zaimplementowany.
Czy możecie zrobić uwierzytelnianie z państwową tożsamością elektroniczną albo podpisem elektronicznym?
Kod istnieje i jest przetestowany, ale nigdzie nie jest aktywowany w produkcji, a ta różnica ma znaczenie. Mamy napisany dostawcę usług do uwierzytelniania federacyjnego i klienta podpisu, oba bez nowych zależności, z wdrożonymi właściwymi zabezpieczeniami i testami. To, czego brakuje, nie dotyczy kodu: umowy z organem, certyfikatu systemu i rejestracji adresu produkcyjnego. Do tego czasu działająca dziś wersja jest taka, w której obywatelka albo obywatel podpisuje na oficjalnym portalu i wgrywa z powrotem podpisany dokument.
Jakie kontrole zwykle umieszczacie w nowej aplikacji?
Nagłówki i polityka treści z unikalną wartością dla każdej odpowiedzi; ograniczenie liczby żądań z kluczem pobieranym poprawnie zza proxy; separacja według organizacji stosowana w bazie, nie tylko w aplikacji; szyfrowane sekrety i nigdy w odpowiedziach ani dziennikach; klucze idempotencji dla zdarzeń od podmiotów trzecich; obowiązkowe uwierzytelnianie dwuskładnikowe dla kont personelu; dziennik audytu z osobną widocznością dla wewnętrznej i publicznej strony; oraz, dla projektów publicznych, automatycznie sprawdzana przy każdym wydaniu biała lista docelowych adresów sieciowych.
Czego nie obejmuje ta usługa?
Bezpieczeństwa sieci korporacyjnej, sprzętu użytkowniczek i użytkowników, ciągłego monitorowania w stylu centrum operacyjnego, reakcji na incydenty 24/7, analizy kryminalistycznej ani szkolenia przeciw phishingowi. To nie są rzeczy, które robimy źle — to rzeczy, których nie robimy. Naszym zakresem jest aplikacja, którą budujemy lub przejmujemy, plus dane, które przez nią przechodzą.