Динамическое изменение доступного пространства в SSD (для производительности). Синяя область скрыта от любых системных инструментов
Покупая новый SSD, нельзя быть уверенным, что на нём нет закладок. К сожалению, простое форматирование не спасёт, потому что зловред прописывается в скрытых областях накопителя (которые не форматируются штатными средствами).
Предположим, закладку ставят на новый смартфон, HDD или SSD во время его доставки к покупателю из интернет-магазина, то есть на почте.
Как устанавливаются аппаратные закладки в общем случае? Возьмём разновидность атаки на цепочку поставок, но в варианте с физическим лицом.
С точки зрения злоумышленника схема состоит из нескольких шагов:
- Наблюдение за жертвой
- Выбор времени для атаки
- Перехват посылки
- Установка закладки
Рассмотрим некоторые из этих шагов.
Перехват посылки
История показывает, что спецслужбы могут внедрять подобные закладки на этапе или производства, или доставки оборудования.
Если в двух словах, то оперативники отслеживают заказ, сделанный в интернет-магазине, вскрывают посылку в почтовом отделении, устанавливают софт и запечатывают посылку обратно. Клиент не ожидает, что новый SSD из Китая будет скомпрометирован на российской почте. Метод работает просто и эффективно.
Бэкдор можно также установить в скрытую область на диске, в прошивку, BIOS. Есть более продвинутые варианты с установкой аппаратных закладок на печатную плату, на PCI-шину и т. д. Подробнее см. здесь.
Аппаратная закладка COTTONMOUTH-1 на USB с радиопередатчиком HOWLERMONKEY, предоставляющая беспроводной мост к целевой сети, а также загрузки эксплоитов на целевой системе, есть версия для USB-клавиатуры, из презентации АНБ
Перезапись MBR на жёстком диске
Есть разные методы установки долговременных закладок на накопители. Во-первых, давным-давно используют метод перезаписи MBR и установки софта в HPA-область на HDD. В данном случае код исполняется до запуска операционной системы. Метод работает в различных ОС (Windows, FreeBSD, Linux, Solaris) c различными файловыми системами (FAT32, NTFS, EXT2, EXT3, UFS 1.0).
Например, десять лет назад в АНБ для этих целей использовался эксплоит SWAP, включающий две утилиты: ARKSTREAM перепрошивает BIOS, а утилита TWISTEDKILT записывает функциональную часть в HPA (Host Protected Area).
Эксплоит SWAP, из презентации АНБ
Долговременные закладки в скрытых областях SSD
Старые методы по установке бэкдоров сейчас приходится совершенствовать. Недавно их адаптировали для современных накопителей типа SSD, у которых своя специфика.
Дело в том, что производительность SSD сильно зависит от свободного места на диске (то есть объёма кэша). Пустые SSD работают гораздо быстрее, чем заполненные на 60–70%.
Поэтому некоторые производители пытаются динамически изменять эти параметры, чтобы добиться наилучшего соотношения производительности. В частности, Micron Technology динамически изменяет объём доступного места на диске (User Area). Так же поступают некоторые другие производители. Здесь область OP (Over-provisioning) по возможности увеличивается для достижения максимальной производительности.
Область OP обычно занимает от 7% до 25% диска и она невидима для операционной системы и любых приложений, включая антивирусы. В этом её преимущество для злоумышленника.
Когда пользователь запускает различные приложения, контроллер SSD автоматически регулирует это пространство в соответствии с рабочей нагрузкой, в зависимости от интенсивности записи или чтения.
Исследователи из Корейского университета в Сеуле смоделировали атаку, в которой хакер изменяет размер области OP с помощью менеджера микропрограммного обеспечения, расширяя область Invalid Data Area.
Многие производители SSD не затирают Invalid Data Area в целях экономии ресурсов. Это пространство остаётся заполненным данными пользователями в течение длительного времени. Исследователи отмечают, что побитовое считывание флэш-памяти NAND в процессе судебной экспертизы зачастую выявляет данные, которые не удалялись более шести месяцев. Это серьёзная уязвимость в безопасности SSD (утечка данных).
Во второй модели атаки область OP используется как секретное место, где злоумышленник прячет закладку, как показано на схеме внизу.
Пример внедрения зловреда в OP Area
Обнаружение закладки в области OP требует применения специализированных инструментов криминалистики.
Потенциально эффективной мерой защиты от внедрения вредоносного ПО в область OP может быть система мониторинга, которая в реальном времени проверяет соотношение допустимых и недопустимых данных внутри SSD.
Научная статья с описанием этой техники опубликована 20 декабря 2021 года в журнале IEEE Access.
Комментарии (27)
dartraiden
24.01.2022 23:21+5Есть разные методы установки долговременных закладок на накопители. Во-первых, давным-давно используют метод перезаписи MBR
Проблема легко решается простым правилом — если приобретённый накопитель уже размечен, его просто надо переразметить заново.4ITEP
25.01.2022 00:45+2Так фирмварь такого накопителя может в момент загрузки подставлять не оригинальный загрузочный код, а запрограммированный этими самими хакерами, а там уже никакое затирание не поможет
Zhbert
25.01.2022 10:30-1Проблема легко решается простым правилом — если приобретённый накопитель уже размечен, его просто надо переразметить заново.
Всегда так делал. До особой паранойи в виде полного заливания нулями, не доходил, конечно, но переразбить — это же святое.
А еще я не увидел ответа на вопрос — зачем это кому-то нужно. Ради кого оперативники будут заморачиваться, перехватвать посылки и вот это вот все?
funca
25.01.2022 00:43Для чего все это, когда есть vPro, штатно предоставляющий возможности удаленного доступа на уровне железа https://www.intel.com/content/www/us/en/business/enterprise-computers/kvm-over-ip.html?
athacker
25.01.2022 10:40+3vPro -- это просто набор технологий и функционала, использующихся на данном конкретном устройстве.
То, о чём Вы говорите -- называется АМТ ("Active Management Thecnology"), и является одной технологией/спецификацией из длинного списка того, что входит в vPro.
Для того, чтобы получить доступ к KVM, надо проделать целую кучу предварительных действий. В целом, всё придумано интересно, с точки зрения безопасности в том числе.
Понятно, что уязвимости могут быть, но архитектурно -- всё очень и очень круто. Если интересуют детали, посмотрите интервью с инженером Intel: https://www.youtube.com/watch?v=SQvZf11Zm2Y&t=6655s (я тайм-код поставил как раз на начало обсуждения этой функции АМТ).
Мне очень понравился подход Intel к безопасности -- нет никаких облачных решений в части серверов управления AMT -- Intel раздаёт бесплатно приложение, ставьте у себя в инфраструктуре и обеспечивайте защиту сами. Плюс спецификации протоколов управления открыты, так что если есть желание -- можно разработать свой сервер управления (и есть open source проекты, реализующие управление AMT).
Иными словами, воспользовать AMT в зловредных целях не так-то просто. И совсем не просто в случае физических лиц, т. к. у большинства из них AMT вообще не активирован, ибо нет необходимости для личного оборудования.
funca
26.01.2022 03:50Для того, чтобы получить доступ к KVM, надо проделать целую кучу предварительных действий.
Спасибо за подробный комментарий. Мысль в том, что раз есть механизм, значит есть и возможности. Где гарантии, что vPro не является технологией двойного назначения и кроме документированных ритуалов, там не заложено иных способов для ее использования?
4ITEP
25.01.2022 00:44Вот против подобных вещей и придумали secureboot. Единственное, что действительно страшно и опасно - зловред в этой самой OP, который бы работал через DMA (речь об NVMe накопителях)
fk0
25.01.2022 04:15Это та причина, по которой загрузка должна идти с отдельного доверенного носителя, а основной носитель должен быть зашифрован. Ибо прецеденты (когда жесткие диски меняли файлы) уже были. И ещё будут...
13werwolf13
25.01.2022 07:08+1тоже не панацея
если у тебя /boot/efi на одном накопителе а другой весь собой представляет luks внутри которого и корень и дата то что мешает модифицировать твой загрузчик на esp (условно просто вынув на 5 минут флешку с ним пока ты отвернулся подмигнуть секретутке и подменив на ней файл) и просто дождаться первого ребута. код загружаемый efi может жить парралельно с ОС и даже быть незамеченным из ОС но иметь на неё влияниекак примеры могу привести:
1) clover для хакинтоша
2) процесс загрузки rpifk0
25.01.2022 15:50Носитель можно и нужно вынимать после загрузки и прятать в карман, и он должен быть readonly на аппаратном уровне. Существуют usb sticks с переключателем защиты записи. Их редко продают в РФ, но можно наверное найти на aliexpress.
Мы не говорим о физической безопасности. Иначе можно не только вынуть подменить загрузчик, но и сам ноутбук (с биосом прошитым как нужно...) и вообще пользователю пальцы в тиски зажать и заставить сделать всё что нужно.
PKav
25.01.2022 04:29+1Выглядит слишком сложным. Слишком много мест, где что-то может пойти не так и закладка банально не сработает, а то и нарушит работу компьютера и скомпрометирует себя.
Germanjon
25.01.2022 08:52+1Учитывая текущую логистику (мне посылка с Китая в Узбекистан шла через Европу) - замена прошивки может быть выполнена на любом этапе доставки
MockBeard
25.01.2022 11:25+5Залитый крепким кофе, мозг рисует картину нападения с вертолета на поезд, идущего через лес. Mission impossiple )))
diogen4212
25.01.2022 09:33+1Не понятно, как оно будет запускаться и взаимодействовать с операционной системой (данные же надо как-то слить, а для этого их надо прочитать и отправить потенциальному противнику, как противник будет давать команду этой прошивке ), или это полностью автономная система, которая сама загружается и сама считывает данные? Или более общий вопрос: какая цель подобных закладок? упростить взлом?
maledog
25.01.2022 12:50Тут статья не технаря, а какого-то копирайтера. Если рассуждать на том же уровне, то при старте будет подменен загрузчик, который загрузит ядро с дополнительным драйвером или модулем, а уже тот будет исполнять код на уровне системы и успешно скрываться от антивирусов. Вот только если во времена 7 это и было возможно, то сейчас этому столько препятствий на всех уровнях, что обойти становится нетривиальной задачей. Например так работали некоторые активаторы семерки. В десятке же активаторы работают почти в легальном поле используя известные дыры в самой операционной системе и не пытаются опять заигрывать с загрузкой.
Еще могу представить сценарий при котором вредоносный код из mbr может быть загружен и исполнен дырявым драйвером операционной системы при подключении. Но и такой сценарий маловероятен. В последнее время все-таки чаще целятся по прикладному ПО и дырам в системных службах.
casuss
25.01.2022 11:57+1КО: "в оборудовании могут быть программно-аппаратные закладки!"
(Которые АНБ делает на российской почте....)
А как же TRIM?
Sergey_datex
25.01.2022 16:12Плод паранойи. Тут прошивки ссд не раскопаешь чтобы инфу из них научиться дергать (их десятки новых (контроллеров) каждый год появляется, и разных прошивок под каждый из них сотни, разных по архитектуре), а тут про универсальный метод вмешательства в ПО диска... Забудьте, это слишком сложный путь.
makkarpov
Остался лишь один неотвеченный вопрос: раз закладка находится в зарезервированной области SSD и никак не видна через штатный интерфейс -- чему же она представляет угрозу? При такой постановке система, к которой этот SSD подключен, указанный код не может исполнить просто по определению.
dartraiden
Видимо, предполагается ещё и модификация прошивки, которая будет не просто использовать резервную область для легитимных целей, а ещё исполнять оттуда код.
makkarpov
Ну, скажем так, будь я бы вирусописателем - я бы исполнял вредоносный код напрямую из модифицированной прошивки, раз уж мы её модифицируем.
acc0unt
А идея не в том, чтобы заставить мозги самого SSD исполнять весь этот код. Идея в том, чтобы прошивка SSD скормила этот код компьютеру (через подмену бутсекторов, секторов с файлами программ и т.п.) и получила работающую закладку уже там.
Как это делается - примерно описано в шикарной и безумной статье товарища Циферкина: https://habr.com/ru/company/ruvds/blog/563394/
horror_x
Так тут как раз скрытая область лишь для вспомогательных целей вроде хранения полезной нагрузки, самой закладкой является непосредственно модифицированная прошивка.
dkom
Модифицированна может быть прошивка и самим производителем по заказу спецслужб. На всех ходовых моделях добавлена определенная последователльность байт, послав которые жесткому диску прошивка переходит во "взведенное" состояние и начинает извлекать зловреда со скрытой области. Агентам остается лишь кинуть сам зловред в скрытую зону при отправке дисков нужному человеку либо организации. Для остальных пользователей такие диски ничем не будут отличаться от обычных.
Модифицировать прошивку под каждую модель, под покупку каждого пользователя пряча вирус в ее код, мне кажется это более хлопотное заняитие. Ведь не знаешь что купит человек, чтобы заранее подготовиться и не упустить шанс.
enovikov11
Например при затирании нулями, вместо этого пометить данные как Invalid Data Area