Безопасность разработки в Agile-проектах: обеспечение безопасности в конвейере непрерывной поставки
Покупка
Издательство:
ДМК Пресс
Год издания: 2018
Кол-во страниц: 448
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-648-3
Артикул: 794786.01.99
В большинстве организаций стремительно принимают на вооружение гибкие (agile) методики разработки. Они позволяют своевременно реагировать на изменение условий и значительно снижать стоимость разработки.
Однако исторически безопасность и гибкие методики никогда не дружили между собой.
Эта книга поможет вам разобраться в том, что такое безопасность, какие существуют угрозы и на каком языке специалисты-безопасники описывают, что происходит. Вы научитесь моделировать угрозы, измерять степень риска, создавать ПО постоянно помня о безопасности.
Издание будет полезно всем специалистам, в чьи обязанности входит обеспечение информационной и операционной безопасности организаций, разработчикам, применяющие гибкие методы разработки приложений, для которых Scrum и кайдзен не пустые слова.
- Полная коллекция по информатике и вычислительной технике
- DevOps
- Защита информации. Компьютерная безопасность
- Интермедиатор. Информационная безопасность (сводная)
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Интермедиатор. Обеспечение безопасности (сводная)
- Информационная безопасность
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 10.03.01: Информационная безопасность
- ВО - Специалитет
- 10.05.01: Компьютерная безопасность
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Л. Белл, М. Брантон-Сполл, Р. Смит, Д. Бэрд Безопасность разработки в Agile-проектах Обеспечение безопасности в конвейере непрерывной поставки
Agile Application Security Enabling Security in a Continuous Delivery Pipeline Laura Bell, Michael Brunton-Spall, Rich Smith, and Jim Bird Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo
УДК 004.42 ББК 32.973 Б43 Б43 Белл Л., Брантон-Сполл М., Смит Р., Бэрд Д. Безопасность разработки в Agile-проектах. Обеспечение безопасности в конвейере непрерывной поставки / пер. с англ. А. А. Слинкин. – М.: ДМК Пресс, 2018. – 448 с.: ил. ISBN 978-5-97060-648-3 В большинстве организаций стремительно принимают на вооружение гибкие (agile) методики разработки. Они позволяют своевременно реагировать на изменение условий и значительно снижать стоимость разработки. Однако исторически безопасность и гибкие методики никогда не дружили между собой. Эта книга поможет вам разобраться в том, что такое безопасность, какие существуют угрозы и на каком языке специалисты-безопасники описывают, что происходит. Вы научитесь моделировать угрозы, измерять степень риска, создавать ПО постоянно помня о безопасности. Издание будет полезно всем специалистам, в чьи обязанности входит обеспечение информационной и операционной безопасности организаций, разработчикам, применяющие гибкие методы разработки приложений, для которых Scrum и кайдзен не пустые слова. УДК 004.42 ББК 32.973 Original English language edition published by O’Reilly Media, Inc. Copyright © 2017 Laura Bell, Rich Smith, Michael Brunton-Spall, Jim Bird. All rights reserved. Russianlanguage edition copyright © 2017 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-49193-884-3 (англ.) © 2017 Laura Bell, Rich Smith, Michael Brunton-Spall, Jim Bird. All rights reserved. ISBN 978-5-97060-648-3 (рус.) © Оформление, перевод на русский язык, издание, ДМК Пресс, 2018
Оглавление Предисловие .........................................................................................................................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
Оглавление Непрерывная интеграция .............................................................................................................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
Оглавление Делать риски видимыми ................................................................................................................... 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
Оглавление Инспекция кода на предмет угроз от инсайдеров ..........................................................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