|
Введение
На днях нам посчастливилось пообщаться с Джоанной Рутковской (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) определённо дадут вам отрицательный ответ на этот вопрос.