Od kilku dni we wszystkich mediach szeroko komentowana jest sprawa wycieku dużej iloÅ›ci CV i listów motywacyjnych z programu stażowego banku Pekao S. A. Sprawa zostaÅ‚a omówiona przez blog WebFan, AntyWeb opisaÅ‚ reakcjÄ™ PeKaO na caÅ‚Ä… sprawÄ™, a VaGla przeanalizowaÅ‚ sprawÄ™ od strony odpowiedzialnoÅ›ci – tak wiÄ™c chyba nie trzeba wiÄ™cej dodawać.
Przy jej okazji tej sprawy, opublikowana została wypowiedź pana Arkadiusza Mierzwy, dyrektora biura prasowego Pekao, który zapowiadał przekazanie Policji adresów IP osób, które pobierały CV. Osoby te miały by zostać pociągnięte do odpowiedzialności karnej, gdyż wykorzystali błąd informatyków i bezprawnie ściągali na swoje komputery prywatne dane z serwera banku PEKAO SA. Ten sam pan powiedział, że dane były ukryte, gdyż trzeba było przecież specjalnie wstukać określony adres.
PomijajÄ…c wszystkie inne kwestie zwiÄ…zane z brakiem zabezpieczeÅ„, przychodzi mi do gÅ‚owy inne pytanie – czy otwarcie jakiegokolwiek URLa może być traktowane jako wÅ‚amanie?
Do sprawy bezpieczeÅ„stwa można podchodzić jak pan z Pekao, dla którego katalog, do którego nie ma linku, jest zabezpieczeniem – klasyczny przykÅ‚ad security through obscurity. ZaÅ‚ożenie, że takie dziaÅ‚anie zapewnia „bezpieczeÅ„stwo”, jest bÅ‚Ä™dne, z wielu powodów. Pan Mierzwa doszedÅ‚ do wniosku, że pomysÅ‚owość internautów doprowadziÅ‚a do odkrycia „schowanych” katalogów (bÅ‚Ä™dny wniosek, ale o tym później) – tak wiÄ™c jeÅ›li ktokolwiek miaÅ‚ w którymkolwiek momencie projektowania/konfigurowania aplikacji na myÅ›li bezpieczeÅ„stwo, wiedziaÅ‚by, że prÄ™dzej czy później ktoÅ› spróbuje wpisać adres ze zmienionym ID, spróbuje wylistować katalog, czy poszuka katalogów „tmp”.
W podobnej atmosferze rozegraÅ‚a siÄ™ „afera” wycieku raportu kwartalnego spółki Intentia International, który to raport zostaÅ‚ omówiony przez agencjÄ™ Reuters jeszcze przed jego oficjalnym opublikowaniem. OczywiÅ›cie raport byÅ‚ niezabezpieczony, a jedynie „niepodlinkowany”. Intentia oskarżyÅ‚a Reutersa o stosowanie hackingu w celu wykradniÄ™cia tajnych danych. Widać ostatnio dużo Å‚atwiej jest zostać hakerem niż kiedyÅ› – wystarczy zmienić „raport_kwartalny_2” na „raport_kwartalny_3” w pasku przeglÄ…darki. Dziwne tylko, że Intentia nie wstydziÅ‚a siÄ™ chwalić wszystkim, że przechowuje niezabezpieczone dane.
Ale w sprawie Pekao sprawa byÅ‚a jeszcze prostsza. Nikt nie musiaÅ‚ „hakować URLi”. Glucio, osoba która odkryÅ‚a sprawÄ™ i jÄ… trochÄ™ nagÅ‚oÅ›niÅ‚a, wcale nie kombinowaÅ‚a z adresami. Otóż Glucio, w celach rozrywkowych, szukaÅ‚ w Google osób o takim samym jak on nazwisku – przypadek chciaÅ‚, że takie nazwisko miaÅ‚a jedna z osób, która przesÅ‚aÅ‚a swoje CV do programu stażowego Pekao. JeÅ›li wejÅ›cie na stronÄ™ znalezionÄ… przez wyszukiwarkÄ™ wg. przedstawicieli Pekao jest przestÄ™pstwem, to jest to Å›wietny sposób na nielubianych znajomych i wrednych szefów. Wystarczy podrzucić takiej osobie link do jakiegoÅ› CV, najlepiej jeszcze zakryć link przez jakiegoÅ› skracacza URLi, i już, kÅ‚opoty „wroga” murowane.
Jakim cudem GoogleBot trafiÅ‚ na strony, do których podobno nie byÅ‚o linków? Prawdopodobnie któryÅ› z programistów projektu miaÅ‚ Google Toolbar, który przekazuje dane do wyszukiwarki – co pokazuje, że musieli być Å›wiadomi, że można wyÅ›wietlić listing katalogu (na razie teorie o wÅ‚amaniu pomijam jako niepotwierdzone). W jakim Å›wietle to stawia oskarżenia pana Mierzwy? ZastosowaÅ‚ on spychologiÄ™, ale najwyraźniej oskarżyÅ‚ nie tych co trzeba – powinien zapowiedzieć podanie do sÄ…du robaka Google’a.
W takich sytuacjach pojawia siÄ™ kilka pytaÅ„. Na przykÅ‚ad, czym wpisanie adresu http://example.com/tajne_dane/ różni siÄ™ od wpisania samego http://example.com/, i trafienia tam na tajne dane, „ukryte”? W podobnych sytuacjach kilka razy sÅ‚yszaÅ‚em dziwne „analogie” i porównania do sytuacji, kiedy to ktoÅ› nie zamknie drzwi od domu na klucz, a ktoÅ› obcy skorzysta z tego i wejdzie do Å›rodka. Ciężko strony WWW ciężko traktować jak „dom” – do obejrzenia strony (a przynajmniej tej niezabezpieczonej hasÅ‚em) nie trzeba „zaproszenia”. JeÅ›li już bym siÄ™ siliÅ‚ na jakieÅ› porównanie, to prÄ™dzej bym porównaÅ‚ tÄ… sytuacjÄ™ do prób otwierania drzwi sklepów lub biur, ale chyba wchodzenie do sklepu bez zaproszenia nie jest ani zakazane ani naganne moralnie. Ale nawet co do domów sprawa wyglÄ…da ciekawie. Otóż wedÅ‚ug prawa, aby doszÅ‚o do wÅ‚amania, drzwi muszÄ… być zabezpieczone zamkiem, i to takim, który stanowi faktyczne zabezpieczenie, a nie tylko symboliczne – klamka czy dostÄ™pny od zewnÄ…trz „haczyk” nie jest takim zabezpieczeniem:
Podstawową istotą włamania jest wtargnięcie sprawcy do zamkniętego pomieszczenia, przez usunięcie przy użyciu siły fizycznej przeszkody zamykającej dostęp do danego pomieszczenia. Pomieszczenie musi być zamknięte, tj. w taki sposób zabezpieczone przed wtargnięciem osób powołanych by normalne wejście było niemożliwe.
Usunięcie takiej przeszkody jest wyraźnym obejściem woli właściciela pomieszczenia niedopuszczenia osoby trzeciej do tegoż pomieszczenia. Zaznaczyć tu należy, iż wola ta musi być w poważny sposób wyrażona. Zamknięcie pomieszczenia na zwykły haczyk, który bez większej trudności każdy może odsunąć czy też zwykłą klamkę bez użycia klucza nie może być traktowane jako zamknięcie pomieszczenia i w takich wypadkach wejścia doń sprawcy i dokonanie kradzieży nie można traktować jako włamania.
(Wyrok SN z 24 kwietnia 1958 r., IV KRN 170/58.)
Poszukiwanie niezabezpieczonych, „tajnych” katalogów, na chybiÅ‚-trafiÅ‚, czy też majÄ…c jakieÅ› wskazówki, to jedna strona problemu. Druga, to „ataki”, które przeprowadza siÄ™ teoretycznie na formularze (np. logowania), a poprzez bÅ‚Ä™dnÄ… ich konstrukcjÄ™ (tj. akceptowanie parametrów GET), możliwe jest zrobienie tego po prostu przez wpisanie odpowiedniego URLa. W ten sposób można wykonywać m. in. ataki SQL-injection. Na ten temat można znaleźć w Internecie kilka historii. Na przykÅ‚ad znany jest przypadek Mateusza, który odkryÅ‚ bÅ‚Ä…d w oprogramowaniu pewnej firmy informatycznej (prawdopodobnie CMS, ale nie zostaÅ‚o to nigdzie jasno napisane), z którego korzystaÅ‚o wiele firm. BÅ‚Ä…d ten pozwalaÅ‚ w prosty sposób uzyskać dostÄ™p do konta dowolnego użytkownika – wystarczyÅ‚o wpisać w formularzu logowania ' or 1=1 --
. Jeśli dodatkowo formularz akceptował parametry GET, można było to wpisać w pasku adresu. Mateusz poinformował o błędzie firmę programistyczną oraz jej klientów, z propozycją zajęcia się poprawą tego błędu, za co dostał nagrodę w postaci aresztowania i oskarżenia o wymuszenie rozbójnicze (!). Sprawa jest długa i zawiła, została dokładnie opisana przez zainteresowanego, i ciągnie się od 1,5 roku. Rzecz w tym, że prawnicy analizujący tą sprawę, a także poproszony przez prokuraturę o opinię rzeczoznawca, doszli do wniosku, że w tym przypadku nie doszło do żadnego przestępstwa. Specjaliści doszli do wniosku, że takie zabezpieczenie to żadne zabezpieczenie (dosłownie!), więc nie można mówić o omijaniu zabezpieczenia, a co dopiero jego przełamywaniu.
Kwestia różnicy między omijaniem a przełamywaniem zabezpieczenia w kontekście systemów informatycznych jest dla mnie bardzo niejasna. Co nieco mówią na ten temat dwa cytaty:
Reasumując, o popełnieniu przestępstwa określonego w art. 267 par 1 kk decyduje sposób uzyskania zastrzeżonej informacji, nie zaś samo jej uzyskanie. Jeżeli następuje to bez przełamywania zabezpieczeń – przestępstwa nie ma. Jeżeli sprawca wykorzystuje dziurę w konfiguracji lub oprogramowaniu systemowym po to, by uzyskać znajdującą się w systemie informację – nie można mu nawet przypisać usiłowania przestępstwa, o którym mówi art. 267 par 1 kk. Jeżeli wykorzystanie słabości systemu nie wymaga od hackera ingerencji w zapis na komputerowym nośniku informacji lub korzystania ze specjalnego oprogramowania – zachowanie takie w ogóle nie jest karalne.
(dr Andrzej Adamski, „Prawo karne komputerowe†(str.53), na temat art. 267 kk)
Nie można natomiast uznać za przełamanie zabezpieczenia obejścia mechanizmów lub procedur postępowania uniemożliwiających zapoznanie się z informacją osób nieuprawnionych. Przełamanie zabezpieczenia następuje wyłącznie wówczas, gdy sprawca swoim działaniem wpływa na funkcjonowanie tego zabezpieczenia. Jeżeli istnieje taki sposób dostępu do informacji, który nie został objęty szczególnym zabezpieczeniem, to skorzystanie z tego sposobu nie stanowi realizacji znamion z art. 267 § 1, choćby nawet osobie zapoznającej się z informacjami wiadoma była wola ich zabezpieczenia przed osobami postronnymi.
(WÅ‚odzimierz Wróbel – „Komentarz do art. 267 kodeksu karnego”, „Kodeks karny. Część szczególna. Tom II. Komentarz do art. 117-277 k.k.”, Zakamycze 2006)
Z powyższych informacji wynika, że jeÅ›li ktoÅ› ma zbyt wyluzowane podejÅ›cie do technik bezpieczeÅ„stwa, to to jest to tylko i wyÅ‚Ä…cznie jego wina jeÅ›li coÅ› „wycieknie”. JeÅ›li SQL injection, który jest już dosyć aktywnym atakiem, w pewnym, dosyć szerokim kontekÅ›cie, nie może zostać uznany za przestÄ™pstwo, to co myÅ›leć o wejÅ›ciu na wyguglany adres?