Ко мне периодически приходят с одной и той же проблемой: «В Outlook появился странный файл с расширением .vbs, плагин стал себя странно вести — что это и насколько опасно?». Иногда это легитимный скрипт для автоматизации обработки писем. Чаще — закрепившийся в макросах или дополнении вредоносный код, который пытается рассылать себя контактам или запускать сторонние процессы. Ниже я рассказываю, как такой скрипт разобрать, что в нём искать и как принять решение — оставить или удалить.
- Почему .vbs в Outlook вообще появляется
- Где физически лежат подозрительные скрипты
- Как безопасно открыть и прочитать .vbs-файл
- Что искать в коде: краткий чек-лист
- Типичные паттерны вредоносных скриптов
- Сравнение: легитимный скрипт vs вредоносный
- Пошаговый разбор скрипта: что делать
- Частые ошибки при анализе
- Что делать в зависимости от ситуации
- Инструменты, которые я использую
- Как предотвратить появление таких скриптов в будущем
- Итог
Почему .vbs в Outlook вообще появляется
Visual Basic Script — это встроенный в Windows скриптовый язык. Outlook умеет выполнять макросы на VBA (Visual Basic for Applications), но чистые .vbs-файлы обычно не являются частью стандартной функциональности почтовика. Они могут появиться несколькими путями:
- кто-то установил стороннюю надстройку, которая использует внешние скрипты для обработки входящих или исходящих писем;
- в корпоративной среде администратор развернул скрипт для автоматической маршрутизации почты или проверки вложений;
- вредоносное вложение сохранилось на диск и прописало автозапуск через макросы или события Outlook;
- разработчик плагина по ошибке или намеренно включил в дистрибутив скрипт, который не подписан и не документирован.
Если вы не помните, что сами устанавливали скрипт или плагин с ним — это уже повод остановиться и разобраться, прежде чем продолжать работу с почтой.
Где физически лежат подозрительные скрипты
Прежде чем анализировать код, нужно понять, от чьего имени он запускается и где хранится. Типичные места:
- Папка макросов Outlook — обычно внутри %userprofile%\AppData\Roaming\Microsoft\Outlook. Если там есть файлы .vbs или .vbe, они могут подгружаться при старте.
- Рабочая папка плагина — часто в Program Files или AppData конкретного дополнения. Сторонние плагиновые скрипты иногда лежат рядом с .dll или .exe этого плагина.
- Автозагрузка Windows — скрипт может запускаться не из Outlook напрямую, а через планировщик задач или раздел реестра Run, а уже оттуда взаимодействовать с почтовым клиентом через COM-объект Outlook.Application.
- Вложения в письмах — классический вектор. Пользователь открыл письмо, дважды кликнул по .vbs-файлу, и тот выполнился вне Outlook, но получил доступ к адресной книге.
Если вы нашли файл, но не помните его происхождение — не спешите его удалять. Сначала посмотрите содержимое. Иногда это безобидный служебный скрипт, удаление которого ломает нужную автоматизацию.
Как безопасно открыть и прочитать .vbs-файл
Никогда не открывайте такой файл двойным кликом — он выполнится. Вместо этого:
- Скопируйте файл в изолированную папку на диске, желательно без доступа к сети.
- Откройте его в текстовом редакторе: Notepad++, VS Code или хотя бы в Блокноте. Подойдёт любой редактор, который показывает код как текст, а не запускает его.
- Если файл зашифрован или представляет собой «мусор» — это плохой признак. Легитимные скрипты редко обфусцируют.
- Если есть возможность — откройте файл в виртуальной машине без корпоративного доступа, чтобы исключить случайное выполнение при ошибке.
Что искать в коде: краткий чек-лист
Когда я открываю подозрительный .vbs-скрипт, я прохожуся по нескольким контрольным точкам. Вот на что обращать внимание:
- Работа с адресной книгой Outlook. Строки вроде
GetNamespace("MAPI"),Recipients,AddressEntries— это признак, что скрипт читает ваши контакты. Само по себе это не зло, но повод насторожиться, если плагин не должен этого делать. - Отправка писем. Вызовы
CreateItem(0),.Send, особенно в цикле по всем контактам — классический признак почтового червя. - Работа с файловой системой. Использование
Scripting.FileSystemObjectдля записи в системные папки, автозагрузку, подмену файлов. - Запуск внешних процессов.
WScript.Shell.Run,CreateObject("Wscript.Shell")с командами cmd, powershell, wmic — почти всегда подозрительно в скрипте для Outlook-плагина. - Сетевые запросы.
MSXML2.XMLHTTPилиWinHttp.WinHttpRequest— скрипт что-то отправляет наружу. Обратите внимание, на какие адреса идут запросы. - Обфускация. Длинные строки из случайных символов,
Chr()с набором чисел, кодировки Base64 внутри — попытка скрыть реальные действия. - Отсутствие цифровой подписи. Легитимные скрипты в корпоративной среде часто подписаны. Если подпись отсутствует и вы не знаете автора — доверия нет.
Типичные паттерны вредоносных скриптов
За годы практики я выделил несколько повторяющихся сценариев. Они помогают быстро оценить уровень угрозы:
- Рассылка себя дальше. Скрипт открывает адресную книгу, выбирает получателей и отправляет им письмо с вложением или ссылкой. Часто использует ваше имя и тему Re: или Fwd:, чтобы письмо выглядело легитимным.
- Сбор данных. Скрипт читает тела писем, вложения, контакты и сохраняет их в файл, после чего отправляет на внешний сервер. Ищите в коде обращения к свойствам
.Body,.Attachments,.Subject. - Бэкдор. Скрипт остаётся в системе и периодически проверяет внешний ресурс на наличие команд для выполнения. Это самый опасный сценарий, потому что может существовать незаметно месяцами.
- Саботаж. Скрипт удаляет письма, изменяет настройки учётной записи, блокирует отправку. Встречается реже, но тоже бывает.
Сравнение: легитимный скрипт vs вредоносный
Не каждый подозрительный с виду скрипт опасен. Вот таблица, которую я использую при быстрой сортировке:
| Признак | Легитимный скрипт | Вредоносный скрипт |
|---|---|---|
| Источник | Установлен вами или администратором, есть описание в документации плагина | Появился без вашего ведома, нет упоминаний в списке установленных программ |
| Цифровая подпись | Есть, принадлежит известному разработчику или вашей компании | Отсутствует или подпись не проходит проверку |
| Действия с контактами | Читает контакты только для конкретной задачи (например, автозаполнение поля «Кому») | Перебирает всю адресную книгу и что-то отправляет |
| Сетевые запросы | Отсутствуют или идут только на внутренние серверы компании | Запросы на внешние IP-адреса или подозрительные домены |
| Обфускация | Код читаемый, есть комментарии, понятные имена переменных | Код намеренно запутан, имена переменных бессмысленные |
| Влияние на систему | Не мешает работе Outlook, не появляются новые процессы | Outlook тормозит, появляются новые процессы в диспетчере задач |
Пошаговый разбор скрипта: что делать
Когда перед вами файл и вы его открыли, двигайтесь в таком порядке:
- Определите точку входа. Найдите первую выполняемую строку или подпрограмму. Часто это
Sub Main()или код в обработчике событияApplication_Startup. - Пройдитесь по цепочке вызовов. Если скрипт вызывает другие процедуры — проследите, что каждая из них делает. Не закапывайтесь в каждую строку, держите в голове общую схему.
- Выделите все обращения к внешним ресурсам. Сетевые запросы, запуск программ, запись файлов — это ключевые точки для анализа.
- Проверьте адреса и пути. Если в коде есть URL или IP — пробейте их через VirusTotal или любой другой сервис репутации. Если путь к файлу ведёт в автозагрузку — это подозрительно.
- Оцените объём и сложность. Скрипт на 10 строк, который просто показывает окно с текстом — не то же самое, что на 500 строк с обфускацией и сетевыми запросами.
- Сравните с известными сигнатурами. Если есть доступ к антивирусной лаборатории или сервисам анализа — загрузите туда файл. Даже бесплатный VirusTotal может подсказать, видели ли этот скрипт раньше.
Частые ошибки при анализе
Даже опытные специалисты иногда ошибаются. Вот типичные промахи, которых стоит избегать:
- Удаление скрипта без разбора. Если это был рабочий скрипт для обработки почты, вы сломаете автоматизацию, а проблема вернётся — ведь плагин может снова его подтянуть.
- Оценка только по расширению. Сам по себе .vbs не злой и не добрый. Важно содержание и контекст.
- Игнорирование ложных срабатываний. Некоторые плагины для шифрования почты или антиспам-фильтры действительно используют скрипты для интеграции с Outlook. Если плагин установлен легитимно — это нормально.
- Отсутствие изоляции. Анализ скрипта на рабочей машине без отключения сети — риск случайно запустить его или дать ему передать данные.
- Недооценка угрозы. Если скрипт обращается к адресной книге и что-то отправляет наружу — это уже инцидент, даже если пока непонятно, что именно ушло.
Что делать в зависимости от ситуации
Не существует универсального рецепта, но есть сценарии, в которых я обычно действую так:
- Скрипт найден, но вы не знаете, откуда он. Не удаляйте сразу. Сделайте копию в архив, проанализируйте код. Если код чистый и нужный — оставьте. Если подозрительный — удалите и проверьте систему антивирусом.
- Скрипт пришёл во вложении и вы его открыли. Немедленно отключите сеть, запустите полную проверку антивирусом, смените пароли от почты и корпоративных сервисов. Если на компьютере есть важные данные — свяжитесь с ИБ-отделом.
- Скрипт является частью платного плагина. Свяжитесь с разработчиком плагина и запросите объяснение. Если разработчик не может внятно объяснить, зачем нужен скрипт — от плагина лучше отказаться.
- Скрипт обнаружен на нескольких компьютерах в сети. Это признак массовой рассылки или заражения. Нужно централизованно собрать образцы, проверить их и принять решение об удалении одновременно на всех машинах.
Инструменты, которые я использую
Для быстрого анализа не нужны сложные средства. Достаточно:
- Notepad++ или VS Code — для просмотра кода с подсветкой синтаксиса.
- VirusTotal — для проверки файла или ссылок из скрипта через десятки антивирусов одновременно.
- Process Monitor (Sysinternals) — чтобы увидеть, какие процессы запускает Outlook и куда обращается.
- Autoruns (Sysinternals) — для проверки автозагрузки, если скрипт запускается не из Outlook напрямую.
- Песочница или виртуальная машина — если нужно наблюдать за поведением скрипта в безопасной среде.
Как предотвратить появление таких скриптов в будущем
Лучшее лечение — профилактика. Несколько практических мер:
- Устанавливайте плагины для Outlook только из проверенных источников и проверяйте их цифровую подпись.
- Отключите выполнение макросов в Outlook по умолчанию — оставьте только для подписанных или доверенных.
- Настройте политику безопасности Outlook так, чтобы вложения с расширениями .vbs, .vbe, .js, .jse блокировались или сохранялись в изолированную папку.
- Регулярно проверяйте список установленных надстроек и удаляйте те, которыми не пользуетесь.
- Обучайте коллег или близких: не открывать вложения с расширениями скриптов, даже если письмо пришло от знакомого человека — его аккаунт мог быть скомпрометирован.
Итог
Подозрительный .vbs-скрипт в Outlook-плагине — это не повод для паники, но и не повод закрывать глаза. Сначала разберите его содержимое, определите источник и оцените, какие действия он выполняет. Если скрипт читает контакты, отправляет письма или обращается к внешним ресурсам без вашего ведома — это инцидент, который нужно расследовать. Если код чистый и нужный — оставьте, но убедитесь, что он подписан и документирован.
Главное правило: не удаляйте не глядя и не запускайте что попало. Потратьте пятнадцать минут на разбор — это сбережёт часы восстановления после реальной атаки.
