Wirus komputerowy - Computer virus

Wysypisko Hex z Blaster robaka , pokazując wiadomość w lewo dla Microsoft współzałożyciel Bill Gates przez programistę robaka

Wirus komputerowy to rodzaj programu komputerowego , które, gdy są wykonywane, powiela się przez modyfikację innych programów komputerowych i wkładając swój własny kod . Jeśli ta replikacja się powiedzie, mówi się, że dotknięte obszary są „zainfekowane” wirusem komputerowym, metaforą wywodzącą się z wirusów biologicznych.

Wirusy komputerowe zazwyczaj wymagają programu nosiciela . Wirus zapisuje własny kod do programu nosiciela. Po uruchomieniu programu napisany program wirusowy jest uruchamiany jako pierwszy, powodując infekcję i uszkodzenia. Komputera robak nie potrzebuje programu hosta, ponieważ jest niezależny program lub fragment kodu. Dlatego nie jest ograniczony przez program hosta , ale może działać niezależnie i aktywnie przeprowadzać ataki.

Twórcy wirusów stosują oszustwa socjotechniczne i wykorzystują szczegółową wiedzę na temat luk w zabezpieczeniach, aby wstępnie infekować systemy i rozprzestrzeniać wirusa. Zdecydowana większość wirusów atakuje systemy z systemem Microsoft Windows , wykorzystując różne mechanizmy do infekowania nowych hostów i często stosując złożone strategie wykrywania/ukrywania w celu uniknięcia oprogramowania antywirusowego . Motywy tworzenia wirusów mogą obejmować poszukiwanie zysku (np. za pomocą oprogramowania ransomware ), chęć wysłania wiadomości politycznej, osobistej rozrywki, zademonstrowania istnienia luki w oprogramowaniu, sabotażu i odmowy usługi lub po prostu chęć zbadania zagadnień związanych z cyberbezpieczeństwem , sztuczne życie i algorytmy ewolucyjne .

Wirusy komputerowe powodują każdego roku straty ekonomiczne warte miliardy dolarów.

W odpowiedzi pojawiła się branża oprogramowania antywirusowego, która sprzedaje lub bezpłatnie dystrybuuje ochronę antywirusową użytkownikom różnych systemów operacyjnych .

Historia

Pierwsza praca naukowa nad teorią samoreplikujących się programów komputerowych została wykonana w 1949 roku przez Johna von Neumanna, który wygłosił na Uniwersytecie Illinois wykłady na temat „Teorii i organizacji skomplikowanych automatów ”. Praca von Neumanna została później opublikowana jako „Teoria samoreprodukujących się automatów”. W swoim eseju von Neumann opisał, w jaki sposób można zaprojektować program komputerowy do samoreprodukowania. Projekt von Neumanna dotyczący samoreprodukującego się programu komputerowego jest uważany za pierwszego na świecie wirusa komputerowego, a on sam jest uważany za teoretycznego „ojca” wirusologii komputerowej. W 1972 roku Veith Risak bezpośrednio opierając się na pracy von Neumanna na temat samoreplikacji opublikował artykuł „Selbstreproduzierende Automaten mit minimaler Informationsübertragung” (Samoodtwarzające automaty z minimalną wymianą informacji). Artykuł opisuje w pełni funkcjonalnego wirusa napisanego w języku programowania asembler dla systemu komputerowego SIEMENS 4004/35. W 1980 roku napisał swoją Jürgen Kraus diplom tezę „Selbstreproduktion bei Programmen” (Self-powielanie programów) na Uniwersytecie w Dortmundzie . W swojej pracy Kraus postulował, że programy komputerowe mogą zachowywać się w sposób podobny do wirusów biologicznych.

W MacMag wirus „Uniwersalny Peace”, jak wyświetlane na komputerze Mac w marcu 1988

Wirusa Creeper został po raz pierwszy wykryty na ARPANET , prekursora w Internecie , na początku 1970 roku. Creeper był eksperymentalnym, samoreplikującym się programem napisanym przez Boba Thomasa w BBN Technologies w 1971 roku. Creeper używał ARPANET do infekowania komputerów DEC PDP-10 z systemem operacyjnym TENEX . Creeper uzyskał dostęp przez ARPANET i skopiował się do zdalnego systemu, gdzie pojawił się komunikat „Jestem creeperem, złap mnie, jeśli potrafisz!” został wyświetlony. Program Reaper został stworzony, aby usunąć Creepera.

W 1982 r. program o nazwie „ Ełk Cloner ” był pierwszym wirusem komputerowym, który pojawił się „na wolności” — to znaczy poza pojedynczym komputerem lub laboratorium komputerowym, w którym został utworzony. Napisany w 1981 roku przez Richarda Skrentę , dziewięcioklasistę z Mount Lebanon High School niedaleko Pittsburgha , podłączył się do systemu operacyjnego Apple DOS 3.3 i rozpowszechniał się za pośrednictwem dyskietki . Po 50 użyciu wirus Elk Cloner został aktywowany, infekując komputer osobisty i wyświetlając krótki wiersz rozpoczynający się "Elk Cloner: program z osobowością".

W 1984 roku Fred Cohen z University of Southern California napisał artykuł „Wirusy komputerowe – teoria i eksperymenty”. Był to pierwszy artykuł, który wyraźnie nazwał program samoreprodukujący się „wirusem”, terminem wprowadzonym przez mentora Cohena, Leonarda Adlemana . W 1987 roku Fred Cohen opublikował dowód, że nie ma algorytmu, który mógłby doskonale wykryć wszystkie możliwe wirusy. Teoretyczny wirus kompresji Freda Cohena był przykładem wirusa, który nie był złośliwym oprogramowaniem ( malware ), ale był przypuszczalnie życzliwy (z dobrymi intencjami). Jednak profesjonaliści antywirusowi nie akceptują koncepcji „życzliwych wirusów”, ponieważ każda pożądana funkcja może zostać zaimplementowana bez angażowania wirusa (na przykład automatyczna kompresja jest dostępna w systemie Windows na życzenie użytkownika). Każdy wirus z definicji dokona nieautoryzowanych zmian na komputerze, co jest niepożądane, nawet jeśli nie zostaną wyrządzone lub zamierzone żadne szkody. Pierwsza strona Encyklopedii Wirusów dr Solomona wyjaśnia niechęć wirusów, nawet tych, które nie robią nic poza reprodukcją.

