Своя антивирусная лаборатория. Инструменты для анализа подозрительных файлов.

Это вирус! Нутром чую, что в файле - троян, но антивирус, зараза такая, молчит. Может быть, используется хитрый криптор, усложняющий эвристический анализ? Или трой новый и еще не попал в сигнатурные базы? Или может, это не вирус вовсе, а просто я – параноик? Все возможно :). Наша задача на сегодня - проанализировать сомнительный файл минимальной кровью.

Антивирусные компании накопили огромный арсенал средств и ноу-хау для сбора новых образцов малвари и исследования сомнительных файлов, анализа и реверсинга тел вирусов. Но чтобы определить, делает ли файл что-то сомнительное или нет, не надо быть специалистом антивирусной лаборатории. Провести свой анализ помогут несколько подручных средств.

VirusTotal

  • www.virustotal.com

Если у меня есть сомнения по поводу какого-то файла, первым делом я заливаю его на VirusTotal. Преимущество очевидно: за раз можно проверить файл на наличие малвари более чем 40 разными антивирусными продуктами, используя последние доступные сигнатуры. Результат интересен не только с точки зрения, заражен файл или нет, но еще и для сравнения эффективности разных антивирусов, работы эвристических алгоритмов и проверки работы своих крипторов :). Сервис использовать гораздо удобнее, если установить в систему специальную программу-загрузчик VirusTotal Uploader. В контекстном меню появляется новый пункт, через который можно быстро передать файл на проверку. К тому же, во второй версии программы появился еще и графический интерфейс, — с ним легко проверяется любой из текущих процессов. С другой стороны, далеко не всегда эвристика и сигнатурные базы, даже всех антивирусов сразу, могут обнаружить уникальную малварь, правильно упакованную и пока не «спалившуюся». Тут ничего не остается, как самому брать в руки инструменты и изучать поведение программы.

Sandboxie

  • www.sandboxie.com

Есть два способа узнать, что делает программа: отреверсить ее, что сложно и долго, или запустить, посмотрев, что после этого произойдет. Правда, запускать сомнительный файл в своей системе сродни с самоубийством, поэтому делать это нужно в безопасном окружении. Не будем в очередной раз касаться виртуальных машин, хотя это, безусловно, один из лучших способов, а воспользуемся на этот раз песочницей (sandbox). Любая программа, запущенная в такой песочнице, функционирует так же, как и если бы была запущена просто в системе, однако файловая система и реестр для нее особенным образом виртуализируются, чтобы любые изменения всегда можно было откатить. Начиная с Vista встроенная песочница есть в винде: перевести любое приложение в sandbox можно через менеджер задач, выбрав в контекстном меню пункт «Виртуализация UAC». Пользуются ей немного, что неудивительно, потому как решения от сторонних разработчиков намного понятнее, в том числе и программа Sandboxie. Виртуализировать критические участки системы для любого приложения можно в два клика мыши, причем программа легко настраивается так, чтобы заданные файлы всегда запускались только в sandbox'е.

«Ну, хорошо, запустили мы файл под sandbox’ом, дальше-то что?» - спросишь ты. Как что - изучать, чем занимается программа после запуска. На помощь приходят утилиты из набора Sysinternals (technet.microsoft.com/ru-ru/sysinternals) и, в первую очередь, Process Monitor, который в реальном времени отслеживает активность файловой системы, реестра, процессов, потоков и библиотек DLL. Благодаря другой утилите из того же Autoruns несложно выяснить, не прописала ли себя утилита в каком-нибудь из мест автозагрузки. Малварь также можно распознать по API-функциям, которые вызывает программа. Отследить такие вызовы поможет API Monitor (www.apimonitor.com) или бесплатная тулза SysAnalyzer (labs.idefense.com). Список программ можно продолжать, в конечном итоге, мы получаем немаленький набор утилит, чтобы только проанализировать работу приложения. Получается довольно муторный процесс, который, разумеется, можно упростить: прежде чем рваться в бой, проводя исследование вручную, отправить бинарник специальному автоматическому анализатору.

