Обход защиты Windows 11 через баги в SmartScreen и Smart App Control

Обход защиты Windows 11 через баги в SmartScreen и Smart App Control


Современные репутационные системы защиты, такие как служба репутации Elastic, значительно повышают эффективность обнаружения угроз при низком уровне ложных срабатываний. Однако, как и любая другая система, они не безупречны. В данной статье рассматриваются уязвимости Windows Smart App Control (SAC) и SmartScreen, методы их обхода и способы повышения уровня безопасности.

Основные выводы

  1. Уязвимости Smart App Control и SmartScreen: проблемы в их архитектуре позволяют злоумышленникам получить доступ к системе без предупреждений безопасности.
  2. Баг в обработке LNK-файлов: позволяет обойти указанные системы защиты.
  3. Необходимость в дополнительных мерах безопасности: понимание ограничений этих функций ОС и внедрение дополнительных механизмов защиты.

Фон SmartScreen и SAC

Microsoft SmartScreen впервые появился в Windows 8 и работает с файлами, отмеченными "Mark of the Web" (MotW), которые пользователь открывает. С выпуском Windows 11 Microsoft представила Smart App Control (SAC), который блокирует вредоносные и ненадежные приложения, проверяя их через облачный сервис Microsoft. Если приложение неизвестно, оно выполняется только при наличии действительной цифровой подписи. При включении SAC заменяет и отключает SmartScreen.

Подписанное вредоносное ПО

Одним из способов обхода SAC является использование цифровой подписи для вредоносного ПО. Злоумышленники, такие как группа SolarMarker, часто используют расширенные сертификаты проверки (EV), которые требуют доказательства личности и хранятся на специальных аппаратных токенах. Однако злоумышленники находят способы имитации легальных компаний для получения таких сертификатов. Центры сертификации (CA) должны предпринять дополнительные меры для предотвращения мошенничества.

Похищение репутации

Этот метод напоминает исследования о неверно направленном доверии к системам контроля приложений и уязвимым драйверам. Похищение репутации заключается в поиске и использовании приложений с хорошей репутацией для обхода системы. Например, скриптовые хосты, такие как Lua, Node.js и AutoHotkey, могут быть использованы для выполнения произвольного кода и вредоносного ПО в памяти.

Примеры демонстрируют обход SAC с помощью инструментов JamPlus и AutoHotkey, показывая, как злоумышленники могут использовать известные приложения для запуска вредоносного кода без предупреждений.

Создание репутации

Злоумышленники могут внедрять контролируемые ими бинарные файлы, которые со временем приобретают хорошую репутацию и остаются полезными для атак. Например, новые скриптовые хосты или уязвимые приложения могут быть интегрированы в систему и, будучи тщательно замаскированными, получить положительную оценку. В одном из примеров файл получил хорошую репутацию через 2 часа после выполнения, демонстрируя уязвимость SAC к такому подходу.

Подделка репутации

Этот метод предполагает изменения в файле без изменения его репутации. SAC может использовать не только стандартные хеши файлов, но и нечеткое хеширование или модели машинного обучения. В некоторых случаях можно изменить сегменты кода, сохраняя прежнюю репутацию файла. В статье приведен пример бинарного файла, содержащего shell-код для выполнения калькулятора, который успешно обходит SAC.

Обход LNK-файлов

При загрузке файла браузер создает связанный файл "Zone.Identifier" в альтернативном потоке данных, помечая файл как потенциально опасный. SmartScreen сканирует только файлы с этой меткой, а SAC блокирует определенные типы файлов, если они помечены. Обход MotW может привести к обходу этих систем защиты. В исследовании описан баг, позволяющий обойти MotW, изменяя пути или внутреннюю структуру LNK-файлов.

Пример демонстрирует, как LNK-файл с некорректным путем позволяет обойти MotW и запустить PowerShell, обходя все проверки безопасности.

Методы обнаружения

Обнаружение атак типа похищения репутации и обхода с помощью LNK-файлов может быть сложным. Один из способов — каталогизация и блокировка известных приложений, используемых в таких атаках. Также можно разрабатывать поведенческие сигнатуры для идентификации подозрительных приложений, таких как Lua или Node.js.

Пример логики обнаружения:

 	 process where process.parent.name == "explorer.exe" and process.hash.sha256 in (
 
 	 "ba35b8b4346b79b8bb4f97360025cb6befaf501b03149a3b5fef8f07bdf265c7", // AutoHotKey
 
 	 "4e213bd0a127f1bb24c4c0d971c2727097b04eed9c6e62a57110d168ccc3ba10" // JamPlus
 
 
 	 )
 

Еще один подход — мониторинг скачанных файлов, особенно тех, которые были изменены или созданы недавно, и анализ их хешей.

 	 from logs-* |
 
 	 where host.os.type == "windows"
 
 	 and event.category == "process" and event.action == "start"
 
 	 and process.parent.name == "explorer.exe"
 
 	 and (process.executable like "*Downloads*" or process.executable like "*Temp*")
 
 	 and process.hash.sha256 is not null
 
 	 | eval process.name = replace(process.name, " (1).", ".")
 
 	 | stats hosts = count_distinct(agent.id) by process.name, process.hash.sha256
 
 	 | where hosts == 1
 

Для обнаружения LNK-обходов можно отслеживать перезапись LNK-файлов процессом explorer.exe, особенно в папке загрузок или при наличии метки MotW.

 	 file where event.action == "overwrite" and file.extension : "lnk" and
 
 	  process.name : "explorer.exe" and process.thread.Ext.call_stack_summary : "ntdll.dll|*|windows.storage.dll|shell32.dll|*" and
 
 	  (
 
 	   file.path : ("?:Users*Downloads*.lnk", "?:Users*AppDataLocalTemp*.lnk") or
 	   file.Ext.windows.zone_identifier == 3
 
 	 )
 

Заключение

Репутационные системы защиты являются мощным инструментом для блокировки массового вредоносного ПО. Однако, они имеют свои уязвимости, которые могут быть использованы злоумышленниками. Командам безопасности следует тщательно анализировать загруженные файлы и не полагаться исключительно на встроенные функции безопасности операционной системы. Только комплексный подход к защите сможет обеспечить надежную защиту от современных киберугроз.

Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.

Бэкап знаний создан успешно!

Храним важное в надежном месте

Синхронизируйтесь — подпишитесь