Курс
Реверс-инжиниринг и введение в анализ зловредных программ (Reverse Engineering & Introduction To Malware Analysis)

Цели модуля: познакомить слушателей с обратной разработкой и анализом ВПО, с инструментами, используемыми при разных подходах к анализу. Учащиеся освоят основы поведенческого анализа ВПО. В качестве артефакта у участников модуля останутся написаные программы на языках С и Asm, скрипты, отчет анализа ВПО.

Записаться на обучение

Код курса

R-321

Аудитория курса:

Начинающие специалисты по тестированию на проникновение

Аудиторы

ИТ-специалисты с опытом работы в разработке, администрировании и поддержке ИТ-систем

ИБ инженеры

Что узнают слушатели:

Процессы в ОС Windows

Структура исполняемого файла формата PE

Основы программирования на языке C

Регистры процессоров x86/x64, инструкции процессора

Структура программы на языке Ассемблер

Техники MITRE ATT&CK

Методы антиотладки

Чему научатся слушатели:

Проводить реверс-инжиниринг исполняемых файлов

Использовать инструменты автоматизации анализа и работы с зловредными программами

Создавать безопасные конфигруации "песочниц" для запуска и отладки зловредных программ

Понимать устройство, цели и методы работ зловредных компьютерных программ

Создание сигнатур для поиска ВПО на машине и в памяти, атаки на исполняемые файлы

Программа обучения

10 занятий

50 ак. часов

Задачи анализа вредоносного ПО и обратной разработки

Задачи и цели обратной разработки и анализа ВПО. Знакомство с инструментами, используемыми при разных подходах к анализу. Основы поведенческого анализа ВПО


Содержание:

  • Типы ВПО
  • Общие понятия
    • Цели использования
    • Задачи анализа ВПО
    • Типы анализа
  • Инструменты анализа
    • Цели создания лаборатории анализа
    • Чек-лист: настройка лаборатории
    • Виртуальные машины
    • Снимки виртуальных машин
    • Анонимность
  • Преданализ
    • Получение хешей (HashMyFiles)
    • Используемые строки (strings)
    • PEStudio
  • Поведенческий анализ
    • Инструменты
      • Мониторы процессов
      • Мониторы вызовов функций
      • Анализаторы трафика
      • API Monitor
      • Внешние ресурсы для анализа

Упражнения:

  • Сбор статических данных о файле
  • Проверка подозрительных файлов на virustotal
  • Поиск отчётов в общедоступных сервисах: hybrid-analisys, any.run
Понятие процесса и исполняемого файла. Основы языка C

Процесс в ОС Windows. Структура исполняемого файла формата PE. Основы программирования на языке C


Содержание:

  • ОС Windows
    • Операционная система
    • Функциональность
    • Структурные компоненты
  • Основы языка С
    • Типы переменных
    • Структурированные типы и указатели
    • Циклы
    • Ветвления
    • Типы WinAPI
    • Вызовы функции
    • Создания проекта
    • Структура программы
    • Компилирование и запуск
    • Полезные hotkey
  • Исполняемый файл
    • Структура PE
    • Используемые библиотеки
  • Понятие процесса
    • Текущее состояние процесса
    • Process explore
    • Системные процессы
    • Методы создания процесса
    • Стартовые функции исполняемых файлов
    • Импорт функций
    • Прототипирование функций

Упражнения:

  • Исследование внутренней структуры исполняемого файла с помощью PEStudio — поиск секций, импортируемых/экспортируемых функций.
  • Написание программы по парсингу исполняемого файла
  • Написание программы по извлечению списка имён импортируемых функций и выводу его на экран
  • Написание программы по извлечению списка имён экспортируемых функций и выводу его на экран
  • Написание программы, которая использует связку LoadLibrary/GetProcAddress для получения и вызовов функций; полученные функции должны быть помещены в структуру; программа должна прочитать текстовый файл, вывести содержимое на экран, а затем дописать в конец файла слово "Completed"
Ассемблер. Структура разработки, инструкции, регистры

Среды разработки на языке Ассемблер. Регистры процессоров x86/x64, инструкции процессора, структура программы на языке Ассемблер


Содержание:

  • Концепт обратной разработки
      Создание исполняемого файла

      Граф потока управления

  • Примитивы ассемблера
    • Регистры процессора x86
    • EFLAGS
    • Арифметические операции
    • Перемещения данных
    • Обращение к памяти
    • Логические инструкции
    • Сдвиги бит
    • Инструкции контроля управления
    • Инструкции работы со строками
    • Общие инстукции
  • Синтаксис
    • Intel / AT&T
  • Стек
    • Соглашения о вызовах
      • Пролог функции
        • cdecl
        • stdcall / winapi
        • fastcall
        • thiscall
  • NASM
    • Получение информации о процессе
      • TIB/TEB/PEB

Упражнения:

  • Написание программы по подсчёту чексуммы от строки
  • Написание программы по поиску импортируемых функций по известной чексумме
Отладка с помощью инструмента x64gdb

Интерфейс x64dbg; Отладка с помощью x64dbg, плагины для работы


