Безопасность веб-приложений. Разведка, защита, нападение
معرفی کتاب «Безопасность веб-приложений. Разведка, защита, нападение» نوشتهٔ Эндрю Хоффман، منتشرشده توسط نشر Спринт Бук در سال 2025. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
Краткое содержание Оглавление Отзывы о первом издании Предисловие Изменения во втором издании Исходные требования и цели обучения Почему примеры написаны на JavaScript Почему книга представляет концепции, а не инструменты Требования к уровню знаний Минимальный набор навыков Кому больше всего пригодится эта книга Инженеры-программисты и разработчики веб-приложений Инженеры-программисты Разработчики веб-приложений Общие цели обучения Инженеры по безопасности, пентестеры и охотники за багами Структура книги Разведка Нападение Защита Язык и терминология Резюме Условные обозначения Благодарности От издательства Глава 1. История защиты программного обеспечения Истоки хакерства «Энигма», 1930-е Автоматизированный взлом шифра «Энигмы», 1940-е Фрикинг, 1950-е Метод борьбы с фрикингом, 1960-е Начало компьютерного взлома, 1980-е Расцвет Всемирной паутины, 2000-е Современные хакеры, после 2015-го Резюме Часть I. Разведка Глава 2. Введение в разведку веб-приложений Сбор информации Карта веб-приложения Резюме Глава 3. Структура современных веб-приложений Сравнение современных и более ранних версий приложений REST API Формат JSON JavaScript Переменные и их область видимости Функции Контекст Прототипное наследование Асинхронное выполнение кода Программный интерфейс DOM браузера Фреймворки для SPA Системы аутентификации и авторизации Аутентификация Авторизация Веб-серверы Базы данных на стороне сервера Хранение данных на стороне клиента GraphQL Системы управления версиями Сети доставки контента и кэширование Резюме Глава 4. Поиск субдоменов Множество приложений в рамках одного домена Встроенные в браузер инструменты анализа Общедоступная информация Кэши поисковых систем Поиск в архиве Социальные профили Атаки на передачу зоны Брутфорс субдоменов Перебор по словарю Резюме Глава 5. Анализ API Обнаружение конечной точки Механизмы аутентификации Разновидности конечных точек Основные разновидности Специализированные разновидности Резюме Глава 6. Обнаружение сторонних зависимостей Клиентские фреймворки Фреймворки для одностраничных приложений EmberJS Angular React VueJS Библиотеки JavaScript Библиотеки CSS Фреймворки на стороне сервера Заголовки Стандартные сообщения об ошибке и страницы 404 Базы данных Резюме Глава 7. Поиск слабых мест в архитектуре приложения Признаки безопасной и небезопасной архитектуры Уровни безопасности Заимствование и перекрой Резюме Глава 8. Итоги части I Часть II. Нападение Глава 9. Введение во взлом веб-приложений Мышление хакера Применение данных, полученных в процессе разведки Глава 10. Межсайтовый скриптинг Обнаружение XSS-уязвимости Хранимый XSS Отраженный XSS XSS-атака на базе DOM XSS с мутациями Обход фильтров Самозакрывающиеся теги HTML Относительные URL без протокола Некорректные теги Экранированные последовательности Многоязычные полезные нагрузки Приемники и источники XSS Резюме Глава 11. Подделка межсайтовых запросов Подделка параметров запроса Изменение содержимого запроса GET CSRF-атака на конечные точки POST Обход защиты CSRF Проверка заголовков Пулы токенов Слабые токены Типы контента Обход фильтров из регулярных выражений iframe AJAX Формы нулевого взаимодействия Резюме Глава 12. Атака на внешние сущности XML Основы XXE Атака напрямую Непрямая XXE-атака Внеполосная утечка данных Захват учетной записи Получение данных о пользователе Получение хешей паролей Взлом хешей паролей Удаленный вход по SSH Резюме Глава 13. Внедрение кода Внедрение SQL-кода Внедрение кода Внедрение команд Приемы внедрения для эксфильтрации данных Основы эксфильтрации данных Внутриполосная эксфильтрация данных Внеполосная эксфильтрация данных Логическая эксфильтрация данных Обход общей защиты Резюме Глава 14. Отказ в обслуживании ReDoS-атака Логические DoS-уязвимости Распределенная DoS-атака Продвинутые DoS-атаки Атаки YoYo Атака на функции сжатия DoS-атаки проксированием Резюме Глава 15. Атаки на данные и объекты Массовое присваивание Небезопасная прямая ссылка на объект Атаки сериализации Основы сериализации Атака на слабую сериализацию Резюме Глава 16. Атаки на стороне клиента Атаки на клиента в браузере Атаки, нацеленные на клиента Атаки, характерные для клиента Достоинства атак на стороне клиента Атаки загрязнения прототипа Основы загрязнения прототипа Атака загрязнением прототипа Архетипы загрязнения прототипов Отказ в обслуживании Внедрение свойств Удаленное выполнение кода Кликджекинг Эксплуатация камеры и микрофона Создание эксплойтов для кликджекинга Табнаббинг и обратный табнаббинг Традиционный табнаббинг Обратный табнаббинг Атака DOM API Атака по HTML-ссылке Атака через iframe Резюме Глава 17. Эксплуатация сторонних зависимостей Методы интеграции Ветви и вилки Приложения с собственным сервером Интеграция на уровне кода Диспетчеры пакетов JavaScript Java Другие языки База данных общеизвестных уязвимостей Резюме Глава 18. Уязвимости в бизнес-логике Уязвимости нестандартных математических вычислений Побочные эффекты Безналичные атаки Уязвимости стандартов и соглашений Эксплуатация уязвимостей бизнес-логики Резюме Глава 19. Итоги части II Часть III. Защита Глава 20. Защита современных веб-приложений Архитектура защищенного ПО Глубокий анализ кода Поиск уязвимости Анализ уязвимости Управление уязвимостями Регрессионное тестирование Меры по снижению риска Прикладные техники разведки и нападения Резюме Глава 21. Безопасная архитектура приложений Анализ требований к ПО Аутентификация и авторизация Протоколы SSL и TLS Защита учетных данных Хеширование учетных данных BCrypt PBKDF2 Многофакторная аутентификация Личные данные и финансовая информация Поиск Архитектура нулевого доверия История философии нулевого доверия Явное и неявное доверие Аутентификация и авторизация Резюме Глава 22. Безопасная конфигурация приложений Политика безопасности контента Реализация CSP Структура CSP Важные директивы Источники CSP и списки источников Строгая политика CSP Пример политики CSP Совместное использование ресурсов разными источниками Типы запросов CORS Простые запросы CORS Предварительные запросы CORS Реализация CORS Заголовки Строгая транспортная безопасность Политика доступа к окнам, открытым разными источниками (COOP) Политика доступа для ресурсов из разных источников (CORP) Заголовки, влияющие на безопасность Устаревшие заголовки безопасности Файлы cookie Создание и защита файлов cookie Тестирование файлов cookie Создание изолированного окружения Традиционный метод с фреймами iframe Web Workers Целостность подресурса Shadow Realms Резюме Глава 23. Безопасность пользовательского интерфейса Раскрытие и перечисление информации Раскрытие информации Перечисление Рекомендации по безопасности пользовательского интерфейса Резюме Глава 24. Моделирование угроз Проектирование модели угроз Пример моделирования угроз Логическое описание Техническое описание Определение угроз (субъекты угроз) Определение угроз (векторы атак) Определение реализованных мер по смягчению последствий Определение рисков без реализованных мер противодействия Резюме Глава 25. Проверка безопасности кода Начало проверки Основные типы уязвимостей и пользовательские логические ошибки С чего начать проверку безопасности Антипаттерны безопасного программирования Черные списки Шаблонный код Доверие по умолчанию Разделение клиента и сервера Резюме Глава 26. Обнаружение уязвимостей Автоматизированная проверка Статический анализ Динамический анализ Регрессионное тестирование Программы ответственного раскрытия информации Программы вознаграждения за обнаружение ошибок Сторонние пентестеры Резюме Глава 27. Управление уязвимостями Воспроизведение уязвимостей Классификация уязвимостей Общая система оценки уязвимостей CVSS. Базовая метрика CVSS. Временная метрика CVSS. Контекстная метрика Усовершенствованная классификация уязвимостей Что делать потом Резюме Глава 28. Противодействие XSS-атакам Приемы написания кода для противодействия XSS Очистка пользовательского ввода Приемник DOMParser Приемник SVG Приемник Blob Санация гиперссылок Символьные сущности в HTML CSS XSS Политика защиты контента для предотвращения XSS Директива script-src Ключевые слова unsafe-eval и unsafe-inline Внедрение CSP Резюме Глава 29. Защита от CSRF Проверка заголовков CSRF-токен CSRF-токены без сохранения состояния Противодействие CRSF на уровне кода Запросы GET без сохранения состояния Снижение риска CSRF на уровне приложения Промежуточное ПО для противодействия CSRF-атакам Резюме Глава 30. Защита от XXE-атак Оценка других форматов данных Дополнительные риски, связанные с XXE Резюме Глава 31. Противодействие внедрению Противодействие внедрению SQL-кода Распознавание внедрения SQL-кода Параметризованные запросы Более специфические методы защиты Защита от других видов внедрения Потенциальные цели внедрения Принцип минимальных привилегий Белый список команд Резюме Глава 32. Противодействие DoS-атакам Противодействие атакам ReDoS Защита от логических DoS-атак Защита от DDoS Резюме Глава 33. Защита данных и объектов Защита от массового присваивания Проверка и белый список Объекты передачи данных Защита от IDOR Защита от атак на сериализацию Резюме Глава 34. Защита от атак на стороне клиента Защита от загрязнения прототипов Санация ключей Замораживание прототипа Пустые прототипы Защита от кликджекинга Директива frame-ancestors Антифрейминг Защита от табнаббинга Политика доступа к окнам, открытым разными источниками Блокировка ссылок Политики изоляции Резюме Глава 35. Защита сторонних зависимостей Оценка дерева зависимостей Моделирование дерева зависимости Деревья зависимостей на практике Автоматизированная оценка Техники безопасной интеграции Разделение интересов Безопасное управление пакетами Резюме Глава 36. Устранение уязвимостей в бизнес-логике Устранение уязвимостей на уровне архитектуры Статистическое моделирование Моделирование входных данных Моделирование действий Разработка модели Анализ модели Резюме Глава 37. Итоги части III Заключение История безопасности программного обеспечения Разведка Нападение Защита Что дальше Об авторе Иллюстрация на обложке In the first edition of this critically acclaimed book, Andrew Hoffman defined the three pillars of application security: reconnaissance, offense, and defense. In this revised and updated second edition, he examines dozens of related topics, from the latest types of attacks and mitigations to threat modeling, the secure software development lifecycle (SSDL/SDLC), and more.Hoffman, senior staff security engineer at Ripple, also provides information regarding exploits and mitigations for several additional web application technologies such as GraphQL, cloud-based deployments, content delivery networks (CDN) and server-side rendering (SSR). Following the curriculum from the first book, this second edition is split into three distinct pillars comprising three separate skill sets:Pillar 1: Recon—Learn techniques for mapping and documenting web applications remotely, including procedures for working with web applicationsPillar 2: Offense—Explore methods for attacking web applications using a number of highly effective exploits that have been proven by the best hackers in the world. These skills are valuable when used alongside the skills from Pillar 3.Pillar 3: Defense—Build on skills acquired in the first two parts to construct effective and long-lived mitigations for each of the attacks described in Pillar 2.
دانلود کتاب Безопасность веб-приложений. Разведка, защита, нападение