Historie wirusów komputerowych — część I: Początek

Wstęp

Wirusy komputerowe fascynują mnie od zawsze. Być może dlatego, że początkowo były przejawem pomysłowości ludzkiej i dowodem na posiadanie wystarczającej wiedzy oraz umiejętności, aby stworzyć coś więcej niż standardowy program komputerowy. Dopiero później weszły w etap, w którym zaczęły wyrządzać realne szkody, aby na końcu służyć jako narzędzie do zarabiania pieniędzy albo do walki przemysłowej, czy nawet do działań o charakterze - umownie nazwijmy je - paramilitarnych.

Bliskie jest mi też przekonanie, że cechą wystarczającą dla określenia pewnego zbioru linijek kodu mianem wirusa jest posiadanie przez niego zdolności do samodzielnego rozprzestrzeniania się w podatnym środowisku, bez analizowania czy jest to jego jedyna umiejętność, czy też służy ona innym bardziej zaawansowanym funkcjom. Takiej też definicji wirusa komputerowego będę się trzymał w poniższym i kolejnych tekstach na ten temat.

W biologii uznaje się, iż organizm żywy to taki, który: 1/ jest zdolny do powielania się, 2/ jest zdolny do ewolucji. Obecne wirusy komputerowe szczęśliwie zdolności do ewolucji nie posiadają, zatem nie można ich zaliczyć do organizmów żywych. Mam tutaj na myśli przynajmniej te, które są powszechnie znane. Nie wiemy bowiem, jak daleko posunęły się prace - a na pewno takie są prowadzone - w tajnych laboratoriach wojskowych czy też największych korporacji z branży IT. Nie można też zapominać o działalności hakerskiej, o której nowych pomysłach dowiadujemy się czasami przypadkowo, a często z dużym opóźnieniem.

Tak czy inaczej to dobrze, gdyż pierwszy wirus komputerowy posiadający analogiczną - do organizmów żywych - zdolność do ewolucji i zmian byłby najprawdopodobniej ostatnim, który poznamy, a epoka informatyczna taką, jaką znamy obecnie, zakończyłaby się.

Niniejszy wpis i - mam nadzieję - kolejne, poświęcę różnym historiom związanymi z wirusami komputerowymi, zaczynając od najstarszych z nich, a kończąc na czasach bardziej nam współczesnych.

Początek.

Wbrew wielu dostępnym informacjom, za datę powstania pierwszego wirusa komputerowego należy uznać rok 1971. Był to okres poprzedzający powstanie sieci internetowej w dzisiejszym tego słowa znaczeniu, w którym funkcjonowała sieć ARPANET.

Nie chcę poświęcać zbyt dużo miejsca temu zagadnieniu, więc tylko w celu stworzenia należytego kontekstu dla dalszej opowieści na tytułowy temat za Wikipedią dodam, że ARPANET (ang. Advanced Research Projects Agency Network) to pierwsza sieć rozległa oparta na rozproszonej architekturze i protokole TCP/IP. Jest bezpośrednim przodkiem Internetu.

„W 1967 roku odbyła się konferencja naukowa ARPA na temat technicznych możliwości budowy rozległych sieci komputerowych o rozproszonym zarządzaniu. Przewodnią ideą tej konferencji było ustalenie, czy możliwe jest za pomocą komputerów skonstruowanie takiej sieci łączności, która by nie posiadała central (które wróg może łatwo zniszczyć), lecz umożliwiała automatyczne wyszukiwanie połączeń między dowództwem i oddziałami polowymi nawet przy dużym stopniu zniszczenia infrastruktury telekomunikacyjnej kraju. Najciekawsze rozwiązanie zaproponował Alex McKenzie z Uniwersytetu Stanforda, który zaproponował ideę pakietu informacji z przypisanym do niej adresem, który by automatycznie krążył po sieci „szukając” swojego odbiorcy tak, jak to się dzieje z listami pocztowymi. ARPA zdecydowała się wesprzeć projekt Alexa McKenzie, który stworzył kilkudziesięcioosobowy zespół pracujący na Uniwersytecie Stanford, UCLA i Uniwersytecie Utah. Zespół ten stworzył zręby protokołu TCP (pierwotnie nazwanego IMP) oraz w 1968 wykonał pokaz automatycznego trasowania połączeń w sieci liczącej kilkanaście serwerów rozproszonych na tych trzech uniwersytetach. W latach 1967-1972 eksperymentalna sieć rozrastała się na kolejne uczelnie. W 1971 roku ARPA zdecydowała się ujawnić protokół TCP/IP i zezwoliła na przyłączanie do Arpanetu lokalnych sieci akademickich. W 1980 roku, po kilku efektownych włamaniach crackerów do serwerów ARPANET, ARPA zdecydowała się rozdzielić całkowicie wojskową część ARPANET od części akademickiej. Część wojskowa nadal miała nazwę ARPANET, zaś część cywilna została już oficjalnie nazwana Internetem”.

