microsof t security toolbox - средства верификации безопасности

32
Жизненный цикл безопасности Моделирование угроз Валерий Берестецкий, Microsoft Corporation 27.11.2008, Одесса 1 Microsoft Security Toolbox - средства верификации безопасности Валерий Берестецкий, Microsoft Corporation 24.11.2008, г.Киев

Upload: zalman

Post on 05-Jan-2016

71 views

Category:

Documents


9 download

DESCRIPTION

Microsof t Security Toolbox - средства верификации безопасности Валерий Берестецкий , Microsoft Corporation 24.11.2008, г.Киев. Жизненный цикл безопасности Моделирование угроз Валерий Берестецкий , Microsoft Corporation 27.11.2008, Одесса. Обзор предлагаемого материала. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Microsof t Security Toolbox  -  средства верификации безопасности

Жизненный цикл безопасностиМоделирование угроз

Валерий Берестецкий, Microsoft Corporation 27.11.2008, Одесса

1

Microsoft Security Toolbox - средства верификации

безопасности

Валерий Берестецкий, Microsoft Corporation 24.11.2008, г.Киев

Page 2: Microsof t Security Toolbox  -  средства верификации безопасности

Обзор предлагаемого материала• Верификация безопасности – когда, что и как мы

проверяем, средства верификации• Фаззинг – подача на вход намеренно некорректных

данных• Статический анализатор неуправляемого кода PreFast

(/analyze)• Aнализатор управляемого кода FxCop• Бинарный анализатор Binscope – проверка того, что dll и

сборки построены в соответствии с требованиями SDL• Динамический анализатор АppVerifier – верификация

неуправляемого кода в процессе исполнения• Библиотека Anti-XSS – для защиты веб-приложений от

межсайтового скриптинга• CAT.NET – статический анализатор кода на уязвимости

(распространенные типы атак)

Page 3: Microsof t Security Toolbox  -  средства верификации безопасности

Обучение

Начало,регистрация с

SWI

Лучшиепрактики

Обзор арх. и «атакуемой поверхности»

Использов.Средстви лучшихпрактик

Созд.документов

и спец.средств

Подго-товкаплана

реагиров.

Рывок

Тестир.взломом

Финальн.Обзор

Безопас-ности

Сопровожди реагиро-

вание

Списки компонентКритерии качества

Арх. документыПланы по времени

Спецификациидизайна

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

Разработка нового кода

Исправление ошибок

ЭлектроннаяПодпись + Checkpoint

Express

ВЫПУСК

Поддержка,Обновления

Требования Дизайн Разработка Верификация Выпуск Поддержка

SDL: Этап верификации безопасности

Модели-рование

угроз

ФункциональныеСпецификации

Традиционные шаги и процессы Жизненного Цикла Безопасности

Page 4: Microsof t Security Toolbox  -  средства верификации безопасности

Зачем нужен данный этап?

Постановка может содержать требования безопасности

Разработчики пишут соответствующий этим требованиям код

Но именно процесс тестирования определяет, насколько этот код безопасен в реальных условиях

Майкл Хоуард, «Разработка безопасного кода»

Ищите слабые точки в программе! Используйте подход взломщика, а не разработчика!

Page 5: Microsof t Security Toolbox  -  средства верификации безопасности

SDL: Верификация (2)Цели верификации: - конфиденциальность, целостность и доступность ПО

и обрабатываемой им информации; это включает в себя функциональность, разработанную для сдерживания угроз

- устранение проблем, вызывающих возникновение уязвимостей, например, переполнение буфера в коде, выполняющем парсинг

Начало верификации – как только написан код

Верификации подвергается как новый, так и ранее существовавший код

Обязательный этап в SDL

Page 6: Microsof t Security Toolbox  -  средства верификации безопасности

SDL: Верификация (3)

• Верификация вручную – эффективна, но исключительно трудоёмка

• Майкрософт предлагает инструментарий - средства автоматизации анализа кода

• Категории средств автоматизации:– Статические анализаторы исходного кода– Анализаторы библиотек и сборок

(бинарных ресурсов)– Анализаторы кода в процессе

выполнения• Тесты на основе модели угроз• Tестирование взломом

Page 7: Microsof t Security Toolbox  -  средства верификации безопасности

Пример планки ошибок безопасности

Рейтинг опасности

Описание угрозы

1 Несанкционированное повышение прав доступа анонимного удаленного пользователя

2 Постоянный отказ в обслуживании анонимного удаленного пользователя

3 Временный отказ в обслуживании

4 Ненаправленное раскрытие информации

Глубокая защита

Уязвимости, влекущие нарушение безопасности – способ атаки неизвестен

Page 8: Microsof t Security Toolbox  -  средства верификации безопасности

Фаззинг – автоматическое тестирование безопасности

• Фаззинг – метод поиска ошибок в коде путем подачи намеренно некорректных данных на вход программным интерфейсам (точки входа), обрабатывающим эти данные (парсеры файлов, регистра, общей памяти, сетевого траффика)

• На основании найденных в прошлом уязвимостей, считается что большую их часть можно было найти, используя фаззинг

Page 9: Microsof t Security Toolbox  -  средства верификации безопасности

SDL и фаззинг• Внутренние требования SDL

– Фаззинг файлов для всех продуктов, производящих чтение и разбор содержимого файлов

– Фаззинг внешних RPC интерфейсов– Фаззинг ActiveX– Постоянно обновляются

• Средства фаззинга– MiniFuzz– FileFuzz (iDefense labs)– Codenomicon Test Tools– Spike (unix/linux)– Peach (open source)– и т.д.

Page 10: Microsof t Security Toolbox  -  средства верификации безопасности

Стадии фаззинга

1) Предварительная (идентификация целей фаззинга, планирование, установка «планки ошибок»)

2) Создание некорректных данных: с учетом формата, порядка подачи, генерация или использование имеющихся данных, технология генерации некорректных данных

3) Определение лучшего способа подачи некорректных данных на вход приложения: командная строка, GUI, API и т.д., кодирование и тестирование этого способа

4) Мониторинг тестируемого приложения: что мы хотим увидеть и что делать, когда возникает прерывание

5) Обсуждение результатов, их классификация и анализ6) Идентификация причин прерываний, исправление

найденных ошибок, повторное прохождение теста и анализ результатов

Page 11: Microsof t Security Toolbox  -  средства верификации безопасности

Точки входа

• Фаззингу могут быть подвержены любые способы ввода информации, подлежащей обработке данным приложением

• Ввод происходит из разных источниковПрямой – например, через интерфейс

пользователяКосвенный – в результате чтения из базы

данных• Места ввода информации в приложение

называются точками входа• Рассмотрим некоторые из них

Page 12: Microsof t Security Toolbox  -  средства верификации безопасности

Точки входа (2)

Графический интерфейс Общая память

Файлы Регистр

Сетевой траффик COM-интерфейсы

ActiveX Командные аргументы

Запросы HTTP P2P траффик

Ответы HTTP Траффик SIP

Запросы в БД Сокеты

Page 13: Microsof t Security Toolbox  -  средства верификации безопасности

Графический интерфейс

• Вероятность атаки: низкая• Необходимо вовлечь пользователя в процесс

ввода вредоносной информации• Обычно это непросто • Может использоваться в сочетании со

спуфингом

Page 14: Microsof t Security Toolbox  -  средства верификации безопасности

Сокеты

• Вероятность атаки: Высокая• Сокеты используются для двустороннего

сетевого траффика• Адрес сокета содержит номер порта• Злоумышленник может подать вредоносную

информацию через сеть• Средство верификации: netstat -an

Page 15: Microsof t Security Toolbox  -  средства верификации безопасности

Объекты ActiveX и СОМ

• Вероятность атаки: Высокая• COM-объекты могут содержаться внутри

Internet Explorer’a, приложений Office и в других приложениях-контейнерах

• Злоумышленник может подать вредоносную информацию через документ-контейнер (html, документы Office и т.п.)

• Средства верификации: Interrogator, COMRaider, Fuzzing

Page 16: Microsof t Security Toolbox  -  средства верификации безопасности

Демо - MiniFuzz

Page 17: Microsof t Security Toolbox  -  средства верификации безопасности

Статический анализ неуправляемого кода (PreFast, /analyze)• Статический анализатор исходного кода, позволяет находить

определенные классы ошибок кодирования на С/С++, в частности переполнение буфера.

• Обычно через PreFast пропускают секцию кода около 10Мб, анализируют результат, затем повторяют процесс

• Запускается из командной строки или как опция /analyze из Visual Studio

• Предоставляет UI для анализа результатов• Интегрирован в Visual Studio Team Edition в виде опции

/analyze• При компиляции находит дополнительные ошибки

приведения типов, быстродействия, безопасности и операций с памятью

• Обязателен к исполнению в SDL

Page 18: Microsof t Security Toolbox  -  средства верификации безопасности

