Опубликовано

Новинка: “Стратегия обеспечения безопасности приложений”

Стратегия обеспечения безопасности приложений

Книга представляет собой пошаговое руководство по созданию успешной программы обеспечения безопасности приложений. Предлагается доступное объяснение основ безопасности, способов поиска и устранения уязвимостей веб-приложений,  рассматриваются ключевые аспекты безопасности, включая риски и угрозы, с которыми сталкиваются команды. Рассмотрена разработка эффективной программы безопасности, в том числе создание конвейера DevSecOps, выпуск безопасного кода и реализация безопасности как сервиса. Значительная часть материала посвящена интеграции безопасности в жизненный цикл разработки, способам измерения и показателям эффективности внедрения, а также мерам поддержки программы в рабочем состоянии.

Для разработчиков ПО, ИТ-архитекторов и руководителей проектов

Безопасность приложений – это нечто большее, чем защитный слой, прикрепленный к коду. Настоящая безопасность требует координации методов, людей, инструментов, технологий и процессов на протяжении всего жизненного цикла программного продукта.

Эта книга представляет собой пошаговое руководство по созданию успешной программы обеспечения безопасности приложений. Вы узнаете, как оценить текущую безопасность приложения, определить, предоставляют ли инструменты поставщика то, что вам нужно, а также смоделировать риски и угрозы. Попутно вы узнаете, как обеспечить надежную защиту программного приложения, а также как выстроить эффективный процесс обеспечения безопасности.

Рассмотрены

  • Средства обеспечения безопасности приложений на протяжении всего жизненного цикла разработки
  • Поиск и устранение уязвимостей веб-приложений
  • Создание конвейера DevSecOps
  • Настройка программы безопасности под непрерывное совершенствование

Книгу “Стратегия обеспечения безопасности приложений” можно купить в нашем интенет-магазине.

Краткое оглавление…………………………………………………………………………………. 5

Вступительное слово………………………………………………………………………………. 15

Предисловие…………………………………………………………………………………………… 17

Благодарности……………………………………………………………………………………….. 19

Об этой книге………………………………………………………………………………………… 21

Для кого предназначена эта книга?…………………………………………………………………………………………. 21

Структура книги: путеводитель……………………………………………………………………………………………….. 22

Дискуссионный форум LiveBook……………………………………………………………………………………………… 23

Об авторе……………………………………………………………………………………………….. 25

Об иллюстрации на обложке………………………………………………………………….. 27

Часть I. Определение безопасности приложений……………. 29

Глава 1. Почему нам нужна безопасность приложений?………………………… 31

1.1. Роль программы по обеспечению безопасности приложений………………………………………… 33

1.1.1. Программное обеспечение: от идеи до воплощения в жизнь……………………………….. 34

1.1.2. Насколько важна безопасность приложений?………………………………………………………. 36

1.2. Оценка текущего уровня безопасности приложений………………………………………………………. 37

1.3. Основные причины, по которым создание системы безопасности связано с определенными трудностями            39

Упражнение 1.1………………………………………………………………………………………… 40

1.3.1. Защита программы во время ее выполнения…………………………………………………………. 41

1.3.2. Недостаточно получить выходные данные от инструментов……………………………… 41

1.3.3. Очистка от шума в средствах защиты сигналов……………………………………………………. 42

1.4. Сдвиг вправо по сравнению со сдвигом влево в процессе разработки………………………….. 43

1.4.1. Сдвиг вправо в жизненном цикле программного обеспечения…………………………….. 45

1.4.2. Ошибки при сдвиге вправо………………………………………………………………………………………. 47

1.4.3. Сдвиг влево в жизненном цикле программы………………………………………………………….. 48

1.4.4. Ошибки при сдвиге влево…………………………………………………………………………………………. 51

1.5. Что лучше: сдвиг влево или сдвиг вправо?……………………………………………………………………….. 53

1.6. Безопасности приложений необходимы и вы!…………………………………………………………………. 55

Упражнение 1.2………………………………………………………………………………………… 56

1.6.1. Демократизация защиты приложений……………………………………………………………………. 56

1.6.2. Пользователи — это всего лишь пользователи……………………………………………………… 57

1.7. Примеры сбоев в защите программного обеспечения……………………………………………………… 58

Упражнение 1.3………………………………………………………………………………………… 59

1.7.1. SolarWinds…………………………………………………………………………………………………………………. 59

1.7.2. Accellion…………………………………………………………………………………………………………………….. 60

1.7.3. Фальшивое программное обеспечение…………………………………………………………………… 61

