Безопасность разработки в Agile-проектах

Лаура Белл Майкл Брантон-Сполл Джим Бэрд

Обложка:


Оглавление
Предисловие.........................................................................................................................14
Кому стоит прочитать эту книгу?................................................................................................15
Разработчики, применяющие гибкие методы.............................................................................15
Специалист по безопасности .............................................................................................................16
Специалист по гибким методикам обеспечения безопасности...........................................16
О структуре книги ............................................................................................................................16
Часть 1. Основы........................................................................................................................................17
Часть 2. Гибкая разработка и безопасность..................................................................................17
Часть 3. Собираем все вместе ............................................................................................................17
Графические выделения................................................................................................................18
Как с нами связаться ......................................................................................................................19
Благодарности...................................................................................................................................19
Глава 1. Начала безопасности............................................................................................21
Не только для технарей.................................................................................................................24
Безопасность и риск неразделимы...........................................................................................24
Уязвимость: вероятность и последствия........................................................................................24
Все мы уязвимы.......................................................................................................................................25
Не невозможно, просто маловероятно ..........................................................................................25
Измерение затрат...................................................................................................................................26
Риск можно свести к минимуму, но не устранить вовсе .........................................................27
Несовершенный мир – трудные решения ....................................................................................27
Знай своего врага ............................................................................................................................28
Враг найдется у каждого......................................................................................................................28
Мотивы, ресурсы, доступ......................................................................................................................30
Цели безопасности: защита данных, систем и людей ......................................................30
Понимание того, что мы пытаемся защитить...............................................................................30
Конфиденциальность, целостность и доступность.....................................................................30
Неотрицаемость.......................................................................................................................................32
Соответствие нормативным требованиям, регулирование и стандарты
безопасности.................................................................................................................................32
Типичные заблуждения и ошибки в области безопасности ..........................................33
Безопасность абсолютна......................................................................................................................33
Безопасность – достижимое состояние .........................................................................................33
Безопасность статична..........................................................................................................................34
Для безопасности необходимо специальное [вставьте по своему усмотрению:
пункт, устройство, бюджет] ......................................................................................................34
Начнем, пожалуй ..............................................................................................................................35
Глава 2. Элементы гибких методик...................................................................................36
Сборочный конвейер .....................................................................................................................36
Автоматизированное тестирование.........................................................................................37
6  Оглавление
Непрерывная интеграция.............................................................................................................41
Инфраструктура как код ...............................................................................................................42
Управление релизами....................................................................................................................44
Визуальное прослеживание ........................................................................................................46
Централизованная обратная связь...........................................................................................47
Хороший код – развернутый код ..............................................................................................47
Работать быстро и безопасно .....................................................................................................48
Глава 3. Революция в методах разработки – присоединяйтесь! ...................................51
Гибкая разработка: взгляд с высоты.........................................................................................51
Scrum, самая популярная из гибких методик.......................................................................54
Спринты и журналы пожеланий........................................................................................................54
Планерки ....................................................................................................................................................56
Циклы обратной связи в Scrum ........................................................................................................57
Экстремальное программирование .........................................................................................58
Игра в планирование ............................................................................................................................58
Заказчик всегда рядом .........................................................................................................................59
Парное программирование................................................................................................................59
Разработка через тестирование........................................................................................................60
Метафора системы .................................................................................................................................61
Канбан ..................................................................................................................................................61
Канбан-доска: сделать работу видимой ........................................................................................63
Постоянная обратная связь.................................................................................................................63
Непрерывное улучшение.....................................................................................................................64
Бережливая разработка................................................................................................................64
Гибкие методы в целом .................................................................................................................66
А как насчет DevOps?......................................................................................................................68
Гибкие методики и безопасность ..............................................................................................71
Глава 4. Работа с существующим жизненным циклом гибкой разработки ...............73
Традиционные модели безопасности приложения ...........................................................73
Ритуалы на каждой итерации .....................................................................................................76
Инструменты, встроенные в жизненный цикл............................................................................78
Деятельность до начала итераций............................................................................................79
Инструменты планирования и обнаружения...............................................................................80
Деятельность после итерации.....................................................................................................80
Инструментальные средства в помощь команде.......................................................................81
Инструменты проверки соответствия нормативным требованиям и аудита.................82
Задание контрольного уровня безопасности ......................................................................82
А что будет при масштабировании?.........................................................................................83
Создание содействующих групп безопасности...................................................................83
Создание инструментов, которыми будут пользоваться.........................................................84
Методы документирования системы безопасности.................................................................85
Сухой остаток.....................................................................................................................................86
Оглавление  7
Глава 5. Безопасность и требования.................................................................................87
Учет безопасности в требованиях.............................................................................................87
Гибкие требования: рассказывание историй........................................................................89
Как выглядят истории?...................................................................................................................89
Условия удовлетворенности...............................................................................................................90
Учет историй и управление ими: журнал пожеланий.......................................................91
Отношение к дефектам .................................................................................................................92
Включение вопросов безопасности в требования ............................................................92
Истории, касающиеся безопасности...............................................................................................93
Конфиденциальность, мошенничество, соответствие нормативным
требованиям и шифрование...................................................................................................97
Истории, касающиеся безопасности, с точки зрения SAFECode..........................................99
Персоны и антиперсоны безопасности ...............................................................................101
Истории противника: надеваем черную шляпу................................................................103
Написание историй противника .................................................................................................... 105
Деревья атак ................................................................................................................................... 107
Построение дерева атак ................................................................................................................... 108
Сопровождение и использование деревьев атак .................................................................. 109
Требования к инфраструктуре и эксплуатации................................................................110
Сухой остаток..................................................................................................................................115
Глава 6. Гибкое управление уязвимостями....................................................................116
Сканирование на уязвимости и применение исправлений........................................116
Сначала поймите, что сканировать............................................................................................... 117
Затем решите, как сканировать и с какой частотой............................................................... 118
Учет уязвимостей.................................................................................................................................. 119
Управление уязвимостями ............................................................................................................... 120
Как относиться к критическим уязвимостям.....................................................................124
Обеспечение безопасности цепочки поставок программного обеспечения ......125
Уязвимости в контейнерах............................................................................................................... 127
Лучше меньше, да лучше .................................................................................................................. 127
Как устранить уязвимости по-гибкому.................................................................................128
Безопасность через тестирование ................................................................................................ 130
Нулевая терпимость к дефектам.................................................................................................... 131
Коллективное владение кодом ...................................................................................................... 132
Спринты безопасности, спринты укрепления и хакатоны...........................................133
Долг безопасности и его оплата.............................................................................................135
Сухой остаток.................................................................................................................................. 137
Глава 7. Риск для гибких команд.....................................................................................139
Безопасники говорят «нет».......................................................................................................139
Осознание рисков и управление рисками.........................................................................140
Риски и угрозы...............................................................................................................................142
Отношение к риску.......................................................................................................................143
8  Оглавление
Делать риски видимыми ................................................................................................................... 144
Принятие и передача рисков.......................................................................................................... 145
Изменение контекста рисков.......................................................................................................... 146
Управление рисками в гибких методиках и DevOps......................................................148
Скорость поставки ............................................................................................................................... 149
Инкрементное проектирование и рефакторинг..................................................................... 150
Самоорганизующиеся автономные команды........................................................................... 151
Автоматизация....................................................................................................................................... 152
Гибкое смягчение риска .................................................................................................................... 152
Отношение к рискам безопасности в гибких методиках и DevOps.........................155
Сухой остаток.................................................................................................................................. 157
Глава 8. Оценка угроз и осмысление атак .....................................................................159
Осмысление угроз: паранойя и реальность.......................................................................159
Понимание природы злоумышленников ................................................................................... 160
Архетипы злоумышленников .......................................................................................................... 161
Угрозы и цели атаки............................................................................................................................ 164
Разведка угроз ...............................................................................................................................165
Оценка угроз.......................................................................................................................................... 168
Поверхность атаки вашей системы.......................................................................................169
Картирование поверхности атаки приложения...................................................................... 170
Управление поверхностью атаки приложения........................................................................ 171
Гибкое моделирование угроз...................................................................................................173
Доверие и границы доверия........................................................................................................... 173
Построение модели угроз ................................................................................................................ 176
«Достаточно хорошо» – и достаточно........................................................................................ 176
Думать как противник ........................................................................................................................ 179
STRIDE – структурная модель для лучшего понимания противника.............................. 180
Инкрементное моделирование угроз и оценка рисков....................................................... 181
Оценка рисков в самом начале ..................................................................................................... 181
Пересмотр угроз при изменении проекта................................................................................. 182
Получение выгоды от моделирования угроз............................................................................ 183
Типичные векторы атак ..............................................................................................................185
Сухой остаток..................................................................................................................................186
Глава 9. Построение безопасных и удобных для пользования систем....................188
Проектируйте с защитой от компрометации.....................................................................188
Безопасность и удобство пользования ................................................................................189
Технические средства контроля..............................................................................................190
Сдерживающие средства контроля .............................................................................................. 190
Средства противодействия .............................................................................................................. 191
Защитные средства контроля ......................................................................................................... 191
Детекторные средства контроля.............................................................................................192
Компенсационные средства контроля ........................................................................................ 192
Оглавление  9
Архитектура безопасности........................................................................................................193
Безопасность без периметра........................................................................................................... 193
Предполагайте, что система скомпрометирована.................................................................. 196
Сложность и безопасность......................................................................................................... 197
Сухой остаток..................................................................................................................................199
Глава 10. Инспекция кода в интересах безопасности .................................................200
Зачем нужна инспекция кода? ................................................................................................200
Типы инспекций кода..................................................................................................................202
Формальные инспекции.................................................................................................................... 202
Метод утенка, или Проверка за столом...................................................................................... 202
Парное программирование (и программирование толпой).............................................. 203
Дружественная проверка ................................................................................................................. 204
Аудит кода............................................................................................................................................... 204
Автоматизированная инспекция кода......................................................................................... 205
Какой подход к инспекции оптимален для вашей команды?........................................... 205
Когда следует инспектировать код?......................................................................................206
До фиксации изменений................................................................................................................... 206
Контрольно-пропускные проверки перед релизом .............................................................. 207
Посмертное расследование............................................................................................................. 207
Как проводить инспекцию кода..............................................................................................208
Применяйте наставление по кодированию.............................................................................. 208
Контрольные списки для инспекции кода................................................................................. 209
Не делайте этих ошибок ................................................................................................................... 210
Инспектируйте код небольшими порциями ............................................................................. 211
Какой код следует инспектировать? ............................................................................................ 212
Кто должен инспектировать код?...........................................................................................214
Сколько должно быть инспекторов? ............................................................................................ 215
Каким опытом должны обладать инспекторы? ....................................................................... 216
Автоматизированная инспекция кода.................................................................................. 217
Разные инструменты находят разные проблемы................................................................... 219
Какие инструменты для чего подходят....................................................................................... 221
Приучение разработчиков к автоматизированным инспекциям кода.......................... 224
Сканирование в режиме самообслуживания........................................................................... 226
Инспекция инфраструктурного кода ........................................................................................... 228
Недостатки и ограничения инспекции кода......................................................................229
Для инспекции нужно время........................................................................................................... 230
Разобраться в чужом коде трудно................................................................................................. 231
Искать уязвимости еще труднее .................................................................................................... 231
Внедрение инспекций кода на безопасность ...................................................................233
Опирайтесь на то, что команда делает или должна делать ................................................ 233
Рефакторинг: поддержание простоты и безопасности кода ............................................. 235
Базовые вещи – вот путь к безопасному и надежному коду.............................................. 236
Инспекция функций и средств контроля, относящихся к безопасности................238
10  Оглавление
Инспекция кода на предмет угроз от инсайдеров..........................................................239
Сухой остаток..................................................................................................................................241
Глава 11. Гибкое тестирование безопасности ...............................................................244
Как производится тестирование в гибких методиках?.................................................244
Кто допускает ошибки, тот побежден...................................................................................246
Пирамида гибкого тестирования............................................................................................ 247
Автономное тестирование и TDD...........................................................................................249
Последствия автономного тестирования для безопасности системы............................ 250
Нам не по пути успеха ....................................................................................................................... 251
Тестирование на уровне служб и средства BDD..............................................................253
Gauntlt («придирайся к своему коду»)........................................................................................ 253
BDD-Security........................................................................................................................................... 254
Заглянем под капот............................................................................................................................. 254
Приемочное тестирование........................................................................................................256
Функциональное тестирование и сканирование безопасности................................256
Краткое пособие по ZAP.................................................................................................................... 257
ZAP в конвейере непрерывной интеграции ............................................................................. 259
Совместное использование BDD-Security и ZAP..................................................................... 260
Трудности, возникающие при сканировании приложений................................................. 262
Тестирование инфраструктуры................................................................................................265
Проверка правил оформления....................................................................................................... 267
Автономное тестирование................................................................................................................ 267
Приемочное тестирование............................................................................................................... 267
Создание автоматизированного конвейера сборки и тестирования......................269
Ночная сборка....................................................................................................................................... 270
Непрерывная интеграция................................................................................................................. 270
Непрерывная поставка и непрерывное развертывание..................................................... 271
Экстренное тестирование и инспекция ...................................................................................... 272
Передача в эксплуатацию ................................................................................................................ 273
Рекомендации по созданию успешного автоматизированного конвейера ................ 274
Место тестирования безопасности в конвейере..................................................................... 274
Место ручного тестирования в гибких методиках ..........................................................276
Как добиться, чтобы тестирование безопасности работало в гибких
методиках и DevOps? ..........................................................................................................278
Сухой остаток..................................................................................................................................280
Глава 12. Внешние инспекции, тестирование и рекомендации.................................282
Почему нужны внешние инспекции?....................................................................................283
Оценка уязвимости ......................................................................................................................286
Тестирование на проникновение........................................................................................... 287
Команда красных..........................................................................................................................291
Вознаграждение за обнаружение ошибок.........................................................................293
Как работает программа вознаграждения................................................................................ 293
Оглавление  11
Подготовка к программе вознаграждения за найденные ошибки................................. 294
А вы уверены, что хотите запустить программу вознаграждения? ................................. 299
Инспекция конфигурации .........................................................................................................303
Аудит безопасности кода...........................................................................................................303
Криптографический аудит.........................................................................................................304
Выбор сторонней компании.....................................................................................................306
Опыт работы с продуктами и организациями, похожими на ваши................................. 307
Активная исследовательская работа и повышение квалификации................................ 307
Встречи с техническими специалистами.................................................................................... 308
Оценка результатов оплаченной работы................................................................................... 308
Не тратьте чужое время попусту.................................................................................................... 309
Проверка найденных проблем....................................................................................................... 309
Настаивайте на устраивающей вас форме результатов ...................................................... 310
Интерпретируйте результаты в контексте ................................................................................. 310
Подключайте технических специалистов .................................................................................. 310
Измеряйте улучшение со временем............................................................................................ 310
Храните сведения о состоявшихся инспекциях и ретроспективном
анализе и делитесь результатами...................................................................................... 311
Распределяйте устранение проблем между командами, чтобы
способствовать передаче знаний...................................................................................... 311
Время от времени ротируйте оценщиков или меняйте местами тестировщиков..... 311
Сухой остаток..................................................................................................................................312
Глава 13. Эксплуатация и безопасность.........................................................................314
Укрепление системы: настройка безопасных систем....................................................315
Нормативно-правовые требования к укреплению......................................................... 317
Стандарты и рекомендации, относящиеся к укреплению................................................... 318
Проблемы, возникающие при укреплении ............................................................................... 319
Автоматизированное сканирование на соответствие нормативным
требованиям............................................................................................................................... 321
Подходы к построению укрепленных систем.......................................................................... 322
Автоматизированные шаблоны укрепления ............................................................................ 324
Сеть как код.....................................................................................................................................325
Мониторинг и обнаружение вторжений.............................................................................. 327
Мониторинг с целью организации обратной связи............................................................... 328
Использование мониторинга приложений в интересах безопасности......................... 328
Аудит и протоколирование .............................................................................................................. 330
Проактивное и реактивное обнаружение ................................................................................. 333
Обнаружение ошибок во время выполнения ...................................................................334
Оборона во время выполнения ..............................................................................................336
Обеспечение безопасности в облаке.......................................................................................... 336
RASP .......................................................................................................................................................... 337
Реакция на инциденты: подготовка к взлому....................................................................340
Тренируйтесь: учения и команда красных................................................................................. 340
12  Оглавление
Посмертный анализ без поисков виновного: обучение на инцидентах
безопасности.............................................................................................................................. 342
Защита сборочного конвейера ...............................................................................................344
Укрепление инфраструктуры сборки........................................................................................... 346
Выяснение того, что происходит в облаке................................................................................. 346
Укрепление инструментов непрерывной интеграции и поставки................................... 347
Ограничение доступа к диспетчерам конфигурации ........................................................... 349
Защита ключей и секретов............................................................................................................... 349
Ограничение доступа к репозиториям ....................................................................................... 349
Безопасный чат..................................................................................................................................... 350
Просмотр журналов ............................................................................................................................ 351
Использование серверов-фениксов для сборки и тестирования.................................... 351
Мониторинг систем сборки и тестирования ............................................................................. 352
Шшш… секреты должны храниться в секрете...................................................................352
Сухой остаток..................................................................................................................................355
Глава 14. Соответствие нормативным требованиям ...................................................357
Соответствие нормативным требованиям и безопасность..........................................358
Различные подходы к законодательному регулированию..........................................361
PCI DSS: подход на основе правил............................................................................................... 362
Надзор за целостностью и соблюдением требований: подход на основе
результатов ................................................................................................................................. 366
Какой подход лучше?.................................................................................................................. 367
Управление рисками и соответствие нормативным требованиям........................... 367
Прослеживаемость изменений ...............................................................................................369
Конфиденциальность данных..................................................................................................370
Как соответствовать нормативным требованиям, сохраняя гибкость.....................372
Истории о соответствии и соответствие в историях.............................................................. 373
Больше кода, меньше писанины.................................................................................................... 374
Прослеживаемость и гарантии непрерывной поставки ...................................................... 376
Управление изменениями при непрерывной поставке....................................................... 379
Разделение обязанностей ................................................................................................................ 381
Встраивание соответствия нормативным требованиям в корпоративную
культуру.....................................................................................................................................383
Как доставить удовольствие аудитору ........................................................................................ 384
Как быть, когда аудиторы недовольны ....................................................................................... 386
Сертификация и аттестация...................................................................................................... 387
Непрерывное соответствие и взломы......................................................................................... 387
Сертификация не означает, что вы в безопасности............................................................... 388
Сухой остаток..................................................................................................................................388
Глава 15. Культура безопасности ....................................................................................390
Важность культуры безопасности...........................................................................................391
Определение «культуры».................................................................................................................. 391
Тяни, а не толкай................................................................................................................................... 391
Оглавление  13
Выстраивание культуры безопасности ....................................................................................... 392
Принципы эффективной безопасности...............................................................................393
Содействуй, а не блокируй............................................................................................................... 395
Прозрачная безопасность ................................................................................................................ 399
Не ищите виноватых........................................................................................................................... 401
Масштабировать безопасность, усиливать фланги ................................................................ 405
Кто – не менее важно, чем как....................................................................................................... 407
Продвижение безопасности.....................................................................................................408
Эргобезопасность................................................................................................................................. 410
Информационные панели ................................................................................................................ 412
Сухой остаток.................................................................................................................................. 417
Глава 16. Что такое гибкая безопасность?.....................................................................418
История Лауры...............................................................................................................................418
Не инженер, а хакер ........................................................................................................................... 418
Твое дитя – уродец, и ты должен чувствовать себя виноватым........................................ 419
Поменьше говори, побольше слушай.......................................................................................... 420
Давайте двигаться быстрее ......................................................................................................420
Создание круга поклонников и друзей....................................................................................... 421
Мы невелички, но нас много ........................................................................................................... 421
История Джима ..............................................................................................................................422
Вы можете вырастить собственных экспертов по безопасности..................................... 422
Выбирайте людей, а не инструменты .......................................................................................... 424
Безопасность должна начинаться с качества........................................................................... 425
Соответствие нормативным требованиям может стать повседневной практикой... 426
История Майкла.............................................................................................................................426
Знания о безопасности распределены неравномерно........................................................ 429
Практическим специалистам нужно периодически проходить повышение
квалификации............................................................................................................................ 430
Аккредитация и гарантии отмирают............................................................................................ 430
Безопасность должна содействовать делу................................................................................. 431
История Рича...................................................................................................................................431
Первый раз бесплатно....................................................................................................................... 432
А это может быть не просто хобби?.............................................................................................. 433
Прозрение............................................................................................................................................... 433
С компьютерами трудно, с людьми еще труднее .................................................................... 434
И вот мы тут............................................................................................................................................ 435
Сведения об авторах.........................................................................................................436
Об иллюстрации на обложке ...........................................................................................438
Предметный указатель .....................................................................................................439