Makrowirusy
Uwagi ogólne
- Pierwsze makrowirusy infekowały tylko dokumenty Word-a.
Obecnie także zagrożone są dokumenty innych aplikacji Microsoft Office
oraz dowolne inne programy dające możliwość pisania makr (np. Lotus AmiPro).
- Makrowirusy wykorzystują możliwość tworzenia makr.
- Makrowirusy dla MS Office pisane są w języku Visual Basic
for Application (kiedyś, do Word 97, makra były pisane w języku
Word Basic).
- Mogą być napisane nawet przez początkujących programistów.
- Szybko się rozprzestrzeniają, ponieważ:
- Dokumenty są często otwierane.
- Dokumenty są używane przez wielu użytkowników.
- Często dokumenty są dołączane do listów.
Wirusy infekujące dokumenty Word-a
Wirusy Word-a dołączają się do szablonów Word-a (Word Template).
Szablony mają rozszerzenie .dot, ale można je zmienić,
dla niepoznaki, na .doc.
Wirusy wykorzystują możliwość zmiany makropoleceń.
Makropolecenia, o pewnych nazwach, wykonują się zawsze w
określonych sytuacjach. Najpopularniejsze makra to:
- AutoExec - uruchamia się przy rozpoczęciu pracy.
- AutoNew - uruchamia się przy tworzeniu nowego dokumentu.
- AutoOpen - uruchamia się przy otwieraniu dokumentu.
- AutoClose - uruchamia się przy zamykaniu dokumentu.
- AutoExit - uruchamia się przy kończeniu pracy.
Często używane są też:
- FileSave - jest wykonywane przy zapisie dokumentu.
- FileSaveAs - j.w.
- FilePrint - jest wykonywane przy drukowaniu.
- FileExit - jest wykonywane przy zamknięciu dokumentu.
Wszystkie globalne makra Word zapisuje w Global Macro File. Przeważnie
jest to plik normal.dot.
Aby stworzyć makrowirusa wystarczy:
- Stworzyć makra o powyższych nazwach.
- Wpisać do nich kod wirusa.
- Zapisać plik jako szablon.
- Zmienić rozszeżenie na .doc.
Typowy makrowirus wykonuje następujące czynności:
- Sprawdza czy jest już w pliku normal.dot.
- Jeśli nie, to się tam kopiuje.
- Sprawdza czy aktywny dokument jest szablonem.
- Jeśli nie, to zmienia jego typ na
szablon (nie zmieniając rozszeżenia) i kopiuje się do niego.
Przykłady
Concept
Był to pierwszy wykryty makrowirus. Używał makr: AutoOpen, FileSaveAs
oraz tworzył nowe makra: AAAZFS, AAAZAO i Payload.
Nuclear
Był to pierwszy wirus infekujący zarówno pliki wykonywalne jak i
dokumenty. Zainfekowane dokumenty zawierały makra: AutoExec, AutoOpen,
FileSaveAs, FilePrint, FilePrintDefault, FileExit oraz specyficzne
dla tego wirusa: InsertPayload, Payload i DropSuriv.
Makro InsertPayload powodowało dodanie do drukowanych dokumentów
następującego tekstu (co dwunaste drukowanie):
And finally I would like to say:
STOP ALL FRENCH NUCLEAR TESTING IN THE PACIFIC!
Za infekcję plików wykonywalnych odpowiadało makro DropSuriv. Szukało
programu debug.exe i przy jego pomocy instalowało rezydentnego
wirusa Ph33r, który przejmował przerwanie 21H i infekował
pliki com, exe i NewExe.