Paweł szaleje. Kiedy zasugerowaliśmy mu, że sam nic nigdy nie opublikował na Secunii ani na Bugtraq, a tytułuje się ekspertem pod kątem bezpieczeństwa, postanowił, że dłużej tak być nie może i sprawę trzeba czym prędzej ruszyć do przodu.

Jak postanowił, tak uczynił… i przekleił na bloga cały traffic z list bezpieczeństwa z ostatniego tygodnia.

A to wszystko przez to, że w wolnej minucie pozwoliłem sobie na żart.

bblog.pl i CSRF

Jeden z rodzajów złośliwych ataków na systemy informatyczne to właśnie podrabianie zapytań, czy jak bardziej obrazowo określił to nasz specjalista:

Widać jakimi metodami posługuje się ta samozwańcza "elita", która odziwo ma zawsze najwięcej do powiedzenia o poziomie wiedzy innych, podczas gdy sobą reprezentuje totalne dno i czyni jakże kompromitujące manewry.

Zgadza się, znaleźliśmy podatność na CSRF w systemie bblog.pl. Wymagało to założenia darmowego konta i kliknięcia myszką (sztuk pięć). Idea jest prosta — na dowolnej stronie w Internecie wystarczy umieścić odnośnik do zewnętrznych danych, o formacie takim, jak te zacytowane na blogu Pawła:

http://paweljablonski.bblog.pl/adm/edit_post,rm,1183.html

Jest to atak o tyle ciekawy, że skierowany na konkretnego użytkownika. Schematów przeprowadzenia jest wiele. Mój żart był jedną z najtrywialnieszych możliwości i stosował odnośniki umieszczone jawnym tekstem. Poświęcając minutę więcej, możnaby skorzystać z mod_rewrite i przekierować na przykład zdjecie.jpg na odpowiedni adres dopiero po stronie serwera, zaś w jawnym tekście umieścić tylko odwołanie wyglądające na niewinny obrazek.

Zabezpieczenie

Mam nadzieję, że bblog.pl załata swoją aplikację, bo atak zalicza się do grupy man in the middle i jest o tyle złośliwy, że fizyczne skasowanie notki odbywa się przez zalogowanego prawowitego właściciela bloga. Znany powszechnie koń trojański.

Jako najprostszą metodę zabezpieczenia polecam wygenerowanie unikalnego klucza dla każdej sesji i umieszczenie go w sesji, gdzie nie może zostać podejrzany nawet przez przeglądarkę zalogowanego użytkownika, następnie klucz taki należy dołączyć do wszystkich odnośników, które wyzwalają nieodwracalne akcje (usunięcie notki, zmiana kategorii itp.). Zwykłe porównanie otrzymanego klucza z tym zapisanym wcześniej pozwoli zapobiec wszelkim wywołaniom CSRF.

Na zakończenie proponuję przeczytać sobie cały tekst człowieka, któremu zarzucano wiele razy zbyt elokwentne pisanie (cytat z jego bloga), widać po nim wyraźnie, że Paweł cały czas pracuje nad swoją formą i na szczęście wspomniana elokwencja już nie powróci. Gratuluję także wylistowania zawartości katalogu z prawami do publicznego czytania, telewizja z pewnością będzie zobowiązana, mogąc Pawła gościć ponownie.

Update: tytuł notki powstał dzięki inspiracji osoby o pseudonimie roztytybaleron. Serdecznie dziękuję.