Skąd się biorą dziury
- 16.06.2009
Bezpieczeństwo aplikacji webowych to nie tylko odporność serwerów i systemów operacyjnych. Najpoważniejsze błędy mogą bowiem kryć się w niej samej.
Aplikacje WWW - w odróżnieniu od programów instalowanych w środowisku stacji roboczej - są bardzo podatne na atak. Wynika to z faktu, że może ona być dostępna praktycznie z każdego miejsca, jeśli tylko została udostępniona na publicznym adresie IP. Niejednokrotnie włamywacze wcale nie celują w konkretną instalację, ale szukają konkretnej aplikacji - niezależnie od miejsca, gdzie ona pracuje. O wyszukiwaniu celu za pomocą Google pisaliśmy ponad rok temu w tekście i możemy potwierdzić, że nadal ta metoda się sprawdza. Wystarczy tylko wiedzieć, w jaki sposób aplikacja wyświetla informacje o swojej wersji i jaki błąd należy wykorzystać do przejęcia kontroli nad nią.
Skrypty pomiędzy stronami
W odróżnieniu od ataku na serwer wykorzystującego
błędów programistycznych to błędy, które mogą skutkować naruszeniem bezpieczeństwa aplikacji, a z nich 2% błędów bezpieczeństwa umożliwia przejęcie kontroli nad systemem.
W ten sposób można dokonać dość niebezpiecznych ataków, spośród których najważniejsze to przejęcie danych
sesji, nieautoryzowany dostęp do danych, możliwość wykonania operacji na poziomie uprawnień ofiary. Lista ta nie wyczerpuje ataków, które można przeprowadzić tą drogą, gdyż możliwy jest atak odmowy obsługi, poprzez zablokowanie pracy przeglądarki ofiary. Chociaż wydaje się to niepraktyczne, napastnik może po kradzieży danych sesji zablokować przeglądarkę ofiary, aby uniemożliwić działanie prewencyjne, np. wylogowanie z serwisu.
Najbardziej zaawansowanym atakiem jest przeskanowanie portów w sieci lokalnej (projekt Javascript Port Scanner udostępniony na stronie gnucitizen.org) oraz ataki na konsole administracyjne otwarte w innym oknie przeglądarki. Najważniejszą przyczyną XSS jest błąd w założeniach konstrukcji aplikacji.