Chore programy w podatnym systemie

Chore programy w podatnym systemie

"Wirus komputerowy - najczęściej prosty program komputerowy, który w sposób celowy powiela się bez zgody użytkownika. Wirus komputerowy w przeciwieństwie do robaka komputerowego do swojej działalności wymaga nosiciela w postaci programu komputerowego, poczty elektronicznej itp. Wirusy wykorzystują słabość zabezpieczeń systemów komputerowych lub właściwości systemów oraz niedoświadczenie i beztroskę użytkowników" - napisano w Wikipedii.

Wirusy się replikują i rozprzestrzeniają po całej Sieci. Nie tylko wirusy, ale też robaki i inne insekty. Ogólnie mówiąc malware czyli malicious software. Wpychają się każdą dziurą. Tyle, że to nie wirus jest odpowiedzialny za wyrządzone szkody, a człowiek, który go napisał. A niekiedy człowiek, który go "wpuścił do Sieci". A czasem nikt, bo są kraje, w których infekowanie Sieci wirusami, albo pisanie wirusów nie jest karalne. A szkody mogą być olbrzymie. Sieć jest transgraniczna, prawo krajowe, a winę nie zawsze da się przypisać sprawcy. Nie zawsze też wiadomo, kto jest sprawcą. Zwłaszcza w erze wszelkiego rodzaju narzędzi do podręcznego przygotowywania "standardowych" wirusów (virus construction toolkit). Czasem się zdarzy, że przedsiębiorstwa zajmujące się profesjonalnie walką z wirusami zainfekują swoich klientów. A potem wielu patrzy w sufit (lub ogląda paznokcie) nerwowo pogwizdując jakąś melodię. Czasem pojawi się "robak jawności" i stąd wiadomo, co znajduje się w tajnej dokumentacji elektrowni lub banku.

Odwiedź dział "wirusy" niniejszego serwisu.

Opcje przeglądania komentarzy

Wybierz sposób przeglądania komentarzy oraz kliknij "Zachowaj ustawienia", by aktywować zmiany.

Nie podoba mi się fakt, że

Nie podoba mi się fakt, że winę za szkody wyrządzone przez wirusy ponosi ich autor. Jest to nielogiczne.
To tak jakbym robiąc umyślnie zwarcie w swoim gniazdku w mieszkaniu wywalił zasilanie połowy województwa, fabryk i szpitali. Ale to nie moja wina, że nie zadziałało zabezpieczenie zasilania budynku, że stacja transformatorowa dała ciała. Ja tylko zwarłem kabelki.
Wydaje mi się, że powinien być odpowiedzialny konstruktor systemu, czyli jak w normalnym prawodawstwie elektryk odbierający instalację i podpisujący się "pod nią", tak w teleinformatyce powinien być odpowiedzialny konstruktor systemu.
Przytłaczająca większość wirusów to od zawsze kody pracujące w oparciu o niedoskonałości systemów Microsoft. Notabene dziecko Billa Gatesa to jeden z najbogatszych podmiotów na świecie, dlaczego też zgodnie z wszelką logiką nie obarczyć ich winą za sprzedawanie wadliwych systemów operacyjnych, które tak naprawdę zagrażają stabilności kraju(ów) w wielu, wielu aspektach.
Sięgnijmy do kieszeni najbogatszych i faktycznie winnych całemu procederowi.
Wszyscy wiemy ile to krytycznych poprawek zostaje doinstalowanych w czasie pracy Windowsów.
To tak, jakbyś, drogi czytelniku, kupił sobie za kupę kasy, piękny, nowy samochód, po czym co kilka dni był wzywany do autoryzowanego serwisu i dowiadywał się, że koniecznie trzeba wymienić to, czy tamto, słysząc za każdym razem - "To cud że pan się nie zabił w tym aucie"...

Takie moje skromne zdanie.

Czy na tej samej zasadzie

Czy na tej samej zasadzie powinniśmy popierać rzucanie kamieniami w antywłamaniowe szyby?

Czy jesteś w stanie wyobrazić sobie sytuację gdy autor wirusa ma dobre intencje? Jeżeli pisze wirusa, aby komuś zaszkodzić postępuje nagannie moralnie i chociażby z tego tytułu powinien być pociągnięty do odpowiedzialności.

