Процессор как объект атаки
2 ноября 2018
Какой интересный пример искреннего удивления:
Совсем недавно я решил освоить python. Подучив основы, я решил написать приложение для автоматизации своих рутинных задач. Я не программист, но знания PL/pgSQL помогли быстро освоиться.
Я удивился, когда скомпилированная в .exe и .bin программа без каких-либо вопросов запустилась с флешки на другом компьютере, выполнив все, что в ней прописано:
- удалить файлы из папки «Мои документы»
- прочесть и заменить буфер обмена
- вывести информацию о файлах в других каталогах
- обратиться к интернету
- выключить компьютер и прочие «шалости»
Хороши «рутинные задачи»! Но вопрос не в этом. Многие по-прежнему склонны считать антивирус неким всемогущим искусственным интеллектом, который способен обнаружить даже такую опасность, с которой он еще не сталкивался.
На Linux редко кто ставит антивирус и прочие средства защиты, т.к. пользователи Linux обычно не качают что-либо из сомнительных источников. Обычно все устанавливается из доверенных репозиториев. Наверное, поэтому он не усыпан вирусами.
Но в Windows(8/10) я наивно ожидал какого-либо диалога о подтверждении запуска, визга антивируса и прочих прелестей. Я привык думать, что я надежно защищен, т.к. с моим компьютером ничего особо опасного не случалось.
Я пробовал запускать программу на разных компьютерах друзей, используя запись гостя и нового простого пользователя, ставил разные средства защиты — эффект тот же.
Исповедь ламера:
Я почему-то наивно полагал, что буфер обмена — это нечто «святое», т.к. в нем часто мелькает важная информация, и мне казалось, что я сам регулирую вставку данных.
Однако, как я понял, для ОС это просто программа, как PuntoSwitcher, Teamviewer и прочие, которые спокойно выполняют разного рода действия.
В общем, рекомендуем почитать эту статью всем, кто хочет понять, что думают о безопасности и антивирусах простые пользователи.
Вижу тут минусов много но не понимаю почему…
Столько умных людей но никто так и не ответил, автору на вопрос что делать то?
О том, что антивирус – не волшебник, мы говорили не раз и не два, это тоже одна из вечных тем.
Есть множество способов обойти защиту, если та ограничивается только антивирусом. Приведем лишь один пример – благо для практической реализации он сложен.
Вот вы задумывались о том, как работает процессор? Нет, мы вполне допускаем, что многие читали сообщения об очередном прорыве, когда новый процессор содержит столько-то миллионов транзисторов. Которые, понятное дело, щелкают и переключаются. Но что делать, если внезапно обнаружилось, что некий процессор делает ошибки? Неужели всем пользователям придется менять процессор? Нереально!
Ошибка Pentium FDIV — это ошибка в модуле операций с плавающей запятой в оригинальных процессорах Pentium, выпускавшихся фирмой Intel в 1994 году. Ошибка выражалась в том, что при проведении деления над числами с плавающей запятой при помощи команды процессора FDIV в некоторых случаях результат мог быть некорректным.
Наглядный способ воспроизведения:
4195835*3145727/3145727 = 4195835 (при умножении и делении на одно и то же число получаем исходное число)
4195835*3145727/3145727 = 4195579 (ошибочное значение, возвращаемое процессором, содержащим дефект)
https://ru.wikipedia.org/wiki/Ошибка_Pentium_FDIV
Группа немецких ученых из немецкого сообщества hardwaluxx.de обнаружила ошибку в работе процессоров Intel Skylake, приводящую к зависанию компьютера в процессе осуществления сложных вычислений. Позднее математики из проекта добровольных вычислений по поиску простых чисел Мерсенна (GIMPS) подтвердили наличие проблемы.
И вот был придуман микрокод (и даже нано-). С давних времен процессоры – это не только собственно железо с жестко «забитыми» возможностями, но и работающее внутри них программное обеспечение.
Я вам больше скажу: микрокод появился задолго до x86. Даже какой-нибудь разнесчастный Z80 (не говоря уже о всяких 68k или PDP-11) был построен на базе микрокода!
А если в современных процессорах микрокод может заменить команду – скажем, из числа арифметических – и активироваться по определенным условиям? Да это же мечта для банковских троянцев!
Изначально микрокод отвечал в основном за то, чтобы управлять декодированием и выполнением сложных ассемблерных инструкций: операции с плавающей точкой, MMX-примитивы, обработчики строк с префиксом REP и т.п. Однако с течением времени на микрокод возлагается всё больше и больше ответственности за обработку операций внутри процессора. Так например, современные расширения процессоров Intel, такие как AVX (Advanced Vector Extensions) и VT-d (аппаратная виртуализация) – реализованы на микрокоде.
Естественно, производители принимают меры для защиты микрокода – он обязательно снабжается подписью.
Микрокод обязательно должен быть подписан Intel, иначе процессор его просто не примет. Применяется RSA-2048, удачи злоумышленнику в попытках сбрутить.
У AMD тоже проверяется подпись, если мне не изменяет память.
И тут возникает вопрос паранойи:
Полагаю что в работах такого уровня не обходится без слитой(добытой) информации от разработчика и тесного сотрудничества с серьезными дядями.
Антивирусная правДА! рекомендует
Что же касается многочисленных аппаратных уязвимостей процессоров, то они позволяют киберзлоумышленнику осуществлять эскалацию привилегий [3], извлекать криптографические ключи [4], создавать новые ассемблерные инструкции...
Киберзлоумышленник может активировать свою вредоносную полезную нагрузку – в том числе и удалённо. Например, когда необходимое для активации условие выполняется на веб-странице, контролируемой злоумышленником. Это возможно благодаря компиляторам Just-in-Time (JIT) и Ahead-of-Time (AOT), встроенным в современные веб-браузеры. Эти компиляторы позволяют испускать предопределённый поток ассемблерных инструкций машинного кода – даже если вы пишете программу исключительно на высокоуровневом JavaScript.
А разработчики прикладного ПО по умолчанию считают, что процессор не может быть вредоносным!
Так и живем…
Нам важно ваше мнение
Чтобы оставить комментарий, нужно зайти через свой аккаунт на сайте «Доктор Веб». Если аккаунта еще нет, его можно создать.
Комментарии пользователей
Korney
00:05:29 2018-12-09
Shogun
01:08:01 2018-12-08
Dexter
21:03:42 2018-11-20
- Это не беспомощность, а развенчание мифов.
Смешно, звучит как "а вы видели госдолг ***?"
ну а если она НЕ лежит ниже/выше системы, то причем тут процессор, роутер с подменой трафика, когда проблема создается там, где ее и быть не должно.
Кривой подход систем - пускать всех троянских коней, а потом пытаться их перебить, который на руку лишь ...
Вячeслaв
13:15:05 2018-11-09
Это не беспомощность, а развенчание мифов. Антивирус может многое, но он не джин из лампы. Для того, чтобы эффективно защищаться, нужно понимать риски и ограничения
Пaвeл
16:09:40 2018-11-08
Подробнее: https://www.securitylab.ru/news/496288.php
Похоже, уязвимости в процессорах не такое уж редкое явление.
Juffed
00:21:27 2018-11-08
Потом написали о том, что баги могут быть и в микрокоде железа.
Похоже на какое то оправдание в беспомощности перед угрозами:)
Ruslan
12:52:56 2018-11-05
razgen
23:06:43 2018-11-04
В день народного единства
Сил, здоровья, оптимизма!!!
Пaвeл
16:06:56 2018-11-04
b_ice
09:09:52 2018-11-04
a13x
22:45:33 2018-11-03
Спасибо, что выпустили данные проблемы в свет. Было достаточно интересно!
Dagedra
18:04:51 2018-11-03
Альфа
11:50:28 2018-11-03
razgen
01:35:26 2018-11-03
процессор может быть вредоносным. Да и не каждый год я меняю процессоры. В общем вероятность всего этого мала.
Условно-утрированно для себя я представил следующую аналогию. Я знаю, попадание метеорита в мой дом несёт опасность.
Но в то же время я знаю, вероятность такого случая ничтожно мала.
Anton_S
23:03:12 2018-11-02
razgen
22:45:48 2018-11-02
Интересно вы подметили. И при этом, чтобы админ используя предоставляемые возможности Dr.Web, средствами офисного контроля заблокировал доступ к категории: "Сайты для взрослых", а так же заблокировал бы съёмные носители, в разделе "Устройства":).
Тогда уж точно, ничего этого, о чём рассказано в указанной статье не смогло бы произойти.
Спасибо за ссылку.
vla_va
22:35:18 2018-11-02
Пaвeл
22:33:34 2018-11-02
Пaвeл
22:26:03 2018-11-02
Геральт
22:05:50 2018-11-02
В...а
22:01:51 2018-11-02
МЕДВЕДЬ
21:46:52 2018-11-02
Шалтай Александр Болтай
21:45:14 2018-11-02
kva-kva
21:42:18 2018-11-02
Dvakota
21:30:13 2018-11-02
Rider
21:29:20 2018-11-02
Александр
21:21:26 2018-11-02
Zserg
21:19:25 2018-11-02
mk.insta
20:52:52 2018-11-02
razgen
20:19:57 2018-11-02
А ещё было хорошее вычислительное устройство - логарифмическая линейка. Все курсовые работы рассчитывал с её помощью. Приходилось ли вам пользоваться этой счётной линейкой?
Любитель пляжного футбола
20:18:29 2018-11-02
@Пaвeл, 08:00:52 2018-11-02
Да они теперь русского ПО боятся как чёрт ладана! :))
anatol
19:31:45 2018-11-02
Sasha50
19:04:46 2018-11-02
dyadya_Sasha
18:14:28 2018-11-02
Andromeda
18:00:23 2018-11-02
Дмитрий
17:49:35 2018-11-02
Сергей
17:41:53 2018-11-02
Альфа
17:32:14 2018-11-02
Владимир
16:45:46 2018-11-02
Damir
16:44:53 2018-11-02
Oleg
16:38:09 2018-11-02
B0RIS
16:34:56 2018-11-02
Татьяна
16:32:12 2018-11-02
La folle
16:13:07 2018-11-02
I23
15:32:56 2018-11-02
Lenba
15:28:40 2018-11-02
Toma
15:08:24 2018-11-02
Masha
14:16:09 2018-11-02
Biggurza
14:13:25 2018-11-02
Программам жизнь дана:
Во пыльной тьме, на цифровом погосте,
Свети́ться лишь Она!
И нет у нас иного достоянья!
Во веки ОС благодарим.
Храним реликт, в дни злобы и страданья,
Наш дар: Ассемблер – Вечный Рим.
С тебя всё началось, тобою и закончим!..
Быть может это и не так,
Но от чего, призыв звучит всё громче
Хранить тебя от баг?
О, повелитель, верховод процессов –
Талмуд «хардовый» мой.
С тобой всегда на «ты» процессор,
А я на «ты» с тбой.
I46
14:00:02 2018-11-02