Artykuł opisujący „użyteczne funkcje wirusów” został opublikowany przez JB Gunna pod tytułem „Wykorzystanie funkcji wirusa do zapewnienia wirtualnego interpretera APL pod kontrolą użytkownika” w 1984 roku. Pierwszym wirusem IBM PC na wolności był wirus sektora rozruchowego nazwany (c)Brain , stworzony w 1986 roku przez Amjad Farooq Alvi i Basit Farooq Alvi w Lahore w Pakistanie , podobno w celu powstrzymania nieautoryzowanego kopiowania napisanego przez nich oprogramowania. Pierwszy wirus atakujący Microsoft Windows , WinVir, został odkryty w kwietniu 1992 roku, dwa lata po wydaniu Windows 3.0 . Wirus nie zawierał żadnych wywołań Windows API , zamiast tego polegał na przerwaniach DOS . Kilka lat później, w lutym 1996 roku, australijscy hakerzy z ekipy tworzącej wirusy VLAD stworzyli wirusa Bizatch (znanego również jako wirus „Boza”), który był pierwszym znanym wirusem atakującym system Windows 95 . Pod koniec 1997 roku został wydany zaszyfrowany, rezydentny w pamięci ukryty wirus Win32.Cabanas — pierwszy znany wirus atakujący system Windows NT (potrafił również infekować hosty Windows 3.0 i Windows 9x).

Nawet komputery domowe zostały zaatakowane przez wirusy. Pierwszym, który pojawił się na Commodore Amiga był wirus sektora rozruchowego o nazwie SCA , który został wykryty w listopadzie 1987 roku.

Projekt

Części

Żywy wirus komputerowy musi zawierać procedurę wyszukiwania , która lokalizuje nowe pliki lub nowe dyski, które są wartościowymi celami infekcji. Po drugie, każdy wirus komputerowy musi zawierać procedurę kopiującą się do programu, który znajduje się w wyszukiwarce. Trzy główne części wirusa to:

Mechanizm infekcji
Nazywany również wektorem infekcji, w ten sposób wirus rozprzestrzenia się lub propaguje. Wirus zazwyczaj ma procedurę wyszukiwania, która lokalizuje nowe pliki lub nowe dyski w celu zainfekowania.
Cyngiel
Znana również jako bomba logiczna , jest to skompilowana wersja, która może zostać aktywowana w dowolnym momencie w pliku wykonywalnym podczas uruchamiania wirusa, który określa zdarzenie lub warunek aktywacji lub dostarczenia złośliwego „ ładunku ”, na przykład określona data, określony czas, określona obecność innego programu, pojemność dysku przekraczająca pewien limit lub dwukrotne kliknięcie otwierające określony plik.
Ładunek
„Ładunek” jest rzeczywiste ciało lub dane, które wykonują złośliwy cel wirusa. Aktywność ładunku może być zauważalna (np. ponieważ powoduje spowolnienie lub „zamrożenie” systemu), ponieważ w większości przypadków sam „ładunek” jest szkodliwym działaniem lub czasami niedestrukcyjnym, ale dystrybucyjnym, co nazywa się wirusem mistyfikacja .

Fazy

Fazy ​​wirusowe to cykl życiowy wirusa komputerowego, opisany za pomocą analogii do biologii . Ten cykl życia można podzielić na cztery fazy:

Faza uśpienia
Na tym etapie program wirusowy jest bezczynny. Programowi wirusowemu udało się uzyskać dostęp do komputera lub oprogramowania użytkownika docelowego, ale na tym etapie wirus nie podejmuje żadnych działań. Wirus zostanie ostatecznie aktywowany przez „wyzwalacz”, który określa, które zdarzenie spowoduje uruchomienie wirusa. Nie wszystkie wirusy mają ten etap.
Faza propagacji
Wirus zaczyna się namnażać, czyli mnożyć i replikować. Wirus umieszcza swoją kopię w innych programach lub w określonych obszarach systemowych na dysku. Kopia może nie być identyczna z wersją propagującą; wirusy często „morfują” lub zmieniają się, aby uniknąć wykrycia przez specjalistów IT i oprogramowanie antywirusowe. Każdy zainfekowany program będzie teraz zawierał klon wirusa, który sam wejdzie w fazę propagacji.
Faza wyzwalania
Uśpiony wirus wchodzi w tę fazę po aktywacji i będzie teraz wykonywał funkcję, do której był przeznaczony. Faza wyzwalania może być spowodowana różnymi zdarzeniami systemowymi, w tym liczbą przypadków, w których ta kopia wirusa wykonała swoje kopie. Wyzwalacz może wystąpić, gdy pracownik zostanie zwolniony z pracy lub po upływie określonego czasu, w celu zmniejszenia podejrzeń.
Faza realizacji
To jest rzeczywista praca wirusa, w której „ładunek” zostanie uwolniony. Może to być destrukcyjne, takie jak usuwanie plików na dysku, awarie systemu lub uszkadzanie plików lub stosunkowo nieszkodliwe, takie jak wyświetlanie humorystycznych lub politycznych wiadomości na ekranie.

Cele i replikacja

Wirusy komputerowe infekują wiele różnych podsystemów na swoich komputerach-hostach i oprogramowaniu. Jednym ze sposobów klasyfikowania wirusów jest analiza, czy znajdują się w binarnych plikach wykonywalnych (takich jak pliki .EXE lub .COM ), plikach danych (takich jak dokumenty Microsoft Word lub pliki PDF ) lub w sektorze rozruchowym dysku twardego hosta (lub jakaś kombinacja tych wszystkich).

