Программа курса
ДЕНЬ 2
Десять лучших по версии OWASP 2021 года
A01 - Нарушение контроля доступа
- Основы контроля доступа
- Неспособность ограничить доступ к URL
- Сбитый с толку депутат
- Небезопасная прямая ссылка на объект (IDOR)
- Лабораторная работа - Ссылка на небезопасный прямой объект.
- Обход авторизации через управляемые пользователем ключи
- Пример использования - Обход авторизации в Facebook
- Лабораторная работа - Горизонтальная авторизация.
- Файл загружен
- Неограниченная загрузка файлов
- Передовой опыт
- Лабораторная работа - неограниченная загрузка файлов.
- Подделка межсайтовых запросов (CSRF)
- Лабораторная работа - Подделка межсайтовых запросов
- Лучшие практики CSRF
- Глубокая защита CSRF
- Лабораторная работа - Защита CSRF с помощью токенов
A02 - Сбои криптографии
- Информационное воздействие
- Воздействие на извлеченные данные и агрегирование
- Пример использования - раскрытие данных Strava
- Утечка системной информации
- Утечка системной информации
- Лучшие практики раскрытия информации
- Криптография для разработчиков
- Основы криптографии
- Элементарные алгоритмы
- Генерация случайных чисел
- Генераторы псевдослучайных чисел (ГПСЧ)
- Криптографически стойкие ГПСЧ
- Использование виртуальных случайных потоков
- Лабораторная работа - Использование случайных чисел.
- Пример - замораживание кредитного счета Equifax
- Генерация случайных чисел
- Защита конфиденциальности
- Симметричное шифрование
- Блочные шифры
- Режимы работы
- Режимы работы и IV - лучшие практики
- Лабораторная работа - Симметричное шифрование.
- Асимметричное шифрование
- Комбинирование симметричных и асимметричных алгоритмов
Десять лучших по версии OWASP 2021 года
A03 - Впрыск
- Принципы инъекции
- Инъекционные атаки
- SQL-инъекция
- Основы SQL-инъекций
- Лабораторная работа - SQL-инъекция
- Техники атаки
- Слепая SQL-инъекция на основе содержимого
- Слепая SQL-инъекция на основе времени
- Лучшие практики SQL-инъекций
- Проверка ввода
- Параметризованные запросы
- Лабораторная работа - Использование подготовленных операторов.
- Пример использования - взлом аккаунтов Fortnite
- Внедрение кода
- Внедрение команды ОС
- Лучшие практики внедрения команд ОС
- Пример использования - Shellshock
- Лаборатория - Shellshock
- Внедрение команды ОС
ДЕНЬ 3
Десять лучших по версии OWASP 2021 года
A03 - Впрыск
- HTML-инъекция - межсайтовый скриптинг (XSS)
- Основы межсайтового скриптинга
- Типы межсайтовых скриптов
- Постоянные межсайтовые сценарии
- Отраженный межсайтовый скриптинг
- Межсайтовый скриптинг на стороне клиента (на основе DOM)
- Лабораторная работа - Сохраненный XSS
- Лабораторная работа - Отраженный XSS
- Пример использования - XSS в учетных записях Fortnite
- Лучшие практики XSS-защиты
- Принципы защиты - побег
- Лабораторная работа - XSS исправлено / сохранено
- Лабораторная работа - исправление / отражение XSS
- Дополнительные слои защиты - глубокая защита
Десять лучших по версии OWASP 2021 года
A07 - Ошибки идентификации и аутентификации
- Аутентификация
- Основы аутентификации
- Многофакторная аутентификация
- Одноразовые пароли на основе времени (TOTP)
- Слабые стороны аутентификации
- Спуфинг в сети
- Пример использования - обход двухфакторной аутентификации PayPal
- Лучшие практики пользовательского интерфейса
- Пример - раскрытие информации в Simple Banking для Android
- Лабораторная работа - Подбор пароля в режиме онлайн.
- Управление паролями
- Управление входящими паролями
- Хранение паролей учетных записей
- Пароль в пути
- Лабораторная работа. Достаточно ли просто хеширования паролей?
- Атаки по словарю и брутфорс
- Соление
- Адаптивные хеш-функции для хранения паролей
- Политика паролей
- Требования NIST к аутентификатору для запомненных секретов
- Защита пароля
- Использование парольных фраз
- Пример - утечка данных Эшли Мэдисон
- Атака по словарю
- Конечная трещина
- Эксплуатация и извлеченные уроки
- Перенос базы паролей
- (Неправильно) обработка нулевых паролей
- Управление исходящими паролями
- Жестко закодированные пароли
- Лучшие практики
- Лабораторная работа - Жестко закодированный пароль.
- Защита конфиденциальной информации в памяти
- Проблемы защиты памяти
- Управление входящими паролями
A08 - Нарушения целостности программного обеспечения и данных
- Целостность подресурсов
- Импорт JavaScript
- Лабораторная работа - Импорт JavaScript.
- Пример - нарушение данных British Airways
- Небезопасная десериализация
- Проблемы сериализации и десериализации
- Целостность - десериализация ненадежных потоков
- Целостность - лучшие практики десериализации
- Имущественно-ориентированное программирование (POP)
- Создание полезной нагрузки
- Лабораторная работа - Создание полезной нагрузки POP.
- Лабораторная работа - Использование полезной нагрузки POP.
- Резюме - лучшие практики POP
Тестирование безопасности
- Методы и инструменты тестирования безопасности
- Анализ кода
- Статическое тестирование безопасности приложений (SAST)
- Динамический анализ
- Тестирование безопасности во время выполнения
- Тестирование на проникновение
- Стресс-тестирование
- Инструменты динамического анализа
- Динамическое тестирование безопасности приложений (DAST)
- Сканеры веб-уязвимостей
- Инструменты SQL-инъекций
- Расплывание
Сворачивание
- Принципы безопасного кодирования
- Принципы устойчивого программирования Мэтта Бишопа
- И что теперь?
- Источники безопасности программного обеспечения и дополнительная литература