Mi udało się wymyślić taką sytuację, ale w dalszym ciągu pojawiał się powód do ukarania takiego twórcy. Jeżeli ktoś napisał wirusa tylko po to, żeby przetestować wewnętrzny system lub sprawdzić działanie na przykład programu antywirusowego nad którym pracuje jego firma nie postąpił nagannie. Jednak ukaranie go w tym wypadku było by słuszne ze względu na to, że nie zadbał o utrzymanie wirusa we własnym, kontrolowanym środowisku. Wypuszczenie go "na zewnątrz" połączone z brakiem "furtki" pozwalającej wyłączyć wirusa lub z brakiem innych ograniczeń jego działalności (np uaktywniania się tylko w komputerach WŁASNEJ sieci na podstawie adresu MAC karty sieciowej).

Tak czy siak odpowiada się więc za wyrządzoną szkodę, która mogłą być wywołana celowo lub nie.

Analogia z szybami jest

Analogia z szybami jest nietrafiona. Głównie dlatego, że wiodący dostawcy usług właśnie tak robią (Netflix nazywa takie rozwiązanie Chaos Monkey). Najpopularniejsze portale nawet za to płacą osobom trzecim (vide programy "bug bounty" na Facebooku, Google, w Microsofcie). Chodzi o testowanie non-stop odporności systemu, który się skonstruowało.

Dostawcy usług, którzy nie przeprowadzają takich działań po prostu nie wiedzą o podatnościach w swoich systemach, co nie oznacza, że ich tam nie ma.

Każdy system ma założenia, ma jakieś reguły, które spełnia. W przypadku Internetu wiele osób myśli analogiami i wyciąga z tych analogii nieprawdziwe wnioski. Przykładem takiego wniosku jest przyrównanie adresu IP do adresu konkretnego użytkownika, albo założenie, że wszystkie komputery działają zgodnie z dokumentacją i standardami, albo oczekiwanie, że użytkownik otrzyma tylko zamówione dane. Internet wielu rzeczy ze świata fizycznego nie gwarantuje. Problem pojawia się wtedy, gdy np. w wyniku awarii urządzenia sieciowego serwery dostają pakiety z poprzestawianymi bitami, a projektant systemu w takim przypadku zaproponował jako rozwiązanie zawieszenie się aplikacji.

Wiele firm korzysta na niewiedzy i stara się za wszelką cenę pozbyć odpowiedzialności za systemy, które budują. Czasem doprowadzając sytuację wynikającą z niedopełnienia swoich obowiązków do absurdu (np. tak jak w przypadku "głębokiego ukrycia" danych osobowych na publicznej stronie PKO BP). W ich interesie leży utrzymanie jak najniższej świadomości o tym czym są komputery i jak działa Internet.

Owocem działań bez znajomości istoty problemu są np. przepisy Kodeksu Karnego po nowelizacji, które m.in. jednoznacznie zabraniają używania haseł:

KK Art. 269b.:
§ 1. Kto wytwarza, pozyskuje, zbywa lub udostępnia innym osobom [...] hasła komputerowe, kody dostępu lub inne dane umożliwiające dostęp do informacji przechowywanych w systemie komputerowym lub sieci teleinformatycznej, podlega karze pozbawienia wolności do lat 3.
[...]

Dlatego proponuję odejście od analogii i zastanowienie się nad tym:
- kto korzysta na ciągłym testowaniu?
- kto korzysta na braku testowania?
- kto ponosi odpowiedzialność za wyciek danych i od czego to zależy?
- gdzie w tym wszystkim są użytkownicy i jakie mają przełożenie na dostawców usług?

Ale bug bounty to właśnie

