0Pricing
Cyber Security Academy · Lekcja

Techniki bezpiecznego przeglądu kodu

Nauczy się Pan/Pani identyfikować problemy bezpieczeństwa podczas przeglądu kodu: przepływy danych, granice zaufania, niebezpieczne API i brakujące mechanizmy kontroli.

Techniki bezpiecznego przeglądu kodu to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.

Cel bezpiecznego przeglądu kodu

Bezpieczny przegląd kodu pozwala identyfikować podatności w kodzie źródłowym przed wdrożeniem. W przeciwieństwie do funkcjonalnego przeglądu kodu koncentruje się na granicach zaufania, przepływach danych, niebezpiecznych interfejsach API, brakujących mechanizmach kontroli oraz błędach w logice bezpieczeństwa — a nie na poprawności lub stylu.

Przegląd ręczny a automatyczny

Automatyczne narzędzia SAST, takie jak Semgrep, SonarQube i CodeQL, szybko wykrywają znane wzorce, ale pomijają błędy logiki biznesowej, złożone podatności obejmujące wiele komponentów oraz problemy zależne od kontekstu. Przegląd ręczny wykrywa to, co pomija automatyzacja. Potrzebne są oba podejścia.

Analiza punktów wejścia

Przegląd bezpieczeństwa należy rozpocząć od zmapowania wszystkich punktów wejścia: punktów końcowych HTTP, obsługi komunikatów z kolejek, przesyłania plików, zadań zaplanowanych, webhooków oraz argumentów CLI. Każdy punkt wejścia przyjmujący dane zewnętrzne jest potencjalnym punktem wstrzyknięcia i wymaga dokładnego sprawdzenia.

Śledzenie przepływu danych

Należy śledzić dane kontrolowane przez użytkownika od punktu wejścia przez aplikację aż do ich końcowego użycia. Czy trafiają do zapytania do bazy danych? Do polecenia powłoki? Do szablonu HTML? Do wywołania API? Należy prześledzić przepływ danych i sprawdzić każdy etap transformacji oraz sanityzacji.

Analiza granic zaufania

Decyzje dotyczące bezpieczeństwa są podejmowane na granicach zaufania — w miejscach, w których dane przechodzą z mniej zaufanego kontekstu, takiego jak żądanie HTTP, do bardziej zaufanego, takiego jak baza danych lub system operacyjny. Każde przekroczenie granicy zaufania musi wiązać się z walidacją, sanityzacją lub autoryzacją danych.

Lista kontrolna niebezpiecznych interfejsów API

Należy oznaczyć użycie: eval(), exec(), system(), shell_exec(), innerHTML, dangerouslySetInnerHTML, deserialize(), pickle.loads(), Runtime.exec(), ProcessBuilder, parserów XML, w których nie wyłączono rozwijania encji, oraz prymitywów kryptograficznych używanych bezpośrednio zamiast wysokopoziomowych interfejsów API.

Przegląd uwierzytelniania i autoryzacji

Należy sprawdzić: Czy każdy wrażliwy endpoint jest chroniony uwierzytelnianiem? Czy autoryzacja jest sprawdzana po stronie serwera dla każdej operacji? Czy użytkownik może uzyskać dostęp do danych innego użytkownika przez zmianę parametru ID (IDOR)? Czy wrażliwe operacje są chronione przed CSRF?

Przegląd obsługi błędów

Należy szukać bloków catch, które bezgłośnie ignorują wyjątki. Trzeba sprawdzić, czy komunikaty błędów wyświetlane użytkownikom nie ujawniają ścieżek wewnętrznych, stack trace’ów ani struktury bazy danych. Należy zweryfikować, czy wyjątki związane z bezpieczeństwem, takie jak AuthenticationException, są rejestrowane, a nie po cichu ignorowane.

Przegląd kryptografii

Należy oznaczyć: użycie MD5 lub SHA-1 do haszowania haseł (należy używać bcrypt/Argon2), zakodowane na stałe klucze symetryczne lub IV, szyfrowanie w trybie ECB (należy użyć GCM lub CBC z HMAC), niestandardowe implementacje kryptograficzne oraz generatory liczb losowych, które nie są kryptograficznie bezpieczne.

Przegląd zależności i konfiguracji

Należy przejrzeć package.json/pom.xml pod kątem nieaktualnych zależności. Trzeba sprawdzić, czy w konfiguracji aplikacji tryb debugowania nie jest włączony na produkcji, czy strony błędów nie zawierają nadmiarowych informacji, czy poświadczenia administratora nie znajdują się w plikach konfiguracyjnych oraz czy nie brakuje nagłówków bezpieczeństwa (HSTS, CSP, X-Frame-Options).

Narzędzia: Semgrep i CodeQL

Reguły Semgrep dopasowują wzorce składni z uwzględnieniem semantyki. Należy pisać niestandardowe reguły dla specyficznych wzorców bazy kodu. CodeQL traktuje kod jako dane — należy pisać zapytania do AST w celu znajdowania przepływów danych od źródeł do miejsc docelowych między plikami i wywołaniami funkcji.

Sprawdzenie wiedzy

Czym jest podatność IDOR i gdzie należy jej szukać podczas przeglądu kodu?

Podsumowanie

Skuteczny bezpieczny przegląd kodu łączy mapowanie punktów wejścia, śledzenie przepływu danych, analizę granic zaufania, wykrywanie niebezpiecznych interfejsów API oraz automatyczne narzędzia SAST. Wykrywa problemy bezpieczeństwa pomijane podczas przeglądu funkcjonalnego, szczególnie błędy logiki biznesowej i subtelne luki w autoryzacji.

Często zadawane pytania

Czy lekcja „Techniki bezpiecznego przeglądu kodu” jest bezpłatna?

Tak — pełny tekst „Techniki bezpiecznego przeglądu kodu” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Techniki bezpiecznego przeglądu kodu”?

Nauczy się Pan/Pani identyfikować problemy bezpieczeństwa podczas przeglądu kodu: przepływy danych, granice zaufania, niebezpieczne API i brakujące mechanizmy kontroli. Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?

Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Techniki bezpiecznego przeglądu kodu”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?

Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Walidacja danych wejściowych i kodowanie danych wyjściowych
  2. Bezpieczne zarządzanie zależnościami
  3. OWASP ASVS: standard weryfikacji bezpieczeństwa aplikacji
  4. Techniki bezpiecznego przeglądu kodu
← Powrót do Cyber Security Academy