Creeper

Zatem pierwszy wirus komputerowy, z którym za chwilę bliżej się poznamy, w 2011 roku obchodził swoje 40 urodziny. Jest zatem - jak zakładam - starszy niż większość czytelników tego portalu.

Wirus ten nazywał się Creeper i został stworzony przez programistę Roberta (Boba) Thomasa pracującego w firmie Bold, Beranek and Newman (obecnie Raytheon BBN Technologies, czyli centrum badawczo-naukowe znanego amerykańskiego koncernu zbrojeniowego). Niestety w zasobach internetu nie udało mi się odnaleźć jego zdjęcia.

Bob Thomas był członkiem zespołu składającego się z wielu znanych pasjonatów informatycznych (do tamtych czasów bardziej wydaje mi się właściwe takie określenie niż informatyk) pracujących nad stworzeniem systemu umożliwiającego współdzielenie wolnych zasobów mocy obliczeniowej komputerów (nazwano go RSEXEC). Powód tej pracy był bardzo prozaiczny, w czasie gdy na Zachodnim Wybrzeżu USA był jeszcze wczesny ranek, komputery umiejscowione na Wschodnim Wybrzeżu USA były już mocno obciążone pracą użytkowników. Tak, już przeszło czterdzieści lat temu programiści szukali możliwości maksymalizacji wykorzystania mocy obliczeniowej dostępnych komputerów. Ideą przewodnią zespołu, w którym pracował Bob, było stworzenie użytkownikom możliwości opracowywania aplikacji, które można było przenosić w celu uruchamiania na innych, mniej obciążonych komputerach lub też przenoszenia aplikacji mającej przetworzyć dużą ilość danych na komputer, na którym się one znajdują, zamiast przenosić same dane.

Creeper był demonstracją tej możliwości, zasadniczo przemieszczał się na inne komputery tylko po to, aby zademonstrować, że jest to technicznie możliwe. Prawdopodobnie z tego powodu nie był wirusem komputerowym w dzisiejszym tego słowa znaczeniu, gdyż nie rozmnażał się zarażając kolejne komputery, a jedynie przenosił się na następne jednostki, usuwając przy tej okazji swoją kopię z poprzednika. Został napisany w assemblerze PDP-10, infekował komputery podłączone do sieci ARPANET, z działającym systemem operacyjnym TENEX, a jego jedynym objawem działania było wyświetlenie napisu „I’M THE CREEPER. CATCH ME IF YOU CAN”.

Ocenia się, iż Creeper zainfekował, a raczej „odwiedził” nie więcej niż 28 komputerów, gdyż w tamtym okresie taka była liczba podłączonych do sieci ARPANET komputerów działających pod systemem operacyjnym TENEX. Nie niszczył jakichkolwiek danych, gdyż nie w tym celu został stworzony. Powstał w okresie, gdy słowo hacking miało jeszcze pozytywny wydźwięk.

Jako ciekawostkę dodam, iż w tamtym okresie powstał też pierwszy program antywirusowy (przodek takiego programu), którego jedynym celem było usunięcie Creeper’a z sieci ARPANET, nazwany Reaper. Jego autorem był Ray Tomlinson, uznawany za wynalazcę poczty elektronicznej oraz osoba, która wybrała znak @ jako symbol adresu poczty elektronicznej. Jak sam przyznał w jednym z wywiadów napisał Reaper’a tylko dlatego, aby mieć z tego satysfakcję. Korzystał on z tej samej możliwości przemieszczania się pomiędzy komputerami z zainstalowaną usługą RSEXC.


Według słów Ray’a Tomlisona kody Creeper’a i Reaper’a nie zachowały się u niego, ani w firmie BBN.

Zaś sama idea, którą miał potwierdzić Creeper, stała się nieaktualna, gdyż - jak stwierdził Ray - okazało się, że w tamtym okresie łatwiej i taniej było kupić kolejny komputer, niż pracować nad rozwojem współdzielenia mocy obliczeniowej mniej i bardziej obciążonych jednostek.

Zapraszam do dzielenia się Waszymi uwagami i spostrzeżeniami odnośnie tego tematu oraz samego wpisu. Jeżeli macie informacje, które mogłyby uzupełnić powyższy opis Creeper'a, dajcie również proszę znać.

Źródła grafik:

  1. http://www.bergamopost.it/occhi-aperti/gli-usa-batterono-russi-nella-c...
  2. http://firsttimefacts.com/first-computer-virus-detected/
  3. http://history-computer.com/Internet/Maturing/Thomas.html
  4. http://www.dtic.mil/dtic/tr/fulltext/u2/729261.pdf 
  5. https://archive.org/details/tenex-paged-tss
  6. https://www.wired.com/2012/07/ray-tomlinson-email/