Bezpieczeństwo aplikacji WWW Michał Pośnik s4132 2008
Rodzaje ataków XSS (Cross-Site Scripting) SQL Injection HTML Injection CSRF (Cross-Site Request Forgery
Cross-Site Scripting
Od strony atakującego Zasada ataku XSS Rodzaje ataku XSS Reflected XSS Persistent XSS Lokalny atak XSS Proste próby ataku XSS
Reflected XSS Najczęściej spotykany wśród ataków z serii XSS Trzeba nakłonić ofiarę do odwiedzenia spreparowanego URL Umożliwia dostęp do haseł użytkownika, adresów e-mail, loginów, fraz wpisywanych w search'u http://www.heise-online.pl/security/Bezpieczenstwo-aplikacji-internetowych--/features/205/0
Persistent XSS Także bardzo powszechny atak Nie wymaga nakłaniania ofiary do kliknięcia w URL Za pomocą kodu ukrytego w URL, możemy dostać się do bazy danych Serwer bazodanowy rozsyła szkodliwy kod do użytkowników odwiedzających stronę Raz wstrzyknięty kod pozostaje już na serwerze http://www.heise-online.pl/security/Bezpieczenstwo-aplikacji-internetowych--/features/205/0
Lokalny atak XSS Odbywa się na komputerze ofiary Wykonywane w przeglądarce, za pomocą JavaScript Serwer "dostarcza" w przeglądarce błędny skrypt, a nie złośliwy kod Najczęściej podatne są aplikacje Web 2.0 http://www.heise-online.pl/security/Bezpieczenstwo-aplikacji-internetowych--/features/205/0
Proste próby ataku XSS Aby wykonać prosty atak XSS musimy zrobic/znac: Sprawdzenie podatności strony WWW na atak XSS Podstawowa znajomość JavaScript Szczęście http://www.heise-online.pl/security/Bezpieczenstwo-aplikacji-internetowych--/features/205/0
Jedna ze stron, którą znalazłem http://www.heise-online.pl/security/Bezpieczenstwo-aplikacji-internetowych--/features/205/0
SQL INJECTION
Od strony atakującego Jeden z podstawowych i najczęściej wykorzystywanych ataków w Internecie Wykorzystuje lukę w systemie polegającą na nieprawidłowym filtrowaniu Wszystkie bazy danych są podatne w mniejszym lub większym stopniu na te ataki http://webhosting.pl/SQL.Injection..Jak.hakerzy.omijaja.zabezpieczenia.stron.WWW.?page=1
Zasada działania Polega na wysłaniu na serwer spreparowanego kodu SQL Dzięki odpowiednim zapytaniom, możemy dostać się do serwera i wykraść dane http://webhosting.pl/SQL.Injection..Jak.hakerzy.omijaja.zabezpieczenia.stron.WWW.?page=1
Przeprowadzanie ataku Sprawdzamy czy w atakowanej stronie występują luki Jeśli znaleźliśmy takowe, sprawdzamy poprawność działania naszych zapytań Jeśli nie występują błędy, sprawdzamy efekt działania wstrzykniętego kodu Gromadziny dane w celu identyfikacji rodzaju zapytania, rodzaju bazy danych, czy uprzywilejowania użytkownika http://webhosting.pl/SQL.Injection..Jak.hakerzy.omijaja.zabezpieczenia.stron.WWW.?page=1
HTML INJECTION
Od strony atakującego Ataki HTML Injection, podobnie jak ataki XSS i SQL Injection, polegają na dodawaniu kodu do źródła strony WWW Pozwalają nam modyfikować wygląc strony, oraz jej funkcjonalność W zależności od zapytania, możemy zmienić wygląd strony na stałe
Prostota HTML Injection Znajomość HTMLa, nawet w podstawach, pozwoli nam na wykonanie prostego ataku Wiele stron jest podatnych na tego typu atak Po prawej znajduje się przykładowy kod HTML, który możemy wstrzyknąć w stronę podatną na atak. <a href=http://www.naszserwer.pl><img src=http://jakistamserwerznasztymobraz kiem.pl /> Kliknij na zdjecie, aby je powiekszyc! </a>
Przykład wykorzystania HTML Injection Prosty tag <h1><u> … </u></h1>
Cross-Site request forgery
Od strony atakującego Często pomijana technika, a także często mieszana jako „podzbiór” ataków XSS Polega na wykorzystaniu przeglądarki ofiary, w celu wysyłania żądań HTTP, bez wiedzy ofiary Umożliwia wykonywanie czynności administratorskich bez konieczności przechwytywania sesji czy łamania haseł Umożliwia wykonanie ataku mimo skonfigurowanego firewalla http://www.eioba.pl/a75448/cross_site_request_forgeries_csrf_zarys_problemu
Schemat przedstawiający zwykły atak CSRF http://www.eioba.pl/a75448/cross_site_request_forgeries_csrf_zarys_problemu
Schemat przedstawiający atak CSRF z włączonym firewallem http://www.eioba.pl/a75448/cross_site_request_forgeries_csrf_zarys_problemu
Przeprowadzenie ataku CSRF Wystarczy znajomość HTMLa "Podszycie" pod kod HTML jakiegos linka Pozyskiwanie potrzebnych nam informacji http://www.eioba.pl/a75448/cross_site_request_forgeries_csrf_zarys_problemu
Bezpieczeństwo aplikacji WWW XSS SQL Injection HTML Injection CSRF
Bezpieczeństwo aplikacji WWW od strony programisty Znajomość pewnych funkcji PHP może okazać się przydatna. Przykładowe funkcje zabezpieczające
O należy pamiętać? Ustawienie walidacji parametrów wejściowych Wyłączenie opcji zmiennych globalnych Prawidłowa kontrola dostępu Prawidłowa autentykacja i zarządzanie sesjami Prawidłowe zabezpieczenie przed przepełnieniem bufora Prawidłowa obsługa błędów Bezpieczne przechowywanie danych Prawidłowe zabezpieczenie przed atakiem typu DoS Ustawienie funkcji uniemożliwiających wstrzykiwanie kodu
Kilka przykładów znalezionych w sieci
Kilka przykładów znalezionych w sieci
Kilka przykładów znalezionych w sieci
Dziękuję za uwagę