Pisałem już o problemach z JBroFuzz. Tym razem “same mi się odtworzyły” na komputerze z Windows XP. W dodatku zaobserwowałem dodatkową niedogodność – problemy z automatycznym ustawianiem przez JBroFuzz nagłówka Content-Lenght. Kilka dni temu wysłałem maila z opisem problemu na podany na stronie JBroFuzz adres. Na razie cisza, brak odpowiedzi...
Jak w przekonywujący sposób pokazać, że hibernacja jest niebezpieczna? Wystarczy w prosty sposób eskalować swoje uprawnienia, na przykład do poziomu Local System.
Swoją drogą na jakim poziomie powinny zatrzymać się te kryteria? Wskazania wymaganych mechanizmów bezpieczeństwa (uwierzytelnienie, autoryzacja, ...) i cech, które te mechanizmy powinny spełniać? A może należy zagłębić się w szczegóły dotyczące implementacji? W każdym razie – zapraszam do dyskusji na liście OWASP.
Dzisiejsze spotkanie OWASP było trochę nietypowe. Padały wprawdzie nieśmiertelne terminy typu sql injection czy cross-site scripting , jednak nie one były głównym tematem. Dwie dzisiejsze prezentacje dotyczyły malware , a konkretnie ataków drive-by downloads oraz tematu wyszukiwania i analizy niebezpiecznych stron.
Zachęcam osoby, które nie były na spotkaniu do zapoznania się z prezentacjami kiedy zostaną udostępnione. Co więcej zapowiada się, że dostępny również będzie zapis samego spotkania, co jest ważne bo same slajdy to za mało. Mam nadzieję, że dla czytelników mojego bloga tematy poruszane w prezentacjach nie były kompletną nowością :)
Opublikowane zostało rozwiązanie wyzwania Forensic Challenge 2010 – Banking Troubles. Choć nie uczestniczę w tego typu wyzwaniach (nie wysyłam odpowiedzi), to zadaniom się przyglądam i część z nich, te ciekawsze, rozwiązuję. Czytam również zgłaszane odpowiedzi, po to by popatrzeć, jak z problemem poradzili sobie inni. W tym przypadku dla mnie najbardziej ciekawe były odpowiedzi udzielone na poniższe pytanie:
5. Were there any files that were able to be extracted from the initial process? How were these files extracted? (6pts)
Rozwiązania opierały się tutaj zwykle na zrzucie pamięci wirtualnej wybranych procesów i odzyskanie z nich plików PDF, na przykład przy użyciu narzędzia Foremost lub Scalpel. Ja do tego zadania podszedłem w nieco inny sposób, wspominałem o tym we wpisie Odczytywanie plików z filecache.
Fakt, wybrana przeze mnie metoda nie do końca może jest zgodna z pytaniem, szczególnie następującym jego fragmentem: from the initial process , ale jest ciekawsza :) Przy okazji można było nauczyć się czegoś o działaniu systemu od środka.
Czasami przychodzi taki czas, że trzeba przyglądnąć się wykorzystywanym narzędziom, zapoznać się z nowościami, być może coś usprawnić, zmienić. Dzisiaj usiłowałem dokładniej przyjrzeć się JBroFuzz 2.1. Zamiast możliwości zobaczyłem głównie problemy i “ciekawostki”... Muszę sprawdzić jeszcze dokładnie kiedy problemy występują. Ja spotkałem się z nimi pod Windows Vista, ale na drugim komputerze z Windows XP części z nich nie udało mi się odtworzyć.
Małe uzupełnienie do I co z tego, że jest SQLi w Płatniku? Napisałem, że błędy są już w architekturze programu, więc błędy w implementacji nie robią już tak dużego wrażenia. Warto przyjrzeć się temu tematowi, bo sposób działania programu Płatnik jest bardzo typowy, a co za tym idzie problemy z niego wynikające są bardzo powszechne. Należy pamiętać, że poruszane tu problemy są charakterystyczne dla całej klasy aplikacji.
Problem z SQL Injection nie ogranicza się tylko do webaplikacji. Również “grube” aplikacje mogą mieć ten sam problem, czego przykładem może być ta informacja: SQL injection w Płatniku. Tylko co z tego? Dla mnie wygodniejszym rozwiązaniem jest odzyskanie hasła do bazy danych i podłączenie się bezpośrednio do niej. Jeśli coś ma schrzanioną u podstaw architekturę, to błędy typu SQLi nie robią na mnie wielkiego wrażenia... Choć ciekawostka to oczywiście jest :)
Warto zapoznać się z artykułem KHOBE – 8.0 earthquake for Windows desktop security software opisującym ciekawy przykład ataku, który pozwala na obejście zabezpieczeń opartych o SSDT hooking. Jest to specyficzny przypadek race condition (TOCTOU). W pewnym uproszczeniu problem polega na tym, że kod “systemu zabezpieczającego” widzi inne parametry niż te, które są ostatecznie obsługiwane przez wywołanie systemowe. Dlaczego?