Wirus rezydentny (lub po prostu „wirus rezydent”) instaluje się jako część systemu operacyjnego, gdy wykonana, po którym pozostaje w pamięci RAM od momentu, gdy komputer jest uruchomiony nawet gdy jest wyłączony. Wirusy rezydentne nadpisują kod obsługi przerwań lub inne funkcje , a gdy system operacyjny próbuje uzyskać dostęp do pliku docelowego lub sektora dysku, kod wirusa przechwytuje żądanie i przekierowuje przepływ sterowania do modułu replikacji, infekując cel. W przeciwieństwie do tego, wirus nierezydentny w pamięci (lub „wirus nierezydentny”) po uruchomieniu skanuje dysk w poszukiwaniu celów, infekuje je, a następnie kończy działanie (tj. nie pozostaje w pamięci po wykonaniu).

Wiele popularnych aplikacji, takich jak Microsoft Outlook i Microsoft Word , umożliwia osadzanie programów makr w dokumentach lub wiadomościach e-mail, dzięki czemu programy mogą być uruchamiane automatycznie po otwarciu dokumentu. Makro wirusów (lub „wirus dokument”) jest wirusem, który jest napisany w języku makr i osadzony w tych dokumentach, tak aby, gdy użytkownik otworzy plik, kod wirusa jest wykonywana, a może zainfekować komputer użytkownika. Jest to jeden z powodów, dla których otwieranie nieoczekiwanych lub podejrzanych załączników w wiadomościach e-mail jest niebezpieczne . Chociaż nieotwieranie załączników w wiadomościach e-mail od nieznanych osób lub organizacji może pomóc w zmniejszeniu prawdopodobieństwa zarażenia się wirusem, w niektórych przypadkach wirus jest zaprojektowany w taki sposób, że wiadomość e-mail wydaje się pochodzić z renomowanej organizacji (np. bank lub wystawca karty kredytowej).

Wirusy sektora startowego szczególnie ukierunkowanych na sektor rozruchowy i / lub Master Boot Record (MBR) od gospodarza dysku twardym , dysku SSD lub wymiennych nośników danych ( dyski flash , dyskietki , itp).

Najpopularniejszym sposobem transmisji wirusów komputerowych w sektorze rozruchowym są nośniki fizyczne. Podczas odczytu VBR dysku zainfekowana dyskietka lub dysk flash USB podłączony do komputera przeniesie dane, a następnie zmodyfikuje lub zastąpi istniejący kod rozruchowy. Następnym razem, gdy użytkownik spróbuje uruchomić pulpit, wirus natychmiast załaduje się i uruchomi jako część głównego rekordu rozruchowego.

Wirusy pocztowe to wirusy, które celowo, a nie przypadkowo, wykorzystują system pocztowy do rozprzestrzeniania się. Chociaż pliki zainfekowane wirusem mogą zostać przypadkowo wysłane jako załączniki wiadomości e-mail , wirusy poczty e-mail są świadome funkcji systemu poczty e-mail. Zwykle atakują określony typ systemu poczty e-mail ( najczęściej używany jest Microsoft Outlook ), zbierają adresy e-mail z różnych źródeł i mogą dołączać swoje kopie do wszystkich wysyłanych wiadomości e-mail lub mogą generować wiadomości e-mail zawierające ich kopie jako załączniki.

Wykrycie

Aby uniknąć wykrycia przez użytkowników, niektóre wirusy wykorzystują różne rodzaje oszustw . Niektóre stare wirusy, zwłaszcza na platformie DOS , zapewniają, że data „ostatniej modyfikacji” pliku hosta pozostaje taka sama, gdy plik jest zainfekowany wirusem. Takie podejście nie oszuka jednak oprogramowania antywirusowego , zwłaszcza takiego, które utrzymuje i datuje cykliczne kontrole nadmiarowe zmian w plikach. Niektóre wirusy mogą infekować pliki bez zwiększania ich rozmiarów lub uszkadzania plików. Osiągają to, nadpisując nieużywane obszary plików wykonywalnych. Są to tak zwane wirusy jamy ustnej . Na przykład wirus CIH lub wirus Czarnobyla infekuje pliki Portable Executable . Ponieważ te pliki mają wiele pustych luk, wirus, który miał długość 1 KB , nie zwiększył rozmiaru pliku. Niektóre wirusy próbują uniknąć wykrycia, zabijając zadania związane z oprogramowaniem antywirusowym, zanim zdoła je wykryć (na przykład Conficker ). W 2010 roku, gdy komputery i systemy operacyjne stają się większe i bardziej złożone, stare techniki ukrywania muszą zostać zaktualizowane lub zastąpione. Obrona komputera przed wirusami może wymagać migracji systemu plików w kierunku szczegółowych i wyraźnych zezwoleń na każdy rodzaj dostępu do plików.

Przeczytaj przechwycone żądania

Podczas gdy niektóre rodzaje oprogramowania antywirusowego wykorzystują różne techniki do przeciwdziałania mechanizmom ukrywania się, po wystąpieniu infekcji wszelkie próby „wyczyszczenia” systemu są zawodne. W systemach operacyjnych Microsoft Windows system plików NTFS jest zastrzeżony. Pozostawia to oprogramowaniu antywirusowemu niewielką alternatywę poza wysyłaniem żądania „odczytu” do plików systemu Windows, które obsługują takie żądania. Niektóre wirusy oszukują oprogramowanie antywirusowe, przechwytując jego żądania wysyłane do systemu operacyjnego. Wirus może się ukryć, przechwytując żądanie odczytania zainfekowanego pliku, obsługując samo żądanie i zwracając niezainfekowaną wersję pliku do oprogramowania antywirusowego. Przechwycenie może nastąpić przez wstrzyknięcie kodu rzeczywistych plików systemu operacyjnego, które obsłużyłyby żądanie odczytu. W ten sposób oprogramowanie antywirusowe próbujące wykryć wirusa albo nie będzie mogło odczytać zainfekowanego pliku, albo żądanie „odczytu” zostanie wysłane z niezainfekowaną wersją tego samego pliku.

