Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #72, НОЯБРЬ 2006 г.

входим в нору

КРИС КАСПЕРСКИ

Спецвыпуск: Хакер, номер #072, стр. 072-054-4


Все это сделано ради двух целей: монополизации рынка системного программирования в руках Microsoft и позиционирования своей системы как защищенной от грабежа premium content'а, что очень нравится Голливуду и другим медиа-магнатам. Борьба с малварью — всего лишь прикрытие!

Остается надеяться, что рыночная доля x86-64 никогда не окажется настолько значительной, чтобы Microsoft смогла похоронить 32-версию Windows, лишив нас возможности выбора, а выбирать следует именно x86, тем более, что Intel выпустила удачную линейку двуядерных процессоров Pentium 4D (впрочем, на поклонников продукции AMD этот призыв не распространяется).

[vista x86-64 – nightmare edition.]

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

Вот две ключевые технологии, впервые появившиеся еще в XP/Server 2003 SP1, но анонсированные только с приходом висты: контроль целостности ядра и обязательное требование цифровой подписи для всех драйверов.

Начнем с контроля целостности ядра, для легитимного взаимодействия с которым Microsoft предоставила множество документированных (и еще больше недокументированных) API-функций. Модифицировать ядро, вмешиваясь в его внутренние структуры, крайне нежелательно. Малейшая небрежность проектирования и/или реализации ведет к нестабильной работе системы, голубым экранами смерти, дырам в системе безопасности, а в некоторых случаях и к потере всех данных. Проанализировав отчеты об ошибках, Microsoft пришла к выводу, что в большинстве сбоев Windows виновата не она, а программное обеспечение, созданное сторонними разработчиками, модифицирующими ядро «пионерскими» способами, то есть без просчета последствий всех возможных ситуаций.

Технология Patch-Guard, реализованная на x86-64 системах, призвана положить конец этому безобразию раз и навсегда. 32-битную версию Microsoft решила не трогать, поскольку в противном случае огромное количество программ тут же отказали бы в работе (подробности можно найти на blog'e одного из сотрудников Microsoft, занимающегося этой проблемой: http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.aspx).

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

При переносе системы на платформу x86-64 у Microsoft появился реальный шанс забить на «спартанские» конфигурации давно умерших процессоров и «развести» ядро, драйвера и прикладной код по трем разным кольцам, защитив ядро от пагубных воздействий драйверов на аппаратном уровне на все 100%. Однако Microsoft пошла своим путем, - ограничилась периодической проверкой целостности основных структур, вызывая «сторожевую» процедуру приблизительно один раз в 5-10 секунд. Хорошая получилась защита, нечего сказать... Малварь буквально рыдает от счастья. 5 секунд — это же целая вечность для процессора, успевающего выполнить за это время миллионы машинных команд, с легкостью отключающих Patch-Guard, поскольку защита и зловредный код обладают одинаковыми привилегиями. Так что на хакеров эта защита не распространяется (описание техники обхода Patch-Guard'а можно найти в статье «Bypassing PatchGuard on Windows x64» — http://uninformed.org/index.cgi?v=3&a=3&t=sumry, и в презентации Жанны Рутковской «Rootkit Hunting vs. Compromise Detection», подготовленной для федеральной конференции Black Hat: invisiblethings.org/papers/rutkowska_bheurope2006.ppt — да! да! да! она девушка и хакер одновременно).

Назад на стр. 072-054-3  Содержание  Вперед на стр. 072-054-5