Oprócz tych nieoczekiwanych błędów, w oprogramowaniu systemowym są też umieszczane „tylne drzwi” (backdoor), potrzebne deweloperom tego oprogramowania do wnikania w błędnie działające lub zawieszające się programy w celu wyśledzenia przyczyny błędu. Takich utajnionych drzwi może być wiele, ale nie ma takiej tajnej rzeczy, która nie może być przez kogoś ujawniona. Dodatkowo w większości systemów teleinformatycznych, na żądanie służb, umieszczane są również dla nich „tylne drzwi”, przez które mogą tajnie zaglądać do systemu, obserwując działanie i dane programu podejrzanego użytkownika. Co prawda producenci oprogramowania odżegnują się od takich usług na rzecz służb, ale Pat-riot Act oraz obowiązki wobec obronności, a także zwalczanie terroryzmu i wielu przestępstw wymusza te funkcje.

A niejako potwierdzeniem tego stanu rzeczy niech będzie fakt, że dwa lata po ucieczce Edwarda Snowdena do Rosji, z baz danych NSA w USA nieznana do dzisiaj grupa zaczęła wykradać informacje o tajnych działaniach agencji, w tym jej narzędzia hakerskie do inwigilowania systemów teleinformatycznych. W czerwcu 2017 roku hakerzy rosyjscy sprawdzili efektywność tych narzędzi, przeprowadzając destrukcyjny atak na całą ukraińską infrastrukturę informatyczną, uniemożliwiając ludności korzystanie z bankomatów i terminali płatniczych, a dodatkowo wyłączono monitorowanie promieniowania w Czernobylu. Kod tego ataku, o nadanej mu nazwie непетя (NotPetya) został rozsiany po całym świecie i zainfekował systemy wielu firm. Przypominał ransomware i chociaż nie żądał okupu, spowodował w samej Ukrainie straty na poziomie około 10 mld dol.

Na marginesie, nie rozumiem dlaczego nie zakazano wypłacania okupu na rzecz cyberprzestępców „częstujących” użytkownika atakiem ransomware. Powinna tu być stosowana zasada, że z terrorystami się nie negocjuje, nawet w przypadku zagrożenia życia zakładników, co jest często trudne do zaakceptowania. Trudno – lepiej utracić TB danych i możliwość świadczenia usług, zamiast dofinansowywać cyberprzestępców (a może też cyberżołnierzy dorabiających sobie na boku). Świadomość nikłej szansy na zyskanie okupu zmniejszyłaby liczbę takich ataków.

Wykrywanie błędów w oprogramowaniu służącym do tworzenia eksplojtów umożliwiających włamanie się do danego systemu wymaga specjalistycznej wiedzy na jego temat i setek godzin testów, jak też dostępu do kodu źródłowego tego oprogramowania i jego analizy. Stąd autorami nowych eksplojtów dnia zerowego są niestety przeważnie byli autorzy takiego oprogramowania, którzy sprzedają swoje eksplojty na czarnym rynku. Innym źródłem pozyskania kodu źródłowego programu jest włamanie się do zasobów dewelopera i skopiowanie kodów źródłowych jego oprogramowania. Dlatego też ochrona kodów źródłowych przez ich producenta powinna stanowić pierwszy ważny krok w bezpieczeństwie systemów informatycznych. W zasadzie nikt w firmie, z wyjątkiem wzajemnie kontrolowanych uprawnionych osób, nie powinien mieć dostępu do kodów całości oprogramowania. A fakt wykradzenia tych kodów powinien być dla wszystkich użytkowników poważnym sygnałem naruszenia zasad cyberbezpieczeństwa.

Czy można zaprojektować i wdrożyć systemy teleinformatyczne całkowicie odporne na cyberataki? Twierdzę, że tak, ale to wymaga ich znaczącego przeprojektowania oraz odmiennych zasad eksploatacji. Każdy moduł takiego systemu powinien mieć na łączach z innymi modułami funkcje sprawdzania prawa wykonywania danej operacji, odpowiednio sygnowanej. Zgodnie z regułami niezawodności każdy moduł powinien mieć dwie, trzy wersje, z których każda została opracowana przez inny zespół, a nawet inną firmę, i które, działając równolegle, sprawdzałyby na łączach identyczność uzyskanych rezultatów. Wtedy błąd czy ingerencja w działanie jednej z wersji mogłaby zostać wykryta.

Dodatkowo całe systemy informatyczne, przetwarzające czy też zarządzające krytycznymi danymi lub infrastrukturą, powinny być fizycznie odseparowane od publicznej sieci internetowej. Wystarczyłyby kontrolowane łącza przekazywania transakcji do wykonania oraz udostępniania wyników do/z systemu do sieci. I nie powinno być w systemie żadnych tylnych drzwi, a te potrzebne do rozwoju systemu powinny  być w fazie eksploatacji „zaplombowane”.

To jest oczywiście szkic sposobu na bezpieczne systemy informatyczne. Pytanie tylko, czy na to się zgodzą służby, chcące inwigilować działania przestępców, terrorystów, opozycji i innych wrogich sił?

Wacław Iszkowski  

Autor w latach 1993–2016 był prezesem Polskiej Izby Informatyki i Telekomunikacji. Pracował też w firmach: Oracle, DEC Polska, 2SI, EDS Poland, TP Internet. Obecnie jest senior konsultantem przemysłu teleinformatycznego.