Подборка книг по кибербезопасности: Безопасность приложений
Блок для разработчиков: уязвимости, которые вы вносите сами, и способы их не вносить.
Подборка книг по кибербезопасности: Безопасность приложений
Пятая часть из девяти. Блок для разработчиков: уязвимости, которые вы вносите сами, и способы их не вносить.
Практически весь список приложим к работе в понедельник утром.
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)
Тезис книги: большинство уязвимостей возникают из плохого проектирования домена, а не из забытой проверки. Показывают, как строгая доменная модель убирает целые классы ошибок.
Темы: типы вместо валидации, неизменяемые объекты, границы контекстов, обработка ошибок, безопасность в облачных и распределённых архитектурах, работа с легаси кодом.
Следующая часть: защита и реагирование.
Вся серия: