-70%

Купить этот выпуск:

590 руб

один раз и навсегда

Также ты можешь подписаться на «Хакер», чтобы читать эти и любые другие материалы

Реверс малвари

Учимся вскрывать и изучать вредоносный код

Любую программу можно разобрать, чтобы понять, как она устроена. В этой подборке из 28 статей мы сконцентрируемся именно на вредоносном ПО, однако знания, которые ты получишь, универсальны. Мы будем практиковаться как на учебных примерах, так и на вполне реальных вирусах — Carbanak, Loki bot, REvil и других.

«Реверс» или отладка ПО — это, пожалуй, одна из главных тем, на которые пишет «Хакер», а вирусология — одна из основных дисциплин в рамках информационной безопасности. Поэтому отобрать всего два с небольшим десятка статей было нелегкой задачей.

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

Статья «Набор программ для взлома программ» — более полная подборка инструментов, в статьях «Ghidra vs IDA Pro» и «Ghidra vs crackme» ты познакомишься с инструментом отладки Ghidra, статья «Искусство удаленной отладки» расскажет о том, как безопасно работать с вирусами, запуская их в виртуализации. Из статьи «Малварь на просвет» ты узнаешь, как автоматизировать поиск признаков вредоносного кода при помощи Python.

Дальше мы перейдем к более сложным темам и обсудим современные приемы, которые вирусописатели используют для того, чтобы скрыть вредоносный код от антивирусов и сопротивляться отладке. «Антиотладка» — обзор современных антиотладочных приемов, которые используют вирусописатели. «Process Doppelgänging» и «Обфускация вызовов WinAPI» — более подробное обсуждение соответствующих техник.

В качестве практики мы препарируем такие нашумевшие вирусы, как GlobeImposter 2.0, GootKit, Carbanak, Loki bot и REvil, Ryuk. Авторы каждого по-разному решили вопросы сокрытия и сопротивления отладке.

В статье «Малварь со странностями» Евгений Дроботун рассказывает о малвари, написанной на нестандартных скриптовых языках программирования.

Бонус!

Мы решили, что появление этой подборки — отличный шанс воскресить «Энциклопедию антиотладочных приемов», которую Крис Касперски по одной статье публиковал в «Хакере» на протяжении 2008 года. Всего вышло восемь статей, и в электронном виде они публикуются впервые. К сожалению, мы не смогли отыскать в архивах пару crackme из последних статей, но надеемся, что их еще найдет кто-то из читателей.

Содержание
(Подписчикам доступно 28 статей)

Реверс малвари для начинающих

Урок 1

Введение: выбираем инструменты, репозитории и источники знаний

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

Урок 2

Разбираем простой вирус

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

Урок 3

Вскрываем упаковщики, ломаем протекторы

Один из излюбленных приемов зловредописателей — использование упаковщиков и протекторов исполняемых файлов. Изначально эти инструменты считались весьма банальными и были призваны, по сути, уменьшать размер скомпилированного файла или создавать demo-версии, не заморачиваясь с защитой в основном коде. Но позднее вирусописатели приспособили эти инструменты в корыстных целях.

Урок 4

Инструменты скрытия вредоносной активности

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

Урок 5

Внедрение shellcode и шифрование malware-кода

Рад снова тебя встретить на страницах нашего журнала, мой друг! Мы продолжаем прокачивать скиллы в реверсинге и познавать нелегкое ремесло malware-аналитика. В сегодняшнем выпуске мы поговорим о двух интересных фичах, которые довольно часто встречаются в «живых образцах» вредоносного ПО: шифровании (encoding) и внедрении shellcode, позволяющего получить командную оболочку ОС потенциальной жертвы.

Инструменты

Набор программ для взлома программ

Выбираем инструменты для реверса

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

Ghidra vs IDA Pro

На что способен бесплатный тулкит для реверса, созданный в АНБ

В марте 2019 года Агентство национальной безопасности США (NSA) опубликовало инструментарий для реверс-инжиниринга под названием Ghidra. Пару лет назад я уже слышал это название из утечек на сайте WikiLeaks и был весьма заинтересован, чем же пользуются в NSA для реверса. Настала пора удовлетворить любопытство и посмотреть, хороша ли бесплатная «Гидра» в сравнении с зарекомендовавшими себя инструментами.

Ghidra vs crackme

Обкатываем конкурента IDA Pro на примере решения хитрой крэкми с VM

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

Искусство удаленной отладки

Готовим инструментарий для работы с ядром и вирусами

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

Малварь на просвет

Учимся быстро искать признаки вредоносного кода

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

Продвинутые техники

Антиотладка

Теория и практика защиты приложений от дебага

К методам детектирования отладки прибегают многие программисты: одни хотели бы уберечь свои продукты от конкурентов, другие противостоят вирусным аналитикам или автоматическим системам распознавания малвари. Мы в подробностях рассмотрим разные методы борьбы с дебагом — от простых до довольно нетривиальных.

Злой двойник атакует!

Маскируем запуск процессов при помощи Process Doppelgänging

