Archiwa tagu: security

Security B-Sides Warsaw

Rok temu miałem przyjemność aktywnie uczestniczyć w pierwszej polskiej edycji konferencji Security B-Sides. Opowiadałem wtedy o bezpieczeństwie systemów bazujących na JVM. Niestety, nie będę mógł stawić się na tegorocznej edycji SBS. Jednak gorąco zachęcam Was, abyście zarezerwowali sobie czas 18-20 października i odwiedzili Warszawę. Security B-Sides to dość kameralna (przynajmniej poprzednia edycja taka była…), ale niezwykle ciekawa impreza, na której można poznać bardzo interesujących ludzi i uczestniczyć w naprawdę dobrze przygotowanych prelekcjach. Pomimo tego, że w tym roku raczej nie znajdziecie w agendzie zbyt wielu tematów związanych z JVM, to zdobyta wiedza może zaprocentować. Chodzą bowiem słuchy, że programiści, nawet ci najlepsi, czasami zaniedbują kwestie bezpieczeństwa :)

Więcej informacji znajdziecie na stronach: https://securitybsides.pl/ oraz http://www.securitybsides.com/

Kolejne problemy z bezpieczeństwem Javy

W ostatnim czasie Java niechlubnie przoduje w klasyfikacji na najczęściej kompromitowaną technologię. Praktycznie każdy kolejny tydzień przynosi nam nową lukę w bezpieczeństwie. W ich znajdowaniu szczególnie wyróżnia się Adam Gowdiak z Security Explorations, który z okazji zbliżającej się konferencji Java One postanowił podzielić się ze światem informacją o znalezieniu kolejnego, krytycznego błędu w Javie. Pozwala on na ominięcie sandboxa i wykonanie praktycznie dowolnego kodu na komputerze ofiary. Tym razem podatna na atak jest Java w wersji 5,6,7. Jest ciekawie.

Świetnie, że są osoby, które znajdują tak krytyczne błędy i informują o nich Oracle z odpowiednim wyprzedzeniem. Niepokoi mnie jednak szum medialny, który powstał wokół tematu bezpieczeństwa Javy. Powoli zauważam jego negatywne implikacje. Dobrym przykładem może być rozmowa, w której miałem okazję uczestniczyć, a która dotyczyła wykorzystania technologii opartych o Javę w nowym startupie. Javowy stos technologiczny został praktycznie odrzucony przez osoby związane z projektem, ponieważ „Java nie jest bezpieczna”. Jeżeli jednak przyjrzymy się dokładnie sposobom przeprowadzania ataków wykorzystujących niedawno znalezione luki, szybko zorientujemy się, że bazują one głównie na omijaniu restrykcji nałożonych na kod wykonywany w obrębie apletów. Technologie serwerowe nadal są bezpieczne. Do tematu bezpieczeństwa w Javie wrócimy podczas zbliżającej się konferencji Security BSides, na którą serdecznie zapraszamy.

AntiSamy – broń w walce z XSS

Na stronie OWASPu można znaleźć listę 10 najpoważniejszych zagrożeń dla aplikacji internetowych roku 2010. Drugie miejsce zajmuje XSS (Cross-Site Scripting). Najogólniej ten typ ataku można opisać jako osadzenie w treści atakowanej strony kodu, najczęściej Javascript, który przy wyświetleniu przez użytkowników, wykona niepożądaną przez nich czynność. Z charakterystyki tej wynika, że im większe możliwości edycji treści witryna daje swoim użytkownikom, tym większe ryzyko wystąpienia podatności na XSS. Co jednak, gdy chcemy stworzyć bardzo interaktywną aplikację? Jak można się zabezpieczyć? Odpowiedzią na te pytania jest AntiSamy – proste, ale zarazem bardzo skuteczne narzędzie rozwijane przez OWASP.

Czytaj dalej

Implementacja uwierzytelniania w Spring Security

Uwierzytelnianie (authentication) to proces weryfikacji zadeklarowanej tożsamości użytkownika aplikacji, w oparciu o pewne informacje przez niego dostarczone. Proces ten jest wymagany m.in. przy późniejszej kontroli dostępu użytkownika do konkretnych zasobów. Informacje wymagane przy uwierzytelnianiu mogą być bardzo różne, jednak w tym artykule skupię się na najczęstszym scenariuszu – sprawdzaniu loginu i hasła. Oprócz omówienia samego mechanizmu uwierzytelniania, poruszę także temat przechowywania  hasła w sposób minimalizujący ryzyko jego kradzieży. Wykorzystam przy tym jeden z najpopularniejszych framework’ów służących do zabezpieczenia aplikacji internetowych – Spring Security w wersji 3.0. Całość postaram się przedstawić w sposób „praktyczny”, krok po kroku pokazując jak zabezpieczyć przykładową aplikację. Czytaj dalej