"Nie można przełamać czegoś, co nie istnieje" - polski wyrok w sprawie SQL Injection

Sąd Rejonowy w Głogowie VI Wydział Grodzki w dniu 11 sierpnia 2008 r. wydał ważny wyrok w sprawie mężczyzny oskarżonego o to, że używając komputerów nie będąc do tego uprawnionym, po przełamaniu elektronicznego zabezpieczenia, serwera pewnej firmy, uzyskał informacje - dane osobowe - dla niego nie przeznaczone, działając tym samym na szkodę tej firmy, a więc w sprawie oskarżonego o czyn z art. 267 §1 kodeksu karnego. Sąd wyrokiem (sygn. akt VI K 849/07) uniewinnił oskarżonego od zarzutu, nakazał zwrócić oskarżonemu dowody rzeczowe wymienione w wykazie dowodów, a na podstawie art. 632 pkt 2 KPK orzekł, że koszty procesu ma ponieść Skarb Państwa. Wyrok jest prawomocny. To bardzo ważne rozstrzygnięcie (sygnalizowałem, że opublikuję informację na ten temat przy tekście Pochwalił się internetowi, pochwali się wnukom), a dotyczy m.in. granic możliwości przeprowadzania "audytu bezpieczeństwa" serwisów internetowych, a także spraw związanych z tzw. SQL Injection.

O sprawie, w której rozstrzygnął sąd, wcześniej pisałem w tekstach Fuszerka wykonawcy, szukanie luki, oferta naprawy i kajdanki i Ciąg dalszy w sprawie, w której kajdanek użyto po podpisaniu klauzuli poufności. Przypominam, że oskarżony nie zgodził się na dobrowolne poddanie się karze, które mu zaproponowano, początkowo bronił się sam. W ramach "programu" pro bono tego serwisu (por. VaGla.pl dla działalności pro bono) obrony mężczyzny podjął się mec. Artur Kmieciak. Po wydaniu wyroku zarówno prokuratura jak i obrona poprosiły sąd o uzasadnienie wyroku, co byłoby niezbędne do złożenia ewentualnej apelacji. Prokuratura nie złożyła jednak apelacji (wyrok jest uniewinniający, więc obrona również apelacji nie składała) i wyrok się uprawomocnił.

Co znajdziemy w uzasadnieniu wyroku Sądu Rejonowego w Głogowie w sprawie oskarżonego? W pierwszej kolejności opis podjętych przez niego działań. Odwiedził on stronę internetową i stwierdził, że serwis zawiera błędy. Następnie w formularz logowania wpisał ciąg znaków "' or 1=1" (powtarzając tą czynność również w polu hasła), co spowodowało, że został "zalogowany" na konto losowego użytkownika. To zaś spowodowało, że mężczyzna uzyskał dostęp do kilku kont użytkowników z jednoczesnym dostępem do ich danych osobowych. Mężczyzna postanowił wykorzystać ten fakt, a to w ten sposób, iż skontaktował się z przedstawicielami przedsiębiorstwa prowadzącego serwis internetowy i poinformował ich, że "wykrył lukę umożliwiającą wejście do bazy danych marketingowych firm należących lub związanych właścicielsko" z przedsiębiorstwem. W międzyczasie mężczyzna sprawdził również inne strony i serwisy internetowe stworzone przez autora witryny użytkowanej przez przedsiębiorstwo. Zauważył, że wszystkie te strony internetowe zawierały podobne błędy (zostały skonstruowane z wykorzystaniem tego samego systemu zarządzania treścią). Mężczyzna, by uwiarygodnić swoją propozycję, wysyłając list elektroniczny do przedsiębiorstwa umieścił tam dane jednego z pracowników, które uzyskał w wyniku opisywanych wyżej działań. Nie uzyskał żadnej odpowiedzi na propozycję współpracy postanowił wysłać listy bezpośrednio do zainteresowanych firm, których dane były w ramach serwisu przetwarzane.