На конференции Black Hat Europe 2017 был представлен доклад о новой технике запуска процессов под названием Process Doppelganging. Вирмейкеры быстро взяли эту технику на вооружение, и уже есть несколько вариантов малвари, которая ее эксплуатирует. Я расскажу, в чем суть Process Doppelganging и на какие системные механизмы он опирается. Заодно напишем небольшой загрузчик, который демонстрирует запуск одного процесса под видом другого.

Тайный WinAPI

Как обфусцировать вызовы WinAPI в своем приложении

Образцы серьезной малвари и вымогателей часто содержат интересные методики заражения, скрытия активности и нестандартные отладочные приемы. В вирусах типа Potato или вымогателях вроде SynAsk используется простая, но мощная техника скрытия вызовов WinAPI. Об этом мы и поговорим, а заодно напишем рабочий пример скрытия WinAPI в приложении.

Практика

Ручная распаковка

Вскрываем кастомный пакер на примере вымогателя GlobeImposter 2.0

При реверсе вирусов зачастую обнаруживается, что малварь накрыта какой-нибудь «навесной» защитой вроде пакера или протектора. Причем часто используется не общедоступный вариант, а кастомный упаковщик, что серьезно усложняет дело. Я покажу, как быть в такой ситуации, на примере распаковки рансомвари GlobeImposter 2.0, пронесшейся в конце прошлого года.

Искусство распаковки

Потрошим защиту хитрого банкера GootKit

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

Потрошим Carbanak

Как изнутри устроен известный банковский троян

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

Разбираем Loki-Bot

Как устроены механизмы антиотладки банковского трояна

Исследовать малварь не только весело, но и крайне познавательно. Недавно в мои цепкие руки попал банковский троян LOKI-bot. Подобные вредоносы обычно пишут настоящие профессионалы, и потому банкеры зачастую содержат достаточно интересные хаки. Так случилось и в этот раз — трой сопротивляется отладке и пытается «спалить» нас довольно нетривиальными способами.

Разбираем REvil

Как известный шифровальщик прячет вызовы WinAPI

Не так давно атаке подверглась международная система денежных переводов Travelex, и виновником этого оказался шифровальщик REvil. В этом трояне использованы простые, но эффективные методы обфускации, которые не позволяют нам так просто увидеть используемые им вызовы WinAPI. Давай посмотрим, как устроен этот энкодер изнутри.

Ryukами не трогать!

Разбираем новую версию шифровальщика Ryuk

На ИБ-конференции в ЮАР сотрудники ФБР назвали троян-шифровальщик Ryuk наиболее прибыльной вымогательской малварью на рынке: по данным аналитиков, операторы трояна «заработали» порядка 150 миллионов долларов. В этой статье я расскажу, как устроена и как работает эта малварь.

Малварь со странностями

Разбираем ключевые фрагменты кода малвари на скриптах и средствах автоматизации

Большая часть современной малвари пишется на C++, C# или даже VB. Но оказывается, вполне злая и функциональная малварь пишется и на батниках, AutoIt, Lua, Python, 1C... Сегодня мы попробуем заглянуть под капот этому «программному обеспечению» и рассмотреть ключевые участки кода.

Энциклопедия антиотладочных приемов

Часть 1

Трассировка, или игры в прятки

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

Часть 2

В погоне за TF, или SEH на виражах

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

Часть 3

Обработка необрабатываемых исключений

Отладчики, работающие через MS Debugging API (OllyDbg, IDA-Pro, MS VC), вынуждены мириться с тем, что отладочные процессы «страдают» хроническими особенностями поведения. Они «ломают» логику программы, и это с огромной выгодой используют защитные механизмы. В частности, API-функция SetUnhandledExceptionFilter() под отладчиком вообще не вызывается — вовсе не баг отладчика, а документированная фича системы!

Часть 4

Самотрассировка и прочие головоломки

Сегодня мы будем ломать мой crackme, напичканный антиотладочными приемами. Они основаны на особенностях обработки исключений отладчиками и на ошибках в debug engine, о которых я расскажу по ходу дела. А заодно продемонстрирую интимные подробности основных хакерских инструментов — «Ольги», «Иды», Syser’а, x86emu и прочих.

Часть 5

Исчерпывающее руководство по приготовлению и взлому TLS

Загадочная аббревиатура TLS таит в себе много секретов. Это — мощнейшее оружие против отладчиков и дизассемблеров. В комбинации с упаковщиками TLS превращается в гремучую смесь термоядерного типа.

Часть 6

Кто сломал мой бряк?!

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

Часть 7

Скрытая установка SEH-обработчиков

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

Часть 8

Сокрытие кода в хвостах секций

Вовлеченный в проект по созданию интерактивного распаковщика PE-файлов, я исследую особенности реализации системного загрузчика Win32 на предмет следования своим же спецификациям. Обилие багов, часть которых носит довольно коварный характер, просто поражает. Итак, сегодня мы продемонстрируем прием, позволяющий прятать код/данные от популярных дизассемблеров типа IDA Pro.