id: Гость   вход   регистрация
текущее время 23:34 19/04/2024
Владелец: Constanto (создано 01/11/2010 18:47), редакция от 01/11/2010 18:47 (автор: Constanto) Печать
Категории: софт, инфобезопасность, ошибки и баги, уязвимости, хард, атаки, операционные системы, программные закладки, антивирусная защита, жучки/кейлоггеры
http://www.pgpru.com/Новости/2010/ОВозможностиСозданияИВнедренияАппаратногоБэкдора
создать
просмотр
редакции
ссылки

01.11 // О возможности создания и внедрения аппаратного бэкдора


Разработчики Ksplice, системы обновления Linux-ядра без перезагрузки, опубликовали любопытный документ, в котором показана техника имплантирования вируса в аппаратную часть компьютера. Подобный код в последующем будет очень сложно обнаружить и практически невозможно истребить (не поможет даже полная переустановка системы с нуля). Исследование содержит примеры работоспособного кода.


Чтобы произвести подобную атаку, нужно сначала разобраться с начальной загрузкой компьютера. Во время запуска компьютера, первым этапом загрузки является прохождение BIOS'ом самопроверки (POST) и запуск ROM-кода различных устройств компьютера. Эти ROM-программы позволяют правильно инициализировать устройство или позволить BIOS'у общаться с железом, про которое он ничего не знает (например, данная функция позволяет BIOS'у загрузить ОС с жёсткого диска, подключенного к SCSI адаптеру). Для этого у BIOS есть таблица прерываний, которую можно переопределить.


Суть атаки заключается в том, что атакующий записывает в ROM-память заданной платы компьютера вредоносный код, который производит следующие действия: он переопределяет прерывание, ответственное за чтение данных с жёсткого диска компьютера, что позволяет внедрить свой код в загружаемое Linux-ядро, путём переписывания части его кода. Поскольку ядро Linux является крайне сложной хорошо упакованной программой, нельзя переписать случайный кусок кода, ибо это может привести к неработоспособности системы. Поэтому зловредный код переписывает достаточно длинное сообщение об ошибке внутри ядра, при этом заменяя точку вхождения в ядро.


Этот зловредный код в свою очередь устанавливает в ядре Linux модуль для обработки обычно неиспользуемого 163 протокола и изменяет точку вхождения в ядро, чтобы модуль автоматически запустился. Затем ядро продолжает обычную загрузку. Нужно отметить, что все эти операции происходят совершенно незаметно для пользователя. Данный модуль заставляет Linux отвечать на запросы при обращении по 163 протоколу, запуская нужное приложение, например, /bin/bash с правами суперпользователя.


Чрезвычайная опасность этой атаки состоит в том, что найти зловредный код достаточно сложно, как и сложно отследить паразитный трафик, ведь он не принадлежит ни одному из популярных сетевых протоколов (ARP, TCP, UDP, ICMP). Другая не меньшая опасность состоит в том, что многие компоненты компьютера содержат так называемый firmware – ROM-программу, которую можно перезаписать, что позволит перевести обычный вирус в разряд необнаруживаемых.


Хотя данное исследование нацелено на взлом ядра Linux, описанную технику гораздо проще реализовать против других операционных систем с более стабильным кодом, например, ядро Windows обычно не меняется на протяжении минимум трёх лёт, тогда как новые версии Linux выходят почти каждые три месяца.


Источник: http://www.opennet.ru/opennews/art.shtml?num=28481


 
— Гость (08/11/2010 22:38)   <#>
Сделать прозрачную поддержкуобновления ядра не получится?

сложно отследить паразитный трафик, ведь он не принадлежит ни одному из популярных сетевых протоколов (ARP, TCP, UDP, ICMP)
А в интернете пишут что это UDP. Ссылка на wiki имеется? Ещё мне всегда казалось, что если fw включён, то он позволяет ядру обслуживать только исключительно те протоколы, которые явно разрешены (для протоколов уровня выше некоторого). Ещё IPX есть.
— cobb (12/11/2010 01:55)   <#>
а возможность заражения по сети через PXE или gPXE кто-нибудь рассматривал?)
— Гость (12/11/2010 05:50)   <#>
Разве это аппаратный бэкдор? Это банальная идея, а реализация – детский лепет. Аппаратный бэкдор – это в процессоре или чипсете, а бэкдор в ROM могли бы сделать осенезависимым при наличии большого опыта системного программирования. Я бы за такую задачу взялся, но взял бы недешево.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3