Pentesty oprogramowania a własność intelektualna
Czy prowadząc kontrolowany atak na system komputerowy w celu wykrycia luk w jego zabezpieczeniach, można naruszyć cudze prawa autorskie albo tajemnicę przedsiębiorstwa?
Na systemach informatycznych i programach opiera się znaczna część działalności instytucji publicznych i przedsiębiorstw, w tym z sektora zaufania publicznego. W systemach tych przetwarzane są najistotniejsze dane, takie jak dane osobowe obywateli i klientów czy dane finansowe. Do tego dochodzi internet rzeczy (ang. Internet of Things). Komunikując się z urządzeniami za pomocą aplikacji w smartfonie, możemy z dowolnego miejsca regulować pracę rolet okiennych, oświetlenia, ogrzewania czy piecyka.
Cele pentestów
Coraz istotniejsza staje się więc weryfikacja wykorzystywanego w tych obszarach oprogramowania. Specjalistyczne testowanie nie ogranicza się do sprawdzenia zewnętrznej warstwy aplikacji, widocznej dla użytkownika, ale wymaga pewnej ingerencji w oprogramowanie. Takie testowanie służy zidentyfikowaniu luk w systemie zabezpieczeń. Pozwala ono zweryfikować poziom bezpieczeństwa, wykryć możliwe nieprawidłowości w funkcjonowaniu urządzeń z danym oprogramowaniem i sprawdzić błędy w logice działania oprogramowania. Nazywa się je zbiorczo testowaniem penetracyjnym lub pentestami (tzw. penetration tests lub pentests).
Czy takie testowanie może wywoływać konsekwencje w obszarze prawa własności intelektualnej, a jeśli tak, co z tego wynika dla pentestera?
Pentesty a naruszenie prawa autorskiego
Choć pentesty przeprowadza się z reguły na systemach dostępnych przez połączenie internetowe, nie wyklucza to zwielokrotnienia kodu źródłowego testowanego oprogramowania na jakimś nośniku informacji (np. na twardym dysku, karcie pamięci czy nawet na kartce papieru w postaci odręcznego zapisu). Zwielokrotnienie może polegać choćby na wykonaniu krótkotrwałej kopii w pamięci operacyjnej. Ulotność, forma zwielokrotnienia oraz fakt, że dotyczy ono jedynie fragmentu kodu, są tu bez znaczenia.
Nie jest także wykluczone, że pentester w celu prowadzenia testów przetłumaczy kod programu z postaci kodu źródłowego do postaci kodu wynikowego (kompilacja) lub odwrotnie (dekompilacja; ta druga sytuacja będzie zresztą częstsza).
Można też sobie wyobrazić, że pentester (np. przełamując zabezpieczenia programu) dokona jakichś zmian w kodzie źródłowym programu (najczęściej kodzie wynikowym), powodując, że program będzie zachowywał się w inny sposób niż przewidywał jego twórca.
W Polsce zakres autorskich praw majątkowych do oprogramowania wyznacza art. 74 ust. 4 Prawa autorskiego. Obejmuje on m.in. zwielokrotnienie programu komputerowego i dokonywanie w nim zmian. Nie jest więc wykluczone, że pentesty mogą doprowadzić do ingerencji w monopol prawnoautorski. Należy jednak rozróżnić dwie sytuacje.
Sytuacja 1
Pentester otrzymuje zlecenie przeprowadzenia testów penetracyjnych. Takie testy zamawiane bywają np. przez banki, ministerstwa czy urzędy miasta. Chodzi o przeprowadzenie kontrolowanych ataków na ich systemy i wykrycie słabości. W tym wypadku zakres ingerencji w oprogramowanie wyznaczać powinna umowa, ewentualnie warunki zamówienia, jeśli idzie o instytucje publiczne. Pentester działa wtedy za zgodą właściciela praw autorskich. Zgoda wyłącza naruszenie praw autorskich.
Należy jednak pamiętać, aby w umowie o przeprowadzenie testów penetracyjnych dokładnie opisać zakres i sposób prowadzenia testów. Z punktu widzenia zamawiającego bardzo ważne będą też postanowienia dotyczące zachowania w tajemnicy informacji (w tym o lukach i wadliwościach oprogramowania) uzyskanych w związku z penetracją. Z punktu widzenia pentestera istotne będą postanowienia, że zamawiający zrzeka się wobec niego roszczeń z tytułu naruszenia praw własności intelektualnej związanych z ingerencją w oprogramowanie. Równie ważne będą postanowienia regulujące zasady odpowiedzialności za możliwe negatywne skutki testów, np. za szkody wyrządzone osobom trzecim. Inną, często pomijaną kwestią jest uregulowanie praw własności intelektualnej, w tym praw autorskich i praw do know-kow do rezultatów testowania, np. dokumentacji i raportów.
Sytuacja 2
Pentester działa bez zlecenia. W zasadzie jego działanie bliższe jest działaniu hakera. Dokonuje ataku na oprogramowanie bez autoryzacji podmiotu uprawnionego z tytułu praw autorskich. Ingeruje więc w prawnoautorski monopol uprawnionego, nawet jeśli działa w celu wykrycia luk i błędów, a po testowaniu informuje o odkrytych słabościach, aby umożliwić uprawnionemu ich wyeliminowanie. Czy w takiej sytuacji da się jakoś wyłączyć naruszenie?
Po pierwsze można rozważyć, czy takie działanie pentestera mieści się w którymś z wyłączeń (nie przesądzając ich charakteru prawnego) przewidzianych w art. 75 Prawa autorskiego, zwłaszcza w ust. 2 pkt 2 i 3 tego artykułu. Wyznacza on dwie dozwolone techniki tzw. inżynierii wstecznej (ang. reverse engineering). Pierwsza to tzw. reverse analysis (art. 75 ust. 2 pkt 2), a druga to tzw. zezwolenie na dekompilację programu (art. 75 ust. 2 pkt 3). Przy zachowaniu pewnych warunków są one dozwolone i nie będą stanowić naruszenia prawa autorskiego. Pierwsza technika to „obserwowanie, badanie i testowanie funkcjonowania programu”, przy czym musi ono służyć poznaniu idei i zasad leżących u podstaw programu, a analiza musi się odbywać wyłącznie w trakcie „wprowadzania, wyświetlania, stosowania, przekazywania lub przechowywania” programu komputerowego. Aby wyłączyć naruszenie, aktywność pentestera nie może prowadzić do wprowadzania zmian strukturze programu lub tłumaczenia formy programu. Druga technika może zostać wykorzystana wyłącznie do uzyskania informacji pozwalających na zapewnienie współdziałania programów, a skorzystanie z niej jest obwarowane szeregiem dodatkowych wymogów. Wydaje się więc, że typowe testowanie penetracyjne może wykraczać poza obie ww. formy.
Po drugie można rozważać, czy samozwańcze działanie pentestera nie mogłoby zostać zakwalifikowane jako zajmowanie się cudzymi sprawami bez zlecenia na warunkach określonych w art. 752 i nast. k.c. Próba wyłączenia naruszenia w oparciu o taką podstawę nie wydaje się jednak uzasadniona.
Po trzecie pentester i właściciel praw autorskich, ze względu na interes leżący po obu stronach, mogą już po fakcie zgodzić się na zawarcie umowy o wykonanie testów penetracyjnych sankcjonującej przeprowadzoną uprzednio penetrację. Obowiązują wówczas te same reguły konstrukcji umowy jak w sytuacji nr 1.
Pentesty a naruszenie tajemnicy przedsiębiorstwa
Ustalenie, czy testowanie penetracyjne oprogramowania może stanowić naruszenie tajemnicy przedsiębiorstwa, jest kontrowersyjne. Wymaga z pewnością wcześniejszego rozważenia, czy informacja o słabościach oprogramowania podlega w ogóle ochronie jako tajemnica przedsiębiorstwa.
Przy tej okazji warto na początku wskazać na tzw. back-doory, czyli luki w zabezpieczeniach, które wprowadzone są do oprogramowania w sposób zamierzony (najczęściej w celu późniejszego wykorzystania). Należy odróżnić je od słabości i braków przypadkowych, o których twórca rzeczywiście nie ma pojęcia. Czemu to rozróżnienie jest istotne? Zgodnie z art. 11 ust. 4 u.z.n.k. informacja jest tajemnicą przedsiębiorstwa, jeżeli spełnia trzy przesłanki: ma wartość gospodarczą, nie została ujawniona do wiadomości publicznej oraz podjęto działania niezbędne do zachowania jej poufności. W przypadku backdoorów uprawnionemu niewątpliwie zależy na zachowaniu ich w poufności i zapobieżeniu wyciekom. Inaczej jest w przypadku luk niezamierzonych, których uprawniony nie jest przecież świadomy, a więc trudno mówić o podejmowaniu wobec nich działań służących zachowaniu ich w poufności. Paradoksalnie mogłoby to oznaczać, że te ostatnie nie są chronione tajemnicą przedsiębiorstwa. Wydaje się jednak, że nawet w takim wypadku można by mówić o zachowaniu w poufności zasad działania oprogramowania rozumianego jako całość. Nie jest zatem wykluczone, że nieautoryzowane pentesty mogą w niektórych przypadkach prowadzić do naruszenia tajemnicy przedsiębiorstwa z art. 11 ust. 1 u.z.n.k., gdy informacja o słabościach zostanie przez pentestera wykorzystana, np. ujawniona na forum internetowym. Nie można też wykluczyć, że w niektórych przypadkach już samo uzyskanie informacji mogłoby stanowić naruszenie tajemnicy przedsiębiorstwa.
Niezależnie od powyższego można też rozważać, czy nieautoryzowane pentesty mogłyby zostać uznane za działanie sprzeczne z prawem lub dobrymi obyczajami (tj. naruszające art. 3 ust. 1 u.z.n.k.). Z drugiej jednak strony niektóre informacje nie podlegają ochronie ze względu na interes publiczny, np. jeśli stanowią sposób oszukiwania klientów.
Ponadto pentester musi liczyć się z tym, że jeśli jest jednocześnie użytkownikiem oprogramowania, które testuje, najczęściej wiąże go umowa licencyjna, która może zakazywać prowadzenia tego rodzaju testowania oprogramowania. Wówczas penetracja (nawet jeśli nie stanowi czynu nieuczciwej konkurencji) może powodować odpowiedzialność kontraktową po stronie pentestera.
Podsumowanie
Autoryzowane pentesty to bardzo specjalistyczny rodzaj testowania. W Polsce wciąż należą do niszowo wykonywanych. Poza problemami z dziedziny własności intelektualnej mogą też wywoływać konsekwencje w wielu innych obszarach prawa, np. karnego czy związanego z ochroną danych osobowych i prywatności, w szczególności jeśli wykonywane są bez zgody uprawnionego. W przypadku pentestów wykonywanych za zgodą warto pamiętać o zawarciu stosownej umowy i jej prawidłowym skonstruowaniu. Umowa, poza typowymi dla kontraktów postanowieniami, powinna określać zakres testów, sposób ich przeprowadzania, zasady zachowania poufności informacji, zasady odpowiedzialności za możliwe negatywne skutki testowania, a także regulować prawa własności intelektualnej do wytworów będących wynikiem testowania.