Jedyną niezawodną metodą unikania „ukrytych” wirusów jest uruchamianie z nośnika, o którym wiadomo, że jest „czysty”. Oprogramowanie zabezpieczające może być następnie użyte do sprawdzenia nieaktywnych plików systemu operacyjnego. Większość programów zabezpieczających opiera się na sygnaturach wirusów lub wykorzystuje heurystykę . Oprogramowanie zabezpieczające może również korzystać z bazy danych „ haszy ” plików dla plików systemu operacyjnego Windows, dzięki czemu oprogramowanie zabezpieczające może zidentyfikować zmienione pliki i zażądać, aby nośnik instalacyjny systemu Windows zastąpił je autentycznymi wersjami. W starszych wersjach systemu Windows kryptograficzne funkcje skrótu plików systemu operacyjnego Windows przechowywanych w systemie Windows — w celu umożliwienia sprawdzenia integralności/autentyczności plików — mogą zostać nadpisane, aby Kontroler plików systemowych zgłaszał, że zmienione pliki systemowe są autentyczne, więc używając skrótów plików skanowanie w poszukiwaniu zmienionych plików nie zawsze gwarantuje znalezienie infekcji.

Samomodyfikacja

Większość nowoczesnych programów antywirusowych próbuje znaleźć wzorce wirusów w zwykłych programach, skanując je w poszukiwaniu tak zwanych sygnatur wirusów . Różne programy antywirusowe wykorzystują różne metody wyszukiwania podczas identyfikowania wirusów. Jeśli skaner antywirusowy znajdzie taki wzorzec w pliku, przed powiadomieniem użytkownika, że ​​plik jest zainfekowany, wykona inne testy, aby upewnić się, że znalazł wirusa, a nie tylko przypadkową sekwencję w niewinnym pliku. Użytkownik może następnie usunąć lub (w niektórych przypadkach) „oczyścić” lub „wyleczyć” zainfekowany plik. Niektóre wirusy wykorzystują techniki, które utrudniają wykrywanie za pomocą sygnatur, ale prawdopodobnie nie uniemożliwiają ich. Wirusy te modyfikują swój kod przy każdej infekcji. Oznacza to, że każdy zainfekowany plik zawiera inny wariant wirusa.

Jedną z metod uniknięcia wykrycia sygnatur jest użycie prostego szyfrowania do zaszyfrowania (zaszyfrowania) ciała wirusa, pozostawiając tylko moduł szyfrujący i statyczny klucz kryptograficzny w postaci zwykłego tekstu, który nie zmienia się od jednej infekcji do następnej. W tym przypadku wirus składa się z małego modułu deszyfrującego i zaszyfrowanej kopii kodu wirusa. Jeśli wirus jest zaszyfrowany innym kluczem dla każdego zainfekowanego pliku, jedyną stałą częścią wirusa jest moduł deszyfrujący, który zostanie (na przykład) dołączony na końcu. W takim przypadku skaner antywirusowy nie może bezpośrednio wykryć wirusa za pomocą sygnatur, ale nadal może wykryć moduł deszyfrujący, co nadal umożliwia pośrednie wykrycie wirusa. Ponieważ byłyby to klucze symetryczne, przechowywane na zainfekowanym hoście, odszyfrowanie ostatecznego wirusa jest całkowicie możliwe, ale prawdopodobnie nie jest to wymagane, ponieważ samomodyfikujący się kod jest tak rzadkością, że znalezienie niektórych może być wystarczającym powodem, aby skanery wirusów przynajmniej „oznacz” plik jako podejrzany. Starym, ale zwartym sposobem będzie użycie operacji arytmetycznych, takich jak dodawanie lub odejmowanie, oraz użycie warunków logicznych, takich jak XOR , gdzie każdy bajt w wirusie jest ze stałą, tak że operacja wyłączności lub musi być tylko powtórzona w celu odszyfrowania . Modyfikowanie się kodu jest podejrzane, więc kod wykonujący szyfrowanie/odszyfrowywanie może być częścią sygnatury w wielu definicjach wirusów. W prostszym, starszym podejściu nie używano klucza, w którym szyfrowanie składało się tylko z operacji bez parametrów, takich jak inkrementacja i dekrementacja, rotacja bitowa, negacja arytmetyczna i logiczne NIE. Niektóre wirusy, zwane wirusami polimorficznymi, wykorzystują metodę szyfrowania wewnątrz pliku wykonywalnego, w którym wirus jest szyfrowany w pewnych zdarzeniach, takich jak wyłączenie skanera antywirusowego w celu aktualizacji lub ponowne uruchomienie komputera . Nazywa się to kryptowirusologią .

Kod polimorficzny był pierwszą techniką, która stanowiła poważne zagrożenie dla skanerów antywirusowych. Podobnie jak zwykłe zaszyfrowane wirusy, wirus polimorficzny infekuje pliki swoją zaszyfrowaną kopią, która jest deszyfrowana przez moduł deszyfrujący . Jednak w przypadku wirusów polimorficznych ten moduł deszyfrujący jest również modyfikowany przy każdej infekcji. W związku z tym dobrze napisany wirus polimorficzny nie zawiera części, które pozostają identyczne między infekcjami, co bardzo utrudnia jego bezpośrednie wykrycie za pomocą „sygnatur”. Oprogramowanie antywirusowe może go wykryć poprzez odszyfrowanie wirusów za pomocą emulatora lub poprzez statystyczną analizę wzorców zaszyfrowanego wirusa. Aby włączyć kod polimorficzny, wirus musi mieć gdzieś w swoim zaszyfrowanym ciele silnik polimorficzny (zwany także „silnikiem mutacyjnym ” lub „ silnikiem mutacyjnym ”). Zobacz kod polimorficzny, aby uzyskać szczegółowe informacje techniczne na temat działania takich silników.

Niektóre wirusy wykorzystują kod polimorficzny w sposób, który znacząco ogranicza tempo mutacji wirusa. Na przykład wirus można zaprogramować tak, aby mutował z czasem tylko nieznacznie, lub można go zaprogramować tak, aby powstrzymywał się od mutacji, gdy infekuje plik na komputerze, który już zawiera kopie wirusa. Zaletą korzystania z takiego wolnego kodu polimorficznego jest to, że utrudnia on specjalistom ds. ochrony antywirusowej i badaczom uzyskanie reprezentatywnych próbek wirusa, ponieważ pliki „przynęty”, które są zainfekowane za jednym razem, zazwyczaj zawierają identyczne lub podobne próbki wirusa. Zwiększy to prawdopodobieństwo, że wykrycie przez skaner antywirusowy będzie zawodne, a niektóre instancje wirusa będą w stanie uniknąć wykrycia.

