Детальна програма курсу
ДЕНЬ 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-ін'єкцій
- Розпливання
Згортання
- Принципи безпечного кодування
- Принципи сталого програмування Метта Бішопа
- І що тепер?
- Джерела безпеки програмного забезпечення та додаткова література