Od początku tworzenia systemów operacyjnych dla mainframe’ów, serwerów i minikomputerów użytkowanych równocześnie przez wielu użytkowników, podstawową zasadą było, że żaden z działających programów użytkowych nie mógł mieć wpływu na inny działający równocześnie program, a w szczególności nie mógł się dostać w sposób niekontrolowany w obszar działania systemu operacyjnego. Argumenty funkcji, zwanych zleceniami (obecnie to API) systemu, w chwili ich wywołania z programu były/są dokładnie kontrolowane co do prawidłowości zakresu wartości ich danych, tak aby nawet przypadkiem nie mogły mieć szkodliwego wpływu na działanie systemu. W przypadku wykrytego błędu, system „wyrzucał” z obsługi taki program z komunikatem FAULT.

Zabezpieczano również instalacje komputerowe – do sali z komputerami i urządzeniami peryferyjnymi wstęp miała tylko upoważniona obsługa, a terminale dla użytkowników oraz karty z programami i wydruki wyników znajdowały się w innej sali. Dzisiaj to może śmieszne, ale nawet linia telefonu wewnętrznego do sali komputerowej nie miała wyjścia na miasto. Pamiętajmy, że wtedy jeszcze nie było sieci komputerowych. Po uruchomieniu pierwszej sieci ARPANET w 1971 r. pojawił się pierwszy wirus – jeszcze mało groźny, bo wyświetlił jedynie na atakowanym komputerze wiadomość: „I’m the creeper, catch me if you can!”.

Sytuacja uległa zmianie wraz z pojawieniem się mikrokomputerów personalnych do użytkowania przez jedną osobę. Ich pierwsze systemy operacyjne były bardzo proste i obsługiwały tylko jeden aktualnie wprowadzony do pamięci operacyjnej program. Nie było potrzeby dbać o bezpieczeństwo systemu i programu. Od 1982 roku zaczęły się pojawiać wirusy przekazywane do komputerów w plikach na dyskietkach. Czasem były niegroźne – odwracały napisy na ekranie, ale często niszczyły system plików na dysku – ich autorzy mieli z tego powodu jedynie czystą, złośliwą satysfakcję. Wraz z pojawieniem się internetu, coraz szybszego i szybko rozbudowywanego, wszystkie komputery – również te personalne – a także smartfony w sieci zostały wystawione na działanie ataków hakerskich.

Owszem, deweloperzy oprogramowania systemowego starali się dokładnie go testować, aby nie było w nim błędów. Równocześnie umieszczali w programie „tylne drzwi” do systemu, aby można było wykryć błędy w trakcie eksploatacji, włączając poprzez te wejścia śledzenie wykonywania się procesów oraz sprawdzając zmiany wartości kluczowych danych systemu. Swoją drogą, takie sekretne wejścia pozostawia się też na żądanie służb, chociaż same firmy się do tego nie przyznają.

Niestety liczba tych wejść i błędów – dziur w oprogramowaniu – jest zbyt duża i coraz to nowe są odkrywane przez inteligentnych programistów – wolnych strzelców. Po wykryciu mogą oni przekazać opis tego błędu do producenta oprogramowania, uzyskując stosunkowo niewielką nagrodę. Jednak wielu z nich taki eksplojt może wykorzystać dla własnej korzyści, sprzedając go w szarej strefie. Szczególnie cenne są eksplojty dnia zerowego, czyli znane jeszcze tylko ich odkrywcy. Odkrywcy dziur – genialni, profesjonalni informatycy oraz ci mający dostęp do kodu źródłowego tegoż oprogramowania – niewiele ryzykują sprzedając swoje odkrycia. W końcu producent noża nie odpowiada za dokonane nim morderstwo.

Producenci oprogramowania nie są w stanie usunąć wszystkich błędów z oprogramowania. Jakieś 20 lat temu dowiedziałem się od osoby nadzorującej jedną z wersji znanego systemu operacyjnego, że producent – znając lokalizację tych dziur – nie wszystkie je usuwa. Przyjmuje, że wystarczy, że dany system jest „good enough”, bo według zasady Pareta usunięcie 80 proc. błędów kosztuje 20 proc., a pozostałych 20 proc. błędów to już wydatek na poziomie 80 proc. kosztów serwisowania systemu. Niedługo po wspomnianej rozmowie zwiedzałem halę montażu Boeinga 777, który składa się z około 1 mln części. Zastanawiałem się, czy tam też stosują podejście „good enough”? Wtedy uważałem, że to jest niemożliwe, ale w ostatnich latach właśnie błędy w oprogramowaniu, zamówionym po niższych kosztach poza firmą, były przyczyną uziemienia Boeingów 737 MAX czy też wymuszania restartów oprogramowania w Airbusach A350.

Nic dziwnego, że producenci oprogramowania systemowego zabezpieczają się prawnie w umowie licencji przed odpowiedzialnością finansową z tytułu problemów mogących się pojawić z powodu istnienia błędów w oprogramowaniu. Mają też prawne pretensje do firm, które opracowują programy szpiegowskie korzystające z dziur, aby zainstalować się w ich oprogramowaniu. Ostatnio Apple pozwał producenta Pegasusa za nieuprawnioną ingerencję w system iOS.

Okazuje się też, że również w przypadku oprogramowania open source trudno mieć pewność braku błędów, gdyż większość jego treści nie jest powszechnie weryfikowana. Użytkownicy są więc zmuszeni do korzystania z programów antywirusowych, które mają chronić użytkowane programy przed wirusami czy innymi atakami hakerskimi. Niestety wiele nowych eksplojtów umożliwia hakerom przejęcie kontroli nad oprogramowaniem i uzyskanie wglądu do danych, ich kradzieży lub wymuszenia okupu.

Pegasus nie jest jedynym systemem szpiegowskim, ale ten miał pecha, bo został ujawniony, co samo w sobie go silnie degraduje. Znane są jeszcze inne podobne oraz wiele utrzymywanych w sekrecie. Przecież władze US nie po to z rozgłosem zrezygnowały z Pegasusa, aby nie móc kontrolować terrorystów. To jasne, że mają własne systemy, tym bardziej, że mogą łatwiej poznać detale oprogramowania wiodących producentów amerykańskich dzięki przepisom zawartym w Patriot Act. Również Chiny, Rosja, Niemcy, Anglia, Francja i inni (oraz grupy cyberprzestępców) niewątpliwie mają własne systemy, a tylko mniejsi muszą coś kupić z półki.

W Polsce pojawiły się głosy, że moglibyśmy sami taki system opracować i jest to możliwe. Jednak jakbym był projektantem czy nawet tylko programistą w takim zespole, to chciałbym wiedzieć na jakiego „zwierza” będzie on stosowany. Pierwszym projektantom systemu PESEL w nowej rzeczywistości obniżono emerytury, bo pracowali w złej instytucji… A obecnie ABW oficjalnie poszukuje programistów i administratorów systemów oraz baz danych.

Podsłuchiwanie czy też podglądanie innych było znane od wieków. Z chwilą pierwszych transmisji z wykorzystaniem elektroniki pojawiły się też elektroniczne urządzenia podsłuchowe. Dzięki podsłuchaniu i rozszyfrowaniu depesz sowieckich udało się dokonać cudu nad Wisłą w 1920 roku. W latach 30-tych Kwinto podsłuchał rozmowę telefoniczną Kramera. Dzięki uzyskaniu możliwości rozszyfrowania depesz Enigmy, skrócono WWII o dwa lata. Wraz z rozwojem elektroniki powstawały coraz czulsze mikrofony kierunkowe pozwalające też nagrać dźwięki z drgań szyby pomieszczenia, mikrokamery, a także urządzenia lokalizacyjne. Pokaz tych możliwości dobrze przedstawia film „Rozmowa” z roku 1974(!), ale też pokazuje, jak specjalista od podsłuchów Gene Hackman może stać się celem innych. Zorientowawszy się, że jest podsłuchiwany, w rosnącym przerażeniu zdemolował całe mieszkanie. Zdaje się, że podsłuch był jednak zamontowany w obcasie jego znoszonego buta.

Wielu, nawet niewinnych, zadaje sobie pytanie, jak można się uchronić przed podglądaniem i podsłuchiwaniem przy korzystaniu z komputera oraz telefonu. No cóż, nie ma skutecznej rady. Wyjmowanie baterii, opakowanie w aluminium czy używanie programów antywirusowych nie wystarcza. Jakimś rozwiązaniem jest używanie starszych wersji komórek z oprogramowaniem w ROM, czy też rzadszych typów. Jednakowoż nawet wówczas trzeba się liczyć z możliwością przejmowania rozmów przez „jaskółkę” – podstawiony BTS z silniejszym (niż z tego prawdziwego) sygnałem. Dopiero zastosowanie urządzeń ze specjalną ochroną danych, łącznie z ich szyfrowaniem, może być bezpiecznym rozwiązaniem. Przynajmniej do czasu…

P.S. Wojna na Ukrainie rozpoczęła się od ataku cybernetycznego, niszczącego ukraińskie systemy teleinformatyczne, ale to nie wystarczyło i agresor użył sił ataku konwencjonalnego powodującego rany, śmierć i zniszczenia. Jeszcze za wcześnie, aby tylko wojska cybernetyczne rozstrzygały bezkrwawo spory między stronami.

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.