Про новость ни о чем
13 декабря 2017
Трубы возвестили о том, что антивирус пал:
Портал The Hacker News сообщает об обнаружении уязвимости, которая позволяет запускать исполняемый код так, что он не определяется антивирусными программами, при этом эксплоит не оставляет следов в файловой системе.
Призраки в системе! КроликВирус есть, но его как бы нет. Как же можно обойти системы контроля? Начнем с самого «жареного»:
Проверенные антивирусные решения, которые пропускают эксплоит на 07.12.2017 (из источника): Windows Defender, Kaspersky Endpoint Protection 14, AVG Internet Security, ESET NOD 32, Symantec Endpoint Protection 14, Trend Micro, Avast, McAfee VSE 8.8, Panda Antivirus, Qihoo 360
Что тут интересного? Вовсе не отсутствие «Доктор Веб», как может показаться. Здесь отсутствуют конфигурации антивирусов. Какие защитные модули были установлены? Файловый монитор? Система проверки трафика?.. Отметим этот факт – и вернемся к нему позже.
А пока обратим внимание на заголовок новости: «Найдена уязвимость во всех версиях Windows». Казалось бы, ужас и кошмар. Но откроем первоисточник – и увидим: "attack works on all modern versions of Microsoft Windows operating system, starting from Windows Vista to the latest version of Windows 10" («атаке подвержены все современные версии Windows, от Vista до 10»). Совсем иной смысл, не так ли? Уязвимость есть далеко не во всех версиях Windows. Но на что ни пойдешь ради красного словца!
Как же работает уязвимость?
Технология, использованная в эксплоите, получила название Process Doppelgänging (от «доппельгангер» — «двойник»), и использует технологию NTFS Transactions для сокрытия следов и запуска малвари. Общая схема эксплоита выглядит так:
На первом этапе создается транзакция NTFS на изменение какого-либо легитимного файла Windows, его тело заменяется на вредоносный код. Транзакция не закрывается.
Второй этап — создание копии измененного файла в памяти (memory section). В память попадает вредоносный код, при этом, так как не было фактического обращения к файловой системе, антивирусы не реагируют на обращение к ФС.
Третий этап — откат транзакции NTFS. Файл не менялся, следов на диске нет, но в памяти уже засел зловред.
Четвертый этап — вызов загрузчика Windows с помощью вызова, создающего процесс из секции памяти, созданной из исполняемого файла (ZwCreateProcess), в котором по факту находится вредоносный код. Алгоритмы сканера антивируса реагируют, но читают образ файла с диска, а там никто ничего не менял, и процесс запускается на выполнение.
Суть уязвимости в том, что файловая система NTFS – это не просто файлы, каталоги и ссылки на них. NTFS больше похожа на базу данных. И компания Microsoft неоднократно пыталась превратить эту файловую систему в полноценную базу данных. Последний раз это было при разработке печально известной Windows Vista.
NTFS не удовлетворяет требованиям к современным файловым системам, да она никогда и не считалась элегантной и не отличалась производительностью.
ReFS будет основана на NTFS и сохранит совместимость по ключевым направлениям, но в то же время это будет совершенно другая архитектура. Некоторые фичи и семантики NTFS будут ликвидированы, в том числе поддержка коротких имен, ID объектов, компрессия, шифрование на уровне файлов (EFS), дисковые лимиты (квоты), потоки данных, транзакции, разреженные файлы, расширенные атрибуты и жесткие ссылки.
Ключевые функции ReFS
- Целостность метаданных с контрольными суммами.
- Integrity streams: метод записи данных на диск для дополнительной защиты данных при повреждении части диска.
- Транзакционная модель "allocate on write" (copy on write)
- Организация пулов и виртуализация для более простого создания разделов и управления файловой системой.
- Сегментация последовательных данных (data sriping) для повышения производительности, избыточная запись для отказоустойчивости.
- Поддержка техники чистки диска в фоновом режиме (disk scrubbing) для выявления скрытых ошибок.
- Спасение данных вокруг повреждённого участка на диске.
- Общие пулы хранения данных между машинами для дополнительной отказоустойчивости и балансировки нагрузки.
В дополнение, ReFS унаследует многие функции и семантики NTFS, включая шифрование BitLocker, списки контроля доступа (ACL), журнал USN, уведомления об изменениях, символьные ссылки, точки соединения (junction points), точки монтирования (mount points), точки повторной обработки (reparse points), снимки тома, ID файлов и oplock.
Суть вышеописанного в том, что компания Microsoft за счет внедрения механизмов устойчивости, обычно используемых в базах данных, хотела кардинально усилить надежность хранения данных. В частности путем использования транзакций.
Что такое транзакции?
Транза́кция (англ. transaction, от лат. transactio — соглашение, договор) — минимальная логически осмысленная операция, которая имеет смысл и может быть совершена только полностью.
Обращения к файлу по большому счету можно считать случайными. К произвольному файлу могут постоянно обращаться некие процессы, постоянно что-то из него читая и записывая. При этом по причине случайного сбоя в момент записи файл может быть необратимо поврежден. Чтобы уменьшить этот риск, изменения не записываются сразу на диск, а хранятся в кэше – процессы обращаются не напрямую к файлу на жестком диске, а сначала к этому кэшу, а только потом (если в нем нет данных) – к диску.
В свою очередь, изменения сбрасываются на диск разом, транзакцией. То есть надежность повышается за счет уменьшения количества операций с файлом. Ну а для того, чтобы во время транзакции некий процесс не влез в нее с попыткой записи, доступ к файлу блокируется.
Идея была интересной. Помните наши выпуски про теневые копии и откат изменений? Это и есть транзакции.
Microsoft Windows Vista: первое знакомство
Однако:
А что, транзакции в NTFS еще живы, что-ли? Их ввели в Висте, а в Win7 уже пометили, как deprecated — потому что разработчики фичу не оценили.
Сама транзакция может быть довольно длительной, и за это время данные, сбрасываемые на диск, могут меняться. Вот этот момент и заметили хакеры.
Дело в том, что по умолчанию файловые мониторы антивирусов не контролируют абсолютно все операции с файлом. Если проверять файл при каждом обращении к нему, это сильно замедлит работу системы. Поэтому хакеры записывают нечто вредоносное в существующий файл, запускают его, а потом откатывают содержимое. Антивирус же по умолчанию проверяет файл при закрытии – а там уже все чисто. Но, как говорится, есть один нюанс.
«На первом этапе создается транзакция NTFS на изменение какого-либо легитимного файла Windows, его тело заменяется на вредоносный код». То есть на момент запуска вредоносного файла некто уже заразил систему (антивирус этого не заметил), запустился (здесь тоже защита не сработала) и начал «хакать» NTFS.
Скажем проще. Предположим, есть охраняемый завод. Периметр под напряжением, злобные овчарки на территории и т. п. И вот вы идете «на дело» при отключенном периметре и спящих овчарках. Взламываете замок. Замок уязвим – это несомненно, но главный вопрос: а как вы проникли на территорию и добрались до этого замка (есть ли более глобальная уязвимость)?
Соответственно, к новости возникают вопросы. Мы вполне допускаем, что с помощью всяких хитрых финтов что-то можно запустить, но:
- Как проник на машину вредоносный компонент, который после запуска начал использовать уязвимость файловой системы? Чудес не бывает. Прежде всего троянец должен проникнуть на ПК. Через уязвимость, скачивание с сайта или еще как-то. Предположим, проверку трафика можно обойти через передачу объекта в закрытой сессии, но любой новый объект в системе должен проверяться – тем более перед запуском. В этот момент троянец и ловится (мы так ловили WannaCry).
- В статье не отображено главное: знал ли антивирус нового троянца. Еcли нет, то о чем тогда тест?
- Был ли известен антивирусу компонент, запускаемый с помощью уязвимости?
- Предположим, что антивирус троянца знал. Уязвимость позволяет обойти один компонент — файловый монитор, проверяющий файлы при запуске. Какие еще компоненты антивируса работали в системе? Почему они не отреагировали? В современных антивирусах присутствует антируткит. Он, в частности, проверяет все запущенные процессы для обнаружения в том числе и бестелесных троянцев. Почему он не сработал?
- Файловый монитор может работать в двух режимах — обычном и параноидальном. В каком режиме работал файловый монитор в тесте? Неизвестно.
Итого – новость ни о чем. Уязвимость, возможно, и есть, но вот бессилен ли антивирус, если установлены все компоненты, – большой вопрос.
Антивирусная правДА! рекомендует
Можно обойти любой из компонентов антивируса, идеального модуля защиты не существует. Один в поле не воин, и поэтому все вместе компоненты антивируса позволяют обеспечить надежную защиту, даже если один из них дает сбой. Именно поэтому мы так настойчиво рекомендуем использовать Dr.Web Security Space, а не Антивирус Dr.Web. Его защита дороже (на 10%), но существенно надежнее – при том, что и лишних компонентов в нем нет.
Нам важно ваше мнение
Чтобы оставить комментарий, нужно зайти через свой аккаунт на сайте «Доктор Веб». Если аккаунта еще нет, его можно создать.
Комментарии пользователей
Nightpatrol
15:41:31 2019-12-10
Денисенко Павел Андреевич
16:46:24 2018-08-04
Неуёмный Обыватель
17:41:02 2018-06-16
vasvet
13:33:29 2018-03-26
Ярослав
16:00:32 2017-12-19
a13x
01:53:36 2017-12-19
Вот за такие выпуски просто отдельная благодарность.
zsergey
09:12:57 2017-12-15
Ruslan
18:47:48 2017-12-14
kozinka.ru
15:56:33 2017-12-14
=========
Ну вот, наконец! Этого ответа и ждали с трепетом пользователи DrWeb, прочитав этот выпуск. Спасибо! :)
Вячeслaв
11:08:50 2017-12-14
По секрету - мы протестировали данную ситуацию, все будет нормально
Людмила
08:28:00 2017-12-14
"скажите пожалуйста, был же анонс на другой выпуск Антивирусной правды, в рубрике Слабые звенья? "
да. анонс был другой. мы заменили выпуск, анонсированный выйдет позже на сутки
Людмила
08:25:38 2017-12-14
"Антивирус стоил 1290, а секьюрити 1990"
Это цены коробок, не лицензий. в них еще стоимость комплектующих.
Oleg
04:23:11 2017-12-14
AxooxA
03:30:26 2017-12-14
"никогда так не было. я выводила на рынок этот продукт. политика "разница в цене 10%" в расчете на __1__ ПК была изначально. Не рассказывайте здесь сказки."
Каюсь, действительно перепутал, разницы в 2 раза не было.
Антивирус стоил 1290, а секьюрити 1990. просто психологически первая цифра тяготеет к 1000, а вторая к 2000, поэтому так, видимо казалось.
Но все равно 1990/1290= 1,54, а не 1,1.
Littlefish
00:17:13 2017-12-14
Это не совсем так. По различным данным за ноябрь "старушку" XP используют от 3,66% до 5,73% пользователей - https://drw.sh/tnczwt
Littlefish
00:08:35 2017-12-14
Если бы были пудели, например, эффект был бы не тот :-)
Сравнение тоже нравится.
Littlefish
00:02:04 2017-12-14
А ведь на самом деле, побоялись написать, что Доктор пропускает эксплоит :-)
Littlefish
23:55:28 2017-12-13
Александр
22:15:48 2017-12-13
Littlefish
22:05:44 2017-12-13
*TRIGGERED* - https://drw.sh/xpohlv
У «Доктора Веба» нету версии Internet Security, а вот у конкурентов есть :-)
Littlefish
21:50:51 2017-12-13
Littlefish
21:49:21 2017-12-13
MaxK
21:30:19 2017-12-13
МЕДВЕДЬ
21:20:59 2017-12-13
С...й
21:19:40 2017-12-13
В...а
21:06:27 2017-12-13
ai
20:46:57 2017-12-13
kva-kva
20:37:25 2017-12-13
orw_mikle
20:29:53 2017-12-13
Galina X
20:26:06 2017-12-13
vla_va
20:14:21 2017-12-13
Сергей
20:07:41 2017-12-13
Littlefish
19:48:50 2017-12-13
Так и с вредоносным кодом, он не может возникнуть из ниоткуда и не может исчезнуть в никуда, хоть какой-нибудь из компонентов защиты сможет этот вредоносный код обнаружить.
Littlefish
19:41:30 2017-12-13
mk.insta
19:20:01 2017-12-13
Littlefish
19:00:19 2017-12-13
Damir
18:52:14 2017-12-13
Littlefish
18:52:11 2017-12-13
Шалтай Александр Болтай
18:47:40 2017-12-13
Littlefish
18:47:27 2017-12-13
razgen
18:27:06 2017-12-13
Да в том то и дело что действительно ни о чём, так в комментариях на "Хабрахабр" пишут, что в описываемой ситуации вообще не видят уязвимость ОС, а видят способ обхода механизмов антивируса.
Комментарии "Хабрахабр": https://habrahabr.ru/post/344376/
== ildarz
11.12.17 в 11:03
А это вообще уязвимость? Вместо одного процесса, который можно запустить, запускается другой процесс, который опять-таки можно запустить. Обход антивирусной защиты — да, но уязвимость в чем?==
==mrlika
11.12.17 в 11:53
Я могу ошибаться (не вникав в детали), но в данном случае — это больше похоже не на уязвимость ОС, а на способ обхода механизмов антивируса.==
==vilgeforce
11.12.17 в 12:01
В общем-то да. Но тогда заголовок совсем не соответствует содержанию ;-)==
В общем всё неопределённо, всё неоднозначно.
Toma
18:13:44 2017-12-13
Andromeda
18:10:19 2017-12-13
eaglebuk
17:45:55 2017-12-13
Альфа
17:31:14 2017-12-13
Пaвeл
17:27:14 2017-12-13
La folle
16:27:12 2017-12-13
TV
16:26:40 2017-12-13
Masha
16:20:36 2017-12-13
Ksuuucha
15:14:41 2017-12-13