За кулисами Windows Update . От уязвимости к обновлению
description
Transcript of За кулисами Windows Update . От уязвимости к обновлению
ЗА КУЛИСАМИ WINDOWS UPDATE. ОТ УЯЗВИМОСТИ К ОБНОВЛЕНИЮБешков АндрейРуководитель программы информационной безопасности[email protected]
СодержаниеРазработка безопасного ПОСтатистика уязвимостей в ИТ индустрииМетоды работы Microsoft c уязвимостямиРеагирование на инциденты Тестирование и выпуск обновлений
ВопросыКак MS обрабатывает уязвимости?Почему MS выпускает так много обновлений?Почему выпуск обновления занимает столько времени?Как MS тестирует обновления перед выпуском?Как MS может помочь партнерам и сообществу?
Отношение к обновлениям
ТерминологияУязвимость – дефект в ПО позволяющий атакующему скомпрометировать целостность, доступность или конфиденциальность ПО или обрабатываемых данных
Самыми тяжелыми считаются уязвимости позволяющие атакующему запускать свой кодРаскрытие уязвимости – обнародование ее публично в открытых источниках
Текущее положение делРучная проверка кода и автоматические инструменты такие как фаззинг, статический анализ весьма полезны, но они не могут выявить всех уязвимостей в крупном программном проекте.Факторы увеличения количества уязвимостей:
Сложность кодаБесконечность путей которыми креативный разработчик может создать уязвимость
>8 миллионов разработчиков ПО для Windows
Исследователи будут продолжать обнаруживать уязвимости несмотря на использование нами лучших практик в разработке
Найдите уязвимость…
Пример
Найдите уязвимость…
bool fAllowAccess = true;If (AccessCheck(…) == 0 && GetLastError() ==ERROR_ACCESS_DENIED)
fAllowAccess = false;
Иллюстрация того насколько малозаметными могут быть уязвимости. Этот маленький кусок кода содержит уязвимость трудно обнаруживаемую стандартными инструментами и ручными проверками кода
Найдите уязвимость…
bool fAllowAccess = false;If (AccessCheck(…) != 0 && GetLastError() ==ERROR_ACCESS_DENIED)
fAllowAccess = true;
Нарушение принципа “fail closed”
Иллюстрация того насколько малозаметными могут быть уязвимости. Этот маленький кусок кода содержит уязвимость трудно обнаруживаемую стандартными инструментами и ручными проверками кода
Продукты MS уязвимы!!!
Уязвимости ТОП 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 1191Red Hat Enterprise Linux Server v.5 1580FreeBSD 6.x 86Microsoft Windows Server 2008 302
Apple Mac OS X – 1555 Red Hat Enterprise Linux Client v.5 1709Ubuntu Linux 8.04 (выпуск 2008 год) 1397Windows XP (выпуск 2001 год) 498Windows 7 170
Oracle Database 11.x 315IBM DB2 9.x 98MySQL 5.x 66Microsoft SQL Server 2008 1
Mozilla Firefox 4.0 (04.2011) 14 Firefox 3.5.x (2009) 161Opera 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 71Microsoft ISA Server 2006 7Microsoft Forefront TMG 2
В ядре Linux 2.6 — 596 уязвимостей . Почти в 3 раза больше уязвимостей чем в Windows 7
Разработка высококачественных
обновленийОбслуживание более чем миллиарда систем вокруг света
Раздаем 1-1,5 петабайта обновлений ежемесячно
Разработка высококачественных обновленийЦелиУменьшить влияние на
разнородную экосистему более чем миллиарда систем на планетеСнижать стоимость применения обновлений для клиентовЗащищать от криминальной активности
Процесс выпуска обновления
MSRC получили данные через
[email protected] Анонимный отчет на вебсайте TechNet Security
Ответ от MSRCКаждому исследователю ответ в течении 24 часовВнутренний ответ
Уведомление об
уязвимости
MSRC Engineering и продуктовые команды
Тестирование обновления против уязвимостиТестирование вариаций
Тестирование обновления MSRC Engineering
Защитные мерыПост в блог SVRDРассказ партнерам MAPP о способах обнаружения атаки
Техническая помощь Обновление лучших
практик, методов дизайна, инструментов разработки и тестирования
Обновление инструментов разработки и
методов
Доверенность исследователяВлияние на клиентовКритичность уязвимостиВероятность эксплуатации
Оценка уязвимости Быстрые ответы
Регулярные обновленияПоддержка скоординированного раскрытия
Отношения с исследователе
м БюллетеньЗатронутые компоненты/ПОТехническое описаниеFAQБлагодарности
Создание контента Выпуск бюллетеня
Публикация контента и ресурсовТехнические руководства для клиентовОтслеживание проблем клиентов и прессы
Выпуск
MSRC EngineeringВоспроизведениеПоиск вариацийИсследование окружающего кода и дизайна продукта
Расследование
Сведения об уязвимостяхMSRC получает более 150.000 сообщений в год по адресу [email protected] или анонимные сообщения на вебсайте TechNet SecurityMSRC расследует: существует ли уязвимость, какие компоненты и продукты затронутыВ течении года получается:
~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• Binghttp://www.microsoft.com/security/sir/
Вероятность поражения разных версий ОС
Обнаружение зловредного ПО на каждую 1000 запусков антивирусных средств.
Почему Windows 7 в 5 раз безопаснее?
Win7
SEHOP SEHOP Включено по
умолчанию Heap terminate
Heap terminate
Выключено по умолчанию DEP DEP ASLR ASLR
Vista SP1, SP2
SEHOP SEHOP SEHOP Heap
terminateHeap terminate
Heap terminate
DEP DEP DEP ASLR ASLR ASLR
Vista RTM
SEHOP SEHOP Heap
terminateHeap terminate
DEP DEP ASLR ASLR
XP SP3
SEHOP SEHOP SEHOP Heap terminate
Heap terminate
Heap terminate
DEP DEP DEP ASLR ASLR ASLR
XP SP2
SEHOP SEHOP SEHOP Heap terminate
Heap terminate
Heap terminate
DEP DEP DEP ASLR ASLR ASLR
IE 6 IE 7 IE 8 IE 9
Windows XP Windows Vista Windows 70
10203040506070
Критические уязвимости через год после выпуска
График разработки обновлений
Временных границы процессов плавают. Некоторые процессы могут идти параллельно.
Факторы задержек обновленияПочему может потребоваться много времени?Три фактора влияют на
скорость выпуска обновленийМинимизация количества обновленийОдновременность выпуска для всех версийТестирование совместимости с приложениями
Минимизация обновленийИзбегаем повторного выпуска обновлений или выпуска нескольких обновлений для одного и того же компонента“Поиск вариаций”
Помним о цикле поддержки в 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
Разных SKU WindowsHome Basic, Home Premium, Business, Ultimate, и.тд.
Разных сервис паках Windows и уровнях (QFEs)Разных языковых локализациях WindowsРазных процессорных архитектурах
x86, x64 и Itanium
И более того тестируются ~3000 распространенных семейств приложений…
Тестирование на совместимость
NT4-S
P6-Se
rver-L
angu
age6
-X86
Vista-
SP0-U
ltimate
-Lang
uage
6-X64
Vista-
SP0-U
ltimate
-Lang
uage
11-X6
4
Vista-
SP1-H
ome B
asic-
Lang
uage
6-X64
Vista-
SP1-H
ome B
asic-
Lang
uage
11-X6
4
Vista-
SP1-H
omeP
remium
-Lang
uage
6-X64
Vista-
SP1-U
ltimate
-Lang
uage
6-X86
Vista-
SP1-U
ltimate
-Lang
uage
11-X8
6
Vista-
SP2-B
usine
ss-La
ngua
ge6-X
86
Vista-
SP2-H
ome B
asic-
Lang
uage
13-X8
6
Vista-
SP2-H
ome B
asic-
Lang
uage
6-X64
Vista-
SP2-H
ome B
asic-
Lang
uage
11-X8
6
Vista-
SP2-H
ome B
asic-
Lang
uage
9-X86
Vista-
SP2-H
ome B
asic-
Lang
uage
7-X86
Vista-
SP2-H
ome B
asic-
Lang
uage
3-X86
Vista-
SP2-U
ltimate
-Lang
uage
12-X6
4
Vista-
SP2-U
ltimate
-Lang
uage
13-X6
4
Vista-
SP2-U
ltimate
-Lang
uage
1-X64
Vista-
SP2-U
ltimate
-Lang
uage
6-X64
Vista-
SP2-U
ltimate
-Lang
uage
11-X6
4
Vista-
SP2-U
ltimate
-Lang
uage
2-X64
Vista-
SP2-U
ltimate
-Lang
uage
9-X64
Vista-
SP2-U
ltimate
-Lang
uage
10-X6
4
Vista-
SP2-U
ltimate
-Lang
uage
8-X86
Vista-
SP2-U
ltimate
-Lang
uage
7-X86
Vista-
SP2-U
ltimate
-Lang
uage
5-X86
Vista-
SP2-U
ltimate
-Lang
uage
3-X86
Vista-
SP2-U
ltimate
-Lang
uage
4-X86
Win200
0-SP4
-Profe
ssion
al-La
ngua
ge6-X
86
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge12
-X64
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge13
-X86
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge6-X
64
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge15
-X86
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge11
-X86
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge10
-X86
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge8-X
86
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge17
-X86
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge5-X
86
Window
s7-SP
0-Hom
e Bas
ic-La
ngua
ge4-X
86
Window
s7-SP
0-Hom
ePrem
ium-La
ngua
ge6-X
86
Window
s7-SP
0-Star
ter-La
ngua
ge6-X
86
Window
s7-SP
0-Ultim
ate-La
ngua
ge12
-X86
Window
s7-SP
0-Ultim
ate-La
ngua
ge13
-X86
Window
s7-SP
0-Ultim
ate-La
ngua
ge6-X
64
Window
s7-SP
0-Ultim
ate-La
ngua
ge19
-X64
Window
s7-SP
0-Ultim
ate-La
ngua
ge15
-X86
Window
s7-SP
0-Ultim
ate-La
ngua
ge11
-X86
Window
s7-SP
0-Ultim
ate-La
ngua
ge10
-X64
Window
s7-SP
0-Ultim
ate-La
ngua
ge8-X
64
Window
s7-SP
0-Ultim
ate-La
ngua
ge16
-X64
Window
s7-SP
0-Ultim
ate-La
ngua
ge17
-X64
Window
s7-SP
0-Ultim
ate-La
ngua
ge7-X
64
Window
s7-SP
0-Ultim
ate-La
ngua
ge5-X
64
Window
s7-SP
0-Ultim
ate-La
ngua
ge3-X
64
Window
s7-SP
0-Ultim
ate-La
ngua
ge18
-X86
Window
s7-SP
0-Ultim
ate-La
ngua
ge4-X
86
Window
s7-SP
1-Ultim
ate-La
ngua
ge6-X
86
WinXP-S
P2-Pr
ofessi
onal-
Lang
uage
6-X86
WinXP-S
P3-H
ome-L
angu
age6
-X86
WinXP-S
P3-Pr
ofessi
onal-
Lang
uage
11-X8
6
WS03-S
P2-En
terpri
se-La
ngua
ge6-X
64
WS03-S
P2-En
terpri
se-La
ngua
ge11
-X64
WS03-S
P2-Pr
ofessi
onal-
Lang
uage
6-X64
WS08 R
2-SP0
-Enter
prise
-Lang
uage
6-IA6
4
WS08 R
2-SP0
-Enter
prise
-Lang
uage
11-IA
64
WS08-S
P1-En
terpri
se-La
ngua
ge6-X
64
WS08-S
P1-St
anda
rd-La
ngua
ge6-X
64
WS08-S
P2-En
terpri
se-La
ngua
ge6-I
A64
WS08-S
P2-En
terpri
se-La
ngua
ge6-X
86
WS08-S
P2-St
anda
rd-La
ngua
ge11
-X64
020406080
100120140160 16 bit Applications
Business & Home OfficeClient ApplicationsCommunication & In-ternetDevelopment ToolsEnterprise ApplicationsGamesGraphics & DesignGraphics & PrintingHome & EducationInternational Language ApplicationsKids' & EducationalLine of BusinessMedia ApplicationsMusic & MP3 , Photo & VideoNetworkingOther Category AppsPhoto & Video Category SecurityServer AppsShimmed ApplicationsTax & Financeutilities
Группы приложений 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
1H06 2H06 1H07 2H07 1H08 2H08 1H09 2H09 1H100
20
40
60
80
100
120
32
46
35 34 3642
27
4741
57
98
78
5158
97
85
104
114
Security Bul-letinsUnique CVEs
Источник: Microsoft Security Intelligence Report Volume 9
Минимизация бюлетеней
1H06 2H06 1H07 2H07 1H08 2H08 1H09 2H09 1H100.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
1.82.1 2.2
1.5 1.6
2.3
3.1
2.2
2.8
Соотношение бюллетеней 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
Скоординированное раскрытие
1H06 2H06 1H07 2H07 1H08 2H08 1H09 2H09 1H100%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
Full Dis-closureVulnerability Broker CasesOther Co-ordinated Disclosure
Источник: Microsoft Security Intelligence Report Volume 9
График раскрытия уязвимостей в ПО Microsoft период 1П05–1П10
Бюллетени безопасности MicrosoftОбновление и бюллетеней выпущено за период 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
Защита всем миром
MSVRMAPP
Microsoft Active Protection Program (64+ партнеров)
Sourcefire считает что до введения MAPP требовалось ~8 часов для реверс инжиниринга обновления, поиска уязвимости и разработки эксплоита. Затем нужно было потратить время на пути детектирования эксплоита.
8 часов достаточно профессиональному атакующему для разработки своего эксплоита после публичного раскрытия уязвимости
MAPP дал возможность сократить процесс до 2 часов. Теперь нужно разрабатывать только детектирование эксплоита. В результате защита обновляется раньше на много часов чем появится первый публичный эксплоит.
Microsoft уведомляет приватно производителей стороннего ПО об уязвимостях последние несколько летMicrosoft Vulnerability Research (MSVR) позволяет построить устойчивые связи между производителями ПО и защищаться сообща
Microsoft Vulnerability Research
Программы Microsoft в сфере ИБ GIAIS – содружество провайдеров
ИнтернетOTIS – данные о текущих угрозахVIA – обмен данными о вирусах, троянах и прочих зловредахMVI – форму для обмена данными о борьбе с вирусными эпидемиямиMSRA – Microsoft Security Response AllianceMAPP – Microsoft Active Protections ProgramMSVR – Microsoft Vulnerability ResearchSUVP - Security Update Validation Program
Присоединяйтесь. Будет интересно!
Дополнительные ресурсыУправление уязвимостями в MicrosoftSDL - разработка безопасного ПОSecurity Intelligence ReportMicrosoft Security Update Guide Microsoft Security Response CenterMicrosoft Malware Protection CenterTrustworthy Computing blogs
Вопросы[email protected] http://beshkov.ruhttp://twitter.com/abeshkov
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