Windows process integrity level

Mandatory Integrity Control

Mandatory Integrity Control (MIC) provides a mechanism for controlling access to securable objects. This mechanism is in addition to discretionary access control and evaluates access before access checks against an object’s discretionary access control list (DACL) are evaluated.

MIC uses integrity levels and mandatory policy to evaluate access. Security principals and securable objects are assigned integrity levels that determine their levels of protection or access. For example, a principal with a low integrity level cannot write to an object with a medium integrity level, even if that object’s DACL allows write access to the principal.

Windows defines four integrity levels: low, medium, high, and system. Standard users receive medium, elevated users receive high. Processes you start and objects you create receive your integrity level (medium or high) or low if the executable file’s level is low; system services receive system integrity. Objects that lack an integrity label are treated as medium by the operating system; this prevents low-integrity code from modifying unlabeled objects. Additionally, Windows ensures that processes running with a low integrity level cannot obtain access to a process which is associated with an app container.

Integrity Labels

Integrity labels specify the integrity levels of securable objects and security principals. Integrity labels are represented by integrity SIDs. The integrity SID for a securable object is stored in its system access control list (SACL). The SACL contains a SYSTEM_MANDATORY_LABEL_ACE access control entry (ACE) that in turn contains the integrity SID. Any object without an integrity SID is treated as if it had medium integrity.

The integrity SID for a security principal is stored in its access token. An access token may contain one or more integrity SIDs.

For detailed information about the defined integrity SIDs, see Well-known SIDs.

Process Creation

When a user attempts to launch an executable file, the new process is created with the minimum of the user integrity level and the file integrity level. This means that the new process will never execute with higher integrity than the executable file. If the administrator user executes a low integrity program, the token for the new process functions with the low integrity level. This helps protect a user who launches untrustworthy code from malicious acts performed by that code. The user data, which is at the typical user integrity level, is write-protected against this new process.

Mandatory Policy

The SYSTEM_MANDATORY_LABEL_ACE ACE in the SACL of a securable object contains an access mask that specifies the access that principals with integrity levels lower than the object are granted. The values defined for this access mask are SYSTEM_MANDATORY_LABEL_NO_WRITE_UP, SYSTEM_MANDATORY_LABEL_NO_READ_UP, and SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP. By default, the system creates every object with an access mask of SYSTEM_MANDATORY_LABEL_NO_WRITE_UP.

Every access token also specifies a mandatory policy that is set by the Local Security Authority (LSA) when the token is created. This policy is specified by a TOKEN_MANDATORY_POLICY structure associated with the token. This structure can be queried by calling the GetTokenInformation function with the value of the TokenInformationClass parameter set to TokenMandatoryPolicy.

Введение в Windows Integrity Control №1

Эта статья описывает возможности системы
Windows Integrity Control (WIC), впервые представленной в
Windows Vista, рассказывает о том, как защищаются
объекты (типа папок и файлов), о разных
уровнях защиты, об управлении WIC при помощи
утилиты ICACLS.

Целостность системы — кому ты можешь
доверять?

При создании последней версии
операционной системы компании, Windows Vista,
разработчики из Microsoft пытались
сконструировать самую защищенную ОС из
семейства Windows. Одна из функций, помогающая
обезопасить ОС — Windows Integrity Control (WIC).

Предназначение WIC — защита объектов, таких
как файлы, принтеры, именованные каналы,
записи реестра и т.д., от атак, вредоносного
софта и даже непреднамеренных ошибок
пользователя. Концепция WIC основана на
определении доверительных, надежных
отношений между объектами и
контролировании взаимодействия между ними
на основе их уровня доверия.

Уровни WIC являются обязательными и стоят
над назначаемыми правами контроля, такими
как, например, права NTFS на файлы и папки,
которые нам все прекрасно знакомы. Главная
цель системы контроля — убедиться в том, что
только объекты с уровнем, равным или большим,
чем у объекта, могут взаимодействовать с ним.
В сущности, если объекту доверяют в меньшей
степени, то ему запрещено взаимодействие с
объектами более высокого ранга.

Опять же, разрешения WIC стоят над
нормальными разрешениями. Это означает, что
даже в том случае, если файл или процесс
имеет полный контроль над другим объектом,
но его уровень меньше, чем у того, с кем он
пытается взаимодействовать, то WIC
переопределит разрешения и в доступе будет
отказано.

Определение надежности при помощи WIC

Для наблюдения за взаимодействием между
объектами, Windows в первую очередь определит
надежность, или уровень целостности (integrity
lev), каждого объекта. WIC назначает один из
шести уровней для каждого объекта
операционной системы:

  • Untrusted — анонимные процессы
    автоматически попадают в эту категорию.
  • Low — стандартный уровень при работе с
    Интернетом. Если IE запущен в Protected Mode, все
    файлы и процессы, ассоциированные с
    ним, назначаются в эту категорию.
    Некоторые папки, такие как, например, Temporary
    Internet Folder, также по умолчанию наделяются
    Низким уровнем доверия.
  • Medium — в данном контексте работает
    большинство объектов. Стандартные
    пользователи получают Средний уровень и
    все объекты, специально не назначенные в
    другие группы, получают его по умолчанию.
  • High — получают Администраторы. Это
    сделано специально для того, чтобы они не
    только могли взаимодействовать и
    изменять объекты низших уровней доверия,
    но и работать с другими объектами
    Высокого уровня, чего стандартные
    пользователи делать не могут.
  • System — очевидно, что такой уровень
    зарезервирован за системой. Ядро Windows и
    его сервисы получают Системный уровень.
    Очевидно, что такой класс программ не
    дает себя изменять даже Администраторам
    с Высоким уровнем разрешения.
  • Installer — высший уровень целостности,
    определяемый WIC. Его объекты могут
    удалять, деинсталлировать файлы всех
    предыдущих уровней.

С точки зрения влияния на безопасность
Windows Vista, эти уровни безопасности защищают
объекты высшего уровня от умышленного или непреднамеренного
изменения или удаления менее важными
объектами. Установив Средний уровень
надежности в качестве значения по
умолчанию для стандартных пользователей и
для всех объектов, Vista защищает важнейшие
компоненты компьютера от влияния угроз
Интернета, которые (как мы уже сказали) по
умолчанию получают малый доступ.

По аналогии, Администраторы более опытны,
чем пользователи, и потому действуют на
Высоком уровне доверия, а ядро операционной
системы и ключевые сервисы работают с
уровнем System, что дает уверенность в том, что
даже взломанный аккаунт Администратора не
сможет повлиять на ядро.

В целом, уровни управления WIC очень похожи
на разрешения NTFS. Главное отличие состоит в
том, что права NTFS раздаются человеком, они
назначаются, а уровни WIC — обязательны. Проще
говоря, права доступа на папки и файлы
назначаются их владельцем или
администратором, в то время как
интегративные уровни WIC назначаются и
определяются операционной системой.

Хотя верхние четыре уровня доверия мало
чем отличаются и практической пользы
приносят мало, главная функциональная
нагрузка WIC лежит в различии между уровнями
Low и Medium. Получение обязательного контроля
от операционной системы, а не упование
только на решения пользователей или
администраторов, обычно обеспечивает
большую безопасность на всех уровнях.

Защита Vista от угроз из Интернета

В то время как стандартные пользователи
работают на Среднем уровне, а
администраторы на Высоком, WIC подразумевает,
что Internet и ассоциированные с ним файлы и
процессы полностью враждебны, доверять им
нельзя и потому они получают Низкий уровень
доверия.

Когда пользователь получает письмо с
линком, который ведет на враждебный сайт, и
кликает на него, сайт может попытаться
установить ту или иную разновидность
вредоносного софта. Malware обычно копирует
себя в некоторое место на жестком диске и
изменяет записи реестра для своего
существования после перезагрузки. Программа
также может попытаться изменить или
удалить другие файлы или начать исполнение
других процессов для продолжения своей
вредоносной деятельности.

Windows process with Untrusted Integrity level

I couldn’t find much information about Untrusted integrity level in Windows, and have some questions about it:

  1. Is there a place where an untrusted integrity level process can create named objects? (mutexes, events, etc..)
  2. Should untrusted integrity level process be able to open an existing named object, that was given a security descriptor in it’s creation time with ACE with SYSTEM_MANDATORY_LABEL_NO_WRITE_UP to MandatoryLevelUntrusted ? When I try it, it fails with 0xc0000022 (access denied), while with MandatoryLevelLow it works great.
  3. How do usually untrusted integrity processes communicate with their broker process? (like how does a google chrome tab communicates with the google chrome broker?)

1 Answer 1

Is there a place where an untrusted integrity level process can create named objects? (mutexes, events, etc..)

by default — no. code with untrusted token (thread or process) can create object only in directory with Untrusted Mandatory Level — no one standard folders have this kind of label. some have Low Mandatory Level but untrusted — no.

but you can easy create this folder yourself. with Untrusted Mandatory Level and NULL DACL — untrusted code can create objects in this folder.

about untrusted code creation — if start process at begin with token marked as untrusted integrity level — process fail to start. this when ntdll.dll try load kernel32.dll — it try open section \KnownDlls\kernel32.dll with SECTION_MAP_WRITE as well , but this object have Low Mandatory Level with SYSTEM_MANDATORY_LABEL_NO_WRITE_UP — as result untrusted code fail open this section with write access.

as result you need initially create process say with Low Mandatory Level and then set untrusted level

Should untrusted integrity level process be able to open an existing named object

this depend from object label(level and mask) , code intergrity level and required access. if code intergrity level >= object label level — we can open object (if dacl let do this). otherwise need look for object label mask and required access. for example object have Low Mandatory Level with SYSTEM_MANDATORY_LABEL_NO_WRITE_UP and code Untrusted Mandatory Level — this code can open object with read and execute access, but fail open it for write access

Читайте также:  Настраиваем web сервер windows

How to create a new process with a lower Integrity Level (IL)?

It seems that starting with Windows Vista, processes with a lower integrity level (IL) cannot send messages to processes with higher integrity levels. This makes sense from a security standpoint, but it breaks some of our interprocess communication.

We have a legacy application (Process A) that unfortunately has to run with elevated «admin» privileges (accomplished by setting its shortcut to always run as administrator). At times it needs to instantiate a separate application (Process B). As a result, Process B inherits the same elevated privileges (and IL) as Process A. Therein lies the problem. There might be other independent instances of Process B that do not have elevated privileges, and all of these Process B instances need to be able to send messages to each other. This obviously fails if one instance of Process B is elevated and another is not.

I know we can open holes in the UIPI message filter using the ChangeWindowMessageFilter API method, but this doesn’t seem like the ideal solution. Instead, I would much rather have Process A spawn Process B with reduced privileges, specifically so that it can communicate with the other Process B instances. I think by default the other Process B instances run at the «Medium» IL, so therefore I’d like Process A to spawn Process B instances with this same IL.

My searches have led me to the CreateProcessAsUser and CreateRestrictedToken API methods, but despite this documentation, all of the various facets of tokens and security descriptors and such is still very confusing to me.

I’ve also come across some threads here (Running a process with lowest possible privileges in winapi and Dropping privileges in C++ on Windows), but I can’t find any good examples with code.

Can anyone provide me with some simple yet «correct» code that will help me spawn child processes using the appropriate Windows IL? Specifically, I’d like an example of how to take the existing Process A token and convert it so it has the reduced privileges (I’m pretty sure I can figure out the rest). I’m really unclear about whether I need to duplicate the process’ token before modifying it as well.

Вадим Стеркин

Откройте блокнот и перетащите в него текстовый файл с рабочего стола. Сработало? Теперь откройте блокнот от имени администратора и перетащите тот же файл. При включенном UAC у вас ничего не получится! Почему?

В обсуждении опроса про контроль учетных записей я уже объяснял, почему так происходит. Но мой комментарий был кратким и неглубоким. Недавно на форуме TechNet я принял участие в обсуждении аналогичной проблемы с архиватором, и оно побудило меня подробнее осветить вопрос в блоге. Сегодня я предлагаю вам первую часть своего рассказа, в котором речь пойдет об уровнях целостности (integrity levels) и обязательном контроле над ними в Windows.

Начиная с Windows Vista, все процессы и папки имеют определенный уровень целостности. Это позволяет дополнительно разграничивать доступ наряду со списками контроля доступа (ACL), которые настраиваются в свойствах папок и разделов реестра на вкладке «Безопасность».

Концепция уровней целостности — это довольно скучная техническая вещь, но я постараюсь рассказать о ней так, чтобы вам было интересно 🙂

Добро пожаловать в зрительный зал

Представьте, что все процессы в Windows занимают места в зрительном зале по ранжиру:

  • в ложах сидят системные процессы, имеющие системный уровень целостности
  • в первом ряду сидят процессы с высоким уровнем целостности, запущенные с полными правами администратора
  • в партере рассаживаются процессы со средним уровнем целостности, запущенные с обычными правами
  • на галерку загоняют процессы, запущенные с обычными правами, но низким уровнем целостности, например, Internet Explorer и часть процессов Google Chrome

Папки тоже имеют уровни целостности, и по умолчанию им присваивается средний уровень, за некоторыми исключениями, которые я покажу ниже.

В Windows даже администраторы работают с обычными правами, поэтому их процессы сидят в партере. Но администраторам выдается два билета на спектакль – обычный и полный (маркеры безопасности).

Когда администраторы хотят что-то рассмотреть получше, они идут в первый ряд. А контроль учетных записей – это распорядитель зала, который проверяет, есть ли у них туда билет.

Согласно купленным билетам (почти)

Изоляция привилегий пользовательского интерфейса (UIPI) построена так, чтобы процессы с более низким уровнем целостности не могли манипулировать процессами с более высоким уровнем. Однако эта модель не является непроходимой стеной по двум причинам.

  1. С галерки или из партера процесс может прочесть программку спектакля (данные), которую держит в руках процесс, сидящий в партере, т.е. имеет такие же права. Это сделано специально, иначе программам было бы затруднительно считывать данные, в том числе свои.
  2. Процессы все-таки сидят в одном зале (пользовательской сессии) и дышат одним воздухом (системной памятью). Поэтому хулиганствующий процесс из партера может запустить бутылкой в первый ряд (выполнить сложную атаку) и спровоцировать сидящий там процесс к серьезному нарушению общественного порядка (в системе).

Поэтому очень важна роль распорядителя зала, которую играет UAC, на чьи вопросы отвечаете именно вы!

Хотя контроль учетных записей напрямую не связан с уровнями целостности, их повышение зачастую происходит в результате повышения прав.

Экскурсия по зрительному залу

Я предлагаю вам прогуляться по зрительному залу, захватив с собой театральный бинокль для внимательного изучения подробностей интерьера, а также несколько модных аксессуаров от дизайнерских домов Sysinternals и Windows:

  • Утилита Process Explorer покажет уровень целостности процессов в столбце Integrity Levels, который можно добавить из View – Select Columns – Process Image.
  • Утилита PsExec умеет запускать процессы с низким уровнем целостности. В принципе, это может и Process Explorer, просто по ходу экскурсии я выполняю команды в консоли.
  • Системная команда icacls умеет показывать уровень целостности папок и разделов реестра, поэтому сторонние средства нам не потребуются, хотя можно воспользоваться AccessChk от Sysinternals.

Я записал видео прогулки, а также подготовил текстовый рассказ о ней, дополненный скриншотами.

Из партера в первый ряд

Если вы сделали то, что я просил в самом начале статьи, то у вас открыто два окна блокнота – с обычными и полными правами.

Notepad с PID 6580 открыт с обычными правами и имеет средний уровень целостности, а Notepad с PID 408 запущен от имени администратора и имеет высокий уровень. Проводник, explorer.exe с PID 7196, запускается с обычными правами и средним уровнем.

Поэтому перетаскивание файла сработает только в блокнот с PID 6580, имеющий уровень целостности не выше, чем у проводника.

Я показал, что из партера в первый ряд попасть не удается, а заодно стало ясно, почему не сработало перетаскивание файлов в одном из двух случаев. Теперь давайте заберемся на галерку.

С галерки в партер

Программы хранят свои данные и настройки в папке %userprofile%\appdata в трех разных папках.

  • Roaming — «легкая» папка. Если в организации профили перемещаемые, ее содержимое копируется на сервер.
  • Local — «тяжелая» папка. Помимо прочего внутри нее, в папке Temp, хранятся ваши временные файлы. Поэтому ее содержимое на сервер не копируется, чтобы не задерживать процесс входа/выхода из системы.
  • LocalLow — содержит данные, записанные с низким уровнем целостности, и сама она имеет такой же уровень.

С двумя последними папками мы и будем экспериментировать.

Запустите командную строку с обычными правами. Перейдите во временную папку, создайте в ней текстовый файл и попробуйте прочесть его.

Работают чтение и запись, потому что командная строка и временная папка имеют одинаковые уровни целостности.

Теперь выполните в этой командной строке:

Запустится новая командная строка с низким уровнем целостности. В ней будут выполняться все последующие команды. Можно также запустить командную строку в Process Explorer из меню File — Run as Limited User (при этом процесс запускается не только с ограниченными правами, но и с низким уровнем целостности).

Выполните в этой командной строке те же команды, что и ранее.

При попытке записи файла вы получите сообщение «Отказано в доступе». Это происходит потому, что временная папка Temp имеет средний уровень целостности, а командная строка запущена с низким уровнем. Однако прочесть созданный ранее файл можно.

Теперь перейдите в папку LocalLow, посмотрите ее уровень целостности и попробуйте записать файл – он будет успешно создан!

Команда icacls показывает уровни целостности папок только в том случае, если они отличаются от стандартного, среднего уровня. У папки LocalLow он низкий, что и подчеркнуто на рисунке выше.

С реестром происходит примерно то же самое, где для низкого уровня целостности предусмотрен раздел HKEY_CURRENT_USER\Software\AppDataLow.

Как видите, процессы с низким уровнем целостности не могут перебраться с галерки в партер, но могут видеть, что там происходит. Эту модель могут использовать программы, и в папке LocalLow вы найдете их данные. Так, модель реализована в защищенном режиме Internet Explorer, песочнице Google Chrome и защищенном режиме Adobe Reader.

Как победить проблему

Надеюсь, мне удалось объяснить, почему перетаскивание файлов не всегда работает при включенном UAC – все дело в волшебных пузырьках уровнях целостности. Как сделать так, чтобы оно работало всегда? Я думаю, что вы уже догадались!

Нужно запустить файловый менеджер с повышенными правами, от имени администратора, и перетаскивание будет работать нормально.

Впрочем, лучше делать это только при необходимости, иначе с полными правами будут работать все процессы, запускаемые из файлового менеджера.

С другой стороны, проблема в том, что для проводника не предусмотрен запуск с высоким уровнем целостности, в отличие, например, от Total Commander. Вы можете проверить это самостоятельно с помощью Process Explorer, либо посмотреть видео. А через неделю вы узнаете, почему так происходит с проводником и как обойти это ограничение. Гарантирую вам незабываемые впечатления от рассказа 😉

А в каких случаях вы пользуетесь перетаскиванием файлов? Сталкивались ли вы с тем, что невозможно перетащить файл из одной программы в другую?

Об авторе

Вадим — владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь. Поддержать автора вы можете тут.

Вас также может заинтересовать:

Я в Telegram

Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.

комментария 62

Вадим огромное спасибо за видео, просто супер, для меня лично видео более воспринимается:). К сожалению не могу себя приучить включать UAC , поэтому проблем нет.

Алекс, я рад, что вам понравилось видео! В данном случае наглядность очень важна, и видеоряд ее обеспечивает в полной мере.

Алекс: К сожалению не могу себя приучить включать UAC »

Да пора уже 🙂 Будете лучше знать, как работает ОС.

Vadim Sterkin: Алекс, я рад, что вам понравилось видео! В данном случае наглядность очень важна, и видеоряд ее обеспечивает в полной мере.
Да пора уже 🙂 Будете лучше знать, как работает ОС.
»

Буду пробовать в будещем). А видео дествительно отличное, профессионально и понятно оформлено!

Читайте также:  Почему ноутбук очень медленно работает windows 10

А если выключить ЮАК и, сидеть только на галёрке (под юзером), а в случаи необходимлсти выходить из зала и входить в него но уже с другим билетом (админом)? Так безопастно?

Знаю что не тут пишу Вадим, но нельзя ли сделать редактирование своего поста? Поторопился и вижу у себя ошибки…

Галёрка, это безопасно, но неудобно. Я уже давал развернутый ответ: Администратор или пользователь?. Работа с ограниченными правами при включенном UAC не менее безопасна, но более удобна.

Алекс, редактирование комментариев вообще невозможно в WordPress, даже для зарегистрированных пользователей. Сделано во избежание флеймовых войн в больших блогах (блокируется правка задним числом).

Vadim Sterkin: Галёрка, это безопасно, но неудобно. Я уже давал развернутый ответ: Администратор или пользователь?Алекс, редактирование комментариев вообще невозможно в WordPress, даже для зарегистрированных пользователей. Сделано во избежание флеймовых войн в больших блогах (блокируется правка задним числом).
»

Принято во внимание.

Галёрка, дополню свой ответ…

Даже работая в административной учетной записи, можно в качестве дополнительной защиты форсировать политикой ввод учетных данных при каждом запросе UAC. Когда запрос выводится на безопасном рабочем столе, это эквивалентно работе с обычными правами и вводу учетных данных на экране входа в систему (см. предыдущую запись).

При работе с UAC обычным пользователем могут быть сюрпризы, так что надо знать правильные пути настройки параметров.

В Windows XP я часто использую runas для повышения привилегий. Нигде не встречал описания причины, по которой explorer.exe не запускается с повышенными привилегиями, наверное причина подобна тому, что вы опишите в следующем посте?

Tiunov Igor, в XP нет уровней целостности, там совсем другая история.

ЕМНИП, способ запуска облочки с полными правами в ХР довольно прост — нужно убить все процессы explorer в диспетчере задач, а затем из него же выполнить команду runas. См. http://support.microsoft.com/kb/225035/en (русский машинный перевод ужасен). Там для 2000, но в ХР вроде так же. Я уже не помню 🙂

С IE6 можно было использовать runas для запуска iexplore, а затем в адресной строке ввести C:\, но в IE7 это уже убрали. Так что проще всего будет так:

Кстати, runas тоже отличается в ХР и 7.

Vadim Sterkin,

Ну естественно в XP нет уровней, меня интересовало, почему я не могу запустить explorer.exe как отдельный процесс с повышенными правами, чаще всего пользовался именно этим способом — kb225035.
Вот как раз про /separete я и не знал. Этот ключ решает проблему, которую я описал в вопросе. Спасибо!

Tiunov Igor, я рад, что вы узнали новый способ. Но он уже старый, потому что не работает в 7 😉 Впрочем, не будем забегать вперед…

я опять немного позанудствую.

Работа с ограниченными правами при включенном UAC не менее безопасна, но более удобна.

Когда запрос выводится на безопасном рабочем столе, это эквивалентно работе с обычными правами и вводу учетных данных на экране входа в систему

я бы не стал утверждать, что это прямо-таки эквивалентно. Да, требовать нажатия Ctrl+Alt+Delete перед запросом на повышение прав — это правильно. Но ведь после этого все процессы (запущенные с разными токенами и разными уровнями целостности) будут работать в одной сессии. И это позволит им обмениваться оконными сообщениями. В том числе — и со злыми намереньями.

Иллюстрация есть вот тут: http://blog.not-a-kernel-guy.com/2008/03/13/298 (см. комментарии пользователя Alexey).

нужно убить все процессы explorer в диспетчере задач

Ну, это же тоже некрасиво. Гораздо правильнее закрывать оболочку через контекстное меню меню «Пуск» при нажатых Ctrl+Shift.

artem, спасибо за примечание. Я согласен, что термин «эквивалентно» в данном случае некорректен с технической точки зрения.

Но опять же, я исхожу из того, что повседневная работа с обычными правами неудобна в домашней ОС, которая обновлена и защищена в соответствии с рекомендациями МСФТ.

Если есть предпосылки к максимальному закручиванию гаек или требования (организации), это другое дело. Но я не считаю нужным обвешивать себя веригами, лишая комфорта, чисто из параноидальных соображений.

Но по поводу первой моей цитаты, я считаю, там все ок. Лучше работать с включенным UAC под обычным юзером, чем с выключенным UAC входить в учетку админа для настройки ОС.

А ты в домашней ОС с обычными или админскими правами работаешь?

artem: Гораздо правильнее закрывать оболочку через контекстное меню меню «Пуск» при нажатых Ctrl+Shift. »

Да я в курсе, это ж в загадках было 🙂

Но опять же, я исхожу из того, что повседневная работа с обычными правами неудобна в домашней ОС, которая обновлена и защищена в соответствии с рекомендациями МСФТ.

она в любом случае неудобна — безотносительно того, защищена и обновлена ли машина 🙂

Если есть предпосылки к максимальному закручиванию гаек или требования (организации), это другое дело. Но я не считаю нужным обвешивать себя веригами, лишая комфорта, чисто из параноидальных соображений.

С этим тоже никто не спорит. Каждый сам выбирает для себя баланс между защищённостью и удобством. Повышение защищённости практически всегда будет в ущерб удобству, и наоборот. Дискуссии на эту тему надо вести с любителями прятать ноутбуки в мешках из-под картохи, а не со мной. Я только прицепился к словам «не менее безопасна» и «эквивалентно».

А ты в домашней ОС с обычными или админскими правами работаешь?

и на домашней, и на рабочей. Вернее, так — на рабочий ноутбук я пару месяцев назад пролил кофе 🙂 С тех пор всюду хожу с домашним. А он у меня входит в домен, в котором действуют политики, которые основаны на SSLF (http://support.microsoft.com/kb/885409). Только ещё дополнительно накрученные в тех местах, где SSLF оставлял простор для фантазии 🙂 Просто потому, что кто-то же должен показывать что это совсем не больно.

Артем, спасибо за ссылку! Серьезный документ 🙂

Кстати, странно, что до сих пор не опубликовали рук-во по безопасности Windows 7. Понятно, что от Vista применимо в целом, и хорошо, что оно переведено (людьми), но можно было бы его проапгрейдить.

«Ох, нелегкая это работа — Из болота тащить бегемота!» (с)Корней Чуковский «Телефон».
Восхищен Вашим Трудом (да-да, именно с заглавной) максимально доступным языком разъяснять необходимость знания элементарных, но не вполне очевидных функций «любимых форточек»… 🙂
P.S. Сам «вскормлен» на NC и немного VC, плавно «пересел» на WC (который ныне ТС), а, посему тема мне лично, не особо актуальна, хотя ключик HKEY_CURRENT_USER\Software\AppDataLow знаю и иногда пользуюсь «в корыстных целях» .

Vadim Sterkin: Артем, спасибо за ссылку! Серьезный документ 🙂 »

На самом деле, документ — первая попавшаяся под руку ссылка для иллюстрации термина SSLF. Сам он, к сожалению, отходит в прошлое — теперь у нас будет всего одна «сбалансированная» между EC и SSLF модель (см. http://blogs.technet.com/b/secguide/archive/2011/06/29/scm-v2-beta-what-happened-to-the-ec-sslf.aspx).

Vadim Sterkin: Кстати, странно, что до сих пор не опубликовали рук-во по безопасности Windows 7. Понятно, что от Vista применимо в целом, и хорошо, что оно переведено (людьми), но можно было бы его проапгрейдить. »

Похоже, что прикрыли лавочку 🙂 Вернее, переименовали — и свели к набору рекомендуемых политик (таковые есть и для Windows 7 тоже: http://technet.microsoft.com/library/ee712767). А в качестве теории можно использовать текущую версию Threats and Countermeasures Guide (http://technet.microsoft.com/library/hh125921). См. http://blogs.technet.com/b/securitycontent/archive/2011/05/26/windows-security-guide.aspx

ив, спасибо за лестный отзыв о моем Труде 😉

ив: плавно «пересел» на WC (который ныне ТС), а, посему тема мне лично, не особо актуальна »

Если вы работаете с включенным UAC, тема для вас актуальна вне зависимости от файлового менеджера. Разве что вы свой всегда запускаете с правами админа…

Артем, интересные у тебя ссылки. Честно говоря, мне не приходилось особо вникать в содержимое таких документов — нет необходимости. Но теперь буду знать, куда послать, если что 🙂

Vadim Sterkin: Но он уже старый, потому что не работает в 7 😉 »

Виталий, через неделю прочтете 🙂

Vadim Sterkin: Разве что вы свой всегда запускаете с правами админа… »

Именно так, т.к. я единственный пользователь на своем железе (я не говорю про машины, которые мне приходится обслуживать — там просто TC не ставлю, потому что не просят… 🙂 ). А, уж со своей «криворукостью» (чего греха таить — все спотыкаемся, иногда даже на элементарных вещах), всегда проще справится, нежели с чужой. Да и паранойя в вопросах безопасности ОС мне особо не грозит, к счастью…

Кстати, о «криворукости»… 🙂
Вадим, будьте добры, поправьте оценку комментария «Промахнулся» с + на —

ив, оценки комментариев править нельзя. Так что будьте аккуратнее в следующий раз 🙂

Интересно, но возник вопрос — как менять уровни целостности у папок?

оценки комментариев править нельзя

наверно можно прямым запросом к MySQL

Slava21: возник вопрос – как менять уровни целостности у папок? »

Slava21: наверно можно прямым запросом к MySQL »

Наверное… А вы бы стали заморачиваться с этим ради исправления рейтинга одного комментария?

Vadim Sterkin: Наверное… А вы бы стали заморачиваться с этим ради исправления рейтинга одного комментария? »

Наверное — нет. Поэтому будем надеяться, что уважаемый artem извинит меня за невольную оплошность. 🙂
PS Компенсировал в другом комменте…

Работая в ХР использовал для создания виртуальных дисков утилиту от Микрософт Virtual CD-ROM Control Panel, так как она имеет скромные размеры и всегда под рукой. Однако в семерке не сумел ей воспользоваться. От простого пользователя она не запускается, а диски созданные при запуске от админа простой пользователь не видит. Можно ли как то запускать именно эту программу так, чтобы простой пользователь мог монтировать и размонтировать диски и работать с ними?

jakv, контекстное меню — это не волшебная палочка. Если программа не работает под обычным юзером, она не будет работать при запуске из контекстного меню.

Вам шашечки или ехать? Я 5 лет использую elby CloneDrive.

Vadim Sterkin: С галерки или из партера процесс может прочесть программку спектакля (данные), которую держит в руках процесс, сидящий в партере, т.е. имеет такие же права. Это сделано специально, иначе программам было бы затруднительно считывать данные, в том числе свои. »

Вопрос не случайно задан в этой статье и связан с предыдущей цитатой.
В сеансе админа виртуальные диски создаются и с ними можно работать, но с галерки диски не видны, хотя судя по цитате юзер может их видеть Так что дело действительно не в том откуда запускать,а в том как увидеть данные с галерки..

Vadim Sterkin: Вам шашечки или ехать? Я 5 лет использую elby CloneDrive. »

Мне ехать, но политика нашей организации разрешает без ограничений пользоваться продуктами от MS, но получить разрешение на продукты третьих фирм очень сложно, особенно если есть аналогичный у MS.
Кстати я никогда не понимал советов типа «для записи ISO на CD установите Nero» хотя cdburn.exe (14 кб) с этим прекрасно справляется и не требует установки.
Так что по возможности хотелось бы доехать на метро, а не на такси.

Читайте также:  Биос для sony vaio windows 10

jakv, давайте сравнивать цитаты.

С галерки или из партера процесс может прочесть программку спектакля (данные), которую держит в руках процесс, сидящий в партере, т.е. имеет такие же права.

В статье, пусть и иносказательно, но довольно четко выражена мысль о том, что процессы, запущенные с правами обычного пользователя, не могут считывать данные процессов, запущенных с правами админа.

jakv: В сеансе админа виртуальные диски создаются и с ними можно работать, но с галерки диски не видны, хотя судя по цитате юзер может их видеть »

У вас же админ подключил виртуальный диск, а вы хотите, чтобы юзер его увидел. Я усматриваю противоречие с тем, что написано в статье.

Политика вашей организации понятна, но я не считаю, что в данном случае есть аналогичный продукт Microsoft. Да, он есть, но он несовместим с Windows 7, раз не подходит для работы с обычными правами.

Если сторонние средства проблематичны, нужно писать свои тогда. К сожалению, мне больше нечего предложить вам.

к сожалению, есть разница. cd/dvdburn.exe входит в Windows AIK, т.е. он предназначен и протестирован для работы на Windows 7.

Virtual CD-ROM Control Pannel была разработана специально для Windows XP и никогда не тестировалась на более новых ОС. Строго говоря, одно время была надежда на то, что это и не понадобится — существовали планы включить поддержку формата ISO в Virtual Disk API (см. http://msdn.microsoft.com/magazine/dd569754). В результате поддержку ISO так и не реализовали, а развитие VCDCP остановили.

Поэтому применительно к Windows 7 уместно говорить о том, что аналогичного продукта Microsoft не существует. Это должно развязать вам руки в выборе стороннего аналога.

Кстати, трюк cdburn в конекстном меню я показывал еще в начале 2005 года 🙂

Между тем, я тут нашел забавный кейс на коннекте. Еще в 2008 году в МСФТ прекрасно понимали, что фича нужна, но в 7/R2 все равно не включили.

По информации из слитых сборок Windows 8, фича все-таки в ней появится. И вот это мне будет совершенно непонятно. Если приняли принципиальное решение, не внедряйте. А если внедрили, то что же вам мешало внедрить ее раньше.

Артем, поведай, неужели у вас нет внутренней тулзы для монтирования ISO? 🙂 И если есть, может, назовешь ее?

Вадим, ты вот сейчас как маленький прям 🙂

Если приняли принципиальное решение, не внедряйте.

Мне ли тебе рассказывать о куче случаев, когда первоначальное решение оказывалось… так скажем, несколько не тем, чего хотели пользователи? Из самых последних случаев — требование аппаратной поддержки виртуализации в Windows Virtual PC, например. Мудрость заключается, в том числе, и в том, чтобы уметь признавать свои ошибки. Хотя в случае с подключением ISO, на мой взгляд, никакой ошибки не было.

Еще в 2008 году в МСФТ прекрасно понимали, что фича нужна, но в 7/R2 все равно не включили.

Ты не поверишь — мы и раньше это прекрасно понимали 🙂 Но одного только понимания, к сожалению, несколько не достаточно. Мне кажется, что не осталось уже людей, которые верят в то, что в том или ином решении заложены все возможности, которые разрабочики считают нужным реализовать :). Аппетит приходит во время еды, а новые потребности появляются по мере удовлетворения старых. Реализация бесконечного количества функций требует бесконечного времени. А значит, чтобы хотя бы иногда выпускать новые версии, приходится расставлять приоритеты. Очевидно, что какое-то исследование показало, что монтировать ISO требуется гораздо реже, чем… ну, скажем, чем шифровать флешки. Поэтому в реализацию функции BitLocker to Go всё-таки были вложены ресурсы, а монтирование ISO отложили когда-нибудь на потом.

Артем, поведай, неужели у вас нет внутренней тулзы для монтирования ISO? 🙂 И если есть, может, назовешь ее?

Microsoft большой. О каких-то новых внутренних тулзах я узнаю буквально каждый день 🙂 Но инструмент для монтирования ISO я правда специально искал. Нашёл только нечто дико неудобное, что требует установки специального драйвера, к тому же ещё подписанного тестовым сертификатом (а значит — не совместимого с 64-битными системами без включения специального режима при загрузке). В общем, посмотрел и забыл как страшный сон.

Артем, спасибо за развернутый ответ 🙂

Да ясно все — и что еще раньше понимали (я утрировал — ведь люди ждали этого в 2008/Vista, отсюда и кейс на коннекте), и что ошибки делали (хотя отсутствие аппаратной поддержки виртуализации мне казалось больше маркетинговым ходом, нежели техническим).

Но если она появится в следующей Windows, то получится, что два релиза ОС тянули с внедрением копеечной фичи (о да, целый драйвер нужно написать). По мне это фейл, с учетом того, что МСФТ предлагает к загрузке столько программных продуктов в формате ISO.

Ладно, заканчиваю оффтоп 🙂

я утрировал – ведь люди ждали этого в 2008/Vista, отсюда и кейс на коннекте

Ну, справедливости ради надо сказать, что кейс всё-таки относится ко времени разработки уже Windows 7/Server 2008 R2. Хотя бы потому, что от Vista ждали совсем другого (и ещё больше).

хотя отсутствие аппаратной поддержки виртуализации мне казалось больше маркетинговым ходом, нежели техническим

И да, и нет. С одной стороны, система виртуализации с поддержкой аппаратных расширений процессора и без оной — это по затратам практически как два разных продукта. С другой — решение, конечно, было и маркетинговым в том числе. С третьей, каким бы оно ни было — это не отменяет того факта, что оно оказалось ошибочным в силу того, что кто-то недооценил количество унаследованных комьютеров, на которых пользователи почему-то захотели пользоваться WVPC 🙂

о да, целый драйвер нужно написать

Угу. Но не только написать, а ещё и протестировать. И ещё не надо забывать, что драйверы ещё имеют гадкую привычку постоянно занимать память. А если тут вспомнить, сколько всего полезного из Windows 7 было выкинуто в угоду производительности… Причём, выкинуто было даже уже написанное и протестированное — взять хотя бы тот же Sidebar или возможность группировать файлы, кликая по колонкам из заголовка таблицы в «Проводнике».

с учетом того, что МСФТ предлагает к загрузке столько программных продуктов в формате ISO.

Ты обрати внимание, что все эти продукты предназначены для потребления не рядовыми пользователями, а техниками. Техников относительно мало (они не делают рынок), и они вполне способны искать сторонние решения. Например, именно поэтому в WVPC не стали заморачиваться с поддержкой 64-битных гостевых ОС. Единственный случай, когда работа с ISO потребовалась широким массам пользователей — это покупка электронной версии Windows 7. И тут же был выпущен специально обученный Windows 7 USB/DVD download tool!

Да ладно, это уже старый пост, тут всё равно каменты будут читать только заинтересованные лица 🙂

artem: Да ладно, это уже старый пост »

Да ладно, ему еще недели нет 🙂 И думаю, что он даже в следующей Windows будет актуален — ведь это поведение наблюдается с Vista 😉

Кейс с коннекта, конечно, относится к Windows 7, т.к. народ увидел, что в Vista этого нет.

artem: взять хотя бы тот же Sidebar »

Сайдбар просто группировал гаджеты в одну область, a в 7 их отпустили в свободное плавание. Не думаю, что тут большая разница в плане потребления ресурсов.

artem: возможность группировать файлы, кликая по колонкам из заголовка таблицы в «Проводнике». »

Гм… это же в 7 есть — при наведении на столбец появляется «стрелка вниз». Я люблю эту фичу 🙂 Или ты о чем-то другом?

artem: И тут же был выпущен специально обученный Windows 7 USB/DVD download tool! »

И тут же обнаружилось, что создал его вендор, а не МСФТ. При этом был использован открытый исходный код с нарушением лицензии. После чего тулзу сняли и несколько месяцев исправляли этот косяк 🙂

Насчет аппаратной виртуализации в VPC — как бы то ни было, но получилась нужная вещь.

Сайдбар просто группировал гаджеты в одну область, a в 7 их отпустили в свободное плавание. Не думаю, что тут большая разница в плане потребления ресурсов.

Самое смешное, что в Vista их точно так же можно было цеплять в произвольное место рабочего стола. Просто никто это не рекламировал как «мега-улучшение». А в Windows 7 процесс, который отвечает за гаджеты, точно так же называется Sidebar.exe. Вывод? Убрали именно тот кусок кода, который отвечал за полоску справа. Да — понятно, что она оказалась не сильно популярной. (Хотя, на мой взгляд, без этой полоски гаджеты стали совершенно бесполезны). Но это только подтверждает тезисы, выдвинутые выше.

Всё, что не сильно нужно пользователям, подвергается усекновению — до релиза или даже после — в угоду ресурсам (как системным, так и разработческим). Ибо любой код, перенесённый в новую версию, надо тестировать на совместимость с новым кодом точно так же, как и новые функции.

Гм… это же в 7 есть – при наведении на столбец появляется «стрелка вниз». Я люблю эту фичу 🙂 Или ты о чем-то другом?

Это всего лишь фильтр, а не группировка. Группировка осталась в контекстном меню. Но чтобы добраться до неё, теперь приходится тратить на один клик и на два движения мышкой больше.

Ещё можно вспомнить о том, что в Windows 7 канула в лету горизонтальная полоса прокрутки у дерева «Проводника» и ещё с десяток мелких, но полезных вещей.

И тут же обнаружилось, что создал его вендор, а не МСФТ. При этом был использован открытый исходный код с нарушением лицензии. После чего тулзу сняли и несколько месяцев исправляли этот косяк 🙂

Что лишний раз доказывает, что если функция действительно востребована большим количеством пользователей, то её — хоть тушкой, хоть чучелком — всё-таки реализуют.

artem: Группировка осталась в контекстном меню. Но чтобы добраться до неё, теперь приходится тратить на один клик и на два движения мышкой больше. »

Да, верно. Я ей пользуюсь, в основном, в папках с изображениями. Но я уже и забыл, как она была реализована в Vista. Равно как и полоса прокрутки в дереве проводника (об этом я вспомнил на днях, рецензируя статью читателя, которая скоро появится в блоге).

artem: Что лишний раз доказывает, что если функция действительно востребована большим количеством пользователей, то её — хоть тушкой, хоть чучелком — всё-таки реализуют. »

Артем, ты лукавишь 🙂 Эта фича была нужна Microsoft, чтобы клиенты, купившие Windows 7 онлайн, могли записать ISO. Другими словами, появление фичи продиктовано исключительно желанием получить прибыль, а не заботой о пользователях.

И это характерный пример. Пока люди качают бесплатные ISO с сайта Microsoft, им «не нужна» возможность их монтирования. Но как только они заплатили, им похожая фича сразу становится нужна 🙂

Понятно, что MSFT занимается извлечением прибыли для акционеров. Но неправильно обосновывать появление Download Tool спросом пользователей.

Оцените статью