Dziś można przeczytać, że Polak w pracy – wynosi sprzęt, kradnie towar, oszukuje... I w sumie nie dziwi mnie to, ale zastanawiam się jaki związek ma opublikowanie wspominanego raportu przez firmę Euler Hermes z lekko irytującymi reklamami ubezpieczenia ryzyka sprzeniewierzenia oferowanego przez wspomnianą firmę. Budzi się we mnie “drobna niewiara” w wyniki badania, jeśli firma będąca jego autorem jest równocześnie żywotnie zainteresowana sprzedażą swoich produktów, których to sprzedaż będzie tym wyższa, im bardziej mroczne wizje będą kreślone...
Ja wiem, że nie jest to może najbardziej pasjonujące wyzwanie, ale ponieważ kilka razy z takimi błędami spotkałem się na wolności , zwracam uwagę na jedno zagadnienie: skąd serwer “wie”, jak nazywa się przekazywany plik?
Trzeba wyciągać wnioski, z tego, co się już wie. Sam tak uczyłem się jeździć na rolkach (bez ochraniaczy). Po dwóch bliskich spotkaniach z podłożem wyciągnąłem prosty wniosek – to boli. Był on może niezbyt błyskotliwy, ale motywował mnie bardzo skutecznie do tego, by raz popełnionych błędów nie powtórzyć w przyszłości. Ta metoda nauki zadziałała w moim przypadku bardzo dobrze, obyło się bez złamań, choć kilka efektownych spotkań z ziemią jeszcze udało mi się zaliczyć :) Tak samo w drugą stronę, jeśli jakieś działanie osiągnie pożądany skutek, należy je powtarzać (co oczywiście nie wyklucza poszukiwania lepszych rozwiązań). Ten wzorzec postępowania wpaja się nam, przedstawicielom homo sapiens , od najmłodszych lat. Stosujemy go nawet tam, gdzie nie do końca pasuje. Dziś kilka słów o wyciąganiu błędnych wniosków, a właściwie czynieniu błędnych założeń, w trakcie testów bezpieczeństwa aplikacji.
Gdyby traktował określenie walka stulecia poważnie i był fanem/kibicem boksu, to chyba bym się załamał. Poziomem walki oczywiście. A może nie tyle poziomem, co tym, że coś takiego może być określane walką stulecia właśnie. Całe wydarzenie należy raczej rozpatrywać jako udany skok na kasę organizatorów “gali bokserskiej” oraz dowód na to, jak łatwo (obecnie) manipulować ludźmi.
W temacie nomenklatury wypowiedzieć się postanowiłem... Bezpośrednim tego powodem jest wpis ryzyko podatność skutek zagrożenie błąd... Michała, jak również związany z nim wpis Przemka: Nomenklatura: Zarządzanie ryzykiem (który z kolei odsyła między innymi do mojego starego wpisu). A chcę powiedzieć przede wszystkim to, że sam się w tej nomenklaturze gubię...
Nagłówek X-FRAME-OPTIONS pojawił się w IE8 (IE8 Security Part VII: ClickJacking Defenses) w odpowiedzi na tak zwany clickjacking. Wykorzystanie tego nagłówka jest wciąż niewielkie: Adoption of X-FRAME-OPTIONS header co, przy potencjale jaki w sobie kryje clickjacking , może wydawać się dziwne. Z drugiej strony warto się zastanowić nad scenariuszami wykorzystania clickjacking , samo istnienie podatności to nie wszystko, konieczne jest jeszcze skonstruowanie skutecznego ataku. Tam, gdzie taki atak jest możliwy (i jego scenariusz nie przypomina wirusa albańskiego), nagłówek X-FRAME-OPTIONS warto stosować. W innych przypadkach też, zgodnie z zasadą defence-in-depth , choć... No właśnie, samo ustawienie nagłówka nie wystarczy, musi go jeszcze zrozumieć przeglądarka klienta, a z tym bywa już różnie. Każdy może sprawdzić to na prostym przykładzie: http://bootcamp.threats.pl/lesson15/. Przy okazji warto wspomnieć o Content Security Policy i frame-ancestors, choć to już nieco inna bajka.
Kilku osobom udało się znaleźć oczywistą podatność (patrz Podatności stają się oczywiste II). Jeśli komuś się jeszcze nie udało, to podpowiem, że podatny jest parametr pRadio , przy czym podatność występuje wtedy, gdy walidator (jedyny walidator to walidacja kodu pocztowego) rozpozna wpisany kod jako nieprawidłowy. Wówczas wartość przekazana w pRadio wypisywana jest w skrypcie JavaScript bez właściwego kodowania znaków specjalnych. Efekt prosty do przewidzenia – XSS. Pora na wyjaśnienia głębszego sensu tego przykładu.
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...