web fuzzing i webaii

23
testowania: Web fuzzing & Beata Frączek WebAii

Upload: empathy-interactive

Post on 26-Jun-2015

2.640 views

Category:

Technology


1 download

DESCRIPTION

Prezentacja z wewnętrznego spotkania Empathy - Internet Software House nt. web fuzzingu oraz WebAii.Zapraszamy na blog Empathy www.imagineblog.pl

TRANSCRIPT

Page 1: Web Fuzzing i WebAii

Automatyzacja testowania:

Web fuzzing &

Beata Frączek

WebAii

Page 2: Web Fuzzing i WebAii

O czym powiem:• Web Fuzzing

o Co to fuzzing?o Fuzzing a bezpieczeństwoo Jak się ma do aplikacji webowych?o Za i przeciwo Narzędzia (aplikacje i frameworki)

• WebAiio Co to i do czego służy?o Głównie zalety (i wady)o Demo

Page 3: Web Fuzzing i WebAii

Webfuzzing ?ATAK? ZABAWKA HACKERA?TESTOWANIE

PRZYSZŁOŚCI?

Page 4: Web Fuzzing i WebAii

WebfuzzingCo to fuzzing?

• Metoda testowania oprogramowania• Luki w bezpieczeństwie• Losowe dane

o Jakie? – najlepiej wadliwe (bazy payload-ów)o Co zrobi aplikacja?

Zaakceptuje i zachowa się nieprzewidzianie Cieszy się tester - nie cieszy się programista

Odrzuci i zachowa się według planuCieszy się tester – cieszy się programista

• Proces w pełni automatyczny• Nie stanowi standardowej metody testowania!

Page 5: Web Fuzzing i WebAii

WebfuzzingCo to fuzzing?

Webfuzzin

g

Testy automatyczne

Testy automatyczne GrayBox

BlackBox

Page 6: Web Fuzzing i WebAii

FuzzingJak się ma do aplikacji webowych?

Fuzzing – technika, Fuzzer – aplikacja

Działaniu fuzzera można poddawać:• Aplikacje działające lokalnie• Aplikacje sieciowe

• Aplikacje webowe !• Kontrolki ActiveX• Biblioteki współdzielone• Pliki• ...

Page 7: Web Fuzzing i WebAii

WebfuzzingProces fuzzingu aplikacji webowej

Wykrycie potencjalnych

punktów wejściowych

Wygenerowanie i

przekazanie danych do programu

Raportowanie

Monitorowanie

Page 8: Web Fuzzing i WebAii

WebfuzzingBłędy aplikacji webowych

Istnienie niebezpieczneRyzyko wystąpienia wysokie

• Cross-site Scripting (XSS)• Cross-site Request Forgery (CSRF)• Injection bugs (Code Injection, SQL Injection, LDAP Injection,

XPath Injection, SMTP Injection …)• Wyciek danych oraz zła obsługa błędów• Niepoprawne zarządzanie sesją (Session Fixation, Session

Poisoning itd.)• Path Traversal• Błędy autoryzacji i uwierzytelnienia

• Błędy logiczne? Błędy kombinowane?

Page 9: Web Fuzzing i WebAii

Webfuzzing Straty:

• Utrata Danych• Podmiana Danych• Zniszczony wizerunek• Straty finansowe

Page 10: Web Fuzzing i WebAii

Webfuzzing Straty:

Garbage in – garbage out

• Brak mechanizmu walidacji danych

• Brak mechanizmów badających tolerancje na nieprawidłowe dane

Fuzzer

Page 11: Web Fuzzing i WebAii

FuzzingAplikacje i Frameworki

• Aplikacje:o Powerfuzzero Wapitio WFuzzo Rfuzz

• Frameworki:o Spike (typy danych

i struktury bloków, funkcje sieciowe)

o Rfuzz (Ruby)

o Język – dowolny. Polecane: Python, Ruby, Java

Page 12: Web Fuzzing i WebAii

• do tworzenia oprogramowania testującego inne aplikacje pod kątem błędów bezpieczeństwa

• prostota • przejrzystość kodu źródłowego, • ogromnych możliwości manipulowania ciągami

tekstowymi.• mniej skomplikowanym niż C/C++,• napisanie w pełni funkcjonalnego programu zajmuje mniej czasu. • Minus: skryptowa natura Pythona

