Cyber niebezpieczeństwo
Felieton ten został opublikowany w CRN nr 4/2022
Obecnie eksploatujemy systemy teleinformatyczne, które są poważnie narażane na niebezpieczne dla ich funkcjonowania cyberataki. Wobec masowej skali tych przypadków racjonalniejsze jest mówienie o cyber niebezpieczeństwie.
W dyskusji pomińmy przypadki trollowania oraz masowego rozpowszechniania fałszywych wiadomości tekstowych, fotograficznych dźwiękowych oraz wideo mających wzbudzić kontrowersje, emocje, podburzyć czy zmienić opinie. Szczególnie klipy z osobami z podłożonymi im fałszywymi wypowiedziami są trudne do wykrycia przez mniej zorientowanego odbiorcę. Pomińmy też na razie wyjaśnienie możliwości tworzenia tysięcy botów wzmacniających zasięg rozpowszechniania tych zatrutych informacji.
W tej dyskusji pomińmy nawet problem ataków DDOS, chociaż nas informatyków powinno niepokoić jak łatwo jest uruchomić taki zmasowany atak z wielu zawłaszczonych w tym celu komputerów. Dalej do tego wrócimy.
Zatrzymajmy się chwilę na problemie przechwytywania danych osobowych oraz loginów i haseł użytkowników systemów, pozwalającym wykonywać za nich transakcje, przeważnie prowadzące do kradzieży finansowych lub danych wrażliwych – w sumie znacząco szkodzących tym użytkownikom. Jest dla mnie porażką informatyczną fakt istnienia tak już skomplikowanej struktury loginów, pinów, alfanumerycznych haseł, dwu-poziomych (a już mówi się o trój-poziomowych) uwierzytelnień dostępu, cyfrowych podpisów i biometrycznych identyfikacji, które jednak nie gwarantują 100% bezpieczeństwa danych przynależnych danej osobie lub firmie. A często z racji skomplikowania i masowości stosowania, nawet w przypadku mało istotnych aplikacji, poważnie utrudniają wielu osobom, szczególnie starszym czy mniej sprawnym posługiwanie się systemami informatycznymi. My informatycy, chcielibyśmy tutaj zrzucić winę na użytkowników, że nie są dość uważni i przezorni (hasła trzymają napisane pod klawiaturą), a także nie są sprawni w zapamiętywaniu, przecież tylko kilkunastu pinów i haseł. Ja jednak wierzę, że może z pomocą sztucznej inteligencji da się jeszcze to usprawnić i wzmacniając ochronę dostępu przed nieupoważnionymi będzie to bardziej przyjazne dla zwykłych użytkowników, na czym zyska bezpieczeństwo tych systemów.
Główną przyczyną braku bezpieczeństwa systemów teleinformatycznych są istniejące w nich błędy umożliwiające poprzez eksplojty niekontrolowane wejście do systemu i uzyskanie kontroli nad jego zasobami. Prawdopodobnie obecnie nie ma systemu, który byłby całkowicie pozbawiony takich błędów - inaczej byłby odporny na wszelkie cyberataki. Działania służb cyberbezpieczeństwa przypominają mi załogę Linię Maginota, podobnież mającą być niezdobytą – wojska niemieckie obeszły ją bokiem i weszły do niej od tyłu. Bo też te służby obserwując ruch internetowy oraz działanie systemów mogą jedynie ewentualnie zauważyć oznaki ataku i wyłączając system z sieci (oraz prądu) zatrzymać taki atak, po czym dopiero mogą określić jego rodzaj i ewentualnie namierzyć sprawcę. Następnie mogą wykryć, jaki to błąd w systemie umożliwił taki atak. Niestety często jest to już w ramach sprzątania po poważnych szkodach jakie poczynił ten atak.
Zapewne wielu z nas zadaje sobie pytanie, dlaczego w tych systemach jest pozostawiony taki błąd, który ktoś inny (nie autorzy tego systemu?) wykrył i go wykorzystał? W zasadzie potrafimy też odpowiedzieć na to pytanie. Większość z nich jest efektem niewystarczającego procesu testowania i za to powinny odpowiadać producenci oprogramowania. Nie powinni się zasłaniać w prawnych zapisach licencji, że za takie błędy nie odpowiadają. Pytaniem jest dlaczego użytkownicy oprogramowania zgadzają się na takie zapisy, a nie słyszałem aby któryś z producentów został o to oskarżony i zmuszony do wypłacenia odszkodowania. Może warto użytkować oprogramowanie mniej funkcjonalnie rozbudowane, ale a to dokładniej przetestowane. Po co komu większość z mało a wręcz niepotrzebnych funkcjonalności Windowsów, czy też IOS. Każdy z nas byłby w stanie skreślić wiele z nich. A jeżeli czasem niektóre z nich miałyby być potrzebne to mogłyby być tylko na ten czas instalowane, a po wykorzystaniu usuwane. Przecież nawet kolejny update systemu wymienia w nim kilka MB – pytaniem jest z iloma nowymi błędami. A wszyscy, szczególnie ci zaatakowani, płacimy za to ogromną cenę.
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 to mogą zaglądać tajnie do systemu, a stamtąd obserwować działania i obszar danych wykonywanych programów użytkowników. Co prawda firmy (US) odżegnują się od takich usług na rzecz służb, ale Patriot Act oraz obowiązki wobec obronności, a także zwalczanie terroryzmu i wielu przestępstw wymusza takie funkcjonalności.
A niejako potwierdzeniem 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 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łą infrastrukturę ukraińską infrastrukturą informatyczną uniemożliwiając ludności jakiekolwiek przeprowadzenie elektronicznych transakcji w bankomatach, sklepach, urzędach, a dodatkowo wyłączono monitorowanie promieniowania w Czernobylu. Kod tego ataku, o nadanej mu nazwie непетя (NotPetya) został rozsiany po całym świecie infekując systemy wielu firm. Przypominał on ransomware, nie żądano okupu, ale też spowodował straty na Ukrainie na około 10 mld dolarów.
Na marginesie, nie rozumiem dlaczego nie ma zakazu 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ść braku możliwości zyskania okupu zmniejszyłaby liczbę takich ataków.
Wykrywanie błędów w oprogramowaniu pozwalającym opracować eksplojty umożliwiające włamanie się do systemu wymaga świetnej znajomości takiego oprogramowania i setki godzin jego testowania, albo 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ą takie eksplojty na czarnym rynku i nie mają sobie nic do zarzucenia, gdy taki eksplojt wykorzystany przez cyberprzestępców lub cyberżołnierzy spowoduje znaczące straty finansowe i materialne. Innym źródłem pozyskania kodu źródłowego programu jest włamanie się do zasobów firmy dewelopera oprogramowania i skopiowanie kodów źródłowych jego oprogramowania. Dlatego też ochrona kodów źródłowych przez ich producenta powinna być pierwszym ważnym krokiem 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 oprogramowanie. 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ę, a wszystkie dwa/trzy działają równolegle, sprawdzając na łączach identyczność uzyskanych rezultatów. Wtedy też błąd czy też ingerencja w działanie jednego z nich może zostać wykryta i odpowiednio przetworzona. Dodatkowo całe systemy informatyczne przetwarzające czy też zarządzające krytycznymi danymi lub infrastrukturą powinny być fizycznie odseparowane od publicznej sieci internetowej, a tylko mieć kontrolowane łącza przekazywania transakcji do wykonania oraz udostępniania wyników do/z systemu do sieci.
I na koniec nie ma w systemie żadnych tylnych drzwi, a te potrzebne do deweloperki systemu są w fazie eksploatacji „zaplombowane”. To jest oczywiście szkic takiego rozwiązania bezpiecznych systemów informatycznych. Pytanie tylko, czy na to się zgodzą służby pragnące inwigilować działania przestępców, terrorystów, opozycji i innych wrogich sił? Obawiam się, że się nie zgodzą i będziemy musieli żyć w stanie cyberniebezpieczeństwa.