Paweł sza­leje. Kiedy zasu­ge­ro­wa­li­śmy mu, że sam nic nigdy nie opu­bli­ko­wał na Secu­nii ani na Bug­traq, a tytu­łuje się eks­per­tem pod kątem bez­pie­czeń­stwa, posta­no­wił, że dłu­żej tak być nie może i sprawę trzeba czym prę­dzej ruszyć do przodu.

Jak posta­no­wił, tak uczy­nił… i prze­kleił na bloga cały traf­fic z list bez­pie­czeń­stwa z ostat­niego tygodnia.

A to wszystko przez to, że w wol­nej minu­cie pozwo­li­łem sobie na żart.

bblog.pl i CSRF

Jeden z rodza­jów zło­śli­wych ata­ków na sys­temy infor­ma­tyczne to wła­śnie pod­ra­bia­nie zapy­tań, czy jak bar­dziej obra­zowo okre­ślił to nasz spe­cja­li­sta:

Widać jakimi meto­dami posłu­guje się ta samo­zwań­cza „elita”, która odziwo ma zawsze naj­wię­cej do powie­dze­nia o pozio­mie wie­dzy innych, pod­czas gdy sobą repre­zen­tuje totalne dno i czyni jakże kom­pro­mi­tu­jące manewry.

Zga­dza się, zna­leź­li­śmy podat­ność na CSRF w sys­te­mie bblog.pl. Wyma­gało to zało­że­nia dar­mo­wego konta i klik­nię­cia myszką (sztuk pięć). Idea jest pro­sta — na dowol­nej stro­nie w Inter­ne­cie wystar­czy umie­ścić odno­śnik do zewnętrz­nych danych, o for­ma­cie takim, jak te zacy­to­wane na blogu Pawła:

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

Jest to atak o tyle cie­kawy, że skie­ro­wany na kon­kret­nego użyt­kow­nika. Sche­ma­tów prze­pro­wa­dze­nia jest wiele. Mój żart był jedną z naj­try­wial­nie­szych moż­li­wo­ści i sto­so­wał odno­śniki umiesz­czone jaw­nym tek­stem. Poświę­ca­jąc minutę wię­cej, moż­naby sko­rzy­stać z mod_rewrite i prze­kie­ro­wać na przy­kład zdjecie.jpg na odpo­wiedni adres dopiero po stro­nie ser­wera, zaś w jaw­nym tek­ście umie­ścić tylko odwo­ła­nie wyglą­da­jące na nie­winny obrazek.

Zabezpieczenie

Mam nadzieję, że bblog.pl załata swoją apli­ka­cję, bo atak zali­cza się do grupy man in the mid­dle i jest o tyle zło­śliwy, że fizyczne ska­so­wa­nie notki odbywa się przez zalo­go­wa­nego pra­wo­wi­tego wła­ści­ciela bloga. Znany powszech­nie koń trojański.

Jako naj­prost­szą metodę zabez­pie­cze­nia pole­cam wyge­ne­ro­wa­nie uni­kal­nego klu­cza dla każ­dej sesji i umiesz­cze­nie go w sesji, gdzie nie może zostać podej­rzany nawet przez prze­glą­darkę zalo­go­wa­nego użyt­kow­nika, następ­nie klucz taki należy dołą­czyć do wszyst­kich odno­śni­ków, które wyzwa­lają nie­od­wra­calne akcje (usu­nię­cie notki, zmiana kate­go­rii itp.). Zwy­kłe porów­na­nie otrzy­ma­nego klu­cza z tym zapi­sa­nym wcze­śniej pozwoli zapo­biec wszel­kim wywo­ła­niom CSRF.

Na zakoń­cze­nie pro­po­nuję prze­czy­tać sobie cały tekst czło­wieka, któ­remu zarzu­cano wiele razy zbyt elo­kwentne pisa­nie (cytat z jego bloga), widać po nim wyraź­nie, że Paweł cały czas pra­cuje nad swoją formą i na szczę­ście wspo­mniana elo­kwen­cja już nie powróci. Gra­tu­luję także wyli­sto­wa­nia zawar­to­ści kata­logu z pra­wami do publicz­nego czy­ta­nia, tele­wi­zja z pew­no­ścią będzie zobo­wią­zana, mogąc Pawła gościć ponownie.

Update: tytuł notki powstał dzięki inspi­ra­cji osoby o pseu­do­ni­mie roz­ty­ty­ba­le­ron. Ser­decz­nie dziękuję.