Эта статья или раздел нуждается в переработке. |
Йоанна Рутковская | |
---|---|
пол. Joanna Rutkowska | |
Дата рождения | 1981 |
Место рождения | Варшава, ПНР |
Страна | |
Род деятельности | специалист в области информатики |
Научная сфера | информационная безопасность |
Место работы | Invisible Things Labs |
Альма-матер | Варшавский политехнический институт |
Известна как |
автор ПО Blue Pill, автор ОС Qubes |
Сайт | invisiblethingslab.com |
Медиафайлы на Викискладе |
Йоа́нна Рутко́вская[1] (пол. Joanna Rutkowska; 1981, Варшава) — польский специалист и исследователь в области информационной безопасности. Известна в первую очередь по её исследованиям низкоуровневой защиты и скрытого программного обеспечения[2].
О себе отзывается[3] так:
Я — исследователь, который фокусируется на проблемах безопасности системного уровня, например, в ядре, гипервизоре, чипсете и т. д. Именно исследователь, а не охотник за уязвимостями или тестер. Меня больше интересуют фундаментальные проблемы, а не какие-то конкретные «дыры» в каких-либо программах пользователей. Например, может ли ОС или платформа обеспечить какую-либо защиту пользователя, несмотря на то, что приложения, например, Adobe Reader или IE могут быть потенциально скомпрометированы? Я верю в «безопасность путём изоляции».
После её выступления на Black Hat в 2006 году во многих публикациях её стали называть хакером, однако сама Йоанна против этого, заявив об этом в одном из интервью в конце 2007 года[4]:
Я не считаю себя хакером (хотя в прессе меня часто так называют). Я считаю себя исследователем в области компьютерной безопасности, а с недавних пор — ещё и бизнесвумен.
Родилась в 1981 году в Варшаве, Польша. В 11 лет получила свой первый компьютер[5]. Им стал PC/AT 286, оснащенный процессором, работающим на частоте 16 МГц, 2 Мбайт памяти[3] и 40-мегабайтным жёстким диском[5].
У него была монохромная видеокарта Hercules и большинство игр на нем не работало, так что мне ничего не оставалось, кроме как начать программировать.Йоанна Рутковская[5]
Практически сразу познакомилась с GW-BASIC, а примерно через год перешла на Borland Turbo Basic[3]. Начав программировать, Йоанна стала интересоваться как работает операционная система. В возрасте примерно 14 лет она начала изучать язык ассемблера для архитектуры x86 (на MS-DOS) и плавно перешла к написанию вирусов, после чего больше сосредоточилась на математике и искусственном интеллекте[6]. Затем начала изучать основы построения сетей, Linux, системное программирование, что в конце 1990-х гг. вновь привело её к области компьютерной безопасности и написанию эксплоитов для Linux x86, а затем и для Win32-систем[7]. Так что, как и многие из известных исследователей, Йоанна начала писать эксплоиты в подростковом возрасте[5].
Свой первый хак Йоанна сделала после прочтения нашумевшей статьи в журнале Phrack об эксплойте, разрушающем стек, который она также самостоятельно скомпилировала и протестировала:
Я прочитала статью и сказала: „Нет, это не может работать. Это невозможно“. Но это на самом деле сработало.Йоанна Рутковская[5]
Через несколько лет она бросила писать эксплойты, но с удовольствием вспоминает то чувство удовлетворения, вызываемое написанием хорошего эксплойта:
Это удивительно и захватывающе как волшебный фокус. Теперь уже я сосредоточена в несколько другой области, но всё еще отслеживаю интересные эксплойты.Йоанна Рутковская[5]
Затем она постепенно продвинулась дальше: уязвимости ядра, руткиты, скрытые каналы и прочее, а также способы борьбы со всеми этими уязвимостями[7]. В одном из интервью 2007 года она вспоминает:
После некоторого периода написания эксплойтов я начала задумываться о том, чем же заниматься дальше. Меня очень интересовало внутренне устройство ОС и у меня были довольно хорошие познания в нем. Это и привело меня в область руткитов.Йоанна Рутковская[5]
Параллельно с этим закончила Варшавский политехнический институт, получив степень магистра в области информатики[8]. По её воспоминаниям, женщины составляли всего лишь около 5 процентов от общего числа студентов факультета, где Рутковская изучала математику[5]. По её выражению, её университетское обучение имело мало общего с безопасностью[5]. Так, в одном из интервью она сказала, что хоть и изучала информатику в Варшавском Политехническом институте, но большинство вещей изучила сама, как и многие коллеги по отрасли[6].
Примерно в 2001 г. Йоанна начала всерьез заниматься исследованиями в области компьютерной безопасности для платформ на базе операционных систем Linux и Win32, а спустя два года переходит к исследованиям в области программ, работающих по технологии «невидимок» (англ. stealth technology)[9].
В середине октября 2004 года Рутковская выступила на конференции IT Underground 2004, проходившей 12—13 октября в Варшаве. Ею были представлены две презентации, посвящённые руткитам для платформ Linux и Win32, а также методам их обнаружения. Первая презентация «Черные ходы в ядре Linux и их обнаружение»[10] была посвящена двум способам реализации умных черных ходов ядра в сетевом стеке ядра Linux (англ. Linux Kernel Network Stack) при помощи обработчика ptype
и Netfilter, а также представила оригинальные способы их обнаружения, которые впоследствии были успешно реализованы в одном из коммерческих инструментов, написанных самой Йоанной. Также в ней была представлена идея пассивных скрытых каналов, используемая в описанных способах.
Во второй презентации «Обнаружение руткитов на системах Windows»[11] шло обсуждение обнаружение руткитов уровня пользователя и уровня ядра. Первая половина презентации была посвящена применению MS Kernel Debugger (совместно с LiveKD) для обнаружения руткитов уровня пользователя. Остальная часть была посвящена более продвинутым руткитам уровня ядра, а также в ней были представлены некоторые идеи по их обнаружению[12].
Помимо этого, подтекстом выступления было обсуждение способов как сделать руткиты совершеннее. Во время ланча Йоанна продемонстрировала, как можно при помощи фактически одной инструкции (иногда упоминаемой как «любимая инструкция Синана», англ. Sinan's Favorite Instruction) обнаружить использование VMware[13] (то есть идея, положенная в основу проекта Red Pill).
20 октября 2004 года Йоанна оставила первую запись на своем персональном веб-сайте invisiblethings.org, и на следующий день опубликовала на нём материалы обеих презентаций с ITUnderground[14].
28 декабря 2004 года на Всемирном конгрессе хакеров, проходящем в Берлине (Германия) с 27 по 29 декабря, Йоанна представляет доклад «Пассивные скрытые каналы в ядре Linux»[15]. Темой доклада стали пассивные скрытые каналы (сокр. ПСК; англ. passive covert channels, сокр. PCC), не генерирующие собственного трафика, а лишь меняющие некоторые поля в пакетах, создаваемых легальными пользовательскими приложениями или процессами на зараженной машине.
28 сентября 2005 года Йоанна выступила с презентацией «Скрывать и находить: определение пути выявления вредоносного ПО на Windows»[16] на конференции «Хак в коробке»[17], проходившей с 26 по 29 сентября в Куала-Лумпуре (Малайзия), параллельно представив при этом несколько своих разработок, в том числе и System Virginity Verifier. Основной целью презентации было определение списка жизненно важных частей операционной системы и методология выявления вредоносного ПО. Список начинается с таких основных вещей как действия, необходимые для проверки целостности файловой системы и реестра, затем следом идет проверка памяти уровня пользователя (выявление посторонних процессов, вредоносных динамических библиотек (DLL), инжектированные потоки и прочее), и заканчивается такими продвинутыми вещами как определение жизненно важных частей ядра, которые могут быть изменены современным вредоносным ПО, основанном на руткитах (при помощи таких способов, как Raw IRP hooking, различные DKOM-манипуляции или трюки с виртуальными машинами). Причём вне зависимости от полноты данного списка, по мнению Йоанны, для компрометирования системы вредоносным ПО будет использоваться лишь определенное число методов, то есть такой список на любом этапе не может быть бесконечным, а его полнота будет зависеть лишь от сообщества специалистов. В принципе, создание такого списка может значительно повысить осведомленность об угрозах и, в конечном счете, позволит создание более совершенных программ защиты от вредоносного ПО. Концепты подобных программ Йоанна и представила на своей презентации, наряду с несколькими интересными вредоносными программами[18].
В качестве реализации своей идеи описанного сообщества, занимающегося выявлением методов компрометирования систем, Йоанна там же, на конференции, представила проект открытых методологий поиска компрометаций[19] (англ. open methodologies for compromise detection, сокр. OMCD. Данный проект был начат в самом начале сентября совместно с Институтом безопасности и открытых методологий[20] (англ.). В рамках проекта под руководством Йоанны должны были вестись работы над методологией обнаружения вредоносного ПО и руткитов на системах Windows для определения стандарта как для исследователей, так и для разработчиков инструментов, автоматизирующих этот процесс[21].
25 января 2006 года Йоанна выступила с презентацией на Black Hat Federal[22] (англ.), проходившей с 23 по 26 января в Вашингтоне (США), на тему «Охота на руткиты против выявления скомпрометированности»[23] (англ.)[24]. Презентация была посвящена описанию типов скомпрометированности системы, а также в ней было представлено описание способов достижения атакующим полной невидимости без использования классической технологии руткитов. В ходе презентации Йоанна рассматривала такие традиционные уловки руткитов как перезагрузка, сокрытие процессов, открытые сокеты. Также она представила свой новый руткит DeepDoor (разглашать какие-либо подробности о котором она отказалась), способный взламывать код NDIS[25] путём модифицирования четырёх слов в области памяти, где NDIS хранит свои данные. Во время демонстрации Йоанна продемонстрировала, как её руткит исправно выполнял свою задачу по перехвату трафика даже несмотря на то, что межсетевой экран ZoneAlarm блокировал ему доступ. В итоге, Йоанна заявила, что безопасного способа читать память с ядром в Windows не существует. По её мнению, Microsoft должна предоставить возможность сторонним компаниям предлагать решения по защите памяти с ядром. Эксперты, наблюдавшие эту презентацию охарактеризовали её как впечатляющую работу и безумие[26].
Эта же презентация была представлена и 1 февраля 2006 года на конференции IT-Defense[27] (англ.), проходившей с 30 января по 3 февраля в Дрездене, Германия[28][29].
Позднее, на базе представленной классификации, а именно 24 ноября 2006 года, Йоанна опубликовала более расширенную версию своей классификации вредоносного ПО, добавив в неё, в частности, третий тип вредоносного ПО[30].
Точная дата начала официальной работы Йоанны с COSEINC неизвестна. Однако, известно, что это состоялось примерно в марте-апреле 2006 года, поскольку в мартовском интервью Йоанна отозвалась о себе как об исследователе вопросов безопасности, работающем над проектами, связанными с ИТ-безопасностью, для различных компаний по всему миру[31], однако в конце июня в своем блоге она написала, что Blue Pill разработана эксклюзивно для COSEINC[32], а работу над этим проектом она начала в марте 2006 года[33].
13 мая 2006 года выступила на конференции по компьютерной безопасности CONFidence[34] (англ.), проходившей в Кракове с 13 по 14 мая[35][36]. Её доклад, озаглавленный как «Rootkits vs. Stealth by Design Malware (недоступная ссылка)» (рус. «Руткиты против невидимого вредоносного ПО»), был посвящён вопросам, связанным с функционированием руткитов.
22 июня 2006 года Йоанна в своем блоге публикует предварительное описание своей новейшей разработки Blue Pill, над которой она работала последние несколько месяцев. Свою разработку Йоанна описывает как 100%-необнаруживаемое ПО. Идея программы была довольно проста: после внедрения Blue Pill на атакуемый компьютер целевая операционная система переходит под полное управление ультратонкого гипервизора Blue Pill, причём все это происходит «на лету» (то есть без перезапуска системы). Также отсутствуют и потери производительности, характерные для всех «обычных» виртуальных машин, все устройства системы полностью доступны для ОС, что достигает за счет использования технологии AMD, известной как SVM/Pacifica. Несмотря на то, что данная идея в общем-то не нова, Йоанна описывает отличия от ранее представленного руткита SubVirt[32].
28 июня 2006 года на портале eWeek опубликовывается статья «Blue Pill Prototype Creates 100 % Undetectable Malware» (рус. «Прототип Blue Pill создает 100 % необнаруживаемое вредоносное ПО»), посвящённое разработке Йоанны Blue Pill. Райан Нарайен, ссылаясь на запись в блоге Йоанны, в целом повторяет написанное Йоанной. Статья вызывает много шума и бурных дискуссий. 1 июля 2006 года сама Йоанна в статье «The Blue Pill Hype» (рус. «Ажиотаж по поводу Blue Pill») в своем блоге пишет:
статья в целом точна, за исключением одной детали - названия, вводящего в заблуждение. Там говорится, что уже реализован "прототип Blue Pill, создающий 100% необнаруживаемое ПО", что не верно. Если бы это было так, я бы не стала называть мою реализацию прототипом, что подразумевает весьма раннюю версию продукта[37].
Кроме того, в той же статье Йоанна опровергает слухи о том, что её работа была проспонсирована корпорацией Intel (основной конкурент AMD на рынке процессоров). Йоанна утверждает, что её работа была оплачена компанией COSEINC Research, на которую она в тот момент работала, а вовсе не Intel. Йоанна реализовала Blue Pill на архитектуре AMD64 только потому, что её предыдущее исследование (также сделанное для COSEINC) была посвящено Vista x64, для функционирования которой и был приобретён процессор AMD64. И несмотря на наличие желания перенести «Blue Pill» на Intel VT, никаких ближайших планов по этому поводу у Йоанны нет по причине нехватки свободного времени.
21 июля 2006 года Йоанна завершает конференцию SyScan’06, проходившей с 20 по 21 июля 2006 года в Сингапуре[38]. Организатором данной конференции является Томас Лим (англ. Thomas Lim), CEO компании «COSEINC», в которой в то время работала Йоанна. Официально презентация Йоанны называлась «Subverting Vista Kernel for Fun and Profit» (рус. «Сокрытие ядра Vista для развлечения и пользы») и состояла из двух частей. В первой части она продемонстрировала общий способ (то есть не опираясь на какой-либо определённый баг) вставить зловредный код в последнюю 64-битную версию ядра Windows Vista Beta 2, тем самым успешно обойдя широко разрекламированую проверку Vista на «подписанность» кода. Причём представленная атака даже не потребовала перезагрузки системы.
Вторая часть выступления получила (неофициальное, так как это был по сути подзаголовок) название «Introducing Blue Pill» (рус. «Представляя Blue Pill»), в рамках которой представляет свою новую разработку «Blue Pill». Общей целью выступления была задача показать возможность создания (в скором времени или уже) необнаруживаемого вредоносного ПО, которое не будучи привязанным к какому-либо концепту будет представлять собой угрозу как некий алгоритм[39].
3 августа 2006 года на конференции Black Hat Briefings в Лас-Вегасе вновь представляет свою разработку Blue Pill, но поскольку данная конференция привлекает к себе значительное внимание профильных изданий, то данная разработка наделала много шума в IT-сообществе и принесла Йоанне мировую известность. На этой конференции корпорация Microsoft представила свою новую операционную систему Windows Vista широкому кругу IT-специалистов. В ходе демонстрации раздавались предрелизные копии ОС (по сути это были копии последнего на тот момент стабильного релиза системы)[40]. В марте 2006 года Microsoft уже проводила специальную встречу с хакерами (получившей название «Blue Hat 3»), в ходе которой обсуждались вопросы общей безопасности[41]. Поэтому с учётом полученной информации, представители Microsoft позиционировали Vista как самую защищенную ОС Windows. В ходе презентации Джон Лэмберт (англ. John Lambert), руководитель подразделения Microsoft, рассказывал об исправленных уязвимостях системы, ранее обнаруженных в бета-версиях[40]. Через некоторое время подошёл черёд Йоанны выступать. Во время её презентации весь зал был набит до отказа, несмотря на то, что это было последнее выступление последнего дня в рамках конференции по безопасности на «Black Hat». Для исследований и демонстрации Йоанна использовала одну из ранних тестовых версий Windows Vista. В качестве одного из способов защиты системы корпорация Microsoft внедрила в 64-битную версию своей системы механизм блокировки неподписанного кода (то есть не имеющего цифровой подписи). Однако, Йоанна нашла возможность обхода этой проверки. Для выполнения атаки требуются права администратора, что в теории должно было быть блокировано механизмом User Account Control (UAC), который урезает права пользователей, а при необходимости выполнения важных операций требует от пользователей подтверждения. Однако на вопрос о том, как она смогла обойти UAC, Йоанна ответила: «Я просто нажала „Принять“», пояснив при этом, что это сообщение пользователям выдается так часто, что они уже автоматически на него отвечают, уже толком не понимая, что они делают. В ходе презентации сама же Йоанна заявила следующее:
Тот факт, что этот механизм обходится, не означает того, что Vista совсем незащищена. Просто она не настолько защищена, как это рекламируется. Чрезвычайно сложно реализовать 100-процентную защиту ядра.
Завершила своё выступление презентацией уже нашумевшего к тому моменту проекта Blue Pill[42].
Реакция корпорации Microsoft была довольно спокойной. Так, Остин Уилсон (англ. Austin Wilson) 7 августа 2006 года в одном из официальных блогов компании, посвящённом безопасности Windows Vista с долей иронии написал следующее, подчеркнув наличие у неё администраторских прав в атакуемой системе:
Йоанна несомненно чрезвычайно талантлива. Она продемонстрировала способ, которым кто-либо обладая правами администратора может внедрять неподписанный код в ядро 64-битных версий Windows Vista. Некоторые восприняли это так, что некоторые нововведения Microsoft в области безопасности оказались бесполезными. Это не так. Важно понять две вещи: "серебряной пули" не существует когда мы говорим о безопасности, и чрезвычайно сложно защититься от атаки пользователя, сидящего за консолью компьютера с правами администратора. Обе демонстрации, относящиеся к подписыванию драйверов и виртуализации, начались с допущения того, что человек, пытающийся выполнить код, уже обладает администраторскими привилегиями на этом компьютере[43].
Однако, далеко не все аналитики согласились с подобным ответом. Так например, Крис Касперски анализируя информацию, представленную Йоанной, возразил:
Мол, с правами администратора (а "Голубая Пилюля" требует их) еще и не такое возможно! А, что, собственно говоря, с ними возможно?! Загрузить неподписанный драйвер, либо каким бы то ни было другим легальным способом проникнуть на уровень ядра нельзя, что доставляет множество проблем как самим администраторам, так и разработчикам. Во имя её величества Безопасности с этим можно было бы и смириться, если бы Microsoft заткнула все лазейки, а так получается, что нас вынуждают поступиться частью свобод и удобств, предлагая взамен... ничего! Где логика?! Как всегда, логика на стороне Microsoft, преуспевшей только в одном - в продвижении своих глюкодромов на рынок[44].
Осознав успех проекта «Blue Pill», вскоре после этого Йоанна формирует внутри COSEINC небольшую группу исследователей под названием «Advanced Malware Labs», главной целью которой была дальнейшая работа в области вредоносного ПО, основанного на виртуализации. Однако, после нескольких месяцев работы в компании сменились приоритеты, и работа над Blue Pill была закрыта[45].
21 сентября 2006 года Йоанна вновь выступает с докладом «Subverting Vista Kernel for Fun and Profit» (рус. «Сокрытие ядра Vista для развлечения и пользы») на конференции Hack In The Box 2006[46], проходящей в Куала-Лумпур, Малайзия. Версия Blue Pill, представленная на конференции, осталась прежней, но в качестве атакуемой ОС теперь использовался новый выпуск Windows Vista RC1[47] (тогда как ранее использовалась версия Windows Vista Beta 2[48]).
В апреле 2007 года Йоанна решает покинуть COSEINC и создать собственную компанию «Invisible Things Lab» («рус. Лаборатория невидимых вещей»), специализирующуюся на консультационных услугах и исследованиях в области информационной безопасности. Само создание собственной компании было проведено без лишней шумихи, а её дебют был приготовлен на июльский Black Hat USA. В названии фирмы обыгрывалось название её блога «Invisible Things», ставшего к тому моменту весьма популярным. 1 мая 2007 года в компанию на должность главного разработчика устраивается россиянин Александр Терешкин (также известный как 90210), также бывший член COSEINC AML[45][49]. Юридически фирма оформлена в Варшаве, Польша. Физического офиса у неё нет. Сама Йоанна о своей компании говорит так:
Мы гордимся тем, что мы - современная компания. У нас нет физического офиса вообще. Все работают на дому, а информацией мы обмениваемся через почту с шифрованием. У нас нет такого, чтобы работник высиживал в офисе с девяти до пяти. Работа, которой мы занимаемся, требует креативности, и было бы глупо заставлять людей высиживать чёткий график[3].
Компания специализируется на вопросах безопасности операционных систем и виртуальных машин и оказывает различные консультационные услуги. В 2008 году в компанию приходит Рафал Войчук, сотрудничавший с Йоанной и Александром ранее[50]. Александр Терешкин в ITL работает на должности главного исследователя. По словам Йоанны, они вместе с Александром занимаются изучением угроз и консультационными проектами, однако Александр немного больше времени уделяет программистской работе, а сама Рутковская сосредоточена непосредственно на бизнес-задачах[51].
10 мая 2007 года открывала конференцию NLUUG, проходившую в Эде, Нидерланды[52][53]. Её доклад, озаглавленный как «Virtualization — The Other Side of the Coin» («рус. Виртуализация - обратная сторона монеты»), вновь был посвящён проекту Blue Pill[54]. В ходе презентации рассматривались достоинства и недостатки недавно представленной технологии виртуализации. Значительная часть доклада повторяла материал доклада «Subverting Vista Kernel», представленного Йоанной в прошлом году на конференции Black Hat, но ограничивался лишь темой виртуализации (без обсуждения атаки на ядро Windows Vista), а также рассматривались ещё несколько вопросов с «философской» точки зрения[12].
13 мая 2007 года Йоанна должна была выступить на конференции CONFidence 2007, проходящей с 12 по 13 мая в Кракове[55]. Её доклад, получивший условное название «A la carte» («рус. На выбор»), по сути представлял собой несколько заранее заготовленных тем (те доклады, с которыми Йоанна выступала в то время), а выбирать конкретную тему из предложенных должны были зрители путём голосования. Однако из-за болезни Йоанны выступление не состоялось[56]. (Кстати, именно по этой причине на сайте CONFidence доклад Йоанны в списке присутствует, но недоступен для скачивания[57].)
16 мая 2007 года открывает конференцию Info-Security Conference 2007 (недоступная ссылка) в Гонконге[52][58]. В докладе, озаглавленном «Human factor vs. Technology» («рус. Человеческий фактор против технологии»), Йоанна рассмотрела современные проблемы в обеспечении безопасности операционных систем с точки зрения как пользователя так и технической, а также изложила свои соображения по поводу решения этих задач в дальнейшем[59].
31 мая 2007 года Йоанна выступает на московской на выставке-конгрессе Security@Interop Moscow 2007 с ключевым докладом «Вирусы-невидимки — победят хорошие парни»[52][60].
28 июля 2007 года Йоанна вместе с Александром Терешкиным в рамках Black Hat USA Training 2007: Weekend Session проводят тренинг Understanding Stealth Malware («рус. Понятие скрытого вредоносного ПО») на Black Hat, проходившим со 28 июля по 2 августа в Лас-Вегасе, США[52][61]. Слушателям курса предлагалась возможность на более глубоком уровне изучить основы работы скрытого вредоносного ПО, его взаимодействие с операционной системой, аппаратным обеспечением и сетью. В рамках курса слушатели могли ознакомиться и поэкспериментировать с несколькими неопубликованными концептами руткитов, специально созданными для этого курса и схожими с Deepdoor, FireWalk, Blue Pill и прочими. Также кратко рассматривался вопрос об их обнаружении[62].
А несколько дней спустя, 2 августа, там же Йоанна и Александр представили технический доклад «IsGameOver(), anyone?» («рус. ИграОкончена() или кто-нибудь еще?»)[52][63]. В основу доклада был положен новый практический метод атаки «на лету» на ядро Vista x64, а также рассмотрение недостатков технологии TPM/Bitlocker с точки зрения подобных атак. Значительная часть доклада была посвящена презентации новых деталей о вредоносном ПО, использующим виртуализацию. Сюда вошли различные методы обнаружения, которые могли быть использованы либо для выявления использования виртуализации, либо для нахождения самого вредоносного ПО. Рассматривались способы обхода вредоносным ПО средств защиты и варианты реализации вложенной виртуализации[64].
17 сентября 2007 года Йоанна выступает на IT-саммите Gertner по вопросам безопасности в Лондоне, Великобритания[52].
23 октября 2007 года выступила на Северном форуме по вопросам виртуализации, проходившем в Стокгольме, Швеция[52].
В середине ноября 2007 года Йоанна выступила с докладом «Информационные технологии и человеческий фактор» на Российском съезде директоров по информационным технологиям, проходившем в Ростове-на-Дону, Россия. Её доклад был посвящён новому подходу, позволяющему перехватывать контроль над процессорами с аппаратной поддержкой виртуализации[65].
В 2007 году она демонстрирует ненадежность и возможность обхода некоторых типов hardware-based памяти (например, основанной на FireWire)[66].
В 2008 году Рутковская со своей командой сосредоточилась на исследованиях безопасности гипервизора Xen[67].
25 марта 2008 года совместно с Терешкиным проводит тренинг по скрытому ПО на Black Hat в Амстердаме[52].
8 апреля 2008 года выступила с докладом на крупной конференции RSA Conference в Сан-Франциско, США[52][68].
24 апреля 2008 года выступает на конференции RISK в Осло, Норвегия[52].
16 мая 2008 года как один из специально приглашенных специалистов своей презентацией «Security Challenges in Virtualized Environments (недоступная ссылка)» («рус. Проблемы безопасности в виртуальной среде») открывает конференцию CONFidence 2008, проходящей с 16 по 17 мая в Кракове[69]. Презентация была посвящена различным потенциальным проблемам безопасности в виртуальной среде: руткиты, использующие в своей основе виртуализацию (например, Blue Pill), изолируемые субъекты виртуальных машин, проблемы «доверия» виртуальным машинам, вложенная виртуальность и её влияние на безопасность виртуальных систем[70].
4 августа 2008 года совместно с Терешкиным проводит тренинг по скрытому ПО на Black Hat в Лас-Вегасе[52]. В одном из интервью, взятому у неё за кулисами конференции, на вопрос о том, как её исследования влияют на промышленное использование гипервизоров, Йоанна ответила, что «одним из преимуществ её работы является то, что люди становятся более осведомленными в выборе гипервизоров, но главной целью все же является донесение информации до поставщиков решений, которые должны знать об опасностях применения, как от них защищаться и их исправлять»[71].
7 августа 2008 года на конференции Black Hat Йоанна, Рафал и Александр продемонстрировали, что ошибка, обнаруженная в BIOS материнской платы DQ35JO позволяет в том числе обходить защиту памяти гипервизора Xen. Несколько недель спустя Intel выпустила обновленный BIOS, исправляющий данную ошибку, после чего Рутковская опубликовала все подробности механизма атаки[72] и код, это демонстрирующий[73]. Атака была основана на использовании возможности переназначения памяти (англ. memory remapping или англ. AKA memory reclaiming) чипсета и позволяет обойти определенные механизмы защиты памяти, реализованые в процессоре или чипсете. Причём подобным способом можно обойти и защиту памяти SMM, получив к ней полный доступ. В дальнейшем эта уязвимость была более подробно ими исследована в ходе изучения уязвимостей SMM, позволив им изучить двоичный код SMM, что позволило найти ещё уязвимости в нём[74].
10 декабря 2008 года объявили о нахождении новых уязвимостей в Intel Product Security Response Center, касающихся SMM. Все эти найденные SMM-уязвимости являются результатом единого проектирования реализации определенной функциональности небезопасным способом. В результате этого, в обработчике SMM присутствует более 40 потенциально уязвимых мест (эксперименты проводились на материнской плате DQ35JOE со всеми патчами, доступными на декабрь 2008). Из найденных уязвимостей только две были вполне успешно опробованы, так как в использовании остальных Йоанна и … не видели никакого практического смысла. По их мнению, корректное решение данной проблемы заключалось бы в полном перепроектировании существующих обработчиков SMM. В личной переписке представители Intel подтвердили наличие проблемы в «мобильных, десктопных и серверных материнских платах» без упоминания каких-либо подробностей и уязвимых моделях. Йоанна и … предположили, что атаке подвержены все недавно выпущенные материнские платы Intel.
Intel обещала исправления прошивок к лету 2009 года, попросив при этом не раскрывать деталей уязвимостей в SMM, пока все соответствующие патчи не будут готовы. Поэтому детальное описание уязвимостей должно было быть представлено на конференции Black Hat USA 2009, запланированной на конец июля 2009 года. Представители Intel сообщили, что они уведомили представителей Координационный центр CERT об этой проблеме, поскольку по их мнению, подобные ошибки могут содержаться и в BIOS других производителей. КЦ CERT присвоил этой ошибке порядковый номер VU#127284[74].
2 сентября 2008 года Йоанна выступает на IT-форуме по безопасности в Осло[52].
18 февраля 2009 года Йоанна совместно со своим коллегой Рафалом Войчуком представила доклад Attacking Intel Trusted Execution Technology (недоступная ссылка) («рус. Атака на технологию доверенного исполнения Intel») на конференции Black Hat DC 2009, проходившей с 16 по 19 февраля 2009 года в Крайстал-сити (Арлингтон, Вирджиния) (en)[75][76]. Доклад посвящён обнаруженному в конце 2008 года способу обхода защитных технологий Intel Trusted Execution Technology (части бренда Intel vPro) и Intel System Management Mode.
В начале доклада речь шла об уязвимостях, позволяющих обходить технологию Dynamic Root of Trust Measurement (сокр. DRTM), что в общем случае ставит под угрозу значительную часть современных систем. Затем речь зашла о проблемах в Static Root of Trust Measurement (сокр. SRTM), точнее, о необходимости проверять каждую часть кода, исполняемого после начала загрузки системы[77].
Как известно, технология Intel Trusted Execution Technology (сокр. TXT), являющаяся реализацией «позднего запуска» (или отложенного запуска), не проверяет состояние системы перед запуском, позволяя тем самым защищенную загрузку системы даже на зараженном компьютере. Но Йоанна и Рафал выяснили, что в TXT не была предусмотрена защита во время выполнения, то есть банальная защита от переполнения буфера в коде гипервизора. TXT рассчитан лишь на защиту при запуске, то есть данный механизм гарантирует, что загружаемый код на момент загрузки действительно тот, что должен запускаться. Однако, есть фрагмент системного ПО, которое должно быть доверенным. Такой фрагмент называется и называется System Management Mode (сокр. SMM).
SMM, будучи самым привилегированным типом ПО, которое исполняется процессором, может обходить защитные проверки, выполняемые в процессе позднего запуска на только что загруженной виртуальной машине (но утверждение, что SMM вообще не проверяется, неверно). Таким образом, атака на функционал позднего запуска TXT может проходить в два этапа:
Йоанна с Рафалом представили код, демонстрирующий атаку по подобной схеме на гипервизор Xen, загружаемого при помощи модуля tboot. Tboot обеспечивает защищенную загрузку Linux и Xen при помощи функционала позднего запуска Intel TXT. По идее, tboot должен гарантировать, что после загрузки корректного (то есть немодифицированного) гипервизора Xen (и только в этом случае!), корректные данные будут загружены в регистры TPM. Но на практике, это означает, что только определенная (доверенная) версия гипервизора Xen получит доступ к защищенным областям TPM, и/или сможет положительно идентифицировать себя для взаимодействия (например, с ноутбуком системного администратора) при помощи специальной возможности TPM «Remote Attestation» («рус. Удаленная проверка»). Таким образом, Йоанна и Рафал показали, что при помощи зараженного обработчика SMM можно модифицировать только что загруженную виртуальную машину, то есть атака полностью обходит все защитные механизмы, предоставляемые TXT для защиты загрузки.
В качестве защиты от подобных атак Intel разрабатывали механизм, называемый SMM Transfer Monitor (сокр. STM), который представляет собой некое подобие среды (или «песочницы»), в которую помещается существующий обработчик SMM путём виртуализации при помощи технологий VT-x и VT-d. При этом STM должен восприниматься как взаимодействующий гипервизор (англ. peer hypervisor) для виртуальной машины, загружаемой поздним запуском, и во время позднего запуска STM должен анализироваться. Но на момент демонстрации данная технология была по-прежнему недоступна, поскольку по выражению представителей Intel (в частной переписке) «она не имела коммерческого смысла»[74].
15 мая 2009 года с докладом «Thoughts about Trusted Computing (недоступная ссылка)» («рус. Мысли по поводу доверенной обработки информации») выступает на конференции CONFidence 2009, проходившей с 15 по 16 мая 2009 года в Кракове[78]. Доклад полностью посвящён технологии Trusted Computing: что это такое, основные блоки, составляющие технологию (TPM, VT и TXT) и доступные в современном оборудовании, обсуждение сценариев применения подобного оборудования, а также обсуждение различий между теоретическим функционалом и практическим ограничением его применения[79].
26 мая 2009 года Йоанна представила презентацию на EuSecWest в Лондоне[52].
25 июля 2009 года Йоанна и Александр проводят тренинг по скрытому ПО на Black Hat в Лас-Вегасе[52].
27 июля 2009 года Йоанна и Рафал проводят тренинг по защите виртуализации на Black Hat в Лас-Вегасе[52].
15 сентября 2009 года представила презентацию на Intel Security Summit в Хиллсборо, Орегон, США[52].
29 октября 2009 года представила презентацию на Computerbild Anti-Virus-Symposium в Гамбурге[52].
24 ноября 2009 года Йоанна делает ключевой доклад на семинаре по безопасности в Universität der Bundeswehr в Мюнхене[52].
16 апреля 2010 года представила презентацию на CampusParty EU в Мадриде[52].
В ноябре 2004 года Йоанна опубликовала код программы Red Pill и описание используемой ею уязвимости. Название программы (как и название проекта Blue Pill) было взято из кинофильма «Матрица», где в одной из сцен главному герою предлагаются две пилюли на выбор: синяя — чтобы остаться в системе (в Матрице), красная — чтобы из неё выйти. Рутковская сравнивает глотание красной пилюли с возвратом подпрограммой значения, отличного от нуля (то есть сообщения об ошибке), что в кинофильме позволило герою понять, что он находится в виртуальном мире. Основной задачей программы была демонстрация возможности определить использование виртуальной машины при помощи SIDT-инструкции процессора, выполняемой в непривилегированном режиме, но возвращающей содержимое регистра, используемого внутри ОС.
Основным приёмом, позволявшим такое сделать, был анализ расположения регистра таблицы описания прерываний (англ. interrupt descriptor table register, сокр. IDTR). SIDT-инструкция помещает содержимое IDTR в указанный операнд, то есть размещает его в памяти, причём речь идет уже о переразмещении IDT-таблицы по определенному адресу.
Йоанна впервые заметила подобное странное поведение SIDT-инструкции за несколько лет до этого, когда тестировала Suckit-руткит на VMWare. Данный руткит вполне корректно работал на реальной ОС, но выдавал ошибку при запуске на виртуальной машине. Йоанна потратила несколько часов на выяснение того факта, что проблема заключалась в SIDT, которую использовал Suckit чтобы получить адрес IDT-таблицы.
При этом сама Йоанна не отрицает, что подобные исследования проводились и до неё. Так, например, она ссылается на документ, опубликованный в 2000 году в USENIX, который посвящён проблеме реализации виртуальных машин на процессорах фирмы Intel. В числе обсуждаемых проблем как раз и была проблема с SIDT.
Идея проекта была представлена Йоанной в октябре на IT Underground 2004 в Варшаве, Польша. После конференции, 18 октября Дейв Эйтел опубликовал свой отчет о поездке на эту конференцию, привлекший немалый интерес. В результате, Йоанна начала получать множество писем от людей, желающих узнать, «как обнаружить использование VMWare при помощи одной инструкции»[12][14].
В итоге, 14 ноября 2004 года Йоанна выложила Red Pill в виде исходного кода небольшой программы, написанной на Си[14]. Этот код необходимо было скомпилировать на Windows, работающей на процессоре Intel[80].
Но, к сожалению, у этой программы были недостатки, причём главным недостатком программы оказалась её неспособность определять аппаратную виртуализацию:
Есть разница между определением виртуализации и определением специфического гипервизора, такого как BluePill, о чём мы уже говорили ранее. Следует помнить, что RedPill был нацелен на определение программной виртуализации, которую использовали продукты VMWare ещё до того, как Intel и AMD представили VT-x/AMD-v (до 2006 года). Мой оригинальный детектор RedPill, который был опубликован в 2004 году, не способен определять аппаратную виртуализацию[3].
В декабре 2004 года Йоанна на 21-м Chaos Communication Congress в Берлине выступила с докладом по скрытым каналам в ядре Linux версии 2.4. К этой презентации ею была подготовлена концепт-программа, способная продемонстрировать возможную опасность от скрытых каналов в корпоративных сетях и тем самым предоставить исследователям данные по этим каналам для анализа.
Согласно сопроводительной заметке, написанной самой Йоанной, программа широко не тестировалась и является лишь демонстрацией концепции самой идеи[81].
2 января 2005 года Йоанна на своем сайте объявила об открытии материалов и кода NUSHU[14].
Программа вызвала интерес в хакерском сообществе, вследствие чего было предложено несколько способов обнаружения этой программы. Так, например, Стивен Мердок и Стивен Льюис из Кембриджской компьютерной лаборатории (www.cl.cam.ac.uk) в апреле 2005 года опубликовали документ, посвящённый скрытым каналам в TCP/IP. В этом документе, в частности, представлено описание метода обнаружения скрытых каналов, основывающихся на принципе NUSHU, и предложена новая реализация идеи скрытых каналов под названием «Lathra»[14][82].
В середине ноября 2005 года Евгений Тумоян и Максим Аникеев из Таганрогского государственного университета опубликовали документ «Network Based Detection of Passive Covert Channels in TCP/IP» («рус. Сетевое обнаружение пассивных скрытых каналов в TCP/IP»), описывающий новый способ обнаружения скрытых каналов (в том числе и каналов, созданных программой NUSHU) на основе использования ISN-нумерации в стеке протоколов TCP/IP[83]. Через месяц данный документ был выложен и для бесплатного ознакомления[14].
Выступая на 22-м Chaos Communication Congress в конце декабря 2005 года Стивен Мердок во время своей презентации специально уделил внимание техническим подробностям о работе программы NUSHU. Сама Йоанна посчитала эту презентацию «очень клевой»[14].
FLISTER — концепт-код для демонстрации возможности обнаружения файлов, скрытых Windows-руткитами сразу в обоих режимах пользователя и ядра. Программа основана на использовании ошибок (как правило, сделанных авторами руткитов) обработки вызова функции ZwQueryDirectoryFile()
с методом ReturnSingleEntry
, установленным как TRUE[84].
Программа была написана в начале 2005 года[85]. 24 января 2005 года Йоанна опубликовала исходный код программы[14].
Тесты, проведенные в начале 2007 года, показали, что данная программа не только нестабильна, но и «обнаружение руткитов при помощи этой программы практически невозможно»[86].
modGREPER — детектор скрытых модулей для Windows 2000/XP/2003. Программа просматривает всю память, используемую ядром (адреса 0x80000000 — 0xffffffff
), в поисках структур, похожих на корректные объекты описания модулей[84]. Пока что программа распознает лишь два наиболее важных типа объектов: довольно известный _DRIVER_OBJECT
и _MODULE_DESCRIPTION
. modGREPER обладает неким подобием встроенного искусственного интеллекта (точнее, несколько наборов логических правил, описывающих возможные поля структуры), что позволяет ему определять, действительно ли данные байты описывают объект модуля.
Затем modGREPER строит список найденных объектов, сравнивает их друг с другом, и в итоге сравнивает полученный список со списком модулей ядра, полученного при помощи документированных функций API (EnumDeviceDrivers).
Подразумевалось, что modGREPER был в состоянии обнаруживать все виды сокрытия модулей, используемые на момент выхода программы. Кроме того, некоторые из модулей могут помечаться как «SUSPECTED» («рус. Подозрительные»). Это применяется к нескрытым модулям, чьи соответствующие файлы образов или отсутствуют или расположены в скрытых каталогах (скрытых руткитом, а не системой). Данное поведение было добавлено из-за того, что большинство руткитов даже не пытаются скрыть свои модули ядра от API.
Программа также может обнаруживать и выводить список незагруженных модулей ядра. Это иногда позволяет более продвинутые (бездрайверные) руткиты ядра. Однако этот список имеет некоторые ограничения: у него ограниченный объём и он содержит лишь основное (базовое) имя модуля (без указания пути).
Однако, сама же Йоанна признала, что вполне возможно писать руткиты, не поддающиеся подобной проверке. Причём, в качестве основной цели выпуска такой программы она сама же указала на стремление простимулировать хакеров на написание более изощренных руткитов[87].
Первая версия программы (0.1) была выпущена 6 июня 2005 года, вторая и последняя на данный момент (0.2) — 14 июня 2005 года[88].
Тесты, проведенные в начале 2007, показали, что данная программа не только нестабильна, но и «обнаружение руткитов при помощи этой программы практически невозможно»[86].
Программа представляет собой небольшую консольную утилиту, запускаемую из командной строки. Идея, лежащая в основе SVV, заключается в проверке основных системных компонентов Windows, которые различные вредоносные программы стремятся изменить. Проверка позволяет гарантировать целостность системы и выявлять потенциальное заражение системы[84].
В конце сентября 2005 года на конференции «Hack In The Box» в Куала-Лумпуре, Малайзия, представила первую версию программы (1.0)[89]. 3 октября 2005 года Йоанна опубликовывает первую версию программы на своем сайте[14]. 1 ноября 2005 года была опубликована первая стабильная версия (1.1) программы[90].
Тесты, проведенные в конце 2005 года, показали, что данная программа реализует лишь «ограниченный набор тестов», выявляя лишь те руткиты, которые «либо скрывают лишь часть своих данных, либо удаляют себя перед перезапуском системы»[91].
25 января 2006 года на конференции Black Hat Federal представила версию 2.2[92].
Последняя на данный момент версия (2.3) была опубликована 27 февраля 2006 года[90].
12 мая 2006 года Йоанна объявила в своём блоге об открытии исходного кода SVV, поскольку, по её словам, у неё совершенно нет времени заниматься её дальнейшей разработкой, но при этом она продолжает считать подход, использованный в программе, верным и многообещающим. Согласно лицензии, под которой она открыла код, позволяет пользователям делать всё что угодно с исходниками, вплоть до использования их в коммерческих целях[93].
Тесты, проведенные в начале 2007, показали, что данная программа не только нестабильна, но и «обнаружение руткитов при помощи этой программы практически невозможно»[86].
Йоанна начинает обдумывать подобный проект примерно с марта 2006 года, когда к ней попала документация AMD по новой технологии виртуализации AMD-V (ранее известной как Pacifica). Первые процессоры с поддержкой этой технологии попали на рынок в конце мая, и уже в первую неделю июня Йоанне удалось достать в Польше один из таких процессоров. Начиная с этого момента ей потребовалось ровно шесть дней для написания первой действующей версии Blue Pill[33]. Программа была представлена на конференции Black Hat Briefings, проходившей в Лас-Вегасе 3 августа 2006 года[45].
Когда Microsoft объявила в прошлом году о том, что ядро будет защищено от загрузки [неавторизованного] кода, я подумала: "Мммм, а это интересная задачка. Мне стоит побаловаться с этим[5].
Некоторые эксперты в области руткитов (например, Грег Хогланд, написавший один из первых руткитов для Windows) утверждали, что руткиты на основе виртуальных машин являются лишь лабораторной игрушкой и не несут в себе реальной угрозы. В ответ на это Йоанна возразила, что это утверждение вполне может быть справедливо для таких программ как SubVirt, разработанного сотрудниками Microsoft Research и Мичиганского университета, но не для Blue Pill или Vitriol, поскольку они основываются на аппаратной виртуализации, а не программной[94].
Вскоре после закрытия COSEINC AML, Йоанна основывает Invisible Things Lab, после чего работа над Blue Pill возобновилась. Йоанна и Александр Терешкин принимают решение написать новый руткит Blue Pill (чтобы отличать новый Blue Pill от оригинального, ему присвоили название New Blue Pill), чтобы им можно было пользоваться для дальнейших исследований, а также в образовательных целях. Большая часть кода нового Blue Pill была написана Терешкиным. Новый Blue Pill значительно отличался от оригинального, причём не только реализованными новыми возможностями, но и изменениями в архитектуре (теперь она стала похожа на HVM, используемую в XEN 3).
Рон Фан (англ. Rong Fan) переделал новый Blue Pill для работы с процессорами Intel, добавив при этом поддержку аппаратной виртуализации Intel VT-x. Рон также добавил поддержку вложенной виртуализации на основе VT-x для последующих NBP, но этот код не может быть опубликован из-за соглашения об ограничении разглашения, но аналогичная поддержка аппаратной виртуализации AMD в открытом коде присутствует.
С осени 2007 года поддержкой работы над новым Blue Pill занимается американская компания Phoenix Technologies[45].
7 апреля 2010 года Йоанна объявила о разработке новой высокозащищенной операционной системы Qubes (от англ. cubes — кубы, кубики). Работа над ОС началась в декабре 2009 года, около двух месяцев ушло на проектирование системы, затем начался этап написания кода[95]. Архитектура Qubes была спроектирована Йоанной и Рафалом, код виртуализации графического интерфейса написан Рафалом, а остальная часть системы — в основном Йоанной[96].
По поводу названия ОС сама Йоанна говорит[95] следующее:
О, я думаю, это довольно очевидно. Qubes — это такой своеобразный способ написания слова Cubes, и каждый такой «куб» должен символизировать виртуальную машину. Когда мы думаем об использовании виртуальной машины в защите, то мы представляем себе некую клетку или куб, то есть что-то, что способно в себя вмещать и ограничивать то, что у неё внутри (например, вредоносную программу).
Оригинальный текст (англ.)Oh, I though it was pretty obvious. Qubes is just a fancy way of writing Cubes, and each «cube» is supped to symbolize a Virtual Machine (VM). When we think about a Virtual Machine in security, we think about some kind of a cage, or a cube, something that is capable of containing and jailing whatever is inside (e.g. a malicious program).
По сути, разработка сейчас представляет собой некую надстройку над операционной системой Fedora 12. На данный момент Qubes не имеет собственной программы установки, поэтому разработчики подготовили все необходимые RPM-пакеты и протестировали их на данной системе. Разработчики предполагают, что Qubes будет работать и на других Linux-системах, поддерживающих RPM-пакеты, но эта возможность ими не тестировалась. После написания собственной программы установки разработчики хотят превратить Qubes в самостоятельную систему, не требующую установки других ОС[97].
Выпуск версии Release 1 Alpha 2 был назначен на 11 июня 2010 года, первая бета-версия должна выйти 1 сентября 2010 года, а первая стабильная версия — 31 декабря 2010 года[98].
Релиз системы версии 1.0 состоялся 3 сентября 2012 года[99][100].
Лично для себя предпочитает продукцию корпорации Apple[5].
Это самый красивый настольный компьютер, который у меня когда-либо был - как по внешнему виду, так и по графическому интерфейсу[3].
Также Йоанна пользуется ещё несколькими компьютерами (как ноутбуки, так и десктопы), произведёнными не корпорацией Apple[3].
В качестве своего хобби Йоанна называет «программирование автономного шестипалого робота с мозгом на основе двух 8-битных микроконтроллеров»[3].
В 2007 году, на вопрос журналиста о том, что Йоанна считает своим самым большим достижением, та ответила: «Счастливую жизнь с моим партнёром»[4].
Основная причина выбора - мне понравился его графический интерфейс, он работает быстро и поддерживает все эти скрипты, Flash и Бог знает, что там ещё — всё, что нужно для просмотра типичных новостных сайтов сегодня[3].
Лично для меня очень важно подремать после обеда. Я вообще не могу долго работать, если нормально не выспалась. Честно говоря, я даже день в офисе никогда не выдерживала[3].