Выводы……………………………………………………………………………………………………………………………………….. 63

Глава 2. Определение проблемы…………………………………………………………….. 65

2.1. Триада CIA………………………………………………………………………………………………………………………….. 66

2.2. Конфиденциальность………………………………………………………………………………………………………….. 66

2.2.1. Политика защиты данных……………………………………………………………………………………….. 67

2.2.2. Данные в состоянии покоя………………………………………………………………………………………. 68

2.2.3. Использование шифрования……………………………………………………………………………………. 71

Упражнение 2.1………………………………………………………………………………………… 72

2.2.4. Транзитные данные………………………………………………………………………………………………….. 74

2.2.5. Шифрование перед передачей данных………………………………………………………………….. 78

2.2.6. Данные во время их использования………………………………………………………………………… 78

2.2.7. Не всё так конфиденциально…………………………………………………………………………………… 79

2.2.8. Зачем мне это нужно?………………………………………………………………………………………………. 80

Упражнение 2.2………………………………………………………………………………………… 81

2.3. Доступность………………………………………………………………………………………………………………………… 81

2.3.1. DoS- и DDoS-атаки……………………………………………………………………………………………………. 82

2.3.2. Аварийное отключение……………………………………………………………………………………………. 83

2.3.3. Роль программ-вымогателей…………………………………………………………………………………… 84

2.3.4. Ставки в казино в автономном режиме…………………………………………………………………… 85

2.3.5. Организации здравоохранения всё еще становятся объектом охоты…………………. 86

2.3.6. Повышение отказоустойчивости…………………………………………………………………………….. 86

2.4. Целостность…………………………………………………………………………………………………………………………. 88

2.4.1. Обеспечение целостности начинается с организации доступа…………………………… 89

2.4.2. Роль системы контроля версий……………………………………………………………………………….. 91

2.4.3. Проверка достоверности данных……………………………………………………………………………. 92

2.4.4. Репликация данных………………………………………………………………………………………………….. 93

2.4.5. Проверка данных……………………………………………………………………………………………………… 93

2.5. Аутентификация и авторизация…………………………………………………………………………………………. 94

2.5.1. Аутентификация……………………………………………………………………………………………………….. 95

2.5.2. Авторизация……………………………………………………………………………………………………………… 95

2.6. Противники………………………………………………………………………………………………………………………….. 96

2.6.1. Скрипт-кидди……………………………………………………………………………………………………………. 96

2.6.2. Инсайдер…………………………………………………………………………………………………………………… 97

2.6.3. Киберпреступники……………………………………………………………………………………………………. 98

2.6.4. Хактивисты и террористы……………………………………………………………………………………….. 99

2.6.5. Постоянная серьезная угроза………………………………………………………………………………….. 99

2.6.6. Зачем нам это нужно?……………………………………………………………………………………………. 100

2.7. Оценка риска……………………………………………………………………………………………………………………… 101

2.7.1. Исправление, уменьшение, допустимость……………………………………………………………. 102

2.7.2. Определение риска…………………………………………………………………………………………………. 103

2.7.3. Оценка вероятности……………………………………………………………………………………………….. 103

2.7.4. Оценка воздействия………………………………………………………………………………………………… 105

2.7.5. Степень риска…………………………………………………………………………………………………………. 106

2.7.6. Пример риска………………………………………………………………………………………………………….. 106

Упражнение 2.3………………………………………………………………………………………. 108

2.7.7. Другие методики…………………………………………………………………………………………………….. 108

Выводы……………………………………………………………………………………………………………………………………… 109

Глава 3. Компоненты безопасности приложений…………………………………. 111

3.1. Моделирование угроз………………………………………………………………………………………………………. 112

3.1.1. Основные термины, применяемые в процессе моделирования угроз………………… 113

3.1.2. Ручное моделирование угроз………………………………………………………………………………… 115

3.1.3. Запуск процесса моделирования вручную………………………………………………………….. 117

3.1.4. Моделирование угроз с привязкой банковских счетов………………………………………. 118

3.1.5. Как поступить с обнаруженными угрозами?………………………………………………………. 120

3.1.6. Использование инструментов для моделирования угроз…………………………………… 123

Упражнение 3.1………………………………………………………………………………………. 125

3.2. Инструменты для анализа безопасности……………………………………………………………………….. 125

3.2.1. Статическое тестирование безопасности приложений………………………………………. 127

3.2.2. Инструменты для работы в среде разработки…………………………………………………….. 129

3.2.3. Динамическое тестирование безопасности приложений…………………………………… 131

3.2.4. Анализ состава программного обеспечения……………………………………………………….. 133

