Andrey Beshkov - Behind the Window Update Scenes. From vulnerability to patсh
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Andrey Beshkov - Behind the Window Update Scenes. From vulnerability to patсh

  • 897 views
Uploaded on

International Security Conference "ZeroNights 2011" - http://www.zeronights.org/

International Security Conference "ZeroNights 2011" - http://www.zeronights.org/

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
897
On Slideshare
885
From Embeds
12
Number of Embeds
2

Actions

Shares
Downloads
23
Comments
0
Likes
1

Embeds 12

http://a0.twimg.com 10
http://paper.li 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Бешков АндрейРуководитель программы информационнойбезопасностиMicrosoft Россияhttp://beshkov.ru@abeshkovabeshkov@microsoft.com
  • 2. Разработка безопасного ПОСтатистика уязвимостей в ИТ индустрииМетоды работы Microsoft cуязвимостямиРеагирование на инцидентыТестирование и выпуск обновлений
  • 3. Как MS обрабатывает уязвимости?Почему MS выпускает так многообновлений?Почему выпуск обновления занимаетстолько времени?Как MS тестирует обновления передвыпуском?Как MS может помочь партнерам исообществу?
  • 4. TwC – Trustworthy ComputingMSRC - Microsoft Security Response CenterMMPC – Microsoft Malware Protection CenterMSEC – Microsoft Security Engineering CenterSSIRP – Software Security Incident ResponseProcessMAPP – Microsoft Active Protections ProgramMSVR – Microsoft Vulnerability ResearchSDL – Security Development LifecycleSecurity update = “патч”
  • 5. Уязвимость – дефект в ПО позволяющийатакующему скомпрометироватьцелостность, доступность иликонфиденциальность ПО илиобрабатываемых данных Самыми тяжелыми считаются уязвимости позволяющие атакующему запускать свой код Раскрытие уязвимости – обнародование ее публично в открытых источниках
  • 6. Ручная проверка кода и автоматическиеинструменты такие как фаззинг, статическийанализ весьма полезны, но они не могутвыявить всех уязвимостей в крупномпрограммном проекте.Факторы увеличения количества уязвимостей: Сложность кода Бесконечность путей которыми креативный разработчик может создать уязвимость >8 миллионов разработчиков ПО для WindowsИсследователи будут продолжать обнаруживатьуязвимости несмотря на использование нами лучшихпрактик в разработке
  • 7. Иллюстрация того насколько малозаметными могут быть уязвимости. Этот маленький кусок кода содержит уязвимость трудно обнаруживаемую стандартными инструментами и ручными проверками кодаbool fAllowAccess = true;If (AccessCheck(…) == 0 && GetLastError()==ERROR_ACCESS_DENIED) fAllowAccess = false;
  • 8. Иллюстрация того насколько малозаметными могут быть уязвимости. Этот маленький кусок кода содержит уязвимость трудно обнаруживаемую стандартными инструментами и ручными проверками кодаbool fAllowAccess = false;If (AccessCheck(…) != 0 && GetLastError()==ERROR_ACCESS_DENIED) fAllowAccess = true; Нарушение принципа “fail closed”
  • 9. Всех производителей. Критичность уязвимостей 1П06-1П102 000 18821 800 1562 1677 15871 600 1494 1447 14021 400 1693 1266 11441 200 1289 Средняя (4 - 1208 11911 000 1090 Высокая (7 - 6.9) 800 10) 600 400 195 98 124 83 109 98 89 126 200 Низкая (0 - 0 3.9) 2H06 1H07 2H07 1H08 2H08 1H09 2H09 1H10 Источник: Microsoft Security Intelligence Report Volume 9
  • 10. Всех производителей. Уязвимости Microsoft и не-Microsoft Уязвимости в ОС, приложениях, Браузерах. продуктов. Период 1П06-1П10 Период 1П06-1П10 3 5003 500 3 280 3 322 3110 3079 3 042 2 822 2 869 3 000 28073 000 2547 2573 2 594 2351 не-Microsoft 2 500 2 4172 500 2 215 2161 1943 2 0002 000 1 500 приложения1 500 1 0001 000 500 500 ОС 259 242 276 310 256 Браузеры 207 237 196 170 Microsoft 15297 93 146 113 129 145 112 96 79 0 122 0 Источник: Microsoft Security Intelligence Report Volume 9
  • 11. Миф о безопасности ПО с открытым кодом?http://www.h-online.com/security/news/item/Vulnerabilities-in-Microsoft-Office-and-OpenOffice-compared-1230956.html
  • 12. 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 Oracle Database 11.x 315 IBM DB2 9.x 98 MySQL 5.x 66 Microsoft SQL Server 2008 1 Mozilla Firefox 4.0 (04.2011) 14 Firefox 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
  • 13. Обслуживание более чем миллиарда систем вокруг света Раздаем 1-1,5 петабайта обновлений ежемесячно
  • 14. Цели Уменьшить влияние на разнородную экосистему более чем миллиарда систем на планете Снижать стоимость применения обновлений для клиентов Защищать от криминальной активности
  • 15. Secure@Microsoft.com
  • 16. MSRC получает более 150.000 сообщений вгод по адресу secure@microsoft.com илианонимные сообщения на вебсайте TechNetSecurityMSRC расследует: существует ли уязвимость,какие компоненты и продукты затронутыВ течении года получается: ~1000 подтвержденных проблем ~100 обновлений суммарно для всех продуктов MicrosoftСтандартный цикл поддержки продукта 10 лет.Это очень долго!
  • 17. Не традиционные отчеты Subject: “yo ~new vuln ”2005 – MSRC 5879 – MS05-039 - Zotob Исследователь прислал proof-of-concept В формате Tarball Для запуска требовался CYGWIN Первоначальный ответ “No repro”
  • 18. Все еще не традиционные отчеты Subject: 你会来参加我的马来西亚朋友的聚会吧?Критерии открытия кейса Репутация исследователя (Пример: Yamata Li, ZDI, iDefense и.т.д) Не покрывается 10 законами безопасности (потенциал стать уязвимостью) Не дублирует уже известный публично случай Не дублирует известный случай “Won’t fix”
  • 19. Временных границы процессов плавают. Некоторые процессы могут идтипараллельно.
  • 20. Почему может потребоваться много времени? Три фактора могу повлиять на скорость выпуска обновлений Минимизация количества обновлений Одновременность выпуска Тестирование совместимости с приложениями
  • 21. Избегаем повторного выпуска обновлений или выпуска нескольких обновлений для одного и того же компонента “Поиск вариаций” Помним о цикле поддержки в 10 лет Учимся на ошибках – MS03-026 (Blaster) MS03-045 выпускался 4 разаhttp://www.microsoft.com/technet/security/bulletin/ms03-026.mspx
  • 22. Часто уязвимость влияет на несколько продуктов иликомпонентов. Необходим одновременный выпуск воизбежание 0-day.Учимся на ошибках: MS04-028 (14 сентября 2004) закрыл уязвимость в GDI+ влиявшую на 53 отдельных продуктаНе тривиально с точки зрения инженера Продукты и компоненты меняются от релиза к релизу Часто уязвимость нового продукта существует и в старом продукте Вариации требуют разных исправлений и разного тестирования
  • 23. “Интернет сломан” – уязвимость в дизайнепротокола DNS найдена в 2008Повлияло на множество производителей ПО.Угадайте о ком кричала пресса?Microsoft возглавил комитет производителейПО и помог решить проблему совместнымиусилиямиВыпущен бюллетень MS08-037
  • 24. Минимизация проблем с совместимостью приложений требуеттестирования огромного количества приложений. Матрицатестирования разрастается очень быстро.Обновления безопасности 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распространенных семейств приложений…
  • 25. Группы приложений X версии ОС X SKU160 16 bit Applications140 Business & Home Office120 Client Applications100 Communication & Internet 80 Development Tools 60 Enterprise Applications 40 Games 20 Graphics & Design 0 Graphics & Printing Home & Education International Language Applications Kids & Educational Line of Business Media Applications Music & MP3 , Photo & Video Networking Other Category Apps Photo & Video Category Security Server Apps Shimmed Applications Tax & Finance
  • 26. Security Update Validation Program (SUVP) запущена в 2005 году Перед выпуском обновления даются группе клиентов под соглашение о неразглашении (NDA) Позволяет протестировать на широком наборе сред и конфигураций Участники сообщают о найденных проблемах Данные об исправляемых уязвимостях и способах эксплуатации не раскрываютсяhttp://blogs.technet.com/b/msrc/archive/2005/03/15/403612.aspx
  • 27. Мы прилагаем много усилий длятестирования сторонних приложенийдля того чтобы не беспокоить конечногоклиента.Тестирования на совместимость созловредами установленными уконечного клиента не происходит.
  • 28. MS10-015 локальное повышениепривилегий в ядре WindowsОбновление внесло изменения врегистры ядра используемые руткитомAlureon для сокрытия себя в системеИзменения привели к возникновениюBSOD на зараженных системах
  • 29. До Windows 98 обновления безопасности Microsoftпубликовались на вебсайте Microsoft Download CenterПолезный урок: Уязвимость в Microsoft SQL Server 2000 закрыта в MS02-039 выпущенном 24 июля 2002 Процесс установки был сложен и трудоемок. Утилит поиска уязвимых систем не было. Через 6 месяцев червь SQL Slammer начал распространятьсяМежду июнем и августом 1998 Microsoft провела 12 “PatchTuesdays”WU/MU и “Patch Tuesday” помогли формализовать процесс
  • 30. Время непрерывной работы критично Перезапуск выполняется только если нужные файлы заняты самой ОС Мы ищем пути дальнейшего уменьшения количества рестартовОдин бюллетень часто закрывает несколькоуязвимостей из базы (CVE)
  • 31. Соотношение бюллетеней Microsoft и уязвимостей из CVE за период 1П06–1П10120 114 104 98 97100 85 78 80 Security Bulletins 57 58 60 51 46 47 42 41 40 35 34 36 32 27 20 0 1H06 2H06 1H07 2H07 1H08 2H08 1H09 2H09 1H10 Источник: Microsoft Security Intelligence Report Volume 9
  • 32. Соотношение бюллетеней Microsoft и уязвимостей из CVE за период 1П06–1П103,5 3,13,0 2,82,5 2,2 2,3 2,2 2,12,0 1,8 1,5 1,61,51,00,50,0 1H06 2H06 1H07 2H07 1H08 2H08 1H09 2H09 1H10 Источник: Microsoft Security Intelligence Report Volume 9
  • 33. Безопасность является проблемой всей ИТиндустрииЕжегодно обнаруживаются тысячиуязвимостей Большинство из них в сторонних приложениях и чаще всего критическиеMSRC делится информацией собранной впроцессе исследования уязвимостей спартнерами и сообществом
  • 34. Мы считаем что идеальным вариантом раскрытия является приватное уведомление создателя ПО дающее ему достаточно возможностей для выпуска обновления до того как уязвимость станет публично известной. В идеале выпуск обновления предшествует или совпадает с публичным оглашением уязвимостиhttp://blogs.technet.com/b/ecostrat/archive/2010/07/22/coordinated-vulnerability-disclosure-bringing-balance-to-the-force.aspx
  • 35. График раскрытия уязвимостей в ПО Microsoft период 1П05–1П10 100% 90% 80% Full 70% Disclosure 60% Vulnerability 50% Broker Cases 40% 30% Other Coordinated 20% Disclosure 10% 0% 1H06 2H06 1H07 2H07 1H08 2H08 1H09 2H09 1H10Full Disclosure 100 169 164 82 110 128 80 101 86Vulnerability Broker Cases 25 24 17 30 71 43 41 45 30Other Coordinated Disclosure 208 241 217 247 323 264 270 377 295 Источник: Microsoft Security Intelligence Report Volume 9
  • 36. Обновление и бюллетеней выпущено за период 1П05 и 2П10 Период Бюллетеней Внеочередных бюллетеней безопасности безопасности1П05 33 02П05 21 01П06 32 12П06 46 11П07 35 12П07 34 01П08 36 02П08 42 21П09 27 02П09 47 21П10 30 22П10 65 2Всего 448 11 Источник: Microsoft Security Intelligence Report – www.microsoft.com/sir
  • 37. Sourcefire считает что до введения MAPP требовалось ~8 часов для реверсинжиниринга обновления, поиска уязвимости и разработки эксплоита. Затемнужно было потратить время на пути детектирования эксплоита.8 часов достаточно профессиональному атакующему для разработки своегоэксплоита после публичного раскрытия уязвимостиMAPP дал возможность сократить процесс до 2 часов. Теперь нужноразрабатывать только детектирование эксплоита. В результате защитаобновляется раньше на много часов чем появится первый публичный эксплоит.
  • 38. Microsoft уведомляет приватнопроизводителей стороннего ПО обуязвимостях последние нескольколетMicrosoft Vulnerability Research(MSVR) позволяет построитьустойчивые связи междупроизводителями ПО и защищатьсясообща
  • 39. GIAIS – содружество провайдеровИнтернетOTIS – данные о текущих угрозахVIA – обмен данными о вирусах, троянах ипрочих зловредахMVI – форму для обмена данными оборьбе с вирусными эпидемиямиMSRA – Microsoft Security ResponseAllianceMAPP – Microsoft Active ProtectionsProgramMSVR – Microsoft Vulnerability ResearchSUVP - Security Update Validation Program
  • 40. Управление уязвимостями в MicrosoftSDL - разработка безопасного ПОSecurity Intelligence ReportMicrosoft Security Update GuideMicrosoft Security Response CenterMicrosoft Malware Protection CenterTrustworthy Computing blogs
  • 41. Данные о количестве атак и заражений были собраны с600 миллионов компьютеров обслуживаемыхсредствами безопасности Microsoft такими как:• Malicious Software Removal Tool• Microsoft Security Essentials• Windows Defender• Microsoft Forefront Client Security• Windows Live OneCare• Windows Live OneCare safety scanner• Binghttp://www.microsoft.com/security/sir/
  • 42. Обнаружение зловредного ПО на каждую 1000 запусков антивирусныхсредств.
  • 43. SEHOP SEHOP Включено по Heap Heap Критические уязвимости черезWin7 умолчанию Выключено по terminate terminate год после выпуска DEP DEP умолчанию 70 ASLR ASLR SEHOP SEHOP SEHOP 60Vista Heap Heap Heap 50SP1, terminate terminate terminateSP2 DEP DEP DEP 40 ASLR ASLR ASLR 30 SEHOP SEHOP Heap Heap 20Vista terminate terminate 10RTM DEP DEP ASLR ASLR 0 SEHOP SEHOP SEHOP Windows XP Windows Vista Windows 7 Heap Heap HeapXP terminate terminate terminateSP3 DEP DEP DEP ASLR ASLR ASLR SEHOP SEHOP SEHOP Heap Heap HeapXP terminate terminate terminateSP2 DEP DEP DEP ASLR ASLR ASLR IE 6 IE 7 IE 8 IE 9