Безопасность разработки в 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. Russian- language 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
Оглавление Посмертный анализ без поисков виновного: обучение на инцидентах безопасности .............................................................................................................................. 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
Предисловие Программы правят миром. Разработчики стали новыми «делателями королей». Благодаря интернету вещей компьютер скоро появится в каждой лампочке. Все это означает, что скоро программы настолько глубоко проникнут в нашу жизнь, что для большинства людей до ближайшего компьютера будет буквально рукой подать, и постоянное взаимодействие с предметами и окружением, управляемыми компьютерами, войдет у нас в привычку. Но в таком мире нас подстерегают опасности. В старом добром мире безопасность всерьез рассматривалась только в банковских и правительственных системах. Однако повсеместное распространение компью теров повышает потенциальную выгоду от их неправомерного использования, что, в свою очередь, создает стимулы для такого использования и, стало быть, повышает риски, с которыми сталкиваются системы. В большинстве организаций стремительно принимают на вооружение гибкие (agile) методики разработки. Они позволяют своевременно реагировать на изменение условий и значительно снижать стоимость разработки, поэтому задают стандарт, который, как мы ожидаем, будет распространяться все шире, и в конечном итоге большая часть программ будет создаваться с помощью гибких методик. Однако исторически безопасность и гибкие методики никогда не дружили между собой. Специалисты по безопасности по горло заняты уже упомянутыми системами для государственных учреждений, банков и электронной коммерции – их архитектурой, тестированием и защитой, – и все это перед лицом непрерывно совершенствующихся угроз. То, что часто представляют самым интересным и захватывающим в области безопасности, то, о чем пишут в технических блогах и говорят в ночных новостях, делается командами профессиональных хакеров, специализирующихся на исследовании уязвимостей, разработке эксплойтов и ошеломительных взломах. Наверняка вы сможете назвать несколько уязвимостей, бывших на слуху в последнее время: Heartbleed, Logjam или Shellshock (или еще каких-нибудь, с которыми на приведи бог столкнуться), или припомнить названия команд, которым удалось «разлочить» последние модели
Кому стоит прочитать эту книгу? 15 устройств на основе iPhone и Android. Но когда в последний раз вы слыхали о новом средстве или методике защиты – с запоминающимся, интересным для СМИ названием? А знаете ли вы имя создателя этой методики? Профессионалы в области безопасности отстают в понимании и опыте применения гибких методик, и этот разрыв несет серьезные риски для нашей отрасли. С другой стороны, гибкие команды отбросили стесняющие оковы прошлого. Нет больше детальных технических требований, нет системного моделирования, не стало каскадной модели (модели «водопада») с ее традиционными этапами и контролем их выполнения. Беда в том, что гибкие команды вместе с водой выплеснули и ребенка. Старые методики, пусть даже иногда медленные и негибкие, доказали свою ценность. Они создавались не без причины, а отказавшись от них, гибкие команды рискуют забыть, в чем состояла эта ценность, и выбросить все достижения на свалку. Поэтому гибкие команды редко относятся к безопасности, как должно. Некоторые гибкие практики позволяют получить чуть более безопасные системы, но зачастую это благоприятный побочный эффект, а не цель. И лишь очень немногие гибкие команды понимают угрозы, с которыми может столкнуться система, а большинство не понимает рисков, не отслеживает их и не делает ничего, чтобы управлять ими. Они даже слабо представляют, кто вообще атакует плоды их труда. Кому стоит прочитать эту книгу? Мы не знаем, кто вы: руководитель гибкой команды или разработчик, желающий больше узнать о безопасности. Быть может, вы – «безопас- ник», который только что узнал о существовании доселе неведомой ему группы разработчиков и хотел бы разобраться, чем она занята. При написании этой книги мы имели в виду три потенциальные группы читателей. Разработчики, применяющие гибкие методы Вы жизни не мыслите без гибкой разработки. Scrum и кайдзен – для вас не пустые слова, разработка через тестирование вошла в плоть и кровь. Не важно, какую конкретную роль вы играете – Scrum-мастер, разработчик, тестировщик, тренер, владелец продукта или представитель заказчика, – вы владеете гибкими практиками и понимаете, в чем их ценность.
Предисловие Эта книга поможет вам разобраться в том, что такое безопасность, какие существуют угрозы и на каком языке специалисты-безопасники описывают, что происходит. Мы научим вас моделировать угрозы, измерять степень риска, создавать ПО, помня о безопасности, безопасно устанавливать ПО и оценивать, какие проблемы (в плане безопасности) могут возникать в процессе его эксплуатации. Специалист по безопасности Если вы риск-менеджер, специалист по обеспечению целостности и безопасности информации (information assurance) или по анализу операционной безопасности, то что такое безопасность, вы понимаете. Наверное, вы с осторожностью подходите к использованию онлайновых служб, постоянно думаете об угрозах, рисках и формах их проявления, возможно, даже сами находили новые уязвимости и разрабатывали эксплойты для них. Эта книга поможет вам понять, как работают гибкие команды и что, наконец, такое спринты и истории, о которых они все время толкуют. Вы научитесь видеть порядок в хаосе, и это поможет взаимодействовать с командой и влиять на нее. Эта книга покажет, где следует вмешаться или внести свой вклад, чтобы он оказался наиболее ценным для команды и дал наилучший эффект. Специалист по гибким методикам обеспечения безопасности Вы знаете все – от рисков до спринтов. Будь вы разработчиком инструментальных средств, который хочет помочь команде правильно подойти к безопасности, или консультантом, оказывающим команде платные услуги, эта книга и для вас тоже. Главное в ней – уяснить то, что авторы называют возрастанием доли правильной практики. Эта книга поможет вам узнать, кто работает с вами по соседству, а также составить представление об идеях, размышлениях и концепциях, которые, как мы видим, прорастают в организациях, работающих над этой проблематикой. Мы дадим широкий обзор предмета, чтобы вы смогли решить, чем заняться или что изучить дальше. О структуре книги Книгу можно читать от корки до корки, по одной главе за раз. Собственно, так мы и рекомендуем поступить; мы приложили немало трудов и
О структуре книги 17 надеемся, что в каждой главе любой читатель найдет что-то полезное для себя, пусть даже это будут просто наши незатейливые шутки и забавные рассказы! Но, честно говоря, мы полагаем, что некоторые главы окажутся для вас полезнее, чем другие. Книга разбита на три большие части. Часть 1. Основы Гибкая разработка и безопасность – очень широкие дисциплины, и мы не знаем, что вам уже известно. А если вы специализируетесь в одной области, то вполне возможно, что знаний и опыта из другой вам недостает. Если вы специалист по гибкой разработке, то рекомендуем сначала прочитать главу 1 «Начала безопасности», из которой вы получите базовые сведения о безопасности. Если раньше вы вообще не занимались гибкой разработкой или делае- те первые шаги на этом пути, то, прежде чем переходить к введению в эту тему, рекомендуем прочитать главу 2 «Элементы гибких методик». В главе 3 «Революция в методах разработки – присоединяйтесь!» описывается история гибкой разработки программного обеспечения и различные подходы к ней. Эта глава будет особенно интересна специалистам по безопасности и людям, еще не имеющим практического опыта. Часть 2. Гибкая разработка и безопасность Затем мы рекомендуем всем без исключения прочитать главу 4 «Работа с существующим гибким жизненным циклом». В этой главе производится попытка соединить рассматриваемую нами практическую безопасность с реальным жизненным циклом гибкой разработки и объяснить, как они сочетаются. В главах 5–7 разбирается управление требованиями и уязвимостью, а также управление рисками. Это общие принципы, лежащие в основе управления продуктом и планирования разработки. В главах 8–13 рассматриваются различные аспекты жизненного цикла разработки безопасного программного обеспечения: оценка угроз, инспекция кода, тестирование и операционная безопасность. Часть 3. Собираем все вместе В главе 14 рассматривается соответствие нормативным требованиям и их учет в средах гибкой разработки и DevOps.
Предисловие Глава 15 посвящена культурным аспектам безопасности. Да, вы могли бы реализовать все описанные в книге практики, и в предшествующих главах описаны разнообразные средства, позволяющие затвердить новые подходы. Но гибкие методики – это в первую очередь о людях, и то же самое верно в отношении эффективных путей обеспечения безопасности: безопасность – это внутренне осознанное изменение культуры поведения, и в этой главе вы приведем примеры приемов, которые оказались эффективны на практике. Чтобы изменить отношение компании к безопасности, необходимы взаимная поддержка и уважение безопасников и разработчиков. Чтобы создать безопасный продукт, требуется их тесное взаимодействие. Этого невозможно добиться только путем внедрения набора средств и практик, изменения должны пронизывать всю организацию. Наконец, в главе 16 рассматривается вопрос о том, что разные люди понимают под «гибкой безопасностью», и подводится итог опыту авторов: что у них получалось и что не получалось при попытке создать команды, сочетающие одновременно гибкость и безопасность. Графические выделения В книге применяются следующие графические выделения: Курсив Новые термины, URL-адреса, адреса электронной почты, имена и расширения имен файлов. Моноширинный шрифт Листинги программ, а также элементы кода в основном тексте: имена переменных и функций, базы данных, типы данных, переменные окружения, предложения и ключевые слова языка. Знак в конце строки кода означает, что код продолжается на следующей строке. Моноширинный полужирный шрифт Команды и другой текст, который пользователь должен вводить буквально. Моноширинный курсив Текст, вместо которого следует подставить значения, заданные пользователем или определяемые контекстом.
Благодарности 19 Так обозначается совет или рекомендация. Так обозначается примечание общего характера. Так обозначается предупреждение или предостережение. Как с нами связаться Вопросы и замечания по поводу этой книги отправляйте в издательство: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 800-998-9938 (в США и Канаде) 707-829-0515 (международный или местный) 707-829-0104 (факс) Для этой книги создана веб-страница, на которой публикуются сведения о замеченных опечатках, примеры и разного рода дополнительная информация. Адрес страницы http://bit.ly/agile-application-security. Замечания и вопросы технического характера следует отправлять по адресу bookquestions@oreilly.com. Дополнительную информацию о наших книгах, конференциях и новостях вы можете найти на нашем сайте по адресу http://www.oreilly.com. Читайте нас на Facebook: http://facebook.com/oreilly. Следите за нашей лентой в Twitter: http://twitter.com/oreillymedia. Смотрите нас на YouTube: http://www.youtube.com/oreillymedia. Благодарности Прежде всего мы благодарны нашим замечательным редакторам: Кортни Аллен, Вирджинии Уилсон и Нэн Барбер. Мы не смогли бы довести это дело до конца без вас и всего коллектива издательства O’Reilly.
Доступ онлайн
В корзину