Упражнение 3.2………………………………………………………………………………………. 136

3.3. Тест на проникновение…………………………………………………………………………………………………….. 136

Упражнение 3.3………………………………………………………………………………………. 136

3.4. Средства защиты, применяемые во время выполнения программы…………………………….. 138

3.5. Сбор информации об уязвимостях и определение приоритетов………………………………….. 141

3.5.1. Интеграция с инструментами отслеживания дефектов………………………………………. 141

3.5.2. Определение приоритетности уязвимостей…………………………………………………………. 143

3.5.3. Устранение уязвимостей……………………………………………………………………………………….. 143

3.6. Программы вознаграждения за выявленные ошибки и раскрытие информации об уязвимостях 144

3.6.1. Программа VDP………………………………………………………………………………………………………. 145

3.6.2. Программа BBP………………………………………………………………………………………………………. 146

3.6.3. Помощь в устранении уязвимостей от независимых разработчиков………………… 146

Упражнение 3.4………………………………………………………………………………………. 147

3.7. Собираем все вместе…………………………………………………………………………………………………………. 147

Выводы……………………………………………………………………………………………………………………………………… 150

Часть II. Разработка программы по обеспечению безопасности приложений…………………………………………………………………………………………………………….. 151

Глава 4. Создание безопасного кода…………………………………………………….. 153

4.1. Безопасность в DevOps…………………………………………………………………………………………………….. 155

4.1.1. Конвейеры DevOps…………………………………………………………………………………………………. 155

4.2. DevOps — не единственная игра на площадке………………………………………………………………. 157

4.2.1. Методология Waterfall…………………………………………………………………………………………… 157

4.2.2. Методология Agile………………………………………………………………………………………………….. 159

4.2.3. Методология Lean………………………………………………………………………………………………….. 162

4.2.4. DevOps лучше обеспечивает поддержку безопасности……………………………………… 165

4.2.5. Пример DevSecOps…………………………………………………………………………………………………. 168

4.3. Инструменты обеспечения безопасности приложений, применяемые на стадии разработки       170

4.3.1. Моделирование угроз в DevSecOps………………………………………………………………………. 170

4.3.2. SAST в DevSecOps…………………………………………………………………………………………………… 172

4.3.3. DAST и IAST в DevSecOps……………………………………………………………………………………… 174

4.3.4. SCA в DevSecOps…………………………………………………………………………………………………….. 179

4.3.5. Защита во время работы в DevSecOps………………………………………………………………….. 181

4.3.6. Оркестровка безопасности……………………………………………………………………………………. 183

4.3.7. Образование в сфере безопасности………………………………………………………………………. 185

4.4. Обратная связь………………………………………………………………………………………………………………….. 186

Выводы……………………………………………………………………………………………………………………………………… 188

Глава 5. Безопасность — дело каждого………………………………………………… 189

5.1. Безопасность — это общая проблема…………………………………………………………………………….. 190

5.1.1. Структура команды по безопасности приложений…………………………………………….. 191

Упражнение 5.1………………………………………………………………………………………. 192

5.1.2. Просто наймите больше специалистов по безопасности приложений……………… 193

5.1.3. Как ликвидировать разрыв?………………………………………………………………………………….. 195

5.2. Обучение в сфере безопасности………………………………………………………………………………………. 195

5.2.1. Повышение интеллектуального уровня в сфере обеспечения безопасности……. 197

5.2.2. Микрообучение и обучение по мере необходимости…………………………………………. 198

5.2.3. Это гораздо больше, чем просто обучение………………………………………………………….. 202

5.3. Стандарты, требования и эталонная архитектура……………………………………………………….. 203

5.3.1. Создание стандартов и их внедрение…………………………………………………………………… 204

Упражнение 5.2………………………………………………………………………………………. 207

5.3.2. Создание эталонной архитектуры……………………………………………………………………….. 207

5.3.3. Внесение требований в организацию…………………………………………………………………… 211

Упражнение 5.3………………………………………………………………………………………. 211

5.4. Модели зрелости………………………………………………………………………………………………………………. 212

5.4.1. Модель зрелости SAMM от OWASP…………………………………………………………………….. 212

5.4.2. Модель зрелости BSIMM………………………………………………………………………………………. 216

5.4.3. Решение проблем незрелости вашей безопасности…………………………………………….. 220

5.5. Децентрализованная защита приложений……………………………………………………………………… 221

5.5.1. Программа чемпионов по безопасности………………………………………………………………. 222

5.5.2. Эффективное использование децентрализованной модели……………………………….. 224

