[This page is under construction]


Possible Macro Virus Attacks
and How to Prevent Them


Vesselin Bontchev, anti–virus researcher
FRISK Software International
Postholf 7180, 127 Reykjavik, ICELAND
E–mail: bontchev@complex.is

Abstract: Computer viruses written in the macro language of powerful office packages, particularly of Microsoft Word for Windows are a relatively new phenomenon. Most of the viruses of this kind known to date rely heavily on the availability of the so–called "auto" macros (macros which execute automatically when the document containing them is opened or closed) in order to spread. This has created, among some anti–virus producers, the illusion that macro viruses have to depend on the auto macros in order to replicate. Based on this erroneous assumption,  some companies have developed inadequate antivirus products and protection schemes. This paper demonstrates that the assumption is false—that there are many other ways which a WordMacro virus can use to get control and replicate successfully. The paper describes all these methods known to the author, emphasizes that they pose a problem mostly to the anti–virus programs of the generic kind (i.e., not to the virus–specific scanners), and explains what measures have to be taken in order to block these attacks reliably.


Table of Contents

1. Introduction

2. Macro Virus Attacks

2.1. Attacks Against Heuristic Analyzers

2.1.1. System Macros

2.1.2. Menu Replacement

2.1.3. Button Redefinition

2.1.4. Key Shortcuts

2.1.5. The FieldMacro Attack

2.1.6. On–the–Fly Macro Construction

2.1.7. Language Version–Independent Macro Viruses

2.1.8. Corrupted Macro Bodies

2.1.9. Dispersed Macro Viruses

2.2. Attacks Against Integrity Checkers

2.2.1. Infection of the STARTUP Directory

2.2.2. Add–In Global Templates

2.2.3. Companion Macro Viruses

2.2.4. Avoiding Infection of the Global Templates

2.2.5. Direct–Action Macro Viruses

2.3. Attacks Against Scanners

2.3.1. On–The–Fly Encryption of the Document

2.3.2. Document to Macro Conversion

2.3.3. Polymorphic Macros

2.3.4. Chained Macros

2.3.5. "Mating" Macro Viruses

2.3.6. Macro Virus Mutators

2.3.7. Parasitic Macro Viruses

2.3.8. Stealth Macro Viruses

2.3.9. Richard’s Problem

2.3.10. Igor’s Problem

2.4. Attacks Against Behavior Blocking

2.4.1. Bypassing the ReadOnly Attribute of the Global Template

3. Macro Trojan Attacks

3.1. The MACROBUTTON Attack

3.2. The Macro Name Conflict Attack

3.3. The OLE Attack

4. WinWord Version 7.0a

5. Conclusion

6. References

Appendix A

Appendix B


1. Introduction

Back to the Table of Contents

2. Macro Virus Attacks

Back to the Table of Contents

2.1. Attacks Against Heuristic Analyzers

Back to the Table of Contents

2.1.1. System Macros

Back to the Table of Contents

2.1.2. Menu Replacement

Back to the Table of Contents

2.1.3. Button Redefinition

Back to the Table of Contents

2.1.4. Key Shortcuts

Back to the Table of Contents

2.1.5. The FieldMacro Attack

Back to the Table of Contents

2.1.6. On–the–Fly Macro Construction

Back to the Table of Contents

2.1.7. Language Version–Independent Macro Viruses

Back to the Table of Contents

2.1.8. Corrupted Macro Bodies

Back to the Table of Contents

2.1.9. Dispersed Macro Viruses

Back to the Table of Contents

2.2. Attacks Against Integrity Checkers

Back to the Table of Contents

2.2.1. Infection of the STARTUP Directory

Back to the Table of Contents

2.2.2. Add–In Global Templates

Back to the Table of Contents

2.2.3. Companion Macro Viruses

Back to the Table of Contents

2.2.4. Avoiding Infection of the Global Templates

Back to the Table of Contents

2.2.5. Direct–Action Macro Viruses

Back to the Table of Contents

2.3. Attacks Against Scanners

Back to the Table of Contents

2.3.1. On–The–Fly Encryption of the Document

Back to the Table of Contents

2.3.2. Document to Macro Conversion

Back to the Table of Contents

2.3.3. Polymorphic Macros

Back to the Table of Contents

2.3.4. Chained Macros

Back to the Table of Contents

2.3.5. "Mating" Macro Viruses

Back to the Table of Contents

2.3.6. Macro Virus Mutators

Back to the Table of Contents

2.3.7. Parasitic Macro Viruses

Back to the Table of Contents

2.3.8. Stealth Macro Viruses

Back to the Table of Contents

2.3.9. Richard’s Problem

Back to the Table of Contents

2.3.10. Igor’s Problem

Back to the Table of Contents

2.4. Attacks Against Behavior Blocking

Back to the Table of Contents

2.4.1. Bypassing the ReadOnly Attribute of the Global Template

Back to the Table of Contents

3. Macro Trojan Attacks

Back to the Table of Contents

3.1. The MACROBUTTON Attack

Back to the Table of Contents

3.2. The Macro Name Conflict Attack

Back to the Table of Contents

3.3. The OLE Attack

Back to the Table of Contents

4. WinWord Version 7.0a

Back to the Table of Contents

5. Conclusion

Back to the Table of Contents

6. References

Back to the Table of Contents

Appendix A

Back to the Table of Contents

Appendix B

Back to the Table of Contents