480 likes | 598 Views
За кулисами Windows Update . От уязвимости к обновлению. Бешков Андрей Руководитель программы информационной безопасности Microsoft abeshkov@microsoft.com. Содержание. Разработка безопасного ПО Статистика уязвимостей в ИТ индустрии Методы работы Microsoft c уязвимостями
E N D
За кулисами WindowsUpdate. От уязвимости к обновлению Бешков Андрей Руководитель программы информационной безопасности Microsoft abeshkov@microsoft.com
Содержание • Разработка безопасного ПО • Статистика уязвимостей в ИТ индустрии • Методы работы Microsoft c уязвимостями • Реагирование на инциденты • Тестирование и выпуск обновлений
Вопросы • Как MS обрабатывает уязвимости? • Почему MS выпускает так много обновлений? • Почему выпуск обновления занимает столько времени? • Как MS тестирует обновления перед выпуском? • Как MS может помочь партнерам и сообществу?
Терминология • Уязвимость –дефект в ПО позволяющий атакующемускомпрометировать целостность, доступность или конфиденциальность ПО или обрабатываемых данных • Самыми тяжелыми считаются уязвимости позволяющие атакующему запускать свой код • Раскрытие уязвимости – обнародование ее публично в открытых источниках
Текущее положение дел • Ручная проверка кода и автоматические инструменты такие как фаззинг, статический анализ весьма полезны, но они не могут выявить всех уязвимостей в крупном программном проекте. • Факторы увеличения количества уязвимостей: • Сложность кода • Бесконечность путей которыми креативный разработчик может создать уязвимость • >8 миллионов разработчиков ПО для Windows Исследователи будут продолжать обнаруживать уязвимости несмотря на использование нами лучших практик в разработке
Пример Найдите уязвимость…
Найдите уязвимость… Иллюстрация того насколько малозаметными могут быть уязвимости. Этот маленький кусок кода содержит уязвимость трудно обнаруживаемую стандартными инструментами и ручными проверками кода boolfAllowAccess = true; If (AccessCheck(…) == 0 && GetLastError() ==ERROR_ACCESS_DENIED) fAllowAccess = false;
Найдите уязвимость… Иллюстрация того насколько малозаметными могут быть уязвимости. Этот маленький кусок кода содержит уязвимость трудно обнаруживаемую стандартными инструментами и ручными проверками кода boolfAllowAccess = false; If (AccessCheck(…) != 0 && GetLastError() ==ERROR_ACCESS_DENIED) fAllowAccess = true; Нарушение принципа “fail closed”
Уязвимости ТОП 20 вендоров Источник Secunia 2011 yearly report
Уязвимости Microsoft Office и OpenOffice Миф о безопасности ПО с открытым кодом? http://www.h-online.com/security/news/item/Vulnerabilities-in-Microsoft-Office-and-OpenOffice-compared-1230956.html
Уязвимости по индустрии • Sun Solaris 10 1191 • Red Hat Enterprise Linux Server v.5 1580 • FreeBSD 6.x 86 • Microsoft Windows Server 2008 302 • Apple Mac OS X – 1555 • Red Hat Enterprise Linux Client v.5 1709 • Ubuntu Linux 8.04 (выпуск 2008 год) 1397 • Windows XP (выпуск 2001 год) 498 • Windows 7 170 • OracleDatabase 11.x 315 • IBM DB2 9.x 98 • MySQL 5.x 66 • Microsoft SQL Server 20081 • Mozilla Firefox 4.0 (04.2011) 14Firefox 3.5.x (2009) 161 • Opera 11 (10.2010) 10 Opera 9.x (2008) 56 • Google Chrome 11 (04.2011) 30 Chrome 5.x (5.2010) 56 • Microsoft Internet Explorer 9 (03.2011) 18 Explorer 8.x (3.2009) 104 • Cisco ASA 7.x 71 • Microsoft ISA Server 2006 7 • Microsoft Forefront TMG 2 В ядре Linux 2.6 — 596 уязвимостей . Почти в 3 раза больше уязвимостей чем в Windows 7
Разработка высококачественных обновлений Обслуживание более чем миллиарда систем вокруг света Раздаем 1-1,5 петабайта обновлений ежемесячно
Разработка высококачественных обновленийЦели • Уменьшить влияние на разнородную экосистему более чем миллиарда систем на планете • Снижать стоимость применения обновлений для клиентов • Защищать от криминальной активности
Процесс выпуска обновления • Выпуск • Создание контента • Отношения с исследователем • Выпуск бюллетеня • Публикация контента и ресурсов • Технические руководства для клиентов • Отслеживание проблем клиентов и прессы • Бюллетень • Затронутые компоненты/ПО • Техническое описание • FAQ • Благодарности • Оценка уязвимости • Уведомление об уязвимости • Быстрые ответы • Регулярные обновления • Поддержка скоординированного раскрытия • Доверенность исследователя • Влияние на клиентов • Критичность уязвимости • Вероятность эксплуатации • MSRC получили данные через • Secure@Microsoft.com • Анонимный отчет на вебсайте TechNet Security • Ответ от MSRC • Каждому исследователю ответ в течении 24 часов • Внутренний ответ • Обновление инструментов разработки и методов • Техническая помощь • Тестирование обновления • Расследование • Обновление лучших практик, методов дизайна, инструментов разработки и тестирования • MSRC Engineering • Защитные меры • Пост в блог SVRD • Рассказ партнерам MAPP о способах обнаружения атаки • MSRC Engineering ипродуктовые команды • Тестирование обновления против уязвимости • Тестирование вариаций • MSRC Engineering • Воспроизведение • Поиск вариаций • Исследование окружающего кода и дизайна продукта
Сведения об уязвимостях • MSRC получает более 150.000 сообщений в год по адресу secure@microsoft.comили анонимные сообщения на вебсайте TechNet Security • MSRC расследует: существует ли уязвимость, какие компоненты и продукты затронуты • В течении года получается: • ~1000 подтвержденных проблем • ~100 обновлений суммарно для всех продуктов Microsoft • Стандартный цикл поддержки продукта 10 лет. Это очень долго!
Примеры уведомлений • Не традиционные отчеты • Subject: “yo ~new vuln” • 2005 – MSRC 5879 – MS05-039 - Zotob • Исследователь прислал proof-of-concept • В формате Tarball • Для запуска требовался CYGWIN • Первоначальный ответ “No repro”
Примеры уведомлений • Все еще не традиционные отчеты • Subject: 你会来参加我的马来西亚朋友的聚会吧? • Критерии открытия кейса • Репутация исследователя (Пример: Yamata Li, ZDI, iDefenseи.т.д) • Не покрывается 10 законами безопасности (потенциал стать уязвимостью) • Не дублирует уже известный публично случай • Не дублирует известный случай “Won’t 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 http://www.microsoft.com/security/sir/
Вероятность поражения разных версий ОС Обнаружение зловредного ПО на каждую 1000 запусков антивирусных средств.
График разработки обновлений Временных границы процессов плавают. Некоторые процессы могут идти параллельно.
Факторы задержек обновленияПочему может потребоваться много времени? • Три фактора влияют на скорость выпуска обновлений • Минимизация количества обновлений • Одновременность выпускадля всех версий • Тестирование совместимости с приложениями
Минимизация обновлений • Избегаем повторного выпуска обновлений или выпуска нескольких обновлений для одного и того же компонента • “Поиск вариаций” • Помним о цикле поддержки в 10 лет • Учимся на ошибках – MS03-026 (Blaster) • MS03-045 выпускался 4 раза http://www.microsoft.com/technet/security/bulletin/ms03-026.mspx http://www.microsoft.com/technet/security/bulletin/MS03-039.mspx
Одновременный выпуск обновлений для всех продуктов • Часто уязвимость влияет на несколько продуктовили компонентов. Необходим одновременный выпуск во избежание 0-day. • Учимся на ошибках: • MS04-028 (14 сентября 2004) закрыл уязвимость в GDI+ влиявшую на 53 отдельных продукта • Не тривиально с точки зрения инженера • Продукты и компоненты меняются от релиза к релизу • Часто уязвимость нового продукта существует и в старом продукте • Вариации требуют разных исправлений и разного тестирования
Скоординированный выпуск • “Интернет сломан” – уязвимость в дизайне протокола DNS найдена в 2008 • Повлияло на множество производителей ПО. Угадайте о ком кричала пресса? • Microsoft возглавил комитет производителей ПО и помог решить проблему совместными усилиями • Выпущен бюллетень MS08-037
Тестирование на совместимость • Минимизация проблем с совместимостью приложений требует тестирования огромного количества приложений. Матрица тестирования разрастается очень быстро. • Обновления безопасности Windows тестируются на: • Всех версиях подверженных уязвимости ОС • Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2 • Разных SKUWindows • Home Basic, Home Premium, Business, Ultimate, и.тд. • Разных сервис паках Windows и уровнях (QFEs) • Разных языковых локализациях Windows • Разных процессорных архитектурах • x86, x64 и Itanium • И более того тестируются ~3000 распространенных семейств приложений…
Тестирование на совместимость Группы приложений X версии ОС X SKU
Тестирование на совместимость • Security Update Validation Program (SUVP) запущена в 2005 году • Перед выпуском обновления даются группе клиентов под соглашение о неразглашении (NDA) • Позволяет протестировать на широком наборе сред и конфигураций • Участники сообщают о найденных проблемах • Данные об исправляемых уязвимостях и способах эксплуатации не раскрываются http://blogs.technet.com/b/msrc/archive/2005/03/15/403612.aspx
Совместимость со зловредами • Мы прилагаем много усилий для тестирования сторонних приложений для того чтобы не беспокоить конечного клиента. • Тестирования на совместимость со зловредами установленными у конечного клиента не происходит.
Совместимость со зловредами • MS10-015 локальное повышение привилегий в ядре Windows • Обновление внесло изменения в регистры ядра используемые руткитомAlureon для сокрытия себя в системе • Изменения привели к возникновению BSOD на зараженных системах
Снижение трудоемкости развертывания обновлений • До Windows 98 обновления безопасности Microsoft публиковались на вебсайте Microsoft Download Center • Полезный урок: • Уязвимость в Microsoft SQL Server 2000 закрыта в MS02-039 выпущенном24 июля 2002 • Процесс установки был сложен и трудоемок. Утилит поиска уязвимых систем не было. • Через 6 месяцев червь SQL Slammer начал распространяться • Между июнем и августом 1998 Microsoft провела 12 “Patch Tuesdays” • WU/MU и “Patch Tuesday” помогли формализовать процесс
Минимизация перезапусков системы • Время непрерывной работы критично • Перезапуск выполняется только если нужные файлы заняты самой ОС • Мы ищем пути дальнейшего уменьшения количества рестартов • Один бюллетень часто закрывает несколько уязвимостей из базы (CVE)
Минимизация бюлетеней Соотношение бюллетеней Microsoft и уязвимостей из CVE за период 1П06–1П10 Источник: Microsoft Security Intelligence Report Volume 9
Минимизация бюлетеней Соотношение бюллетеней Microsoft и уязвимостей из CVE за период 1П06–1П10 Источник: Microsoft Security Intelligence Report Volume 9
Защита всем миром • Безопасность является проблемой всей ИТ индустрии • Ежегодно обнаруживаются тысячи уязвимостей • Большинство из них в сторонних приложениях и чаще всего критические • MSRC делится информацией собранной в процессе исследования уязвимостей с партнерами и сообществом
Скоординированное раскрытие • Мы считаем что идеальным вариантом раскрытия является приватное уведомление создателя ПО дающее ему достаточно возможностей для выпуска обновления до того как уязвимость станет публично известной. • В идеале выпуск обновления предшествует или совпадает с публичным оглашением уязвимости http://blogs.technet.com/b/ecostrat/archive/2010/07/22/coordinated-vulnerability-disclosure-bringing-balance-to-the-force.aspx
Скоординированное раскрытие График раскрытия уязвимостейв ПО Microsoft период 1П05–1П10 Источник: Microsoft Security Intelligence Report Volume 9
Бюллетени безопасности Microsoft Обновление и бюллетеней выпущено за период 1П05 и 2П10 Источник: Microsoft Security Intelligence Report – www.microsoft.com/sir
Защита всем миром MAPP MSVR
Microsoft Active Protection Program (64+ партнеров) Sourcefireсчитает что до введения MAPP требовалось ~8 часов для реверс инжиниринга обновления, поиска уязвимости и разработкиэксплоита.Затем нужно было потратить время на пути детектирования эксплоита. 8 часов достаточно профессиональному атакующему для разработки своего эксплоита после публичного раскрытия уязвимости MAPP дал возможность сократить процесс до 2 часов. Теперь нужно разрабатывать только детектирование эксплоита. В результате защита обновляется раньше на много часов чем появится первый публичный эксплоит.
Microsoft Vulnerability Research • Microsoft уведомляет приватно производителей стороннего ПО об уязвимостях последние несколько лет • Microsoft Vulnerability Research (MSVR) позволяет построить устойчивые связи между производителями ПО и защищаться сообща
Программы Microsoft в сфере ИБ • GIAIS – содружество провайдеров Интернет • OTIS – данные о текущих угрозах • VIA – обмен данными о вирусах, троянах и прочих зловредах • MVI – форму для обмена данными о борьбе с вирусными эпидемиями • MSRA – Microsoft Security Response Alliance • MAPP – Microsoft Active Protections Program • MSVR – Microsoft Vulnerability Research • SUVP - Security UpdateValidationProgram Присоединяйтесь. Будет интересно!
Дополнительные ресурсы • Управление уязвимостями в Microsoft • SDL - разработка безопасного ПО • Security Intelligence Report • Microsoft Security Update Guide • Microsoft Security Response Center • Microsoft Malware Protection Center • Trustworthy Computing blogs
Вопросы? abeshkov@microsoft.com http://beshkov.ru http://twitter.com/abeshkov