Введение
На днях нам посчастливилось пообщаться с Джоанной Рутковской (Joanna Rutkowska), одним из ведущих специалистов-новаторов в области компьютерной безопасности в мире. Она является основателем и главным исполнительным директором (CEO) Invisible Things Lab (ITL), компании, занимающейся консалтингом и исследованиям в сфере компьютерной безопасности. Джоанна известна своими эксплойтами BluePill и RedPill, а также интересными работами и докладами на конференциях.
THG.ru: Привет, Джоанна, благодарим, что нашла время пообщаться с нами.
Джоанна: Всегда пожалуйста.
THG.ru: Чтобы не отнимать у тебя много времени, мы отсылаем наших читателей к предыдущему интервью с тобой, в котором мы говорили о руткитах. С ним стоит ознакомиться для начала.
Ну а сейчас мы хотели бы поговорить с тобой о Qubes OC.
Для того, чтобы обрисовать контекст, предлагаем рассмотреть три подхода к системной безопасности. Первый предполагает “неясность” и связан с такими вещами, как рандомизация памяти, запутывание кода и введение обязательных сложных паролей. Это работает как первая линия обороны: если злоумышленники не могут найти дом, то они не могут и попасть внутрь. Такая политика безопасности переводит большинство атак на более доступные цели. Однако, она не работает, когда мишенью становятся именно ваши данные.
И здесь начинается сфера второго подхода, ключевое слово для которого “корректность”. Задача разработчиков в этом плане – устранение ошибок и уязвимостей. Каждый раз с выходом нового патча программное обеспечение работает более корректно. Однако, как можно наблюдать каждый вторник месяца, даже в Microsoft не хватает ресурсов для создания совершенно “правильной” ОС. Современные программы обеспечиваются гигантскими сложными кодами, которые почти невозможно досконально проверить.
И третий (реалистично-пессимистичный) подход, который предполагает, что у злоумышленников всегда есть шанс пройти через системы безопасности, – изоляция. В этом случае основное внимание уделяется методам защиты внутри системы, так, чтобы у того, кто проник в систему, не было доступа к основной части данных. Итак?
Джоанна: Хотелось бы, чтобы все интервьюеры были так хорошо подготовлены.
Я бы добавила ещё одну категорию к перечисленным. Это реактивная безопасность, которую на практике воплощают патчи и подписи для IDS и антивирусов. Правда, известно, что такой подход менее эффективен.
THG.ru: Проблема изоляционного подхода к безопасности заключается в огромной дистанции между заявленным функционалом и фактической результативностью у таких популярных реализаций, как “песочницы” в Safari или Chrome, или Protected Mide в Internet Explorer. “Изоляционная” безопасность так же сложна в воплощении, как и “корректная”?
Джоанна: Нужно сказать, что даже при функционирующей “изоляционной” защите “корректная” безопасность всё равно необходима. Однако, в этом случае она понадобятся не для всего кода, а только для той его части, которая обеспечивает изоляцию.
Если у нас получится создать систему, в которой изоляционную безопасность будет обеспечивать очень маленький участок кода, то это можно будет считать чистой победой. В таком случае проследить за корректностью будет легко.
Кстати, мне кажется забавным, что слово “песочница” стало таким модным. Со времён появления многозадачных операционных систем проводилось обеспечение изоляции между процессами и пользователями (изоляция адресных пространств, контроль объектов файловой системе и так далее).
Можно сказать, что на любой многозадачной операционной системе в течение последних десятилетий каждый процесс был “изолирован”. Штука в том, что “песочницы” работали только с серверными приложениями (так как в настольных системах процессы запускаются под одним и тем же именем). К тому же ядра ОС часто включают ошибки, что также служит причиной слабой изоляционной защиты.
То, что называется “песочницами” сегодня – это попытка решить те же задачи в отношении приложений рабочего стола.
Для этого, например, применяется разбивка работы браузера на несколько процессов: рендеринг, обработка пользовательского интерфейса и так далее. Это хорошо, но вторая проблема остается нерешённой. Можно ли рассчитывать, что огромное ядро системы, которое содержит много ошибок, включает сотни драйверов и сетевых стеков, сможет обеспечить серьезную изоляцию?
Люди, которые публикуют взломы ядер популярных операционных систем (в том числе Linux) определённо дадут вам отрицательный ответ на этот вопрос.
Введение в работу Qubes OC
THG.ru: Вернёмся к теме сегодняшнего разговора. Ваша команда занимается разработкой идеальной стратегии изоляции, реализованной в Qubes OC. Каким образом вы рассчитываете получить результат, которого не смогли добиться в Microsoft, Apple и Google?
Джоанна: Прежде всего, мы минимизируем доверенный код (т.е. код, отвечающий за изоляционную безопасность). Для этого мы используем тонкий и простой гипервизор (Xen), с помощью которого можно запускать много отдельных друг от друга машин и доменов. Но это только часть истории.
Может показаться, что виртуализация на самом деле не будет решением проблемы: небезопасная виртуальная ОС – это по-прежнему небезопасная ОС. Мало того: вводя дополнительный уровень сложности, виртуализация только ухудшает дело!
Правда, само по себе использование виртуализации не ведёт к безопасности. Оно даёт кое-что другое: совместимость. Совместимость позволяет полностью перестроить всю систему и отделить от неё доверенную вычислительную базу, например, переносом сетевых драйверов и стеков в не- доверенный домен, переносом драйверов USB и стеков в другой не-доверенный домен, редизайном графического интерфейса и так далее. При этом останется возможность запускать все приложения, которые сделаны для “нормальных” ОС, которая и не будет знать, что сетевой стек находится в другой зоне. Они и не должны этого “знать”, работая внутри “нормальной” ОС: виртуальные драйвера, которые мы будем делать для ОС, обеспечат доступ к сетевым услугам в нашей переработанной системе.
Если бы не метод виртуализации, нам пришлось бы либо писать все приложения и драйверы с нуля (как это делается в некоторых научных проектах, сконцентрированных на микроядрах), либо, по крайней мере, пересоздать каждое приложение путем компоновки его собственных библиотек. В любом случае нам пришлось бы переписывать большую часть драйверов. Не знаю, кому, кроме Microsoft, по силам подобная задача.
В общем, виртуализация сама по себе не несёт никаких преимуществ безопасности, однако она позволяет осуществить редизайн системы и повторно использовать все приложения и драйверы в обновлённой системе. Вот что удалось воплотить в Qubes.
Использование Qubes
THG.ru: Что случится, если обнаружится уязвимость в Xen, позволяющая выйти за пределы гипервизора?
Джоанна: Зависит от того, что вы подразумеваете под “Xen”. Если вы имеете в виду рабочий режим гипервизора, то такая уязвимость может привести к фатальным результатам. Однако, насколько мне известно, за последние несколько лет только один раз было публично сообщено об использовании уязвимости в Xen с целью взлома: это был код, написанный NSA (управление национальной безопасности) с целью реализации расширений, направленных на безопасность (какая ирония!). Он не был включен в оболочку по умолчанию, так что ошибка не привела к широким последствиям. Эту ошибку нашёл и провёл взлом Rafal Wojtczuk на Black Hat в 2008 году.
Однако, могут быть и другие уязвимости в “Xen”, которые не касаются гипервизора напрямую, но затрагивают другие подсистемы, такие как драйверы конечных устройств или основной код домена (который читает и распаковывает пользовательский образ ядра). Большинство из этих ошибок не будут влиять на работу Qubes из-за серьёзных изменений структуры OC, которые мы проводим.
Кроме того, существует риск возникновения ошибок в базовой технологии, которая используется для гипервизора – в Intel VT-D (он применяется для построения не-доверенных доменов, не путать с VT-x). Насколько я знаю, была только одна успешная атака в обход технологий защиты Intel в VT-D, кстати, тоже у нас. Я думаю, что одна из самых невероятных и сложных атак, которые проводила наша команда.
К сожалению, при наличии ошибок в аппаратных технологиях мало что можно сделать. Мы можем только говорить о найденных проблемах и надеяться, что разработчики в том же Intel будут серьёзнее относиться к своей работе.
Кстати, у нас есть ещё одна найденная уязвимость в аппаратном обеспечении. Сейчас мы ждём новых патчей от разработчика, после чего можно будет опубликовать её. По плану это произойдёт в начале осени, следите за новостями.
THG.ru: Хорошо, надо будет связаться с вами ближе ко времени. А пока предлагаю поговорить о работе с Qubes с точки зрения обычного пользователя. Достаточно ли это просто?
Джоанна: Использование Qubes будет довольно простым, примерно как использование рабочего стола Windows.
Штука в том, чтобы правильно настроить работу Qubes. Нужно будет решить, как разнести свою “цифровую жизнь” по разным доменам. Это может быть что-то совсем простое, как “личный”, “рабочий”, банковский” или “не-доверенный” домены. В зависимости от задач и рисков могут появляться и другие специализированные домены.
Для осторожных пользователей, таких как я, это может быть действительно сложно. В общем, на практике конфигурирование системы Qubes проще осуществлять специализированному ИТ-персоналу.
Также мы стараемся сделать так, чтобы системы “изоляционной” безопасности, будучи однажды настроены, работали максимально автоматизировано и прозрачно. И, кроме того, для версии 1.0 поставлена задача сделать рабочий стол, не сильно отличающимся от типичного рабочего стола в Windows для бизнес-пользователей.
Медлительный мир безопасности
THG.ru: Как ты считаешь, Qubes в будущем будет широко использоваться или же останется только как пример грамотного концептуирования системы?
Джоанна: Конечно, не только как пример! Мы рассчитываем, что в будущем наш продукт будет представлять интерес для организаций (как коммерческих, так и государственных), которые заботятся о безопасности своих данных и готовы для её обеспечения немного поработать с настройкой Qubes на своих платформах. Мы разрабатываем коммерческие расширения, направленные на централизованное управление политиками. Архитектура Qubes отлично подходит для удалённого управления. Это обеспечивает хороший контроль над безопасностью удалённых станций со стороны специалистов.
Однако, мы прекрасно понимаем, что Qubes никогда не станет системой для домашнего использования. Установить её правильно будет слишком сложной задачей для обычных пользователей.
THG.ru: Стабильный релиз по-прежнему ожидается в октябре?
Джоанна: Скорее в конце года.
THG.ru: Как ты думаешь, почему всё развивается так медленно в сфере безопасности? Сейчас доступны аппаратные технологии для разработки более безопасных операционных систем. Однако их распространение всегда задерживается. TPM, введённый семь лет назад, так и не стал стандартной функцией на каждом выпускаемом компьютере. Почему компании не торопятся с выпуском безопасных систем несмотря на то, что сейчас доступны все программные технологии?
Джоанна: Я не думаю, что TPM автоматически сделает систему более безопасной. Реализуя доверенную загрузку, он является хорошим средством разве что против Evil Maid Attacks, но ничего не может предложить против любых программных атак.
Куда перспективнее в плане безопасности ранее мной упомянутая технология Intel VT-D, которая позволяет создавать подсистемы не-доверенных драйверов, такие как не-доверенная сетевая подсистема, подсистема USB и так далее. Но для её использования требуется радикальная перестройка ОС, так что не удивительно, что она не распространилась широко.
Какую именно “программную технологию” вы имеете в виду? Может быть, это Safe Languages (безопасные языки) и проекты вроде Microsoft’s Singularity?
THG.ru: Именно.
Джоанна: При прочтении ранней документации по Singularity видно, как много усилий было вложено в технологии программной изоляции. Там предлагалось даже отвести часть технологий программной изоляции от процессора (MMU, кольцо 0/3)! Однако двумя годами позже те же люди пересматривают позиции и рекомендуют усиление аппаратной защиты памяти. Почему, как ты думаешь? Потому что для аппаратной защиты памяти нужно разработать всего несколько тысяч строк, в то время как написание кода на безопасном языке требует миллионов строк, которые обеспечивают компиляцию и верификацию и, скажем, запускают очистку системы. И все они должны находиться в доверенной зоне!
Не поймите меня неправильно. Мне бы хотелось, чтобы было как можно больше программного обеспечения с безопасным кодом. Хотелось бы, чтобы почтовый клиент использовал безопасный код. Однако, мы никогда не сможем заменить низкоуровневые механизмы аппаратной защиты, как, например, технология защиты памяти (MMU) или DMA – защита (IOMMU). Что до последней (примером может служить как раз Intel VT-D), то это пример максимального риска, что признаётся даже в самых оптимистичных из ранних документов по Singularity.
Возможна ли безопасность на практике?
THG.ru: И последний вопрос, философского толка. После бомбардировки Брайтона в 1984 году IRA опубликовала сообщения, в котором содержались следующие слова: “…нам повезло один раз. Вам должно везти всегда”. В применении к компьютерной безопасности ситуация схожая, но дела обстоят хуже. С хакерами нельзя договориться и, очевидно, в будущем нас ждут атаки на “облачные” базы данных. В них безопасность конечного пользователя зависит от рыночных приоритетов и политики провайдера “облака”. При этом уязвимости в “облаке” открывают путь прямо к рабочим станциям пользователей. Как ты думаешь, у нас есть шансы победить в этой войне, или можно надеяться только на минимизацию потерь?
Джоанна: Если бы я не верила в возможность создания достаточно безопасной системы (значительно более безопасной, чем другие), я бы не вкладывала столько усилий в создание Qubes. Лично для меня важно ещё и, при возможности, использовать привычное аппаратное и программное обеспечение. Мне, например, нравится продукция Apple. Однако, для безопасности данных я готова использовать другой ноутбук, не Mac.
THG.ru: А используешь ли ты Qubes в качестве основной системы? Или в паре ещё с какой-то ОС?
Джоанна: Да, я использую Qubes в качестве основной системы. Я полностью перешла на неё в марте 2010 года, ещё до первого релиза “Alpha 1” в апреле. Так что я – первый пользователь Qubes в режиме полного рабочего дня.
THG.ru: Используешь Qubes на Macbook через Boot Camp? Или он установлен на твоём PC?
Джоанна: Сейчас я использую Sony Vaio Z в качестве основного ноутбука, на нём установлен Qubes. Этот компьютер имеет некоторые преимущества перед MacBook, такие как поддержка Intel VT-D в BIOS и больше драйверов для различных устройств в Linux.
Для разных задач вроде чтения новостей, составления списков покупок, ведения ежедневника, фото, слайдов и так далее я использую iPad 2, который купила несколько месяцев назад. Мне нравится это устройство и иногда я мечтаю разработать Qubes для ARM, который мог бы работать на платформах на базе iOS. Эта задача легко выполняется технически, но, к сожалению, проблемы с лицензией не дают возможности осуществить её.
THG.ru: Что касается “таблеток”, не думала об устройствах бизнес-класса от Cisco и HP?
Джоанна: Возможно, однажды мы выпустим Qubes для ARM и будем использовать Android для домена.
THG.ru: Звучит интересно. Спасибо, что нашла время поговорить с нами о Qubes OC. Держи в курсе новостей.
Джоанна: Было приятно пообщаться.