После ее выступления на Black Hat в 2006 году во многих публикациях ее стали называть хакером, однако сама Йоанна против этого, заявив об этом в одном из интервью в конце 2007 года.:
Родилась в 1981 году в Варшаве, Польша. В 11 лет получила свой первый компьютер. Им стал PC/AT 286, оснащенный процессором, работающим на частоте 16 МГц, 2 Мбайт памяти и 40-мегабайтным жёстким диском.
Практически сразу познакомилась с GW-BASIC, а примерно через год перешла на Borland Turbo Basic. Начав программировать, Йоанна стала интересоваться как работает операционная система. В возрасте примерно 14 лет она начала изучать язык ассемблера для архитектуры x86 (на MS-DOS) и плавно перешла к написанию вирусов, после чего больше сосредоточилась на математике и искусственном интеллекте. Затем начала изучать основы построения сетей, Linux, системное программирование, что в конце 1990-х гг. вновь привело ее к области компьютерной безопасности и написанию эксплоитов для Linux x86, а затем и для Win32-систем. Так что, как и многие из известных исследователей, Йоанна начала писать эксплоиты в подростковом возрасте.
Свой первый хак Йоанна сделала после прочтения нашумевшей статьи в журнале Phrack об эксплоите, разрушающем стек, который она также самостоятельно скомпилировала и протестировала:
Через несколько лет она бросила писать эксплоиты, но с удовольствием вспоминает то чувство удовлетворения, вызываемое написанием хорошего эксплоита:
Затем она постепенно продвинулась дальше: уязвимости ядра, руткиты, скрытые каналы и прочее, а также способы борьбы со всеми этими уязвимостями. В одном из интервью 2007 года она вспоминает:
Параллельно с этим закончила Варшавский политехнический институт, получив степень магистра в области информатики. По ее воспоминаниям, женщины составляли всего лишь около 5 процентов от общего числа студентов факультета, где Рутковская изучала математику. По ее выражению, ее университетское обучение имело мало общего с безопасностью. Так, в одном из интервью она сказала, что хоть и изучала информатику в Варшавском Политехническом институте, но большинство вещей изучила сама, как и многие коллеги по отрасли.
Примерно в 2001 г. Йоанна начала всерьез заниматься исследованиями в области компьютерной безопасности для платформ на базе операционных систем Linux и Win32, а спустя два года переходит к исследованиям в области программ, работающих по технологии «невидимок» (англ. stealth technology).
В этот период Йоанна пока еще практически никому не известна, но в сети начинают публиковаться материалы по исследованиям руткитов и защиты от них от имени некоего Яна Кшиштофа Рутковского (польск. Jan Krzysztof Rutkowski).
На конференциях Black Hat USA 2003 и HiverCon 2003 в его профиле написали:
В 59 номере журнала Phrack (28 июля 2002 г.) была опубликована статья Яна «Анализ путей исполнения: обнаружение руткитов ядра», в которой описывается метод обнаружения руткитов на основе подсчета исполняемых инструкций в некоторых системных вызовах. Также в качестве примера реализации подобной концепции к статье был приложен исходный код программы PatchFinder.
2 декабря 2002 года он опубликовал описание уязвимости в IPD — драйвере с открытым исходным кодом для Windows NT и Windows 2000, разработанном для запрета установки новых служб и драйверов и защиты существующих драйверов от руткитов. Ошибка заключалась в том, что система защиты включалась спустя 20 минут после загрузки ОС, но при этом можно было без особых проблем переводить системные часы назад, тем самым не давая активировать защиту.
3 января 2003 года Ян опубликовал описание новой уязвимости в IPD. Суть уязвимости заключалась в следующем: для защиты ядра от различных вредоносных программ IPD блокировала каталог WINNT/system32/drivers, так чтобы нельзя было модифицировать какие-либо файлы в этом каталоге. Но можно было создать символьную ссылку на этот каталог и получить полный доступ к этому каталогу.
Кроме того, в рамках презентации обсуждались также и некоторые программы защиты от руткитов (Integrity Protections Driver, Server Lock), а также некоторые их уязвимости. Кроме того, была некоторым образом затронута и тема переноса метода АПИ на другие операционные системы.
Всего лишь чуть более года спустя, в статьях о руткитах для Windows уже будут писать, ссылаясь в том числе и на этот доклад:
Примерно до июля 2003 года Ян указывал адрес электронной почты Варшавского политехнического института (где как раз в это время училась Йоанна) при публикации различных исследований по сокрытию и обнаружению руткитов ядра Windows.
Начиная с середины 2003 года вся деятельность Яна была постепенно свернута, а менее двух месяцев спустя никому ранее неизвестная исследовательница Йоанна Рутковская начала публиковать материалы по способам сокрытия и обнаружения Windows-руткитов. Первым подписанным этим именем стало описание концепции проекта «Хамелеон». Причем описанные идеи вплотную связаны с идеями, описанными Яном, и некоторым образом даже развивают их, иногда ссылаясь на них как на предыдущие работы.
В сентябре 2003 года Йоанна публикует концепцию о скрытых Windows-руткитах, получившую название «Проект „Хамелеон“». Данный проект являлся лишь набором идей (без практической реализации в коде) о способах записи действительно невидимых для Windows руткитов (то есть так, чтобы даже специальные программы их не обнаруживали). Собственно, Йоанна данный проект забросила, собираясь вернуться к нему позднее, но этого так и не случилось. Тем не менее, некоторые идеи проекта были позаимствованы Шерри Спаркс и Джейми Батлер при создании первого практического руткита для виртуальных машин.
Примерно с этого момента материалы, ранее опубликованные от имени Яна, постепенно в открытую изменяют свою подпись на подпись Йоанны, причем даже начали опубликовываться ссылки на материалы Яна как на материалы авторства Йоанны.
Сама же Йоанна впоследствии на вопрос о том, когда она начала заниматься компьютерной безопасностью, скажет:
В ноябре 2003 года Ян выступила на конференции HiverCon 2003, проходившей с 6 по 7 ноября 2003 года в Дублине, Ирландия. Темой доклада вновь становится продвинутое обнаружение руткитов Windows 2000 методом анализа путей выполнения (англ. Advanced Windows 2000 rootkit detection (execution path analysis)), но дополненная по сравнению с версией, представленной на Black Hat. Доклад был посвящен новейшим методикам обнаружения скомпрометированности системы и выявлению руткитов на платформе Windows.
И с этого момента Йоанна все свои материалы публикует исключительно от своего имени.
В середине октября 2004 года Рутковская выступила на конференции IT Underground 2004, проходившей 12—13 октября в Варшаве. Ею были представлены две презентации, посвященные руткитам для платформ Linux и Win32, а также методам их обнаружения. Первая презентация «Черные ходы в ядре Linux и их обнаружение» была посвящена двум способам реализации умных черных ходов ядра в сетевом стеке ядра Linux (англ. Linux Kernel Network Stack) при помощи обработчика ptype и Netfilter, а также представила оригинальные способы их обнаружения, которые впоследствии были успешно реализованы в одном из коммерческих инструментов, написанных самой Йоанной. Также в ней была представлена идея пассивных скрытых каналов, используемая в описанных способах.
Во второй презентации «Обнаружение руткитов на системах Windows» шло обсуждение обнаружение руткитов уровня пользователя и уровня ядра. Первая половина презентации была посвящена применению MS Kernel Debugger (совместно с LiveKD) для обнаружения руткитов уровня пользователя. Остальная часть была посвящена более продвинутым руткитам уровня ядра, а также в ней были представлены некоторые идеи по их обнаружению.
Помимо этого, подтекстом выступления было обсуждение способов как сделать руткиты совершеннее. Во время ланча Йоанна продемонстрировала, как можно при помощи фактически одной инструкции (иногда упоминаемой как «любимая инструкция Синана», англ. Sinan's Favorite Instruction) обнаружить использование VMware (то есть идея, положенная в основу проекта Red Pill).
20 октября 2004 года Йоанна оставила первую запись на своем персональном веб-сайте invisiblethings.org, и на следующий день опубликовала на нём материалы обеих презентаций с ITUnderground.
28 декабря 2004 года на Всемирном конгрессе хакеров, проходящем в Берлине (Германия) с 27 по 29 декабря, Йоанна представляет доклад «Пассивные скрытые каналы в ядре Linux». Темой доклада стали пассивные скрытые каналы (сокр. ПСК; англ. passive covert channels, сокр. PCC), не генерирующие собственного трафика, а лишь меняющие некоторые поля в пакетах, создаваемых легальными пользовательскими приложениями или процессами на зараженной машине.
28 сентября 2005 года Йоанна выступила с презентацией «Скрывать и находить: определение пути выявления вредоносного ПО на Windows» на конференции «Хак в коробке», проходившей с 26 по 29 сентября в Куала-Лумпуре (Малайзия), параллельно представив при этом несколько своих разработок, в том числе и System Virginity Verifier. Основной целью презентации было определение списка жизненно важных частей операционной системы и методология выявления вредоносного ПО. Список начинается с таких основных вещей как действия, необходимые для проверки целостности файловой системы и реестра, затем следом идет проверка памяти уровня пользователя (выявление посторонних процессов, вредоносных динамических библиотек (DLL), инжектированные потоки и прочее), и заканчивается такими продвинутыми вещами как определение жизненно важных частей ядра, которые могут быть изменены современным вредоносным ПО, основанном на руткитах (при помощи таких способов, как Raw IRP hooking, различные DKOM-манипуляции или трюки с виртуальными машинами). Причем вне зависимости от полноты данного списка, по мнению Йоанны, для компрометирования системы вредоносным ПО будет использоваться лишь определенное число методов, то есть такой список на любом этапе не может быть бесконечным, а его полнота будет зависеть лишь от сообщества специалистов. В принципе, создание такого списка может значительно повысить осведомленность об угрозах и, в конечном счете, позволит создание более совершенных программ защиты от вредоносного ПО. Концепты подобных программ Йоанна и представила на своей презентации, наряду с несколькими интересными вредоносными программами.
В качестве реализации своей идеи описанного сообщества, занимающегося выявлением методов компрометирования систем, Йоанна там же, на конференции, представила проект открытых методологий поиска компрометаций (англ. open methodologies for compromise detection, сокр. OMCD. Данный проект был начат в самом начале сентября совместно с Институтом безопасности и открытых методологий (англ.). В рамках проекта под руководством Йоанны должны были вестись работы над методологией обнаружения вредоносного ПО и руткитов на системах Windows для определения стандарта как для исследователей, так и для разработчиков инструментов, автоматизирующих этот процесс.
25 января 2006 года Йоанна выступила с презентацией на Black Hat Federal (англ.), проходившей с 23 по 26 января в Вашингтоне (США), на тему «Охота на руткиты против выявления скомпроментированности» (англ.). Презентация была посвящена описанию типов скомпрометированности системы, а также в ней было представлено описание способов достижения атакующим полной невидимости без использования классической технологии руткитов. В ходе презентации Йоанна рассматривала такие традиционные уловки руткитов как перезагрузка, сокрытие процессов, открытые сокеты. Также она представила свой новый руткит DeepDoor (разглашать какие-либо подробности о котором она отказалась), способный взламывать код NDIS путем модифицирования четырёх слов в области памяти, где NDIS хранит свои данные. Во время демонстрации Йоанна продемонстрировала, как её руткит исправно выполнял свою задачу по перехвату трафика даже несмотря на то, что межсетевой экран ZoneAlarm блокировал ему доступ. В итоге, Йоанна заявила, что безопасного способа читать память с ядром в Windows не существует. По её мнению, Microsoft должна предоставить возможность сторонним компаниям предлагать решения по защите памяти с ядром. Эксперты, наблюдавшие эту презентацию охарактеризовали ее как впечатляющую работу и безумие.
Эта же презентация была представлена и 1 февраля 2006 года на конференции IT-Defense (англ.), проходившей с 30 января по 3 февраля в Дрездене, Германия.
Точная дата начала официальной работы Йоанны с COSEINC неизвестна. Однако, известно, что это состоялось примерно в марте-апреле 2006 года, поскольку в мартовском интервью Йоанна отозвалась о себе как об исследователе вопросов безопасности, работающем над проектами, связанными с ИТ-безопасностью, для различных компаний по всему миру, однако в конце июня в своем блоге она написала, что Blue Pill разработана эксклюзивно для COSEINC, а работу над этим проектом она начала в марте 2006 года.
Кроме того, в той же статье Йоанна опровергает слухи о том, что ее работа была проспонсирована корпорацией Intel (основной конкурент AMD на рынке процессоров). Йоанна утверждает, что ее работа была оплачена компанией COSEINC Research, на которую она в тот момент работала, а вовсе не Intel. Йоанна реализовала Blue Pill на архитектуре AMD64 только потому, что ее предыдущее исследование (также сделанное для COSEINC) была посвящено Vista x64, для функционирования которой и был приобретен процессор AMD64. И несмотря на наличие желания перенести «Blue Pill» на Intel VT, никаких ближайших планов по этому поводу у Йоанны нет по причине нехватки свободного времени.
21 июля 2006 года Йоанна завершает конференцию SyScan’06, проходившей с 20 по 21 июля 2006 года в Сингапуре. Организатором данной конференции является Томас Лим (англ. 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». Общей целью выступления была задача показать возможность создания (в скором времени или уже) необнаруживаемого вредоносного ПО, которое не будучи привязанным к какому-либо концепту будет представлять собой угрозу как некий алгоритм.
3 августа 2006 года на конференции Black Hat Briefings в Лас-Вегасе вновь представляет свою разработку Blue Pill, но поскольку данная конференция привлекает к себе значительное внимание профильных изданий, то данная разработка наделала много шума в IT-сообществе и принесла Йоанне мировую известность. На этой конференции корпорация Microsoft представила свою новую операционную систему Windows Vista широкому кругу IT-специалистов. В ходе демонстрации раздавались предрелизные копии ОС (по сути это были копии последнего на тот момент стабильного релиза системы). В марте 2006 года Microsoft уже проводила специальную встречу с хакерами (получившей название «Blue Hat 3»), в ходе которой обсуждались вопросы общей безопасности. Поэтому с учетом полученной информации, представители Microsoft позиционировали Vista как самую защищенную ОС Windows. В ходе презентации Джон Лэмберт (англ. John Lambert), руководитель подразделения Microsoft, рассказывал об исправленных уязвимостях системы, ранее обнаруженных в бета-версиях. Через некоторое время подошёл черёд Йоанны выступать. Во время её презентации весь зал был набит до отказа, несмотря на то, что это было последнее выступление последнего дня в рамках конференции по безопасности на «Black Hat». Для исследований и демонстрации Йоанна использовала одну из ранних тестовых версий Windows Vista. В качестве одного из способов защиты системы корпорация Microsoft внедрила в в 64-битную версию своей системы механизм блокировки неподписанного кода (то есть не имеющего цифровой подписи). Однако, Йоанна нашла возможность обхода этой проверки. Для выполнения атаки требуются права администратора, что в теории должно было быть блокировано механизмом User Account Control (UAC), который урезает права пользователей, а при необходимости выполнения важных операций требует от пользователей подтверждения. Однако на вопрос о том, как она смогла обойти UAC Йоанна ответил "Я просто нажала «Принять», пояснив при этом, что это сообщение пользователям выдается так часто, что они уже автоматически на него отвечают, уже толком не понимая, что они делают. В ходе презентации сама же Йоанна заявила следующее:
Завершила свое выступление презентацией уже нашумевшего к тому моменту проекта Blue Pill.
Однако, далеко не все аналитики согласились с подобным ответом. Так например, Крис Касперски анализируя информацию, представленную Йоанной, возразил:
Осознав успех проекта «Blue Pill», вскоре после этого Йоанна формирует внутри COSEINC небольшую группу исследователей под названием «Advanced Malware Labs», главной целью которой была дальнейшая работа в области вредоносного ПО, основанного на виртуализации. Однако, после нескольких месяцев работы в компании сменились приоритеты, и работа над Blue Pill была закрыта.
В апреле 2007 года Йоанна решает покинуть COSEINC и создать собственную компанию «Invisible Things Lab» («рус. Лаборатория невидимых вещей»), специализирующуюся на консультационных услугах и исследованиях в области информационной безопасности. Само создание собственной компании было проведено без лишней шумихи, а ее дебют был приготовлен на июльский Black Hat USA. В названии фирмы обыгрывалось название ее блога «Invisible Things», ставшего к тому моменту весьма популярным. 1 мая 2007 года в компанию на должность главного разработчика устраивается россиянин Александр Терешкин (также известный как 90210), также бывший член COSEINC AML. Юридически фирма оформлена в Варшаве, Польша. Физического офиса у нее нет. Сама Йоанна о своей компании говорит так:
Компания специализируется на вопросах безопасности операционных систем и виртуальных машин и оказывает различные консультационные услуги. В 2008 году в компанию приходит Рафал Войчук, сотрудничавший с Йоанной и Александром ранее. Александр Терешкин в ITL работает на должности главного исследователя. По словам Йоанны, они вместе с Александром занимаются изучением угроз и консультационными проектами, однако Александр немного больше времени уделяет программистской работе, а сама Рутковская сосредоточена непосредственно на бизнес-задачах.
31 мая 2007 года Йоанна выступает на московской на выставке-конгрессе Security@Interop Moscow 2007 с ключевым докладом «Вирусы-невидимки — победят хорошие парни».
17 сентября 2007 года Йоанна выступает на IT-саммите Gertner по вопросам безопасности в Лондоне, Великобритания.
23 октября 2007 года выступила на Северном форуме по вопросам виртуализации, проходившем в Стокгольме, Швеция.
В середине ноября 2007 года Йоанна выступила с докладом «Информационные технологии и человеческий фактор» на Российском съезде директоров по информационным технологиям, проходившем в Ростове-на-Дону, Россия. Ее доклад был посвящен новому подходу, позволяющему перехватывать контроль над процессорами с аппаратной поддержкой виртуализации.
В 2007 году она демонстрирует ненадежность и возможность обхода некоторых типов hardware-based памяти (например, основанной на FireWire) .
В 2008 году Рутковская со своей командой сосредоточилась на исследованиях безопасности гипервизора Xen .
25 марта 2008 года совместно с Терешкиным проводит тренинг по скрытому ПО на Black Hat в Амстердаме.
8 апреля 2008 года выступила с докладом на крупной конференции RSA Conference в Сан-Франциско, США.
24 апреля 2008 года выступает на конференции RISK в Осло, Норвегия.
4 августа 2008 года совместно с Терешкиным проводит треннинг по скрытому ПО на Black Hat в Лас-Вегасе. В одном из интервью, взятому у нее за кулисами конференции, на вопрос о том, как ее исследования влияют на промышленное использование гипервизоров, Йоанна ответила, что «одним из преимуществ ее работы является то, что люди становятся более осведомленными в выборе гипервизоров, но главной целью все же является донесение информации до поставщиков решений, которые должны знать об опасностях применения, как от них защищаться и их исправлять».
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.
2 сентября 2008 года Йоанна выступает на IT-форуме по безопасности в Осло.
В начале доклада речь шла об уязвимостях, позволяющих обходить технологию Dynamic Root of Trust Measurement (сокр. DRTM), что в общем случае ставит под угрозу значительную часть современных систем. Затем речь зашла о проблемах в Static Root of Trust Measurement (сокр. SRTM), точнее, о необходимости проверять каждую часть кода, исполняемого после начала загрузки системы.
Как известно, технология 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 (в частной переписке) «она не имела коммерческого смысла».
26 мая 2009 года Йоанна представила презентацию на EuSecWest в Лондоне.
25 июля 2009 года Йоанна и Александр проводят треннинг по скрытому ПО на Black Hat в Лас-Вегасе.
27 июля 2009 года Йоанна и Рафал проводят тренинг по защите виртуализации на Black Hat в Лас-Вегасе.
15 сентября 2009 года представила презентацию на Intel Security Summit в Хиллсборо, Орегон, США.
29 октября 2009 года представила презентацию на Computerbild Anti-Virus-Symposium в Гамбурге.
24 ноября 2009 года Йоанна делает ключевой доклад на семинаре по безопасности в Universit?t der Bundeswehr в Мюнхене.
В ноябре 2004 года Йоанна опубликовала код программы Red Pill и описание используемой ею уязвимости. Название программы (как и название проекта Blue Pill) было взято из кинофильма «Матрица», где в одной из сцен главному герою предлагаются две пилюли на выбор: синяя — чтобы остаться в системе (в Матрице), красная — чтобы из нее выйти. Рутковская сравнивает глотание красной пилюли с возвратом подпрограммой значения, отличного от нуля (то есть сообщения об ошибке), что в кинофильме позволило герою понять, что он находится в виртуальном мире. Основной задачей программы была демонстрация возможности определить использование виртуальной машины при помощи SIDT-инструкции процессора, выполняемой в непривилегированном режиме, но возвращающей содержимое регистра, используемого внутри ОС.
Основным приемом, позволявшим такое сделать, был анализ расположения регистра таблицы описания прерываний (англ. interrupt descriptor table register, сокр. IDTR). SIDT-инструкция помещает содержимое IDTR в указанный операнд, то есть размещает его в памяти, причем речь идет уже о переразмещении IDT-таблицы по определенному адресу.
Йоанна впервые заметила подобное странное поведение SIDT-инструкции за несколько лет до этого, когда тестировала Suckit-руткит на VMWare. Данный руткит вполне корректно работал на реальной ОС, но выдавал ошибку при запуске на виртуальной машине. Йоанна потратила несколько часов на выяснение того факта, что проблема заключалась в SIDT, которую использовал Suckit чтобы получить адрес IDT-таблицы.
При этом сама Йоанна не отрицает, что подобные исследования проводились и до нее. Так, например, она ссылается на документ, опубликованный в 2000 году в USENIX, который посвящен проблеме реализации виртуальных машин на процессорах фирмы Intel. В числе обсуждаемых проблем как раз и была проблема с SIDT.
В итоге, 14 ноября 2004 года Йоанна выложила Red Pill в виде исходного кода небольшой программы, написанной на Си. Этот код необходимо было скомпилировать на Windows, работающей на процессоре Intel.
Но, к сожалению, у этой программы были недостатки, причем главным недостатком программы оказалась ее неспособность определять аппаратную виртуализацию:
В декабре 2004 года Йоанна на 21-м Chaos Communication Congress в Берлине выступила с докладом по скрытым каналам в ядре Linux версии 2.4. К этой презентации ею была подготовлена концепт-программа, способная продемонстрировать возможную опасность от скрытых каналов в корпоративных сетях и тем самым предоставить исследователям данные по этим каналам для анализа.
Согласно сопроводительной заметке, написанной самой Йоанной, программа широко не тестировалась и является лишь демонстрацией концепции самой идеи.
2 января 2005 года Йоанна на своем сайте объявила об открытии материалов и кода NUSHU.
FLISTER — концепт-код для демонстрации возможности обнаружения файлов, скрытых Windows-руткитами сразу в обоих режимах пользователя и ядра. Программа основана на использовании ошибок (как правило, сделанных авторами руткитов) обработки вызова функции ZwQueryDirectoryFile() с методом ReturnSingleEntry, установленным как TRUE.
Программа была написана в начале 2005 года. 24 января 2005 года Йоанна опубликовала исходный код программы.
Тесты, проведенные в начале 2007 года, показали, что данная программа не только нестабильна, но и «обнаружение руткитов при помощи этой программы практически невозможно».
modGREPER — детектор скрытых модулей для Windows 2000/XP/2003. Программа просматривает всю память, используемую ядром (адреса 0x80000000 — 0xffffffff), в поисках структур, похожих на корректные объекты описания модулей. Пока что программа распознает лишь два наиболее важных типа объектов: довольно известный _DRIVER_OBJECT и _MODULE_DESCRIPTION. modGREPER обладает неким подобием встроенного искусственного интеллекта (точнее, несколько наборов логических правил, описывающих возможные поля структуры), что позволяет ему определять, действительно ли данные байты описывают объект модуля.
Затем modGREPER строит список найденных объектов, сравнивает их друг с другом, и в итоге сравнивает полученный список со списком модулей ядра, полученного при помощи документированных функций API (EnumDeviceDrivers).
Подразумевалось, что modGREPER был в состоянии обнаруживать все виды сокрытия модулей, используемые на момент выхода программы. Кроме того, некоторые из модулей могут помечаться как «SUSPECTED» («рус. Подозрительные»). Это применяется к нескрытым модулям, чьи соответствующие файлы образов или отсутствуют или расположены в скрытых каталогах (скрытых руткитом, а не системой). Данное поведение было добавлено из-за того, что большинство руткитов даже не пытаются скрыть свои модули ядра от API.
Программа также может обнаруживать и выводить список незагруженных модулей ядра. Это иногда позволяет более продвинутые (бездрайверные) руткиты ядра. Однако этот список имеет некоторые ограничения: у него ограниченный объем и он содержит лишь основное (базовое) имя модуля (без указания пути).
Однако, сама же Йоанна признала, что вполне возможно писать руткиты, не поддающиеся подобной проверке. Причем, в качестве основной цели выпуска такой программы она сама же указала на стремление простимулировать хакеров на написание более изощренных руткитов.
Первая версия программы (0.1) была выпущена 6 июня 2005 года, вторая и последняя на данный момент (0.2) — 14 июня 2005 года.
Тесты, проведенные в начале 2007, показали, что данная программа не только нестабильна, но и «обнаружение руткитов при помощи этой программы практически невозможно».
Программа представляет собой небольшую консольную утилиту, запускаемую из командной строки. Идея, лежащая в основе SVV, заключается в проверке основных системных компонентов Windows, которые различные вредоносные программы стремятся изменить. Проверка позволяет гарантировать целостность системы и выявлять потенциальное заражение системы.
В конце сентября 2005 года на конференции «Hack In The Box» в Куала-Лумпуре, Малайзия, представила первую версию программы (1.0). 3 октября 2005 года Йоанна опубликовывает первую версию программы на своем сайте. 1 ноября 2005 года была опубликована первая стабильная версия (1.1) программы.
Тесты, проведенные в конце 2005 года, показали, что данная программа реализует лишь «ограниченный набор тестов», выявляя лишь те руткиты, которые «либо скрывают лишь часть своих данных, либо удаляют себя перед перезапуском системы».
25 января 2006 года на конференции Black Hat Federal представила версию 2.2.
Последняя на данный момент версия (2.3) была опубликована 27 февраля 2006 года.
12 мая 2006 года Йоанна объявила в своем блоге об открытии исходного кода SVV, поскольку, по ее словам, у нее совершенно нет времени заниматься ее дальнейшей разработкой, но при этом она продолжает считать подход, использованный в программе, верным и многообещающим. Согласно лицензии, под которой она открыла код, позволяет пользователям делать все что угодно с исходниками, вплоть до использования их в коммерческих целях.
Тесты, проведенные в начале 2007, показали, что данная программа не только нестабильна, но и «обнаружение руткитов при помощи этой программы практически невозможно».
Йоанна начинает обдумывать подобный проект примерно с марта 2006 года, когда к ней попала документация AMD по новой технологии виртуализации AMD-V (ранее известной как Pacifica). Первые процессоры с поддержкой этой технологии попали на рынок в конце мая, и уже в первую неделю июня Йоанне удалось достать в Польше один из таких процессоров. Начиная с этого момента ей потребовалось ровно шесть дней для написания первой действующей версии Blue Pill. Программа была представлена на конференции Black Hat Briefings, проходившей в Лас-Вегасе 3 августа 2006 года.
Некоторые эксперты в области руткитов (например, Грег Хогланд, написавший один из первых руткитов для Windows) утверждали, что руткиты на основе виртуальных машин являются лишь лабораторной игрушкой и не несут в себе реальной угрозы. В ответ на это Йоанна возразила, что это утверждение вполне может быть справдливо для таких программ как SubVirt, разработанного сотрудниками Microsoft Research и Мичиганского университета, но не для Blue Pill или Vitriol, поскольку они основываются на аппаратной виртуализации, а не программной.
Вскоре после закрытия 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.
7 апреля 2010 года Йоанна объявила о разработке новой высокозащищенной операционной системы Qubes (от англ. cubes — кубы, кубики). Работа над ОС началась в декабре 2009 года, около двух месяцев ушло на проектирование системы, затем начался этап написания кода. Архитектура Qubes была спроектирована Йоанной и Рафалом, код виртуализации графического интерфейса написан Рафалом, а остальная часть системы — в основном Йоанной.
По поводу названия ОС сама Йоанна говорит следующее:
По сути, разработка сейчас представляет собой некую надстройку над операционной системой Fedora 12. На данный момент Qubes не имеет собственной программы установки, поэтому разработчики подготовили все необходимые RPM-пакеты и протестировали их на данной системе. Разработчики предполагают, что Qubes будет работать и на других Linux-системах, поддерживающих RPM-пакеты, но эта возможность ими не тестировалась. После написания собственной программы установки разработчики хотят превратить Qubes в самостоятельную систему, не требующую установки других ОС.
Выпуск версии Release 1 Alpha 2 был назначен на 11 июня 2010 года, первая бета-версия должна выйти 1 сентября 2010 года, а первая стабильная версия — 31 декабря 2010 года.
Лично для себя предпочитает продукцию корпорации Apple.
Также Йоанна пользуется еще несколькими компьютерами (как ноутбуки, так и десктопы), произведенных не корпорацией Apple.
В качестве своего хобби Йоанна называет «программирование автономного шестипалого робота с мозгом на основе двух 8-битных микроконтроллеров».
В 2007 году, на вопрос журналиста о том, что Йоанна считает своим самым большим достижением, та ответила: «Счастливую жизнь с моим партнёром»..