Ale bug bounty to właśnie wprowadzony specjalnie w tym celu program testowy. Producent okien albo sejfów może wprowadzić na przykład takie zawody/testy we własnej fabryce (dalej będę się trzymał tej analogii). Ale nie uprawnia to do próby wybijania szyb w oknach zamontowanych u ludzi.
Trzymając się porównania do sieci elektrycznej, to tak jakby ktoś celowo sprawdzał co może podłączyć do sieci, aby wywalić zasilanie połowy województwa i ominąć zabezpieczenia, które zazwyczaj wyłączają źródło spięcia. Z tym, że w sieci elektrycznej takie rzeczy są (przynajmniej zgodnie z moim stanem wiedzy) niemożliwe, a w kwestii oprogramowania - tak.
Jak dla mnie, to nie zawsze jest tak że otrzymujemy niepełnowartościowy towar, który musimy naprawiać. W większości przypadków byłbym bardziej skłonny do do podejścia, że dostajemy produkt, który jest dodatkowo rozwijany i możemy skorzystać z jego ulepszeń. Co nie zmienia faktu, że uważam, że taki dostawca byłby zobowiązany do wysyłania uaktualnień. Posłużyłbym się tu pojęciem "należytej staranności", czyli jeżeli ktoś reaguje na znane mu dziury jest zwolniony z odpowiedzialności, ale aktywne ich szukanie to już "gratis" i dodatkowy plus dla odbiorców oprogramowania, a nie obowiązek. Tak, jakby serwis auta informował o możliwości wymiany głowic cylindrów, dzięki czemu zmniejszy się spalanie, czy oferował nowy sterownik hamulców dodający do obecnego ABSu system kontroli trakcji.
Owszem, na ciągłym testowaniu korzysta udostępniający usługę i użytkownicy, natomiast traci potencjalny "włamywacz". Owszem, usługodawca ponosi odpowiedzialność za wyciek danych. Ale nie można tego rozumowania użyć w celu usprawiedliwienia twórcy wirusa, a ta notatka jest na temat wirusa i odpowiedzialności za jego napisanie.
Czym różni się osoba testująca (usiłująca dokonać włamania) od włamywacza? Nie można tego oceniać post factum, a teoretycznie zanim nie wykorzysta się znalezionej luki różnica sprowadza się tylko do intencji. Jeżeli ktoś nie zezwala na poszukiwanie dziur w jego systemie, to każda taka próba jest niedozwolona. Była tu na ten temat notatka, której niestety nie udało mi się teraz znaleźć, gdzie wyciągano konsekwencje w stosunku do osoby która testowała system i poinformowała o luce jego administratora. Też poczułbym się nieswojo, jakby po przyjściu do domu leżała na podłodze kartka z informacją o tym, że posiadam kiepski zamek i powinienem kupić na przykład taki, jaki został na niej opisany. A do tego sprowadza się wykorzystywanie luk bez zezwolenia.
Reasumując: skoro tworzenie oprogramowania szkodliwego de facto jest moralnie dozwolone, tylko jeżeli służy do testowania oprogramowania osób, które wyraziły na to zgodę, to użycie go w innym celu, zarówno w złych intencjach, jak i dobrych względem osób, które świadomie nie wyraziły na to zgody będzie już złe i jako takie powinno być karane. A utrata kontroli nad takim programem (w szczególności napisanie go w taki sposób, że sam się replikuje w środowisku niekontrolowanym przez twórcę) zawiera się w tym ostatnim.

Odpowiedzialność za dane.

Bug bounty nie wzięły się z niczego, najpierw było testowanie, potem korporacje stwierdziły, że bardziej się opłaca wprowadzić jasne reguły i procedury obsługi takich przypadków, niż rozpatrywać je indywidualnie. Wiele firm softwarowych nie posiada żadnej ścieżki obsługi zgłoszeń od nieklientów (klientem jest często firma, a nie pracownik firmy).

Producent okien albo sejfów może wprowadzić na przykład takie zawody/testy we własnej fabryce (dalej będę się trzymał tej analogii).

Testowane systemy Googla, Facebooka itp. nie są "we własnej fabryce", to są systemy produkcyjne, z których korzystają zwykli użytkownicy.

... a w kwestii oprogramowania - tak.

Czyli oprogramowanie nie jest napisane adekwatnie do potrzeb i założeń środowiska, w którym ma działać.

Jak dla mnie, to nie zawsze jest tak że otrzymujemy niepełnowartościowy towar, który musimy naprawiać. W większości przypadków byłbym bardziej skłonny do do podejścia, że dostajemy produkt, który jest dodatkowo rozwijany i możemy skorzystać z jego ulepszeń.

Nie mam nic przeciwko oprogramowaniu, które ma w instrukcji instalacji zapisane: "nie udostępniać w publicznej sieci, oprogramowanie nie zostało przetestowane pod względem bezpieczeństwa". Taki producent oprogramowania jest fair wobec klientów i przyjął inne założenia co do środowiska, w którym ma działać aplikacja. Nikt nie będzie oczekiwać od niej zabezpieczeń na poziomie pozwalającym udostępniać ją w Internecie

