Выбрать главу

Все, что Чернобыль счел нужным рассказать о своих открытиях, он опубликовал на сайте 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 и так далее.