wirus komputerowy
| Po angielsku | virus |
|---|---|
| Którą formą pisać | po polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie. |
| Inne formy | wirus |
| Kategoria | Złośliwe oprogramowanie |
Wirus komputerowy to rodzaj złośliwego oprogramowania (malware), który rozprzestrzenia się, modyfikując inne programy tak, by zawierały jego kopię, i który uruchamia się, gdy zostanie wywołany zarażony program [1]. Wirus nie działa samodzielnie: potrzebuje nosiciela, którego ktoś uruchomi [1]. Niebezpiecznik sprowadza definicję do jednego zdania: wirus to samoreplikujący się złośliwy kod [4]. W mowie potocznej słowo „wirus” oznacza każde złośliwe oprogramowanie, ale w ścisłym znaczeniu jest to tylko jedna z jego odmian.
Jak działa
Fred Cohen, który w 1984 roku opisał zjawisko naukowo, zdefiniował wirusa jako program zdolny „zarażać” inne programy przez dopisanie do nich swojej, być może zmienionej, kopii [2]. Zauważył, że wirus rozchodzi się po systemie z uprawnieniami każdego użytkownika, który uruchomi zarażony program, a każdy zarażony program sam może działać jak wirus [2]. Sekurak opisuje ten sam mechanizm prościej: wirusy dopisują swój kod do innych plików wykonywalnych na komputerze [3].
Cohen zilustrował działanie prostym wirusem modelowym. Program szuka niezarażonego pliku wykonywalnego, dopisuje się na jego początek, sprawdza warunek wyzwalający i ewentualnie wyrządza szkodę, a na końcu wykonuje resztę programu, do którego był dopisany [2]. Poza niewielkim opóźnieniem zarażony plik wygląda dla użytkownika jak oryginał, dopóki warunek nie uruchomi szkodliwego działania [2]. Cykl pokazuje schemat poniżej; powrót do pierwszego etapu oznacza, że każdy nowy nosiciel staje się źródłem kolejnych infekcji.
Szkodliwa część, czyli ładunek (payload), może być dowolna. NIST opisuje cel złośliwego oprogramowania jako niszczenie danych, uruchamianie szkodliwych programów albo inne naruszenie poufności, integralności lub dostępności danych i systemu ofiary [7].
Wirus, robak i koń trojański
Sekurak rozróżnia trzy klasyczne rodziny według sposobu infekcji [3]. Granice między nimi się zacierają, bo współczesne złośliwe programy łączą kilka metod.
| Rodzaj | Jak się rozprzestrzenia | Czy potrzebuje działania użytkownika |
|---|---|---|
| wirus | dopisuje kod do innych plików wykonywalnych [3] | tak, uruchomienia nosiciela [1] |
| robak komputerowy | przez internet, z użyciem exploitów [3] | nie [3] |
| koń trojański | udaje inny, pożyteczny program [3] | tak, instalacji programu [3] |
Autor tekstu w Sekuraku, analityk złośliwego oprogramowania z CERT Polska, zauważa, że wirusy w ścisłym sensie prawie już nie występują [3]. Ich miejsce zajęły trojany i robaki, a wirusowe techniki przetrwały jako element większych kampanii. Samoreplikacja jest też kryterium rozstrzygającym spory o nazwę. W 2010 roku Niebezpiecznik odrzucił tezę, że wszczepienie człowiekowi chipu RFID z „zainfekowanymi” danymi było pierwszym zarażeniem człowieka wirusem, bo taki kod nie powiela się sam [4].
W WordPressie
Strona WordPress nie składa się z plików wykonywalnych systemu Windows, więc klasyczne wirusy plikowe nie infekują jej bezpośrednio. Wirusowa zasada, czyli dopisywanie złośliwego kodu do istniejących plików, jest jednak typowa dla przejętych stron. Dokumentacja WordPressa wskazuje pliki, które warto sprawdzić po włamaniu: index.php, header.php, footer.php i plik funkcji motywu [6]. Ich modyfikacja wpływa zwykle na wszystkie żądania do strony [6]. Najczęściej zmienianym plikiem jest .htaccess, który może występować także w podkatalogach [6]; zob. zabezpieczenia w .htaccess.
Drugi związek dotyczy komputera administratora. Dokumentacja podaje, że w wielu przypadkach atak zaczyna się na lokalnym komputerze, na którym trojany przechwytują dane logowania do FTP i panelu /wp-admin [6]. Zaleca więc pełne skanowanie komputera, a nawet użycie innego programu antywirusowego, bo część wirusów potrafi ukrywać się przed programem zainstalowanym [6]. Raport CERT Polska o Virucie pokazuje, że wirus może też bezpośrednio zmieniać treść stron: nowsze wersje doklejały do plików HTML na zarażonym komputerze kod infekujący odwiedzających metodą drive-by download [5].
Jak się bronić
NIST zaleca stosowanie oprogramowania antywirusowego na wszystkich hostach, aktualizację sygnatur i skanowanie w czasie rzeczywistym każdego pliku pobieranego, otwieranego lub uruchamianego [7]. Mechanizmy detekcji opisuje hasło wykrywanie sygnaturowe i heurystyczne. Wirus plikowy stawia przed obrońcą szczególne zadanie, bo zaraża prawdziwe programy. NIST odróżnia dezynfekcję, czyli usunięcie złośliwego kodu z pliku, od kwarantanny, czyli odizolowania pliku do dalszej analizy [7]. Dezynfekcja jest zwykle lepsza, bo przywraca oryginał, ale wielu zarażonych plików nie da się oczyścić [7].
Dla stron internetowych praktyczną odpowiedzią jest zastąpienie plików czystymi kopiami. Dokumentacja WordPressa zaleca ręczne wgranie katalogów wp-admin i wp-includes przez SFTP, a nie reinstalację z panelu, bo instalator nadpisuje tylko istniejące pliki, a włamania często dodają nowe [6]. Przydają się też kopia zapasowa (backup), monitorowanie integralności plików i skaner złośliwego oprogramowania (malware scanner). Cohen wykazał, że precyzyjne rozpoznanie każdego wirusa po samym wyglądzie programu jest niewykonalne [2], dlatego żadna pojedyncza warstwa nie wystarcza.
Historia i przykłady
Według Cohena pierwszy wirus powstał jako eksperyment 3 listopada 1983 roku, na potrzeby seminarium o bezpieczeństwie; nazwę „wirus” zaproponował Len Adleman [2]. Napisanie go na systemie VAX 11/750 z Uniksem zajęło 8 godzin, a 10 listopada wirus został zaprezentowany na seminarium [2]. W każdym z pięciu eksperymentów atakujący uzyskał wszystkie uprawnienia w systemie w czasie krótszym niż godzina; najkrótsza próba trwała poniżej 5 minut [2].
W Polsce najlepiej udokumentowanym przypadkiem jest Virut. Według raportu CERT Polska rozprzestrzeniał się przede wszystkim przez infekowanie plików wykonywalnych, a największe ryzyko wiązało się z pendrive'ami, udziałami sieciowymi i plikami z niezweryfikowanych źródeł [5]. Zarażone komputery tworzyły botnet sterowany przez serwery IRC, wynajmowany m.in. do rozsyłania spamu i ataków DDoS [5]. Na przełomie stycznia i lutego 2013 roku NASK przejął domeny botnetu i przekierował je na sinkhole [5]. Serwer notował wtedy połączenia z około 270 tysięcy unikalnych adresów IP dziennie, a Polska była na 19. miejscu pod względem skali infekcji [5].
Przypisy
7- [1] Virus — Glossary · NIST CSRC
- [2] Computer Viruses — Theory and Experiments (Fred Cohen, 1984) · Fred Cohen & Associates (all.net)
- [3] Robak, trojan, wirus — o co w tym wszystkim chodzi? · Sekurak
- [4] Pierwszy człowiek zarażony wirusem komputerowym? WTF? · Niebezpiecznik
- [5] Raport: Przejęcie domen botnetu Virut (25 lutego 2013) · CERT Polska / NASK
- [6] FAQ My site was hacked · WordPress.org
- [7] SP 800-83 Rev. 1: Guide to Malware Incident Prevention and Handling for Desktops and Laptops · NIST