Кибербезопасность
Для разработчиков и будущих специалистов по защите: как устроены уязвимости изнутри, как их закрывать в своём коде и как вести проверку по закону.
Программа
- 01
Как устроен HTTP и сессии
Почти все веб-уязвимости живут в зазоре между тем, что разработчик думает о запросе, и тем, чем запрос является на самом деле: текстом, который прислал кто угодно.
- 1.1 · Анатомия HTTP-запроса
- 1.2 · HTTPS и заголовки безопасности
- 1.3 · Куки и сессии
- 1.4 · Одинаковый источник и CORS
- 1.5 · Почему нельзя доверять данным клиента
- 02
Аутентификация и хранение паролей
Как система узнаёт человека и как она решает, что ему можно. Разбираем хранение паролей, второй фактор, восстановление доступа, токены и жизненный цикл сессии — с механикой поломок и конкретными починками.
- 2.1 · Аутентификация и авторизация: разные вещи
- 2.2 · Хранение паролей: соль и медленные хеши
- 2.3 · Второй фактор и восстановление доступа
- 2.4 · Токены доступа и JWT
- 2.5 · Жизненный цикл сессии и выход
- 03
Типовые уязвимости веба
Разбираем механику самых частых веб-уязвимостей: инъекции, XSS, CSRF, IDOR, SSRF и загрузку файлов. Не список определений, а объяснение, почему данные превращаются в код и какая именно защита разрывает эту цепочку.
- 3.1 · Инъекции в SQL и как их закрыть
- 3.2 · Инъекции команд и шаблонов
- 3.3 · Межсайтовый скриптинг
- 3.4 · Подделка межсайтовых запросов
- 3.5 · Небезопасные ссылки на объекты и контроль доступа
- 3.6 · Запросы от лица сервера и загрузка файлов
- 04
Криптография для практиков
Не математика, а инженерия: что именно гарантирует хеш, зачем нужен HMAC, почему шифрование без проверки целостности — половина защиты, как устроены подписи и сертификаты и на каких пяти ошибках чаще всего горят разработчики.
- 4.1 · Хеши: что они гарантируют, а что нет
- 4.2 · Симметричное шифрование
- 4.3 · Асимметричное шифрование и подписи
- 4.4 · TLS и сертификаты
- 4.5 · Типовые ошибки в криптографии
- 05
Сети и разведка на своих системах
Как пакет доходит до вашего сервера и что по дороге о вас видно. Разбираем уровни, маршрутизацию, состояния портов, NAT и межсетевой экран, записи DNS и перехват забытых поддоменов, инвентаризацию своих слушающих сокетов и чтение собственного трафика в захвате. Всё — только на своей инфраструктуре или по письменному разрешению владельца.
- 5.1 · Как пакет доходит до сервера
- 5.2 · DNS и имена: что о вас видно снаружи
- 5.3 · Инвентаризация своих портов и сервисов
- 5.4 · Разбор своего трафика
- 06
Безопасность инфраструктуры
Код можно написать безупречно, а систему всё равно потеряют через забытый доступ уволенного сотрудника, ключ в репозитории, непоставленное обновление или резервную копию, которую ни разу не восстанавливали. Этот модуль — про обвязку вокруг приложения: доступы, секреты, обновления, журналы и копии.
- 6.1 · Доступы, роли и наименьшие привилегии
- 6.2 · Секреты: где они живут и где не должны
- 6.3 · Обновления и уязвимые зависимости
- 6.4 · Журналы и мониторинг
- 6.5 · Резервные копии и восстановление
- 07
Тестирование на проникновение по закону и договору
Проверка защищённости отличается от взлома одной вещью — письменным разрешением. Здесь разбираем рамку, методику на своём полигоне и отчёт, который заказчик сможет исполнить.
- 7.1 · Правовая рамка: что можно и чего нельзя
- 7.2 · Область работ и правила взаимодействия
- 7.3 · Методика проверки на своём полигоне
- 7.4 · Отчёт и оценка рисков
- 08
Реагирование на инциденты
Инцидент случится — вопрос только когда. Здесь про то, как заранее договориться о ролях, не уничтожить улики в первые минуты и превратить разбор в исправленные системы.
- 8.1 · План реагирования: роли и связь
- 8.2 · Обнаружение и сортировка событий
- 8.3 · Локализация, устранение, восстановление
- 8.4 · Разбор инцидента и выводы
Проект в конце
Поднял локальный полигон с намеренными уязвимостями, задокументировал инъекцию, XSS и IDOR, починил каждую с тестом-регрессией и собрал отчёт «было — стало».