За кулисами Windows Update или реализация процесса реагирования на инциденты ИБ Бешков Андрей Руководитель программы информационной безопасности
Текущее положение дел Ручная проверка кода и автоматические инструменты такие как фаззинг, статический анализ весьма полезны, но они не могут выявить всех уязвимостей в крупном программном проекте. Факторы увеличения количества уязвимостей: Сложность кода Бесконечность путей которыми креативный разработчик может создать уязвимость >8 миллионов разработчиков ПО для Windows Исследователи будут продолжать обнаруживать уязвимости несмотря на использование нами лучших практик в разработке
Каждый месяц! Продукты MS уязвимы!!!
Уязвимости за 5 лет ТОП 20 вендоров Источник Secunia 2011 yearly report
Уязвимости за 9 лет
Уязвимости Microsoft Office и OpenOffice compared html Миф о безопасности ПО с открытым кодом?
Разработка высококачественных обновлений Обслуживание более чем миллиарда систем вокруг света Раздаем 1-1,5 петабайта обновлений ежемесячно
Процесс выпуска обновления MSRC получили данные через Анонимный отчет на вебсайте TechNet Security Ответ от MSRC Каждому исследователю ответ в течении 24 часов Внутренний ответ Уведомление об уязвимости MSRC Engineering и продуктовые команды Тестирование обновления против уязвимости Тестирование вариаций Тестирование обновления MSRC Engineering Защитные меры Пост в блог SVRD Рассказ партнерам MAPP о способах обнаружения атаки Техническая помощь Обновление лучших практик, методов дизайна, инструментов разработки и тестирования Обновление инструментов разработки и методов Доверенность исследователя Влияние на клиентов Критичность уязвимости Вероятность эксплуатации Оценка уязвимости Быстрые ответы Регулярные обновления Поддержка скоординированного раскрытия Отношения с исследователем Бюллетень Затронутые компоненты/ПО Техническое описание FAQБлагодарности Создание контента Выпуск бюллетеня Публикация контента и ресурсов Технические руководства для клиентов Отслеживание проблем клиентов и прессы Выпуск MSRC Engineering Воспроизведение Поиск вариаций Исследование окружающего кода и дизайна продукта Расследование
Сведения об уязвимостях MSRC получает более сообщений в год по адресу или анонимные сообщения на вебсайте TechNet MSRC расследует: существует ли уязвимость, какие компоненты и продукты затронуты В течении года получается: ~1000 подтвержденных проблем ~100 обновлений суммарно для всех продуктов Microsoft Стандартный цикл поддержки продукта 10 лет. Это очень долго!
Примеры уведомлений Не традиционные отчеты – Subject: yo ~new vuln – Subject: 2005 – MSRC 5879 – MS Zotob – Исследователь прислал proof-of-concept – В формате Tarball – Для запуска требовался CYGWIN – Первоначальный ответ No repro
Критерии открытия кейса? – Репутация исследователя (Пример: Yamata Li, ZDI, iDefense и.т.д) – Не покрывается 10 законами безопасности (потенциал стать уязвимостью) – Не дублирует уже известный публично случай – Не дублирует известный случай Wont fix
Приоритетность? Индекс эксплоитабельности
Данные о текущих атаках? Данные о количестве атак и заражений были собраны с 600 миллионов компьютеров обслуживаемых средствами безопасности Microsoft такими как: Malicious Software Removal Tool Microsoft Security Essentials Windows Defender Microsoft Forefront Client Security Windows Live OneCare Windows Live OneCare safety scanner Bing
График разработки обновлений Временных границы процессов плавают. Некоторые процессы могут идти параллельно.
Минимизация обновлений Избегаем повторного выпуска обновлений или выпуска нескольких обновлений для одного и того же компонента Поиск вариаций Помним о цикле поддержки в 10 лет Учимся на ошибках – MS (Blaster) MS выпускался 4 раза mspx mspx
Одновременный выпуск обновлений для всех продуктов Часто уязвимость влияет на несколько продуктов или компонентов. Необходим одновременный выпуск во избежание 0-day. Учимся на ошибках: MS (14 сентября 2004) закрыл уязвимость в GDI+ влиявшую на 53 отдельных продукта Не тривиально с точки зрения инженера Продукты и компоненты меняются от релиза к релизу Часто уязвимость нового продукта существует и в старом продукте Вариации требуют разных исправлений и разного тестирования
Скоординированный выпуск Интернет сломан – уязвимость в дизайне протокола DNS найдена в 2008 Повлияло на множество производителей ПО. Угадайте о ком кричала пресса? Microsoft возглавил комитет производителей ПО и помог решить проблему совместными усилиями Выпущен бюллетень MS08-037MS08-037
Тестирование на совместимость Минимизация проблем с совместимостью приложений требует тестирования огромного количества приложений. Матрица тестирования разрастается очень быстро. Обновления безопасности Windows тестируются на: Всех версиях подверженных уязвимости ОС Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2 Разных SKU Windows Home Basic, Home Premium, Business, Ultimate, и.тд. Разных сервис паках Windows и уровнях (QFEs) Разных языковых локализациях Windows Разных процессорных архитектурах x86, x64 и Itanium И более того тестируются ~3000 распространенных семейств приложений…
Тестирование на совместимость Группы приложений X версии ОС X SKU
Тестирование на совместимость в вашей среде? Security Update Validation Program (SUVP) запущена в 2005 году Перед выпуском обновления даются группе клиентов под соглашение о неразглашении (NDA) Позволяет протестировать на широком наборе сред и конфигураций Участники сообщают о найденных проблемах Данные об исправляемых уязвимостях и способах эксплуатации не раскрываются px
Совместимость со зловредами MS локальное повышение привилегий в ядре Windows Обновление внесло изменения в регистры ядра используемые руткитом Alureon для сокрытия себя в системе Изменения привели к возникновению BSOD на зараженных системах
Минимизация перезапусков системы Время непрерывной работы критично Перезапуск выполняется только если нужные файлы заняты самой ОС Мы ищем пути дальнейшего уменьшения количества рестартов Один бюллетень часто закрывает несколько уязвимостей из базы (CVE)
Отношение к обновлениям
Минимизация бюлетеней Соотношение бюллетеней Microsoft и уязвимостей из CVE за период 1П06–1П10 Источник: Microsoft Security Intelligence Report Volume 9
Защита всем миром Безопасность является проблемой всей ИТ индустрии Ежегодно обнаруживаются тысячи уязвимостей Большинство из них в сторонних приложениях и чаще всего критические MSRC делится информацией собранной в процессе исследования уязвимостей с партнерами и сообществом
Скоординированное раскрытие Мы считаем что идеальным вариантом раскрытия является приватное уведомление создателя ПО дающее ему достаточно возможностей для выпуска обновления до того как уязвимость станет публично известной. В идеале выпуск обновления предшествует или совпадает с публичным оглашением уязвимости vulnerability-disclosure-bringing-balance-to-the-force.aspx
Скоординированное раскрытие Источник: Microsoft Security Intelligence Report Volume 9 График раскрытия уязвимостей в ПО Microsoft период 1П05–1П10
Бюллетени безопасности Microsoft Обновление и бюллетеней выпущено за период 1П05 и 2П10 Период Бюллетеней безопасности Внеочередных бюллетеней безопасности (0day) 1П П П П П П П П П П П П10652 Всего44811 Источник: Microsoft Security Intelligence Report –
Microsoft Active Protection Program (64+ партнеров) Sourcefire считает что до введения MAPP требовалось ~8 часов для реверс инжиниринга обновления, поиска уязвимости и разработки эксплоита. Затем нужно было потратить время на пути детектирования эксплоита. 8 часов достаточно профессиональному атакующему для разработки своего эксплоита после публичного раскрытия уязвимости MAPP дал возможность сократить процесс до 2 часов. Теперь нужно разрабатывать только детектирование эксплоита. В результате защита обновляется раньше на много часов чем появится первый публичный эксплоит.
Microsoft Secure Software Development Conference.
Дополнительные ресурсы Управление уязвимостями в Microsoft SDL - разработка безопасного ПО Security Intelligence Report Microsoft Security Update Guide Microsoft Security Response Center Microsoft Malware Protection Center Trustworthy Computing blogs
Вопросы? Бешков Андрей Руководитель программы информационной безопасности