Kontrole bezpieczeństwa CzynszOK: co działa przy zmianie
· 2 min czytania
Przy każdej zmianie kodu CzynszOK uruchamia kilka automatycznych kontroli bezpieczeństwa. Poniżej lista tego, co naprawdę działa i co dało pierwsze uruchomienie. Piszemy tylko to, co potwierdzają pliki konfiguracji w naszym repozytorium. Całość w skrócie jest też na stronie Bezpieczeństwo.
Co działa przy każdej zmianie kodu
- Zależności:
npm auditna poziomie krytycznym. Znalezisko oblewa kontrolę. - Sekrety w kodzie: gitleaks sprawdza pliki i commity zmiany, a TruffleHog całą historię repozytorium, ale zgłasza tylko sekrety, które da się zweryfikować jako żywe. Oba oblewają kontrolę.
- Analiza statyczna kodu: Semgrep z domyślnym zestawem reguł. Znalezisko o poziomie ERROR oblewa kontrolę.
- Uruchomiona aplikacja: OWASP ZAP w trybie baseline (o tym trybie piszemy w osobnym wpisie) skanuje strony publiczne aplikacji uruchomionej bez bazy danych. Nowe znaleziska blokują build, a raport z każdego uruchomienia zapisuje się przy uruchomieniu kontroli.
- Zależności, znane podatności: OSV-Scanner przy każdym pull requeście i co tydzień. Nowa znana podatność blokuje build.
- Wcześniej i obok: sprawdzanie typów, lint, bramki pilnujące m.in. reguł dostępu tras i braku danych osobowych w logach oraz testy jednostkowe i end-to-end.
Co tydzień Dependabot otwiera zgrupowane pull requesty z aktualizacjami zależności, które znalazł (dependabot.yml); cotygodniowa rutyna scala wszystkie otwarte w jeden pull request i pracuje nad nim, aż przejdą wszystkie blokujące kontrole; scala go człowiek.
Co dało pierwsze uruchomienie
- OWASP ZAP: 61 kontroli zaliczonych, 0 niezaliczonych.
- Semgrep (wersja 1.180.0, to samo polecenie co w kontroli): znalazł jeden problem w naszym kodzie szyfrowania i go poprawiliśmy. Wywołanie odszyfrowania AES-256-GCM nie podawało długości znacznika uwierzytelniającego. Kod już wcześniej odrzucał znacznik inny niż 16 bajtów, a teraz ta długość jest ustawiona także w samym wywołaniu, przy szyfrowaniu i odszyfrowaniu.
- Skan zależności: zgłosił 4 podatności w narzędziach deweloperskich; zaktualizowaliśmy pakiety, dla których była poprawka.
- TruffleHog: nie znalazł żadnego żywego sekretu w historii repozytorium.
Czego te kontrole nie robią
ZAP w trybie baseline jest pasywny: czyta odpowiedzi serwera, niczego nie atakuje i nie loguje się, więc nie widzi ekranów po zalogowaniu. Semgrep szuka znanych wzorców błędów, a nie dowodzi, że kodu nie da się obejść. To nie jest test penetracyjny wykonany przez ludzi i takiego testu nie opublikowaliśmy. Gdy będzie, opiszemy go z datą i zakresem.
Najczęstsze pytania
Czy CzynszOK ma certyfikat ISO 27001 albo SOC 2?
Nie. Certyfikaty, o których piszemy na stronie Bezpieczeństwo, należą do naszych dostawców (baza danych, hosting, płatności, e-maile) i opisujemy je tak, jak sami je publikują.
Czy te kontrole zastępują test penetracyjny?
Nie. To automatyczne kontrole, które działają przy każdej zmianie. Test penetracyjny wykonują ludzie i takiego testu nie opublikowaliśmy.
Czy skanujecie ekrany po zalogowaniu?
Skan ZAP obejmuje strony publiczne. Dostęp do ekranów po zalogowaniu chroni logowanie jednorazowym kodem, reguły dostępu na każdej trasie i testy, ale nie skan ZAP.
Gdzie zgłosić lukę w zabezpieczeniach?
Napisz na pomoc@czynszok.pl: co widzisz i jak to powtórzyć. Ten sam adres jest w pliku security.txt.
Czynsz OK? Sprawdź w kilka minut.
Łączysz bank, wpisujesz czynsz z ogłoszenia, dostajesz certyfikat z kodem QR. Bez PDF-ów i bez analityka.
Sprawdź swój czynsz