Выводы……………………………………………………………………………………………………………………………………… 226

Глава 6. Безопасность приложений как услуга…………………………………….. 227

6.1. Управление рисками в процессе разработки…………………………………………………………………. 228

6.1.1. Определение и снижение риска…………………………………………………………………………….. 229

6.1.2. Определение риска приложения…………………………………………………………………………… 230

6.1.3. Распределение по степени риска………………………………………………………………………….. 234

Упражнение 6.1………………………………………………………………………………………. 236

6.2. Безопасный выпуск вместо блокировок………………………………………………………………………….. 240

6.2.1. Автоматизация выпуска с учетом степени риска………………………………………………… 241

6.2.2. Устранение барьеров с помощью установки ограждений…………………………………. 242

6.3. Объединение инженерных решений и требований безопасности на основе предложения услуг 244

6.3.1. Экосистема безопасности приложений как услуга…………………………………………….. 246

Упражнение 6.2………………………………………………………………………………………. 249

6.3.2. Услуги, запрашиваемые с использованием заявок……………………………………………… 249

6.3.3. Обеспечение общей безопасности приложений………………………………………………….. 252

Выводы……………………………………………………………………………………………………………………………………… 255

Часть III. Внедрение и оценка………………………………………………….. 257

Глава 7. Разработка плана действий…………………………………………………….. 259

7.1. Определение текущего уровня безопасности…………………………………………………………………. 260

7.1.1. Начинаем наше путешествие………………………………………………………………………………… 260

7.1.2. Какими инструментами вы сможете воспользоваться?………………………………………. 262

7.1.3. Какие уязвимости есть в вашей организации?…………………………………………………….. 266

7.1.4. Какая дополнительная информация вам доступна?…………………………………………… 269

7.2. Определение целей организации в области безопасности……………………………………………. 270

7.2.1. Цели организации…………………………………………………………………………………………………… 271

7.2.2. Цели обеспечения безопасности приложений…………………………………………………….. 272

7.2.3. Согласование целей бизнеса и безопасности……………………………………………………… 273

7.3. Выявление недостатков……………………………………………………………………………………………………. 274

7.3.1. Выявление существующих недостатков………………………………………………………………. 275

7.3.2. Вводные данные для анализа недостатков…………………………………………………………. 277

7.3.3. Как поступать с результатами анализа недостатков?……………………………………….. 279

7.4. Образец плана действий по обеспечению безопасности приложений………………………… 281

7.4.1. Инженерное образование в области безопасности…………………………………………….. 282

7.4.2. Обучение команды по обеспечению безопасности приложений………………………. 285

7.4.3. Программа развития средств защиты приложений…………………………………………….. 287

7.4.4. Согласование планов действий инженерных команд и службы безопасности приложений             289

7.4.5. Планы на будущее…………………………………………………………………………………………………. 291

Упражнение 7.1………………………………………………………………………………………. 293

Выводы……………………………………………………………………………………………………………………………………… 295

Глава 8. Оценка эффективности…………………………………………………………… 297

8.1. Что нам нужно измерять?…………………………………………………………………………………………………. 298

8.1.1. Измерение эффективности ваших инструментов…………………………………………………. 299

8.1.2. Настройка инструментов с учетом обратной связи……………………………………………. 300

8.1.3. Измерение эффективности процессов безопасности…………………………………………… 303

8.1.4. Измерение среднего времени восстановления…………………………………………………….. 304

8.1.5. Оптимизация среднего времени устранения уязвимостей………………………………….. 305

8.2. Использование ключевых показателей эффективности………………………………………………… 307

8.2.1. Создание ключевых показателей эффективности……………………………………………….. 308

8.2.2. Отслеживание ключевых показателей эффективности………………………………………. 310

8.2.3. Реализация изменений на основе ключевых показателей эффективности……….. 311

Упражнение 8.1………………………………………………………………………………………. 314

8.3. Обратная связь………………………………………………………………………………………………………………….. 314

8.3.1. Получение обратной связи в ходе бесед………………………………………………………………. 315

8.3.2. Получение обратной связи с помошью опросов…………………………………………………. 316

8.4. Карта показателей безопасности……………………………………………………………………………………. 318

8.4.1. Подготовка к созданию карты показателей безопасности………………………………… 319

Упражнение 8.2………………………………………………………………………………………. 320

8.4.2. Определение значений баллов для карты показателей безопасности……………… 322

8.4.3. Создание карты показателей безопасности………………………………………………………… 323

Упражнение 8.3………………………………………………………………………………………. 324

