Содержание статьи

Наша редакция решила провести эксперимент — проверить на вкус разные ИТ-шные профессии. И первым в списке оказался антивирусный аналитик. В прошлом у меня был некоторый опыт в реверсинге, поэтому добрые коллеги сказали: «Дятлом будешь ты!» И вот мой рассказ, каково это — анализировать семплы, будучи в обойме аналитиков большой антивирусной компании.

featured-kasper

Иди и работай!

Утро, 30 января. Я стою перед тремя новенькими корпусами «Лаборатории Касперского», сотрудники которой с энтузиазмом приняли наше предложение и сказали: «А почему бы и нет?» Тут надо заметить, что с момента новоселья в августе прошлого года сюда приезжало немало журналистов, которые фоткали кабинет Евгения Касперского и с радостными воплями постили фоточки в Facebook. Ми-ми-ми! Но мы-то с тобой знаем, что понять внутреннюю кухню компании, не поработав в ней хотя бы денек, невозможно. Сфотографировать пирожок в буфете и голубоглазую блонди на ресепшене может каждый. Мы же попробуем сделать реальную работу — проанализируем парочку семплов, почувствовав себя в шкуре антивирусного аналитика. По крайней мере, я договаривался об этом.

Да, эту фотографию нам дали в ЛК. Поэтому на ней солнце, трава и лето:)
Да, эту фотографию нам дали в ЛК. Поэтому на ней солнце, трава и лето:)

11:00 Начало дня

На входе меня встретила приятная девушка Маша из департамента корпоративных коммуникаций. Чтобы ты понимал: это те люди, которые делают так, чтобы журналисты писали про компанию только хорошее. Маша явно оказалась бывалым бойцом. Она точно знала, куда меня вести. Завтракать! Вообще, если бы так начинался день антивирусного аналитика, то я бы подписался на работу прямо сейчас. Но мы с тобой понимаем, что это не так :).

Первое место, где я оказался. Крутая столовая
Первое место, где я оказался. Крутая столовая

11:30 Знакомство с вирусной лабораторией

В самом начале меня познакомили с двумя моими наставниками — Борисом и Олегом, опытными антивирусными аналитиками. Наверняка их предупредили, что придет какой-то журналист, с которым придется целый день нянчиться и делать вид, что у него получается работать :). Эй, парни, надеюсь, я  вас не разочаровал.
Они немного рассказали о самой вирусной лаборатории. Смена рядовых антивирусных аналитиков (в простонародье — «дятлов») в московском офисе начинается в 13:00 и заканчивается в 21:30. Раньше ребята работали круглосуточно в четыре смены, но сейчас время распределено между московским, американским и китайским офисами. Умно: получается так, что все работают в дневное время. Именно к этим парням поступают всевозможные вредоносные и не очень файлы от пользователей, ханипотов и партнеров (других антивирусных компаний и некоторых небезызвестных проектов вроде VirusTotal).

Поток файлов очень большой (ежедневно обрабатывается более 315 тысяч вредоносных объектов), поэтому в ход пускается и автоматика, которая может дать вердикт большей части поступающих файлов. Оставшаяся же часть ложится на плечи немногочисленных участников знаменитого круглого стола (смотри фотографию выше). Подавляющее большинство файлов здесь приходится на операционные системы Windows (кто бы сомневался), все остальные платформы по-прежнему составляют доли процента. Впрочем, отставим холивар.

 

INFO

«Дятлами» прозвал вирусных аналитиков еще очень давно сам Евгений Касперский за издаваемый постоянный интенсивный стук по клавиатуре.

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

Задача аналитка предельно понятна: после того как файл попал в его руки, ему нужно определить, какие действия выполняет семпл. Необходимости описывать в деталях деятельность каждого образца нет, нужно лишь выявить конкретные вредоносные действия или их отсутствие (конечно же, на анализ нередко приходят вполне себе легитимные программы). Отдельно стоит передать привет тем пользователям, которые присылают архив всего диска С: или папку WINDOWS с комментарием: «У меня тут что-то не так работает, проверьте, плиз».

В зависимости от обнаруженных активностей семплу присваивается определенный тип. У Kaspersky Lab существует строгая классификация объектов, одна из самых распространенных в антивирусной индустрии, в том числе и у других антивирусных вендоров.

12:00 Подготовка к работе

