Szukania SQLi i XSSów mam już dość

Ten wpis jest nieco przewrotnym komentarzem do wpisu Przemka:Testowanie logiki biznesowej. Mam dość szukania SQLi i XSSów, bo jest to umiarkowanie efektywne podejście, dodatkowo często uwsteczniające intelektualnie, monotonne i nużące. Skupiając się na tego typu podatnościach można przeoczyć inne, ciekawsze, a przede wszystkim istotniejsze. Można nawet nie mieć czasu, by zabrać się za co ciekawsze kwestie związane z logiką biznesową. W dodatku i tak istnieje spora szansa, że jakiś XSS lub SQLi pozostanie niezauważony, co pokazałem(?) choćby w przykładzie z podatnościami, które stają się oczywiste zaraz po tym, jak się je już znajdzie...

Zamiast zajmować się mozolnym testowaniem formatek parametr po parametrze, chętnie zająłbym się czymś innym, na przykład wspomnianym testowaniem logiki biznesowej, czy szukaniem podatności typu DoS (co również poruszył Przemek), oczywiście nie takich, do których potrzebny jest botnet, lecz takich, o których już kiedyś pisałem, wynikających z samej aplikacji. Przy okazji odnośnie jesiennych przemyśleń (sekcja: Jak zablokować komuś dostęp do konta w banku) – tak, krótka analiza takiego scenariusza ataku DoS jest robiona w trakcie testów. Kolejną działką, którą wolałbym od tych nieszczęsnych XSSów i SQLi jest, wspominany już przez Przemka, ogólnie pojęty hardening aplikacji, wskazywanie nowych(?) rozwiązań, które można wykorzystać w aplikacji po to, by szansa wystąpienia/wykorzystania podatności była mniejsza. Na końcu jeszcze warto wspomnieć o “nowych technikach ataków”, czyli szeroko pojęty research...

Są inne, bardziej efektywne sposoby wyszukiwania XSSów i SQLi niż testy penetracyjne. Mechanizm i przyczyny wystąpienia tych podatności są doskonale znane, co więcej w ogólnym przypadku mają stosunkowo łatwą do wykrycia “sygnaturę”. Sygnatura ta pozwala na łatwe wykrywanie ich przez narzędzia automatyczne działające na poziomie analizy kodu źródłowego aplikacji i powinna być przeprowadzana w trakcie tworzenia aplikacji. Efekt jest zdecydowanie lepszy. Nie będę po raz kolejny rozpisywał się już o znaczeniu i efektywności innego podstawowego kroku, czyli edukacji.

Wiele razy w trakcie testów znajdowałem dziesiątki (tak, dziesiątki) podatności wynikających dokładnie z tego samego błędu (w zasadzie to była jedna i ta sama podatność w dziesiątkach kopii). Usuwanie ich nie może polegać na łataniu przypadków wskazanych palcem, tylko na zidentyfikowaniu przyczyny występowania podatności i wyeliminowaniu jej. Tak się jednak zwykle nie dzieje, niestety. Zamiast tego prezentowane jest podejście polegające na przyklejaniu łatki we wskazanym miejscu. Powoli jednak pojawiają się pozytywne sygnały wskazujące na zmianę filozofii w niektórych firmach programistycznych. Chwała tym, którzy potrafią się wybić nad przeciętność i bylejakość.

Na koniec jedno wyjaśnienie. Nie twierdzę, że testy związane z wyszukiwaniem XSSów czy SQLi nie powinny być elementem testów bezpieczeństwa. Jestem natomiast zdania, że obecnie angażują one zbyt wiele zasobów, przez co “zagładzają” inne, bardziej interesujące, również dla intruza, obszary. Obszary, w których podatność może mieć miażdżące skutki.

Oryginał tego wpisu dostępny jest pod adresem Szukania SQLi i XSSów mam już dość

Autor: Paweł Goleń