Dust filter bios что это
Всем привет, дорогие друзья, рад вас снова видеть! Сегодня речь пойдет о том, как часто стоит чистить системный блок от пыли.
Начать стоит с того, что я, как и все, придерживаюсь мнения "раз в год", но с одной оговоркой - если компьютер будут чистить не ваши руки, а сервис. Ежели вы сами в состоянии разобрать, почистить и собрать ПК, то делать это следует несколько чаще: раз в полгода.
Сейчас мы посмотрим, что скапливается внутри ПК за 3 месяца, рассмотрим отдельные узлы, а также рассмотрим несколько бюджетных вариантов пылевых фильтров. Поехали!
1. Много ли пыли?
Тут, конечно, объективностью не пахнет, поскольку человек я достаточно чистоплотный и уборка в комнате если и не ежедневная, то через день так точно. В прочем, вот что находится внутри системного блока.
Как можно заметить, пыли действительно немного, и серьезного влияния на температуру она не окажет. Несколько другая ситуация будет с ноутбуком, их чистить нужно несколько чаще.
Кулер на процессоре
Наибольшее скопление пыли именно тут. За три месяца ребра радиатора "обросли" пылевым налетом. Серьезного влияния на температуру это не окажет, однако пыли постепенно будет становиться все больше и больше.
Видеокарта
Южный мост
Как можно заметить, за три месяца в чистой комнате пыли не будет слишком много. Да, она есть, и будет лучше, если ее вычистить, но тем не менее - за три месяца компьютер не забьется пылью, так что можно играть спокойно.
Но что если чистить не хочется, но пыль не дает покоя?
Пылевые фильтры!
Эта штука работает довольно примитивно: пыль задерживается на фильтре, а чистый воздух идет дальше. Эффективность пылевых фильтров различается, в зависимости от модели и производителя. В среднем, такой фильтр задержит 80-95% пыли, попадающей в корпус. В таком случае, чистка компьютера превратится в мойку пылевого фильтра, а пыль из корпуса можно будет чистить раз в 3-5 лет.
Бюджетный вариант пылевого фильтра для компьютера:
- Капроновый чулок
- Медицинская маска
- Марля
Перед установкой фильтра стоит помнить, что все щели в ПК необходимо будет заклеить. Таким образом, чтобы воздух мог пройти только через фильтры.
Следующим шагом будет оптимизация воздушных потоков. Фильтры можно поставить туда, откуда воздух будет забираться. Ставить фильтр на "выдув" не стоит, поскольку это отрицательно скажется на количестве выдуваемого воздуха.
Не стоит использовать слишком плотный материал. Очевидно, что такой материал может и не допустит пыль, но только потому что не пропустит и воздух. Так не эффективнее ли сразу залепить все щели внутри ПК, включая все вентиляционные отверстия, и наслаждаться перезагрузками с интервалом в 15 минут? Не стоит. Самый оптимальный вариант проверить материал на продуваемость - подышать через него. Человек должен относительно легко вдыхать и выдыхать воздух через "посредника" в виде материала пылевого фильтра.
Все эти советы подойдут тогда, когда нет возможности купить нормальный пылевой фильтр, так как готовое заводское изделие стоит очень недорого, отличается эффективностью, и не попадет в лопасти вентилятора с большой вероятностью.
Спасибо за внимание. Понравилась статья? Поставь лайк и подпишись на канал , чтобы не пропускать новые статьи!
Банальная ситуация. Есть старый компьютер, который уже устарел, но используется для простых задач. Вкладывать в него какие-то деньги на апгрейд не хочется, а покупать новый системный блок не целесообразно. Но хочется, чтобы старый ПК работал бесшумно, не грелся и не был сборником пыли. И самое главное, без каких либо вложений денежных средств.
В этой статье рассматривается вопрос пыле- и шумоизоляции без значительных денежных вливаний.
Прежде чем приступить к пыле- и шумоизоляции нужно было привести системный блок в подобающий вид. Поэтому все начинается с чистки системного блока.
Чистка системного блока
Я нормально не чистил свой системный блок с 2008 года (10 лет). Как-то не было необходимости. За это время все компоненты покрылись слоем пыли, а в некоторых закоулках слой пыли достигал 2-3 сантиметров. Доходило до того, что пыль чувствовалась в воздухе, выдуваемым из блока. Бесспорно, чистка была нужна.
Скажу сразу, что процедура чистки оказалась для меня самой долгой – 6 часов.
Для чистки использовались:
- пылесос;
- баллончик со сжатым воздухом;
- кисточка;
- влажная тряпка.
Простые способы закончились и в ход пошли кисточка и влажная тряпка. Большие открытые пространства протирались тряпкой, закоулки кисточкой. Сухой кисточкой ворошим пыль и её сдуваем или затягиваем пылесосом. В результате такой долгой и трудоемкой работы все было очищено от пыли.
Подытожу.
Вывод 1: Системный блок нельзя качественно почистить пылесосом или сдуть пыль струей сжатого воздуха. Качество такой чистки плохое, видимая пыль остается, закоулки остаются не тронутыми.
Вывод 2: Запыленный системный блок возможно привести в первозданный вид. Кропотливая работа кисточкой и влажной тряпкой позволяет полностью избавиться от пыли и компоненты принимают первозданный вид. Все зависит от вашего упорства.
По сути для нормальной чистки системного блока нужна кисточка и влажная тряпка. Ну, и ваше терпение, т.к. работа действительно трудоемкая.
Пылеизоляция
После многочасовой очистки системного блока вопрос защиты от пыли был весьма критичен. Кому захочется загадить только что очищенный системный блок?
После очень долго чтения статей в Интернете по данному вопросу я пришел к ряду выводов.
Вывод 3: Необходимо установить пылевые фильтры на все вентиляционные отверстия, через которые воздух попадает в системный блок. Если брать стандартный ATX-корпус, то это боковые вентиляционные отверстия и передний кулер работающий на «вдув» (если он предусмотрен конструкцией).
Вывод 4: Все технологические отверстия необходимо закрыть. В любом корпусе есть ряд технологических отверстий для креплений и разъемов. Через них воздух и, соответственно, пыль попадают внутрь системного блока. Эти отверстия элементарно заклеиваем скотчем и проблема решена.
Вывод 5: На вентиляционные отверстия, через которые воздух выходит из системного блока, фильтры ставить не надо. Это вполне логично – поток воздуха не позволит попасть пыли внутрь блока. Если брать стандартный ATX-корпус, то это кулер блока питания и системный кулер на задней панели (если он предусмотрен конструкцией).
Большой вопрос вызвали эти самые пылевые фильтры. С фильтрами под кулер все просто – есть хорошие стальные фильтры из Китая за 80 рублей. Но как быть с боковыми отверстиями? Размеры этих вентиляционных отверстий не стандартные. Фильтры для них найти можно, но за очень хорошие деньги (несколько тысяч рублей). Понятно дело старый компьютер не стоит таких вложений.
Путем многочасового чтения статей по данной проблеме было найдено простое и эффективное решение – капрон.
Вывод 6: Дешевый и эффективный пылевой фильтр можно легко сделать из капрона. Все очень просто. Берем капроновый чулок (мне жена пожертвовала), вырезаем кусок нужного размера и крепим в слегка натянутом состоянии на вентиляционное отверстие при помощи скотча. Можно вместо скотча использовать магниты. Капрон очень хорошо задерживает пыль, реально хорошо. После пары месяцев работы с такими фильтрами у меня в корпусе не пылинки.
Фотография не очень качественная, но на ней виден скотч, закрывающий технологические отверстия, и капрон, натянутый на вентиляционное отверстие (черное пятно).
Вывод 7: Фильтр из капрона практически не уменьшает воздушный поток. На различных формах, где обсуждались капроновые фильтры, не раз высказывалось мнение, что такой фильтр уменьшит воздушный поток и это приведет к перегреву. Я лично сам проверил: поток воздуха примерно такой же, в системном блоке температуры не поменялись ни на градус. Так что не бойтесь ставить фильтры.
Как видите, решить проблему пылеизоляции достаточно просто, чего нельзя сказать о шумоизоляции.
Шумоизоляция
Шумный системный блок – это действительно раздражающая проблема. Хочется тишины очень сильно. Понятное дело, что хороший корпус с шумоизоляцией и нормальное охлаждение могут решить эту проблему, но цена решения очень высока (несколько тысяч рублей). Поэтому поиск бюджетного решения вызвал немало головной боли.
Шум системного блока можно разделить на два вида:
- высокочастотный шум вентиляторов;
- низкочастотные вибрации корпуса.
В принципе решение было объективным и доступным. Поэтому я взял у моего друга кусок акустического (!) поролона и купил лист вибропласта за 160 рублей в магазине автозапчастей. Выбрав свободный день, я начал эксперименты с обклейкой корпуса.
Небольшое отступление: в магазине в наличии был только какой-то российский гибрид вибропласта и акцента под многозначащим названием «Шумоизоляция». По сути это тот же вибропласт на битумной основе, но с небольшой прослойкой (примерно, 3 мм) пузырчатого материала. Данный материал полностью удовлетворял необходимым характеристикам для борьбы с низкочастотным шумом.
Первый прокол был связан с поролоном.
Вывод 8: Никакие шумоизолязиционные материалы внутри корпуса не могут поглотить или рассеять высокочастотный шум. Все до идиотизма просто. Пористые материалы (в моем случаи акустический поролон) хорошо поглощают рассеянные звуковые волны. Если бы я обклеил стены комнаты акустическим поролоном, то я, наверное, добился снижения шума системного блока. Но внутри корпуса интенсивность шума настолько высока, что никакой пористый материал не в состоянии его рассеять или поглотить. К тому же источники высокочастотного шума четко локализованы – это вентиляторы охлаждения. Заглушить их каким-либо материалом внутри корпуса не возможно.
Поняв это, я аккуратно отклеил поролон со стен корпуса, мысленно обругал людей, которые писали об обклейке корпуса поролоном, и приступил к дальнейшей шумоизоляции.
Неудача с поролоном меня не остановила. Во-первых, в обклейке корпуса вибропластом было рациональное зерно. Во-вторых, особенно хотелось избавиться от низкочастотных шумов, так как они сильно «резали ухо».
Я начал поэтапную обклейку вибропластом корпуса системного блока. На это дело я потратил примерно 2 часа, так как было много возни с «фигурным» вырезанием. А в результате…
Вывод 9: Обклейка корпуса виброзащитными материалами дает незначительные результаты. То есть низкочастотные шумы стали тише, но совсем чуть-чуть. Если бы я знал, что будет такой результат, то никогда бы не пошел на это.
Фиаско…
Пользуясь случаем, хочу передать пламенный привет тем умельцам, которые писали о впечатляющих результатах после обклейки корпуса вибропластом. Как говорится, каждый кулик свое болото хвалит.
Вибропласт отдирать не стал, так как это уж очень геморройно оттирать битум с корпуса. Но, кстати, еще один вывод.
Вывод 10: В отводе тепла от компонентов корпус системного блока практически не играет никакой роли. При обсуждении обклейки корпуса различными материалами не раз выдвигалось мнение, что материалы будут препятствовать отводу тепла через корпус. Это якобы приведет к перегреву. В реальности у меня после обклейки корпуса вибропластом (а он весьма неплохо держит тепло) температура компонентов вообще не изменилась. Отсюда и такой вывод – корпус системного блока практически не участвует в отводе тепла.
Но на этом история с шумоизоляцией не заканчивается. Я наклеил куски вибропласта на ножки корпуса системного блока.
Вывод 11: В создании низкочастотных шумов большую роль играет нахождение на твердой поверхности. Виброзащитные прокладки на ножках системного блока значительно снижают уровень низкочастотного шума. Я вырезал 4 кусочка вибропласта 3х3 см. и наклеил их на ножки корпуса. Низкочастотный шум практически исчез.
Я понимаю, что это глупо, но оно действительно так. Обклейка корпуса не дала практически никаких результатов, а чертовы прокладки на ножки убрали весь шум.
Итог простой. Если у вас системный блок находится на твердой поверхности, то наклейте на ножки корпуса прокладки из вибропласта. Вибропласт лучше не покупать, а спросить небольшой кусочек у любого друга-автолюбителя.
История с шумоизоляцией была бы не полной, если опустить вопрос охлаждения.
Охлаждение
Все мы хорошо понимаем, что причиной шума в системном блоке является в первую очередь система охлаждения. С ней ситуация двоякая. Для обеспечения хорошего потока воздуха лопасти вентиляторов должны быстро вращаться, соответственно, создавая много шума. Если же мы хотим уменьшить уровень шума, то нам нужно уменьшить интенсивность вращения лопастей, но это приведет к увеличению температуры компонентов. Найти «золотую середину» непростая задача.
Понятное дело, что хорошая малошумная система охлаждения и соответствующий ей корпус являются лучшим решением, но такое решение требует немаленьких денежных вливаний. Бюджетного готового решения для старых ПК не существует. Поэтому попробовал провести ряд экспериментов.
Вначале рассмотрим, как происходит отвод тепла в старых ATX-корпусах.
Основной поток воздуха создает вентилятор блока питания. Он должен работать на «выдув», забирать горячий воздух из корпуса и выбрасывать его наружу. Внутри корпуса в результате создается пониженное давление, которое «всасывает» воздух помещения через все остальные отверстия. Стандартно в ATX-корпусах этими «остальными отверстиями» являются вентиляционные отверстия на боковой стенке, отверстия под кулеры на задней стенке (под блоком питания) и передней стенке (в некоторых конструкциях).
Так вот я потратил день на эксперименты с охлаждением. Я отключал/подключал системные кулеры, закрывал/открывал вентиляционные отверстия, ставил направляющие заслонки внутри корпуса. В результате сформировались следующие выводы.
Вывод 12: Вентиляционное отверстие на боковой стенке корпуса играет ключевую роль в охлаждении процессора. Если его закрыть, то в корпусе начинает скапливаться теплый воздух. Потоки свежего воздуха с передней панели не обеспечивают должной вентиляции. В результате процессорный кулер вынужден работать в режиме повышенных оборотов, создавая много шумов. Никогда его не закрывайте.
Вывод 13: Системные кулеры на передней и задней панели обеспечивают лишь охлаждение на расположенные рядом с ними участки. На остальные компоненты они не влияют. Неважно, в какую сторону системные кулеры направляют поток воздуха. То есть кулер на задней панели помогает охлаждению верхней части материнской платы под блоком питания; кулер на передней панели обдувает HDD. Они понижают температуру этих участков на несколько градусов. На общее состояние внутри корпуса они практически не оказывают никакого влияния. Вы можете разворачивать их как угодно — результат будет тот же. Вы можете их вообще отключить – общее состояние системного блока не поменяется. Короче говоря, от системных кулеров на корпусе толку мало.
Напомню, что мы говорим о старых ATX-корпусах. В этих корпусах самый большой возможный для установки кулер – это системный кулер 90х90 мм. Понятное дело, если мы берем более корпус в котором уже продумана система охлаждения кулерами большого диаметра, то ситуация будет другая.
Как вы видите, мои эксперименты с охлаждением ни к чему не привели. Бюджетного способа улучшить охлаждение в старых системных блоках не существует.
Итоги
Не пытайтесь сделать из старого системного блока «конфетку» – без приличных денег это не возможно. Не пытайтесь обклеивать корпус звуко- и вибропоглощающими материалами – это бесполезная трата времени. Не пытайтесь «колдовать» с системой охлаждения – результатов лучше вы не получите.
С течением времени любой компьютер наполняется внутри пылью - это общеизвестный факт. Ведь хотим мы того или нет - пыль всегда есть в доме. И тем или иным способом пыль проникает во внутренности системного блока. Это не зависит ни от чего: стоял ли корпус компьютера на столе, как бы ни часто его протирали от пыли, как бы чисто ни было в доме. Это всего лишь вопрос времени.
Для предотвращения проникания в корпус пыли (или хотя бы уменьшения скорости накапливания пыли - причем на порядок), существует один простой способ, о котором я хочу рассказать. Это - использование пылевых фильтров.
Мне известно в нашем городе всего два вида пылевых фильтров - и оба продаются в магазине ДНС. Пользуясь я хочу упрекнуть менеджеров наших компьютерных магазинов - фигню всякую вы возите, а реально нужные вещи упускаете! Тем более - вещь это по определению простая и, по сути своей, недорогая по всем прикидкам.
ИМХО, пылевой фильтр никак не должен стоить свыше 100 рублей. Некоторые магазины (не будем указывать пальцем) раньше возили фильтры, но по очень "конской" цене - свыше 200 рублей, что, по моему личному мнению, ни в какие ворота не лезет. Ладно, обо всем этом подробнее расскажу внутри.
Вот так выглядят пластиковый и алюминиевый пылевые фильтры:
Заранее скажу/предупрежу (дабы потом попусту не спорить), что весь этот написанный мной материал - из личного моего опыта, а также планомерного изучения цен на компьютерные комплектующие минимум в течение трех лет. Раньше (начиная года эдак с 2006) я периодически обходил пешком все компьютерные магазины города. К 2014 году одни магазины закрылись, другие - сменили свой профиль, третьи - ворвались в рынок продажи компьютеров в нашем городе.
Не могу не отметить то, что интернет развивался семимильными шагами - это я вас "какбы" аккуратно веду к происхождению и развитию сайтов компьютерных магазинов. Ну а за эти годы я немного постарел и стал ленивым и жирным несколько занят, а потому хожу редко, лишь в основные магазины, поэтому компенсирую недостаток инфорации по ценам на комплектующие постоянным мониторингом прайсов - благо хорошие магазины ежедневно обновляют свои прайсы на своих сайтах.
Пыль имеет обыкновение скапливаются внизу, если сказать конкретно - на полу. Именно поэтому я бы не советовал ставить системный блок компьютера на пол (или всякие подставки вблизи от пола). Лучше ставить системник на стол - так он минимум раза в два будет собирать меньше пыли. Раньше я ставил корпус на пол, сейчас же - только стол, так что мне было с чем сравнивать.
Ладно, довольно пустого трёпа - перейдем к делу.
В данном конкретном случае я купил фильтры одного типоразмера - 120 мм, которые предназначены для установки на вентиляторы типоразмера 120 мм. Также существуют в природе пылевые фильтры и для вентиляторов других типоразмеров - 140 мм, 92 мм, 80 мм, но в продаже встретить их в наших городских компьютерных магазинах маловероятно. Обычно магазины возят только на самые популярные типы - 120 мм и 92 мм.
В принципе, творческим и смекалистым людям несложно и самим "сварганить" подобные фильтры - благо интернет полнится инструкциями, но об этом я напишу как-нибудь потом, если получится.
Вот они внизу пылевые фильтры, купленные в ДНС:
Стоили они на момент покупки (17 июля 2013 года) 85 рублей за алюминиевую версию и 55 рублей за пластмассовую. А на 18 января 2014 года цены почему-то повысились - 129 рублей за "люминь" и 65 рублей за "пластик":
Итак, имеем два типа фильтров - "тонкий" (~1 мм) алюминиевый и "толстый" (~10 мм):
Как устанавливать пластиковый фильтр, я думаю, интуитивно понятно даже ребенку. По фоткам все видно:
Установка пластикового чуток сложнее, поскольку этот фильтр разбирается на части:
Сначала крепим саморезами тот пластик, который с 4-мя отверстиями на вентилятор:
Затем просто фиксируем/закрываем его фильтом и "крышкой":
А затем и корпус закрываем:
Важно:
Как вы, наверное, поняли пластиковый фильтр можно закрепить на вентилятор только если этот вентилятор не будет "висеть" на стенке корпуса.
А алюминиевый фильтр можно "крепить" где угодно и как угодно, поскольку его толщина позволяет сделать это. Так что перед покупкой стоит хорошо продумать куда и как в корпусе вы будете устанавливать пылевые фильтры.
Также я хочу развеять пару мифов, связанных с пылевыми фильтрами:
Миф первый - установка пылевых фильтров на вентилятор увеличивает шум.
Это не более чем домыслы.
Вы можете сами это проверить, установив фильтр и измерить уровень шума своим ухом. Либо прочитав отзывы людей, установивших фильтры. Более того - я скажу, что фильтр уменьшает шум вентилятора - этому есть многочисленные свидетельства.
Миф второй - установка пылевых фильтров умешьшает воздушный поток вентилятора.
Сами подумайте - если бы уменьшал, то перед вентилятором образовывался бы вакуум. Но этого не происходит - атмосферному давлению свободно проникаетчерез дырки фильтра.
Скажу еще более смелое утверждение - даже если вместо фильтра прикрепить обычную бумаги (из тетради, например) - то даже в этом случае воздушный поток не уменьшится.
Тесты проводились - как писал выше. Как найду - сразу напишу.
Если есть вопросы, замечания, ошибки в тексте, дополнения - прошу комментировать внизу.
Довольно давно ставлю самодельные воздушные фильтры в компьютерные системы охлаждения. В данной статье решил обобщить свой опыт и показать некоторые моды.
Зачем воздушные фильтры в ПК?
Прежде всего, для упрощения дальнейшего обслуживания. Очистка пары-тройки фильтров пылесосом занимает намного меньше времени, чем демонтаж системы охлаждения, вскрытие блока питания, очистка радиаторов, вентиляторов и прочих железяк от пыли.
Ну и эстетика повышается, на радость любителям компьютерного фэн-шуя.
Почему бы не купить готовые фильтры в магазине?
Воздушные фильтры редко попадаются в компьютерных магазинах, чаще в магазинах электронных компонентов вроде чип-и-дипа. Однако и там выбор невелик. Изготовление фильтра дома из подручных материалов обходится дешевле и занимает меньше времени, чем беготня по магазинам. Ну и удовольствия приносит больше, да.
Ну а теперь слайды
Socket 370. Использован чулок капроновый женский, дужка из стальной проволоки и 4 стяжки. Дужка нужна для увеличения площади фильтра и для того, чтобы фильтр не засосало в вентилятор. Перед уборкой, виден двухлетний слой пыли.
В БП перед 12см вентилятором. Использована маска медицинская (только внутренний слой), скотч армированный. Пыль только что убрана пылесосом, однако внизу видна полоска пыли, куда пылесосом было не пролезть.
В вертикальном БП на вдуве. Использована марля медицинская, скотч канцелярский. Все отверстия и щели заклеены прозрачным скотчем, чтобы предотвратить поддув воздуха мимо фильтра. Перед уборкой, виден двухлетний слой пыли.
Продолжаем начатый в прошлом посте разговор о безопасности UEFI, об угрозах и имеющихся защитах от них.
В этот раз речь пойдет об SMM, о том, как он устроен и работает, и почему является желанной целью для атаки.
Пропустившим нулевую и первую части сего опуса — рекомендую прочесть сначала их, остальных покорно прошу под кат.
Часть вторая. SMM
Немножечко ликбеза
Аппаратное SMI
Писать про него особенно нечего: подаем напряжение на ногу — имеем прерывание. Сейчас используется редко, т.к. почти на всех системах теперь имеются мультифункциональные GPIO, которые могут генерировать события, не прерывая работу ОС, плюс не нужна дополнительная логика для определения, кто же конкретно сгенерировал аппаратное SMI, ведь устройств много, а нога — одна.
Системные SMI
Программные SMI
Программные SMI генерируются чаще всего либо прошивкой, либо драйверами, но ничего не мешает атакующему с правами администратора в ОС (точнее, необходимы права на исполнение инструкции out) тоже генерировать их.
Программное SMI генерируется при записи в CPU IO-порт APM_CNT (чаще всего это порт 0xB2), в качестве параметра в регистре AL передается его номер. Таким образом, максимальное количество различных обработчиков программных SMI в системе — 256, но реально их от 0-5 на специализированных системах, подготовленных для работы с RTOS, до 15-20 на системах с кучей разного железа, которым надо управлять без вмешательства ОС.
Как реализован SMM
Для кода SMM-диспетчера и обработчиков SMI выделяется 1-3 области физической памяти, которую во всех «обычных» режимах исполнения чипсет помечает как область MMIO с несуществующим устройством, т.е. для всего остального мира эти области — сплошная череда 0xFF, которые невозможно перезаписать. Первая область, называемая обычно ASEG (т.е. «сегмент А»), предназначена для т.н. legacy SMM code, т.е. старых 16-битных обработчиков SMI, которых на современных системах уже нет. Имя сегменту досталось за то, что он находится по фиксированным физическим адресам 0xA0000 — 0xBFFFF. Вторая область с фиксированными адресами — HSEG (т.е. «высокий сегмент»), раньше находилась на 0xFEDA0000 — 0xFEDBFFFF, но на современных системах не используется, т.к. имеется гораздо более удобный сегмент с настраиваемыми адресом и размером — TSEG (т.е. «топовый сегмент»), в котором и находятся сейчас 99% кода, исполняемого в SMM, а в ASEG остается только небольшая заглушка для совместимости.
При переходе в SMM процессор сохраняет практически весь контекст (т.е. содержимое практически всех регистров, какие именно не сохраняются — зависит от конкретной микроархитектуры), причем к сохраненному контексту у обработчиков SMI есть полный доступ, и потому он может общаться с системой через изменение сохраненных значений.
Для ОС вызов SMM кода выглядит как волшебное изменение содержимого регистров и памяти, и хотя отследить длительность нахождения в SMM все же можно по косвенным признакам, а факт перехода в него — по непосредственным, при помощи чтения регистра MSR_SMI_COUNT до и после вызова инициации программного прерывания, но повлиять на длительность обработчика SMI ОС не может, поэтому SMM плохо совместим с hard-RTOS (стоит отметить, что вся архитектура x86 совместима с ними весьма через раз, но это другая история).
При настройках по умолчанию работающий в SMM код имеет полный доступ ко всей физической памяти на чтение и запись, полный доступ ко всем подключенным устройствам, в общем — может практически все, и при этом независим от ОС и недоступен из нее даже на чтение, что сильно затрудняет его анализ и делает код обработчиков SMI весьма привлекательной целью для атаки. Более того, если атакуемой системе доступна из SMM запись на SPI-микросхему (а она доступна во всех случаях, кроме систем с включенной PFAT, которые не найти с огнем, систем с Read-only BIOS'ом, которые встречаются еще реже, и систем с защитой через PR-регистры), то успешная атака может закончиться записью своего кода в BIOS, с последующем воровством, убийством и непотребством с гусями. Именно поэтому защитить SMM от вставки туда вредоносного кода — жизненно необходимо.
Атаки на SMM и защита от них
Забытый D_LOCK
Код в SMRAM не появляется там самостоятельно, сначала саму SMRAM нужно настроить, инициализировать физическую память, настроить TSEG так, чтобы все обработчики туда влезли, скопировать туда код SMM-диспетчера и обработчиков, настроить там таблицы дескрипторов — в общем, навести строгий уставной порядок, после чего обязательно снять бит D_OPEN, чтобы никто больше там ничего не испортил, и установить бит D_LOCK, чтобы D_OPEN нельзя было поставить назад. На некоторых старых системах установить D_LOCK забывали, и там SMM был отрыт всем ветрам, но во времена UEFI этого уже не происходит, так что этот вектор атаки ушел в историю.
SMM cache poisoning
Еще одна историческая атака — отравление кэша SMRAM, которую в 2009 году опубликовали Rafal Wojtczuk и Joanna Rutkowska. Суть атаки коротко — меняем тип памяти для региона SMRAM на Write-Back, организуем запись в регион SMRAM своего кода, запись в память не происходит, но при этом наш код остается в кэше второго уровня, после чего генерируем программное SMI и процессор читает данные не из SMRAM, а из кэша, и выполняет наш вредоносный код. Проблема решилась радикально — производители CPU запретили ставить режим WB на SMRAM, и потому системе с UEFI этой уязвимости не подвержены.
SMM call-out, она же SMM incursion attack
Но достаточно истории, перейдем к «современным» атакам. Начнем, пожалуй, с той самой SMM Incursion Attack, о которой тов. maseal упомянул в комментарии к первой части. Я специально поставил слово «современные» в кавычки, ибо этой атаке — сто лет в обед, впервые о ней сообщали еще в 2008 году как проблему тогдашних BIOS'ов, но в 2015 ее вновь переоткрыли Corey Kallenberg и Xeno Kovah. Атака простая как мычание — если обработчик SMI вызывает какой-либо код, находящийся вне SMRAM, то атакующий с правами на запись в физическую память может подменить вызываемый код на свой, и выполнить его таким образом в режиме SMM. А т.к. разработчики UEFI привыкли к доступности EFI Runtime-сервисов, то эти самые сервисы стабильно вызывались из обработчиков SMI на каждый чих (чаще всего это были вызовы GetVariable, SetVariable и ResetSystem). Уязвимости оказалось подвержено столько систем, что проще сказать, где их не было. По моей грубой оценке, если ваш UEFI старше мая-июня 2015 года по build date, в нем гарантированно имеется пара уязвимых к этой атаке обработчиков SMI. Вычистить систему от таких глючных обработчиков достаточно сложно, и т.к. раньше такое поведение вообще не считалось уязвимостью («какой дурак полезет сервисы хукать то?!») и о том, что так делать нельзя, не было известно простым IBV 'шным кодерам — даже сейчас периодически приходят обновления для runtime-драйверов, подверженные этой проблеме. Все очень грустно, в общем.
Для защиты от вызова внешнего по отношению к SMRAM кода инженеры Intel добавили специальный MSR_SMM_FEATURE_CONTROL, после установки определенного бита в котором вызов такого кода генерирует немаскируемое и невосстановимое MCE , но есть такой MSR только в Haswell и более новых CPU, да и включается эта возможность только на время отладки прошивки, иначе за непонятные зависания на ровном месте пользователи могут к дверям отдела R&D прийти с вилами и дубьем — большинству нужно, чтобы работало и сейчас, а эта ваша безопасность вся — overhyped. Для обладателей более старых систем и систем на базе процессоров AMD инженеры Phoenix нашли по своему гениальное решение — использовать NX-бит, настроив память для SMM-кода таким образом, чтобы вызов кода вне SMRAM заканчивался Page Fault'ом, который затем можно обработать, а не висеть намертво на MCE. Каюсь, я у себя пока еще это решение не внедрил, но когда дойдут руки — обязательно это сделаю.
Простому же пользователю от этой атаки можно защититься только не допуская исполнение непонятного кода от рута, но это, к сожалению, на современных ОС практически нереально — вариантов локального повышения прав как было море, так и остается, сколько таких 0day-эксплоитов на руках и в обороте, сказать невозможно. Остается только процитировать вышеупомянутого Xeno Kovah:
DMA attack
SMM cross-buffer attack
Представленная специалистами из Intel ATR атака на обработчики SMI, которые принимают в качестве параметра указатель и размер буфера, и производят запись в него. Атакующий может передать указатель и размер таким образом, чтобы буфер пересекал границу RAM-SMRAM, а т.к. обработчик SMI имеет доступ к SMRAM, то он перепишет какую-то часть данных вначале SMRAM. При удачном стечении обстоятельств (т.е. приблизительно после 500 часов отладки минимум) обработчик может переписать служебные структуры диспетчера SMM или других обработчиков нужным атакующему образом, и он получит возможность выполнения произвольного SMM-кода. Атака адски сложная и целевая, но вполне возможная, поэтому с начала 2015 года все обработчики SMI, принимающие указатели на буфер, обязаны валидировать его перед использованием. На более старых системах атака будет работать, но вероятность того, что именно вас через нее взломают — невелика.
Заключение
Ну вот, теперь разобрались более или менее и с SMM, в следующей части поговорим об атаках на S3 BootScript.
Спасибо за внимание, безопасных вам прошивок.
P.S.
Не могу не поблагодарить тов. d_olex за его статьи об SMM и атаках на него — раз и два. Для интересующихся темой и умеющих читать по-английски — обе обязательны к прочтению.
Читайте также: