Могут ли приложения, работающие в ring0, быть безопасными без формальной проверки? - PullRequest
3 голосов
/ 18 июля 2010

Как можно обеспечить безопасность без формальной проверки программы, которая работает в ring0? Может ли виртуальная машина использоваться без различия пространства ядра пользовательского пространства?

1 Ответ

1 голос
/ 19 июля 2010

Вопрос немного сбивает с толку, но я постараюсь ответить.

Запуск любого ненадежного кода в привилегированном режиме вряд ли будет «безопасным» в том смысле, что большинство людей понимают его.Однако, как вы правильно догадываетесь, можно использовать что-то похожее на виртуальную машину, чтобы смягчить действия, которые ненадежный процесс может выполнять в этой среде.Это принцип, на котором работают современные «гипервизоры» - доступ к аппаратному обеспечению (или памяти) контролируется некоторым программным или аппаратным обеспечением «монитора».

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

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

...