<!--break-->
Заражение BIOS.
Выложенная на сайте альфа седьмого патчера успешно (с поправкой на альфа-версию) справляется из известных как минимум с Award BIOS, AMIBIOS, PhoenixBIOS, AMI EFI, Intel EFI. Только эти ядра – это уже от (как минимум) 50% до 80% (возможно больше) всех компьютеров. Данный пример приводится лишь в качестве свидетельства, что наличие "универсального" алгоритма внедрения в BIOS это не предположение, а реальность, которая уже не один год служит на благо в виде BIOS Patcher-а (справедливей будет сказать – служило раньше, т.к. сейчас биоспатчер не слишком востребован в силу древности систем, на которые были ориентированы его задачи).
Но сейчас речь не о патчере, он лишь удобное подручное доказательство того, что до 80% систем подвержены "универсальному заражению". И это не значит, что остальные 20% защищены, это значит, что для них бирусописателям придётся дополнительно постараться и дополнительно написать "неуниверсальный код" - для каждой конкретной модели ноутбука или материнской платы. Вряд ли это "выгодно", т.к. даже половина всего компьютерного парка, легко предположить – вполне "адекватное" поле для бирусов.
Невидимый и неуничтожимый.
Не стоит спешить и сомневаться (равно как и сразу верить наслово). Однако это действительно так. Просвещённые товарищи типа Джоанны Рутковской (склоняется? :) ), патлатых аргентинцев в лице Альфредо Ортега и Анибал Сакко, а также земляков Александра Терешкина и Рафала Войтчука – в компании с другими французскими, китайскими и некоторыми другими специалистами, хорошо знающих эту область – это уже точно знают. Разъезжают по конференциям, пугают народ блюпиллами и руткитами из минус надцатого кольца.
Самое противное – им есть чем пугать. Ибо название из абзаца – справедливо. Задача этой статьи– обзорная, потому посоветую для начала прогуглить хотя бы названные фамилии по их работам. /* Специально сам этим не занимался (лишь краем глаза видел некоторые из их работ, где сразу становится ясно, что "господа в курсе"), потому буду признателен ссылкам. */
Загадочный и страшный, всемогущий и скрытный SMM.
Кстати, он - SMM - есть. Можно отправить к даташитам. Вкратце лишь можно сказать то, что SMM-код выполняется вне зависимости от "желания" операционной системы (в т.ч. под DOS – это ведь тоже OS, если кто-то забыл – ясно даже по буквам :) ) и невидимо для неё. Во время работы SMM-кода вся другая работа приложений "замораживается". Если SMM-код будет выполняться слишком долго (например, при переборе бирусописателей с выбором значения размера блока во время сканирования операционной памяти) – Windows этого даже и не заметит (часы у неё будут показать время "из прошлого"), хоть через минуту, хоть через час.
[off]Видел упоминания в Интернете, что вышеназванные товарищи у себя в экспериментах использовали блоки по 64кБ, но это как-то смехотворно мало (процесс сканирования гига памяти вылетит в часы, а то и сутки). У меня получалось значение в 256кБ. Предположу, что на новых системах уже можно будет использовать по мегабайту и больше, а значит эффективность бирусов лишь увеличивается с прогрессом железа.[/off]
После включения компьютера, получив управление в процессе отработки BIOS POST бирус перепрограммируют SMM-handler, добавив к его коду свою SMM-составляющую. Теперь бирус периодически получает управление (периодичность можно регулировать – зависит от чипсета). SMM-прерывание "невидимо" для обычных приложений, т.к. это другой, специальный (для этого – невидимости – и разрабатывался Intel ещё во времена 80386) режим работы процессора. Потому и бирусный код получает такие же свойства.
Физически SMM-handler живёт в SMRAM – обычная память (располагается в той же планке памяти компьютера), только отделённая от "остальной" средствами контроллера памяти так, чтобы она была недоступна в "обычных" режимах процессора и доступна лишь в режиме SMM.
Ничего нового в принципе тут нет, и проще будет, наверное, ещё раз отослать к упомянутым просвещённым товарищам - у них есть статьи, детально описывающие возможности в этой области. Правильней будет сказать лишь то, о чём не говорят (молчат, врут, лукавят, скрывают, не знают – нужное подчеркнуть) уважаемые перечисленные товарищи.
Birus vs Intel
Вы (кто внимательно изучил/знает материалы обо всех таких BIOS- и SMM-руткитах) не заметили странной зависимости, что все подобные эксперименты проходят на Intel-платформе? Некоторые (если не ошибаюсь – госпожа Джоанна) ссылаются, что, мол, для AMD нет документации и потому их опыты были на Intel. Может и так, хотя, согласитесь, звучит странновато (не ручаюсь за точность перевода своим нелитературным английским, но смысл останется тем же – с AMD-платформами "SMM-руткиты" не дружат).
Ларчик открывается просто. На Intel-системах (Intel VT) SMM-handler "сквозной" - это значит, что будь ты хоть трижды в виртуальной системе, однако выполнив SMM-прерывание с бирусом – получишь власть над всем железом, сможешь найти в памяти родительскую ОС и "выбиться в главные". А вот в AMD-системах (AMD-V) всё, в том числе и SMM-handler-ы – эмулируется. Потому "блюпиллы" для них (AMD) отдыхают.
Занавес.
Компьютер для бирусофобов.
AMD-процессор на VIA чипсете. Или на SiS. Лишь эти два производителя реально придерживались стандартов, которые в своё время написали/разработали в том числе и большей частью товарищи из Intel. Понятно, что их уже нет (в проивзодительном сегменте компьютеров). Тогда даже не посоветую. Но точно – не Intel.
Никакой антирекламы, только факты. Первый был озвучен выше и можно найти в экспериментах продвинутых специалистов. Второй довод: SMM-handler на платформе Intel можно "спрятать" - после выставления специального регистра нельзя никак найти (точный адрес) и добраться до области памяти, где он располагается. Сделано как-бы в противовес к вышеупомянутой уязвимости. А в результате получается ещё одна дырка (или фича – выбирайте на свой вкус): "предустановленные" бирусы на компьютерах от производителя из враждебно настроенной страны – никак нельзя будет обнаружить.
Как с этим у AMD? Опять не сочтите уже за рекламу – в AMD-системах для получения адреса SMM-handler-а есть специальный регистр, который всегда можно получить и при желании переопределить.
п.с. предвидя вопросы: да, у меня Phenom+AMD. :) Господа-товарищи из AMD, если что - мой почтовый ящик есть на сайте. ;)
а где упряталась седьмая?
Очень интересноя серия.. жду продолжение :)
Joanna Rutkowska
Alfredo Ortega
Anibal Sacco
потому как на русском только перепечатки/самопальные переводы новостей. А у Ортеги доклад есть на какой-то конференции...
Всё верно - у нас это не только развлечение, но и работа, следовательно - на моря!!! :)
Абсолютно верно. Именно об этом и речь - Джоанна сотоварищи показали на практике, чем это может грозить и я никак не претендую на их "лавры". В статье о бирусах рассказывается, о "второй составляющей" - о том, до чего Джоанна сотоварищи ещё (пока) не дошли (или и не шли, или шли, но дошли и молчат и т.п., нужные варианты придумать самому и
мысленно щёлкнуть хвостомподчеркнуть) - как такие технологии из единичных экспериментов в лабораторных условиях могут (совсем не теоретически) перетечь во всеобщую бирус-пандемию.Это и подразумевалось в первой части бирусов, когда писалось про "эксперименты с SMM". То есть в моём случае (что является принципиальным отличием от экспериментов Джоанна сотоварищи) опыты были на нескольких разных платах, разных платформ, разных древностей, разных BIOS-ов и процедура внедрения была автоматизирована: считывание, распаковка BIOS+SMM, внедрение BIOS+SMM, упаковка, прошивка. Самой древней была Intel 815, в качестве "новой" выступала VIA, но это не суть важно.
http://www.xakep.ru/post/47673/
Полностью согласен, о том ж и речь, на мой взгляд, документация для AMD - "много более доступна".
И даже прочитав код из БИОСа с помощью программатора?
Эээ, ну, не настолько... Речь о работающем, к примеру, под Windows антивирусе. А изъяв микросхему из платы, понятно, с прошивкой можно сделать что угодно. Возможно лишь за исключением Flash-микросхем со встроенным боевым минизарядом для самоуничтожения. :)
А так....я ждал когда это наконец-то всплывёт :(
[/off]