Выводы……………………………………………………………………………………………………………………………………… 325

Глава 9. Дальнейшее совершенствование программы………………………….. 327

9.1. Опережать атакующего……………………………………………………………………………………………………. 328

9.1.1. Матрица MITRE…………………………………………………………………………………………………….. 329

Разведка………………………………………………………………………………………………………………….. 329

Ресурсы, доступ и выполнение…………………………………………………………………………….. 330

Постоянное присутствие, повышение привилегий и попытки уклонения от блокировки   330

Поиск учетных данных и получение доступа к ним………………………………………….. 331

Сбор информации и горизонтальное перемещение……………………………………………. 331

Командно-контрольная деятельность и эксфильтрация……………………………………. 331

Воздействие……………………………………………………………………………………………………………. 332

9.1.2. Система Cyber Kill Chain……………………………………………………………………………………….. 332

Разведка………………………………………………………………………………………………………………….. 333

Создание и доставка средства атаки…………………………………………………………………… 333

Внедрение и эксплуатация…………………………………………………………………………………… 334

Командно-контрольная деятельность…………………………………………………………………. 334

9.2. Каталоги угроз………………………………………………………………………………………………………………….. 335

9.2.1. Первая десятка уязвимостей из каталога угроз OWASP…………………………………….. 336

Идентификация уязвимостей из списка первой десятки OWASP………………………. 337

Использование первой десятки OWASP для проведения тестов на проникновение 338

Использование первой десятки OWASP для определения эффективности инструментов  338

Использование первой десятки OWASP для разработки требований………………. 338

Стандарт проверки безопасности приложений OWASP……………………………………. 338

9.2.2. Первые 25 уязвимостей из каталога угроз MITRE CWE…………………………………….. 340

9.3. Опережающее развитие инженерной мысли………………………………………………………………….. 342

9.3.1. Идти в ногу с языками программирования…………………………………………………………… 342

9.3.2. Идти в ногу с технологическими изменениями……………………………………………………. 343

9.3.3. Когда набор персонала и обучение сталкиваются с затруднениями……………….. 345

Построение партнерских отношений с инженерной службой организации……. 345

Взаимозаменяемые инструменты………………………………………………………………………… 346

9.4. Перестаньте гнаться за новым суперинструментом………………………………………………………. 347

9.4.1. Использование матрицы возможностей……………………………………………………………….. 348

9.4.2. Работа с инструментами и их поставщиками……………………………………………………… 350

9.4.3. Купите новый суперинструмент…………………………………………………………………………… 351

9.5. Готовьтесь к самому худшему…………………………………………………………………………………………. 352

Выводы……………………………………………………………………………………………………………………………………… 356

ПРИЛОЖЕНИЕ. Ответы на упражнения……………………………………………… 357

Глава 1……………………………………………………………………………………………………………………………………… 357

Упражнение 1.1………………………………………………………………………………………………………………… 357

Упражнение 1.2………………………………………………………………………………………………………………… 357

Упражнение 1.3………………………………………………………………………………………………………………… 358

Глава 2……………………………………………………………………………………………………………………………………… 358

Упражнение 2.1………………………………………………………………………………………………………………… 358

Упражнение 2.2………………………………………………………………………………………………………………… 358

Упражнение 2.3………………………………………………………………………………………………………………… 359

Глава 3……………………………………………………………………………………………………………………………………… 360

Упражнение 3.1………………………………………………………………………………………………………………… 360

Упражнение 3.2………………………………………………………………………………………………………………… 360

Упражнение 3.3………………………………………………………………………………………………………………… 361

Упражнение 3.4………………………………………………………………………………………………………………… 361

Глава 5……………………………………………………………………………………………………………………………………… 361

Упражнение 5.1………………………………………………………………………………………………………………… 361

Упражнение 5.2………………………………………………………………………………………………………………… 362

Упражнение 5.3………………………………………………………………………………………………………………… 362

Глава 6……………………………………………………………………………………………………………………………………… 362

Упражнение 6.1………………………………………………………………………………………………………………… 362

Упражнение 6.2………………………………………………………………………………………………………………… 363

Глава 7……………………………………………………………………………………………………………………………………… 363

Упражнение 7.1………………………………………………………………………………………………………………… 363

Глава 8……………………………………………………………………………………………………………………………………… 363

Упражнение 8.1………………………………………………………………………………………………………………… 363

Упражнение 8.2………………………………………………………………………………………………………………… 363

Упражнение 8.3………………………………………………………………………………………………………………… 364

Предметный указатель…………………………………………………………………………. 365

 

Добавить комментарий