РЕКЛАМА
ИНФОРМАЦИЯ
Rambler's Top100 Рейтинг@Mail.ru

СЕТИ

Интервью с Джоанной Ратковской: виртуализация, руткиты и гипервизоры
Краткое содержание статьи: На днях нам посчастливилось пообщаться с Джоанной Ратковской (Joanna Rutkowska), одним из ведущих специалистов-новаторов в области компьютерной безопасности в мире. Она является основателем и главным исполнительным директором (CEO) Invisible Things Lab (ITL), компании, занимающейся консалтингом и исследованиям в сфере компьютерной безопасности. Джоанна известна своими эксплойтами BluePill и RedPill, также интересными работами и докладами на конференциях. Подробности вы узнаете в нашем интервью.

Интервью с Джоанной Ратковской: виртуализация, руткиты и гипервизоры


Редакция THG,  10 августа 2009
Назад
Вы читаете страницу 3 из 5
1 2 3 4 5
Далее


Обходим аппаратную защиту и кольцо -2

THG. С помощью RedPill ты показала, что можно определить, когда приложение запущено внутри "Матрицы"? Ты просто подсмотрела IDTR через инструкцию SIDT?

Джоанна. Есть разница между определением виртуализации и определением специфического гипервизора, такого как BluePill, о чём мы уже говорили ранее. Следует помнить, что RedPill был нацелен на определение программной виртуализации, которую использовали продукты VMWare ещё до того, как Intel и AMD представили VT-x/AMD-v (до 2006 года). Мой оригинальный детектор RedPill, который был опубликован в 2004 году, не способен определять аппаратную виртуализацию.

Другие представили детекторы, способные (или не способные) определять аппаратную виртуализацию - это случилось в 2006 и 2007 годах, после моей оригинальной презентации BluePill на Black Hat (летом 2006 года).

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

Джоанна. Дело в том, что несмотря на то, что почти все компьютеры, которые мы покупаем сегодня, оснащены поддержкой VT-x, некоторые продукты виртуализации по-прежнему используют программный подход. Мне кажется, что VMWare Workstation всё ещё использует программную виртуализацию при запуске 32-битных гостевых ОС. Новые детекторы виртуализации (следующее поколение RedPill, если вам нравится) способны определять виртуализацию VT-x/AMD-v, при этом они замеряют время выполнения команд или кэширование.

THG. Если вы на светлой стороне Силы, то вас должны беспокоить "зловреды", работающие в кольце 1. Идентификация наличия виртуальной машины тоже полезна. Если вы не планировали запускать виртуальную машину, но она запущена, можно паниковать?

Джоанна. Конечно, но не забывайте, что мир движется в сторону виртуализации, которая используется даже на настольных системах - это Xen Client Initiative (также известная как Project Independence) или Phoenix HyperCore.

THG. Хорошо. Если бы ты была злодеем, запустившим виртуальную машину, то не могла бы ты подменить результаты детектора, чтобы скрытый "зловред" оказался скрытым? Например, если приложение запрашивает IDT и следующая строчка в коде гласит "начинается ли результат с 0xc0 или 0x80", то нельзя ли его подменить? Как защититься от подобных атак?

Джоанна. Защищаться не требуется. Подобные атаки подразумевают, что злодей заранее знает исполняемый файл детектора. Другими словами, у злодея должна быть база данных исполняемых файлов всех потенциальных детекторов, а также он должен знать, за какими байтами внутри этих файлов нужно следить (например, инструкции SIDT), чтобы двоичный код дал такой результат, как если бы виртуализации не было. Это специфические атаки на средства детектирования. Они не масштабируются, но, конечно, используются в реальной среде "зловредами" (конечно, здесь речь идёт не об определении детекторов, а о простом отключении популярных антивирусных программ).

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

THG. Поставщики оружия хорошо зарабатывают на любой войне, поставляя его обеим сторонам. Некоторые современные незаметные "вредоносы" разработаны так, чтобы выключать свои наиболее опасные действия, если код выполняется внутри виртуальной машины. Злодеи поступают так намеренно, чтобы исследователям компьютерной безопасности было сложнее определять истинные возможности и угрозы "вредоноса". Поэтому если "вредонос" ищет IDT в "верхней" памяти, почему бы домашним пользователям не работать под операционными системами, которые располагают IDT в "верхней" памяти? Домашние пользователи вряд ли будут работать с виртуальными машинами, и автор "вредоноса" не сможет узнать путём просмотра IDT в "верхней" памяти, заразил ли он беспечного домашнего пользователя или "вредонос" работает под виртуальной машиной опытного борца с вирусами, который расставил ловушку?

Джоанна. Авторы "вредоносов" тогда бы быстро поняли, что больше не имеет смысла обходить виртуальные системы, и мы вернулись бы к тому же, что имеем сегодня.

THG. Но ты находишься на один шаг впереди, поскольку "зловред" уже не сможет спрятать себя внутри виртуальной машины. Поэтому если исследователю безопасности требуется x дней на разработку противодействия нейтрализации "зловреда" в условиях виртуальной машины, а на анализ образца и противодействие ему требуется y дней, то не сократим ли мы время работы "зловреда" в реальных условиях на x дней?

Джоанна. Как я уже говорила, это совершенно наивно. В долгосрочной перспективе это не даст защиты.

THG. Хорошо, ваша команда не остановилась на кольце -1. Что происходит на кольце -2?

Джоанна. Да, "вредоносы" кольца -1 остались в 2006 году! Каждый процессор x86 поддерживает так называемый System Management Mode (SMM), который сам по себе не новый, поскольку присутствует со времён 80386. Чем же он интересен? Когда процессоры обзавелись виртуализацией, то режим SMM получил больше привилегий, чем новый объявленный режим гипервизора кольца -1. Поэтому мы назвали его "кольцо -2", чтобы подчеркнуть его привилегии по сравнению с режимом гипервизора.

Впрочем, наша команда была не первой, кто стал играть с SMM. В 2006 году Лойк Дафлот (Loic Duflot) представил очень любопытную атаку против механизма уровней безопасности OpenBSD, которая использовала режим SMM. Но Лойк применил SMM в качестве инструмента атаки, а не цели. Тогда, в 2006 году, на многих системах SMM был вообще не защищён - если у кого-то был доступ на уровне ядра (или root), то можно было вставлять любой код в SMM и выполнять его с привилегиями SMM. Конечно, для этого всё равно требовалось получить доступ на уровне ядра.

Но затем производители систем начали защищать режим SMM. Для хранения исполняемого в SMM кода была выделена специальная область памяти, названная SMRAM, которая получила особую защиту со стороны чипсета (Memory Controller Hub, если быть точным). На большинстве современных систем уже весьма нетривиально выполнить код с привилегиями SMM. Для этого нужно найти "дыру" в чипсете или BIOS (даже если у нас есть доступ на уровне ядра). На самом деле, на прошлогодней конференции Black Hat в Лас-Вегасе Шерри Спаркс (Sherri Sparks) и Шон Эмблтон (Shawn Embleton) сделали презентацию о руткитах SMM, но при этом ясно дали понять, что их руткиты можно загрузить только на старых системах (до 2006 года). Что интересно, как раз на следующий день мы показали серию презентаций о компрометации Xen, а также обсудили "дыру" в BIOS Intel, которая позволяла выполнять произвольный код в режиме SMM. Я уверена, что это была первая публично обсуждаемая "дыра", которая позволяла обойти защиту SMM. Затем мы обнаружили ещё два способа пробиться в режим SMM на различных системах. Другая атака, которую мы обнаружили в конце 2008 года, срабатывала на большом количестве систем Intel (и потенциально на машинах со старыми BIOS), мы как раз использовали её для обхода Intel TXT во время нашей презентации на Black Hat DC в феврале 2009 года.

Эта ошибка пока ещё закрывается Intel, но мы планируем представить все детали на конференции Black Hat USA в августе 2009 года. Другая "дыра", обнаруженная нами в начале этого года, касается семантики кэша процессоров Intel. Ту же самую ошибку обнаружил независимо от нас и Лойк Дафлот, и мы согласились опубликовать документацию в тот же день, когда Лойк показывал презентацию на конференции.

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

THG. Атаки SMM ограничены каким-либо "железом"?

Джоанна. Обычно они ограничиваются версией BIOS (или линейкой продуктов BIOS) и семейством чипсетов, например, линейкой 3- или 4- чипсетов Intel.
Назад
Вы читаете страницу 3 из 5
1 2 3 4 5
Далее


СОДЕРЖАНИЕ

Отзывы об интервью с Джоанной Ратковской в Клубе экспертов THG [ 15 отзывов] Отзывы об интервью с Джоанной Ратковской в Клубе экспертов THG [ 15 отзывов]


РЕКЛАМА
РЕКОМЕНДУЕМ ПРОЧЕСТЬ!

История мейнфреймов: от Harvard Mark I до System z10 EC
Верите вы или нет, но были времена, когда компьютеры занимали целые комнаты. Сегодня вы работаете за небольшим персональным компьютером, но когда-то о таком можно было только мечтать. Предлагаем окунуться в историю и познакомиться с самыми знаковыми мейнфреймами за последние десятилетия.

Пятнадцать процессоров Intel x86, вошедших в историю
Компания Intel выпустила за годы существования немало процессоров x86, начиная с эпохи расцвета ПК, но не все из них оставили незабываемый след в истории. В нашей первой статье цикла мы рассмотрим пятнадцать наиболее любопытных и памятных процессоров Intel, от 8086 до Core 2 Duo.

ССЫЛКИ