Narzędzia do testów penetracyjnych [zamknięte]

Mamy setki stron internetowych, które zostały opracowane w asp,. net i java i płacimy dużo pieniędzy za zewnętrzną agencję, aby zrobić testy penetracyjne dla naszych stron w celu sprawdzenia luk w bezpieczeństwie. Czy istnieje jakieś (dobre) oprogramowanie (płatne lub Bezpłatne), aby to zrobić?

Lub.. czy są jakieś artykuły techniczne, które mogą pomóc mi rozwinąć to narzędzie?

Author: Rap, 2008-09-16

13 answers

Istnieje kilka różnych kierunków, w których możesz iść za pomocą automatycznych narzędzi do testowania aplikacji internetowych.

Po pierwsze, istnieją komercyjne Skanery internetowe , z których dwa najpopularniejsze to HP WebInspect i Rational AppScan. Są to narzędzia" all-in-one"," fire-and-forget", które można pobrać i zainstalować na wewnętrznym pulpicie systemu Windows, a następnie podać adres URL do pająka witryny, skanować w poszukiwaniu znanych luk (tj. luki w skryptach i SQL injection.

Po drugie, istnieją narzędzia do skanowania kodu źródłowego , z których Coverity i Fortify są prawdopodobnie dwoma najbardziej znanymi. Są to narzędzia instalowane na pulpicie programisty, aby przetwarzać kod źródłowy Java lub C# i szukać dobrze znanych wzorców niezabezpieczonego kodu, takich jak słaba walidacja danych wejściowych.

Wreszcie, są narzędzia do testów penetracyjnych . Zdecydowanie najpopularniejsze narzędzie do testowania penetracji aplikacji internetowych wśród zabezpieczeń professionals to pakiet Burp Suite, który znajdziesz na http://www.portswigger.net/proxy . Inne to Spike Proxy i OWASP WebScarab. Ponownie zainstalujesz go na wewnętrznym pulpicie systemu Windows. Będzie działać jako serwer proxy HTTP, a Ty skierujesz na niego przeglądarkę. Będziesz używać aplikacji tak, jak zwykły użytkownik, podczas gdy rejestruje Twoje działania. Następnie możesz wrócić do każdej pojedynczej strony lub akcji HTTP i zbadać ją pod kątem problemów z bezpieczeństwem.

W złożonym środowisku, oraz szczególnie, jeśli rozważasz cokolwiek DIY, zdecydowanie polecam narzędzia do testów penetracyjnych . Oto dlaczego:

Komercyjne Skanery internetowe zapewniają dużo "szerokości", wraz z doskonałym raportowaniem. Jednakże:

  • Mają tendencję do przeoczenia rzeczy, ponieważ każda aplikacja jest inna.

  • Są drogie (WebInspect zaczyna się w dziesiątkach tysięcy).

  • Płacisz za rzeczy, których nie potrzebujesz (np. bazy znanych złych CGIs od lat 90.

  • Trudno je dostosować.

  • Mogą generować hałaśliwe rezultaty.

Skanery kodu źródłowego są bardziej dokładne niż Skanery internetowe. Jednakże:

  • Są nawet droższe od skanerów internetowych.

  • Do działania wymagają kodu źródłowego.

  • Aby były skuteczne, często wymagają od Ciebie adnotacji kodu źródłowego (na przykład, aby wybrać Dane wejściowe pathways).

  • Mają tendencję do generowania fałszywych alarmów.

Zarówno komercyjne Skanery, jak i skanery kodu źródłowego mają zły nawyk stania się oprogramowaniem półkowym. Co gorsza, nawet jeśli działają, ich koszt jest porównywalny z uzyskaniem 1 lub 2 całych aplikacji skontrolowanych przez konsultanta; jeśli ufasz swoim konsultantom, masz gwarancję uzyskania lepszych wyników z nich niż z narzędzi.

Narzędzia do testów penetracyjnych mają wady też:

  • Są znacznie trudniejsze w użyciu niż komercyjne Skanery.

  • Zakładają pewną wiedzę w zakresie luk w aplikacjach internetowych - - - musisz wiedzieć, czego szukasz.

  • Sporządzają one niewielkie lub żadne formalne sprawozdania.

Z drugiej strony:

  • Są dużo, dużo tańsze - - - the best of the lot, Burp Suite, kosztuje tylko 99EU, i ma darmową wersję.

  • Są łatwe dostosowywanie i dodawanie do procesu testowania.

  • Znacznie lepiej pomagają Ci "poznać" aplikacje od środka.

Oto coś, co można zrobić z narzędziem pen-test dla podstawowej aplikacji internetowej:

  1. Zaloguj się do aplikacji przez proxy

  2. Utwórz "listę przebojów" głównych obszarów funkcjonalnych aplikacji i wykonaj każdy raz.

  3. Użyj narzędzia "pająk" w długopisie-test aplikacja, aby znaleźć wszystkie strony i akcje i programy obsługi w aplikacji.

  4. Dla każdej dynamicznej strony i każdej postaci HTML, którą odkrywa pająk, użyj narzędzia" fuzzer "(Burp nazywa to "intruzem"), aby wykonać każdy parametr z nieprawidłowymi wejściami. Większość fuzzerów ma podstawowe ciągi testowe, które obejmują:

    • Metacharaktery SQL

    • Html / Javascript escapes and metacharacters

    • Umiędzynarodowionych wariantów tych, aby uniknąć filtry wejściowe

    • Dobrze znane domyślne nazwy pól formularza i wartości

    • Znane nazwy katalogów, nazw plików i czasowników obsługi

  5. Poświęć kilka godzin na filtrowanie wynikowych błędów (typowe uruchomienie fuzz dla jednego formularza może wygenerować 1000 z nich) w poszukiwaniu podejrzanych odpowiedzi.

Jest to pracochłonne, "bare-metal" podejście. Ale kiedy Twoja firma posiada rzeczywiste aplikacje, podejście bare-metal opłaca się, ponieważ można go używać do tworzenia zestawów testów regresyjnych, które będą działać jak w zegarku w każdym cyklu deweloperskim dla każdej aplikacji. To jest wygrana z kilku powodów:

  • Testowanie zabezpieczeń zajmie przewidywalną ilość czasu i zasobów na aplikację, co pozwala na budżet i ocenę.

  • Twój zespół otrzyma maksymalnie dokładne i dokładne wyniki, ponieważ testy zostaną dostosowane do Twoich aplikacji.

  • Będzie kosztuje mniej niż Skanery komercyjne i mniej niż konsultanci.

Oczywiście, jeśli pójdziesz tą drogą, w zasadzie zmienisz się w konsultanta ds. bezpieczeństwa dla swojej firmy. Nie sądzę, że to zła rzecz; jeśli nie chcesz tej wiedzy, WebInspect lub Fortify i tak Ci nie pomoże.

 64
Author: tqbf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 16:56:22

Wiem, że pytałeś konkretnie o narzędzia do pentestingu, ale ponieważ odpowiedzi na nie były wyczerpujące (zwykle wybieram kombinację AppScan i wyszkolonego pentestera), myślę, że ważne jest, aby podkreślić, że pentesting nie jest jedynym sposobem na "sprawdzenie luk w zabezpieczeniach" i często nie jest najskuteczniejszym .

Narzędzia do przeglądania kodu źródłowego mogą zapewnić Ci znacznie lepszy wgląd w twoją bazę kodową i znaleźć wiele wad, których pentesting nie zrobi.

Należą do nich Fortify i OunceLabs (drogie i dla wielu języków), VisualStudio.NET CodeAnalysis (dla. NET i C++, DARMOWE z VSTS, przyzwoite, ale nie świetne), OWASP ' s LAPSE dla Javy (free, decent not great), CheckMarx (nie tanie, fantastyczne narzędzie dla. NET i Javy, ale wysokie koszty), i wiele innych.

Ważna uwaga - (większość) zautomatyzowane narzędzia nie znajdują wszystkich luk, nawet blisko. Można się spodziewać, że zautomatyzowane narzędzia znajdą około 35-40% secbugów, które zostanie znaleziony przez profesjonalnego pentestera; to samo dotyczy automatycznego vs. ręcznego przeglądu kodu źródłowego.

I oczywiście odpowiedni SDLC( Security Development Lifecycle), w tym modelowanie zagrożeń, Przegląd projektu itp., Pomoże jeszcze bardziej...

 4
Author: AviD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 17:13:16

You could consider chorizo

 2
Author: Marc Gear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 13:31:13
 2
Author: woany,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 11:40:14

Słyszałem dobre rzeczy o SpiDynamics WebInspect, jeśli chodzi o płatne rozwiązania, a także Nikto (dla darmowego rozwiązania) i inne narzędzia open source. Nessus jest doskonałym narzędziem dla infrastruktury w przypadku, gdy trzeba sprawdzić również tę warstwę. Możesz wybrać live cd z kilkoma narzędziami o nazwie Nubuntu (Auditor, Helix lub inna dystrybucja oparta na zabezpieczeniach też działa), a następnie wygooglować kilka samouczków dla konkretnego narzędzia. Zawsze, zawsze upewnij się, że skanujesz z sieci lokalnej chociaż. Istnieje ryzyko zablokowania się przez Centrum Danych, jeśli skanujesz skrzynkę z sieci WAN bez autoryzacji. Lekcja z trudem się nauczyła. ;)

 1
Author: willasaywhat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 13:41:28

Skipfish, W3af, arachni, ratproxy, ZAP, WebScarab : wszystko za darmo i bardzo dobre IMO

 1
Author: lisa1987,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-04 08:46:29

Http://www.nessus.org/nessus / -- Nessus pomoże w ulepszeniu Twoich serwerów. To naprawdę nie może testować niestandardowych aplikacji samodzielnie, choć myślę, że wtyczki są stosunkowo łatwe do tworzenia na własną rękę.

 0
Author: Steve g,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 13:45:56

W tej chwili możesz przypisać do domeny hosting, wybierając usługę dostosowaną do Twoich potrzeb: Jego nie jest darmowy, ale ma ładny interfejs użytkownika, jest martwy potężny, generuje raporty (na zamówienie i zgodnie ze standardowymi frameworkami zgodności, takimi jak Basel2) i wierzę, że możesz go skryptować w swoim CI build.

 0
Author: Andrew Harmel-Law,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 13:47:22

A może nikto ?

 0
Author: mhd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-18 09:58:05

Dla tego typu testów naprawdę chcesz być patrząc na jakiś rodzaj testera fuzz. SPIKE Proxy jest jednym z kilku testerów fuzz dla aplikacji internetowych. Jest open source i napisany w Pythonie. Wierzę, że jest kilka filmów z BlackHat lub DefCON na temat używania SPIKE ' a, ale mam trudności z ich zlokalizowaniem.

Istnieje kilka wysokiej klasy profesjonalnych pakietów oprogramowania, które przeprowadzą testy aplikacji internetowych i wiele więcej. Jedno z bardziej popularnych narzędzi będzie CoreImpact

Jeśli planujesz samodzielnie przeprowadzić testy piórowe, Gorąco polecam zapoznanie się z dokumentacją projektu OWASP. W szczególności Przewodniki weryfikacji i testowania/rozwoju zabezpieczeń aplikacji OWASP. Sposób myślenia, którego potrzebujesz, aby dokładnie przetestować aplikację, jest nieco inny niż normalny sposób myślenia programistycznego (nie to, że powinien być inny, ale zazwyczaj tak jest).

 0
Author: marco0009,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-18 08:47:58

A co z rat proxy ?

Półautomatyczny, w dużej mierze pasywny web narzędzie audytu bezpieczeństwa aplikacji, zoptymalizowany pod kątem dokładności i czułe wykrywanie i automatyczne adnotacji, o potencjalnych problemach i wzorce projektowe istotne dla bezpieczeństwa na podstawie obserwacji istniejących, ruch inicjowany przez użytkownika w złożonej sieci 2.0 środowisko.

Wykrywa i priorytetyzuje szerokie klasy problemów związanych z bezpieczeństwem, takich jak dynamiczne cross-site trust model rozważania, problemy z włączeniem skryptu, treść problemy z obsługą, niewystarczające XSRF i obrony XSS, i wiele więcej

Obecnie uważa się, że Ratproxy obsługuje środowiska Linux, FreeBSD, MacOS X i Windows (Cygwin).
 0
Author: Justin Lawrence,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-27 08:20:19

Wiem, że pytałeś konkretnie o narzędzia do pentestingu, ale ponieważ odpowiedzi na nie były wyczerpujące (zazwyczaj korzystam z połączenia AppScan i wyszkolonego pentestera), myślę, że ważne jest, aby podkreślić, że pentesting nie jest jedynym sposobem na "sprawdzenie luk w zabezpieczeniach" i często nie jest najbardziej skuteczny.

Narzędzia do przeglądania kodu źródłowego mogą zapewnić Ci znacznie lepszy wgląd w twoją bazę kodową i znaleźć wiele wad, których pentesting nie zrobi.

Należą do nich Fortify i OunceLabs (drogie i dla wielu języków), VisualStudio.NET CodeAnalysis (dla. NET i C++, DARMOWE z VSTS, przyzwoite, ale nie świetne), OWASP ' s LAPSE dla Javy (free, decent not great), CheckMarx (nie tanie, fantastyczne narzędzie dla. NET i Javy, ale wysokie koszty), i wiele innych.

Ważna uwaga - (większość) zautomatyzowane narzędzia nie znajdują wszystkich luk, nawet blisko. Można się spodziewać, że zautomatyzowane narzędzia znajdą około 35-40% secbugs, które zostaną znalezione przez profesjonalny pentester; to samo dotyczy automatycznego vs. ręcznego przeglądu kodu źródłowego.

I oczywiście odpowiedni SDLC( Security Development Lifecycle), w tym modelowanie zagrożeń, Przegląd projektu itp., Pomoże jeszcze bardziej...

 0
Author: user419175,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-13 04:59:00
 -2
Author: Greg Ogle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 17:50:17