Итеративное чтение файла внутри bup_dfs_read_file
Отсутствие ASLR позволяет перезаписать адрес возврата функцией memcpy и перехватить управление. Тут так же поджидает неприятность для атакующего – стек не является исполняемым. Но пользуясь тем, что BUP умеет создавать новые процессы и сам проверяет подпись для запускаемых модулей, мы можем с помощью возвратно-ориентированного программирования (Return Oriented Programming — ROP) создать новый процесс с заданными правами.
2.9. Возможные векторы эксплуатации
Для успешной эксплуатации данной уязвимости необходим доступ на запись в MFS или целиком в Intel ME регион. Производителям оборудования должны блокировать доступ к региону с ME, но к сожалению, это делают далеко не все [8]. В случае, если на системе присутствует такая ошибка конфигурации – это автоматически делает ее уязвимой.
В Intel ME предусмотрена штатная возможность обеспечивать доступ на запись к МЕ региону через отправку специального сообщения HMR-FPO по HECI из BIOS [9]. Атакующий может послать такое сообщение используя уязвимость в BIOS или DMA-атаку.
В случае физического доступа к атакуемой машине атакующий всегда может переписать на свой образ (через SPI-программатор или используя специальную перемычку), что приводит к полному взлому платформы.
Одним из самых насущных вопросов является вопрос о возможности удаленной эксплуатации. Нам кажется, что такая возможность есть, если выполнены следующие условия:
Атакуется платформа с активированным AMT.
Атакующий знает пароль администратора AMT или использует уязвимость для обхода авторизации.
BIOS не имеет пароля (или он известен злоумышленнику).
BIOS имеет опцию, позволяющую открывать доступ на запись в ME регион.
Выполнение этих условий позволяет атакующему получить доступ к ME региону удалённо.
Отметим так же, что ROM не контролирует версию Intel ME при запуске, что делает возможным обновлением на старую версию, содержащую уязвимость.
2.10. Обзор уязвимостей CVE-2017-5705,6,7
Найденной уязвимости был присвоен номер INTEL-SA-00086 (CVE-2017-5705, CVE-2017-5706, CVE-2017-5707). Приведем небольшую выдержку из его описания:
CVSSv3 Vectors:
8.2 High AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
Affected products:
6th, 7th & 8th Generation Intel Core Processor Family
Intel Xeon Processor E3-1200 v5 & v6 Product Family
Intel Xeon Processor Scalable Family
Intel Xeon Processor W Family
Intel Atom C3000 Processor Family
Apollo Lake Intel Atom Processor E3900 series
Apollo Lake Intel Pentium
Celeron N and J series Processors
2.11. Disclosure Timeline
June 27, 2017 — Bug reported to Intel PSIRT
June 28, 2017 — Intel started initial investigation
July 5, 2017 — Intel requested proof-of-concept
July 6, 2017 — Additional information sent to Intel PSIRT
July 17, 2017 — Intel acknowledged the vulnerability
July 28, 2017 — Bounty payment received
November 20, 2017 — Intel published SA-00086 security advisory
3. Заключение
Таким образом, нами была найдена уязвимость Intel ME, которая позволяет выполнять произвольный код. Это ставит под угрозу все технологии такие технологии как Intel Protected Audio Video Path (PAVP), Intel Platform Trust Technology (PTT или fTPM), Intel BootGuard, Intel Software Guard Extention (SGX) и многие другие.
Эксплуатируя найденную нами уязвимость в модуле bup, нам удалось включить механизм, называемый PCH red unlock, который открывает полный доступ ко всем устройствам PCH, для использование их через DFx chain, иначе говоря с помощью JTAG. Одним из таких устройств и является само ядро ME. Это дало возможность отлаживать код, выполняемый на ME, читать память всех процессов и ядра, а так же, управлять всеми устройствами внутри PCH. Мы насчитали в совокупности порядка 50 внутренних устройств, полный доступ к которым имеет только ME, а основной процессор только к весьма ограниченному их подмножеству.
Мы не утверждаем, что в нашем исследовании нет ошибок или оно является исчерпывающим. Тем не менее, мы надеемся, что оно поможет другим исследователям, интересующимся безопасностью и «начинкой» Intel ME.
Авторы: Марк Ермолов и Максим Горячий
Список литературы
[1] Dmitry Sklyarov, Intel ME: The Way of the Static Analysis, Troopers 2017.
[2] Intel ME 11.x Firmware Images Unpacker.
[3] Xiaoyu Ruan, Platform Embedded Security Technology Revealed.
[4] Igor Skochinsky, Intel ME Secrets. Hidden code in your chipset and how to discover what exactly it does, RECON 2014.
[5] Alexander Tereshkin, Rafal Wojtczuk, Introducing Ring-3 Rootkits, Black Hat USA, 2009.
[6] Dmitry Sklyarov, Intel ME: flash file system explained, Black Hat Europe, London, 2017.
[8] Alex Matrosov, Who Watch BIOS Watchers?.
[9] Марк Ермолов, Максим Горячий, «Как стать единоличным владельцем собственного компьютера», PHDays VI.
#советыдлякомпьютера
Нет комментариев