Web Fuzzing i WebAii

2,792 views
2,723 views

Published on

Prezentacja z wewnętrznego spotkania Empathy - Internet Software House nt. web fuzzingu oraz WebAii.

Zapraszamy na blog Empathy www.imagineblog.pl

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,792
On SlideShare
0
From Embeds
0
Number of Embeds
399
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Web Fuzzing i WebAii

  1. 1. Automatyzacja testowania:Web fuzzing&<br />WebAii<br />Beata Frączek<br />
  2. 2. O czym powiem:<br />Web Fuzzing<br />Co to fuzzing?<br />Fuzzing a bezpieczeństwo<br />Jak się ma do aplikacji webowych?<br />Za i przeciw<br />Narzędzia (aplikacje i frameworki)<br />WebAii<br />Co to i do czego służy?<br />Głównie zalety (i wady)<br />Demo<br />
  3. 3. Webfuzzing ?<br />ATAK? ZABAWKA HACKERA?<br />TESTOWANIE PRZYSZŁOŚCI?<br />
  4. 4. WebfuzzingCo to fuzzing?<br />Metoda testowania oprogramowania<br />Luki w bezpieczeństwie<br />Losowe dane <br />Jakie? – najlepiej wadliwe (bazy payload-ów)<br />Co zrobi aplikacja?<br />Zaakceptuje i zachowa się nieprzewidzianie <br />Cieszy się tester - nie cieszy się programista<br />Odrzuci i zachowa się według planu<br />Cieszy się tester – cieszy się programista<br />Proces w pełni automatyczny<br />Nie stanowi standardowej metody testowania!<br />
  5. 5. WebfuzzingCo to fuzzing?<br />
  6. 6. FuzzingJak się ma do aplikacji webowych?<br />Fuzzing – technika, Fuzzer – aplikacja <br />Działaniu fuzzera można poddawać:<br />Aplikacje działające lokalnie<br />Aplikacje sieciowe<br />Aplikacje webowe !<br />Kontrolki ActiveX<br />Biblioteki współdzielone<br />Pliki<br />...<br />
  7. 7. WebfuzzingProces fuzzingu aplikacji webowej<br />
  8. 8. WebfuzzingBłędy aplikacji webowych<br />Istnienie niebezpieczne<br />Ryzyko wystąpienia wysokie <br />Cross-site Scripting (XSS)<br />Cross-site Request Forgery (CSRF)<br />Injection bugs (Code Injection, SQL Injection, LDAP Injection, XPath Injection, SMTP Injection …)<br />Wyciek danych oraz zła obsługa błędów<br />Niepoprawne zarządzanie sesją (Session Fixation, Session Poisoning itd.)<br />Path Traversal<br />Błędy autoryzacji i uwierzytelnienia<br />Błędy logiczne? Błędy kombinowane?<br />
  9. 9. Webfuzzing Straty:<br />Utrata Danych<br />Podmiana Danych<br />Zniszczony wizerunek<br />Straty finansowe<br />
  10. 10. Webfuzzing Straty:<br />Garbage in – garbage out<br />Brak mechanizmu walidacji danych<br />Brak mechanizmów badających tolerancje na nieprawidłowe dane<br /> Fuzzer<br />
  11. 11. FuzzingAplikacje i Frameworki<br />Aplikacje:<br />Powerfuzzer<br />Wapiti<br />WFuzz<br />Rfuzz<br />Frameworki:<br />Spike (typy danych i struktury bloków, funkcje sieciowe)<br />Rfuzz (Ruby)<br />Język – dowolny. Polecane: Python, Ruby, Java<br />
  12. 12. do tworzenia oprogramowania testującego inne aplikacje pod kątem błędów bezpieczeństwa<br />prostota <br />przejrzystość kodu źródłowego, <br />ogromnych możliwości manipulowania ciągami tekstowymi.<br />mniej skomplikowanym niż C/C++,<br />napisanie w pełni funkcjonalnego <br /> programu zajmuje mniej czasu. <br />Minus: skryptowa natura Pythona<br />for w PHP wygląda znajomo: <br />&lt;?PHP <br />for($i=1;$i &lt;=5;$i++) <br />{<br />print $i.&apos;&lt;br /&gt;&apos;; <br />}<br />?&gt; <br />W Pythonie mniej<br />for i in range(1,6): <br />print i <br />
  13. 13. FuzzingFuzzery napisane w Pythonie<br />Peach– wieloplatformowy framework, którego głównymi cechami są duże możliwości oraz prostota użycia<br />Taof– fuzzer wyspecjalizowany w testowaniu protokołów sieciowych. Posiada rozbudowane GUI (Linux, Windows)<br />SMUDGE– fuzzer wyłącznie protokołów sieciowych. <br />FileP– program do generowania zmodyfikowanych plików na podstawie określonego wzorca i wysyłania ich do (testowanej) aplikacji.<br />Antiparser– prosty framework<br />
  14. 14. Składniki frameworku Peach<br />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.<br />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<br />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).<br />Group– grupy powiązane są z generatorami. Za ich pomocą możemy tworzyć schematy pracy generatorów i uzyskać nad nimi pełną kontrolę.<br />
  15. 15. Autorski Fuzzer?Udowodnij programiście błąd :]<br />Bloki funkcjonalne odpowiedzialne za:<br />nawiązywanie połączeń, wysyłanie,<br />odbieranie oraz kodowanie danych <br />generowanie danych wysyłanych do aplikacji.<br />identyfikację punktów wejściowych<br />wykrywanie błędów.<br />agregowanie wyników działania fuzzera.<br />Każdy blok ma identyczny priorytet <br />Jest integralną częścią fuzzera. <br />
  16. 16. Wady i zalety fuzzingu:<br />Zalety:<br />Pełna automatyzacja testu!<br />Błędy trudne do identyfikacji za pomocą manualnych testów<br />Możliwość szybkiego znalezienia błędu<br />Wady:<br />Błędy logiczne<br />Niejednolitość testów - wykorzystanie losowości <br />Pojedynczy test jest trudny do powtórzenia <br />Brak możliwości określenia dokładnego czasu potrzebnego na wykonanie testu -&gt; dynamicznie zmieniający się zbiór wartości testowych<br />
  17. 17. WebAii™ Automation Framework<br />Darmowa biblioteka .NET, .NET framework 3.5<br />Automatyzacja testów funkcjonalnych aplikacji internetowych<br />Można zastosować do testów wydajnościowych (performance)<br />Wsparcie dla ASP .NET<br />Zawiera przykłady w C# i VB .NET<br />
  18. 18. WebAii™ Automation Framework<br />Biblioteka dedykowana do testów aplikacji Web 2.0<br />Rich Internet Applications (RIA)<br />AJAX<br />ASP .NET<br />Obsługa ramek<br />Obsługa okien dialogowych i pop-upów<br />Pełen dostęp do struktury DOM<br />
  19. 19. WebAii™ Automation Framework<br />zdolność testowania .NET<br />testowanie AJAX i Java Script<br />rozpoznawania różnych elementów stron www<br />testowanie Silverlighta<br />
  20. 20. WebAii™ Automation Framework<br />Przeglądarki:<br />Wspólne API dla Internet Explorer 6 i 7, Firefox 2 i 3<br />konfiguracja przeglądarek<br />Środowisko:<br />NUnitlubVisual Studio Team System<br />.NET framework 3.5, Visual Studio C# Express 2008<br />Primary Interop Assemblies (PIA)<br />Firebug, Internet Explore Developer Toolbar<br />
  21. 21. WebAii™ Automation Framework<br />
  22. 22.
  23. 23. Źródła:<br />www.fuzzing.eu<br />www.fuzzing.org<br />Hakin9 09.05.2008<br />http://www.securitum.pl/<br />

×