Практический курс по выявлению и эксплуатации уязвимостей в системном и прикладном ПО, веб-приложениях и 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.