Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Nowy dokument OWASP Top Ten – edycja 2013
Na stronach OWASP pojawiła się finalna wersja dokumentu OWASP Top Ten 2013 – The Ten Most Critical Web Application Security Risks.
Dokument jest aktualnym wprowadzeniem do tematyki bezpieczeństwa aplikacji webowych. Nie znajdziemy tu szczegółowych informacji jak testować aplikacje pod względem bezpieczeństwa czy w jaki sposób je chronić. Otrzymamy za to przegląd dziesięciu najbardziej istotnych luk w aplikacjach webowych wg OWASP w roku 2013. Poprzednia wersja dokumentu stworzona została trzy lata temu i w zasadzie można powiedzieć, że… od tego czasu niewiele się zmieniło. Cały czas w Top 3 są podatności:
- A1 – Injection
- A2 – Broken Authentication and Session Management
- A3 – Cross-Site Scripting (XSS)
Nie widać zatem końca podatnościom typu SQL injection czy OS command execution (klasa injection). Deweloperzy słabo też radzą sobie z dobrym przygotowaniem mechanizmów uwierzytelniających i autoryzacyjnych. Ciężko też w pełni ustrzec się przed XSS.
Część klas błędów zmieniła swoją numerację (najbardziej dramatyczna zmiana – Cross-Site Request Forgery (CSRF) z pozycji 5 niemal na koniec listy – numer 8). Wg autorów dokumentu podatność CSRF jest już w znacznym stopniu łatana (developerzy wiedzą o niej odpowiednio dużo). Czy aby na pewno…?
Została dodana też nowa klasa (pozycja 2013-A9 – Using Known Vulnerable Components) – czyli np. wykorzystanie bibliotek z błędami bezpieczeństwa. Osobiście wydaje mi się, że jest to wyjątkowo 'złośliwy’ problem, bo w aplikacjach które wydają się bezpieczne, może niepostrzeżenie pojawić się krytyczny błąd (patrz np. temat code execution w bibliotece struts czy podobny problem w JBoss Seam).
Nie ma tu więc żadnych rewolucji (np. nie znajdziemy ani słowa napisanego wprost o problemach związanych z HTML5).
Być może całość dobrze odzwierciedla pewną 'stabilizację’ na rynku aplikacji webowych? Albo może wskazuje na fakt, że jak było niegdyś źle – tak jest i dziś? :-)
Aby zachęcić do przejrzenia dokumentu, poniżej zamieszczam fragment jednej ze stron dokumentu – opisującą klasę podatności – Injection.
–michal.sajdak<at>sekurak.pl
Według mnie – pozycja obowiązkowa dla każdego developera aplikacji webowych. Niestety, wciąż poziom świadomości zagrożeń i sposobów ich zapobiegania wśród webdeveloperów jest dramatycznie niski.
Poprzednia wersja dokumentu jest również dostępna w języku polskim.
Sytuacja się nie zmieni dopóki aplikacje webowe czy serwisy „z logowaniem itp.” będą tworzone w PHP przez młodziaków nie mających pojęcia o programowaniu i bezpieczeństwie. Owszem – nie ma zabezpieczeń nie do pokonania – ale czy na prawdę mechanizm logowania trzeba za każdym razem wymyślać od nowa na podstawie wycinków z gazetek dla grafików?
Jednorodne, dobrze zaprojektowane i przetestowane przez społeczność mechanizmy mogą znacząco poprawić bezpieczeństwo serwisów WWW.
Trochę tak jest, ale to też kwestia parcia biznesowego – zmniejszanie kosztów, skracanie tempa developmentu, itd.
–ms
PS
Zachęcam też do wzięcia udziału w OWASP-owym CTF: http://sekurak.pl/owasp-ctf/