Problemem jest to, że wielu producentów sprzedaje towar niezgodny z umową i nie przejmuje się konsekwencjami, bo w razie wpadki będzie można odpowiedzialnością obarczyć włamywacza.
Jednym z przykładów jest linia produktów Nexus firmy Cisco, która jest reklamowana [PDF] jako bezpieczny produkt do obsługi sieci wewnątrz datacenter pomimo nienaprawionych podatności umożliwiających zdalne psucie (CSCud14691/CVE-2013-1208, CSCud14710/CVE-2013-1209, CSCud14832/CVE-2013-1211, CSCud14837/CVE-2013-1212). Już w 2014 roku będzie można zakupić urządzenia Nexus z Advanced Security Architecture, która ma się różnić od obecnej tym, że ma działać zgodnie z informacjami z ulotek.

Taka jest po prostu strategia sprzedażowa wielu firm, Cisco nie jest jakimś wyjątkiem. Producenci sprzętu i oprogramowania nie odczuwają potrzeby zapewnienia działania funkcjonalności, które sprzedają.
Wystarczy sprawiać dobre wrażenie, bezpieczeństwa przecież i tak nikt nie będzie testować na swojej jedynej produkcyjnej maszynie za setki tysięcy dolarów. Gdy ktoś znajdzie lukę, to doda się ją do listy "do naprawienia" i będzie sobie wisieć schowana głęboko, żeby przypadkiem nikt jej nie odnalazł przed zapoznaniem się z ulotką reklamową.

czyli jeżeli ktoś reaguje na znane mu dziury jest zwolniony z odpowiedzialności, ale aktywne ich szukanie to już "gratis" i dodatkowy plus dla odbiorców oprogramowania, a nie obowiązek. Tak, jakby serwis auta informował o możliwości wymiany głowic cylindrów, dzięki czemu zmniejszy się spalanie, czy oferował nowy sterownik hamulców dodający do obecnego ABSu system kontroli trakcji.

W takim wypadku sporo producentów sprzętu i oprogramowania robiłoby wszystko, aby zgłoszenia błędów do nich nie docierały. Wymóg posiadania polityki bezpieczeństwa i procedur reakcji na zgłoszenia byłby bardzo fajnym rozwiązaniem.

Jeżeli zastosujemy analogię do samochodów, to obecnie samochód z poduszkami powietrznymi i ABSem może mieć poduszki zwinięte w bagażniku, i nie mieć klocków hamulcowych, a producent w razie wypadku mówi "samochód nie był przeznaczony do udziału w wypadkach, tylko do normalnej jazdy z bezpieczną prędkością, winny tego nieszczęśliwego zajścia jest pirat drogowy". Oczywiście producent nie jest bezpośrednio winny spowodowania wypadku, ale nie poczuwa się też do odpowiedzialności za skutki wypadku spowodowane jego zaniedbaniami, czy fałszywymi hasłami reklamowymi.

Też poczułbym się nieswojo, jakby po przyjściu do domu leżała na podłodze kartka z informacją o tym, że posiadam kiepski zamek i powinienem kupić na przykład taki, jaki został na niej opisany.

Różnica pomiędzy zamkiem fizycznym, a zabezpieczeniem systemu informatycznego jest taka, że w świecie fizycznym włamywacze nie wypuszczają setek tysięcy robotów zaprogramowanych do szukania zamków ze znanymi podatnościami i wynoszenia zawartości mieszkania. W niefiltrowanym Internecie każdy adres jest co kilka dni (czasem częściej) przeszukiwany przez boty właśnie w tym celu. Co więcej właściciel systemu w większości przypadków nie zauważa wycieku danych (skopiowanie danych w przeciwieństwie do wyniesienia telewizora nie zostawia zbyt wielu śladów widocznych na pierwszy rzut oka). Komunikat, nawet zostawiony przez nieproszonego testera, niesie ze sobą informację o podatności i potrzebie przetestowania systemu na własną rękę.

Ad. "Reasumując":
Według mnie ściganie za sam "nieuprawniony dostęp" do danych nie powinno mieć miejsca. Ścigane natomiast powinno być działanie rodzące wymierne negatywne skutki lub brak zgłoszenia odkrytej podatności operatorowi systemu. Np. sam dostęp do panelu sterowania elektrownią atomową nie jest moim zdaniem negatywnym skutkiem (chociaż może mieć negatywne następstwa dla administratora odpowiedzialnego za jego bezpieczeństwo), dopiero zmiana ustawień reaktora (tak, ocena post factum) powinna nieść ze sobą skutki karne.

