Testy penetracyjne oprogramowania a własność intelektualna

Transkrypt

Testy penetracyjne oprogramowania a własność intelektualna
Testy penetracyjne
oprogramowania
a własność intelektualna
Lena Marcinoska
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. backdoory, 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.

Podobne dokumenty