Ломать и строить. PHDays 2015

34
ЛОМАТЬ И СТРОИТЬ, И СНОВА ЛОМАТЬ Алексей Качалин ЗАО «Перспективный Мониторинг»

Transcript of Ломать и строить. PHDays 2015

Page 1: Ломать и строить. PHDays 2015

ЛОМАТЬ И СТРОИТЬ,

И СНОВА ЛОМАТЬ

Алексей КачалинЗАО «Перспективный

Мониторинг»

Page 2: Ломать и строить. PHDays 2015
Page 3: Ломать и строить. PHDays 2015

104

Page 4: Ломать и строить. PHDays 2015

ЕСЛИ нас «сломают»

КОГДА нас «сломают»

Page 5: Ломать и строить. PHDays 2015

ПОЛЬЗОВАТЕЛЬ

ПРОИЗВОДИТЕЛЬ

РЕГУЛЯТОРИССЛЕДОВАТЕЛЬ

НЕН

АВИ

СТЬ

Page 6: Ломать и строить. PHDays 2015
Page 7: Ломать и строить. PHDays 2015

О себе/О нас

О себе:

Занимаюсь исследованиями и разработкой в ИБ

ЗАО «ПМ»

Аналитический и инструментальный анализ ПО и ИС

С 2012 года – работаем по направлению повышения безопасности разработки

В 2014 запустили ЦМПринимаем участие в работе с регуляторами ИБ

Page 8: Ломать и строить. PHDays 2015

О чём речь?

Наш опыт проведения работ по взлому повышению защищённости разработки

Проблемы интеграции исследований ИБ в цикл работ по созданию и обслуживанию ПО/ИС

Дополнительные процессы и системы, полезные в нашей борьбе

Page 9: Ломать и строить. PHDays 2015

ИБ-портрет: Разработчик СЗИ

Компания – актуальны все угрозы для организаций и сотрудников

Отрасль ИБ – активно вовлечен в противоборство ИБ

Клиенты – информация о СЗИ, доступ, доверие

Продукт – системный, инфраструктурный компонент ИС

Page 10: Ломать и строить. PHDays 2015

04/15/2023 10

Жизненный цикл разработки ПО*: где ИБ?

ПроектированиеТребования

РазработкаТестирование

ВыпускЭксплуатация

Сертификация

Вывод из эксплуатации

*Аналогичная ситуация с• Итеративными моделями разработки• Моделью непрерывного размещения

Page 11: Ломать и строить. PHDays 2015

Безопасная разработка продукта

Мониторинг и реагирование Проверка и выпуск продукта Разработка Проектирование Требования Подготовка и обучение

разработчиков Внедрение практик разработки

Page 12: Ломать и строить. PHDays 2015

Что «вкусного» есть в ИС разработчика?

Системы учёта ошибок и улучшений

Системы версионного хранения кода

Системы хранения жалоб потребителей

Системы подготовки обновлений

------------------------------------------------------

Идеально для инжинерии атак

Page 13: Ломать и строить. PHDays 2015

Открытость инфраструктуры

Подключение к сетям заказчиков

Тестовые устройства на периметре

Необходимость загружать и тестировать недоверенное ПО

Организация методов обновления Продукта

Page 14: Ломать и строить. PHDays 2015

Разработчик СЗИ - ценная мишень

Интересны для атакующих «высоких классов», воспринимаются как активные участники государственной политики, представители интересов государства

Продукт : Исходники и собранное ПО для исследования, алгоритмы

Технологические мощности: сборочные сервера - возможность злоумышленнику собрать свою «подлинную» версию СЗИ, сетевые и серверные мощности

Эксплуатация доверия - Рассылка писем/переписка от имени доверенной организации, люди – сотрудники, внешние контакты

База установки Продукта: Контрактная документация, Сервисные подразделения

Page 15: Ломать и строить. PHDays 2015

Собственная безопасность разработчика

Регулярный аудит ИБ ИС

Центр Мониторинга

Page 16: Ломать и строить. PHDays 2015

Развитие мониторинга и реагирования

Технический анализ (состояние узлов, трафик, журналы)

Обнаружить публикацию информации об уязвимости

Публикация информации об уязвимости в компоненте/продукте

Сети обмена информацией об уязвимостях

Получить и интерпретировать обращения пользователей

Сообщения о «странном поведении программы» (нет явного подозрения на проблемы ИБ)

Попытки шантажа и ультиматумы, оскорбления и троллинг

Готовый метод компрометации ИБ (пошаговый, в виде PoCE)

Внутренние сообщение от разработчика – обратить внимание

Указания на строчку кода

Развёрнутый анализ с обоснованием неизбежности уязвимости

Page 17: Ломать и строить. PHDays 2015

Тестирование и тестирование

Анализ ИБ – безусловно один из видов тестирования продуктов

