Реверс-инженер: кто это, обязанности, зарплаты и как им стать в 2022 году. Обзор профессии.

Обучение

Кто такой реверс-инженер?

Реверс-инженер (reverse engineer) — это специалист по обратной разработке, который исследует готовое устройство/программу и документацию для того, чтобы понять принцип работы или найти уязвимости, а в последующем сделать изменение или воспроизвести устройство, программу или иной продукт с такими же функциями, но без прямого копирования.

Что делают реверс-инженеры и чем занимаются?

Обязанности на примере одной из вакансий:

  • Поиск уязвимостей в ПО различных устройств;
  • Реверс-инженеринг;
  • Работа с фазером;
  • Работа с дизассеблерами и отладчиками;
  • Написание небольших программ и сценариев;
  • Работа с firmware, загрузчиками, ПО и ядром Linux;

Что должен знать и уметь реверс-инженер? 

Требования к реверс-инженерам:

  • Знание типов уязвимостей в бинарном коде, причин их появления, способов обнаружения и эксплуатации;
  • Опыт тестирования на проникновение и исследования уязвимостей ПО;
  • Уверенное владение инструментами дизассемблирования и отладки (IDA Pro, WinDBG, etc.);
  • Знание современных процессорных архитектур x86/64, ARM, PowerPС
  • Уверенное понимание принципов работы ОС Linux;
  • Уверенное знание языков программирования С/С++/Python;
  • Понимание технологии фаззинга;

Востребованность и зарплаты реверс-инженеров

На сайте поиска работы в данный момент открыто 197 вакансий, с каждым месяцем спрос на реверс-инженеров растет.

Количество вакансий с указанной зарплатой реверс-инженера по всей России:

  • от 95 000 руб. 65
  • от 155 000 руб. 45
  • от 215 000 руб. 12
  • от 275 000 руб. 10
  • от 335 000 руб. 6

Вакансий с указанным уровнем дохода по Москве:

  • от 105 000 руб. 17
  • от 165 000 руб. 8
  • от 280 000 руб. 5
  • от 340 000 руб. 4

Вакансий с указанным уровнем дохода по Санкт-Петербургу:

  • от 95 000 руб. 13
  • от 155 000 руб. 7
  • от 215 000 руб. 5
  • от 275 000 руб. 3
  • от 335 000 руб. 2

Как стать реверс-инженером и где учиться?

Варианты обучения для реверс-инженера с нуля:

  • Самостоятельное обучение – всевозможные видео на YouTube, книги, форумы, самоучители и т.д. Плюсы – дешево или очень недорого. Минусы – нет системности, самостоятельное обучение может оказаться неэффективным, полученные навыки могут оказаться невостребованными у работодателя;
  • Онлайн-обучение. Пройти курс можно на одной из образовательных платформ. Такие курсы рассчитаны на людей без особой подготовки, поэтому подойдут большинству людей. Обычно упор в онлайн-обучении делается на практику – это позволяет быстро пополнить портфолио и устроиться на работу сразу после обучения.

Ниже сделали обзор 3 лучших онлайн-курсов.

3 лучших курсов для обучения реверс-инженера: подробный обзор

Вы освоите на практике важнейшие приемы реверс-инжиниринга: статический и динамический анализ. Познакомитесь с низкоуровневым и системным программированием, подробно разберете аспекты внутреннего устройства 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 лекций

  1. Getting Started
  2. Reversing Compiled Windows Applications
  3. Reversing Compiled OS X Applications
  4. Reversing Compiled Linux Applications
  5. Reversing Android Applications
  6. Finding Other Vulnerabilities
  7. Simple Exploits
  8. Exploit Payloads
  9. Making Exploits Harder To Detect
  10. Web Exploitation
  11. ARM Exploitation
  12. Future Directions.
Стоимость: бесплатно

Программа курса:

  • Ориентация курса
    Вы познакомитесь с курсом, своими одноклассниками и нашей учебной средой. Ориентация также поможет вам получить технические навыки, необходимые для прохождения курса.
  • Неделя 1: Становление лидером
    Узнайте, каково это — перейти на руководящую роль. Узнайте, как ваши ценности и брендинг важны в этот переходный период.
  • Неделя 2: Влияние, Убеждение и переговоры
    Узнайте, как влияние и убеждение являются ключом к лидерству и некоторым основным концепциям и навыкам ведения переговоров. Узнайте больше об эффективной коммуникации.
  • Неделя 3: Трудные разговоры в качестве лидера
    Развивайте навыки ведения сложных разговоров, включая предоставление и получение обратной связи, а также обработку жалоб.
  • Неделя 4: Это Твоя Жизнь — Живи хорошо
    Соберите воедино навыки и знания, полученные на всех курсах, изучая важность вашего соответствия и соответствия организации. Подумайте о важности обучения в качестве лидера и спланируйте, что произойдет дальше.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 4.7 / 5. Количество оценок: 56

Оценок пока нет. Поставьте оценку первым.

Автор статьи. Ответственный за актуальный контент, текст и редактуру сайта. Эксперт по выбору профессии, курсов и профессий с 2016 года. Делюсь личным практическим опытом.

Оцените автора
Блог Романа Семенцова
Добавить комментарий