Последняя обзорная статья из цикла о бирусах, рассматривающая в общем (возможные) методы их работы.
Вариант 1, классический.
Рассмотрим структурно один из вариантов работы бируса.
1. Получение управления в OS.
2. Считывание текущего BIOS.
3. Добавление в BIOS своего кода.
4. Прошивка BIOS.
1. Получение управления в OS.
Вариантов - множество, все они отражают вирусную сущность бируса. Важным отличием является лишь требования на наличие возможности работы в Ring 0, чтобы осуществить прошивку. Как один из вариантов – изменение MBR и прошивка при (точней – перед) последующей загрузке Windows.
2. Считывание текущего BIOS.
Считывание (как и прошивка) BIOS – удел прошивальщика. Основной проблемой в этом деле является сильная зависимость процедур чтения-прошивки от железа – как чипсета (мосты + мультик) материнской платы, так и от Flash-микросхемы (её типа/производителя/модели).
Однако те, кто думают, что эта сложность перетекает в «нереальность» существования «универсального» прошивальщика (или относительно универсального – поддерживающего какой-то достаточно большой процент систем) ошибаются, потому как не учитывают, что это такая же проблема и для самих BIOS-описателей. Ведь при отработке BIOS POST происходит запись конфигурационных данных в саму Flash-микросхему, что суть – прошивка. Т.е. сам BIOS должен уметь её прошивать. А значит – он имеет процедуры по её прошивке внутри своего кода. Как минимум, для того, чтобы облегчить жизнь «официальным» прошивальщикам BIOS предоставляет стандартный интерфейс по «размапливанию-замапливанию» чипсета – процедур, принципиально необходимых для того, чтобы прошивальщик мог «добраться» до содержимого Flash-микросхемы. А уже процесс прошивки, определив тип установленной микросхемы, прошивальщик берёт на себя.
С учётом конечного количества микросхем, используемых на материнских платах и схожестью алгоритмов их работы, осуществить поддержку большинства их работы – не составляет особого труда. Например, awdflash последних версий поддерживает порядка полутора сотен микросхем, занимая при этом (со всем другим необязательным функционалом) всего порядка 60Кбайт в непожатом виде (в два раза меньше при упаковке стандартными алгоритмами, используемых для модулей BIOS).
3. Добавление в BIOS своего кода.
Интеграцию в BIOS своей составляющей бирус может осуществить разными путями. Это может быть как использование отдельных модулей, где будет храниться код бируса, так и внедрение в имеющиеся (или комбинацию обоих методов).
Первый получится «более грамотным», т.к. упрощается весь процесс – обычно нужно лишь дописать код нужного модуля и исправить контрольные суммы. Однако при этом он будет «более заметен» в забирусованной прошивке (хотя её ещё нужно будет считать)...
Второй – более сложен в реализации и может иметь дополнительные ограничения по объёму добавляемого кода.
Третий вариант наиболее действенный – патч одного из модулей для получения управления (в процессе BIOS POST), а основной код бируса добавляется под видом другого какого-то «безобидного», например, картинки, шрифтов и пр.
Этот процесс – универсальное внедрение в BIOS - второй из пунктов, который вызывает наибольшее недоверие у неосведомлённых специалистов. Однако в данном случае есть серьёзный довод для доказательства сказанного – программа BIOS Patcher, которая с 2002-го года благополучно работает на подавляющем большинстве Award BIOS (а в версии 6.х – и с AMI). Она использует одну из уязвимостей всех BIOS, построенных по модульному принципу и её главной чертой есть то, что патчер _не изменяет никаких_ модулей BIOS, лишь добавляя свои стандартными средствами. Это даёт максимальный универсализм и надёжность. Патчер давно не поддерживается мной (с 2004-го года), однако при этом до сих пор работоспособен на самых новых материнских платах с Award BIOS на борту. Используемая патчером уязвимость (позволяющая добавлять код без патча модулей) есть и в Phoenix BIOS, а это уже, как минимум, порядка 75% всех систем. Подчеркну, это уязвимость, позволяющая проделать «чистую» работу в плане интеграции в BIOS. Если же отбросить подобные требования и действовать «грубо» - можно заразить практически любой BIOS, структура и алгоритмы распаковки-упаковки которого известны. А это, как несложно догадаться – большинство всех BIOS.
4. Прошивка BIOS.
Прошивка аналогична считыванию в нашем контексте, об этом уже было выше написано. Лишь стоит добавить, что по времени она обычно есть более длительный процесс (по сравнению со считыванием) и в зависимости от типа и объёма занимает от нескольких десятков секунд до нескольких минут.
Вариант 2, предустановленный бирус.
Другой вариант, когда бирус изначально находится в прошивке.
1. Пользователь скачивает BIOS с бирусом внутри.
2. Сам прошивает такой забирусованный BIOS.
У многих пользователей из-за многочисленных поправок, постоянно вносимых в современные BIOS, выработалась привычка обновлять всё, что обновляется. Это запросто может стать предметом атаки.
Первое, что приходит на ум, это может быть взлом официальных сайтов производителей материнских плат и выкладывание на них забирусованных прошивок вместо оригинальных. Однако технически осуществить взлом крупных сайтов производителей непросто, т.к. это как правило корпоративные серверы с серьёзными мерами по защите своих ресурсов.
Потому скорей можно предположить другие методы атаки, например, как подвид фишинга – создаётся псевдо-официальный сайт типа gigabyte-bios-download.com, где выкладываются забирусованные прошивки. Минимальные SEO-телодвижения по раскрутке такого адреса и пользователи потянутся на сайт, самостоятельно прошивая в результате себе заразу в BIOS.
п.с. Как подвид второго варианта – бирус в изначально новом компьютере. Но это уже совсем другая история…
Антивирусы не панацея, и свежие (или старые но свежекриптованные) трояны/черви практически никогда не определяются их эвристиком - факт. Почему я выбрал для примера троянов/червей - потому, что подавляющее большинство их пишется не студентами-исследователями, а профессионалами, продающими потом ботнеты за немалые деньги, либо - пользующими ботнеты для спам-рассылок.
По части теоретической возможности реализации бируса - я здесь проблем не вижу. Единственное, что пока (возможно) нереализовано - собссно взаимодействие из SMM с ядром оси, но, думается, это не есть невозможной задачей. Хотя и достаточно сложно само по себе. В принципе получить физ. адреса расположения ядра и драйверов системы (хотя бы приблизительно) - несложно (из IDT к примеру, да и в GDT под ядро отведены отдельные дескрипторы - но что-либо твердо утверждать не буду т.к. в ядре винды не копался), подправить системные структуры, создав новый процесс или драйвер "на лету" - думается, тоже реально. + возможен вариант инжекта кода (потока) в какой-то системный процесс - все-таки SMM имеет привилегии несколько выше, чем привилегии ring0![;)](http://bios.rom.by/img/smiles/icon_wink.gif)
+ от обнаружения антивирусом, даже при наличии оверлея на жестком диске (если бирус выйдет сильно жирным), спасет фильтрование обращений к портам IDE/SATA контроллера - что в SMM тоже реализуемо.
Собссно отсюда и выводы... Ждем появления первого представителя в "дикой природе"...
P.S. кстати, для параноиков ИМХО есть простой вариант хоть как-то подстраховаться - включить в свой биос какой-то ничего не делающий модуль, который бы занял все свободное место, и имитировал критичный модуль. Не думаю, что в бирусах будут реализовывать анализ и удаление модулей - во всяком случае, в первых представителях... Поскольку сильно заметно (у пользователя "вдруг" отвалился рэйд - ессно биос будет перешит тут же), + достаточно сложно определить, что же действительно излишне.
Уважаемые коллеги, в переписке с нашими англоязычными партнерами помните: whether - который, weather - погода, wether - кастрированый баран!
У некоторых людей торс - это просто разветвитель, позволяющий подключить руки и голову к заднице.
Мы пойдем другим путем: напишем хороший, классный вирус, который еще неизвестен антивирусному ПО, исполняющийся в SMM и маскирующий себя на жестком диске в одном из неиспользованных кластеров.
Теперь вопрос: для чего городить весь этот огород насчет бирусов/фирусов?
Открытая книга: icbook.com.ua
Тогда вопрос - как ему попасть в SMM? Через ring0?
-=Кто сказал что бесполезно биться головой об стену...=- (НП)
Пх’нглуи мглв’нафх Ктулху Р’льех вгах’нагл фхтагн
Хочешь сделать хорошо - сделай это сам
Возможность такая есть. Но мы же не пособие для начинающих вирусописателей делаем. Нам и гриппо-свинки пока хватает : - )
Открытая книга: icbook.com.ua
Чет так стремно все описывают. Тупо взял программатор вытощил (выпаял falsh), перепрошил и хана бирусу)
Тупо?
Открытая книга: icbook.com.ua
Я достаю из широких штанин
.
Дубликатом бесценного груза.
Нет, не паспорт
Я достаю
кольтпрограмматор,Покрытый пылью дальних дорог.
И с наслаждением расстреливаю
Бирусы пачками.
(с) Покорение Дикого Запада
Потенциальная неизлечимость, во всяком случае - в первые недели/месяцы (пока кто-то не произведет препарирование БИОСа и не определит, откуда "это ховно" постоянно лезет на свежую систему); невозможность лечения за пределами СЦ/лабораторий "кулибиных"; потенциальная невозможность определения факта заражения системы (загрузочный диск ведь не канает, в отличие от типового вируса)... Продолжать?
Ведь городят же огород из руткитов, перехватывающих кучу системных вызовов, да еще и с драйвером, который из своего тела вытаскивает и добавляет в автозагрузку длл/екзешник... И все - ради скрытия какого-то спамбота...
Уважаемые коллеги, в переписке с нашими англоязычными партнерами помните: whether - который, weather - погода, wether - кастрированый баран!
У некоторых людей торс - это просто разветвитель, позволяющий подключить руки и голову к заднице.
Программатор это хорошо, но:
на большинстве современных плат микросхема припаяна, имеет корпус SO-8 и интерфейс SPI
На некоторых платах есть разъём ISP SPI ..через него можно прошить Flash, на некоторых он разведён, но не припаян...что хуже, но излечимо.....на многих его просто нету.
Либо нечему гореть, либо нечем поджечь!
не проблема. Абсолютно.
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Ах! это неубедительно. Но, в принципе, идея кристаллизуется.
Открытая книга: icbook.com.ua
"С того момента, когда обновление Биос сделали через веб, многие задумались"
====
те, кто задумывается, ставят проксю на шнурке, а за проксю убирают всё, на чём могут размножаться вирусы, бирусы, фигирусы...
любые две разнородные системы с анализатором трафика всегда спасали и спасают по сей день отцов (реальных отцов, а не пыонэроф, начитавшихся журнала <хакер> и бюллетеней MS) русской, и не только, демократии.
а ежели у вас везде винда, да никто логи не анализирует - ну, пишите тогда антивирусы, антибирусы, времени то у вас много...
"те, кто задумывается, ставят проксю на шнурке, а за проксю убирают всё, на чём могут размножаться вирусы, бирусы, фигирусы..."
)
====
А вы о модных технологиях защиты ноутбуков от кражи почитайте - почти каждый производитель уже что-то похожее сваял... так что к проксе еще "железную комнату" добавьте
после прочтения возник вопрос по поводу следующего случая:
знакомым был пойман баннер который не удалился после форматирования даже ВСЕХ HDD !
куда он влез? нулевые треки? БИОС?
Все вопросы сводятся к вопросу: "Кто я?". Все ответы к: "А хрен его знает."
Всякий раз, когда читаю мнение этого бывалого анализатора логов, рука тянется к клавиатура, но я ее в страхе одергиваю: ведь понятно же, что он сказал, как отрезал!
Открытая книга: icbook.com.ua
Имею ноутбук,захотел в нем поменять видеокарту,конструкция позволяет.Поменял.При загрузке машины ноут делал тайм-аут в 30 секунд и каждую секунду пищал динамик. Очень раздражало...Порыскал в интернете,и оказалось,что это предупреждение от видеокарты(!) о том,что железо на мамке может потенциально быть несовместимым с видеокартой. К счастью,все совместилось и работает,как надо.Но пауза и звук!Надо было бороться.
Решение состояло из двух частей - заменить в видеобиосе запись в порт таймера на 90 90 и изменить байт 1Е на 01,соответственно,счетчик не 30 секунд держит,а только одну. С помощью распространенной утилиты скорректирована контрольная сумма видеобиоса,перезаписано и все!
К чему такой долгий рассказ вроде не в теме?А к тому,что все это проделывается на коленке пользователями,очень поверхностно знакомыми с программированием,железом и т.д. И если я на специализированном форуме,посвященном конкретной модели ноутбука, выложу "исправленный" вариант биоса с хитрыми вложениями,учитывающими особенности программирования-функционирования конкретного ноутбука,а детали легко вынимаются из официальной прошивки с сайта производителя,то в широкий невод попадет масса поверивших в панацею, желающих убрать писк при старте,повысить частоты,изменить логотип-поменять надпись при старте и т.д.
Вот и я не могу понять - к чему такое возмущение ?
Не хотите выкладывать ? Вас никто не заставляет !
Кто хочет - ищет способ
Кто не хочет - ищет причину (с)
Да я вроде и не возмущался(или?)...И не собирался ничего такого выкладывать - все просто в качестве примера.Я и написать то такого не смогу,и не хотел бы(это я оправдываюсь,извините).
У многих сама постановка вопроса(и не только на Вашем форуме) вызывает недоумение - как?зачем?кому это надо?это не возможно и т.д. А я просто хотел сказать, что все описанное - вовсе не страшилки,а вполне посильная задача для "просто хулиганов" и "злобных хакеров".
Кстати,один из блоггеров(dogber1) в интернете повыкладывал утилиты для генерирования инженерных паролей на биос,все программы и исходные коды созданы на основе GNU.После распространения в сети его "изделий" он написал подборку советов для производителей оборудования - как стоило бы улучшить и обезопасить процедуру разблокирования ноутбуков,гарантируя недоступность разлочки для воров и покупателей краденного.
Может,и здесь в обсуждениях родятся мысли и рекомендации,как избежать неприятностей в будущем.
Время "просто хулиганов" и "злобных хакеров" прошло. Настало время прагматиков и обладателей кредитных карт. Иногда это характеристика одного и того же человека. Иногда — разных.
Открытая книга: icbook.com.ua
Однако в тему.
ithappens.ru/story/4399
И ведь все это реально.
Выход обычно есть. Но он не работает.
Я с огромным удовольствием прочитал статью 1-ю, 2-ю и 3-ю части. приятно удивляет хумор местных обитателей
а ежели у вас везде винда, да никто логи не анализирует - ну, пишите тогда антивирусы, антибирусы, времени то у вас много...
Всякий раз, когда читаю мнение этого бывалого анализатора логов, рука тянется к клавиатура, но я ее в страхе одергиваю: ведь понятно же, что он сказал, как отрезал!. Беззлобно и приятно.![shock](http://bios.rom.by/img/smiles/icon_eek.gif)
Раньше думал над этой проблемой. Даже скорее так: ломал голову. И наломал. Перестал думать об этом. Однако не совсем.
ПРОЛОГ: По роду своей деятельности я в чудеса не верю, зато верю в кривые руки, тупые головы, злобное варварство и бесстыдное враньё. Не нужно напрягаться, если вы не из числа моих нелюбимых клиентов. Но даже если и так, забудьте на минуту об этом и расслабьтесь, а я поведаю вам сказочку.
Жила-была мелкомягкая контора МС, которая клепала софт и обновления и жизнь этой конторы была налажена и даже самые страшные грозовые тучи не могли преодолеть гор из банкнот, которые забашляли юзеры этой конторе за время своей безрадостной жизни, связанной с вышеупомянутым софтом. Софт становился всё "круче" и неуправляемее, контора - всё богаче, а юзеры - злее и тупее.
А дальше - жестокая проза - во время обновления О.С. "ОКНА 7" и "висты" часть ноутбуков безвременно отдавала концы с диагнозом - не вкл. Прошивка на программаторе излечивала часть этих бедолаг. Анализ биосов показал, что в те части биос, котоые прежде не были заняты программами и шрифтами была добавлена информация. Мало того, анализ биосов, снятых с различных ПК выявил существенные отличия от оригиналов, выложенных производителями на оф. сайтах. Конечно, идея подобного "всемирного жидомасонского заговора" не нова, пока что не имеет под собой особых оснований и требует проведения доказательных экспериментов. Но существование лёгких и незаметных способов софтового манипулирования прошивкой (а будучи подаваемыми под определённым "соусом", в глазах среднего пользователя - даже полезных), сомнению не подлежит.
ЭПИЛОГ: Глядя на гигабайты "убитых" файрволлом пакетов, сотни и даже тысячи отклонённых защитой рутера попыток связи ПК неизвестно с кем по всем доступным протоколам наводят на грустные мысли. При этом "интернет работает", ничего не тормозит. Страшно, если враг уже прошёл через защиту, невидим, неуязвим, опасен.
Насчёт масонских заговоров, на нынешнем витке технологий - на этот вопрос ответить определённо будет уже намного сложнее, и скорее даже невозможно! Не забываем что сейчас встраивают в чипсеты современных ПК!
По очень настоятельной просьбе трудящихся - ориджин удалён и больше не появится. Гарантировать же отсутствие публикации статей со своей стороны не могу :P
Ребята, закрыли бы вы тему. Или унесли бы в анпаблик.
Отправить комментарий