Birus-ы. Часть вторая.

Бирусы – суть вирусы, потому им свойственны все те же признаки, лишь с поправкой на то, что заражаются не (только) исполняемые/системные файлы, а и прошивка BIOS. Второй особенностью есть то, что зловредный код начинает работать до старта операционной системы и после выполняется прозрачно для любого приложения любой ОС.

Заражение BIOS.

Выложенная на сайте альфа седьмого патчера успешно (с поправкой на альфа-версию) справляется из известных как минимум с Award BIOS, AMIBIOS, PhoenixBIOS, AMI EFI, Intel EFI. Только эти ядра – это уже от (как минимум) 50% до 80% (возможно больше) всех компьютеров. Данный пример приводится лишь в качестве свидетельства, что наличие "универсального" алгоритма внедрения в BIOS это не предположение, а реальность, которая уже не один год служит на благо в виде BIOS Patcher-а (справедливей будет сказать – служило раньше, т.к. сейчас биоспатчер не слишком востребован в силу древности систем, на которые были ориентированы его задачи). Но сейчас речь не о патчере, он лишь удобное подручное доказательство того, что до 80% систем подвержены "универсальному заражению". И это не значит, что остальные 20% защищены, это значит, что для них бирусописателям придётся дополнительно постараться и дополнительно написать "неуниверсальный код" - для каждой конкретной модели ноутбука или материнской платы. Вряд ли это "выгодно", т.к. даже половина всего компьютерного парка, легко предположить – вполне "адекватное" поле для бирусов.

Невидимый и неуничтожимый.

Не стоит спешить и сомневаться (равно как и сразу верить наслово). Однако это действительно так. Просвещённые товарищи типа Джоанны Рутковской (склоняется?:) ), патлатых аргентинцев в лице Альфредо Ортега и Анибал Сакко, а также земляков Александра Терешкина и Рафала Войтчука – в компании с другими французскими, китайскими и некоторыми другими специалистами, хорошо знающих эту область – это уже точно знают. Разъезжают по конференциям, пугают народ блюпиллами и руткитами из минус надцатого кольца. Самое противное – им есть чем пугать. Ибо название из абзаца – справедливо. Задача этой статьи– обзорная, потому посоветую для начала прогуглить хотя бы названные фамилии по их работам. /* Специально сам этим не занимался (лишь краем глаза видел некоторые из их работ, где сразу становится ясно, что "господа в курсе"), потому буду признателен ссылкам. */

Загадочный и страшный, всемогущий и скрытный SMM.

Кстати, он - SMM - есть. Можно отправить к даташитам. Вкратце лишь можно сказать то, что SMM-код выполняется вне зависимости от "желания" операционной системы (в т.ч. под DOS – это ведь тоже OS, если кто-то забыл – ясно даже по буквам:) ) и невидимо для неё. Во время работы SMM-кода вся другая работа приложений "замораживается". Если SMM-код будет выполняться слишком долго (например, при переборе бирусописателей с выбором значения размера блока во время сканирования операционной памяти) – Windows этого даже и не заметит (часы у неё будут показать время "из прошлого"), хоть через минуту, хоть через час.

Видел упоминания в Интернете, что вышеназванные товарищи у себя в экспериментах использовали блоки по 64кБ, но это как-то смехотворно мало (процесс сканирования гига памяти вылетит в часы, а то и сутки). У меня получалось значение в 256кБ. Предположу, что на новых системах уже можно будет использовать по мегабайту и больше, а значит эффективность бирусов лишь увеличивается с прогрессом железа.

После включения компьютера, получив управление в процессе отработки 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, если что - мой почтовый ящик есть на сайте.;)

на сайте вижу только шестую версию патчера, тойсть вот эту rom.by/Award/patcher/BP-6a9.rar
а где упряталась седьмая?

Очень интересноя серия.. жду продолжение:)

Аватар пользователя savely

Ты бы фамилии в скобочках по-англицки дописал...
Joanna Rutkowska
Alfredo Ortega
Anibal Sacco
потому как на русском только перепечатки/самопальные переводы новостей. А у Ортеги доклад есть на какой-то конференции...

А кому счас легко...

Как сказал один мудрый еврей - и это пройдёт…
Всё верно - у нас это не только развлечение, но и работа, следовательно - на моря!!!:)

песня, просто песня грустная

... иди туда, незнаю куда, возьми то, не знаю что ... (C) Русские народные сказки

Госпожа Джоанна, если не путаю, делала оговорку что SMM-rootkit - штука сильно железо-зависимая и требует доводки чуть ли не под каждую модель мамки. Это только у Cyrix'а была команда SMINT (софтовый вызов SMI), а у Intel и AMD в SMM можно попасть только по аппаратному SMI и стандарта на вызов его из софта (необходимого для той же установки SMM Handler'а POST'ом) вроде как нету...

Аватар пользователя apple_rom

Цитата:
Госпожа Джоанна, если не путаю, делала оговорку что SMM-rootkit - штука сильно железо-зависимая и требует доводки чуть ли не под каждую модель мамки. Это только у Cyrix'а была команда SMINT (софтовый вызов SMI), а у Intel и AMD в SMM можно попасть только по аппаратному SMI и стандарта на вызов его из софта (необходимого для той же установки SMM Handler'а POST'ом) вроде как нету...

Абсолютно верно. Именно об этом и речь - Джоанна сотоварищи показали на практике, чем это может грозить и я никак не претендую на их "лавры". В статье о бирусах рассказывается, о "второй составляющей" - о том, до чего Джоанна сотоварищи ещё (пока) не дошли (или и не шли, или шли, но дошли и молчат и т.п., нужные варианты придумать самому и мысленно щёлкнуть хвостом подчеркнуть) - как такие технологии из единичных экспериментов в лабораторных условиях могут (совсем не теоретически) перетечь во всеобщую бирус-пандемию.

