Вы освоите на практике важнейшие приемы реверс-инжиниринга: статический и динамический анализ. Познакомитесь с низкоуровневым и системным программированием, подробно разберете аспекты внутреннего устройства Windows. Вам предстоит изучить и классифицировать вредоносное ПО на примерах реальных malware, выловленных в сети.
Реверс-инжиниринг кода (обратная разработка кода) — это процесс анализа машинного кода программы, который ставит своей целью понять принцип работы, восстановить алгоритм, обнаружить недокументированные возможности программы, и т.п. Основные методы реверс-инжиниринга — это статический или динамический анализ кода. При статическом анализе исследователь дизассемблирует код программы, используя специальное ПО, и далее анализирует ассемблерный код. При динамическом анализе исследователь запускает код в изолированной среде (песочнице) или отладчике и анализирует код в динамике.
Для кого этот курс?
- Для системных программистов, разрабатывающих низкоуровневый софт. Вы поймете, как код работает изнутри после компиляции, и сможете повысить качество своих решений.
- Для начинающих вирусных аналитиков и специалистов ИБ. Вы научитесь всем must have практикам реверс-инжиниринга и получите комплексное представление о вредоносном ПО.
Как проходит практика?
Студенты заранее получают стенды и разворачивают их у себя локально до начала занятия. Практику вы будете выполнять у себя на виртуальной машине во время вебинара под руководством преподавателя. На курсе вас ждет:
- Практика по распаковке файлов
- Практический разбор PE формата (таблица импорта, таблица экспорта, таблица релокаций)
- Практический анализ шифровальщиков, банковских троянов, ботов.
- Проектная работа, в рамках который вы напишите свою программу для лечения вредоносных программ.
Программа обучения:
Модуль 1. Низкоуровневое программирование наассемблер под x8086/x64.
- Тема 1. Регистры процессора, работа с памятью
- Тема 2. Представление данных, кода, опкоды команд. Основные команды ЯА
- Тема 3. Арифметичесие и логические команды
- Тема 4. Цепочечные операции
- Тема 5. Подпрограммы
- Тема 6. Прерывания BIOS
- Тема 7. Написание кастомногоMBR
Модуль 2. Низкоуровневое программирование наассемблер под MIPS.
- Тема 8. Регистры процессора. Работа с памятью
- Тема 9. Арифметические, логические команды. Команды условного/безусловного перехода
- Тема 10. Опкоды команд
Модуль 3. Защищённый режим процессора
- Тема 11. Режимы работы процессоров. Принцип работы процессора в PM. Сегментная организация памяти
- Тема 12. Страничная организация памяти
- Тема 13. Типы дескрипторов
Модуль 4. Внутреннее устройство Windows
- Тема 14. Объекты ядра
- Тема 15. Менеджер памяти
- Тема 16. Диспетчер ввода-вывода
Модуль 5. Системное программирование
- Тема 17. PE формат
- Тема 18. Таблица импорта
- Тема 19. Таблица экспорта/Таблица релокаций
- Тема 20. Ловушки Windows
- Тема 21. Перехват WinApi функций
- Тема 22. Программирование Native приложений
- Тема 23. Способы добавления в автозагрузку
- Тема 24. Программирование служб
- Тема 25. Настройка рабочей среды для отладки драйверов режима ядра
Модуль 6. Обратная разработка программ
- Тема 26. Динамический анализ кода
- Тема 27. Статический анализ кода
- Тема 28. Разработка shell кодов
- Тема 29. Практика: ручная распаковка
- Тема 30. Практика: анализ эксплойта
- Тема 31. Практика: анализ вредоносного образца
- Тема 32. Уязвимость Buffer Overflow
- Тема 33. Уязвимость UAF
- Тема 34. Буткиты
Модуль 7. Проектный модуль
- Тема 35. Выбор темы и организация проектной работы
- Тема 36. Консультация по проектам и домашним заданиям
- Тема 37. Защита проектных работ.
Выпускной проект:
Вместе с участниками группы по ходу курса мы «разревёрсим» несколько реальных вредоносных программ, определим их функционал и в качестве выпускного проекта напишем программу для лечения.
После обучения вы
- получите материалы по всем пройденным занятиям (видеозаписи курса, дoполнительные материалы, финальный проект для добавления в портфолио)
- научитесь читать ассемблерный код
- научитесь работать в специализированном ПО для обратной разработки (IDA Pro, WinDBG, OllyDbg, Hiew)
- освоите в теории и на практике основные приемы статического и динамического анализа кода
- повысите свою ценность и конкурентоспособность как специалиста
- получите сертификат об окончании курса.
Чему вы научитесь:
- Узнаете больше о различных инструментах реверсирования
- Узнаете больше о распространенных уязвимостях и о том, как их найти
- Вы лучше познакомитесь с простыми эксплойтами, использованием веб-ресурсов и использованием ARM.
Материалы курса
12 разделов, 70 лекций
- Getting Started
- Reversing Compiled Windows Applications
- Reversing Compiled OS X Applications
- Reversing Compiled Linux Applications
- Reversing Android Applications
- Finding Other Vulnerabilities
- Simple Exploits
- Exploit Payloads
- Making Exploits Harder To Detect
- Web Exploitation
- ARM Exploitation
- Future Directions.
Программа курса:
- Ориентация курса
Вы познакомитесь с курсом, своими одноклассниками и нашей учебной средой. Ориентация также поможет вам получить технические навыки, необходимые для прохождения курса. - Неделя 1: Становление лидером
Узнайте, каково это — перейти на руководящую роль. Узнайте, как ваши ценности и брендинг важны в этот переходный период. - Неделя 2: Влияние, Убеждение и переговоры
Узнайте, как влияние и убеждение являются ключом к лидерству и некоторым основным концепциям и навыкам ведения переговоров. Узнайте больше об эффективной коммуникации. - Неделя 3: Трудные разговоры в качестве лидера
Развивайте навыки ведения сложных разговоров, включая предоставление и получение обратной связи, а также обработку жалоб. - Неделя 4: Это Твоя Жизнь — Живи хорошо
Соберите воедино навыки и знания, полученные на всех курсах, изучая важность вашего соответствия и соответствия организации. Подумайте о важности обучения в качестве лидера и спланируйте, что произойдет дальше.