Document 5011101

advertisement
Windows Vista, Windows Server 2008 и
Windows 7
User Account
Control (UAC)
Windows
Resource
Protection
(WRP)
Версия
операционной
системы
Mandatory
Integrity
Control (MIC)
Изоляция
сессии 0
54% всех ошибок,
связанных с
совместимостью
Внутренний номер версии в Windows Vista/Server
2008/Windows 7 (функция GetVersion) = 6
Версия
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
Версия Internet Explorer - 7.0/8.0
Версия включена в строку User Agent
Строка User Agent включается в заголовок каждого
HTTP запроса
Измените код – нужна проверка типа >= 6
GetVersionEx()
Операционная система подвергается
существенным рискам когда
пользователь работает под учетной
записью Administrator
Более простая установка вредоносного кода
Возможность повышения привилегий
Открытость для вредоносного кода
Случайные повреждения, вносимые
пользователем
Запрещены обновления защищенных ресурсов
Только программы установки, известные ОС
(Windows Update)
ACL для ресурсов
Распространяется на файлы, папки и ключи реестра
Большинство ключевых модулей ОС (EXE и DLL)
Большинство ключей реестра (HKCR)
Папки, используемые ресурсами ОС
Проверка
SfcIsFileProtected() - файлы
SfcIsKeyProtected() – ключи реестра
Реализовано в 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()
Выполнение системных сервисов и
пользовательских приложений в сессии 0
может привести к нарушению безопасности
Потенциальная возможность обмена между
сервисами и приложениями
Потенциальная возможность повышения
привилегий
Выполнение сервисов и приложений в
различных сессиях существенно снижает
возможность атак, повышает стабильность,
надежность и защищенность системы
Windows Vista, Windows Server 2008 и
Windows 7
User Account
Control (UAC)
Windows
Resource
Protection
(WRP)
Версия
операционной
системы
Mandatory
Integrity
Control (MIC)
Изоляция
сессии 0
Обрезанный текст
Размеры картинок и
расположение элементов
Расположение
элементов
Размытые
картинки
Размытый
текст
Неправильные
размеры шрифтов
Появилась в Vista
Применяется для приложений, которые не
указали явно DPI awareness
Через манифест или вызов
SetProcessDPIAware()
Подсистема Win32 возвращает метрики как
будто установлен 96 DPI (вызовы
GetSystemMetrics(), GetDeviceCaps,
DEFAULT_GUI_FONT, и т. п.)
DWM масштабирует окно приложения
DPI Virtualization — это временное решение
Если приложение работает под Windows
Vista, оно будет работать и под Windows 7,
но есть нюансы...
Версия операционной системы
Версия Internet Explorer
Библиотеки (File Libraries)
Windows Mail
Новые компоненты системного уровня
IE DEP
Windows Server 64 Bit
WOW64 on Windows Core
Без режима совместимости:
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)
По умолчанию для общих диалоговых
панелей: Documents Library
Библиотеки – это файлы (а не папки)
IFileDialog->GetFolder() +
IFileDialog->GetFilename() не корректно
работают с библиотеками
GetFolder() возвращает файл
Исправление
Используйте IFileDialog->GetResult()
Отсутствующий компонент – заменен на
Windows Live Mail или почтовый клиент
по выбору
Все API работают, за исключением API,
отображающих интерфейсы
Обработчики протоколов и файлов не
зарегистрированы
Исправления
Не использовать вызовы устаревших API
Установить почтовый клиент
Реорганизация компонентов системы
Пример: функциональность из kernel32.dll и
advapi32.dll перенесена в kernelbase.dll
Экпортированные функции
перенаправляются в соответствующие
библиотеки
Приложения, использующие внутренние
функции и структуры могут не работать
Data Execution Prevention (NX) – опция
включена по умолчанию
Плагины, которые не совместимы с DEP,
могут привести к краху браузера
Исправления:
Используйте DEP-совместимые библиотеки
(ATL)
Используйте опцию компоновщика
/NXCOMPAT
Драйвера
Перенос и подписание 64-битных драйверов
32-битный код
Должен работать под WOW64
IsWow64Process
32-битные плагины
Перенос на 64-бита для 64-битных
процессов
16-битный код
Перенос на 32- или 64-бита
По умолчанию 32-битный код работать
не будет
Исправления:
Перенос на 64-бита
Установка компонента WOW64
Секция Compatibility в манифесте
приложения – указание на ОС, для которой
создано приложение
Windows SxS
Нет секции Compatibility == совместимость
с Vista
<?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-8e2da2440225f93a}"/>
</application>
</compatibility>
</assembly>
Problem Step Recorder
%windir%\system32\psr.exe
Позволяет выполнить пошаговую запись
возникновения проблемы
Создает zip-файл с mht-файлом
Интеграция с Watson
Windows Troubleshooting
Встроенные средства решения проблем
Доступ через Action Center
Control Panel | All Items | Action Center | Troubleshooting
Расширяемость
Windows SDK: TSPBuilder.exe
Скрипт на PowerShell
Download