CWSAndbox

  • www.cwsandbox.org

Выполнить все те же самые действия, но в автоматическом режиме берется онлайн-сервис CWSAndbox. Получив исполняемый файл, система запустит его в «песочнице» и беспристрастно проследит за всем, что тот проделает в системе. Способ лучше, чтобы быстро получить справку о том, что делает подозрительный бинарник в системе, еще нужно поискать! Нет никакой необходимости геморроиться с установкой «песочницы» или виртуальной машины и самому анализировать результаты работы мониторов - CWSAndbox все сделает за тебя, а на выходе по всем пунктам выдаст подробный отчет. Правда, ждать от CWSAndbox чудес не стоит: сервис не скажет «Что-то мне этот бинарник не нравится, похоже, это троян». Интерпретация отчета полностью остается на твоей совести. А, значит, нужно иметь представление, где может прописать себя малварь в реестре, каким образом ей удается спрятаться в процессах и где частенько хранятся тела вирусов в файловой системе. Небольшой автоматический интерпретатор наиболее характерных для малвари действий тут бы не помешал...

Threat Expert

  • www.threatexpert.com

В пример можно ставить Threat Expert, который не отдает анализ на откуп одному только пользователю, а сам пытается анализировать изменения в системе. Так, если файл упакован с помощью криптора или в реестре добавился новый ключ для автозапуска, или, например, в файле host появились строчки, которые могут заблокировать доступ к базам антивирусов – словом, зафиксированы характерные для малвари действия — Threat Expert обязательно акцентирует на этом внимание. В результате, отдельный раздел отчета складывается из набора таких «очеловеченных» сообщений, напротив каждого из которых выставляется степень опасности. Сервис не оставит в неведении и о том, как выглядит программа после запуска: если у той есть GUI-интерфейс, то в отчете будет представлен ее скриншот. Круто? Это еще не все, поведенческий анализатор дополняется проверкой файла сразу несколькими антивирусами. В итоге мы получаем вариант «Два в одном»: функциональность CWSAndbox и, одновременно, VirusTotal (правда, с намного меньшим количеством поддерживаемых антивирусов). Файл для проверки можно отправить через веб-интерфейс или специально разработанную утилиту, но в обоих случаях необходима предварительная регистрация в сервисе.

Anubis

  • anubis.iseclab.org

Единственное, чего, пожалуй, не хватает отчетам Threat Expert и других анализаторов, — это данных о том, что передавало приложение в Сеть. Да, все сетевые соединения фиксируются и даже, зная их природу, можно уже многое сказать… но как точно узнать, что передавало приложение? В случае с «песочницей» и виртуальной машиной трафик приложения легко снифается любым мало-мальски рабочим снифером. Почему такую опцию не прикрутили рассмотренные анализаторы, непонятно, но зато ей может похвастать другой сервис - Anubis. К отчету о деятельности программы прикладывается pcap-файл со всем отснифанным трафиком, который легко обрабатывается с помощью мощнейшего Wireshark'а, умеющего расшифровывать ошеломляющее количество протоколов, и Network Miner (networkminer.sourceforge.net), специально предназначенного для офлайн-анализа и сбора интересных данных. Мало того, в сам Anubis встроен анализатор трафика для наиболее популярных протоколов. Если приложение обменивается по HTTP, то сервис вложит в отчет урезанный лог общения. Вообще, качество сканирования оставляет самое приятное впечатление: приводится не просто отчет о деятельности системы, но и анализ характерной для вирусов активности. Единственный минус системы - довольно медленная скорость работы.

Comodo Instant Malware Analysis

  • camas.comodo.com

Онлайн-анализатор от компании Comodo раскручен намного меньше: очереди на сканирование постоянно пустые, а сам сканер чертовски быстр.

К тому же, большая популярность CWSandbox и Threat Expert нередко выходит им боком. Особо продвинутая малварь умеет распознавать виртуальное окружение, и, смекнув, что запущена под виртуалкой или «песочницей», не производит каких-либо подозрительных действий. Анализатор Comodo намного менее известен, поэтому разработчики едва ли тратят время на его распознавание. При этом, сам сканер весьма неплох: в самые кратчайшие сроки он проводит глубокое исследование и выдает удобный для анализа отчет, в котором помимо прочего выводится информация о выполненных DNS/HTTP-запросах, вызовах API-функций, подгруженных в память DLL-библиотеках и т.д. Весь этот набор полезной информации подытоживает вердикт, может ли файл оказаться малварью или, скорее всего, нет.

Mandiant Red Curtain

  • www.mandiant.com

Свой вердикт выносит и анализатор Mandiant Red Curtain, реализованный в виде отдельного приложения. Для исследуемого PE-файла подсчитываются так называемые очки: чем их больше, тем выше шанс, что приложение окажется вирусом. Очки проставляются исходя из целого ряда критериев, где, помимо ряда стандартных проверок, учитывается интересный параметр - энтропия кода, под которой понимается мера дезорганизации и случайности. Авторы малвари намеренно запутывают код, выполняя с помощью различных методик его обфускацию, добавляя многочисленные ветвления и т.д. (вспомни «спагетти-код»). Для таких исполняемых файлов показатель энтропии, посчитанный Mandiant Red Curtain, выше, чем для обычного неупакованного приложения, и анализатор придает этому большое значение.

PEiD

  • peid.has.it

Еще одним косвенным признаком того, что приложению есть что скрывать, является использование криптора/упаковщика. Таким образом, во-первых, усложняется реверсинг тела, а, во-вторых, удается скрыться от сигнатурных баз и эвристических механизмов антивирусов. Определить факт использования криптора и, зачастую, название упаковщика поможет утилита PEiD. На текущий момент с ее помощью определяется более 600 различных сигнатур для PE-файлов, отображая помимо пакера/криптора, еще и предполагаемый компилятор. Помимо оригинальной программы, существует надстройка в виде скрипта на Python nPEid (http://www.malforge.com/npeid/npeid.zip). Он умеет обрабатывать pcap-файлы с отснифанным трафиком для поиска закриптованных PE-файлов, которые потенциально могут быть опасны. Впрочем, ждать от PEiD чуда не приходится: приватные крипторы ему не по зубам.

OSAM

  • http://www.online-solutions.ru/products/osam-autorun-manager.html

Как бы ни был закриптован руткит, ему все равно нужно как-то обосноваться в системе, обеспечив себе автоматический запуск после ребута. Поэтому особую ценность представляет утилита Online Solutions Autorun Manager, которая распознает практически все известные способы автоматической загрузки. Производится ли скрытый запуск драйвера руткита или речь о других скрытых ключах в реестре – неважно. OSAM с большой вероятностью детектирует любой вариант. Понятно, если для поиска руткита в реестре использовать обычный редактор реестра, то шансы на положительный результат будут небольшие. Перехватив вызов соответствующих API-функций (RegQueryValue, RegOpenKey и т.д.), руткит вернет подчищенный результат. Чтобы не обломаться подобным образом, OSAM сам парсит файл с реестром и не использует системных функций ОС. Кстати говоря, слово «Online» в названии программы неслучайно: все процессы, найденные в автозапуске, можно пробить по специальной базе, отправив запрос с хешем файла или сам файл на анализ. В отчете о сканировании для каждого элемента автозагрузки приводится рейтинг надежности.

PDFiD

  • http://blog.didierstevens.com/programs/pdf-tools

До этого момента мы рассматривали случай, когда угрозу представляют исполняемые файлы. Но если посмотреть на статистику сплоитов за последние полгода, станет очевидным еще один внушительный вектор атак. Это PDF-файлы с инжектированными сплоитами, которые эксплуатируют многочисленные уязвимости Adobe Reader. Если по несчастному Internet Explorer уже прошлись вдоль и поперек, то Adobe Reader оказался непаханым полем для хакеров, при этом продукт имеет огромное распространение. Для эксплуатации критических уязвимостей, как и в сплоитах для браузера, чаще всего используется код на JavaScript, который может быть вставлен в PDF-файлы несколькими способами. Вообще, если в PDF есть вставки на JavaScript, то файл, скорее всего, действительно опасен, но как это определить? Самый очевидный путь - распарсить PDF-файл на блоки и посмотреть, что там внутри, но это сложный процесс. Легче выполнить в PDF поиск по нескольким ключевым словам, наличие которых позволяет сделать вывод о вкраплениях кода на JavaScript'е. Например, «/JS» или «/JavaScript» явно указывают, что документ содержит JS-код. Другие два ключевых слова — «/AA» и «/OpenAction» — сигнализируют о том, что в файле прописано автоматическое действие, которое выполняется в момент чтения документа. Именно эту возможность PDF малварь использует для запуска JS-сценария без участия пользователя, поэтому к подобным документам стоит отнестись с осторожностью. Выполнить быстрый поиск таких строк позволяет утилита PDFiD, входящая в набор PDF Tools и написанная на Python'е. Если результаты поиска явно укажут, что в документе находятся фрагменты на JS, можно попробовать извлечь их с помощью другой утилиты из набора - pdf-parser. А вот для анализа JS-кода уже придется использовать другие инструменты.

Wepawet

  • wepawet.iseclab.org

Вышеупомянутые онлайн-сервисы в основном занимались обработкой PE-файлов. А вот проект Wepawet специализируется исключительно на проверке подозрительных PDF, HTML и Flash документов — в любой из них может быть инжектирован зловредный код. В основе Wepawet лежит мощный движок, который справляется со многими приемами обфускации кода, а также сигнатурная база для определения заразы. Если в документе обнаружится малварь, Wepawet выдаст подробный отчет, а зачастую даже ссылки с описанием уязвимостей, которые эксплуатируют найденные в документе сплоиты. Wepawet - еще и отличный помощник в дешифровании JS-скриптов, вкрапленных в HTML, когда ручной анализ сильно затруднен и занимает много времени. Для SWF-файлов также выводится информация об обфускации кода и статистика по вызовам различных функций, а в некоторых случаях — даже автоматически извлекается шелл-код!

Malware URL

  • www.malwareurl.com

Если изучаемый документ ссылается на объект, расположенный на другом ресурсе, Wepawet обязательно пробивает его по базе Malware URL. Этот ресурс в автоматическом режиме собирает подозрительные линки и проверяет закачанные файлы четырьмя анализаторами (VirusTotal, Wepawet, Anubis, Threat Expert), составляя сводный отчет. База постоянно растет: сейчас в ней более пятидесяти тысяч записей об опасных ресурсах, с которых осуществляется загрузка малвари. После регистрации каждый может скачать и использовать базу в своих целях, а также получать обновления через RSS. К тому же, это удобнейшая штука, когда нужно собрать свежих образцов разной заразы :).

INFO

Для реализации «песочницы» существует достаточно много разных продуктов, в том числе Returnil Virtual System (www.returnilvirtualsystem.com). Это платный продукт, но у него есть вполне работоспособная бесплатная версия.

В случае использования встроенной «песочницы» Windows для изолированного приложения виртуализируется далеко не вся система, а лишь ряд важных элементов: папки Program Files, Windows, Users\%AllUsersProfile%\ProgramData, Documents and Settings и ветвь реестра HKLM\Software.

Есть еще один толковый онлайн-сервис, который не попал в наш обзор. Это Norman Sandbox (www.norman.com/security_center/security_tools/submit_file/en) от норвежских специалистов по информационной безопасности.