Меню Закрыть

Практическая РБПО. Анатомия уязвимостей программного обеспечения

Практический курс по выявлению и эксплуатации уязвимостей в системном и прикладном ПО, веб-приложениях и Android-приложениях. Содержит теоретические модули и лабораторные работы на реальных примерах: переполнение буфера, инъекции, XSS, уязвимости аутентификации и управления сессиями, небезопасная десериализация, конфигурационные ошибки, уязвимости компонент Android-приложений и техники обхода защиты (ASLR/DEP/stack-canary/ROP).

Для кого этот курс:

Специалисты по тестированию безопасности ПО, разработчики ПО, инженеры DevSecOps, специалисты по информационной безопасности.

Предварительные требования:

Общие ИТ-навыки:

  • Умение работать в командной строке Linux (базовые команды, навигация, права файлов).
  • Опыт установки ПО, настройки виртуальных машин (VirtualBox/VMware) или Docker.

Программирование:

  • Уверенные знания одного из языков: C (предпочтительно) или C++ — умение читать и писать простые программы, понимать указатели и управление памятью.
  • Базовый уровень Python — для написания, отладки и запуска скриптов (полезно для веб-эксплойтов и лабораторий).

Компьютерная архитектура и ОС:

  • Понимание процессов/потоков, адресного пространства процесса (heap/stack/BSS/data), базовые понятия виртуальной памяти.
  • Общее понимание регистров CPU (AX/BX/ESP/EIP).

Веб:

  • Основы HTTP/HTTPS, метод GET/POST, заголовки, статусы.
  • Базовый HTML, CSS и JavaScript: как формируются страницы, как отправляются формы.
  • Понимание работы cookies и сессий.

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

Код курса:

Форма обучения: очно, дистанционно

Длительность курса: 40 ак.ч

Ближайший курс: 15-19 декабря 2025 г.

Стоимость: 70 000 рублей.

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

Тема 1. Организация памяти процесса в архитектуре x86. Системные уязвимости

  • Структура виртуальной памяти, выделяемой процессу, основные регистры процессора.
  • Вызов и возврат из функции. Соглашения о вызовах __stdcall, __cdecl, __fastcall.
  • Понятие системного буфера.
  • Этапы эксплуатации stack smash.
  • Переполнение в куче (heap overflow).
  • Переполнение при операциях с целыми (integer overflow).
  • Чтение за пределами буфера (read overflow).
  • Уязвимости форматной строки.
  • Висячие указатели (dangling pointers).
  • Лабораторная работа: эксплуатация переполнения буфера в стеке (stack-smash).
  • Практическая работа: эксплуатация иных системных уязвимостей.

Тема 2. Защита от системных уязвимостей

  • Безопасность типов и безопасность работы с памятью.
  • Стековая «канарейка» (stack canary).
  • DEP — запрет выполнения из области данных.
  • ASLR — рандомизация смещений динамических областей памяти.
  • CFI — контроль целостности потока управления.
  • Обход механизмов защиты: использование libc, прямой перебор памяти, обход stack canary, возвратное программирование (ROP).
  • Правила и принципы безопасного программирования.
  • Лабораторная работа: обход ASLR, DEP, stack canary на примере проекта с открытым исходным кодом.

Тема 3. Уязвимости и защита Web-приложений.

  • Архитектура Web-приложений. Типы http-запросов.
  • Инъекции (HTML, PHP, LDAP, SQL, XPath и др.).
  • Уязвимости механизмов аутентификации и управления сеансом.
  • Некорректное использование внешних XML-объектов.
  • Уязвимости в реализации механизмов криптографической защиты.
  • Уязвимости в реализации механизмов управления доступом.
  • Нарушение целостности кода и данных.
  • Небезопасная конфигурация.
  • Уязвимости системы логирования и иные уязвимости.
  • Рекомендации по защите Web-приложений.
  • Лабораторная работа: эксплуатация уязвимостей Web-приложений.

Тема 4. Уязвимости и защита Android-приложений

  • Архитектура мобильных приложений для Android, компоненты приложения.
  • Инструментарий для анализа Android-приложений.
  • Несанкционированная активация операций.
  • Утечка данных через широковещательные сообщения.
  • Активация операций через широковещательные сообщения.
  • Общие сведения о хранении данных в Android-приложении.
  • Использование внутреннего и внешнего хранилища.
  • Атаки на поставщиков контента (content providers).
  • Методы перехвата и модификации трафика.
  • Механизм SSL-pinning и способы его реализации.
  • Рекомендации по защите Android-приложений.
  • Лабораторная работа: сбор данных об Android- приложении.
  • Лабораторная работа: реализация атак на компоненты приложений.
  • Лабораторная работа: эксплуатация уязвимостей, связанных с небезопасным хранением данных.
  • Лабораторная работа: перехват и модификация трафика, преодоление SSL-pinning.