В каком-то смысле можно говорить, что публикация патчей-заплат в их традиционной форме все больше становится похожа на выпуск инструкций по поиску неизвестных уязвимостей в закрытой системе.
Следующая работа — с майской конференции семинара по крупномасштабным и новым компьютерным угрозам (USENIX workshop on Large-Scale Exploits and Emergent Threats [LEET]). Сотрудники Иллинойского университета (Урбана-Шампань) представили на удивление эффективный подход к добавлению аппаратных закладок в компьютеры общего назначения [2].
Исследователи показали, что внесения в схему процессора совсем небольшого (одна-две тысячи) числа элементов достаточно для обеспечения широкого спектра дистанционных атак, которые невозможно выявить или предотвратить с помощью традиционных софтверных подходов к безопасности. Правда, для проведения подобных атак требуется фундаментально скомпрометировать компьютеры на этапе их создания или сборки. Понятно, что злоумышленнику-одиночке это не по силам. Однако вполне по силам организованной преступности, не говоря уже о государственных спецслужбах.
Технически это выглядит так. Скрытые в процессоре вредоносные схемы обеспечивают атакующую сторону невидимым внутренним плацдармом для атак. Поскольку такие схемы занимают уровень, находящийся ниже стека программ, они способны обходить все традиционные техники защиты. Анализ подобных закладок только-только начинается, ограничиваясь случаями простейших троянцев. Более сложные схемы пока не исследованы, как и контрмеры, которые атакующая сторона может принимать для обхода предлагаемых форм защиты.
В работе [2] представлена общая конструкция и конкретные формы реализации так называемых IMPs (Illinois Malicious Processors, "иллинойских вредоносных процессоров"). Показано, что даже с учетом жестких ограничений по месту, его все равно достаточно для планирования разнообразных типов атак, а не одной узконаправленной. Такая гибкость схемы позволила разработчикам продемонстрировать две конкретные конструкции и реализовать их практически в конкретной системе FPGA-чипа, то есть процессора с перепрограммируемой логикой. Вот примеры, подтверждающие общую концепцию.
ЭСКАЛАЦИЯ ПРИВИЛЕГИЙ. Используя механизм доступа к памяти, реализован вредоносный сервис, поднимающий привилегии пользовательского процесса до высшего (root) уровня. При выполнении такой атаки программа эскалации привилегий использует аппаратную закладку в процессоре для отключения защиты привилегированных областей памяти. Для реализации механизма доступа к памяти требуется увеличить число гейтов логики в процессоре меньше, чем на 0,05%.
Он позволяет напрямую нарушать все предположения ОС относительно обеспечиваемой защиты памяти.
ВХОДНОЙ БЭКДОР. Используя специально разработанный механизм теневого режима, разработчики реализовали вредоносный сервис, служащий постоянным "черным ходом" в систему. Чтобы начать атаку захвата, злоумышленник посылает сетевой пакет в систему жертвы, где ОС первым делом инспектирует этот пакет, проверяя контрольную сумму UDP. Сам акт проверки пакета (необходимый для принятия решения о том, следует ли его отвергнуть) запускает троянскую закладку в железе, а вредоносная программа интерпретирует содержимое пакета как новый код прошивки, который невидимо загружается в процессор. Операционная же система тем временем отбрасывает непрошеный пакет и продолжает работу, не заметив атаки.
Код прошивки, реализующий теневой режим, отслеживает login-приложение для входа в систему. И когда некто пытается войти с особым, заранее известным закладке паролем, та подменяет значение функции проверки пароля на "правильный" и тем самым гарантирует доступ в систему любому, кто знает хитрость. Чтобы скрыть следы атаки, сразу после успешной попытки логина прошивка сама себя выгружает и отключает теневой режим, возвращая системе все ресурсы процессора. Таким образом, послав сетевой UDP-пакет и тут же войдя в систему, злоумышленник может сократить время работы теневого режима до минимума. Если же система жертвы не имеет выхода в сеть, то для включения закладки-бэкдора можно использовать похожий механизм на основе внешнего накопителя. Например, в USB-модуле флэш-памяти для этого подходит самый первый блок, необходимый для идентификации типа файловой системы. Механизм теневого режима увеличивает количество логических гейтов схемы всего на 0,08%, давая при этом неограниченный доступ к компьютеру без опоры на какиелибо программные уязвимости.
ПОХИЩЕНИЕ ПАРОЛЕЙ. С помощью того же механизма теневого режима можно реализовать сервис, ворующий пароли доступа у легитимных пользователей системы. Главная трудность здесь — отыскание паролей в гигантских массивах случайных данных. Но и эта задача вполне разрешима, коль скоро в символьных строках кода, относящегося к записи и считыванию паролей, присутствует слово Password. В развитие этой же темы исследователи продемонстрировали и два существенно разных способа для скрытного слива похищенных паролей в сеть — как на уровне ОС, так и на уровне прямой модификации пакетов.
Подводя итог, иллинойские исследователи без ложной скромности отмечают, что им удалось заложить фундаментальные основы конструирования процессоров с аппаратными закладками, способными обеспечивать весьма сложные и продвинутые атаки для тех, кто владеет секретами конструкции. Сделано же это, по словам разработчиков, дабы продемонстрировать, что при нынешней организации поставок микросхем заказчикам имеются все предпосылки для злоупотреблений.
То есть заинтересованные структуры, обладающие компетентными специалистами и надлежащими ресурсами, вполне способны разрабатывать и внедрять вредоносные микросхемы с аппаратными закладками.
Ученые наглядно продемонстрировали, что для закладок, несущих серьезную угрозу, требуется на удивление мало места в общей схеме, что чрезвычайно затрудняет их выявление. Для login-атаки, к примеру, потребовалось всего 1340 гейтов, а в результате злоумышленник получает полный высокоуровневый доступ к компьютеру. Причем та же самая аппаратная база способна поддерживать широкий спектр разных атак и достаточно гибка для динамических модификаций функциональности. В целом же, по мнению авторов работы, злонамеренные процессоры оказываются более практичны, гибки и более трудны для выявления, чем можно было предположить при начальном анализе проблемы. Иначе говоря, вредоносные аппаратные закладки явно заслуживают пристального внимания и тщательного изучения.