Де живуть макровіруси

Де живуть макровіруси?

Велика кількість інструментарію для початківця зломщика в системах такого класу просто бентежить. Користувача заганяють в абсолютно анекдотичний положення, коли прав і можливостей у нього куди менше в порівнянні з невідомо звідки з'явилися програмним кодом. Більш того, завдати шкоди значно простіше, ніж використовувати програму за прямим призначенням. Що толку від паролів і рівнів привілеїв, якщо вірус або, того гірше, троянець вже сидить всередині і може безперешкодно скористатися всіма функціями поражаемой системи? Це нагадує КПП військової частини, навколо якої немає ніякої огорожі.

Безпека знову принесена в жертву заради зручності роботи програмістів. Мабуть, тут спостерігається негативний зворотний зв'язок: орієнтація на споживачів з мінімальними комп'ютерними знаннями знижує вимоги до кваліфікації розробників. А чим ще можна пояснити вперте ігнорування накопиченого досвіду? І скільки ще будуть платитися гроші за сейф без задньої стінки?

Створюючи Windows 95, Microsoft намагалася довести, що для неї немає нічого неможливого. Пам'ятається, на початку 90-х років, коли епідемія DOS-вірусів розгорнулася на повну силу, експерти з безпеки розсіювали чутки про віруси в документах і електронних листах. Стверджувалося, що для побоювань немає ніяких підстав. Наївні люди. Поки вони заколисували користувачів, тисячі співробітників вже аж ніяк не мікроскопічної софтверної фірми кували якраз ті самі підстави, завдяки яким NIMDA сьогодні ставить на вуха Internet-спільнота.

Макровіруси виявилися побічним ефектом ідеї тотальної автоматизації додатків. Безперечно, це дуже зручно для програмістів - не потрібно заново винаходити велосипед, застосовуючи в міру необхідності готові рішення. Грамотний користувач також може розширити можливості використовуваного програмного забезпечення. Проблема в тому, що немає ніяких обмежувачів. Ядро автоматизації становить Visual Basic for Application (VBA) - сплав потужності і простоти. Оснащене їм додаток фактично перетворюється в інтерпретатор мови високого рівня, якому доступні всі можливості операційної системи. Сьогодні він є фактично на кожному Windows-комп'ютері в складі популярних додатків і забезпечує сприятливі умови для вірусних епідемій.

Розробити ефективну шкідливу програму цілком під силу початківцю програмісту. У статті «Curious Basic» я наводив приклади, що пояснюють, що ховається за парадним фасадом автоматизації «по-редмондовскі». Word елементарно можна запрограмувати так, що він стане менеджером завдань або правитиме Реєстр (Registry). Навіщо це офісного додатка? Природно, застосування таких здібностей знайдеться тільки в неправедних цілях.

Не реагувати на зростаюче невдоволення клієнтів (дожили адже до того, що, відкривши документ, можна втратити всю інформацію на вінчестері) Microsoft вже не може, а визнавати помилковість свого вибору ще не хоче. Поки вона обмежується косметичними латками, одночасно промиваючи мізки довірливим клієнтам: проблема, мовляв, вирішена. На думку розробників, основна проблема - люди. Це вони пишуть віруси, тягнуть на свій комп'ютер будь-яку гидоту, а зубожілій на очах виробник чудового ПО абсолютно не винен.

Ну що ж, подивимося спершу на найпопулярніший серед вірусів об'єкт MS Word. DOC-формат зараз є найбільш поширеним форматом для обміну даними. Починаючи з 8-ї версії (Word 97), макроси можуть міститися як в шаблонах (DOT), так і в звичайних документах (DOC). Рекомендації використовувати для пересилання документів формат RTF, в якому макросів не повинно бути за визначенням, не враховують один «дрібниця». Якщо документ містить растрову графіку, то при конвертації в RTF вона чомусь виявляється в форматі BMP (не інакше як для кращої сумісності, з ким тільки?), Збільшуючи розміри файлу в десятки разів. Так, чернетка цієї статті зі вставленими TIF-ілюстраціями має розмір 135 кілобайт в DOC-форматі, а в RTF - «всього-то» 6,19 мегабайти. WinRAR при максимальному стисканні може упакувати його до 199 кБ, хоча вихідний DOC зменшується до 89 кБ. І це при використанні скріншотів, а коли мова піде про справжніх картинках, то розміри RTF-копії можуть виявитися в сотні разів більше исходника!

Для зменшення ризику, в програми пакету MS Office введено попередження про наявність макросів в відкривається документі (рис. 1).

Малюнок 1. Головна «захист» від макровірусів.

Малюнок 4. Шаблони і надбудови.

Цей інструмент застосовується для обміну стилями, макросами, панелями інструментів і елементами автотексту між різними документами і шаблонами. При цьому файли не потрібно відкривати в Word'е. Відкривши діалогове вікна організатора (рис. 3), натисніть будь-яку кнопку «Закрити файл». Її назва зміниться на «Відкрити файл». Знайдіть підозрюваний файл і виберіть вкладку Макроси. Якщо у вікні з'явиться хоч одна з назв - AutoExec, AutoNew, AutoOpen, AutoClose або AutoExit - є привід серйозно задуматися. Це імена автоматично виконуваних макросів, використовуваних вірусами для впровадження в головний шаблон - normal.dot.

Наявність автоматично виконуваних макросів забезпечує вірусам легкий механізм зараження головного шаблону і подальшого розповзання по відкривається документам. Щоб їх заблокувати, потрібно тримати клавішу SHIFT під час запуску Word'а, при створенні нового документа, при відкритті або закритті документа, а також при завершенні роботи з текстовим процесором. Коли вам це набридне, створіть в шаблоні normal.dot макрос з ім'ям AutoExec, що містить всього один рядок:
WordBasic.DisableAutoMacros

Це заборонить автоматичне виконання макросів в будь-якому випадку. Можлива втрата функціональності окремих документів з лишком компенсується зниженням ризику інфікування. Якщо ж у вашій роботі автомакрос необхідні постійно, то вважайте, що вам не пощастило. Але тоді, по крайней мере, включите запит на збереження normal.dot (меню Сервіс> Параметри .... Вкладка Збереження). Будете хоча б отримувати попередження про зміну головного шаблону, якщо, звичайно, вірус таке не відключить (Options.SaveNormalPrompt = False). Тому потрібно мати резервну копію, щоб потім не мучитися, згадуючи характеристики своїх стилів, зміни в панелях і інші прикраси.

До речі, зверніть увагу на те, що механізм заборони автоматично виконуваних макросів належить залишеному поки для сумісності WordBasic'у - попереднику VBA і першій платформі для макровірусів. Чи не збираються розумники з Редмонда взагалі скасувати таку функцію?

Думаєте, на цьому вразливі напрямки вичерпані? Як би не так. Винахідливий micro-народ придумав можливість автоматичного завантаження документів і шаблонів при запуску Word'а. Їх список ви побачите за допомогою меню Сервіс> Шаблони і надбудови ... (рис. 4). Такі шаблони треба розміщувати в папці для автозагружаемих файлів (на рис. 6 - STARTUP).

Малюнок 6. Службові папки і шляхи до них.

Як ви розумієте, там теж водяться макроси, причому у великих кількостях. Механізм автооткриваемих шаблонів застосовується для зв'язку Word'а з надто розумними зовнішніми додатками: перекладачами, словниками, розпізнавачів тексту і т.д. без яких немислима робота сучасного офісу. За замовчуванням всі такі файли-посередники передбачаються безпечними (рис. 7).

Малюнок 7. Довіряти всім установленим надбудовам і шаблонами?

Тобто заражений документ в startup-папці найчастіше не перевіряється. Мало хто з користувачів до цієї настройки добирається. Якщо зняти довірчу пташку і встановити контроль на загальних підставах, то Word буде діставати питаннями при кожному запуску на середньому рівні безпеки. Перейшовши на високий, ми втратимо попередження про загрозу, та й функціональність виявляється під питанням - не всі макроси мають цифровий підпис, яку можна оголосити надійної.

Довіряй але перевіряй. Підступ може виявитися в файлі з самого надійного джерела. До того ж, захист не так уже й рідко буває дірявим, пропускаючи макроси без попередження. А довільний зовнішній код, використовуючи COM-властивості Word'а, може вставити макрос прямо в normal.dot, ігноруючи всі захисні бар'єри, цифрові підписи та іншу заспокійливу дурниці.

Схожі статті