Doszło do nawiązania kontaktu i mężczyzna został zaproszony do współpracy. W czasie spotkania, na które mężczyzna został zaproszony miała zostać podpisana umowa o dzieło, na podstawie której miał rozpocząć prace w celu usunięcia luk w zabezpieczeniach. Mężczyzna przyjechał na umówione spotkanie, tam podpisał przedstawione mu zobowiązanie do zachowania poufności (z datą sprzed wykrycia błędów), a następnie został zatrzymany przez współpracującą z przedsiębiorstwem Policję.

W trakcie postępowania przygotowawczego biegły sądowy z dziedziny informatyki sporządził ekspertyzę z zakresu badań danych, a wynikało z niej, że mężczyzna posłużył się "jedną z form ataku na bazy danych o nazwie SQL Injection, którego celem jest wydobycie poufnych informacji z bazy danych i zakłócenie jej funkcjonowania". W toku postępowania przed sądem, Sąd - mając na uwadze wątpliwości wynikające z doświadczenia życiowego oraz wniosek obrońcy oskarżonego - dopuścił dowód z opinii innego biegłego. Z tej opinii zaś wynikało, że poprzez wprowadzenie ciągu znaków "' or 1=1" mężczyzna nie dokonał złamania zabezpieczeń bazy danych. Nie złamano żadnego hasła dostępowego do bazy danych, nie wpisano kodu programowego, a mężczyzna w żaden sposób nie wpłynął na funkcjonowanie zabezpieczeń bazy danych. Nie usunął również zabezpieczenia, a także nie zmienił haseł dostępowych, nie założył konta dostępowego do bazy danych. Z opinii biegłego wynikało, że wprowadzenie tego ciągu znaków należy uznać za wykorzystanie SQL Injection w celu obejścia zabezpieczeń, na co pozwoliło niewłaściwe zabezpieczenie bazy danych. Formularz logowania i serwis internetowy był tak skonstruowany, że podany przez mężczyznę ciąg znaków był dopuszczalnym ciągiem danych wejściowych dla tego typu pól formularza. Poprawność zaś tego ciągu znaków powinna zweryfikować aplikacja sprawdzając, czy w bazie danych jest zapisany użytkownik o takiej nazwie lub posiadający takie hasło i wygenerować odpowiedni komunikat o błędzie.

Obrona nie kwestionowała faktów, a mężczyzna składał wyjaśnienia zgodnie z ustalonym przez sąd stanem faktycznym. Obrona kwestionowała jednak, że działania mężczyzny zawierały wszystkie znamiona czynu zabronionego z art. 267 §1 KK, w szczególności zdaniem obrony nie wypełniono znamienia "przełamania zabezpieczeń". Dodatkowo mężczyzna wyjaśniał, że nie używał programu służącego do łamania zabezpieczeń.

Sąd pod przewodnictwem Sędziego SR Andrzeja Molisaka zważył co następuje:

Wypada jeszcze raz przypomnieć słowa uzasadnienia: "Nie można przełamać czegoś, co nie istnieje" i zaproponować rozważenie, czy jeśli nie można przełamać, to - na podobnej zasadnie - nie da się "obejść" czegoś, co nie istnieje. Poszukując informacji na temat jednej z obecnie procedowanej "ścieżek nowelizacji" Kodeksu karnego można sięgnąć do tekstu Tak, tak, nowelizują kodeks karny... wizerunki małoletnich, hacking, 269b.... Ustawa nowelizująca m.in. treść art. 267 § 1 Kk została uchwalona na sejmowym posiedzeniu nr 22 dnia 19 września 2008 r. 22 września ustawę przekazano Prezydentowi i Marszałkowi Senatu. Proces legislacyjny dla tej nowelizacji jeszcze nie jest zakończony.

Poproszony przez właśnie uniewinnionego o możliwość umieszczenia przy tej relacji paru słów - oddaję mu głos:

Przeczytaj również: