Темой нынешнего обзора станут новости о программных средствах, в потенциале способных наносить вред компьютерному оборудованию и данным не на обычном уровне операционной системы и приложений, а значительно глубже — на уровне аппаратного обеспечения.
Некий анонимный исследователь-хакер, укрывшийся под ником Czernobyl или просто "Черно", обнародовал в интернете информацию о секретном отладочном режиме, встроенном во все процессоры AMD, начиная с поколения Athlon XP. Данная публикация открывает двери для весьма продвинутых экспериментов, простирающихся далеко за границы того, что определено официальными спецификациями к процессорной архитектуре x86.
Отладочный режим, обнаруженный Чернобылем, выглядит как сугубо внутренний сервис фирмы AMD, закодированный в процессоры изначально, однако отключенный чипах, поступающих в продажу. Хотя расширенные функциональные возможности по-прежнему остаются в процессоре, получить к ним доступ можно лишь в том случае, если определенные служебные регистры заполнить набором определенных байтов. По сути дела, это эквивалентно вводу пароля.
Но коль скоро пароль этот постоянный и фактически зашит в схему микропроцессоров, Чернобыль сумел его отыскать путем сканирования памяти компьютера. Для человека, понимающего, что он делает, подобная задача не слишком сложна, принимая во внимание, что хакеру уже удалось перед этим раздобыть имена тех конкретных регистров, в которые следует поместить байты отпирающей комбинации.
Получив доступ к отладочному режиму, Черно обнаружил массу новых заманчивых возможностей, которые делают процессоры AMD "наиболее предпочтительным выбором" для специалистов, занимающихся программированием на глубоком уровне. В особенности же — для тех людей, которые решают задачи обратной инженерной разработки. В частности, среди новых возможностей теперь есть такие, как условные точки останова программы в зависимости от содержимого данных и точки останова прочих типов (data-aware conditional breakpoints, page-guard breakpoints и т.д.), реализуемые непосредственно на аппаратном уровне.
Чернобыль достаточно подробно описывает проделанную им работу в документации об активации отладочного режима. Поскольку восстановление функций отладочного инструментария происходит, по сути, методом тыка, исследователь характеризует свое творчество как "проект в процессе реализации, но уже работоспособный — поэтому публикуемый как есть".
Среди инструкций Чернобыля, в частности, встречаются и такие пассажи: "Предупреждение! Выставление в младших битах регистра значения Control=1 следует рассматривать как 'зарезервировано / опасно / не используется'. И хотя сам я знаю (мне думается), каким образом микрокод функционирует при такой установке параметра, я не буду это документировать. Ничего полезного там нет (впрочем, любители приключений не обязаны принимать мои слова на веру)"...
Все, что Чернобыль счел нужным рассказать о своих открытиях, он опубликовал на сайте Woodmann.com в тексте под названием "Суперсекретные отладочные возможности процессоров AMD".
В условиях, когда свыше девяти десятых долей от всех компьютеров в мире работало под управлением нескольких вариаций одной и той же ОС Microsoft Windows, для писателей всевозможных вредоносных программ типа вирусов и червей создалась максимально благоприятная обстановка. Если же учесть, сколь мощно монокультура Windows подпитывалась набором абсолютно доминирующих приложений от того же поставщика — типа Microsoft Office, браузер Internet Explorer и почтовый клиент Outlook, — то написание вредоносного кода, который имел бы высокие шансы отыскать в качестве мишени уязвимую систему, стало делом по сути тривиальным.
Ныне, как известно, эта безрадостная с точки зрения инфобезопасности ситуация начала меняться. Хотя и медленно, но рынок Windows сужается по мере того, как конкуренты вроде платформ Mac и Linux набирают все больше поклонников. Особенно же отчетливо эта тенденция проявляется в том, как народ все больше и больше переходит от настольных компьютеров к мобильным устройствам, работающим на основе платформ Apple iOS, Google Android, RIM Blackberry и так далее. Соответственно, наблюдается и стабильное сокращение рыночной доли программ Microsoft.
Вместе с исчезновением монокультуры Windows и радикальным расширением спектра программных средств, злоумышленникам придется отыскивать и новые типы атак — которые уже не будут специфическими для конкретной ОС или для конкретных приложений. Один из наиболее логичных и естественных шагов в данном направлении, по мнению экспертов-исследователей, это нацеливать атаки уже не на программы, а на аппаратное обеспечение. В частности, на процессоры конкретных фирм- изготовителей.
В ноябре этого года опубликована статья исследователей из парижского ИТ-института ESIEA (Ecole Superiore d'Informatique, Electronique, Automatique), в общих чертах демонстрирующая, каким примерно образом это будет происходить. В работе французских авторов (Anthony Desnos, Robert Erra, Eric Filiol) представлен открытый ими метод для выявления процессора, используемого произвольной системой, c целью последующего захвата управления этим аппаратным обеспечением. По заключению экспертов, защитить систему от атак, воздействующих на уровне "железа", оказывается существенно труднее.
Понятно, что для успеха атаки в данном направлении задача по идентификации конкретного процессора в системе- мишени представляется одной из принципиально важных. И хотя задачу эту нельзя назвать тривиальной, французские авторы показывают, что решить ее не так уж сложно.
Один из ключей к ее решению предоставляет давнишний баг в процессорах Intel P5, обнаруженный в середине 1990-х годов и вызывавший ошибки в операциях арифметики с плавающей точкой (или плавающей десятичной запятой, если кому-то такой термин нравится больше). Простой способ для определения того, используется ли в каком-то из компьютеров данный чип, — это выполнить определенное вычисление, о котором заведомо известно, что Пентиум сделает там ошибку.
Авторы статьи из ESIEA отмечают, что все реально используемые чипы имеют в себе определенные математические ограничения, продиктованные теми стандартами, которые они применяют для кодирования чисел и выполнения операций арифметики с плавающей точкой. Некоторые из этих ограничений достаточно хорошо известны специалистам, другие известны хуже, но самое главное, что все они приводят к тем или иным неточностям в результатах вычислений. А специфика архитектуры конкретного процессора, соответственно, способна порождать своего рода "подпись" из такого рода неточностей.
Поэтому исходная задача, которую поставили перед собой Эрик Филиоль и его коллеги, свелась к тому, чтобы отыскать некий относительно небольшой и универсальный набор вычислений с плавающей точкой, который мог бы уникально идентифицировать любой процессор по его сигнатуре неточностей.
На данном пути исследователям уже удалось достичь вполне определенных результатов. Для этого, в частности, используются такие задачи, как вычисление функции sin(10^10 pi) при варьировании количества цифр в представлении величины числа Пи. Авторы пока что не могут установить конкретные модели процессоров, однако уже вполне способны использовать свою технику для идентификации семейств — таких как AMD, Intel (Dual Core, Atom), Sparc, Digital Alpha, Cell и так далее.
В настоящее время исследователи работают над инструментом, получившим название Proc_Scope (или "процессороскоп"), который будет использовать специфические алгоритмы не только для идентификации типа процессора, но и для определения конкретных моделей чипов. По убеждению исследователей, подобного рода подход — через конструктивные особенности микропроцессоров — позволит обеспечивать намного более коварные, точные и целенаправленные атаки.
Ну а то, что подобного рода компьютерные атаки — это уже дело отнюдь не отдаленного будущего, а реальные события настоящего времени, свидетельствует следующая новость.
В коде вредоносного "боевого червя" Stuxnet (подробности см. здесь и здесь) антивирусным исследователям удалось выявить важные свидетельства, указывающие на то, что эта программа была нацелена на диверсию против ядерных фабрик по обогащению урана. Причем целью программы-диверсанта была не организация аварии, а намного более тонкий саботаж — кратковременное ускорение и замедление работы моторов в центрифугах на протяжении многих недель и месяцев. Подобная работа оборудования катастрофически снижает качество обогащаемого урана.