for w PHP wygląda znajomo: <?PHP for($i=1;$i <=5;$i++) {print $i.'<br />'; }?>

W Pythonie mniejfor i in range(1,6): print i

Page 13: Web Fuzzing i WebAii

FuzzingFuzzery napisane w Pythonie

• Peach – wieloplatformowy framework, którego głównymi cechami są duże możliwości oraz prostota użycia

• Taof – fuzzer wyspecjalizowany w testowaniu protokołów sieciowych. Posiada rozbudowane GUI (Linux, Windows)

• SMUDGE – fuzzer wyłącznie protokołów sieciowych. • FileP – program do generowania zmodyfikowanych

plików na podstawie określonego wzorca i wysyłania ich do (testowanej) aplikacji.

• Antiparser – prosty framework

Page 14: Web Fuzzing i WebAii

Składniki frameworku

Peach • Generators – służą do generowania różnego rodzaju

danych. Możemy używać także takich danych jak – złych adresów IP, nieprawidłowych łańcuchów tekstowych czy nieodpowiednich nazw plików.

• Publishers – jest to zbiór miejsc docelowych, do których będą wysyłane generowane dane. Peach pozwala nam wysyłać dane do standardowego wyjścia, plików, połączeń ODBC, TCP i UDP oraz sesji FTP

• Transformers – pozwalają zmieniać dane według określonego wzorca. Obsługiwane są m. in. kodowanie bzip2, gzip, algorytmy MD5 oraz SHA1, a także zmiana kodowania (UTF8, UTF16, URL).

• Group – grupy powiązane są z generatorami. Za ich pomocą możemy tworzyć schematy pracy generatorów i uzyskać nad nimi pełną kontrolę.

Page 15: Web Fuzzing i WebAii

Autorski Fuzzer?Udowodnij programiście błąd :]

Bloki funkcjonalne odpowiedzialne za:

• nawiązywanie połączeń, wysyłanie, odbieranie oraz kodowanie danych • generowanie danych wysyłanych do aplikacji.• identyfikację punktów wejściowych• wykrywanie błędów.• agregowanie wyników działania fuzzera.

Każdy blok ma identyczny priorytet Jest integralną częścią fuzzera.

Page 16: Web Fuzzing i WebAii

Wady i zalety fuzzingu:• Zalety:• Pełna automatyzacja testu!• Błędy trudne do identyfikacji za pomocą manualnych

testów• Możliwość szybkiego znalezienia błędu• Wady:• Błędy logiczne• Niejednolitość testów - wykorzystanie losowości • Pojedynczy test jest trudny do powtórzenia • Brak możliwości określenia dokładnego czasu

potrzebnego na wykonanie testu -> dynamicznie zmieniający się zbiór wartości testowych

Page 17: Web Fuzzing i WebAii

WebAii™ Automation Framework

• Darmowa biblioteka .NET, .NET framework 3.5• Automatyzacja testów funkcjonalnych aplikacji

internetowych• Można zastosować do testów wydajnościowych

(performance)• Wsparcie dla ASP .NET• Zawiera przykłady w C# i VB .NET

Page 18: Web Fuzzing i WebAii

WebAii™ Automation Framework

Biblioteka dedykowana do testów aplikacji Web 2.0• Rich Internet Applications (RIA)• AJAX• ASP .NET• Obsługa ramek• Obsługa okien dialogowych i pop-upów• Pełen dostęp do struktury DOM

Page 19: Web Fuzzing i WebAii

WebAii™ Automation Framework

• zdolność testowania .NET• testowanie AJAX i Java Script• rozpoznawania różnych elementów stron www• testowanie Silverlighta

Page 20: Web Fuzzing i WebAii

WebAii™ Automation Framework

Przeglądarki:• Wspólne API dla Internet Explorer 6 i 7, Firefox 2 i

3• konfiguracja przeglądarekŚrodowisko:• NUnit lub Visual Studio Team System• .NET framework 3.5, Visual Studio C# Express

2008• Primary Interop Assemblies (PIA)• Firebug, Internet Explore Developer Toolbar

Page 21: Web Fuzzing i WebAii

WebAii™ Automation Framework

Page 22: Web Fuzzing i WebAii
Page 23: Web Fuzzing i WebAii

Źródła:• www.fuzzing.eu• www.fuzzing.org• Hakin9 09.05.2008• http://www.securitum.pl/