Выбрать главу
Виртуализация и безопасность

Безопасности во всех ее ипостасях на IDF было уделено очень много внимания. На подходе уже первые системы с ее аппаратной поддержкой, и в ближайшие несколько лет разработка «безопасных приложений» и «безопасных операционных систем», несомненно, будет одной из актуальнейших «программистских» тем. Шифрование на канальном уровне — лишь один из аспектов общей проблемы, коротко описывающейся так: главная угроза корпоративным сетям исходит не «извне», а «изнутри» — хакеры предпочитают «внедриться» в сеть, «стать одним из своих», вместо того чтобы преодолевать навороченные файрволлы и IDS на ее границах. И та же LinkSec, востребованная, если хакер попытается физически подключить к сети «чужой» компьютер или иное «прослушивающее» оборудование, будет абсолютно бесполезна, если в одну из машин «доверительной» сети окажется внедрен троянец.

Что делать? Виртуализироваться! Виртуализация, позволяющая создавать на одном компьютере изолированные друг от друга виртуальные машины, и безопасность идут рука об руку, поскольку вместо комплекса мер по защите компьютера в целом — файрволла, антивируса, разграничения прав доступа — достаточно реализовать защиту только сравнительно маленькой программки — менеджера виртуальных машин (VMM). Во-первых, с его помощью можно выстраивать «доверительную пирамиду»: VMM при создании очередного раздела на компьютере проверит «цифровую подпись» загрузчика операционной системы, загрузчик проверит подписи всех исполняемых файлов и данных операционной системы, операционная система будет проверять подписи у всех запускаемых программ, программы — у всех запускаемых скриптов и используемых данных и т. д., где каждый уровень, который мы уже считаем надежным, проверяет надежность следующего уровня. Если аппаратно обеспечить гарантию подлинности самого первого уровня, с которого начинается «пирамида», — а именно это и делают TPM, LaGrande и иже с ними, то на подобном компьютере будет принципиально невозможно запустить что-либо неподписанное кем-то, кому мы доверяем, — в частности, того же троянца. Во-вторых, виртуализация гарантирует, что если «вредная» программа все-таки будет запущена (например, где-то в описанной схеме встретится незащищенный слой, систему безопасности для собственного удобства отключит сам пользователь или, что еще неприятнее, из-за ошибки в софте «подписанная» программа сделает что-нибудь «неприличное» [Как вы помните, «борьба за безопасность» началась еще с введения бита NX/XD, который позволял предотвратить один из самых распространенных видов подобных атак, заставляющих недостаточно аккуратно написанное приложение выполнить произвольный «чужой» код, послав на его вход специально подобранную последовательность данных]), то «погибнет» лишь один из «отсеков корабля», а не вся система. Скажем, дыра в WinAMP или многострадальном Internet Explorer, использующихся в неслужебных целях, не станет причиной компрометации бизнес-приложения, работающего с важными данными, поскольку пробившийся в одну виртуальную машину низкой защиты хакер попросту не увидит недоступные для него остальные машины, на которых запущены более критичные вещи.