beginners guide web application penetration testing
Testy penetracyjne aka Pen Test to najczęściej stosowana technika testowania bezpieczeństwa aplikacji internetowych.
Testy penetracyjne aplikacji internetowych są przeprowadzane poprzez symulowanie wewnętrznych lub zewnętrznych nieautoryzowanych ataków w celu uzyskania dostępu do poufnych danych.
Penetracja sieci pomaga użytkownikowi końcowemu dowiedzieć się, jak haker może uzyskać dostęp do danych w Internecie, dowiedzieć się o bezpieczeństwie ich serwerów poczty elektronicznej, a także dowiedzieć się, jak bezpieczne są strony i serwery hostingowe.
Cóż, omówmy teraz treść tego artykułu.
jak przedstawić wykres w java
(wizerunek źródło )
W tym samouczku dotyczącym testów penetracyjnych próbowałem omówić:
- Potrzeba Pentesta do testowania aplikacji internetowych,
- Standardowa metodologia dostępna dla Pentest,
- Podejście do aplikacji internetowej Pentest,
- Jakie rodzaje testów możemy przeprowadzić,
- Kroki, jakie należy podjąć, aby wykonać test penetracyjny,
- Narzędzia, które można wykorzystać do testowania,
- Niektórzy dostawcy usług testów penetracyjnych i
- Niektóre certyfikaty dotyczące testów penetracji sieci
Zalecane narzędzia do skanowania narażenia na atak:
# 1) Net parker
Netsparker to łatwa w użyciu i zautomatyzowana platforma do testowania bezpieczeństwa aplikacji internetowych, której możesz użyć do zidentyfikowania rzeczywistych i możliwych do wykorzystania luk w swoich witrynach.
#dwa) Kiuwan
Znajdź i napraw luki w swoim kodzie na każdym etapie SDLC.
Kiuwan jest zgodny z najbardziej rygorystycznymi standardami bezpieczeństwa, w tym OWASP, CWE, SANS 25, HIPPA i nie tylko. Zintegruj Kiuwan ze swoim IDE, aby uzyskać natychmiastową informację zwrotną podczas programowania. Kiuwan obsługuje wszystkie główne języki programowania i integruje się z wiodącymi narzędziami DevOps.
=> Zeskanuj swój kod za darmoCzego się nauczysz:
- Dlaczego wymagane są testy penetracyjne?
- Metodologia testowania penetracji sieci
- Rodzaje testów penetracyjnych sieci
- Podejście do testowania za pomocą pióra internetowego:
- Najlepsze narzędzia do testowania penetracji
- Najlepsze firmy zajmujące się testami penetracyjnymi
- Niektóre certyfikaty testów penetracyjnych:
- Wniosek
- rekomendowane lektury
Dlaczego wymagane są testy penetracyjne?
Kiedy mówimy o bezpieczeństwie, najczęściej słyszymy słowo Słaby punkt .
Kiedy zaczynałem pracować jako tester bezpieczeństwa, bardzo często mylono mnie z tym słowem Vulnerability i jestem pewien, że wielu z was, moi czytelnicy wpadliby w tę samą łódź.
Z korzyścią dla wszystkich moich czytelników najpierw wyjaśnię różnicę między testem podatności a testem za pomocą pióra.
Więc co jest Słaby punkt ? Luka to terminologia używana do identyfikacji błędów w systemie, które mogą narazić system na zagrożenia bezpieczeństwa.
Skanowanie podatności czy testowanie za pomocą pióra?
Skanowanie luk w zabezpieczeniach umożliwia użytkownikowi znalezienie znanych słabych punktów w aplikacji oraz definiuje metody naprawy i poprawy ogólnego bezpieczeństwa aplikacji. Po prostu dowiaduje się, czy są zainstalowane poprawki zabezpieczeń, czy systemy są odpowiednio skonfigurowane, aby utrudniać ataki.
Pen Tests symuluje głównie systemy czasu rzeczywistego i pomaga użytkownikowi dowiedzieć się, czy system jest dostępny dla nieautoryzowanych użytkowników, jeśli tak, to jakie szkody mogą być spowodowane i do jakich danych itp.
W związku z tym skanowanie podatności jest metodą kontroli wykrywającej, która sugeruje sposoby ulepszenia programu bezpieczeństwa i zapewnienia, że znane słabości nie zostaną ujawnione, podczas gdy test pióra jest prewencyjną metodą kontroli, która daje ogólny obraz istniejącej warstwy bezpieczeństwa systemu.
Chociaż obie metody mają swoje znaczenie, ale będzie to zależeć od tego, czego tak naprawdę oczekuje się w ramach testów.
Jako testerzy konieczne jest jasne określenie celu testowania, zanim przejdziemy do testowania. Jeśli masz jasność co do celu, możesz bardzo dobrze określić, czy musisz wykonać skanowanie podatności lub testowanie za pomocą pióra.
Znaczenie i potrzeba testowania aplikacji internetowych:
- Pentest pomaga w identyfikacji nieznanych luk w zabezpieczeniach.
- Pomaga w sprawdzaniu skuteczności ogólnych zasad bezpieczeństwa.
- Pomoc w testowaniu komponentów udostępnianych publicznie, takich jak zapory, routery i DNS.
- Pozwala użytkownikowi znaleźć najbardziej narażoną drogę, przez którą można przeprowadzić atak
- Pomaga w znalezieniu luk, które mogą prowadzić do kradzieży wrażliwych danych.
Jeśli spojrzeć na obecny popyt na rynku, można zauważyć gwałtowny wzrost wykorzystania telefonów komórkowych, który staje się głównym potencjałem ataków. Dostęp do witryn internetowych za pośrednictwem telefonów komórkowych jest podatny na częstsze ataki, a tym samym narażenie danych.
Testy penetracyjne stają się zatem bardzo ważne dla zapewnienia, że tworzymy bezpieczny system, z którego użytkownicy będą mogli korzystać bez obaw o włamanie lub utratę danych.
Metodologia testowania penetracji sieci
Metodologia to nic innego jak zestaw wytycznych branżowych dotyczących bezpieczeństwa, które określają, jak należy przeprowadzać testy. Istnieje kilka dobrze ugruntowanych i znanych metodologii i standardów, które można wykorzystać do testowania, ale ponieważ każda aplikacja internetowa wymaga wykonania innego rodzaju testów, testerzy mogą tworzyć własne metodologie, odwołując się do standardów dostępnych na rynku.
Niektóre z metodologii i standardów testowania bezpieczeństwa to:
- OWASP (Open Web Application Security Project)
- OSSTMM (Podręcznik metodologii testowania bezpieczeństwa oprogramowania typu open source)
- PTF (Framework testów penetracyjnych)
- ISSAF (Ramy oceny bezpieczeństwa systemów informatycznych)
- PCI DSS (Standard bezpieczeństwa danych w branży kart płatniczych)
Scenariusze testowe:
testy obciążeniowe vs testy wydajnościowe vs testy warunków skrajnych
Poniżej wymienione są niektóre scenariusze testów, które można przetestować w ramach Testy penetracyjne aplikacji internetowych (WAPT):
- Skrypty między witrynami
- Wstrzyknięcie SQL
- Uszkodzone uwierzytelnianie i zarządzanie sesją
- Błędy przesyłania plików
- Ataki na serwery buforujące
- Błędne konfiguracje zabezpieczeń
- Fałszerstwo żądań między lokacjami
- Łamanie haseł
Mimo że wspomniałem o liście, testerzy nie powinni ślepo tworzyć metodologii testów w oparciu o powyższe konwencjonalne standardy.
Oto plikprzykładaby udowodnić, dlaczego tak mówię.
Weź pod uwagę, że jesteś proszony o przetestowanie penetracji witryny eCommerce, a teraz zastanów się, czy wszystkie luki w witrynie eCommerce można zidentyfikować za pomocą konwencjonalnych metod OWASP, takich jak XSS, wstrzyknięcie SQL itp.
Odpowiedź brzmi nie, ponieważ eCommerce działa na zupełnie innej platformie i technologii w porównaniu z innymi witrynami internetowymi. Aby Twoje testowanie pióra dla witryny eCommerce było skuteczne, testerzy powinni zaprojektować metodologię obejmującą takie błędy, jak zarządzanie zamówieniami, zarządzanie kuponami i nagrodami, integracja bramki płatności i integracja systemu zarządzania treścią.
Dlatego zanim zdecydujesz się na metodologię, upewnij się, jakie typy witryn mają być testowane i która metoda pomoże w znalezieniu maksymalnych luk w zabezpieczeniach.
Rodzaje testów penetracyjnych sieci
Aplikacje internetowe można testować penetracyjnie na 2 sposoby. Testy można zaprojektować tak, aby symulowały atak wewnętrzny lub zewnętrzny.
# 1) Testy penetracji wewnętrznej -
Jak sama nazwa wskazuje, wewnętrzne testy pióra są przeprowadzane w organizacji za pośrednictwem sieci LAN, dlatego obejmują testowanie aplikacji internetowych hostowanych w intranecie.
Pomaga to w ustaleniu, czy w firmowej zaporze ogniowej mogą istnieć luki.
Zawsze uważamy, że ataki mogą mieć miejsce tylko zewnętrznie i często przeoczany jest wewnętrzny Pentest lub nie przywiązuje się go do niego zbytniej wagi.
Zasadniczo obejmuje to złośliwe ataki pracowników ze strony niezadowolonych pracowników lub kontrahentów, którzy zrezygnowaliby, ale byliby świadomi wewnętrznych zasad bezpieczeństwa i haseł, ataki socjotechniczne, symulacje ataków phishingowych i ataki przy użyciu uprawnień użytkownika lub niewłaściwego użycia odblokowanego terminala.
Testowanie odbywa się głównie poprzez dostęp do środowiska bez odpowiednich poświadczeń i identyfikację, czy plik
#dwa) Testy penetracji zewnętrznej -
Są to ataki przeprowadzane zewnętrznie spoza organizacji i obejmują testowanie aplikacji internetowych hostowanych w Internecie.
Testerzy zachowują się jak hakerzy, którzy nie są świadomi istnienia systemu wewnętrznego.
Aby zasymulować takie ataki, testerzy otrzymują adres IP docelowego systemu i nie otrzymują żadnych innych informacji. Są one zobowiązane do przeszukiwania i skanowania publicznych stron internetowych oraz znajdowania naszych informacji o docelowych hostach, a następnie włamania się do znalezionych hostów.
Zasadniczo obejmuje testowanie serwerów, zapór ogniowych i IDS.
Podejście do testowania za pomocą pióra internetowego:
Można go przeprowadzić w 3 fazach:
# 1) Faza planowania (przed testowaniem)
Przed rozpoczęciem testów warto zaplanować, jakie rodzaje testów będą wykonywane, w jaki sposób będą one wykonywane, określić, czy zapewnianie jakości wymaga dodatkowego dostępu do narzędzi itp.
- Definicji zakresu - To jest to samo, co nasze testy funkcjonalne, w których definiujemy zakres naszych testów przed rozpoczęciem testów.
- Dostępność dokumentacji dla testerów - Upewnij się, że Testerzy posiadają wszystkie wymagane dokumenty, takie jak dokumenty szczegółowo opisujące architekturę sieciową, punkty integracji, integrację usług internetowych itp. Tester powinien znać podstawy protokołu HTTP / HTTPS i wiedzieć o architekturze aplikacji sieci Web, sposobach przechwytywania ruchu.
- Określenie kryteriów sukcesu - W przeciwieństwie do naszych funkcjonalnych przypadków testowych, w których możemy uzyskać oczekiwane wyniki na podstawie wymagań użytkownika / wymagań funkcjonalnych, testy pióra działają na innym modelu. Kryteria sukcesu lub kryteria zaliczenia przypadku testowego muszą zostać zdefiniowane i zatwierdzone.
- Przeglądanie wyników testów z poprzednich testów - Jeśli kiedykolwiek przeprowadzono wcześniejsze testy, dobrze jest przejrzeć wyniki testów, aby zrozumieć, jakie luki istniały w przeszłości i jakie środki zaradcze podjęto, aby je usunąć. To zawsze daje lepszy obraz testerów.
- Zrozumieć środowisko - Testerzy powinni zdobyć wiedzę o środowisku przed rozpoczęciem testowania. Ten krok powinien pozwolić im zrozumieć zapory ogniowe lub inne protokoły bezpieczeństwa, które byłyby wymagane do wyłączenia w celu przeprowadzenia testów. Przeglądarkę, która ma być testowana, należy przekształcić w platformę atakującą, zwykle poprzez zmianę serwerów proxy.
# 2) Faza ataków / egzekucji (podczas testów):
Testy penetracji sieci Web można przeprowadzić z dowolnego miejsca, biorąc pod uwagę fakt, że dostawca Internetu nie powinien ograniczać portów i usług.
- Upewnij się, że uruchomisz test z różnymi rolami użytkownika - Testerzy powinni zapewnić uruchamianie testów z użytkownikami pełniącymi różne role, ponieważ system może zachowywać się inaczej w odniesieniu do użytkowników mających różne uprawnienia.
- Świadomość tego, jak postępować po wyeksploatowaniu - Testerzy muszą przestrzegać Kryteriów sukcesu określonych w Fazie 1, aby zgłaszać wszelkie exploity, a także powinni postępować zgodnie z określonym procesem zgłaszania luk w zabezpieczeniach wykrytych podczas testów. Ten krok wymaga głównie od testera ustalenia, co należy zrobić po stwierdzeniu, że system został naruszony.
- Generowanie raportów z testów - Jakiekolwiek testy wykonane bez odpowiedniego raportowania niewiele pomagają organizacji, tak samo jest w przypadku testów penetracyjnych aplikacji internetowych. Aby upewnić się, że wyniki testów są właściwie udostępniane wszystkim zainteresowanym stronom, testerzy powinni tworzyć odpowiednie raporty zawierające szczegółowe informacje na temat znalezionych luk w zabezpieczeniach, metodologii zastosowanej do testowania, wagi i lokalizacji znalezionego problemu.
# 3) Faza po wykonaniu (po przetestowaniu):
Po zakończeniu testów i udostępnieniu raportów z testów wszystkim zainteresowanym zespołom, wszyscy powinni opracować poniższą listę:
- Zaproponuj środki zaradcze - Testy penetracyjne nie powinny kończyć się tylko na identyfikacji luk w zabezpieczeniach. Zainteresowany zespół, w tym członek QA, powinien przejrzeć wyniki zgłoszone przez Testerów, a następnie omówić środki zaradcze.
- Ponownie przetestuj luki w zabezpieczeniach - Po podjęciu i wdrożeniu środków zaradczych testerzy powinni ponownie przeprowadzić testy, aby upewnić się, że naprawione luki nie pojawiły się w ramach ich ponownego testowania.
- Sprzątać - W ramach Pentestu testerzy wprowadzają zmiany w ustawieniach proxy, więc należy je wyczyścić, a wszystkie zmiany cofnąć.
Najlepsze narzędzia do testowania penetracji
Ponieważ przeczytałeś już cały artykuł, uważam, że teraz masz znacznie lepszy pomysł na to, co i jak możemy przetestować penetrację aplikacji internetowej.
Więc powiedz mi, czy możemy ręcznie przeprowadzić testy penetracyjne, czy też zawsze dzieje się to poprzez automatyzację za pomocą narzędzia. Bez wątpienia myślę, że większość z was mówi o automatyzacji. :)
To prawda, ponieważ automatyzacja przyspiesza, pozwala uniknąć ręcznych błędów ludzkich, zapewnia doskonałe pokrycie i kilka innych korzyści, ale jeśli chodzi o test penetracyjny, wymaga od nas wykonania pewnych testów ręcznych.
Testowanie ręczne pomaga w znajdowaniu luk w zabezpieczeniach związanych z logiką biznesową, zmniejszając liczbę fałszywych alarmów.
Narzędzia mogą dawać wiele fałszywych alarmów, dlatego wymagana jest ręczna interwencja w celu ustalenia, czy są to rzeczywiste luki.
Przeczytaj także - Jak przetestować bezpieczeństwo aplikacji sieci Web za pomocą narzędzia Acunetix Web Vulnerability Scanner (WVS)
Tworzymy narzędzia, aby zautomatyzować nasze działania testowe. Poniżej znajduje się lista niektórych narzędzi, których można użyć w Pentest:
- Darmowe narzędzie do testu pióra
- Veracode
- Vega
- Apartament Burp
- NetSparker
- Arachni
- Acunetix
- ZASTRZELIĆ
Aby uzyskać więcej narzędzi, możesz również polecić - 37 Potężnych narzędzi do testowania penetracji dla każdego testera penetracyjnego
Najlepsze firmy zajmujące się testami penetracyjnymi
Dostawcy usług to firmy świadczące usługi na potrzeby testowania organizacji. Zwykle wyróżniają się i mają doświadczenie w różnych obszarach testowania oraz mogą przeprowadzać testy w swoim hostowanym środowisku testowym.
Poniżej wymieniono niektóre z wiodących firm, które świadczą usługi testów penetracyjnych:
- PSC (Zgodność z bezpieczeństwem płatności)
- Netragard
- Securestate
- Palenisko węglowe
- HIGHBIT Bezpieczeństwo
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | Rozdz
- Ocena bezpieczeństwa
- Systemy Audytu Bezpieczeństwa
- Hacklabs
- CQR
Niektóre certyfikaty testów penetracyjnych:
Jeśli chcesz uzyskać certyfikat dotyczący certyfikacji w zakresie penetracji aplikacji internetowych, możesz wybrać poniższe certyfikaty:
- OSWE (Offensive Security Web Expert)
- GWAPT (Tester penetracji aplikacji internetowych GIAC)
- CWAPT (Certyfikowany tester penetracji aplikacji internetowych)
- eWPT (elearnSecurity Web Application Penetration Tester)
Wniosek
W tym samouczku przedstawiliśmy przegląd sposobu przeprowadzania testów penetracyjnych dla aplikacji internetowych.
Jaka jest różnica między C ++ i Java
Mając te informacje, tester penetracji może rozpocząć testy podatności.
W idealnym przypadku testy penetracyjne mogą pomóc nam w tworzeniu bezpiecznego oprogramowania. Jest to kosztowna metoda, więc częstotliwość można utrzymywać jak raz w roku.
Aby dowiedzieć się więcej o testach penetracyjnych, przeczytaj poniższe powiązane artykuły:
- Podejście do testowania bezpieczeństwa aplikacji internetowych
- Testy penetracyjne - kompletny przewodnik z przykładowymi przypadkami testowymi
- Jak testować bezpieczeństwo aplikacji - techniki testowania bezpieczeństwa aplikacji internetowych i komputerowych
Podziel się swoimi poglądami lub doświadczeniami na temat Pentestu poniżej.
rekomendowane lektury
- Podręcznik testowania zabezpieczeń aplikacji internetowych
- Testowanie bezpieczeństwa sieci i najlepsze narzędzia bezpieczeństwa sieci
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Testy alfa i testy beta (kompletny przewodnik)
- Testowanie bezpieczeństwa (kompletny przewodnik)
- Kompletny przewodnik po testach penetracyjnych z przykładowymi przypadkami testowymi
- Narzędzia i dostawcy usług do testowania penetracji aplikacji mobilnych
- Różnica między testami na komputerach stacjonarnych, serwerach klienckich i testach internetowych