Свои методики и тест-планы

Автоматизация

Инструментарий (инструкции к общему инструментарию)

Работающий вариант: разработка автотестов для передачи в отдел тестирования

Page 18: Ломать и строить. PHDays 2015

Ловушки для исследователя

Не читать документацию

Переписать документацию

Не согласовывать цели/прогресс с заказчиком

Не осознать зоны ответственности заинтересованных лиц

Page 19: Ломать и строить. PHDays 2015
Page 20: Ломать и строить. PHDays 2015

Готовы ли разработчики?

Выбор инструментов и компонентов

Удобство среды разработки

Использование знакомых компонентов

Борьба с унаследованным кодом

«Безопасное программирование» это достаточное ИБ?

Утечки памяти, переполнение буфера, падения/повисания

Безопасные опции компилятора

Инструменты те же, а сценарии нет

Практики управления

Менеджер форсирует: бюджет, сроки, функционал

Page 21: Ломать и строить. PHDays 2015

Безопасная разработка: есть рецепты

Опыт«первопроходцев»

Теория

Практика Инструменты

Page 22: Ломать и строить. PHDays 2015

22

Полнота требований: Ваш лог не вреден полезен для ИБ?

Page 23: Ломать и строить. PHDays 2015

Модель угроз и нарушителя. Теперь в 3D

Page 24: Ломать и строить. PHDays 2015

24

Цели внедрения безопасной разработки

Осязаемые результаты: отдача от инвестиций в безопасность

Возврат инвестиций

ПО финансовых, подверженных фроду систем – возможно

Снижение количества инцидентов и уязвимостей

Снижение «стоимости» уязвимости

Оперативность реагирования на инциденты

Встраивание в существующий процесс разработки (заказа и эксплуатации ПО)

Существующие продукты и компоненты

Вовлечение команды (мотивация исполнителя и легитимизация затрат) на дополнительные практики ИБ

Page 25: Ломать и строить. PHDays 2015

25

Стратегия внедрения безопасной разработки (наивный алгоритм)

Page 26: Ломать и строить. PHDays 2015

Вот и договоритесь о приоритетахПроекты разработки

Продукты

Клиентские проекты

Page 27: Ломать и строить. PHDays 2015

Безопасность 2.0

Необходимая скорость реакции

Сократить окно уязвимости (Window of Vulnerability)

Локализовать и ограничить инцидент

Выявить первопричину уязвимости (ошибку)

Разработать исправление

Не позволяющее «обойти» себя

Или атаковать аналогичную уязвимость

Надежно устранить уязвимости, «не вернуть» ошибку в будущем

Page 28: Ломать и строить. PHDays 2015

Что блокирует внедрение исследований ИБ

Слабая прогнозируемость по срокам

Непредсказуемость по результатам

Отсутствие гарантий полноты исследований

Отсутствие сходимости исследований

Проблема повторных исследований

Потребность: непрерывный адаптируемый процесс с управляемыми характеристиками

Page 29: Ломать и строить. PHDays 2015

Цикл Безопасной Разработки Свод Знаний

Домены (Разделы) практик Мониторинг и реагирование

Проверка и выпуск продукта

Разработка

Проектирование

Требования

Сторонние компоненты

Соответствие требованиям регуляторов

Инструменты и системы разработки

Подготовка команды

Page 30: Ломать и строить. PHDays 2015

Безопасность – командный вид спорта?

Менеджер продукта

Руководитель разработки

Аналитик

Архитектор

Программист

Тестировщик

Специалист сопровождения

Хакер

Хакер

Хакер

Хакер

Хакер

Хакер

Хакер

Page 31: Ломать и строить. PHDays 2015

Не только сертификация

УБИ ФСТЭК СОПКА

ФСБ

ГОСТ поРазработкеФСТЭК

Page 32: Ломать и строить. PHDays 2015

Знать «свои» слабости

32

The CVE Identifier CVE-2014-0160 was released on April 7, 2014—the same day the Heartbleed bug was made public.

This type of weakness is described in detail by CWE-130: Improper Handling of Length Parameter Inconsistency. The second weakness is an out-of-bounds memory read, which is described inCWE-125: Out-of-Bounds Read. These CWEs were first defined more than eight years ago

CAPEC-540: Overread Buffers defines the general pattern commonly used by an attacker including how the attack is crafted, its potential severity and consequences

Page 33: Ломать и строить. PHDays 2015

Выстроить чтобы ломать

Исследователи и программисты

Инструменты и методика

База знаний и терминология (язык общения)

Автоматизация консистентных процессов

Процесс безопасной разработки

Средства и процесс мониторинга

Page 34: Ломать и строить. PHDays 2015

Начать с того что имеете

Использовать доступное

Делать возможное

Качалин АлексейДиректор ЗАО «ПМ»

@kchln [email protected]