5. Сколько можно исследовать ИБ?
0
5
10
15
20
25
30
35
2011 2012 2013 2014
ПРИМЕРНО ЛЮБОЙ ОТЧЕТ О
ПЕРИОДИЧЕСКОМ АНАЛИЗЕ ИБ
Критических уязвимостей Найдено новых Закрыто уязвимостей
8. О себе/О нас
О себе:
Занимаюсь исследованиями и
разработкой в ИБ
ЗАО «ПМ»
Аналитический и
инструментальный анализ ПО и
ИС
С 2012 года – работаем по
направлению повышения
безопасности разработки
В 2014 запустили ЦМ
Принимаем участие в работе с
регуляторами ИБ
9. О чём речь?
Наш опыт проведения работ по взлому
повышению защищённости разработки
Проблемы интеграции исследований ИБ в
цикл работ по созданию и обслуживанию
ПО/ИС
Дополнительные процессы и системы,
полезные в нашей борьбе
10. ИБ-портрет: Разработчик (СЗИ)
Компания – актуальны все угрозы для
организаций и сотрудников
Отрасль ИБ – активно вовлечен в
противоборство ИБ
Клиенты – информация о СЗИ, доступ,
доверие
Продукт – системный, инфраструктурный
компонент ИС
11. Жизненный цикл разработки ПО*: где ИБ?
03.06.2015 11
Проектирование
Требования
Разработка
Тестирование
Выпуск
Эксплуатация
Сертификация
Вывод из эксплуатации
*Аналогичная ситуация с
• Итеративными моделями разработки
• Моделью непрерывного размещения
12. Безопасная разработка продукта
Мониторинг и реагирование
Проверка и выпуск продукта
Разработка
Проектирование
Требования
Подготовка и обучение
разработчиков
Внедрение практик
разработки
13. Что «вкусного» есть в ИС разработчика?
Системы учёта ошибок и улучшений
Системы версионного хранения кода
Системы хранения жалоб потребителей
Системы подготовки обновлений
------------------------------------------------------
Идеально для инжинерии атак
14. Можно грабить караваныTM
Подключение к сетям заказчиков
Тестовые устройства на периметре
Необходимость загружать и тестировать
недоверенное ПО
Организация методов
обновления Продукта
Продукт в конце концов
15. Разработчик СЗИ – интересная мишень
Интересны для атакующих «высоких классов»,
воспринимаются как активные участники
государственной политики, представители интересов
государства
Продукт : Исходники и собранное ПО для
исследования, алгоритмы
Технологические мощности: сборочные сервера -
возможность злоумышленнику собрать свою
«подлинную» версию СЗИ, сетевые и серверные
мощности
Эксплуатация доверия - Рассылка писем/переписка
от имени доверенной организации, люди –
сотрудники, внешние контакты
База установки Продукта: Контрактная
документация, Сервисные подразделения
17. Развитие мониторинга и реагирования
Технический анализ (состояние узлов, трафик, журналы)
Обнаружить публикацию информации об уязвимости
Публикация информации об уязвимости в компоненте/продукте
Сети обмена информацией об уязвимостях
Получить и интерпретировать обращения пользователей
Сообщения о «странном поведении программы» (нет явного
подозрения на проблемы ИБ)
Попытки шантажа и ультиматумы, оскорбления и троллинг
Готовый метод компрометации ИБ (пошаговый, в виде PoCE)
Внутренние сообщение от разработчика – обратить внимание
Указания на строчку кода
Развёрнутый анализ с обоснованием неизбежности уязвимости
18. Тестирование и тестирование
Анализ ИБ – безусловно один из видов
тестирования продуктов
Свои методики и тест-планы
Автоматизация
Инструментарий
(инструкции)
Работающий вариант: разработка автотестов
для передачи в отдел тестирования
19. Ловушки для исследователя
Не читать документацию
Переписать документацию
Не согласовывать цели/прогресс с
заказчиком
Не осознать зоны ответственности
заинтересованных лиц
…
20.
21. Готовы ли разработчики?
Выбор инструментов и компонентов
Удобство среды разработки
Использование знакомых компонентов
Борьба с унаследованным кодом
«Безопасное программирование» это достаточное ИБ?
Утечки памяти, переполнение буфера, падения/повисания
Безопасные опции компилятора
Инструменты те же, а сценарии нет
Практики управления
Менеджер форсирует: бюджет, сроки, функционал
23. Безопасная разработка продукта
Мониторинг и реагирование
Проверка и выпуск продукта
Разработка
Проектирование
Требования
Подготовка и обучение
разработчиков
Внедрение практик
разработки
26. Условия внедрения безопасной разработки
Осязаемые результаты: отдача от инвестиций в безопасность
Возврат инвестиций
ПО финансовых, подверженных фроду систем – возможно
Снижение количества инцидентов и уязвимостей
Снижение «стоимости» уязвимости
Оперативность реагирования на инциденты
Встраивание в существующий процесс разработки (заказа и
эксплуатации ПО)
Существующие продукты и компоненты
Вовлечение команды (мотивация исполнителя и
легитимизация затрат) на дополнительные практики ИБ
26
28. Вот и договоритесь о приоритетах
Проекты разработки
Продукты
Клиентские проекты
29. Безопасность 2.0
Необходимая скорость реакции
Сократить окно уязвимости (Window of Vulnerability)
Локализовать и ограничить инцидент
Выявить первопричину уязвимости (ошибку)
Разработать исправление
Не позволяющее «обойти» себя
Или атаковать аналогичную уязвимость
Надежно устранить уязвимости, «не вернуть» ошибку в
будущем
30. Что блокирует внедрение исследований ИБ
Слабая прогнозируемость по срокам
Непредсказуемость по результатам
Отсутствие гарантий полноты исследований
Отсутствие сходимости исследований
Проблема повторных исследований
Потребность: непрерывный адаптируемый
процесс с управляемыми характеристиками
31. Цикл Безопасной Разработки
Свод Знаний
Домены (Разделы) практик
Мониторинг и реагирование
Проверка и выпуск продукта
Разработка
Проектирование
Требования
Сторонние компоненты
Соответствие требованиям регуляторов
Инструменты и системы разработки
Подготовка команды
32. Безопасность – командный вид спорта?
Менеджер продукта
Руководитель разработки
Аналитик
Архитектор
Программист
Тестировщик
Специалист сопровождения
Хакер
Хакер
Хакер
Хакер
Хакер
Хакер
Хакер
33. Осознать «свои» слабости
33
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
35. Выстроить чтобы ломать
Исследователи и программисты
Инструменты и методика
База знаний и терминология (язык общения)
Автоматизация консистентных процессов
Процесс безопасной разработки
Средства и процесс мониторинга
36. Начать с того что имеете
Использовать доступное
Делать возможное
Качалин Алексей
Директор ЗАО «ПМ»
@kchln
Kachalin@advancedmonitoring.ru
Hinweis der Redaktion
"Ломать и строить, и снова ломать"
Исследование информационной безопасности создаваемых информационных систем и разрабатываемых приложений стало достаточно распространенной практикой. Специалисты по практической безопасности получили заслуженное признание и "включены в цикл" разработки, их "вписывают" в нормативку, создают базы знаний для хранения результатов исследований уязвимостей. Обсудим ожидания разработчиков и владельцев информационных систем от работ исследователей, задачи, которые предстоит решать, аспекты качества исследований, проводимых на регулярной основе.
Недовольны вендорами
Недоволен регулятор
Априорная безопасность не тру
Все не довольны
Пиджак/футболка – кому какое дело – была бы работа сделана
В широком смысле – т.е. по всем аспектам ИБ для п.п. выше
Модель зрелости должна быть
Подходящая этапность внедрения?
Домены
Можно суммировать и расширить
Готовые методы, инструменты, классификации
Моделирование угроз, трассировка уязвимостей для оценки ущерба
Проекты по развитию существующих продуктов
Критичность
Распространение на рынке
Критичность сценариев
Пилотные и исследовательские проекты
Новые продукты
«Агрессивность» среды
Модель угроз/нарушителя
Статистика инцидентов
Подверженность атакам на распространённые заимствованные компоненты
Проекты по развитию существующих продуктов
Критичность
Распространение в организации
Критичность сценариев
«Агрессивность» среды
Подверженность атакам на распространённые заимствованные компоненты
Возможность доступа для анализа
Компактность системы
Скорость изменения
Новые продукты
Пилотные и исследовательские проекты
Все проекты со значимыми угрозами
Cybersecurity
Security Standards Help Stop Heartbleed
May 7, 2014Software Assurance: Post by Drew Buttner
PRINT
The Heartbleed bug (CVE-2014-0160) is a critical vulnerability that first came to the attention of the public in early April and has been making headlines ever since. The vulnerability exists in certain versions of OpenSSL where it enables remote attackers to obtain sensitive information, such as passwords and encryption keys. Many popular websites have been affected or are at risk, which in turn, puts countless users and consumers at risk.
Cybersecurity experts have mounted an aggressive and multi-faceted global response to Heartbleed, and security automation standards have played an important role in this effort. These standards were created to categorize and share information about system vulnerabilities and attacks to help the security community communicate consistently. Having a common language helps in understanding these issues and determining appropriate mitigation strategies. Effective communication about bugs also helps developers prevent them from reappearing in other applications. Specifically, these three security automation standards have been particularly helpful in dealing with Heartbleed:
Common Vulnerabilities and Exposures (CVE®) provides unique identifiers for known information security vulnerabilities. CVE enables the fast, efficient, and effective correlation and sharing of information related to critical and time sensitive vulnerability.
Common Weakness Enumeration (CWE™) provides an index of different types of software code weaknesses and serves as an information repository for the types of security problems found in a software application’s architecture, design, code, and setup. CWE helps developers prevent these mistakes from being repeated.
Common Attack Pattern Enumeration and Classification (CAPEC™) is a publicly available catalogue of common attack patterns, along with a classification taxonomy that identifies relationships among attack patterns. An attack pattern is an abstraction mechanism for describing how an attack is executed. Many successful attacks are conducted in multiple, discrete, identifiable steps.
CVE and Heartbleed
The CVE Identifier CVE-2014-0160 was released on April 7, 2014—the same day the Heartbleed bug was made public. The existence of this identifier has enabled the worldwide community to converse and share information about this bug at an astonishingly rapid pace. The CVE Identifier (ID) quickly became so ubiquitous (with more than 100,000 lookups in the first few days alone) that simply entering its name into any search engine resulted in thousands of hits and a range of useful information including the official OpenSSL Security Advisory, major application vendors, details from industry experts, and guidance from security organizations. All of these search results underscores the main purpose of CVE: to allow people to correlate information.
For example, using the CVE identifier in a search engine could lead system administrators to the blog post at Fox-It with information on how to test for the Heartbleed vulnerability and what to do if it they find it. The CVE identifier could also further help system administrators ensure that they are using the appropriate security tools and vendor patches to address the issue.
Without CVE, there would likely be a surfeit of proprietary and non-standard names—such as Heartbleed, Heartbeat, and SOL15159—making it difficult to track down critical information in a timely manner. For example, the official OpenSSL Security Advisory doesn't even mention the term “Heartbleed.”
CWE and Heartbleed
The Heartbleed bug exists because of two separate mistakes in the code. The first is an inconsistency between the stated length of the message body and its actual length. 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 and both provide information about the respective problem—how to detect it, why it occurs, how to fix it, and how to prevent it from happening again.
In the case of Heartbleed, developers could use CWE to quickly determine if they have the types of code analysis tools needed to ferret out these types of mistakes. Many tools can check for instances of CWE-125.
CWE also helps developers know why Heartbleed occurred and how to avoid this type of mistake in future development. Without CWE, developers would be forced to perform hours of research to understand the root of the issue and how to correct it in their code. If you don't want your software to have the same issue as Heartbleed, ask your vendors about these weaknesses and educate your developers about CWE-130 and CWE-125.
CAPEC and Heartbleed
To prevent future attacks, security professionals need to know how an attacker thinks and operates. CAPEC helps expose the attacker mindset by shedding light on how a particular vulnerability has been exploited to launch an attack. Without CAPEC, organizations are likely to be stuck in a reactionary mode, addressing known vulnerabilities, while being blind-sided when the next "Heartbleed" arrives.
Software designers, testers, and assessment teams can use CAPEC to sleuth out the next piece of software that might be similarly susceptible and eliminate it as a target. They can also look for the underlying weaknesses that make such attacks possible. CAPEC-540: Overread Buffersdefines the general pattern commonly used by an attacker including how the attack is crafted, its potential severity and consequences, as well as possible solutions and mitigating factors. CAPEC continually adds new attack patterns, such as the specific pattern used in Heartbleed, so be sure to visit the website for updates.
Future Heartbleeds
Security automation efforts such as CVE, CWE, and CAPEC can help reduce the possibility of similar severe vulnerabilities such as Heartbleed in the future. But it is incumbent upon developers and other security professionals to actively leverage resources such as these to be better prepared for the next Heartbleed.
About Drew Buttner
Drew Buttner leads a software assurance group at MITRE specializing in secure code review. He has worked on improving application security for both MITRE and its customers since joining the organization in 2001. An expert in the field of source code weaknesses, Drew is also involved in a number of research efforts related to secure software development and