Upload
ifama
View
59
Download
3
Embed Size (px)
DESCRIPTION
Совместимость приложений. Баркан Георгий [email protected]. Ключевые проблемы. Windows Vista, Windows Server 2008 и Windows 7. Версия операционной системы. Внутренний номер версии в Windows Vista/Server 2008/ Windows 7 (функция GetVersion ) = 6 - PowerPoint PPT Presentation
Citation preview
Совместимость приложений
Баркан Георгий[email protected]
User Account Control (UAC)
Windows Resource Protection
(WRP)
Mandatory Integrity Control (MIC)
Версия операционной системы
Изоляция сессии 0
Windows Vista, Windows Server 2008 и Windows 7
Ключевые проблемы
Версия операционной системы
• Внутренний номер версии в Windows Vista/Server 2008/Windows 7 (функция GetVersion) = 6
• Версия Internet Explorer - 7.0/8.0– Версия включена в строку User Agent– Строка User Agent включается в заголовок
каждого HTTP запроса• Измените код – нужна проверка типа >= 6• GetVersionEx()
Windows 2000
Windows XP
Windows Server
2003
Windows Vista
Windows Server
2008
Windows 7
Версия 5.0 5.1 5.2 6.0 6.0 6.1
Версия операционной системы
54% всех ошибок,
связанных с совместимостью
User Account Control
• Операционная система подвергается существенным рискам когда пользователь работает под учетной записью Administrator– Более простая установка вредоносного
кода– Возможность повышения привилегий– Открытость для вредоносного кода
• Случайные повреждения, вносимые пользователем
User Account Control
• User Account Control• Manifest• Standard User vs. Administrator• Virtualization
User Account Control
Windows Resource Protection
• Ключевые файлы операционной системы и ключи реестра могут быть заменены на предыдущие версии или вредоносный код – ущерб стабильности и безопасности системы
• Задача Windows Resource Protection – защита ключевых компонентов операционной системы, увеличение стабильности, предсказуемости и надежности системы
Windows Resource Protection
• Запрещены обновления защищенных ресурсов– Только программы установки, известные ОС
(Windows Update)– ACL для ресурсов
• Распространяется на файлы, папки и ключи реестра– Большинство ключевых модулей ОС (EXE и
DLL) – Большинство ключей реестра (HKCR) – Папки, используемые ресурсами ОС
• Проверка– SfcIsFileProtected() - файлы– SfcIsKeyProtected() – ключи реестра
Mandatory Integrity Control (MIC)
• Реализовано в Windows Vista, Windows Server 2008 и Windows 7
• Процессы выполняются на одном из четырех уровней целостности (Integrity Levels):– Системные процессы - System IL– Приложения с привилегиями администратора - High
IL– Стандартные приложения - Medium IL– Приложения с ограничениями - Low IL
• Защищаемые объекты (файлы, процессы, очереди сообщений и т.п.) задают минимальный уровенб процесса для доступа к ним– Уровень для объектов по умолчанию: Medium
Изоляция привилегий интерфейса
• UI Privilege Isolation (UIPI)• Использует MIC для запрета посылки
сообщений между окнами– Приложения не могут посылать сообщения
приложениям, выполняющися с более высоким IL
– Приложения с более высоким IL могут разрешить прием сообщений
– SendMessage() не возвращает ошибок
• Исправление: функция ChangeWindowsMessageFilter()
Изоляция сессии 0Session 0
Windows StationDesktop
Screen Saver
Login
Services
1st User’sWindow
1st User’sWindow
1st User’sWindow
Возможность атаки
Сессии в Windows XP/2000/2003
Изоляция сессии 0
• Выполнение системных сервисов и пользовательских приложений в сессии 0 может привести к нарушению безопасности– Потенциальная возможность обмена
между сервисами и приложениями– Потенциальная возможность повышения
привилегий
• Выполнение сервисов и приложений в различных сессиях существенно снижает возможность атак, повышает стабильность, надежность и защищенность системы
Изоляция сессии 0Session 0
Windows StationDesktop
Service
Service
Session 1
Windows StationDesktop
Screen Saver
Login
1st User’sWindow
1st User’sWindow
1st User’sWindow
SecureСессии в
Windows Vista и Windows 7
Совместимость
• Если приложение работает под Windows Vista, оно будет работать и под Windows 7, но есть нюансы...
«Новое» в Windows 7
• Версия операционной системы• Версия Internet Explorer• Библиотеки (File Libraries)• Windows Mail• Новые компоненты системного
уровня• IE DEP• Windows Server 64 Bit• WOW64 on Windows Core
Версия операционной системы
• Windows 7 == Windows 6.1?– dwMajorVersion = остается прежней– dwMinorVersion = изменена
• Исправления– Проверяйте не версию, а
возможности системы– Используйте операцию >=– Используйте Version lies
Version Lies
• Win95VersionLie• WinNT4SP5VersionLie• Win98VersionLie• Win2000VersionLie• Win2000SP1VersionLie• Win2000SP2VersionLie
• Win2000SP3VersionLie• WinXPVersionLie• WinXPSP1VersionLie• WinXPSP2VersionLie• Win2K3RTMVersionLie• Win2K3SP1VersionLie• VistaRTMVersionLie
Version Lie Layers
• Win95• NT4SP5• Win98• Win2000• Win2000SP2• Win2000SP3
• WinXP• WinXPSP1• WinXPSP2• WinXPSP2VersionLi
e• WinSrv03• WinSrv03SP1• VistaRTM
Layers vs. Version LiesVistaRTM :
– DelayAppDllMain– ElevateCreateProcess– FailObsoleteShellAPIs– FaultTolerantHeap– GlobalMemoryStatus
2GB– HandleBadPtr
– NoGhost– RedirectMP3Code
c– VirtualRegistry– VistaRTMVersionL
ie– WRPDllRegister– WRPMitigation
Версия Internet Explorer
• Без режима совместимости:–Mozilla/4.0 (compatible; MSIE 8.0; Windows
NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
• С режимом совместимости:–Mozilla/4.0 (compatible; MSIE 7.0; Windows
NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Библиотеки (File Libraries)
• По умолчанию для общих диалоговых панелей: Documents Library
• Библиотеки – это файлы (а не папки)• IFileDialog->GetFolder() +
IFileDialog->GetFilename() не корректно работают с библиотеками– GetFolder() возвращает файл
• Исправление– Используйте IFileDialog->GetResult()
Windows Mail
• Отсутствующий компонент – заменен на Windows Live Mail или почтовый клиент по выбору
• Все API работают, за исключением API, отображающих интерфейсы
• Обработчики протоколов и файлов не зарегистрированы
• Исправления– Не использовать вызовы устаревших API– Установить почтовый клиент
CoStartOutlookExpress
msoert2.dll Section .text (0x43D01000)CALL DWORD PTR [KERNEL32.DLL!GetModuleFileNameW]TEST EAX,EAXJZ 0x43D0A613LEA EAX,[EBP-0x20C]PUSH EAXCALL DWORD PTR [SHLWAPI.DLL!PathFindFileNameW]TEST EAX,EAXJZ 0x43D0A60CPUSH 'WinMail.exe'PUSH EAXCALL DWORD PTR [MSVCRT.DLL!_wcsicmp]
Новые компоненты системного уровня
• Реорганизация компонентов системы– Пример: функциональность из
kernel32.dll и advapi32.dll перенесена в kernelbase.dll
• Экпортированные функции перенаправляются в соответствующие библиотеки
• Приложения, использующие внутренние функции и структуры могут не работать
IE DEP
• Data Execution Prevention (NX) – опция включена по умолчанию
• Плагины, которые не совместимы с DEP, могут привести к краху браузера
• Исправления:– Используйте DEP-совместимые
библиотеки (ATL)– Используйте опцию компоновщика
/NXCOMPAT
Windows Server 64 Bit
• Драйвера– Перенос и подписание 64-битных драйверов
• 32-битный код– Должен работать под WOW64– IsWow64Process
• 32-битные плагины– Перенос на 64-бита для 64-битных
процессов типа Explorer
• 16-битный код– Перенос на 32- или 64-бита
WOW64 on Windows Core
• По умолчанию 32-битный код работать не будет– Active Directory– Active Directory Lightweight Directory
Services– Web server– Сторонние приложения
• Исправления:– Перенос на 64-бита– Установка компонента WOW64
Switchback
• Секция CompatibilityInfo в манифесте приложения – указание на ОС, для которой создано приложение– Windows SxS
• Нет секции CompatibilityInfo == совместимость с Vista
• Поддержка компонентов в Windows 7:– APIs: GetOverlappedResult, ReadFileEx– RPC exception handling, thread pool mgmt.– DWM fail/lock bit blitting
Switchback Manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <!-- Windows 7 supported --> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> </application> </compatibility></assembly>
Полезные утилиты
Полезные утилиты
• Системные утилиты– MSConfig– Новая информация о системе
• SysInternals– Process Explorer– Process Monitor
• Средства отладки– Standard User Analyzer– Application Verifier– Debugging Tools for Windows
Системные утилиты
• MSConfig– Start | Run | MSConfig
• System Information– Start | Run | MSInfo32.exe
• Event Viewer – Start | Run | EventVwr.exe
Process Explorer
• Полезные возможности– Определение сервисов– Отображение загруженных модулей– Отображение используемых ссылок– Поиск модулей/ссылок
• ProcExp.exe
Process Monitor
• Новая версия, совместимая с Vista/WS08 • Объединяет RegMon и FileMon• Новая возможность – создание образов
• ProcMon.exe
SysInternals
• http://www.microsoft.com/technet/
sysinternals/
Standard User Analyzer• Часть Application Compatibility Toolkit (ACT)• Использует AppVerifier APIs• Более «удобная» версия тестов LuaPriv
Application Verifier• Назначение– Application Verifier – средство проверки
неуправляемого кода– Помогает обнаружить ошибки,
пропущенные при обычном тестировании приложений
• Использование– Графический интерфейс (GUI)– Интерфейс командной строки (CUI)– COM-интерфейсы для скриптинга
• AppVerif.exe
Application Verifier - GUI• Включить/Отключить проверки для
конкретного приложения• Настройка свойств для каждой
проверки• Просмотр протокола проверки• И т.д.
68% падений приложений можно было бы
идентифицировать с помощью App Verifier
Отладка
• Расширения отладчика– Команды Windbg, специфичные для AppVerifier
• Тесты– LUAPriv– Basic
ExceptionsHandles HeapsLocksMemoryTLS
– Low Resource Simulation
Новое в Windows 7
• Problem Step Recorder–%windir%\system32\psr.exe– Позволяет выполнить пошаговую
запись возникновения проблемы– Создает zip-файл с mht-файлом– Интеграция с Watson
Новое в Windows 7
• Windows Troubleshooting– Встроенные средства решения
проблем– Доступ через Action Center• Control Panel | All Items | Action Center |
Troubleshooting
– Расширяемость• Windows SDK: TSPBuilder.exe• Скрипт на PowerShell
ACF – решение проблем совместимости приложений
• Application Compatibility Factory является лабораторией решения проблем совместимости приложений с клиентскими операционными системами Майкрософт нового поколения – Windows Vista, Windows 7, организованной на базе КОМПАНИИ-ПАРТНЕРА
Ищем партнера в России
• Цель сотрудничества между Майкрософт и компанией-партнером Application Compatibility Factory – организация профессиональной базы решения проблем совместимости приложений для предприятий, планирующих миграцию на Windows Vista или Windows 7.
• Если Ваша компания заинтересована в сотрудничестве – просьба отправить короткий e-mail на [email protected] с темой ACF.