Курс: Уязвимости программного обеспечения
Продолжительность курса: 40 ак. ч.
Описание курса:
В настоящее время, когда в нашей жизни популяризуется цифровизация, виртуальная реальность, метавселенные, а с помощью нейросетей ускоряется цикл разработки и внедрения новых программных продуктов – количество воспроизводимых уязвимостей и рисков увеличивается. Поэтому компании озадачены минимизацией рисков и все чаще обращаются к практике DevSecOps. Это стало реальной необходимостью для успешного развития бизнеса. К тому же, стратегия раннего обнаружения снижает затраты, сокращает время устранения проблем, сводит к минимуму нарушения работы пользователей и минимизирует финансовые риски проектов.
Отметим, что DevSecOps — это не только инструменты и процессы, позволяющие осуществлять быструю и частую доставку ПО, но и особая культура в подходе к безопасности информации. Команды разработчиков, владеющие этим инструментарием, могут анализировать и предотвращать проблемы на всех этапах реализации приложения.
Знание технологий и их применение в виде комплексного подхода реагирования на различные атаки помогает принимать грамотные решения по производству и развертыванию приложений. Также помогает автоматизировать тестирование безопасности, исключить ошибки человеческого фактора, обеспечить соблюдение нормативных требований и отследить наличие уязвимостей на протяжении всего процесса разработки.
На курсе вы научитесь осуществлять первичный анализ системных уязвимостей, первичный анализ уязвимостей в безопасности Web-приложений и мобильных приложений для платформы Android. А также внедрять лучшие практики разработки безопасного ПО, DevSecOps.
Аудитория:
• начинающие pen-тестеры, тестировщики;
• разработчики программного обеспечения разного уровня;
• руководители и другие специалисты подразделений информационной безопасности;
• DevOps-инженеры и администраторы;
• архитекторы баз данных;
• специалисты, которые хотят научиться разрабатывать и обслуживать приложения и инфраструктуру с высокой степенью защиты от внешних и внутренних атак в автоматизированном DevSecOps процессе.
Необходимая подготовка:
• Успешное окончание курса «HTML и CSS. Уровень 1. Создание сайтов на HTML и СSS», или эквивалентная подготовка.
• Успешное окончание курса «Программирование на языке C (Си)», или эквивалентная подготовка.
Программа курса:
Модуль 1. Системные уязвимости. Организация памяти процесса в архитектуре x86
• Структура виртуальной памяти, выделяемой процессу.
• Основные регистры процессора.
• Вызов и возврат из функции. Соглашение о вызовах __stdcall.
Модуль 2. Системные уязвимости. Переполнение на стеке (stack smash). Иные уязвимости (heap overflow, integer overflow, read overflow, уязвимости форматной строки)
• Понятие системного буфера.
• Этапы эксплуатации stack smash.
• Переполнение в куче (heap overflow).
• Переполнении при операциях с целыми (integer overflow).
• Чтение за пределами буфера (read overflow).
• Уязвимости форматной строки.
• Висячие указатели (dangling pointers).
• Лабораторная работа: Эксплуатация переполнения буфера в стеке (stack-smash).
• Лабораторная работа: Эксплуатация иных системных уязвимостей.
Модуль 3. Системные уязвимости. Механизмы защиты. Техники преодоления защитных механизмов
• Безопасность типов и безопасность работы с памятью (type safety и memory safety).
• Стековая канарейка.
• Запрет выполнения из области данных (DEP).
• Рандомизация смещений динамических областей памяти (ASLR).
• Контроль целостности потока управления (CFI).
• Обход защитных механизмов: использование libc, прямой перебор памяти, обход stack canary, возвратное программирование (ROP).
• Правила и принципы безопасного программирования.
• Лабораторная работа: Обход механизмов ASLR, DEP, stack canary на примере проекта с открытым исходным кодом.
Модуль 4. Уязвимости Web-приложений. Архитектура Web-приложений
• Принципы работы веб-серверов и веб-приложений.
• Обзор классификации OWASP Top 10.
• Лабораторная работа: Настройка учебного стенда.
Модуль 5. Уязвимости Web-приложений. Инъекции. Межсайтовый скриптинг (XSS). Внешние XML-объекты
• Общие сведения об инъекциях.
• HTML инъекции.
• iFrame инъекции.
• LDAP инъекции.
• Инъекции в почтовых заголовках.
• Инъекции команд операционной системы.
• Инъекции PHP кода.
• Простые SQL инъекции.
• SQL инъекции в AJAX/JSON/jQuery.
• Примеры SQL инъекции в Drupal и SQLite.
• Хранимые SQL инъекции.
• Хранимые SQL инъекции в XML.
• SQL инъекции в поле User-Agent.
• Слепые SQL инъекции на логической основе.
• Слепые SQL инъекции на временной основе.
• XML/XPath инъекции.
• Отраженные XSS.
• Отраженная XSS в JSON.
• Отраженная XSS в AJAX.
• Отраженная XSS в XML.
• Отраженная XSS в кнопке возврата.
• Отраженная XSS в функции Eval.
• Отраженная XSS в атрибуте HREF.
• Отраженная XSS в форме входа.
• Пример отраженной XSS в phpMyAdmin.
• Отраженная XSS в переменной PHP_SELF.
• Отраженная XSS в заголовках HTTP.
• Хранимые XSS в записях блогов.
• Хранимые XSS при смене пользовательских данных.
• Хранимые XSS в Cookies.
• Хранимые XSS в заголовках HTTP.
• Атаки на внешние XML объекты.
• Атака на отказ в обслуживании типа XML Bomb.
• Лабораторная работа: Эксплуатация уязвимостей типа: injection, xss.
Модуль 6. Уязвимости Web-приложений. Уязвимости аутентификации и управления сеансом
• Обход CAPTCHA.
• Атака на функционал восстановления паролей.
• Атака на формы входа.
• Атака на управление выходом.
• Атаки на пароли.
• Атаки на административные порталы.
• Атаки на Cookies.
• Атаки на передачу идентификатора сеанса в URL.
• Фиксация сеанса.
• Лабораторная работа: Эксплуатация уязвимостей аутентификации и управления сеансом.
Модуль 7. Уязвимости Web-приложений. Небезопасное хранение и передача чувствительных данных
• Использование кодировки Base64.
• Открытая передача чувствительных данных по HTTP.
• Атаки SSL BEAST/CRIME/BREACH.
• Атака на уязвимость Heartbleed.
• Уязвимость POODLE.
• Хранение данных в веб-хранилище HTML5.
• Использование устаревших версий SSL.
• Хранение данных в текстовых файлах.
• Лабораторная работа: Эксплуатация уязвимостей, связанных с небезопасным хранением и передачей данных.
Модуль 8. Уязвимости Web-приложений. Уязвимости механизма управления доступом
• Пример атаки на небезопасную прямую ссылку при смене пароля пользователя.
• Пример атаки на небезопасную прямую ссылку при сбросе пароля пользователя.
• Пример атаки на небезопасную прямую ссылку при заказе билетов в интернет-магазине.
• Принципы атак на функциональный уровень.
• Что такое обход каталога.
• Обход каталога в каталогах.
• Обход каталога в файлах.
• Атака на заголовок Host, приводящая к сбросу пароля.
• Концепции подключения локального или удаленного файла.
• Включение локального файла в SQLiteManager.
• Включение локального или удаленного файла (RFI/LFI).
• Атака на ограничение доступа устройств.
• Атака на ограничение доступа к каталогам.
• Атака SSRF.
• Атака на XXE.
• Лабораторная работа: Эксплуатация уязвимостей механизма управления доступом.
Модуль 9. Уязвимости Web-приложений. Небезопасная десериализация
• Демонстрация инъекции PHP объекта.
• Инъекция бэкдора при десериализации.
• Небезопасная десериализация в JavaScript.
• Лабораторная работа: Эксплуатация уязвимостей, связанных с небезопасной десериализацией.
Модуль 10. Уязвимости Web-приложений. Небезопасная конфигурация
• Произвольный доступ к файлам в Samba.
• Общие ресурсы в AJAX.
• Межсайтовая трассировка (XST).
• Отказ в обслуживании (Large Chunk Size).
• Отказ в обслуживании (Slow HTTP DoS).
• Отказ в обслуживании (SSL-Exhaustion).
• Небезопасная конфигурация FTP.
• Небезопасная конфигурация NTP.
• Небезопасная конфигурация SNMP.
• Небезопасная конфигурация VNC .
• Небезопасная конфигурация WebDAV .
• Атака «Человек посередине» в HTTP.
• Атака «Человек посередине» в SMTP.
• Небезопасное хранение архивных файлов.
• Файл robots.
• Лабораторная работа: Эксплуатация уязвимостей, связанных с небезопасной конфигурацией.
Модуль 11. Уязвимости Web-приложений. Использование небезопасных компонент, уязвимости системы логирования, иные уязвимости
• Локальные атаки на переполнение буфера.
• Удаленные атаки на переполнение буфера.
• Удаленное исполнение кода в PHP CGI.
• Уязвимость в phpMyAdmin BBCode Tag XSS.
• Уязвимость Shellshock.
• Подключение локального файла в SQLiteManager.
Модуль 12. Уязвимости Android-приложений. Архитектура и компоненты Android-приложений. Сбор данных об Android-приложении
• Архитектура мобильных приложений для ОС Android.
• Компоненты приложения.
• Файл AndroidManifest.xml
• Файл classes.dex.
• Инструментарий для анализа Android приложения.
• Лабораторная работа: Настройка учебного стенда. Сбор данных об учебном приложении.
Модуль 13. Уязвимости Android-приложений. Уязвимости компонент
• Несанкционированный активация операций.
• Утечка данных через широковещательные сообщения.
• Активация операций через широковещательные сообщения.
• Лабораторная работа: Реализация атак на компоненты приложений.
Модуль 14. Уязвимости Android-приложений. Небезопасное хранение чувствительных данных
• Общие сведения о хранении данных в Android-приложении.
• Использование внутренней памяти.
• Использование внешнего хранения.
• Использование поставщиков контента.
• Лабораторная работа: Эксплуатация уязвимостей, связанных с небезопасным хранением данных.
Модуль 15. Уязвимости Android-приложений. Перехват и модификация трафика. Преодоление механизма SSL-pinning
• Общие сведения о методах перехвата и модификации трафика.
• SSL pinning.
• Лабораторная работа: Перехват и модификация трафика. Преодоление механизма SSL-pinning.
Модуль 16. Дополнительные материалы
• Не cookies единым. Так ли опасен XSS сегодня?
Окончательная цена указывается в договоре на обучение.