Первый день антивирусного аналитика начинается незатейливо — с настройки рабочего ноутбука. Понятно, что надо заранее позаботиться о безопасности при анализе поступающих файлов, чтобы случайно не заразить рабочую систему. Вдумчивый читатель заметит: почему бы не использовать изолированное окружение, виртуальные машины? И будет прав, эти методы тоже активно используются, но имеют недостатки, так как серьезная малварь всегда пытается определить запуск в виртуальном окружении и лишний раз себя не выдавать. Для безопасной работы на компьютер устанавливается родной антивирус Касперского, а в исключения добавляется рабочая папка с семплами: иначе часть рабочего материала может ликвидироваться еще до анализа. Также настраивается политика ограниченного использования программ, а именно запрещается запуск файлов из рабочей папки с потенциально опасными расширениями. Это делается стандартными средствами Windows.

Судя по всему, далее новоиспеченный антивирусный аналитик устанавливает необходимое специализированное ПО для анализа, но на моем ноутбуке оно уже было:

  • IDA Pro — Ида не нуждается в представлении. Известнейший мультиплатформенный дизассемблер, который поддерживает множество форматов файлов, обладает широкой функциональностью и автоматическим анализатором кода;
  • HIEW — олдскул, известный дизассемблер. В отличие от неповоротливой IDA Pro, он легок и быстр, хотя и не обладает таким продвинутым анализатором кода и наличием разно­образных приблуд;
  • ILSpy — декомпилятор файлов для платформы .NET. Как известно, исполняемые файлы .NET компилируются в промежуточный MSIL-код, непригодный для взора обычных дизассемблеров, на этот случай есть инструменты вроде ILSpy;
  • VB Decompiler — декомпилятор для исполняемых файлов Visual Basic. На выходе дает файл, по содержанию напоминающий исходный код исполняемого файла, по которому можно определить суть проделываемых им действий.

Конечно, это далеко не полный набор инструментов, используемых в работе, но мне на день хватило и этого. Кстати, интересный момент: в начале его пути анти­­­вирусному аналитику не разрешается использовать никаких средств динамического анализа (OllyDbg, WinDbg, etc.). Только статика, только хардкор!

12:30 Разминка

Когда все было готово к бою, мне на выбор было предоставлено несколько файлов, которые предстояло проанализировать. Хотелось для начала взять что попроще, но, к сожалению, по имени файлов судить было невозможно. Названия представляют собой нечто вроде хеша MD5, иначе говоря — бессмысленный набор цифр и букв. Расширений нет. Тогда я решил обратить внимание на размер файлов и взял самый мелкий. И не ошибся: этим файлом оказался слегка обфусцированный скрипт на Visual Basic. Для его анализа достаточно было обычного Notepad’а и немного наблюдательности. Специально для читателей я размещаю этот пример в первозданном виде на страницах журнала и не буду раскрывать деталей деятельности данного образца. Скажу лишь только, что семпл относится к категории Trojan-Downloader. Первый готов, переходим к следующему примеру!

Разминочный семпл на Visual Basic
Разминочный семпл на Visual Basic

13:30 Высокоуровневый ужас call’ов и переходов

Следующий файл я выбрал уже случайным образом, и он оказался более весомым — порядка сотни килобайт. В IDA Pro я заметил интересную строку, в которой фигурировали слова Borland и Delphi, что недвусмысленно намекало на средство разработки этого семпла. Специфика Delphi в том, что начинать анализ исполняемого файла с точки входа бесполезно чуть менее чем полностью: при таком подходе аналитик столкнется с over9000 всяческих вызовов и переходов в ассемблерном коде. Гораздо более правильным подходом будет начинать с другой стороны — просмотреть список используемых строк и импортов функций. В списке строк были обнаружены весьма интересные элементы, содержащие названия всех функциональных клавиш на клавиатуре. А в импортах — функция, которая возвращает нажимаемые на клавиатуре кнопки. Также были замечены импорты функций создания и записи в файл. После просмотра соответствующих мест в коде, где используются эти функции, был вынесен окончательный вердикт — этот семпл относится к категории Trojan-Spy. Однако в этом случае была представлена лишь часть троянского функционала, то есть сбор вводимой с клавиатуры информации, но никак не была реализована передача лог-файлов злоумышленнику. Это означает, что перед нами лишь один из модулей троянской программы.

 

Новоиспеченный дятел, или ваш покорный слуга весь в работе
 

INFO

315 тысяч вредоносных объектов ежедневно обрабатывается в ЛК

14:30 Обед

