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?
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:
-
Zaloguj się do aplikacji przez proxy
Utwórz "listę przebojów" głównych obszarów funkcjonalnych aplikacji i wykonaj każdy raz.
Użyj narzędzia "pająk" w długopisie-test aplikacja, aby znaleźć wszystkie strony i akcje i programy obsługi w aplikacji.
-
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
-
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.
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...
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
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
McAfee Secure nie jest rozwiązaniem. Usługa, którą świadczą, to żart.
Patrz poniżej:
Http://blogs.zdnet.com/security/?p=1092&tag=rbxccnbzd1
http://blogs.zdnet.com/security/?p=1068&tag=rbxccnbzd1
http://blogs.zdnet.com/security/?p=1114&tag=rbxccnbzd1
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. ;)
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
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ę.
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.
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 ?
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).
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).
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...
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
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