Содержание:

  • Интерфейс x64dbg
    • Параметры работы
    • Старт работы
    • Горячие клавиши отладки
    • Точки останова
    • Поиск элементов
    • Декомпиляция
    • Стек вызовов
    • Изменение кода
    • Изменение регистров
    • Переименование
    • Карта памяти
    • Установка плагинов

Упражнения:

  • Использование x64dbg для отладки приложения с окном ввода пароля
  • Модификация кода программы для обхода парольной защиты
Отладка с помощью инструмента IDA Pro

Интерфейс IDA Pro. Удалённая отладка приложения, написание плагинов для автоматизированного анализа


Содержание:

  • Интерфейс IDA Pro
    • Анализ файла
    • Параметры работы
    • Просмотр кода
    • Просмотр данных
    • Используемые функции
    • Настройка рабочего стола
    • Используемые строки
    • Поиск элементов
    • Перекрёстные ссылки
    • Переименование элементов
    • Работа с кодом и данными
    • Массивы и структуры
    • Создание снимка базы данных
    • Отладка

Упражнения:

  • Удалённая отладка приложения с окном ввода пароля
  • Поиск и создание структуры, скрывающей испортируемые функции
  • Написание скрипта, декодирующего используемые строки
Техники и особенности работы "зловредов" 1

Знакомство с техниками MITRE ATT&CK


Содержание:

  • MITRE ATT&CK: Техники
    • Resource Development
    • Initial Access
    • Execution
    • Persistence
    • Privilege Escalation

Упражнения:

  • Поиск следов использования тактик и техник с помощью APIMonitor и внешних ресурсах поведенческого анализа
Техники и особенности работы "зловредов" 2

Знакомство с тактиками MITRE ATT&CK


Содержание:

  • MITRE ATT&CK: Техники
    • Defense Evasion
    • Credential Access
    • Discovery
    • Collection
    • Command and Control
    • Impact

Упражнения:

  • Поиск следов использования тактик и техник с помощью APIMonitor и внешних ресурсах поведенческого анализа
Антиотладка и "запаковка"

Знакомство с методами антиотладки


Содержание:

  • Методы антиотладки
    • Антидизассемблирование
    • Поиск средств анализа и окружения
    • Антивиртуализация
    • Обфускация, запаковка и зашифровка

Упражнения:

  • Отладка приложения, использующего антиотладочные трюков
  • Отладка запакованного приложения
Индикаторы компрометации ("IOC"). YARA-правила. Примеры атак на ПО

Сбор IOC (indicator of compromise); Создание сигнатур для поиска ВПО на машине и в памяти, атаки на исполняемые файлы


Содержание:

  • Indicators Of Compromise
    • Поставщики форматов
      • CybOX
      • STIX
      • OpenIOC
      • YARA
  • Примеры атак на ПО
    • Уязвимости форматной строки
    • Переполнение буфера
    • На стеке
    • В куче

Упражнения:

  • Анализ ВПО и создание набора IOC
  • Написание YARA-правила
  • Анализ шеллкода для эксплуатации уязвимости
Итоговая самостоятельная работа

Тестирование


Содержание:

  • Анализ предоставленного ВПО:
    • Описание функциональности
    • Статистические данные
    • Следы на файловой системе
    • Закрепление
    • Работа по сети

Упражнения:

  • Описать особенности процессов: создаваемые дочерние процессы, MD5 файлов, которые дропаются на диск и запускаются, особенности командных строк, характерных только для этой малвари
  • Составить список IOC в IOC editor, результат отправить в формате .ioc
Записаться на обучение

Как проходит обучение

  • Иммерсивный подход
  • Фокус на практике. Более 70% времени обучения вы уделите развитию практических навыков.

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

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

  • Требования к слушателям курса:
    • Уметь программировать на языке Python
    • Иметь базовые представления об архитектуре ОС Windows
    • Уметь работать с ОС Linux или ОС Windows на уровне продвинутого пользователя (Установка пакетов, работа с терминальной оболочкой, менеджмент прав доступа)
    • Уметь работать с системами виртуализации (VirtualBox, VMWare)
    01   / 05

    Записаться на обучение

    !
    !

    FAQ — ответы на частозадаваемые вопросы

    Требования к программному обеспечению?

    Рекомендуемые технические требования

    для комфортного прохождения модуля и сохранения всех полученных материалов:

    • Не менее 16 ГБ оперативной памяти
    • Процессор не менее четырех ядер с частотой не менее 2.3 Ггц
    • Жесткий диск SSD со свободным местом не менее 250 ГБ
    • Поддержка аппаратной виртуализации (Intel VT-x, AMD-V)
    • Дополнительный — второй монитор (Диагональ от 17 дюймов, разрешением от 1280×720p c частотой обновления от 60 Гц)
    • Современная операционная система (Минимально: Windows 10 x64, Linux, MacOS 10.13.6)

    Все ответы

    Получить консультацию
    !
    !

    Спасибо,
    менеджер свяжеться с вами в ближайшее время

    Спасибо,
    за регистрацию на вебинар

    Заказать обратный звонок

    !
    Заполните это поле
    !
    Заполните это поле