Windows 10 против шифровальщиков. Как устроена защита в обновленной Windows 10 nopaywa...

Windows 10 против шифровальщиков. Как устроена защита в обновленной Windows 10 nopaywa...

justpaste.it

Хакер - Windows 10 против шифровальщиков. Как устроена защита в обновленной Windows 10

nopaywall

https://t.me/nopaywall

84ckf1r3

Этой осенью Windows 10 обновилась до версии 1709 с кодовым названием Fall Creators Update или Redstone 3. Среди множества изменений нас прежде всего заинтересовала улучшенная защита от неизвестных зловредов. В Microsoft приняли ряд мер для противодействия троянам-шифровальщикам и эксплоитам. Насколько же они оказались успешны?

Старый новый защитник

Все новое — это хорошо ребрендированное старое. В «осеннем обновлении для дизайнеров» встроенные компоненты защиты объединили в «Центре безопасности Защитника Windows». Даже программный файрвол стал называться «Брандмауэр Защитника Windows», но эти изменения — чисто косметические. Более существенные касаются новых функций, которые мы подробнее рассмотрим ниже.

Еще один старый-новый компонент, появившийся в Redstone 3, называется «Защита от эксплоитов». Windows Defender Exploit Guard, или просто EG, включается через «Центр безопасности Защитника Windows» в разделе «Управление приложениями и браузером».

Технически Exploit Guard — это бывшая служебная программа Enhanced Mitigation Experience Toolkit со слегка выросшим набором функций и новым интерфейсом. EMET появилась еще во времена Windows Vista, теперь же ее поддержка прекращена, а Exploit Guard занял ее место. Он относится к средствам продвинутой защиты от угроз (Advanced Threat Protection), наряду с менеджером подключаемых устройств Device Guard и защитником приложений Application Guard. Злые языки поговаривают, что в Microsoft изначально хотели представить общий компонент Advanced System Security Guard, но аббревиатура вышла совсем неблагозвучной.

Защита от эксплоитов

Exploit Guard — это всего лишь инструмент снижения риска, он не избавляет от необходимости закрывать уязвимости в софте, но затрудняет их использование. В целом принцип работы Exploit Guard состоит в том, чтобы запрещать те операции, которые чаще всего используются зловредами.

Проблема в том, что многие легитимные программы тоже их используют. Более того, есть старые программы (а точнее, динамические библиотеки), которые просто перестанут работать, если задействовать в Windows новые функции контроля памяти и прочие современные средства защиты.

Поэтому настройка Exploit Guard — это такие же вилы, какими ранее было использование EMET. На моей памяти многие администраторы месяцами вникали в тонкости настроек, а затем просто прекращали использовать ограничительные функции из-за многочисленных жалоб пользователей.

Если же безопасность превыше всего и требуется закрутить гайки потуже, то самыми востребованным функциям Exploit Guard были (со времен EMET) и остаются:

  • DEP (Data Execution Prevention) — предотвращение выполнения данных. Не позволяет запустить на исполнение фрагмент кода, оказавшийся в не предназначенной для этого области памяти (например, в результате ошибки переполнения стека);
  • случайное перераспределение памяти — предотвращает атаку по известным адресам;
  • отключение точек расширения — препятствует внедрению DLL в запускаемые процессы (см. статью про обход UAC, где этот метод широко использовался);
  • команда DisallowChildProcessCreation — запрещает указанному приложению создавать дочерние процессы;
  • фильтрация таблиц адресов импорта (IAF) и экспорта (EAF) — не позволяет (вредоносному) процессу выполнять перебор таблиц адресов и обращаться к странице памяти системных библиотек;
  • CallerCheck — проверяет наличие прав на вызов конфиденциальных API;
  • SimExec — имитация выполнения. Проверяет перед реальным исполнением кода, кому вернутся вызовы конфиденциальных API.

Команды могут быть переданы через PowerShell. Например, запрет создавать дочерние процессы выглядит так:

Set-ProcessMitigation -Name исполняемый_файл.exe -Enable DisallowChildProcessCreation