Если неприятность может случиться - она случится.:( Если тебе, apple_rom, удалось научить патчер использовать родные биосные процедуры перешивки флэш, то кому-то (например, тебе же) удастся и выпарсить из биоса процедуры управления маппингом SMRAM. Совмещение этих двух техник бирусописателем и приведёт к нехорошему сценарию.:( Слабое утешение - писателей таких не так много, нынче вирусы на дельфях всяких пишут, а SMRAM не резиновая, в старину чипсеты по 128КБ с концами ныкали (не знаю, все 128К под SMRAM или или меньше), сейчас вроде так же. А вирус нынче жирный пошёл.;) Думаю, надо прогу сочинить на загрузочную флэшку чтоб показывала состояние блокировки SMRAM и хотя бы не покупать компы/мамки с лоченной SMRAM. Хотя, если предположить наличие бируса, активно делающего вид что его нету, то нужна более серьёзная проверка... :/

Аватар пользователя Compiller

тогда дополнение к рекомендации - матплата на экзотическом ныне чипсете с желательно экзотическим BIOS в не экзотической панели и пара микросхем с бэкапом плюс наверное простой софтовый брандмауэр собственноручного изготовления запущенный из под чего-либо наподобие PCDOS на чём-либо наподобие intel 386 :(

Дрессируем коров :)

Аватар пользователя apple_rom

Цитата:
Если тебе, apple_rom, удалось научить патчер использовать родные биосные процедуры перешивки флэш, то кому-то (например, тебе же) удастся и выпарсить из биоса процедуры управления маппингом SMRAM.

Это и подразумевалось в первой части бирусов, когда писалось про "эксперименты с SMM". То есть в моём случае (что является принципиальным отличием от экспериментов Джоанна сотоварищи) опыты были на нескольких разных платах, разных платформ, разных древностей, разных BIOS-ов и процедура внедрения была автоматизирована: считывание, распаковка BIOS+SMM, внедрение BIOS+SMM, упаковка, прошивка. Самой древней была Intel 815, в качестве "новой" выступала VIA, но это не суть важно.

Аватар пользователя BSV

Цитата:
Некоторые (если не ошибаюсь – госпожа Джоанна) ссылаются, что, мол, для AMD нет документации и потому их опыты были на Intel. Может и так, хотя, согласитесь, звучит странновато (не ручаюсь за точность перевода своим нелитературным английским, но смысл останется тем же – с AMD-платформами "SMM-руткиты" не дружат).
Слушал не так давно доклад про виртуализацию (авторами был разработан гипервизор, которым в том числе можно было заменить системный BIOS). Так вот, все их разработки были на чипсетах и процессорах AMD, что было аргументировано как раз доступностью документации на чипсеты и процессоры.

Второй закон Вышковского: Все можно наладить, если вертеть в руках достаточно долго.

современный BIOS хорошо защищен от перепрошивки в него неподписанной версии
xakep.ru/post/47673/

У AMD реально был период гнилой политики в отношении доки. До первых Атлонов (Слот-А, сокет-А) вся дока была публично доступна (мне даже пару раз на дом присылали CD с докой бесплатно), а вот на первые Атлоны самая интересная дока (описание MTRR и т.п. специфики) была доступна только разработчикам на условиях NDA.:( На сайте АМД этой доки нет и сегодня; я несколько раз пытался найти её в Инете, но безуспешно. А с Атлона-64 вроде дока снова в открытом доступе. По поводу бирусофобии - комп на экзотическом чипсете с экзотическим бивисом нынче - это пожалуй только брэндовые сервера;). Для убеждённых параноиков лучший вариант - комплекс для проверки и восстановления компа, включающий в себя: аппаратный (для наверняка - самодельный;) программатор + комп на ЛЮБОМ чипсете с процом 386DX (обычный DX без SMM, а не Am386DXLV какой-нибудь;) с (проверенным) биосом в однократке + эталонный чистый образ биоса для основного компа...

Аватар пользователя apple_rom

Цитата:
Так вот, все их разработки были на чипсетах и процессорах AMD, что было аргументировано как раз доступностью документации на чипсеты и процессоры.

Полностью согласен, о том ж и речь, на мой взгляд, документация для AMD - "много более доступна".

"предустановленные" бирусы на компьютерах от производителя из враждебно настроенной страны – никак нельзя будет обнаружить."

И даже прочитав код из БИОСа с помощью программатора?

Аватар пользователя apple_rom

Цитата:
И даже прочитав код из БИОСа с помощью программатора?

Эээ, ну, не настолько... Речь о работающем, к примеру, под Windows антивирусе. А изъяв микросхему из платы, понятно, с прошивкой можно сделать что угодно. Возможно лишь за исключением Flash-микросхем со встроенным боевым минизарядом для самоуничтожения.:)

Аватар пользователя Baza

Если мне не изменяет мой склероз:), то уже есть SPI микросхемы, в которых бутблок криптует содержимое остальной части флешки, и бутблок может быть сделан OTP:)

А так....я ждал когда это наконец-то всплывёт:(

Либо нечему гореть, либо нечем поджечь!

а если отключить ногу мс отвечающую за программирование на плате? тогда наверное сложно в неё что либо зашить будет?

068bin

maco писал(-а):
Не скажу о всех флешках, но обычно WP# защищает только запись в статусный регистр, да и то это еще может настраиваться програмным образом у некоторых флешек, если я правильно помню. А уже в статусном регистре обычно обитали биты защиты, комбинация которых указывала на защищаемую область (начиная от верхних адресов).

Я конечно нифига в этом не понимаю, но статья мне понравилась. Вот только не понимаю - стоит ли бояться.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей