Оценка вредоносности файлов с помощью песочниц: Часть 1. Онлайн-сервисы

    В практике исследования исполняемых файлов с возможным вредоносным функционалом имеется богатый арсенал инструментария — от статического анализа с дизассемблированием до динамического анализа с отладчиками. В настоящем обзоре я не буду пытаться дать информацию по всем возможным приёмам, поскольку они требуют некоторых специфических знаний, однако я хотел бы вооружить неискушённого пользователя набором приёмов, которые позволяют довольно быстро провести анализ неизвестного файла.

    Итак, ситуация: у нас есть странный файл с подозрением на вредоносность, при этом существующий мультисканеры типа VirusTotal не дают никакой информации. Что же делать?

    ОНЛАЙН-ПЕСОЧНИЦЫ

    В сети имеется ряд проектов по информационной безопасности, реализующий свои решения в качестве отдельно работающих виртуализированных систем для исполнения кода с последующим анализом произведённых изменений. Как правило, у этих проектов имеются онлайн-версии таких систем с бесплатным использованием. Вы можете благополучно загрузить подозрительный файл и через некоторое время получить полную информацию о том, что он делает, будучи запущен в системе.

    ThreatExpert
    Система ThreatExpert осуществляет сравнение снимков системы до и после запуска, а также перехват некоторых API в ходе выполнения кода. В результате, Вы получаете отчёт со следующей информацией:

    • Какие новые процессы, файлы, ключи реестра и мутексы были созданы в ходе выполнения кода.
    • C какими хостами и IP проводилось соединение, также приводятся шестнадцатеричные и ASCII-дампы данных обмена.
    • Имеется ли детект популярных антивирусов на присланный файл и файлы, созданные в ходе выполнения.
    • Какова возможная страна происхождения кода на основании языковых ресурсов и прочих следов, найденных в коде.
    • Возможная категория угрозы (кейлоггер, бэкдор и т.д.) и её уровень.
    • Скриншоты новых окон, если таковые были отображены в ходе выполнения.

    Возможна регистрация на сайте, в таком случае история всех Ваших анализов будет сохранена, и Вы в любой момент можете её вызвать. Возможна установка программы Submission Applet и автоматическая отправка файлов на анализ из контекстного меню Проводника.

    CWSandbox — разработка University of Mannheim, которые продают эту систему. Однако, анализ можно провести в онлайн бесплатно.
    Особенностью этой песочницы является то, что анализ выполняется в результате инжектирования библиотеки песочницы в исполняемый код и перехвата всех API-вызовов. Понятно, что если выполняется вызов нативных API либо работа в режиме ядра, песочница не работает. Тем не менее, благодаря тому, что проводится анализ реально работающего файла, CWSandbox иногда даёт большую информпцию, чем все остальные.

    Бесплатная онлайн версия имеет ряд ограничений, по сравнению с коммерческой:

    • Возможен анализ только РЕ-файлов. Платная версия позволяет анализировать BHO, zip-архивы, документы Microsoft Office.
    • В бесплатной версии возможна только загрузка через веб-интерфейс. В платной возможен прим файлов на анализ по почте, через honeypot и др.
    • В платной версии возможен выбор проведения анализ в виртуальной среде или на реальной системе.
    • Коммерческая версия включает в себя анализ файлов, скачиваемых в ходе выполнения кода, созданный в системных папках или инжектированных в другие процессы.

    Anubis
    Anubis — один из самый распространённых вариантов песочницы, ставший популярный благодаря исчерпывающему содержанию отчётов и скорости ответа. Некоторые особенности этой системы:

    • Возможность указания URL вместо самого вредоносного файла. В таком случае система загрузит указанный URL в Internet Explorer и проанализирует поведение системы.
    • Вместе с исследуемым файлом можно загрузить дополнительные библиотеки (в zip-архиве без пароля или с паролем “infected”). Этот приём очень удобен для анализа вредоносных динамических библиотек (если єто так же интересно — отпишитесь в комментах, можно будет посвятить отдельную статью).
    • Отчёт предоставляется в различных форматах — HTML, XML, plain text, PDF, также возможно скачивание полного сетевого дампа, полученного в ходе анализа.
    • Возможна загрузка файлов в Anubis посредством SSL (удобно, если вас блокирует антивирус на проксе).

    Joebox
    И наконец — он. Joebox, Великий и Ужасный. Будучи результатом трудов Стэфана Бульманна, на мой взгляд Joebox — самая мощная система для анализа. Особенностью этой системы является то, что она единственная осуществляет перехваты SSDT и EAT ядра в ходе анализа файлов. С одной стороны, это приводит к потере небольшого количества информации вызовов верхнего уровня (например, создание новых процессов посредством ShellExecute или WinExec), однако с другой стороны позволяет изучать вредоносные файлы, работающие с нативными API или в режиме ядра. Кроме того, Joebox предоставляет следующие возможности в анализе:

    • Joebox поддерживает загрузку и изучение поведения исполняемых файлов, DLL, драйверов ядра, документов Microsoft Word, PDF-файлов и др.
    • Вы можете выбрать среду выполнения кода:Windows XP, Windows Vista, или Windows 7.
    • Вы можете выбрать выполнение кода в виртуальной среде либо на реальной системе (в последнем случае реализуется решение на базе FOG)
    • Возможно получение полного дампа сетевого трафика, накопленного в ходе анализа.
    • Имеется поддержка модулей популярных песочниц amun и nepenthes для автоматической загрузки новых образцов из песочниц в Joebox.
    • Имеется поддержка скриптов AutoIT19 для организации контролируемой среды выполнения вредоносных файлов в Joebox.

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

    1. Предположим, вредоносный код проверяет путь, по которому расположен файл, и выполняется только в случае нахождения «там где надо». Решается простым скриптом:
    Script
    _JBSetSystem(“xp”)
    ; анализ будет проведён в Windows XP
    _JBStartAnalysis()
    ; Начало анализа
    _JBStartSniffer()
    ; Запуск сетевого сниффера
    $NewFile = @SystemDir & “/” & “malware.exe”
    FileCopy(“c:\malware.exe”, $NewFile, 1)
    ; копируем подозрительный файл в системную папку
    FileDelete(“c:\malware.exe”)
    ; удаляем файл с исходного пути
    Run($NewFile, @TempDir, @SW_HIDE)
    ; и выполняем его
    Sleep(120)
    ; ждём 120 секунд
    _JBStopSniffer()
    ; останавливаем сниффер
    _JBStopAnalysis()
    ; и завершаем анализ
    EndScript


    2. В случае, если необходимо провести простейший анализ вредоносной библиотеки, можно воспользоваться следующим скриптом (в данном случае используется инжект в новый процесс Internet Explorer):
    Script
    #include <IE.au3>
    ; доступ к функциям IE
    _JBSetSystem(“xp”)
    _JBStartAnalysis()
    _JBStartSniffer()
    $NewFile = @SystemDir & “/” & “malware.dll”
    FileCopy(“c:\malware.dll”, $NewFile, 1)
    RegWrite(
    “HKLM\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows”,
    “AppInit_DLLs”, “REG_SZ”, “malware.dll”)
    ; добавляем новое значение AppInit_DLLs
    $oIE = _IECreate(“http://www.sbrf.ru”)
    ; открываем сайт банка
    Sleep(120)
    ; done with IE now
    _IEQuit ($oIE)
    _JBStopSniffer()
    _JBStopAnalysis()
    EndScript


    Точно так же можно анализировать BHO — достаточно прописать нужные ключи в реестр. Однако часто возникает проблема: AppInit_DLLs справедлив только для вновь созданных процессов, как быть, если инжект нужно сделать в explorer.exe? Для этого подойдёт следующий скрипт:
    Script
    Func KillProcess($process)
    Local $hproc
    Local $pid = ProcessExists($process)
    If $pid = 0 Then
    Return
    EndIf
    $hproc = DllCall(
    “kernel32.dll”, “hwnd”, “OpenProcess”,
    “dword”, BitOR(0x0400,0x0004,0x0001),
    “int”, 0, “dword”, $pid)
    If UBound($hproc) > 0 Then
    If $hproc[0] = 0 Then Return
    Else
    Return
    EndIf
    $hproc = $hproc[0]
    Local $code = DllStructCreate(“dword”)
    $ret = DllCall(
    “kernel32.dll”, “int”, “TerminateProcess”,
    “hwnd”, $hproc, “uint”, DllStructGetData($code,1))
    Return
    EndFunc
    _JBSetSystem(“xp”)
    _JBStartAnalysis()
    _JBStartSniffer()
    $NewFile = @SystemDir & “/” & “malware.dll”
    FileCopy(“c:\malware.dll”, $NewFile, 1)
    RegWrite(
    “HKLM\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows”,
    “AppInit_DLLs”, “REG_SZ”, “malware.dll”)
    KillProcess(“explorer.exe”)
    ; убиваем процесс, который автоматически будет перезапущен winlogon.exe
    Sleep(10000)
    _JBStopSniffer()
    _JBStopAnalysis()
    EndScript


    3. Если необходимо, чтобы обращение в сеть происходило из определённой страны, можно сконфигурировать прокси в выполняемой среде Joebox:
    Script
    _JBSetSystem(“xp”)
    _JBStartAnalysis()
    _JBStartSniffer()
    $ProxyServer = “1.2.3.4:8080”
    ; определяем нашу проксю
    RegWrite(
    “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings”,
    “ProxyServer”, “REG_SZ”, $ProxyServer)
    RegWrite(
    “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings”,
    “ProxyEnable”, “REG_DWORD”, 1)
    ; и включаем её в настройках
    _JBLoadProvidedBin()
    Sleep(10000)
    _JBStopSniffer()
    _JBStopAnalysis()


    Безусловно, наличие такой гибкости и богатства возможностей делает Joebox одним из самых востребованных песочниц — и в этом его худшая сторона. Мне приходилось ждать иногда по несколько дней, пока придёт результат анализа. Что же, авторы предлагают купить свою собственную копию этой замечательной песочницы, но довольно за дорого. Как же построить свою собственную систему для анализа файлов без особенных затрат — об этом будет в следующей статье, если, конечно, Хабраобщество одобрит этот опус и у меня окончательно не растает карма ;)

    P.S. Примеры других онлайн-песочниц:

    * BitBlaze
    * Comodo Instant Malware Analysis
    * Eureka
    * Norman Sandbox

    Спасибо ahtox74 за напоминание.

    UPD: Joebox ввели обязательную регистрацию: если Вы хотите бесплатно пользоваться услугами этой онлайн-песочницы, то отправьте на адрес info@joebox.org электронное письмо со следующей информацией на английском языке:
    1. Ваше имя
    2. Цель регистрации и краткое описание, что Вы будете исследовать на Joebox
    3. Электронная почта для отправки отчётов об исследовании (она впредь будет указываться в первом поле Вашего запроса).

    После подачи заявки обещают, что откроют доступ для указанного ящика.

    UPD-UPD: Вторая часть статьи тут.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 20

      +5
      Пожалуйста, отписывайтесь в комментариях, если это неинтересно или найдёте ошибки.

      Честно говоря, за время нахождения на Хабре я так и не уловил тонкую разницу между кармой и рейтингом. Сейчас рейтинг растёт, но карма падает. Если и после этого топика будет так продолжаться — что ж, видимо мне нечего предложить Хабру, буду просить удаления эккаунта и не заниматься ерундой.
        0
        Уж извините за небольшой офф.
        +1
        Добавлю — Comodo Camas: http://camas.comodo.com/
          +2
          Все ссылки есть в статье. Софтинка — это не онлайн-песочница. О ней будет дальше, если у общественности возникнет интерес.
          +3
          Спасибо, довольно интересно.

          Правда от поганок с отложенной активностью это не поможет.
          Не говоря уже о удалённой активации и более изощрённых методах, например основанных на определённой активности пользователя.
            0
            Да-да! Sleep(10000) :-)

            Многие трояны в песочницах не будут работать.
              0
              Ребята, не торопите события, есть же не только онлайн-варианты ;) Просто всё сразу — не хватит ни букв, ни сил. Это будет в продолжении.
            +3
            Статья понравилась. Хорошая подача материала, написано «легким», грамотным языком. Тема интереснейшая, если будет продолжение, было бы отлично.
              0
              Всегда пользовался Комодой, но описание JoeBox'а впечатлило…

              Есть кто регулярно пользовался JoeBox'ом? Насколько быстро-стабильно? Неужели столько фичей и нашару? Как-то стремновато…
                0
                Сегодня на конференции слышал ребят с подобным докладом, возможно это вы были?
                  0
                  Нет, не я.
                  +1
                  Если не трудно, поставьте, пожалуйста, в статье ссылки на следующие части (по мере появления). Спасибо.
                    +1
                    Хорошо, будут ссылки с части на часть :)
                      0
                      Вторая часть вышла, отписываюсь, как обещал.
                        0
                        Спасибо!
                      0
                      Большое спасибо за статью, очень интересно и познавательно, пользовался вирустоталом и даже не подозревал о существовании других)
                        0
                        Ну VirusTotal — это не песочница, а антивирусный мультисканер. Но раз уж о нём тема зашла, то вот Вам ещё двоих конкурентов VT ;)
                        virusscan.jotti.org/ru
                        www.virscan.org/

                          0
                          Мерси )

                      Only users with full accounts can post comments. Log in, please.