Подборка книг по кибербезопасности: Безопасность приложений

Блок для разработчиков: уязвимости, которые вы вносите сами, и способы их не вносить.

Подборка книг по кибербезопасности: Безопасность приложений
Часть 5 из 9: безопасность приложений

Пятая часть из девяти. Блок для разработчиков: уязвимости, которые вы вносите сами, и способы их не вносить.

Практически весь список приложим к работе в понедельник утром.

Dafydd Stuttard, Marcus Pinto. The Web Application Hacker's Handbook (2-е издание, 2011)

Толстый справочник по атакам на веб. Про современный фронтенд и API там ничего нет, но классификация уязвимостей и методология тестирования остаются лучшими в жанре.

Механизмы аутентификации и управления сессиями, контроль доступа, инъекции всех видов, атаки на логику приложения, атаки на пользователя, методология полного обхода приложения.

Michal Zalewski. The Tangled Web (2011)

Как на самом деле устроены браузеры и почему модель безопасности веба выглядит именно так. Написано человеком, который эти проблемы находил.

Происхождение и правило одного источника, DOM и его изоляция, куки и их ограничения, обработка контента браузером, заголовки безопасности, механизмы, унаследованные из девяностых.

Malcolm McDonald. Web Security for Developers (2020)

Компактная и современная книга для тех, кто пишет код, а не тестирует чужой. Хороший вход перед двумя предыдущими.

Как работает браузер и HTTP, инъекции, XSS и CSRF, безопасное хранение паролей, зависимости и уязвимости в них, конфигурация сервера, защита от автоматизированных атак.

Tanya Janca. Alice and Bob Learn Application Security (2020)

Про встраивание безопасности в процесс разработки, а не про отдельный этап перед релизом.

Требования безопасности и проектирование, безопасное кодирование, тестирование и инструменты в конвейере, работа с секретами, культура взаимодействия разработки и безопасности.

Adam Shostack. Threat Modeling: Designing for Security (2014)

Единственная книга, которая учит систематически отвечать на вопрос «что здесь может пойти не так» до написания кода.

Диаграммы потоков данных, методология STRIDE, деревья атак, приоритизация найденных угроз, интеграция моделирования угроз в рабочий процесс.

Neil Madden. API Security in Action (2020)

Безопасность API от базовой аутентификации до распределённых систем, с рабочим кодом.

Аутентификация и авторизация в API, токены и их хранение, OAuth 2 и OpenID Connect, ограничение скорости запросов, безопасность в микросервисах и Kubernetes, взаимный TLS.

Justin Richer, Antonio Sanso. OAuth 2 in Action (2017)

Разбор протокола изнутри: авторы предлагают собрать и клиент, и сервер авторизации, и защищённый ресурс собственными руками.

Потоки OAuth 2 и когда какой применять, типичные ошибки реализации на стороне клиента и сервера, токены доступа и обновления, JWT, связь с OpenID Connect.

Dan Bergh Johnsson, Daniel Deogun, Daniel Sawano. Secure by Design (2019)

Тезис книги: большинство уязвимостей возникают из плохого проектирования домена, а не из забытой проверки. Показывают, как строгая доменная модель убирает целые классы ошибок.

Типы вместо валидации, неизменяемые объекты, границы контекстов, обработка ошибок, безопасность в облачных и распределённых архитектурах, работа с легаси кодом.

Читать далее