Безопасность при тестировании вирусов

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

  1. Не запускать вирус на основной системе или виртуалке с ценными данными.
  2. Не давать вирусу возможности прямого выхода в интернет.

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

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

  • Случайно был запущен свой вирус на основной системе без VPN или на виртуалке с прямым подключением
    • IP оседает в логах. Это не значит, что уже всё кончено, если вирус ещё не был замечен в атаках, то эту информацию никогда и не откроют. Но стоит вирусу с засвеченным командным центром принять участие в большой атаке, как спецслужбы начнут просматривать логи. Подключение к командному центру на этапе настройки легко обнаружить. В случае оставления своего IP или даже IP персонального VPN на этапе настройки вируса, лучше сменить сервер командного центра.
    • При использовании приватных вирусов надо обратить ещё внимание на то, что не только по командному центру могут найти, но ещё и сам вирус может оставить следы. Антивирусные компании анализируют трафик различных вирусов и по нему могут определить, откуда началась атака. Если до начала атаки при переносе на основную систему антивирус заметил файл, то по этому логу получится вычислить хакера. Антивирусом лучше вообще не пользоваться: в последнее время внедряются cloud функции, которые отправляют любые подозрительные или просто новые файлы в лабораторию. Само собой, в случае чего у них будут все логи, и то, что у вас на машине нашли вирус, который через несколько недель разошёлся по тысячам машин, всплывёт на поверхность. А как антивирус с хоста может определить вирус внутри виртуалки - общие папки. Зачастую без их использования не обойтись, и попади файл туда, как антивирус может сразу же его оприходовать.
  • Случайно был запущен свой вирус на основной системе или виртуальной, но с VPN
    • Ситуация сильно не меняется. Для крупных дел нельзя использовать только VPN. Он работает для защиты от логирования провайдером и даёт дополнительную защиту и страховку, но если будет веский повод найти вас, то VPN не станет непреодолимой преградой.
  • Случайно был запущен свой вирус в настроенной виртуальной машине, но не предназначенной для этого.
    • Надо вручную убить задачу с ним и удалить payload из системы(по месту его установки). Удалять надо вручную, не используя антивирус

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

Это основа безопасности. Теперь о том, как упростить управление виртуальными машинами, и не наследить.


Клонирование виртуалок

Желательно для каждого теста использовать отдельные виртуалки, чтобы данные с тестов не пересекались. Это не значит, что надо устанавливать windows по 20 раз в день. Достаточно сделать основу, преднастроенную виртуалку, и потом копировать её. Так можно будет быстро штамповать готовые для тестов виртуалки. Но надо помнить несколько вещей: поскольку виртуалки берутся с одной машины, то у них много идентичных идентификаторов системы. По сути, если запустить один вирус на двух клонах одной машины, то с контрольного сервера можно определить сходство машин и точно сказать, что запускает их один человек. Для нас это не принципиально, клонами мы пользуемся для того, чтобы вирусы не оказывали друг на друга влияние, и чтобы в системе не было вообще ничего, что может представлять ценность.

Использование новых клонов для тестов важно по ещё одной причине: большинство вирусов проверяет, нет ли их уже в системе, чтобы предотвратить повторный запуск. Поэтому при переиспользовании клона могут возникнуть проблемы с отстуком.

Виртуальные машины стоит разделять на несколько типов. Для настроек и для тестов. Как ни странно, guest additions можно ставить куда угодно. Само его наличие не снижает безопасность. Extension pack, который увеличивает интеграцию виртуальной машины с железом хоста ставить не надо. Да и необходимости в нём нет. На виртуалках для настройки можно использовать и общий буфер, и общие папки. Но надо понимать, что стоит избегать всех возможностей попадания туда вируса(также учесть, что если на хосте стоят супервизор программы, которые могут просматривать содержимое папок хоста( тот же самый антивирус), то общие папки лучше не использовать).


Проверка детектов перед использованием

Детект - определение антивирусом payload как вредоносного файла. Они выглядят примерно так 5/32. Это значит, что из 32 проверенных антивирусов, 5 определили вирус.

Есть только 2 способа держать детекты около 0

  1. Крипт
    Это процесс изменения внутреннего устройства исполняемого файла и маскировки его функций с целью обхода детектов антивируса. Его могут выполнить как крипторы, так есть и автоматические сервисы. Например, хорошим вариантом для автоматического крипта является cryptor.biz
  2. Обновление кода
    При этом сам разработчик или человек с исходным кодом вируса меняет его так, чтобы снизить детекты. Такие предложения встречаются у некоторых приватных вирусов. В основном, это отдельная услуга, потому что требуется ручная адаптация под каждого клиента. Так же есть вирусы, которые идут с регулярным обновлением кода, но с ростом числа пользователей эффект от этого падает.

Ни крипт, ни новый стаб не гарантируют 0 детект на долгое время. В некоторых случаях даже получить 0 детектов невозможно, поэтому даже после крипта может остаться 1-2 детекта. Поскольку крипт выполняется массово, то он спадает через какое-то время не зависимо от того, использовался ли файл. В основном, это от 12 часов до полутора дней. При использовании персональной версии приватного вируса количество детектов и время, через которое они будут появляться, зависят от использования файла. Любой вирус по мере массового использования обрастает детектами.

Есть несколько типов детектов. Статический и runtime.
Статический - антивирус определяет вирус ещё до момента запуска.
Runtime - тревога поднимается во время выполнения программы.

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

Методы проверки детектов

  1. Online сервисы.
    Самым популярным является virustotal.com(бесплатная статик проверка). Уже пошли чекать там свои вирусы? - остановитесь. Этот сервис сливает всю инфу антивирусным компаниям. Каждый загруженный туда файл проверяется антивирусными компаниями вне зависимости от того, сколько детектов нашлось автоматически. Залил только что закриптованный вирус на virustotal.com - получи 10 детектов в подарок.
  2. nodistribute.com(платная статик проверка). По из заявлениям и названию можно подумать, что они не сотрудничают с антивирусными компаниями, но по факту они также портят детекты и сливают информацию
  3. dyncheck.com(платная статик и runtime проверка). Этот сервис - хорошее решение для проверки. Можно выбирать антивирусы, на которых требуется проверка, что снижает стоимость скана. Для больших объёмов есть подписки. Единственный минус - runtime проверки с полным функционалом есть только в подписках, которые не самые дешёвые.
  4. Установка к себе антивируса в систему и проверка срабатываний на нём.
    Лол. Удачи.
  5. Настройка специальной виртуалки для тестов.
    Это хороший метод полностью проверить вирус с нулёвой вероятностью утечки информации о нём. Самый простой метод - поставить на отдельную windows виртуалку интересующий антивирус(пробную версию), а после установки отключить интернет. Принести сам вирус можно через общую папку(но можно придумать и более сложный метод). После запуска вируса будет понятно, что о нём думает антивирус, пока тот исполняется. Поскольку интернет на виртуалке обрезан, слить данные о файле антивирусу не получится. После окончания теста, когда будет понятно, есть детекты или антивирусу параллельно на выполняющийся вирус, виртулка с антивирусом удаляется или откатывается на момент до начала теста.

У последнего метода есть существенный минус: без доступа к интернету вирус может не работать. В таком случае надо настраивать доступ в интернет через firewall, когда разрешён доступ только к командному серверу вируса.


https://t.me/h4ckers_zone