Aby uniknąć wykrycia przez emulację, niektóre wirusy przepisują się całkowicie za każdym razem, gdy mają infekować nowe pliki wykonywalne. Mówi się, że wirusy wykorzystujące tę technikę znajdują się w kodzie metamorficznym . Aby umożliwić metamorfizm, potrzebny jest „silnik metamorficzny”. Wirus metamorficzny jest zwykle bardzo duży i złożony. Na przykład W32/Simile składał się z ponad 14 000 linii kodu języka asemblerowego , z których 90% jest częścią silnika metamorficznego.

Efekty

Uszkodzenia spowodowane są awarią systemu, uszkodzeniem danych, marnowaniem zasobów komputera, rosnącymi kosztami konserwacji lub kradzieżą danych osobowych. Mimo że żadne oprogramowanie antywirusowe nie jest w stanie wykryć wszystkich wirusów komputerowych (zwłaszcza nowych), analitycy bezpieczeństwa komputerowego aktywnie poszukują nowych sposobów, aby rozwiązania antywirusowe skuteczniej wykrywały pojawiające się wirusy, zanim zostaną szeroko rozpowszechnione.

Wirus moc to program komputerowy, który wykonuje specyficzny kod maszynowy do osiągnięcia maksymalnej CPU Strata mocy ( energii cieplnej wyjście dla centralnych jednostek przetwarzających ). Komputerowe urządzenia chłodzące są zaprojektowane tak, aby rozpraszać moc do projektowanej mocy cieplnej , a nie maksymalnej mocy, a wirus mocy może spowodować przegrzanie systemu, jeśli nie ma logiki zatrzymującej procesor. Może to spowodować trwałe uszkodzenia fizyczne. Wirusy zasilające mogą być złośliwe, ale często są pakietami oprogramowania testowego używanego do testów integracyjnych i testów termicznych komponentów komputerowych w fazie projektowania produktu lub do testów porównawczych produktu .

Aplikacje testujące stabilność to podobne programy, które mają taki sam efekt jak wirusy mocy (wysokie użycie procesora), ale pozostają pod kontrolą użytkownika. Służą do testowania procesorów, na przykład podczas przetaktowywania . Spinlock w źle napisanym programie może powodować podobne objawy, jeśli trwa dostatecznie długo.

Różne mikroarchitektury zazwyczaj wymagają innego kodu maszynowego, aby osiągnąć maksymalną moc. Przykłady takiego kodu maszynowego nie wydają się być rozpowszechniane w materiałach referencyjnych dotyczących procesora.

Wektory infekcji

Ponieważ oprogramowanie jest często projektowane z funkcjami zabezpieczającymi zapobiegającymi nieautoryzowanemu korzystaniu z zasobów systemowych, wiele wirusów musi wykorzystywać i manipulować błędami zabezpieczeń , które są defektami zabezpieczeń w systemie lub aplikacji, aby rozprzestrzeniać się i infekować inne komputery. Strategie rozwoju oprogramowania, które generują dużą liczbę „błędów”, generalnie generują również potencjalne możliwe do wykorzystania „dziury” lub „wejścia” dla wirusa.

Aby się replikować, wirus musi mieć możliwość wykonywania kodu i zapisywania w pamięci. Z tego powodu wiele wirusów dołącza się do plików wykonywalnych, które mogą być częścią legalnych programów (patrz wstrzykiwanie kodu ). Jeśli użytkownik spróbuje uruchomić zainfekowany program, kod wirusa może zostać wykonany jednocześnie. W systemach operacyjnych, które używają rozszerzeń plików do określania skojarzeń programów (takich jak Microsoft Windows), rozszerzenia mogą być domyślnie ukryte przed użytkownikiem. Umożliwia to utworzenie pliku innego typu niż wydaje się użytkownikowi. Na przykład plik wykonywalny może zostać utworzony i nazwany „picture.png.exe”, w którym użytkownik widzi tylko „picture.png” i dlatego zakłada, że ​​ten plik jest obrazem cyfrowym i najprawdopodobniej jest bezpieczny, ale po otwarciu uruchamia plik wykonywalny na komputerze klienckim. Wirusy mogą być instalowane na nośnikach wymiennych, takich jak dyski flash . Dyski można pozostawić na parkingu budynku rządowego lub w innym celu, z nadzieją, że ciekawscy użytkownicy włożą dysk do komputera. W eksperymencie z 2015 roku naukowcy z University of Michigan odkryli, że 45–98 procent użytkowników podłączyłoby pamięć flash nieznanego pochodzenia.

Zdecydowana większość wirusów atakuje systemy z systemem Microsoft Windows . Wynika to z dużego udziału Microsoftu w rynku użytkowników komputerów stacjonarnych . Różnorodność systemów oprogramowania w sieci ogranicza destrukcyjny potencjał wirusów i złośliwego oprogramowania. Systemy operacyjne typu open source , takie jak Linux, pozwalają użytkownikom wybierać spośród różnych środowisk graficznych , narzędzi do pakowania itp., co oznacza, że ​​złośliwy kod atakujący dowolny z tych systemów dotknie tylko podzbioru wszystkich użytkowników. Wielu użytkowników systemu Windows korzysta z tego samego zestawu aplikacji, co umożliwia wirusom szybkie rozprzestrzenianie się między systemami Microsoft Windows poprzez atakowanie tych samych exploitów na dużą liczbę hostów.

Podczas gdy Linux i Unix generalnie zawsze natywnie uniemożliwiały zwykłym użytkownikom dokonywanie zmian w środowisku systemu operacyjnego bez pozwolenia, użytkownicy Windows na ogół nie są uniemożliwiani dokonywaniu tych zmian, co oznacza, że ​​wirusy mogą łatwo przejąć kontrolę nad całym systemem na hostach Windows. Ta różnica utrzymywała się częściowo z powodu powszechnego używania kont administratorów we współczesnych wersjach, takich jak Windows XP . W 1997 roku badacze stworzyli i wydali wirusa dla Linuksa – znanego jako „ Bliss ”. Bliss wymaga jednak, aby użytkownik uruchomił go jawnie i może infekować tylko programy, które użytkownik ma dostęp do modyfikowania. W przeciwieństwie do użytkowników Windows, większość użytkowników Unixa nie loguje się jako administrator lub „root user” , z wyjątkiem instalacji lub konfiguracji oprogramowania; w rezultacie, nawet jeśli użytkownik uruchomił wirusa, nie mógł on zaszkodzić jego systemowi operacyjnemu. Wirus Bliss nigdy się nie rozprzestrzenił i pozostaje głównie ciekawostką badawczą. Jego twórca przesłał później kod źródłowy do Usenetu , pozwalając badaczom zobaczyć, jak to działa.

Zanim sieci komputerowe stały się powszechne, większość wirusów rozprzestrzeniała się na nośnikach wymiennych , zwłaszcza na dyskietkach . Na początku istnienia komputerów osobistych wielu użytkowników regularnie wymieniało informacje i programy na dyskietkach. Niektóre wirusy rozprzestrzeniają się poprzez infekowanie programów przechowywanych na tych dyskach, podczas gdy inne instalowały się w sektorze rozruchowym dysku , zapewniając, że zostaną uruchomione, gdy użytkownik uruchomi komputer z dysku, zwykle nieumyślnie. Komputery osobiste tamtych czasów próbowałyby najpierw uruchomić się z dyskietki, gdyby jedna została pozostawiona w napędzie. Dopóki dyskietki nie przestały być używane, była to najskuteczniejsza strategia infekcji, a wirusy sektora startowego były najczęstsze na wolności przez wiele lat. Tradycyjne wirusy komputerowe pojawiły się w latach 80. XX wieku, napędzane rozprzestrzenianiem się komputerów osobistych i wynikającym z tego wzrostem systemu tablic biuletynów (BBS), wykorzystaniem modemów i udostępnianiem oprogramowania. Udostępnianie oprogramowania oparte na tablicy ogłoszeń przyczyniło się bezpośrednio do rozprzestrzeniania się programów typu koń trojański , a wirusy zostały napisane w celu infekowania oprogramowania będącego w powszechnym obrocie. Oprogramowanie typu shareware i bootleg było równie powszechnymi wektorami wirusów na BBS-ach. Wirusy mogą zwiększyć swoje szanse na rozprzestrzenienie się na inne komputery, infekując pliki w sieciowym systemie plików lub systemie plików, do którego mają dostęp inne komputery.

Makrowirusy stały się powszechne od połowy lat 90. XX wieku. Większość z tych wirusów jest napisanych w językach skryptowych programów firmy Microsoft, takich jak Microsoft Word i Microsoft Excel, i rozprzestrzenia się po całym pakiecie Microsoft Office , infekując dokumenty i arkusze kalkulacyjne . Ponieważ Word i Excel były również dostępne dla systemu Mac OS , większość z nich mogła również rozprzestrzeniać się na komputery Macintosh . Chociaż większość z tych wirusów nie miała możliwości wysyłania zainfekowanych wiadomości e-mail , wirusy te wykorzystywały interfejs Microsoft Outlook Component Object Model (COM). Niektóre stare wersje programu Microsoft Word umożliwiają replikowanie się makr z dodatkowymi pustymi wierszami. Jeśli dwa makrowirusy jednocześnie infekują dokument, połączenie tych dwóch, jeśli również samoreplikuje, może wyglądać jak „skojarzenie” tych dwóch i prawdopodobnie zostanie wykryte jako wirus unikalny od „rodziców”.

Wirus może również wysłać łącze do adresu internetowego w postaci wiadomości błyskawicznej do wszystkich kontaktów (np. adresów e-mail znajomych i współpracowników) przechowywanych na zainfekowanym komputerze. Jeśli odbiorca, myśląc, że link pochodzi od znajomego (z zaufanego źródła), podąży za linkiem do witryny, wirus hostowany w witrynie może być w stanie zainfekować ten nowy komputer i dalej się rozprzestrzeniać. Wirusy rozprzestrzeniające się za pomocą cross-site scripting zostały po raz pierwszy zgłoszone w 2002 r. i zostały naukowo zademonstrowane w 2005 r. Było wiele przypadków wirusów cross-site scripting na „dziko”, wykorzystujących witryny takie jak MySpace (z robakiem Samy) i Yahoo! .

Środki zaradcze

W 1989 roku ADAPSO Software Industry Division opublikowało Dealing With Electronic Vandalism , w którym podążyli za ryzykiem utraty danych przez „dodatkowe ryzyko utraty zaufania klientów”.

Wielu użytkowników instaluje oprogramowanie antywirusowe, które może wykrywać i eliminować znane wirusy, gdy komputer próbuje pobrać lub uruchomić plik wykonywalny (który może być na przykład rozpowszechniany jako załącznik do wiadomości e-mail lub na dyskach flash USB ). Niektóre programy antywirusowe blokują znane złośliwe witryny internetowe, które próbują zainstalować złośliwe oprogramowanie. Oprogramowanie antywirusowe nie zmienia podstawowej zdolności hostów do przesyłania wirusów. Użytkownicy muszą regularnie aktualizować swoje oprogramowanie, aby załatać luki w zabezpieczeniach („dziury”). Oprogramowanie antywirusowe również musi być regularnie aktualizowane w celu rozpoznawania najnowszych zagrożeń . Dzieje się tak, ponieważ złośliwi hakerzy i inne osoby zawsze tworzą nowe wirusy. Niemiecki Instytut AV-TEST publikuje oceny oprogramowania antywirusowego dla systemów Windows i Android.

Przykłady oprogramowania antywirusowego i chroniącego przed złośliwym oprogramowaniem systemu Microsoft Windows obejmują opcjonalne oprogramowanie Microsoft Security Essentials (dla systemów Windows XP, Vista i Windows 7) do ochrony w czasie rzeczywistym, narzędzie Windows Malicious Software Removal Tool (obecnie dołączone do aktualizacji systemu Windows (zabezpieczeń) na „ Patch Tuesday ”, drugi wtorek każdego miesiąca) oraz Windows Defender (opcjonalne pobieranie w przypadku Windows XP). Ponadto z Internetu można bezpłatnie pobrać kilka odpowiednich programów antywirusowych (zwykle ograniczonych do użytku niekomercyjnego). Niektóre takie darmowe programy są prawie tak dobre, jak konkurenci komercyjni. Powszechne luki w zabezpieczeniach mają przypisane identyfikatory CVE i są wymienione w amerykańskiej bazie danych dotyczących luk w zabezpieczeniach . Secunia PSI to przykład bezpłatnego oprogramowania do użytku osobistego, które sprawdza komputer pod kątem nieaktualnego oprogramowania i próbuje je zaktualizować. Ransomware i phishing scam alarmy pojawiają się informacje prasowe na Internet Crime Complaint Center ogłoszeń . Ransomware to wirus, który publikuje wiadomość na ekranie użytkownika, informującą, że ekran lub system pozostanie zablokowany lub bezużyteczny do momentu zapłaty okupu . Wyłudzanie informacji to oszustwo, w którym złośliwa osoba udaje przyjaciela, eksperta ds. bezpieczeństwa komputerowego lub inną życzliwą osobę w celu przekonania docelowej osoby do ujawnienia haseł lub innych danych osobowych.

Inne powszechnie stosowane środki zapobiegawcze obejmują terminowe aktualizacje systemu operacyjnego, aktualizacje oprogramowania, uważne przeglądanie Internetu (unikanie podejrzanych witryn internetowych) oraz instalację tylko zaufanego oprogramowania. Niektóre przeglądarki oznaczają witryny, które zostały zgłoszone do Google i które zostały potwierdzone przez Google jako hostujące złośliwe oprogramowanie.

Istnieją dwie typowe metody używane przez oprogramowanie antywirusowe do wykrywania wirusów, zgodnie z opisem w artykule dotyczącym oprogramowania antywirusowego . Pierwszą i zdecydowanie najpopularniejszą metodą wykrywania wirusów jest użycie listy definicji sygnatur wirusów . Działa to poprzez zbadanie zawartości pamięci komputera (jego pamięci o dostępie swobodnym (RAM) i sektorów rozruchowych ) oraz plików przechowywanych na dyskach stałych lub wymiennych (dyski twarde, dyskietki lub dyski flash USB) i porównanie tych plików z bazie znanych wirusów „podpisów”. Sygnatury wirusów to tylko ciągi kodu używane do identyfikacji poszczególnych wirusów; dla każdego wirusa projektant oprogramowania antywirusowego próbuje wybrać unikalny ciąg sygnatur, który nie zostanie znaleziony w legalnym programie. Różne programy antywirusowe używają różnych „sygnatur” do identyfikowania wirusów. Wadą tej metody wykrywania jest to, że użytkownicy są chronieni tylko przed wirusami wykrytymi przez sygnatury w ich najnowszej aktualizacji definicji wirusów, a nie są chronieni przed nowymi wirusami (patrz „ atak zero-day ”).

Drugą metodą wyszukiwania wirusów jest użycie algorytmu heurystycznego opartego na typowych zachowaniach wirusów. Ta metoda może wykrywać nowe wirusy, dla których firmy zajmujące się bezpieczeństwem antywirusowym muszą jeszcze zdefiniować „sygnaturę”, ale powoduje również więcej fałszywych alarmów niż użycie sygnatur. Fałszywe alarmy mogą być destrukcyjne, szczególnie w środowisku komercyjnym, ponieważ mogą prowadzić do tego, że firma zaleci personelowi, aby nie korzystał z firmowego systemu komputerowego, dopóki służby IT nie sprawdzą systemu pod kątem wirusów. Może to spowolnić produktywność zwykłych pracowników.

Strategie i metody odzyskiwania

Szkody wyrządzane przez wirusy można ograniczyć, wykonując regularne kopie zapasowe danych (i systemów operacyjnych) na różnych nośnikach, które są albo niepodłączone do systemu (w większości przypadków, jak na dysku twardym), tylko do odczytu lub nie dostępne z innych powodów, takich jak używanie różnych systemów plików . W ten sposób, jeśli dane zostaną utracone przez wirusa, można ponownie zacząć korzystać z kopii zapasowej (która, miejmy nadzieję, będzie nowa). Jeśli sesja tworzenia kopii zapasowej na nośniku optycznym, takim jak CD i DVD, zostanie zamknięta, staje się tylko do odczytu i wirus nie może już na nią wpływać (o ile wirus lub zainfekowany plik nie został skopiowany na dysk CD / DVD ). Podobnie system operacyjny na rozruchowej płycie CD może zostać użyty do uruchomienia komputera, jeśli zainstalowane systemy operacyjne staną się bezużyteczne. Kopie zapasowe na nośnikach wymiennych należy dokładnie sprawdzić przed przywróceniem. Na przykład wirus Gammima rozprzestrzenia się za pośrednictwem wymiennych dysków flash .

Wiele witryn internetowych prowadzonych przez firmy zajmujące się oprogramowaniem antywirusowym zapewnia bezpłatne skanowanie w poszukiwaniu wirusów online, z ograniczonymi możliwościami „czyszczenia” (w końcu celem witryn jest sprzedaż produktów i usług antywirusowych). Niektóre witryny — takie jak spółka zależna Google VirusTotal .com — umożliwiają użytkownikom przesyłanie jednego lub więcej podejrzanych plików do skanowania i sprawdzania przez jeden lub więcej programów antywirusowych w ramach jednej operacji. Ponadto z Internetu można bezpłatnie pobrać kilka odpowiednich programów antywirusowych (zwykle ograniczonych do użytku niekomercyjnego). Firma Microsoft oferuje opcjonalne bezpłatne narzędzie antywirusowe o nazwie Microsoft Security Essentials , narzędzie do usuwania złośliwego oprogramowania systemu Windows, które jest aktualizowane w ramach standardowej aktualizacji systemu Windows, oraz starsze opcjonalne narzędzie do usuwania złośliwego oprogramowania (usuwania złośliwego oprogramowania) Windows Defender, które zostało uaktualnione do wersji produkt antywirusowy w systemie Windows 8.

Niektóre wirusy wyłączają Przywracanie systemu i inne ważne narzędzia systemu Windows, takie jak Menedżer zadań i CMD . Przykładem wirusa, który to robi, jest CiaDoor. Wiele takich wirusów można usunąć, uruchamiając ponownie komputer, wchodząc w „ tryb awaryjny ” systemu Windows z obsługą sieci, a następnie korzystając z narzędzi systemowych lub programu Microsoft Safety Scanner . Przywracanie systemu w systemach Windows Me , Windows XP , Windows Vista i Windows 7 umożliwia przywrócenie rejestru i krytycznych plików systemowych do poprzedniego punktu kontrolnego. Często wirus powoduje „zawieszenie się” lub „zawieszenie” systemu, a późniejszy twardy restart spowoduje uszkodzenie punktu przywracania systemu z tego samego dnia. Punkty przywracania z poprzednich dni powinny działać, pod warunkiem, że wirus nie został zaprojektowany do uszkodzenia plików przywracania i nie istnieje w poprzednich punktach przywracania.

Kontroler plików systemowych firmy Microsoft (ulepszony w systemie Windows 7 i nowszych) może służyć do sprawdzania i naprawiania uszkodzonych plików systemowych. Jednym z rozwiązań jest przywrócenie wcześniejszej „czystej” (wolnej od wirusów) kopii całej partycji ze sklonowanego dysku , obrazu dysku lub kopii zapasowej — przywrócenie wcześniejszego „obrazu” dysku kopii zapasowej jest stosunkowo proste, zwykle usuwa wszelkie złośliwe oprogramowanie i może być szybsze niż „wyleczenie” komputera — lub ponowna instalacja i ponowna konfiguracja systemu operacyjnego i programów od podstaw, jak opisano poniżej, a następnie przywrócenie preferencji użytkownika. Ponowna instalacja systemu operacyjnego to kolejne podejście do usuwania wirusów. Możliwe jest odzyskanie kopii istotnych danych użytkownika, uruchamiając komputer z żywej płyty CD lub podłączając dysk twardy do innego komputera i uruchamiając go z systemu operacyjnego drugiego komputera, zwracając szczególną uwagę na to, aby nie zainfekować tego komputera poprzez uruchamianie jakichkolwiek zainfekowanych programów na oryginalny napęd. Oryginalny dysk twardy można następnie sformatować, a system operacyjny i wszystkie programy zainstalowane z oryginalnego nośnika. Po przywróceniu systemu należy przedsięwziąć środki ostrożności, aby uniknąć ponownej infekcji przez wszelkie przywrócone pliki wykonywalne .

Kultura popularna

Pierwszy znany opis samoreprodukującego programu w fikcji jest w 1970 opowiadaniu bliznami Man przez Gregory Benford , który opisuje program komputerowy o nazwie wirus, który po zainstalowaniu na komputerze z modemem telefonicznym numerem możliwości, losowo tarcze numery telefonu, aż uderza modem, na który odpowiada inny komputer, a następnie próbuje zaprogramować komputer odpowiadający swoim własnym programem, tak aby drugi komputer również zaczął wybierać losowe numery w poszukiwaniu kolejnego komputera do zaprogramowania. Program szybko rozprzestrzenia się wykładniczo na podatnych komputerach i można mu przeciwdziałać tylko za pomocą drugiego programu o nazwie SZCZEPIONKA.

Pomysł został zbadany dodatkowo w dwóch powieściach 1972, kiedy HARLIE był jeden przez Davida Gerrold i terminal Człowiek przez Michaela Crichtona , i stał się głównym tematem 1975 powieść The Shockwave Rider przez Johna Brunnera .

Film science fiction Michaela Crichtona z 1973 roku Westworld wcześnie wspomniał o koncepcji wirusa komputerowego, będącego głównym tematem fabuły, który powoduje, że androidy wpadają w amok. Postać Alana Oppenheimera podsumowuje problem, stwierdzając, że "...jest tu wyraźny wzór, który sugeruje analogię do procesu choroby zakaźnej, rozprzestrzeniającej się z jednego ... obszaru na następny". Na które odpowiedzi brzmią: „Być może istnieją powierzchowne podobieństwa do choroby” i „Muszę wyznać, że trudno mi uwierzyć w chorobę maszyn”.

Inne złośliwe oprogramowanie

Termin „wirus” jest również niewłaściwie używany w odniesieniu do innych rodzajów złośliwego oprogramowania. „Złośliwe oprogramowanie” obejmuje wirusy komputerowe wraz z wieloma innymi formami złośliwego oprogramowania, takich jak komputerowe „robaków” , ransomware , spyware , adware , konie trojańskie , keyloggery , rootkity , bootkitami , złośliwy Browser Helper Object (BHO) oraz inne złośliwe oprogramowanie. Większość aktywnych zagrożeń złośliwym oprogramowaniem to programy typu koń trojański lub robaki komputerowe, a nie wirusy komputerowe. Termin wirus komputerowy, ukuty przez Freda Cohena w 1985 roku, jest mylący. Wirusy często wykonują na zainfekowanych komputerach-hostach pewnego rodzaju szkodliwe działania, takie jak przejmowanie miejsca na dysku twardym lub czasu jednostki centralnej (CPU), dostęp i kradzież prywatnych informacji (np. numerów kart kredytowych, numerów kart debetowych, numerów telefonów, nazwisk, adresy e-mail, hasła, informacje bankowe, adresy domowe itp.), uszkadzanie danych, wyświetlanie na ekranie użytkownika wiadomości politycznych, humorystycznych lub zawierających groźby, spamowanie kontaktów e-mail, rejestrowanie naciśnięć klawiszy , a nawet sprawianie, że komputer staje się bezużyteczny. Jednak nie wszystkie wirusy niosą ze sobą destrukcyjny „ ładunek ” i próbują się ukryć — cechą charakterystyczną wirusów jest to, że są samoreplikującymi się programami komputerowymi, które modyfikują inne oprogramowanie bez zgody użytkownika poprzez wstrzykiwanie się do wspomnianych programów, podobnie jak w przypadku biologicznego wirus, który replikuje się w żywych komórkach.

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki