Как стать автором
Обновить

Комментарии 10

Данная программа слабо учитывает факторы «окружающей среды». Гораздо эффективнее использовать систему прав ОС.
ОС — это неуправляемый код. Последняя попытка написать ОС с использованием управляемого кода (Singularity), насколько мне известно, успехом не увенчалась.

На уровне современной ОС можно очень грубо, в сравнении с управляемым кодом, управлять правами.

Если мы захотим средствами ОС ограничить доступ ко всем файлам на диске С и D для определенной программы — нам прийдется создавать специальную учетную запись (под которой будем в дальнейшем запускать программу) и явно устанавливать права для этой учетки. Кстати, установка прав для пользователя занимает не мало времени.
Singularity это не попытка написания ОС. Это исследовательский проект MS Research что бы понять как бы выглядела ОС сегодня, если бы в ее основу закладывалась не скорость, а безопансность. С этой задачей, я считаю они справились. Отдельные решения этого прокта, возможно войдут в Windows. Но сингулярити никогда не задумывалась как ос для какого-либо реального использования.
*порезал палец… на некоторые буквы не попадаю :(
Как я понимаю, цель программы — обеспечение безопасности. Ну так давайте её обеспечивать в полной мере, а не костылями. Фактически все интерфейсы для этого есть, (для установки прав на NTFS — «System.Security.AccessControl», для управлением пользователями — «System.DirectoryServices». Идеологически можно было бы совсестить данные виды защит и например встроить в контекстное меню шелла. Продвинутый пользователь и так сможет себе настроить учетку и запустить виртуальные машины для теста, а вот простой обыватель — вряд ли (о выборочном запуске .net-софта для него не может быть и речи).
Мне кажется, идеальный вариант такой:
Пользователь устанавливает общией правила (возможно используя рекомендованные шаблоны).
Если программа хочет использовать функции из запрещенных стандартным шаблоном — появляется окно для пользователя с объяснением что именно она хочет и предложением разрешить или запретить.
Только как это реализовать…
Такое возможно только когда есть возможность перехвата (фактически получаем отладчик). В итоге получаем крайне низкую производительность и общую нестабильность.
Данный функционал в некоторой степени предоставляют «программы проактивной защиты». К примеру, Comodo Internet Security. Но т.к. код неуправляемый — 100% гарантии что все будет перехвачено нет.
Для управляемого кода это сделать можно без проблем. Можно даже доработать сабжевую программу, и запускать все управляемые программы с ее помощью с настройками по умолчанию.

Проблема лишь в том что управляемых программ очень мало.
Такое возможно, выдать минимум прав и добавлять по мере необходимости.
Но даже для .NET это будет набор хуков. Хотя с .NET проще, надо ловить деманды, ассерты…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории