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

СЕТИ

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

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


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


Могут ли "вредоносы" прошивать BIOS?

THG. Может ли какой-либо современный "зловред" прошить BIOS?

Джоанна. Нет! За последние месяцы в этом вопросе возникло немало путаницы. Некоторые пользователи считают, что атаки SMM автоматически позволяют прошивать BIOS. Это не так. Кроме того, на конференции CanSecWest чуть раньше в этом году была показана несколько неудачная презентация двух исследователей из Core, демонстрировавшая "Persistent BIOS Infection/Хроническую инфекцию BIOS". Я видела слайды, они представили всё так, как будто обнаружили универсальный способ прошить любой BIOS, причём защититься от подобных атак нет возможности. На самом деле, всё это оказалось очень далеко от правды.

Начнём с того, что они атаковали старые и несложные BIOS: Award BIOS и VMWare BIOS (это само по себе значит не очень много, поскольку это не настоящий BIOS). Два этих BIOS не требовали, чтобы обновления прошивки имели цифровую подпись производителей. Поэтому нет ничего особо страшного в том, что появилась возможность добавления в них какого-либо вредоносного кода. С другой стороны, большинство современных BIOS (Intel или Phoenix BIOS) позволяют прошивать только обновления, подписанные производителем. Этот механизм используется уже многие годы, при этом он не имеет ничего общего с TPM или технологиями Trusted Computing.

Ситуация для нас не совсем удобная, поскольку в августе на Black Hat Рафаль и Алекс будут показывать реальные атаки на прошивание BIOS, которые обходят защиту прошивания Intel BIOS. Рафаль и Алекс покажут, как можно прошить защищённый BIOS Intel, хотя обычно поддерживаются только подписанные обновления. Презентация будет очень интересной, а эксплойт можно назвать вообще произведением искусства. Но я сомневаюсь, что "вредоносы" будут выполнять похожие атаки - они слишком сложные и слишком привязаны к определённому BIOS. Но с исследовательской точки зрения эта атака очень ценная, с намного большими потенциальными последствиями, чем "хроническая инфекция BIOS". Но подробнее об этом я расскажу в августе.

THG. Жду с нетерпением! Как насчёт атак кольца -3?

Джоанна. Им будет посвящён второй доклад Алекса и Рафаля на конференции Black Hat в августе. Атаки кольца -3 вообще совершенно новые, опять же очень интересные, а потенциал возможностей куда шире, чем у руткитов SMM. Как можно дать больше привилегий, чем SMM, где есть уже все привилегии? К сожалению, я не могу сказать больше. Просто скажу, что мы уже некоторое время тесно работаем с Intel по поводу обеих найденных уязвимостей, и Intel представит исправления за несколько недель до конференции.

THG. Что ты можешь рассказать о HyperCore?

Джоанна. HyperCore - это "тонкий" гипервизор для ноутбуков, разработанный Phoenix Technologies. Нас наняла Phoenix, чтобы мы исследовали различные технологии, которые можно потенциально использовать для защиты гипервизора. Как часто бывает в индустрии, я не могу публично рассказывать об этом исследовании, а также о том, какая его часть будет использоваться в готовом продукте.

Быть ближе к пользователю?

THG. Судя по большей части исследований, вы всё ближе и ближе подбираетесь к CPU. Но как насчёт другого подхода, а именно быть ближе к пользователю? Если вы можете захватить память GPU, то можно ли "подложить" пользователю диалог запроса пароля, который позволит получить пароль администратора? Или как насчёт захвата USB-контроллера и записи вводимой информации?

Джоанна. Ты думаешь, что приближение к CPU означает отдаление от пользователя? Правда? Именно CPU является центральной частью системы. Всё, что делает пользователь, данные всех его программ обрабатываются центральным процессором. Это самый близкий компонент к пользователю, который только можно представить. Именно на процессоре все данные рано или поздно расшифровываются, а все действия рано или поздно выполняются.

THG. Я фанат 3D-графики, GPGPU, и среди моих хобби фотография и кино. Конечно, я думаю, что GPU ближе к пользователю, чем CPU! В конце концов, всё зависит от восприятия. То, что вы не видите, повредить не может. Сколько раз вы находили испорченные продукты, упрятанные в закрома холодильника? Пока вы не нашли их по запаху или по внешнему виду, вы даже не задумывались об их существовании.

Джоанна. Насчёт предположений о захвате памяти GPU - я не думаю, что это будет очень практичная атака для "вредоноса". Даже традиционные пароли выводятся в виде звёздочек, поэтому у GPU возникнут проблемы с тем, чтобы увидеть пароль под звёздочками.

THG. Если только вы не пользуетесь iPhone, где пароли ничем не закрываются. Прости, что перебил.

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

Есть и ещё одна проблема, связанная с таким подходом. Как быть, если пользователь более осторожен и использует разные браузеры для повседневной работы (возможно, он даже хранит его внутри виртуальной машины) и для банковских операций? В таком случае будет нелегко проникнуть внутрь "банковского" браузера, придётся прибегать к каким-либо другим атакам.

Кроме того, есть ещё одна причина, почему мы фокусируемся на глубоких аппаратных атаках. Мы считаем, что безопасные системы должны строиться на прочном основании, иначе в них нет никакого смысла. Это особенно важно, если вы поддерживаете принцип "безопасность путём изоляции" как и я (подробнее см. пост Джоанны в её блоге).

Безопасность путём изоляции

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

Джоанна. Конечно, но мы должны разрабатывать наши системы с предположением, что любая программа потенциально содержит "дыры", и ОС должна защитить другие приложения от неправильно работающей или заражённой программы.

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

Джоанна. Это очень общий вопрос, на который сложно дать какой-либо определённый ответ, который бы всем подошёл.

THG. А что ты делаешь для своих рабочих систем?

Джоанна. Сначала, как я уже говорила, я прониклась подходом "безопасность путём изоляции". Но проблема заключается в том, что все популярные ОС, такие как Vista, Mac OS X или даже Linux, не обеспечивают должную степень изоляции своих приложений. Это результат, главным образом, больших монолитных ядер в этих ОС, которые состоят из сотен драйверов третьих сторон, работающих с такими же привилегиями, что и ядро. В результате "вредоносу" будет довольно легко проникнуть в ядро, то есть обойти любые механизмы безопасности ОС.

Я пытаюсь обойти эту слабую изоляцию приложений с помощью виртуализации. Я использую разные виртуальные машины для работы разных типов браузеров, которые я использую для разных типов активности. Так, я запускаю "красную" виртуальную машину для повседневной работы в браузере, которая не является для меня критически важной: чтение новостей, поиск информации в Google и т.д. Я использую "жёлтую" машину для более важных задач, таких как покупки в онлайн-магазинах, обновление моего блога на Blogger и т.д. Наконец, "зелёная" виртуальная машина обеспечивает доступ к моему банковскому счёту.

Меня мало обеспокоит, если кто-то взломает мою "красную" машину - на самом деле я возвращаю её к известному "здоровому" состоянию через образ каждую неделю или около того. Насчёт взлома "жёлтой" машины я беспокоюсь намного сильнее. Например, я использую опцию NoScript в браузере и разрешаю только скрипты с некоторых сайтов, которые я посещаю (онлайновые магазины, блог и т.д.). Конечно, кто-то может сделать атаку перехвата "человек посередине" (man-in-the-middle, MITM) на соединение HTTP с открытой передачей текста, которое находится в "белом списке" NoScript и внести вредоносный код, но, опять же, "жёлтая" машина для меня некритически важная, и если кто-то украдёт из неё информацию, катастрофы не произойдёт. Но вот "зелёная" машина может работать только с соединениями HTTPS к сайту моего банка. Довольно важно убедиться, чтобы использовались только соединения HTTPS, которые позволяют избежать атаки "человек посередине", например, при использовании WiFi в отелях.

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

Есть ещё некоторые детали, которые следует учитывать при использовании подобной конфигурации, например, выполнение обновлений, использование буфера обмена, перенос файлов между машинами и host-системой, где будет находиться почтовый клиент, когда нужно использовать "зелёную" машину, а не браузер host-системы и т.д. Впрочем, не будем вдаваться во все детали, а то интервью превратится в руководство "сделай сам".

Впрочем, нельзя сказать, что моя конфигурация идеальна. Чтобы запускать все мои виртуальные машины я используют гипервизор второго типа (VMWare Fusion) - довольно "громоздкое" приложение для моей host-системы. С теоретической точки зрения вряд ли можно обосновать, что будет сложнее найти "дыру" в гипервизоре типа II, чем "дыру" в ядре самой ОС. И то и другое - большие и громоздкие программные оболочки, внутри которых присутствует большое количество драйверов. Но, как показывает практика, поиск уязвимостей в гипервизоре более сложен. Атакующий сначала должен найти способ выполнения кода в ядре гостевой операционной системы. Помните, что атака начинается с возможности выполнения кода только в браузере, затем атакующему нужно найти способ добраться до VMM (гипервизор). Ему нужно выйти за пределы виртуальной машины и сделать какие-то разумные действия в ядре host-системы, которое может совершенно отличаться от ядра гостевой ОС (я использую Windows на гостевых системах и Mac OS X на host-системе).

THG. Работаешь с Google Chrome?

Джоанна. Да, я использую этот браузер для своей "красной" машины. Основная причина выбора - мне понравился его графический интерфейс, он работает быстро и поддерживает все эти скрипты, Flash и Бог знает что там ещё - всё, что нужно для просмотра типичных новостных сайтов сегодня.

Впрочем, данное решение лучше воспринимать как временное. Правильное решение - это установка гипервизора типа I (боле простого), похожего на Xen, который безопасно загружается в момент старта системы (например, через технологию Intel TXT), а затем этот "тонкий" гипервизор будет управлять всеми виртуальными машинами. Конечно, чтобы гипервизор был "тонким", нам нужно избавиться от драйверов и эмуляции ввода/вывода. Для этого нам нужны технологии Intel VT-d (не путайте с VT-x) или AMD IOMMU. Что касается ноутбуков Intel, то это более или менее соответствует моделям на Centrino 2. Как раз Phoenix HyperCore и Xen Project Independence являются попытками пойти в этом направлении. Но сегодня "толстые" гипервизоры типа II от VMWare или Parallels остаются единственным возможным вариантом.

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

Джоанна. Именно хороший дизайн ОС (или гипервизора и ОС) способен защитить от "вредоносов", а не какие-либо хитроумные добавления третьих сторон, наложенные сверху на что-то, что по своему дизайну не защищено.

THG. Видишь? Подход "безопасность через дизайн" всё же важен!

Джоанна. Да, но я подразумеваю дизайн нескольких ключевых элементов системы (ядро/гипервизор), а не всего программного обеспечения.

THG. Есть ли способы "проголосовать рублём" за то, чтобы компании использовали упреждающий подход к безопасности?

Джоанна. К сожалению, я не вижу простого способа это сделать. На рынке просто нет хороших продуктов, если рассматривать операционные системы для настольных ПК. Будь то Mac, Windows или даже Linux, все эти системы используют большие монолитные ядра, которые содержат драйверы, разработанные третьими сторонами. Это создаёт серьёзный вектор атаки против любых механизмов изоляции, обеспечиваемых ОС, таких как разделение процессов, разделение учётных записей пользователей или защита ядра.

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

Джоанна. Действительно это так. С одной стороны, довольно многие пользователи не видят никаких проблем, доверяя web-сервисам свою личную информацию, начиная от календаря (Google Calendar) и заканчивая документами (Google Docs) и даже записями о здоровье (Google Health). Даже если предположить, что Google (или другой аналогичный провайдер web-сервисов) обеспечивает идеальную безопасность (что на самом деле не так), доверяем ли мы ИТ-персоналу, который там работает? Но на самом деле большая часть информации хранится по-прежнему на персональных компьютерах, а не в облаке (слава Богу). Кроме того, даже если мы будем хранить всю информацию в облаке, тогда вредоносные программы, атаковавшие ваш персональный компьютер, могут получить доступ и к информации из облака. Поэтому действительно защита персональных настольных компьютеров является самым важным аспектом компьютерной безопасности, и возможны гораздо худшие последствия, чем украденный номер кредитной карты.

THG. Многие наверняка поспорят, что там, где критически важна многослойная безопасность, всегда нужно начинать с подхода "безопасность через дизайн". Код нужно проверять и аккуратно писать с самого первого дня. Это даст наибольшие шансы на успех, чем исправление уже рабочей системы "на лету" или повторное использование старого кода, который был написан в эпоху "до безопасности". Добавление всех других элементов, таких как рандомизация и изоляция, даёт дополнительные слои. Всё ли сказанное верно?

Джоанна. Я скептически отношусь к подходу "безопасно, поскольку правильно написано". Я не думаю, что наши приложения и драйверы, да и большинство программного обеспечения в целом, будет в ближайшем будущем свободно от ошибок (да и не в ближайшем будущем тоже). Лучше сфокусироваться на "тонких" ключевых компонентах, которые не будут содержать "дыр", таких как гипервизоры первого уровня, а уже они смогут обеспечить изоляцию между другими компонентами, чтобы ограничить возможный вред, который они смогут нанести (например, один взломанный браузер, который используется для повседневного поиска в Google, не повлияет на другой защищённый браузер, который используется для банковских операций). Что интересно, индустрия безопасности почему-то верит в подход "безопасно, поскольку правильно написано" и в то, что разработчики когда-нибудь перестанут ошибаться. Или, по крайней мере, хочет, чтобы мы в это поверили.

Когда я читаю новости об очередной "дыре" в IE или Adobe Reader, или Flash Player, то я не перестаю пожимать плечами: ну и что? Что это изменит?

THG. Я не скажу ничего нового, но мы должны всё равно пытаться создавать безопасный код, особенно при написании чего-то "с нуля". Впрочем, ладно.

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

Джоанна. Конечно, но в данном случае мы говорим о безопасности на стороне сервера, хотя мы до сих пор обсуждали безопасность настольных компьютеров - в этих двух областях разные угрозы и разные решения. Скажу честно, я уважаю мастерство людей, которые находят и затем используют различные "дыры" в браузерах. Это всё очень круто и часто очень красиво. Но с перспективы "как сделать компьютер более безопасным" это не так и важно. Мы никогда не исправим все "дыры" в IE или Firefox - эти программы постоянно расширяются, в них добавляются новые функции, поэтому даже если мы проверим полностью весь код IE 7, нам придётся начинать всё сначала с браузером IE8 и так далее. Конечно, для поставщиков программного обеспечения, таких как Microsoft, намного проще идти проторенными дорожками, выпускать "заплатки" к каждой найденной "дыре". Это намного проще, чем взять ОС и полностью изменить дизайн её ядра, а затем заставить разработчиков "железа" переписать свои драйверы.

Я каждый раз удивляюсь, что многие эксперты по компьютерной безопасности уделяют внимание разным хардкорным способам атаки, таким как переполнение на основе кучи (heap), и в то же время они мало знакомы с новыми грядущими технологиями, у которых есть замечательный потенциал изменить весь ландшафт безопасности персональных компьютеров - например, TPM, TXT и VT-x/VT-d. Конечно, круто писать эксплойты для приложений, но участие в этой бесконечной гонке вооружений не поможет лучше защитить наши компьютеры. Вы не сделаете компьютер более защищённым, если будете постоянно искать "дыры" и писать эксплойты!
Назад
Вы читаете страницу 4 из 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.

ССЫЛКИ
Реклама от YouDo
Грузоперевозки до 1 тонны - подробнее http://perevozki.youdo.com/cars/tonnage/1ton/.