Odpowiedzialne programowanie, czyli kilka sposobów zabezpieczenia przed błędami

Artykuł

Element dekoracyjnyKażde narzędzie może być wykorzystane zarówno w dobrej, jak i w złej sprawie. Podobnie jest z nową technologią, np. oprogramowaniem komputerowym. Można używać go do rozwiązywania problemów matematycznych, projektowania lub szukania odpowiedzi na zagadki z przeszłości. Można też wykorzystać je do zupełnie innych celów, od kradzieży po szpiegowanie. Co gorsza, także oprogramowanie tworzone w dobrej wierze może być wykorzystane niezgodnie z intencjami twórcy. Czy można się przed tym zabezpieczyć, a jeśli tak, to jak to zrobić?

Studium przypadków

Niedawno przed trudnym wyborem stanął Ladar Levison, twórca serwisu Lavabit, udostępniającego usługę szyfrowanej komunikacji mailowej. Po 10 latach istnienia serwisu Levison ogłosił, że nie jest w stanie zagwarantować użytkownikom ochrony ich prywatności. Ponieważ w przypadku Lavabitu klucze umożliwiające szyfrowanie przechowywane były przez dostawcę usługi, w świetle amerykańskiego prawa i praktyk tamtejszych służb, miały zostać wydane agentom, którzy z nakazem sądowym zgłosili się po dostęp do poczty Edwarda Snowdena.

Nieco inaczej wyglądała sprawa usługi TrueCrypt, popularnego i prostego w obsłudze narzędzia do szyfrowania dysków. Bezpieczniejszego niż Lavabit, gdyż klucze przechowywał użytkownik, a dostawca nie miał możliwości odszyfrowania danych. Nie tak dawno na stronie projektu ukazała się informacja, że w związku z zakończeniem wsparcia dla systemu operacyjnego Windows XP stosowanie TrueCrypta nie jest już zalecane. Jednocześnie opublikowana została wersja 7.2 programu, a wszystkie starsze zniknęły. Nie wiadomo, co się dokładnie wydarzyło, ale najbardziej prawdopodobna wersja głosi, że amerykańskie służby próbowały zmusić twórców oprogramowania do umieszczenia w nim wtyczki (luki bezpieczeństwa), która umożliwiałaby odczytywanie zaszyfrowanych danych. Specjaliści odradzają korzystanie z wersji 7.2: jej kod budzi wątpliwości pod kątem zgodności z opisem, a sami twórcy usługi dawali – nie wprost – znać, że znaleźli się na celowniku służb i ich oprogramowanie może być niebezpieczne.

Zewnętrzna weryfikacja oprogramowania

Problem zaufania do oprogramowania, które instalujemy na swoich komputerach jest tak stary, jak komputery osobiste. Skąd możemy wiedzieć, że dany program nie jest szkodliwy? Twórcy oprogramowania mogą zadbać o weryfikację ich produktów na różne sposoby. TrueCrypt przez wiele lat cieszył się zaufaniem użytkowników między innymi dlatego, że jego autorzy – chociaż nie udostępniali całości kodu na otwartej licencji – poddawali je audytowi bezpieczeństwa. Z tej perspektywy przewagę ma otwarte oprogramowanie: każdy zainteresowany może przeanalizować kod. Oczywiście niewielu użytkowników to potrafi, ale tu z pomocą przychodzi kultura ruchu open source. Zasada jest podobna jak wśród wikipedystów: hobbyści analizują kod i zgłaszają poprawki, a „maintainerzy” sprawdzają, czy są one rzeczywiście uzasadnione i mają na celu poprawę bezpieczeństwa, a nie sabotaż (w ten sposób eliminują „zatruwaczy” kodu). Udostępnienie kodu oprogramowania do analizy zewnętrznej bez prawa do wprowadzania zmian – jak to było np. w przypadku TrueCrypta – również stanowi zabezpieczenie, ale już naprawa błędu leży w gestii twórcy oprogramowania, który nie zawsze chce lub może zrobić to od razu.

Odpowiedzialne ujawnienie

Mimo rosnącego zainteresowania otwartym oprogramowaniem, produkty własnościowe wciąż dysponują ogromną przewagą rynkową. Chroniony kod źródłowy nie może zostać poddany zewnętrznej analizie, przez co producenci mogą umieszczać w nim dowolne dodatki śledzące lub tzw. backdoory (celowe luki w zabezpieczeniach). Tak było na przykład z urządzeniami Apple z systemem iOS.

Jednak nawet własnościowe oprogramowanie poddawane jest różnego rodzaju próbom: hakerzy (hobbyści lub specjaliści od bezpieczeństwa IT) szukają luk i zamiast wykorzystać je do własnych celów, zgłaszają błąd producentowi, który ma określony czas na poinformowanie użytkowników lub naprawienie go. Jeśli tego nie zrobi, znalazca informuje użytkowników, że firma nie dba o ich bezpieczeństwo. Takie działanie nazywa się odpowiedzialnym ujawnieniem (ang. responsible disclosure) i producenci oprogramowania zaczynają dostrzegać jego zalety. Na przykład Google uruchomił niedawno Project Zero, w ramach którego zatrudnił specjalistów od bezpieczeństwa danych do szukania luk w usługach firmy; w serwisie Bounty Source autorzy oprogramowania przyznają nagrody innym programistom i użytkownikom za znalezienie i zgłoszenie luk w swoim oprogramowaniu.

Project Zero firmy Google i nagrody Bounty Source mogą stanowić przykład symbiozy korporacji internetowej z niezależnymi specjalistami od bezpieczeństwa. Jednak nie wszystkie firmy są tak postępowe. Niektóre w hobbystycznych próbach przełamywania zabezpieczeń dopatrują się przestępstwa i zamiast podziękować hakerowi i naprawić błąd w oprogramowaniu, pozywają go za próbę włamania. W polskich mediach niestety częściej pisze się o sprawach, w których firma uznała, że haker działał na jej szkodę. Taka postawa budzi jednak poważne zastrzeżenia z punktu widzenia dbałości o bezpieczeństwo użytkowników, które powinno stać na pierwszym miejscu listy zasad firmy produkującej oprogramowanie.

* * *

Post scriptum: W kontraście do działań firm i specjalistów mających na celu zwiększenie bezpieczeństwa oprogramowania stoją ogromne inwestycje rządów państw całego świata w łamanie kryptografii i umieszczanie luk w oprogramowaniu. Tu jednak przychodzi z pomocą idea społeczeństwa obywatelskiego, które rękami organizacji obywatelskich i aktywistów ma kontrolować działania rządów.

Anna Obem
Współpraca: Michał „czesiek” Czyżewski, Kamil Śliwowski

Polecamy:

Der Spiegel: Shopping for Spy Gear: Catalog Advertises NSA Toolbox

The Wired: NSA’s Decade-Long Plan to Undermine Encryption Includes Backdoors, Stolen Keys, Manipulating Standards

Electronic Frontier Foundation: The Government Wants A Backdoor Into Your Online Communications

Tekst powstał w ramach projektu „Cyfrowa Wyprawka dla dorosłych 2” współfinansowanego przez Ministerstwo Administracji i Cyfryzacji oraz indywidualnych darczyńców Fundacji Panoptykon. Wkrótce ukażą się kolejne artykuły z serii.

Dodaj komentarz