Введение.
Со времён официального выхода Vista в свет прошло уже больше года, и постепенно эта операционная система всё больше завоёвывает рынок.
При подготовке к выходу версии программы NeoSpy 2.7 мы постарались учесть все изменения в Windows Vista и обеспечить максимальную совместимость с новой ОС (не забыв, впрочем, про предыдущие версии Windows).
В этой статье мы постараемся коснуться основных изменений в безопасности и расскажем о методах обеспечения совместимости с этой ОС Ваших программ.
UAC (Контроль за учётными записями пользователей).
Эта система появилась в Vista, и именно о ней чаще всего упоминают разработчики Висты при объяснении новых возможностей их ОС. Контроль за учётными записями представляет собой средство защиты от несанкционированного запуска программ и выполнения определённых действий.
рис.1 Окно UAC
Окно UAC появляется при любой попытке пользователя повысить права для определённой программы или совершить действие, требующее прав администратора (изменение системных настроек, копирование или удаление файлов в системных папках). Создаётся снимок экрана, затемняется и на фоне него выводится сообщение UAC (для безопасности это окно выводится на отдельном рабочем столе).
Опытного пользователя обычно может раздражать постоянные "глупые вопросы" о разрешении того, или иного действия, но специалисты Microsoft считают UAC главным барьером на пути проникновения вредоносных программ.
Права пользователей в Vista. Манифесты для программ.
Одни из самых важных изменений в Висте коснулись прав пользователей. Напомним, во времена Windows XP пользователи в большинстве случаев были с правами администраторов, и разработчики ПО** рассчитывали на беспрепятственное изменение системных настроек и установку своих программ в системные папки. С приходом Висты всё изменилось, создатели ОС поняли, что рядовые пользователи не должны иметь администраторских прав и, что самое интересное, даже в учётных записях администраторов все программы по-умолчанию запускаются с урезанными правами. Именно поэтому многие программы, разработанные под NTXP отказываются запускаться в Висте, такие программы необходимо запускать от имени администратора (в контекстном меню файла выбрать "Запуск от имени администратора").
Что предлагают создателям ПО специалисты Microsoft? Теперь для обеспечения совместимости разработчикам предлагается "вшивать" в программу специальный текст, который называется манифестом, содержит нужные операционной системе сведения о программе и известен ещё со времён Windows XP.
Пример подобного манифеста:
processorarchitecture="X86"
name="NeoSpy (название программы)"
type="win32"/>
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorarchitecture="*"
publickeytoken="6595b64144ccf1df"
language="*" />
Как видим, в манисфесте содержится название и описание программы, версия манифеста, и, самое главное, уровень прав для запуска программы.
Рассмотрим подробнее строку:
Именно параметр level отвечает за предоставление операционной системой нужных прав программе, этот параметр может содержать одно из трёх значений:
highestAvailable - предоставить программе максимально возможные права (в учётной записи администратора при запуске появится окно UAC для повышения прав).
AsInvoker - предоставить выбор операционной системе (предоставляются обычные права)
requireAdministrator - программе необходимы права администратора (без этих прав она просто не запустится, появится окно UAC с требованием повысить права).
Параметр uiAccess определяет, нужно ли запускать программу только из какого-то определённого места, или можно из любого (значение false).
Для того, чтобы программа NeoSpy могла запускаться у любого пользователя, в манифесте исполняемого файла значение level=AsInvoker. Права администратора требуются только для установки, изменения настроек и просмотра действий других пользователей сети в реальном времени. Стоит добавить, что программы, запущенные с разными правами не могут взаимодействовать друг с другом, например, с помощью системных сообщений; также теперь невозможно повысить права во время выполнения программы.
Автозагрузка в Vista.
Рассмотрим теперь особенности автозагрузки программ в новой операционной системе. По сравнению с предыдущими версиями Windows количество мест и возможностей для автозагрузки значительно убавилось.
Остались только основные места:
1) Ключ в реестре SoftwareMicrosoftWindowsCurrentVersionRun (В разделе HKEY_CURRENT_USER для текущего пользователя, и в HKEY_LOCAL_MACHINE для всех пользователей)
2) Папка "Автозагрузка"
3) Планировщик задач Vista (Task Scheduler)
В целях безопасности, запустить программу с правами администратора из реестра или из папки автозагрузки нельзя без сообщения UAC о необходимости повышения прав, это, с одной стороны, ставит мощный заслон для вредоносных программ, а с другой стороны мешает нормальному функционированию программы NeoSpy.
Чтобы программа запускалась с нужными правами, она записывается в планировщик задач с параметром "Запуск с наивысшими правами". Эту галочку можно ставить вручную, когда необходимо добавить свою программу в автозагрузку с правами администратора.
рис.2 Планировщик задач Vista
Планировщик задач Висты заслуживает отдельного внимания, по сравнению со своим предшественником в XP, он стал гораздо более гибким и мощным инструментом по управлению задачами. Большинство сервисов и системных приложений перекочевало в планировщик, появились возможности по тонкой настройке задач и приоритетов.
Визуальный стиль Windows Vista.
Разумеется, помимо удобства и безопасности, без внимания разработчики не могли оставить без внимания внешний вид, ведь это первое, что бросается в глаза пользователю. Все кнопки, переключатели и прочие визуальные элементы управления приобрели новый, приятный вид.
Программистам, для того, чтобы их программы стали отображаться в стиле Висты, следует просто добавить к исполняемым файлам Vista-манифест, пример которого был дан выше.
Глобальные ловушки (hooks) в Vista. Важные для программистов изменения.
Очень важным изменением, с точки зрения безопасности, стал запрет на некоторые глобальные ловушки (перехват). В прошлом, множество троянов-шпионов использовали глобальные перехваты сообщений клавиатуры и системных функций с целью похищения паролей и прочей конфиденциальной информации. Теперь разработчики исключили многие возможности перехвата и подмены системных функций. Но не стоит думать, что hooks использовали только вирусы, многие легальные программы также использовали глобальные ловушки, например, некоторые переводчики перехватывали определённые "горячие клавиши" для быстрого перевода текста.
Чтобы записывать нажатия клавиш, программа NeoSpy в среде Vista автоматически переключается на альтернативный режим отслеживания нажатых клавиш, который не использует хуки.
В итоге можно сказать, мы получили ещё один барьер для вирусов и троянов, но лишились некоторых удобств.
Выводы.
Итак, новая операционная система кардинально изменилась в плане прав пользователей и безопасности, что успешно учитывается в новых версиях программы NeoSpy, поэтому основные функции программы (слежение за окнами, перехват ICQ, клавиатуры, посещённых сайтов и т.п.) в Висте остались без изменений.
Желаем всем разработчикам как можно быстрее ознакомиться с новой операционной системой и сделать свои программы совместимыми с ней, ведь всё больше пользователей выбирают в качестве операционной системы Windows Vista.