Według mnie operator systemu i producent oprogramowania powinni być współodpowiedzialni za skutki złego zabezpieczenia. Obecnie chyba tylko przetwarzanie danych osobowych nakłada na przetwarzającego odpowiednie obowiązki w celu ich zabezpieczenia.

Smutne jest to, że naruszenia UoDO są rozpatrywane przez GIODO w trybie decyzji administracyjnej, przez co pomimo wycieku danych postępowanie należy umorzyć po załataniu dziury. Nadal brakuje odpowiedzialności karnej.

Portale, które nie przetwarzają wprost danych osobowych, mogą równie dobrze publikować wszystko jak leci bez informowania użytkowników. Przecież napisali na górze strony "tylko dla osób upoważnionych" co pozwala na ściganie wszystkich nieupoważnionych z Art. 267 § 2 KK.

Ta argumentacja jest jak

Ta argumentacja jest jak najbardziej przekonująca i logiczna. W przypadku nie łatania dziur systemu coś jest na rzeczy z tym niepełnowartościowym produktem.
Jednak nie mogę się zgodzić z nią w pełni.
Określanie legalności/szkodliwości/moralności samego aktu włamania post factum grozi sytuacją, w której włamywacz wie jak przełamać zabezpieczenia systemu, chce sprzedać tą wiedzę na "czarnym rynku", ale jeszcze tego nie zrobił. W postulowanych rozwiązaniach on "po prostu" jeszcze nie zgłosił błędu. Nie zrobił nic złego i nie podlega karze.
Nie ukrywam, że niezmiernie trudne było by określenie, czy lepiej zakazać takiej działalności (a tym samym zabronić ludziom testować systemy, co zapewniło by większe bezpieczeństwo) czy na nią zezwolić (a tym samym utworzyć furtkę dla osób, które chciały by takie luki wykorzystać). To w którym miejscu na takiej osi się mieści się dany pogląd zależy już chyba od indywidualnej wrażliwości i doświadczenia w zakresie prawa (którego u mnie ze świecą szukać).

Zakazać/nakazać

Nie ukrywam, że niezmiernie trudne było by określenie, czy lepiej zakazać takiej działalności (a tym samym zabronić ludziom testować systemy, co zapewniło by większe bezpieczeństwo).

Chciałbym przypomnieć że sam fakt, że coś zostanie prawnie zakazane, nie jest równoznaczny z tym że takie sytuacje przestaną występować, w przeciwnym wypadku 1 dzień po uregulowaniu wszystkiego co jest teoretycznie możliwe do uregulowania należało by zlikwidować sądy, prokuratury, policję oraz więzienia.

Piotr VaGla Waglowski

VaGla
Piotr VaGla Waglowski - prawnik, publicysta i webmaster, autor serwisu VaGla.pl Prawo i Internet. Ukończył Aplikację Legislacyjną prowadzoną przez Rządowe Centrum Legislacji. Radca ministra w Departamencie Oceny Ryzyka Regulacyjnego a następnie w Departamencie Doskonalenia Regulacji Gospodarczych Ministerstwa Rozwoju. Felietonista miesięcznika "IT w Administracji" (wcześniej również felietonista miesięcznika "Gazeta Bankowa" i tygodnika "Wprost"). Uczestniczył w pracach Obywatelskiego Forum Legislacji, działającego przy Fundacji im. Stefana Batorego w ramach programu Odpowiedzialne Państwo. W 1995 założył pierwszą w internecie listę dyskusyjną na temat prawa w języku polskim, Członek Założyciel Internet Society Poland, pełnił funkcję Członka Zarządu ISOC Polska i Członka Rady Polskiej Izby Informatyki i Telekomunikacji. Był również członkiem Rady ds Cyfryzacji przy Ministrze Cyfryzacji i członkiem Rady Informatyzacji przy MSWiA, członkiem Zespołu ds. otwartych danych i zasobów przy Komitecie Rady Ministrów do spraw Cyfryzacji oraz Doradcą społecznym Prezesa Urzędu Komunikacji Elektronicznej ds. funkcjonowania rynku mediów w szczególności w zakresie neutralności sieci. W latach 2009-2014 Zastępca Przewodniczącego Rady Fundacji Nowoczesna Polska, w tym czasie był również Członkiem Rady Programowej Fundacji Panoptykon. Więcej >>