Демо - PreFast

Page 19: Microsof t Security Toolbox  -  средства верификации безопасности

Анализатор управляемого кода FxCop

• Бинарный анализатор сборок .Net, выявляющий ошибки следующего типа:– Безопасности– Портативности– Производительности– Глобализации– Общего дизайна– И многое другое

• Имеет UI и запускается из командной строки• Правила анализа настраиваются под

требования пользователя• Обязателен к исполнению в SDL

Page 20: Microsof t Security Toolbox  -  средства верификации безопасности

Демо - FxCop

Page 21: Microsof t Security Toolbox  -  средства верификации безопасности

Бинарный анализатор Binscope• Средство верификации программных проектов на

предмет соответствия требованиям SDL• Проверяет :

– Флаг /GS для предупреждения переполнения буфера– Флаг /SafeSEH для безопасной обработки прерываний– Флаг /NxCOMPAT для предупреждения наличия исполняемого

кода в данных (совместимость с функцией DEP Windows)– Флаг /DYNAMICBASE для рандомизации адресного

пространства приложения– соблюдение правил наименования сборок (строгие имена),

требований к версиям компилятора и сборщика, наличие запрещенных SDL конструкций

– правильность заголовков ATL– и многое другое

Page 22: Microsof t Security Toolbox  -  средства верификации безопасности

Демо - Binscope

Page 23: Microsof t Security Toolbox  -  средства верификации безопасности

Динамический анализатор AppVerifier

• Предназначен для анализа неуправляемого кода в процессе выполнения

• Выявляет следующие дефекты приложения:– Проблемы heap– Проблемы взаимодействия приложения с ОС– Проблемы ACLs– Небезопасные APIs – И многое другое

Page 24: Microsof t Security Toolbox  -  средства верификации безопасности

Динамический анализатор AppVerifier

• Имеет несколько уровней тестирования:– Базовый (прерывания, работа с хендлами,

проблемы heap, памяти, threads и прочее)– Тест, имитирующий недостаток ресурсов

(например, памяти) – Тест работы с разными привилегиями работы

приложения– Тесты нарушения защиты памяти– Тесты утечки ресурсов

Page 25: Microsof t Security Toolbox  -  средства верификации безопасности

Демо - AppVerifier

Page 26: Microsof t Security Toolbox  -  средства верификации безопасности

CAT.NET – статический анализатор кода на уязвимости (распространенные типы атак)

• Находит уязвимости распространенных типов (межсайтовый скриптинг, SQL- , Xpath-, LDAP-инъекции и многое другое)

• Сканирует сборки и Dll-ы приложения• Трассирует инфопотоки между операторами, методами и

сборками• Помодульно сканирует главную и ссылочные сборки в

приложении и анализирует все найденные методы• Наконец, выводит информацию обо всех уязвимостях• Интерфейс позволяет переходить от уязвимости

непосредственно к месту ее возникновения в коде• Запускается из командной строки или встраивается в Visual

Studio

Page 27: Microsof t Security Toolbox  -  средства верификации безопасности

Демо – CAT.NET

Page 28: Microsof t Security Toolbox  -  средства верификации безопасности

Библиотека Anti-XSS

• Предназначена для защиты веб-приложений от атаки межсайтового скриптинга

• Определяет допустимый интерпретируемый набор символов URL и оставляет в символьном виде всё остальное, не входящее в этот набор

• Поддерживает разные скриптовые языки• Содержит усовершенствованные методы

удаления опасных HTML-скриптов• По мере совершенствования атак межсайтового

скриптинга, выпускаются новые версии библиотеки

Page 29: Microsof t Security Toolbox  -  средства верификации безопасности

Демо – библиотека AntiXSS

Page 30: Microsof t Security Toolbox  -  средства верификации безопасности

Заключение

• Показаны лишь некоторые из инструментов верификации

• Выбор инструментов зависит от ваших приложений (клиентские/веб, управляемый код или нет и т.д.)

• Постоянно разрабатываются новые средства• Не нужно экономить ресурсы на тестировании

безопасности - исправлять ошибки после выпуска очень дорого

• Интерпретация результатов тестирования занимает время

Page 31: Microsof t Security Toolbox  -  средства верификации безопасности

Вопросы?

Page 32: Microsof t Security Toolbox  -  средства верификации безопасности

Жизненный цикл безопасностиМоделирование угроз

Валерий Берестецкий, Microsoft Corporation 27.11.2008, Одесса

32

Спасибо за внимание!

[email protected]