Обед оказался еще вкуснее, чем завтрак. Конечно, уже без улыбающейся девушки напротив, но зато с разговорчивым аналитиком, который посвящал меня в тайны касперского двора. Тут надо сказать, что ЛК компенсирует сотрудникам 300 рублей на питание ежедневно. Способ проверенный: хочешь привлечь классных сотрудников — дай им крутую задачу и хорошо накорми. Даже обидно: как мало нам надо :).

15:00 Препарирование пациента на Visual Basic

После обеда снова в бой. Еще один семпл на VB. Но этот объект отличался от первого тем, что здесь мы имеем дело со скомпилированным файлом, то есть исполняемым файлом Visual Basic. Это легко узнать по строковым константам, используемым в файле. К счастью, в природе существует прекрасная утилита VB Decompiler — декомпилятор для исполняемых файлов Visual Basic. Она преобразует исполняемый файл в скрипт на VB, более пригодный для анализа, хотя и в не сильно привлекательном виде. Быстрый анализ выявил, что этот семпл призывал пользователя зайти на некоторые подозрительные сайты. С одной стороны, это не является зловредной активностью, с другой — на этих сайтах пользователя, скорее всего, ждут неприятности, поэтому детектировать такие объекты тоже нужно. Такие программы будут относиться к категории Riskware. Выбор, детектировать или нет подобные программы, лежит на пользователе. По умолчанию в антивирусных продуктах конкретно Kaspersky Lab детектирование Riskware отключено.

16:00 Старый добрый Си

Честно сказать, меня немного опечалило такое большое количество выпавших мне высокоуровневых зловредов, однако, как выясняется, это устойчивый тренд. Доходит до того, что вирусные писатели вконец наглеют — пишут малварь на каком-нибудь питоне или языке для автоматизации AutoIt, а потом компилируют это дело в exe.
Но все-таки удалось найти что-то более классическое — файл на языке С. То количество функций, которые я увидел в экспортах, подсказывало, что мы имеем дело с динамически подключаемой библиотекой. А имена экспортируемых функций намекали на то, что перед нами один из модулей троянской программы. Кроме того, в строковых константах были обнаружены имена многих антивирусных продуктов. Можно сделать вывод, что здесь используется какой-то обход антивирусов. Однако бывает так, что и во вполне безобидных программах появляются подозрительные строки с названиями антивирусов и путей их установки. Например, WinRAR: тут эти строки служат для того, чтобы можно было удобно просканировать архив на наличие вирусов через контекстное меню. В итоге можно сказать, что анализируемый объект с высокой долей вероятности попадет в категорию Trojan, хотя сама по себе библиотека и не выполняет никаких вредоносных действий.

Наставник пытается донести до меня истину
Наставник пытается донести до меня истину

17:30 Экскурсия по офису Kaspersky Lab

День близился к завершению, и поэтому нужно было закончить одно начатое дело. А именно — посмотреть офис компании. Как я уже говорил, новоселье в этом месте справлялось относительно недавно — в августе прошлого года. Офис, как это сейчас принято, построен по принципу openspace — в виде открытого пространства без кабинетов. Мне такой подход нравится, хотя немало людей сейчас скажут: «Кошмар!» Стеклянные перегородки, диваны для отдыха, пикник-зоны с кофе и фруктами — все сделано для удобства сотрудников. Я, как человек увлеченный, особо хочу отметить тренажерный зал, не уступающий по оборудованию многим фитнес-центрам. Кстати, у ЛК есть даже своя команда по пауэрлифтингу, и этому виду спорта в зале уделено особое внимание. Словом, мне понравилось :).

 

В непринужденной обстановке. Видимо палку забыли отфотошопить
В непринужденной обстановке. Видимо палку забыли отфотошопить

Заключение

За неполный рабочий день я сумел разобрать четыре семпла. Не без посторонней помощи, конечно :). Для типичного антивирусного аналитика это непозволительно мало — за такое, наверное, даже стреляют. Средний темп работы должен быть в четыре-пять раз быстрее! Здесь может показаться, что работа аналитика очень напряженная, но это не совсем так. Обстановка в лаборатории довольно спокойная, никакой суматохи я не заметил. Поэтому я сделал вывод, что не они очень быстро работают, а я — очень медленно :). И это нормально, за первый день работы антивирусный аналитик может разобрать и один семпл, а скорость приходит с опытом. По крайней мере, меня так утешали.

 

INFO

В среднем вирусному аналитику на анализ одного объекта требуется 20 минут. Итого получается 20-25 объектов за смену.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    35 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии