Jak specjalistyczne testy penetracyjne przechytrzają automatyczne skanowanie?
Piotr R
8 kwietnia 2024
Prawie wszystkie dzisiejsze organizacje mają jakąś formę zautomatyzowanego aparatu do testowania bezpieczeństwa. Może to obejmować narzędzia do analizy kodu statycznego, a nawet skanery wykonujące dynamiczne testowanie aplikacji. Teraz wyobraź sobie scenariusz, w którym wykonałeś skanowanie, naprawiłeś luki w skanerze, a najnowsze skany nie wykazały już żadnych luk. W tym momencie powinieneś czuć ulgę i być gotowym do uruchomienia aplikacji, ponieważ nie znaleziono żadnych luk w zabezpieczeniach, prawda?
Niekoniecznie. Poleganie wyłącznie na automatycznych skanerach i/lub niedoświadczonych testerach penetracyjnych jest nieskuteczne. Przypomina to zamykanie drzwi wejściowych w szklanym domu. Nic w środku nie byłoby poufne i nie byłoby bezpieczne nawet przy zamkniętych drzwiach.
Dlatego w tym artykule przedstawiono rzeczywiste przykłady przerażającej rzeczywistości fałszywych zabezpieczeń oraz ważną rolę, jaką odgrywają wysoko wykwalifikowani profesjonalni testerzy penetracji w ochronieTwojej firmy przed potencjalnie katastrofalnymi stratami finansowymi.
Testy penetracyjne – kluczowe aspekty
W poniższych studiach przypadków przyjrzymy się technikom testów penetracyjnych stosowanym przez ekspertów z Bitdefender, którzy odkryli luki w zabezpieczeniach, skutkujących potencjalnymi poważnymi skutkami finansowymi. Pokrótce omówimy także, dlaczego automatyczne skanery nie wykryją takich luk i dlaczego poleganie na nich jest niewystarczające i niezwykle niebezpieczne.
Inwestycja w profesjonalny test penetracyjny o odpowiednim zakresie wraz z automatycznymi skanami to najlepsze rozwiązanie chroniące Twoją firmę przed katastrofą finansową.
Uwaga: wszystkie 3 studia przypadków wykorzystują fałszywe obrazy w celu zademonstrowania luk i żadne z nich nie jest zrzutami ekranu rzeczywistych aplikacji.
Studium przypadku 1: Przelew pieniężny z dowolnego konta
W tym przypadku tester penetracji Bitdefender testował bankową aplikację mobilną i odkrył, że osoba atakująca była w stanie przelać pieniądze z dowolnego konta na swoje własne konto, ponieważ aplikacja mobilna nie zweryfikowała, czy wykonany przelew pochodził od właściciela konta.
Poniższy zrzut ekranu przedstawia atakującego, użytkownika „Horangi” z saldem w wysokości 140 dolarów, próbującego wykonać przelew w wysokości 10 dolarów na rzecz użytkownika o imieniu „Benjamin”.
Następnie atakujący inicjuje transfer, ale przechwytuje żądanie skierowane do serwera za pomocą narzędzia proxy, takiego jak Burp Suite.
Wykorzystując narzędzia takie jak Burp Suite, atakujący może zmodyfikować żądanie przed jego wysłaniem do serwera aplikacji. Cyberprzestępca może manipulować żądaniem, aby uwzględnić nowy numer konta źródłowego (kończący się na „618) i nowe konto beneficjenta pasujące do jego własnego konta (kończące się na „221”), jak pokazano poniżej.
Po wysłaniu przez osobę atakującą zmanipulowanego żądania do serwera aplikacji „Horangi” pomyślnie otrzymuje 10 dolarów z konta o nazwie „Ofiara”, jak pokazano poniżej. To wyraźnie pokazuje, że w ramach żądania transferu nie przeprowadzono żadnych kontroli dostępu w celu potwierdzenia własności konta źródłowego, które w tym przypadku nie było kontrolowane przez osobę atakującą.
Pułapka nr 1: Automatyczne skanery nie mogą weryfikować uprawnień użytkowników
W przeciwieństwie do profesjonalnych testerów penetracyjnych, automatyczne skanery nie są w stanie wykryć błędów kontroli dostępu w aplikacji. Podczas testowania aplikacji testerzy penetracji poświęcają czas na zrozumienie, w jaki sposób aplikacja ma działać, a następnie próbują nadużyć wszelkich fałszywych założeń obecnych podczas programowania. Wyobraźmy sobie, że gdyby powyższa luka nie została wykryta, osoba atakująca miałaby możliwość losowego przeniesienia środków z dowolnego konta na własne konto, co spowodowałoby potencjalnie katastrofalne szkody finansowe i reputacyjne dla danego banku.
Studium przypadku 2: Błędna konfiguracja płatności Stripe
W tym studium przypadku tester penetracji Bitdefender odkrył, że osoba atakująca może edytować kwotę płatności wysłaną do Stripe i sfinalizować wymaganą transakcję mniejszą płatnością. Skutki finansowe tego są znaczące. Wyobraźcie sobie, że atakujący może skutecznie sprawdzić dowolną liczbę przedmiotów, płacąc po prostu jednego dolara.
Stosując podobną technikę przechwytywania żądań zastosowaną powyżej, testerzy penetracji Bitdefenderzmienili kwotę płatności z pierwotnej kwoty na zaledwie dolara, po prostu zmieniając parametry kwoty.
Poniższy zrzut ekranu przedstawia rzeczywistą kwotę do zapłaty za konsolę do gier przed przekierowaniem użytkownika do płatności Stripe, a także stronę płatności Stripe, na której atakujący pomyślnie zamienił kwotę na dolara, a dokonana płatność została uznana za pomyślną.
Pułapka nr 2: Automatyczne skanery nie mogą zweryfikować błędnej konfiguracji logiki aplikacji
Większość automatycznych skanerów nie jest w stanie wykryć przypadków, w których logika aplikacji obecna na kliencie nie jest wymuszana na serwerze, ponieważ po prostu nie są w stanie zrozumieć oczekiwanego przepływu logiki aplikacji. W tym przypadku skaner nie byłby w stanie wykryć, czy żądanie płatności międzydomenowej skierowane do Stripe było obsługiwane na kliencie, podczas gdy najlepszą praktyką byłoby po prostu przetworzenie płatności na serwerze.
Studium przypadku nr 3: Ujemna cena pozycji w koszyku
W ostatnim studium przypadku testerzy penetracji Bitdefender odkryli, że wartość elementu można ustawić na wartość ujemną, mimo że graficzny interfejs użytkownika frontonu został skonfigurowany tak, aby ograniczać takie działania poprzez omijanie ograniczeń frontonu GUI.
Wyobraź sobie, że atakujący był w stanie dodać do swojego koszyka produkty o wysokiej wartości (255 USD) i zrekompensować koszty, dodając do koszyka produkty o podobnej cenie i podobnej wartości ujemnej (-254 USD). Oznaczałoby to udany zakup o wartości (1 USD) znacznie niższej niż rzeczywista wartość pozycji w koszyku. Poniższy zrzut ekranu pokazuje, że atakującemu udało się dokładnie to zrobić.
Pułapka nr 3: Brak zrozumienia i kontekstualizacji wymagań biznesowych
Doświadczeni testerzy penetracji rozumieją, jak powinny zachowywać się aplikacje i ich funkcjonalność, czego brakuje automatycznym skanerom i niedoświadczonym testerom penetracyjnym. Automatyczne skanowanie nie byłoby w stanie wykryć takiej luki, ponieważ nie miałoby możliwości sprawdzenia, czy dana kwota nie powinna być wartością ujemną. Podobnie niedoświadczony tester penetracji może nie pomyśleć o przetestowaniu takiego scenariusza skrajnego, ponieważ graficzny interfejs użytkownika aplikacji ogranicza ceny ujemne.
Testy penetracyjne – kluczowy element cyberbezpieczeństwa
Powyższe studia przypadków pokazują, że chociaż automatyczne testowanie bezpieczeństwa jest dobrą i opłacalną praktyką, to nie jest idealna i nie powinna zastępować testów penetracyjnych. Ludzka pomysłowość i wiedza specjalistyczna, skrupulatne podejście doświadczonych i profesjonalnych testerów penetracji może odkryć słabe punkty i wykryć to, czego nie udałoby się zautomatyzowanym testom bezpieczeństwa, pozwalając firmom uniknąć potencjalnych strat i szkody dla ich reputacji.
Należy pamiętać, że zapobieganie jest znacznie bardziej ekonomiczne niż leczenie, a inwestycja w regularne profesjonalne testy penetracyjne to ważny krok w kierunku zapewnienia odporności firmy na ataki hakerów i cyberprzestępców.
Account Manager, od ponad roku pracuję w branży IT i od ponad 5 lat jestem copywriterem. Do moich zadań należy nawiązywanie współpracy partnerskich, pisanie i redagowanie tekstów, kontakt z dziennikarzami, tworzenie notatek prasowych oraz zamieszczanie ich na stronach internetowych i w naszych mediach społecznościowych. Wcześniej byłem przez kilka lat związany z branżą OZE oraz z technologiami telemetrycznymi i elektronicznymi. Interesuję się językoznawstwem, literaturą, grą na gitarze oraz branżą gier.