Все x86-процессоры и чипсеты последних десяти лет выпуска поддерживают DEP на аппаратном уровне, а для совсем старых доступна программная реализация этой функции. Однако ради совместимости новых версий Windows со старым софтом Microsoft до сих пор рекомендует включать DEP в режиме «только для системных процессов». По той же причине была оставлена возможность отключать DEP для любого процесса. Все это успешно используется в техниках обхода системы предотвращения выполнения данных.

Поэтому смысл от использования Exploit Guard будет только в том случае, если есть возможность задействовать сразу несколько защитных функций, не вызывая сбой хотя бы в работе основных приложений. На практике это редко удается. Вот пример профиля EG, конвертированного из EMET, который вообще вызывает сваливание Windows 10 в BSoD. Когда-то в «Хакере» была рубрика «Западлостроение», и Exploit Guard бы в нее отлично вписался.

Защита от шифровальщиков

«Все ваши файлы были зашифрованы. Для их расшифровки перечислите биткойны по указанному адресу», — наверняка ты уже видел подобную надпись если не на своем, то на чужом рабочем столе.

All your base are belongs to us!

Сегодня шифровальщики — основной подкласс троянов-вымогателей, а Windows — основная атакуемая платформа. Поэтому Microsoft старается предпринять дополнительные меры защиты. Проблема в том, что шифровальщики — это не классические вирусы, и эффективное противодействие им требует принципиально других подходов. Отловить известного трояна по сигнатуре под силу практически любому антивирусу, а вот поймать нового — совсем другая задача.

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

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

Как мы выяснили в одной из предыдущих статей, на практике это далеко не идеальный подход. Контроль доступа — это снова баланс между безопасностью и удобством, сильно смещенный в сторону дискомфорта. Концептуально ситуация такая же, как и при использовании Exploit Guard: либо запрещающие правила применяются сполна, но работать за компьютером становится проблематично, либо ограничения заданы формально ради сохранения совместимости со старым софтом и удобства пользователя.

Включаем контроль доступа к папкам в Windows Defender

Подобный контроль доступа давно появился в сторонних антивирусах, но немного в другом виде. Он был нацелен на сохранность системы, а не на обнаружение угроз. Предполагается, что, если антивирус проморгает зловреда, дополнительные средства контроля просто заблокируют нежелательные изменения в каталоге \Windows\ и загрузчике.

Если для системных файлов этот подход еще как-то годится, то для пользовательских — нет. В отличие от системного каталога, содержимое которого более-менее одинаково на разных компьютерах, в пользовательском может находиться что угодно. К тому же запросы на изменение файлов в нем могут поступить от любой программы. Добавь к этому OLE, возможность любого процесса вызывать другой и открывать файлы через него, и ты получишь представление о том, как выглядит ад для антивирусного разработчика.

Поскольку модификация пользовательских файлов никак не влияет на работу ОС, в Windows не было встроенных средств их защиты. Все изменилось с выходом обновленной версии Windows 10, в которой встроенный «Защитник» начал контролировать документы, фотографии и прочий пользовательский контент. Утверждается, что он не даст заменить файлы их зашифрованными версиями, лишая авторов троянов повода требовать выкуп.

Эксперимент

Для проверки мы решили создать тестовую папку C:\Docs\ с документами разного типа и добавить ее в список контроля доступа Windows Defender. Затем запустили несколько троянов-шифровальщиков и посмотрели, сможет ли «Защитник Windows» им противостоять.

Добавляем контролируемую папку

В этом тесте Windows Defender справился с подборкой троянов лучше многих сторонних антивирусов. Он просто не дал скопировать с сетевого диска ни один образец, включая разные модификации WannaCry, Petya, TeslaCrypt, Jigsaw, Locky и Satana. Все они были автоматически удалены, несмотря на измененное расширение (.tst) и упаковку средствами UPX.

«Защитник Windows» обезвредил на лету модификацию трояна Petya

Новый компонент «Контролируемый доступ к папкам» — это часть защиты в реальном времени. Поэтому отключить в Windows Defender сканирование на лету и проверить новую функцию отдельно не удастся. Отключить постоянную защиту можно только полностью, но тогда результат будет предсказуемым.

Лог зашифрованных файлов

Мы расширили тестовую подборку шифровальщиков, включив в нее свежие и малоизвестные виды. Однако Windows Defender моментально удалял их все, не оставляя выбора. Поэтому было решено провести модельный эксперимент, написав… нет, нет! Что вы, господин прокурор! Никакой не троян, а простейшую безвредную программу. Вот ее код, добро пожаловать в девяностые!

@echo off echo Open `Docs` directory cd C:\Docs\ dir echo The original content of `lenses.txt` file is listed below: more < lenses.txt echo Changing text in file 'lenses.txt'... echo File data was replaced by this string>lenses.txt echo Done! more < lenses.txt

Любой шифровальщик заменяет файлы пользователя их зашифрованными версиями. По сути, нам требуется проверить, как функция «Контролируемый доступ к папкам» блокирует операции перезаписи файлов в каталоге пользователя. Эта программа как раз заменяет содержимое файла в указанном каталоге той строкой, которую ты сам укажешь. Знак >перенаправляет консольный вывод в файл, полностью перезаписывая его.

Преимущество у этого батника в том, что он выглядит подозрительно (исполняемый файл с низкой репутацией) и его код точно неизвестен антивирусу. Он был написан только что и не успел нигде засветиться. В качестве цели был указан файл lenses.txt, поскольку его содержимое отформатировано знаками табуляции и наглядно отображается в консоли командой more в пределах одного экрана.

После запуска командный файл показывает содержимое каталога C:\Docs\, а затем — файла lenses.txt. Он пытается перезаписать его строкой File data was replaced by this string и снова показывает содержимое lenses.txt для проверки результата. Сам командный файл запускается из другого каталога — «Загрузки», имитируя привычку неопытного пользователя (скачивать что ни попадя и кликать на все подряд).

Если мы просто запустим батник двойным кликом, то увидим, что файл lenses.txt остался в прежнем виде. Функция «Контролируемый доступ к папкам» справилась со своей задачей, предотвратив перезапись документа по команде от неизвестного исполняемого файла. При этом текст можно спокойно открыть и отредактировать в «Блокноте», а потом сохранить поверх старого, и это не вызовет никаких вопросов. Notepad — доверенный процесс, и для пользователя защита работает прозрачно.

Защитник Windows заблокировал изменения документа

При желании можно добавить стороннее приложение в список доверенных. Да, ты совершенно верно воспринял это как потенциальный вектор атаки.

Добавляем приложение как доверенное

Если мы предварительно выполним повышение привилегий и запустим наш батник с правами админа, то файл lenses.txt будет тихо перезаписан. Защитник Windows не шелохнется и даже не отразит это событие в логе. Ему все равно, админ отдал команду или какой-то левый файл от имени админа.

Документ удалось изменить

Таким образом, с использованием (само)доверенных процессов или с помощью предварительного повышения привилегий трояны-шифровальщики смогут обойти новую функцию «Контролируемый доступ к папкам», появившуюся в Windows 10 v. 1709. Причем сделать это можно даже методами времен MS-DOS. Да здравствует совместимость!

Выводы

Exploit Guard оказался EMET в новой обертке, а «Контроль доступа» — защитной полумерой. Она поможет снизить ущерб от простейших шифровальщиков, запускаемых с правами пользователя. Если же автор очередной рансомвари будет использовать техники повышения привилегий или сможет отправить запрос на изменение файлов через доверенный процесс, то новые функции Windows 10 не спасут данные пользователя. Минимизировать последствия заражения поможет только регулярный бэкап. Главное, чтобы троян не смог зашифровать и резервные копии. Поэтому лучше хранить их на неперезаписываемом (или хотя бы отключаемом) внешнем носителе и иметь дубликат в облаке.

Читайте ещё больше платных статей бесплатно: https://t.me/nopaywall

Source justpaste.it