Безопасность разработки в Agile-проектах_обложка
Безопасность разработки в Agile-проектах_160_220_макет
TDDneed
Предисловие
Кому стоит прочитать эту книгу?
Разработчики, применяющие гибкие методы
Специалист по безопасности
Специалист по гибким методикам обеспечения безопасности
О структуре книги
Часть 1. Основы
Часть 2. Гибкая разработка и безопасность
Часть 3. Собираем все вместе
Графические выделения
Как с нами связаться
Благодарности
Глава 1
Начала безопасности
Не только для технарей
Безопасность и риск неразделимы
Уязвимость: вероятность и последствия
Все мы уязвимы
Не невозможно, просто маловероятно
Измерение затрат
Риск можно свести к минимуму, но не устранить вовсе
Несовершенный мир – трудные решения
Знай своего врага
Враг найдется у каждого
Мотивы, ресурсы, доступ
Цели безопасности: защита данных, систем и людей
Понимание того, что мы пытаемся защитить
Конфиденциальность, целостность и доступность
Неотрицаемость
Соответствие нормативным требованиям, регулирование и стандарты безопасности
Типичные заблуждения и ошибки в области безопасности
Безопасность абсолютна
Безопасность – достижимое состояние
Безопасность статична
Для безопасности необходимо специальное [вставьте по своему усмотрению: пункт, устройство, бюджет]
Начнем, пожалуй
Глава 2
Элементы гибких методик
Сборочный конвейер
Автоматизированное тестирование
Непрерывная интеграция
Инфраструктура как код
Управление релизами
Визуальное прослеживание
Централизованная обратная связь
Хороший код – развернутый код
Работать быстро и безопасно
Глава 3
Революция в методах разработки – присоединяйтесь!
Гибкая разработка: взгляд с высоты
Scrum, самая популярная из гибких методик
Спринты и журналы пожеланий
Планерки
Циклы обратной связи в Scrum
Экстремальное программирование
Игра в планирование
Заказчик всегда рядом
Парное программирование
Разработка через тестирование
Метафора системы
Канбан
Канбан-доска: сделать работу видимой
Постоянная обратная связь
Непрерывное улучшение
Бережливая разработка
Гибкие методы в целом
А как насчет DevOps?
Гибкие методики и безопасность
Глава 4
Работа с существующим жизненным циклом гибкой разработки
Традиционные модели безопасности приложения
Ритуалы на каждой итерации
Инструменты, встроенные в жизненный цикл
Деятельность до начала итераций
Инструменты планирования и обнаружения
Деятельность после итерации
Инструментальные средства в помощь команде
Инструменты проверки соответствия нормативным требованиям и аудита
Задание контрольного уровня безопасности
А что будет при масштабировании?
Создание содействующих групп безопасности
Создание инструментов, которыми будут пользоваться
Методы документирования системы безопасности
Сухой остаток
Глава 5
Безопасность и требования
Учет безопасности в требованиях
Гибкие требования: рассказывание историй
Как выглядят истории?
Условия удовлетворенности
Учет историй и управление ими: журнал пожеланий
Отношение к дефектам
Включение вопросов безопасности в требования
Истории, касающиеся безопасности
Конфиденциальность, мошенничество, соответствие нормативным требованиям и шифрование
Истории, касающиеся безопасности, с точки зрения SAFECode
Персоны и антиперсоны безопасности
Истории противника: надеваем черную шляпу
Написание историй противника
Деревья атак
Построение дерева атак
Сопровождение и использование деревьев атак
Требования к инфраструктуре и эксплуатации
Сухой остаток
Глава 6
Гибкое управление уязвимостями
Сканирование на уязвимости и применение исправлений
Сначала поймите, что сканировать
Затем решите, как сканировать и с какой частотой
Учет уязвимостей
Управление уязвимостями
Как относиться к критическим уязвимостям
Обеспечение безопасности цепочки поставок программного обеспечения
Уязвимости в контейнерах
Лучше меньше, да лучше
Как устранить уязвимости по-гибкому
Безопасность через тестирование
Нулевая терпимость к дефектам
Коллективное владение кодом
Спринты безопасности, спринты укрепления и хакатоны
Долг безопасности и его оплата
Сухой остаток
Глава 7
Риск для гибких команд
Безопасники говорят «нет»
Осознание рисков и управление рисками
Риски и угрозы
Отношение к риску
Делать риски видимыми
Принятие и передача рисков
Изменение контекста рисков
Управление рисками в гибких методиках и DevOps
Скорость поставки
Инкрементное проектирование и рефакторинг
Самоорганизующиеся автономные команды
Автоматизация
Гибкое смягчение риска
Отношение к рискам безопасности в гибких методиках и DevOps
Сухой остаток
Глава 8
Оценка угроз и осмысление атак
Осмысление угроз: паранойя и реальность
Понимание природы злоумышленников
Архетипы злоумышленников
Угрозы и цели атаки
Разведка угроз
Оценка угроз
Поверхность атаки вашей системы
Картирование поверхности атаки приложения
Управление поверхностью атаки приложения
Гибкое моделирование угроз
Доверие и границы доверия
Построение модели угроз
«Достаточно хорошо» – и достаточно
Думать как противник
STRIDE – структурная модель для лучшего понимания противника
Инкрементное моделирование угроз и оценка рисков
Оценка рисков в самом начале
Пересмотр угроз при изменении проекта
Получение выгоды от моделирования угроз
Типичные векторы атак
Сухой остаток
Глава 9
Построение безопасных и удобных для пользования систем
Проектируйте с защитой от компрометации
Безопасность и удобство пользования
Технические средства контроля
Сдерживающие средства контроля
Средства противодействия
Защитные средства контроля
Детекторные средства контроля
Компенсационные средства контроля
Архитектура безопасности
Безопасность без периметра
Предполагайте, что система скомпрометирована
Сложность и безопасность
Сухой остаток
Глава 10
Инспекция кода в интересах безопасности
Зачем нужна инспекция кода?
Типы инспекций кода
Формальные инспекции
Метод утенка, или Проверка за столом
Парное программирование (и программирование толпой)
Дружественная проверка
Аудит кода
Автоматизированная инспекция кода
Какой подход к инспекции оптимален для вашей команды?
Когда следует инспектировать код?
До фиксации изменений
Контрольно-пропускные проверки перед релизом
Посмертное расследование
Как проводить инспекцию кода
Применяйте наставление по кодированию
Контрольные списки для инспекции кода
Не делайте этих ошибок
Инспектируйте код небольшими порциями
Какой код следует инспектировать?
Кто должен инспектировать код?
Сколько должно быть инспекторов?
Каким опытом должны обладать инспекторы?
Автоматизированная инспекция кода
Разные инструменты находят разные проблемы
Какие инструменты для чего подходят
Приучение разработчиков к автоматизированным инспекциям кода
Сканирование в режиме самообслуживания
Инспекция инфраструктурного кода
Недостатки и ограничения инспекции кода
Для инспекции нужно время
Разобраться в чужом коде трудно
Искать уязвимости еще труднее
Внедрение инспекций кода на безопасность
Опирайтесь на то, что команда делает или должна делать
Рефакторинг: поддержание простоты и безопасности кода
Базовые вещи – вот путь к безопасному и надежному коду
Инспекция функций и средств контроля, относящихся к безопасности
Инспекция кода на предмет угроз от инсайдеров
Сухой остаток
Глава 11
Гибкое тестирование безопасности
Как производится тестирование в гибких методиках?
Кто допускает ошибки, тот побежден
Пирамида гибкого тестирования
Автономное тестирование и TDD
Последствия автономного тестирования для безопасности системы
Нам не по пути успеха
Тестирование на уровне служб и средства BDD
Gauntlt («придирайся к своему коду»)
BDD-Security
Заглянем под капот
Приемочное тестирование
Функциональное тестирование и сканирование безопасности
Краткое пособие по ZAP
ZAP в конвейере непрерывной интеграции
Совместное использование BDD-Security и ZAP
Трудности, возникающие при сканировании приложений
Тестирование инфраструктуры
Проверка правил оформления
Автономное тестирование
Приемочное тестирование
Создание автоматизированного конвейера сборки и тестирования
Ночная сборка
Непрерывная интеграция
Непрерывная поставка и непрерывное развертывание
Экстренное тестирование и инспекция
Передача в эксплуатацию
Рекомендации по созданию успешного автоматизированного конвейера
Место тестирования безопасности в конвейере
Место ручного тестирования в гибких методиках
Как добиться, чтобы тестирование безопасности работало в гибких методиках и DevOps?
Сухой остаток
Глава 12
Внешние инспекции, тестирование и рекомендации
Почему нужны внешние инспекции?
Оценка уязвимости
Тестирование на проникновение
Команда красных
Вознаграждение за обнаружение ошибок
Как работает программа вознаграждения
Подготовка к программе вознаграждения за найденные ошибки
А вы уверены, что хотите запустить программу вознаграждения?
Инспекция конфигурации
Аудит безопасности кода
Криптографический аудит
Выбор сторонней компании
Опыт работы с продуктами и организациями, похожими на ваши
Активное исследовательская работа и повышение квалификации
Встречи с техническими специалистами
Оценка результатов оплаченной работы
Не тратьте чужое время попусту
Проверка найденных проблем
Настаивайте на устраивающей вас форме результатов
Интерпретируйте результаты в контексте
Подключайте технических специалистов
Измеряйте улучшение со временем
Храните сведения о состоявшихся инспекциях и ретроспективном анализе и делитесь результатами
Распределяйте устранение проблем между командами, чтобы способствовать передаче знаний
Время от времени ротируйте оценщиков или меняйте местами тестировщиков
Сухой остаток
Глава 13
Эксплуатация и безопасность
Укрепление системы: настройка безопасных систем
Нормативно-правовые требования к укреплению
Стандарты и рекомендации, относящиеся к укреплению
Проблемы, возникающие при укреплении
Автоматизированное сканирование на соответствие нормативным требованиям
Подходы к построению укрепленных систем
Автоматизированные шаблоны укрепления
Сеть как код
Мониторинг и обнаружение вторжений
Мониторинг с целью организации обратной связи
Использование мониторинга приложений в интересах безопасности
Аудит и протоколирование
Проактивное и реактивное обнаружение
Обнаружение ошибок во время выполнения
Оборона во время выполнения
Обеспечение безопасности в облаке
RASP
Реакция на инциденты: подготовка к взлому
Тренируйтесь: учения и команда красных
Посмертный анализ без поисков виновного: обучение на инцидентах безопасности
Защита сборочного конвейера
Укрепление инфраструктуры сборки
Выяснение того, что происходит в облаке
Укрепление инструментов непрерывной интеграции и поставки
Ограничение доступа к диспетчерам конфигурации
Защита ключей и секретов
Ограничение доступа к репозиториям
Безопасный чат
Просмотр журналов
Использование серверов-фениксов для сборки и тестирования
Мониторинг систем сборки и тестирования
Шшш... секреты должны храниться в секрете
Сухой остаток
Глава 14
Соответствие нормативным требованиям
Соответствие нормативным требованиям и безопасность
Различные подходы к законодательному регулированию
PCI DSS: подход на основе правил
Надзор за целостностью и соблюдением требований: подход на основе результатов
Какой подход лучше?
Управление рисками и соответствие нормативным требованиям
Прослеживаемость изменений
Конфиденциальность данных
Как соответствовать нормативным требованиям, сохраняя гибкость
Истории о соответствии и соответствие в историях
Больше кода, меньше писанины
Прослеживаемость и гарантии непрерывной поставки
Управление изменениями при непрерывной поставке
Разделение обязанностей
Встраивание соответствия нормативным требованиям в корпоративную культуру
Как доставить удовольствие аудитору
Как быть, когда аудиторы недовольны
Сертификация и аттестация
Непрерывное соответствие и взломы
Сертификация не означает, что вы в безопасности
Сухой остаток
Глава 15
Культура безопасности
Важность культуры безопасности
Определение «культуры»
Тяни, а не толкай
Выстраивание культуры безопасности
Принципы эффективной безопасности
Содействуй, а не блокируй
Прозрачная безопасность
Не ищите виноватых
Масштабировать безопасность, усиливать фланги
Кто – не менее важно, чем как
Продвижение безопасности
Эргобезопасность
Информационные панели
Сухой остаток
Глава 16
Что такое гибкая безопасность?
История Лауры
Не инженер, а хакер
Твое дитя – уродец, и ты должен чувствовать себя виноватым
Поменьше говори, побольше слушай
Давайте двигаться быстрее
Создание круга поклонников и друзей
Мы невелички, но нас много
История Джима
Вы можете вырастить собственных экспертов по безопасности
Выбирайте людей, а не инструменты
Безопасность должна начинаться с качества
Соответствие нормативным требованиям может стать повседневной практикой
История Майкла
Знания о безопасности распределены неравномерно
Практическим специалистам нужно периодически проходить повышение квалификации
Аккредитация и гарантии отмирают
Безопасность должна содействовать делу
История Рича
Первый раз бесплатно
А это может быть не просто хобби?
Прозрение
С компьютерами трудно, с людьми еще труднее
И вот мы тут
Сведения об авторах
Об иллюстрации на обложке
Предметный указатель
更多信息……