Комментарии 129
Но необходимо понимать, что для реализации Process Doppelgänging злоумышленник должен знать немало недокументированных и технически сложных нюансов о работе и создании процессов в системе.
Как будто раньше для написания вирусов этого знать не надо было.
1. До всего прочего троян должен проникнуть на машину. Через уязвимость или скачивание с сайта. Предположим проверку трафика можно обойти через передачу объекта в закрытой сессии. Ладно. Но любой новый объект в системе должен проверяться — кто-то же запущенный создает транзакции файловой системы. В этот момент троян может быть пойман — прецеденты есть
2. файловый монитор может работать в двух режимах — обычном и параноидальном. Параноидальный это смерть компьютеру, но проверяются по идее все файловые операции. В каком режиме работал файловый монитор?
3. Ладно, запустился троян. Периодически работает антируткит, он все процессы должен проверять для нахождения в том числе безфайловых троянов. Почему он не сработал?
2. файловый монитор может работать в двух режимах — обычном и параноидальном. Параноидальный это смерть компьютеру, но проверяются по идее все файловые операции.Так давно уже известно, что более-менее защищённым можно считать только выключенный компьютер в сейфе.
А что делать, если его всё-таки надо использовать?
2. работать в ОС в режиме readonly
не подскажете как это сделать в Windows?
Вариант с HDD посложнее, тут инет курить надо.
В итоге в памяти находится зараженный образ, а на диске «хороший», старый. Причем зараженный образ в памяти асоциирован с хорошим на диске. Это и обдуривает антивирусы, когда задача зараженного образа начинает делать чего-то в системе. Они-то, антивирусы, проверяют файл. А он хороший.
Ситуация же с уязвимостью такова — на охраняемом объекте отключили охрану периметра, убрали собак с территории — и взломали замок на двери в некий цех. Да, уязвимость замка найдена, но вопрос сможет ли добраться до него злоумышленник, если система охраны действует штатно?
2. Файловая система и менеджер памяти всегда были штатной частью ОС. Антивирус — до последнего времени (до Windows Defender) был дополнительным. Я не против антивирусов, не нужно меня минусовать. Но я считаю, что одно дополняет, а не заменяет другое. И эти части, ФС, МП, Сеть и антивирус, должны работать совместно, дополнять друг друга.
ФС, МП должны обеспечивать авторизацию доступа к ресурсам и правильную транзакционную работу.
Антивирус должен проверять содержимое, отслеживать паттерны активности, доступа к ресурсам и тп.
2. Я не минусовал. Ответ был к уже заминусованной записи
А это вообще уязвимость? Вместо одного процесса, который можно запустить, запускается другой процесс, который опять-таки можно запустить. Обход антивирусной защиты — да, но уязвимость в чем?
об обнаружении уязвимости в загрузчике Windows
Не в загрузчике.
По логике надо либо отчищать созданную копию файла при откате транзакции, либо делать копию файла в памяти только на основании реальных данных на диске, транзакции по которым были завершены.
Это в принципе понятно. Вопрос в том, можно ли таким способом запустить код с повышенными привилегиями, или же это де-факто не более страшная атака, чем подмена ярлыка на рабочем столе, только менее заметная. :) Из текста даже неясно, можно ли хотя бы UAC так обойти.
Еще раз — обход антивирусной защиты как таковой не является уязвимостью ОС. Это принципиально разные вещи, и говорить об "уязвимости во всех версиях Windows" — передергивание в чистом виде.
По мне, этот эксплоит открывает дверь для всех остальных эксплоитов, и этого уже хватает, чтобы запаниковать.
Только эти "остальные эксплойты" еще должны на компьютер как-то попасть (причем тоже незаметно для антивируса). Да и этот тоже не из воздуха на ПК компилится, и если вся его сила в том, что антивирусы о нем пока ничего не знают — ну так это не проблема. Если паниковать при узнавании о каждом способе сокрытия зловредами следов своей деятельности, можно окончательно сна и здоровья лишиться. :)
Хорошо, но уязвимостью является создание процесса, который выглядит легитимно, а на деле зловред. По мне, такой механизм создания процесса из кода, который не сохранялся на диск, вполне тянет на уязвимость, в крайнем случае типа design flaw. Кроме того, этот механизм помогает обойти DEP — мы получаем код извне как данные, записываем в транзакции в файл, создаем секцию памяти из него, хоп у нас уже код. А DEP — уже функция операционной системы.
Только эти "остальные эксплойты" еще должны на компьютер как-то попасть (причем тоже незаметно для антивируса)
Согласен, впрочем, их без проблем можно зашифровать. Главное — создать корректный исполняемый файл в текущем окружении, который скормить потом в createprocess. Вспоминается Win32.Duqu, который, кстати, тоже был бесфайловым.
если вся его сила в том, что антивирусы о нем пока ничего не знают — ну так это не проблема
Непохоже, что только в этом. Механизм сам по себе довольно необычный, может статься, что будет очень неудобно для его перехвата ставить хуки. Антивирусы обычно мониторят активность на файловой системе, потому что доступ к данным на диске — довольно длительная операция, и состояние процесса "ожидание ввода-вывода" вполне нормальное. Мониторить активность в памяти на порядок проблематичнее.
Если паниковать при узнавании о каждом способе сокрытия зловредами следов своей деятельности, можно окончательно сна и здоровья лишиться. :)
Уже… спасибо за заботу :)
По мне, такой механизм создания процесса из кода, который не сохранялся на диск, вполне тянет на уязвимость, в крайнем случае типа design flaw.
В чём уязвимость-то? Что этот механизм позволяет сделать такого, что нельзя сделать без него?
Если ответ «скрыться от антивируса», то проблема в антивирусе, а не в ОС.
Кроме того, этот механизм помогает обойти DEP — мы получаем код извне как данные, записываем в транзакции в файл, создаем секцию памяти из него, хоп у нас уже код. А DEP — уже функция операционной системы.
В такой трактовке, запись на диск исполнимого файла тоже «позволяет обойти DEP».
1) пользователь качает и запускает некий лоадер, который содержит зашифрованный зловред
2) лоадер при запуске создает какой-либо файл с «приличным» содержимым. этот файл проходит проверку антивирусами и срабатываний не вызывает
3) лоадер выполняет те самые манипуляции с транзакциями, вписывая расшифрованное из себя содержимое зловреда в копию файла в памяти. При нормальном ходе вещей эта операция бы отловилась антивирусом, но из-за бага или особенности виндовс — не отловится
4) лоадер выполняет малварь и, хотя антивирус ее знает, продетектить он ничего уже не может
Так что, на мой взгляд, ситуация все же достаточно неприятная. Для пользователей виндовс.
Странно что удалось обойти антивирус при создании процесса,. у него итак есть хуки на все функции, наверное тут чуть поменяют алгоритм и всё заработает.
2. Будет ли это работать с включенной SRP?
Если на исходный ехе-шник установлены права доступа с запретом на исполнение, эта методика не сработает.
Да и кому нужен кейлоггер/шифровальщик, работающий из под обычного юзера?
Нет, UAC так обойти нельзя. Запуск программы с правами администратора происходит совершенно не так же как обычное порождение дочернего процесса.
Для вызова ZwCreateProcess никаких особых прав не нужно.
А при SRP вредоносный код просто не запустится.
Смотря как именно выполнен запуск процесса, выполняющего подмену файла. Если через другую уязвимость, позволяющую хоть какой-нибудь RCE, даже из-под пользователя, подменить можно будет (попытаться) какую-либо из программ, которая разрешена для запуска в SRP/Applocker. Тогда полезная нагрузка запустится, и будет непросто её отследить.
Да и никто не говорит, что SRP не_нужен, просто он всё-таки не панацея. Хотя от очень многих проблем действительно избавляет.
Транзакция NTFS может быть создана и из-за уязвимости в леитимном софте, и поведенческий анализ не спасет
Вот вздумается производителю браузера похерить все ваши данные — взял и похерил. Красота.
( я не имею в виду системные фаилы, мне как пользователю мой фаил «Дипломная.docx» (с последними изменениями) с over 9000 раз важнее любого системного фаила который я могу переустановить скачав с инета...)
А екзешники я запускать хочу. Как же мне поиграть в «супер-новая-игра-запусти-меня.exe»
Я как хомечёк должен иметь право запускать любой экзешник, а экзешник как любая потенциально-нежелательная программа не должна иметь по умолчанию никаких прав. Как на андройде — это сложно сделать что-ли?
А мне нравится возможность сохранять из браузера файлы, и моя ОС мне такую возможность даёт.
-поставьте его себе на комп:
Я высказываюсь не о том что какая-то система прямо лучше. Даже наоборот — Меня
просто тошнит от всяких AndroidManifest.xml и необходимости создания целой
структуры непонятно зачем нужных папок…
Я говорю о безопасности в ОС и привожу пример той ОС где это реализовано хоть
как-то. В самом андройде это тоже реализовано не правильно… Я сталкивался с
вредоносным ПО которое целенаправлено предлагает нажать на экран 5 раз подрят в то место где появится запрос на предоставление программе повышенных прав… Юзер тыкает пять раз в экран и «по инерции» при появлении нового окошка случайно
нажимает шестой раз — и оп майнер в системе.
-нравится возможность сохранять:
А я не против чтобы браузер мог их писать. Я против того что он может их писать куда угодно. Программа должна иметь возможность писать только в ту папку в которой она
была запущена. Точнее сама программа должна быть папкой-контейнером. Запустил — она в себя записала. Если захотел — открыл и вытащил. САМ. И сохранил уже куда
надо. есть папка например «запусти-меня-я-игра.exe» внутри исполняемый бинарный
фаил и система будет разрешать по умолчанию писать такому бинарнику ТОЛЬКО в
эту самую папку. И проблема безопасности тогда даже не возникнет. Не возникнет
проблем появления неизвестно откуда новых программ/(майнеров) от mail.ru (это
например). Не возникнет проблем с появлением кучи временных фаилов в temp
весящих по пол гига. не будет проблем с подменой ярлыков к браузерам (и подменой домашней страници в принципе).
Например я учитель по информатике:
Я хочу получая фаил от школьника по скайпу — иметь возможность его запустить. Если фаил потребует какие-то дополнительные привилегии — то посылать собеседника на 3-и и более буквы. А если нет — успешно увидеть что же именно на клепал мой ученик. Сейчас такая защита УЖЕ есть, но к сожалению по умолчанию — дополнительные привилегии — это те которые подразумевают изменение параметров системы, а не в принципе запись фаилов в любую папку кроме той откуда запушен этот фаил.
Да сработает УАК: «программа что-то пытается сделать». А что именно?? хрен с ней —
запретить. И оп — майнер прописался в аппдату. Всё равно прописался! Да не в
систему, но в юзера.
@ ClearAirTurbulence
— синхронизация с облаком:
Данные мои и только мои и я не хочу их отдавать Васе Пупкину. Даже в зашифрованном виде.
— Песочницы:
не все песочници одинаково полезны/бесплатны/эффективны/«сами защищены»
например sandboxie (по сути антиреклама):
1) при запуске psiphon3 он успешно подменяет мне настройки прокси. Прямо в моей
учётке — ему не важно что запущено было из песочници.
2) не помогает при запуске игр в несколько окон — они не только ЗНАЮТ и ВИДЯТ
процессы друг друга, но и свободно меняют память друг в друге.
3) запуск игр, защитой от читов, в принцпе — игра просто не запуститься — античиты
на раз два раскуривают тему, что они находятся в песочнице.
Значит sandboxie — нам не подходит. А узнать подходит или нет можно УЖЕ после того как заплатил за неё деньги…
Другие песочници дороже и вообще не имеют пробных периудов.
другой пример virtualbox:
1) при запуске вируса он прописывается в нутри виртуальной машины и это ничем не лутше установки его вне виртуальной машины. Потому что на «перестановку ОС»/«перезаливку образа диска» в нутри виртуальной машины всё равно придётся тратить время. И если там были сохранены какие то данные то они успешно похерятся.
2) производительность… тут без комментариев.
Сейчас мне приходится держать для этого отдельную ограниченную учётку (которой я запретил доступ на запись во все диски и папки кроме одной — «загрузки».) и все
программы запускать от её имени — но это ОЧЕНЬ не удобно. Было бы правильно если бы такая возможность была на уровне операционной системы. По сути Microsoft не нужно даже переписывать свою систему — всё необходимое для изоляции программ уже есть. Осталось только задуматься о безопасности данных, а не безопасности системы.
Хотя вспоминая времена дисков с драйвером star-foce (который обычный пользователь, без прав админа, конечно, не сможет установить) всё это бесполезно… Когда для запуска игры требуется не просто запустить левый екзешник но и левые дрова в систему прописать — это шик… Но как минимум если права будут урезаны по умолчанию — распространители игр, в целях увеличения аудитории, будут стараться исключать в своих программах необходимость иметь доступ который будет мешать запуску этих самых игр. У пользователей хотябы появится возможность выбирать — доверять ПО или нет. (при текущем раскладе никакому ПО доверять нельзя).
Если захотел — открыл и вытащил.
Чем «открыл и вытащил»? Уникальной программой, наделённой способностью писать вне себя?
Я, конечно, понимаю, что учитель в силу многих обстоятельств не сможет использовать что-то отличное от Windows, но в какой-то абстрактной работе это очень помогает (где нет зависимости от платформы).
Я про то что MacOS X без всяких дополнительных телодвижений:
- Ограничивает приложение его «папкой», точнее изолирует приложение на уровне ОС, не позволяя ему видеть остальные приложения и данные пользователя
- Управляет доступом к оборудованию (камера, геолокация, микрофон и т.д.)
- При попытке внести изменения за пределы своего окружения, система спросит пользователя об этом (обычно даже поясняя, что именно хочет сделать приложение)
Ну и там много еще чего интересного, но всё это можно найти в интернете
Какая-то у вас неправильная MacOS X или вы спутали ее с iOS?
Как и любая другая полноценная десктопная ОС, макос позволяет любому приложению шататься по любым файлам пользователя и писать куда ей вздумается без каких-либо на то ограничений (разумеется, речь не идет про разграничение прав пользователей на папки). Например, при запуске Path Finder никаких прав не спрашивает до тех пор пока вы не сунетесь куда нельзя.
Управляет доступом к оборудованию (камера, геолокация, микрофон и т.д.)
До тех пор пока речь идет про стандартное оборудование. В винде, впрочем, винда так же раздает права самостоятельно на штатное оборудование.
Плюсом ко всему, приложение должно быть подписано валидным разработчиком в AppStore
Я хочу посмотреть как школьник будет подписывать своё приложение и публиковать его в аппстор. В конкретно данном примере Макос ничем не лучше винды, и скриптик на питоне так же может прописаться в окружении пользователя в автозагрузке и майнить что хочет, только потом ещё найти его будет сложнее. И так же может пошифровать все файлы.
После последних фейлов безопасности Apple я бы постеснялся приводить Макос как пример безопасности
Да, фейлы безопасности есть у всех (лично я использую все 4 семейства ОС, везде хватает), однако вопрос не в фейлах, а легкости выстрела себе в ногу.
В Windows по моему мнению это сделать легче всего, дальше уже идут MacOS, Linux, Unix(*BSD) и всякая экзотика, где люди себе в ногу стреляют осознанно или эксперимента ради
Я про то, что дефолтные настройки Windows, позволяют делать много всякого, можно устанавливать любые приложения (да, они попросят «внести изменения на Вашем компьютере», без деталей), в том числе и без подписи
В той же MacOS нужно специально под админским паролем в настройках разрешить установку программ из неизвестных источников и еще при попытке установки чего-то не из AppStore тебе каждый раз напомнят, что это очень очень небезопасно
В Linux все сложнее, но если брать официальные репозитории, то там тоже есть GPG подпись
P.S. Не пытаюсь спорить, так как выбор ОС — дело сугубо религиозное, как и отношение к ИБ в конкретной ОС
Windows s тоже не позволит стрельнуть в ногу. Вообще это странная проблема пользователей с желанием заводить админские аккаунты и кликать «окей» на каждую хотелку системы. В случае с маком разница только в том, что обычно пользователи не скачивают супер-дупер полезные программы с черт пойми каких сайтов и что exe и rar.exe на маке не запускаются вообще, в остальном все тоже самое. Будет представлять Макос такой же интерес как и винда для вирусописателей — найдётся и в нем достаточное количество способов стреляная во все подряд. Желание пользователя посмотреть на халяву фильм и готовность ради этого скачивать сомнительный рар с сомнительного сайта и кликать «делай че хочешь, только фильм мне покажу» никуда не пропадут.
Например, я родителям создал обычную учётку и не сказал пароль от админской и что-то ни разу вирусню они не словили, хотя и пытались (uwp с просьбой ввода пароля помогает).
IOS безопаснее по дизайну, покуда в нем приложения ни к чему доступа не имеют и проходят ревью, с этим сложно спорить. Но опять же — ставьте windows s и будет все тоже самое.
Да и снова. Была атака в каком-то отеле несколько лет назад, когда роутер перехватывал запрос на обновление флеш плеера и подсовывал заражённый. В маке он ровно с таким же успехом проникнет в систему с повышенными привилегиями и все (к слову, зачем они флеш плееру?)
![image](https://habrastorage.org/getpro/habr/comment_images/a79/355/d06/a79355d066428ae224cd2f7c2ec7e133.png)
Тоже самое с камерой, сетью и т.д.
То есть ну поставит малварь через флеш (хотя и в этом сомневаюсь, так как скажет, скорее всего, что приложение из недоверенного источника), но доступа к сети, камере и диску эта малварь не получит
Но в общем-то Вы правы, так как безопасность, это в большей степени ответственность пользователя, а любая современная ОС предоставляет средства защиты, плюс есть сторонние продукты, вроде антивирусов
Например в моей компании стоит сразу несколько рубежей защиты — и GlobalProtect, и Cisco AMP и банальный антивирус от Symantec, ну и плюс еще централизованный сбор логов о потенциально опасных действиях пользователя (установка ПО, например). То есть если я скачаю и установлю себе просто взломанное ПО, то это прямой путь к увольнению, так как отдел ИБ это заметит и даст по башке.
С таким подходом уже не важно, какая ОС (у нас примерно 60% винды, 30% маков и 10% линукс)
Ограничивает приложение его «папкой», точнее изолирует приложение на уровне ОС, не позволяя ему видеть остальные приложения и данные пользователяXCode, Visual Studio, Android Studio. Сколько они папок засирают при установке многочисленных сдк… Еще и другие программы умудряются запускать
Если за: ну так не только среды разработки засирают, но и любые приложения в принципе. Просто потому что могут. Об этом и разговор. Но зачем тогда цитировать отрывок про ограничения?
Если против: Интегрированные среды разработки просто обязаны быть в едином пакете "всё в одном". т.е. включать в себя все элементы которые необходимы для разработки. Просто по определению. И никакой доступ к данным пользователя ему не нужен для работы. Или я не прав?
Программа должна иметь возможность писать только в ту папку в которой она была запущена.
Возьмём, к примеру, файловый менеджер… Ой :)
Да екзешники могут делать что от них хотят те кто их создал.
НО готовые продукты идут с Лицензией в котой все доступы, возможности и последствия, а также ответственность за них очень подробно расписаны. Именно Она (та которой мы так мало посвящаем любви и внимания при установке) в андроиде и заменена на диалоговое окно разрешений.
Если Вам повезет и браузер похерит ваши даные то судебный процес с компанией которая не указала в License Agreement что может ваши данные похерить возместит потерю многократно)
Надо как на андроиде? Пользуйтесь лицензироваными копиями с магазина windows.
Надо анроид «секюрити» — Windows 10 S к вашым услугам. За счет приложений получите то что хотите.
Но инфа на 7 декабря, может за 4 дня чему-то антивирусы научили, хз
Кстати, написал в eset со ссылкой оригинальной статьи (у меня куплен eset). Отпишусь, что пришлют
Наши эксперты в курсе проблемы и работают над ее решением. На данный момент главное — установить обновление для вашей ОС Windows через Центр обновления.
Правда MS ничего на этот счёт вроде не писал, ставить всё подряд лишь бы установить всё, что есть к установке особого смысла не вижу.
В последней был баг, из-за которого применение Process Doppelgänging роняло систему в «синий экран смерти», но Микрософт с тех пор этот баг исправила.Ну, молодцы же. Интересно, кто его зарепортил.
… уязвимости в загрузчике Windows, которая позволяет запускать исполняемый код...Это правда? Или только следы заметать научились?
Код подсовываешь какой угодно, да.В той же мере, что и сейчас, только истории не останется, верно? Так скажем, эта фича никак не поможет вирусу, цель которого, например, украсть какой-нибудь файл единоразово, т. к. с ним важно только поймал или нет, а если он запустился, то уже поздно. Так?
уязвимость существует во всех версиях Windows, начиная с Windows XP и заканчивая последней версией Windows 10 Fall Creators Update. В последней был баг, из-за которого применение Process Doppelgänging роняло систему в «синий экран смерти», но Микрософт с тех пор этот баг исправила.
То есть теперь вредоносный код запускается не роняя систему в «синий экран смерти»?
А ведь в будущем появятся вирусы считывающие свои исходники даже из чистоустановленного реестра. Во тогда админу уйдут ребут.
И чем этот способ лучше запуска малвари с памяти?!
Найдена уязвимость во всех версиях Windows
Открываем ссылку в первом абзаце
attack works on all modern versions of Microsoft Windows operating system, starting from Windows Vista to the latest version of Windows 10
Заголовок энтэвэшный! Пугаете фразой "все версии Windows", а затем, "начиная с Windows XP".
Да… По сути в системе может запускаться заражённый файл и пока работает — рушить систему.
А что будет при перезагрузке компа?
Вирус по идее исчезнет как прошлогодний снег… Да даже если в Диспетчере задач в ручную закрыть запущенное непонятное приложение, ведь тоже получится что «вирус» испарится, а при новом запуске «зараженного-незараженного» файла откроется уже чистый файл… Или нет?
Основная опасность с точки зрения статьи в том, что антивирусы не обнаруживают такой запуск вредоносного кода, так что даже давно известные вирусы/трояны, внесённые во все сигнатуры всех антивирусов, будут запущены без малейших препятствий. Само тело вируса может быть зашифровано, чтобы не обнаруживаться при проверке файлов. В обычном случае «запускателю» всё равно пришлось бы расшифровать/распаковать его, записать на диск и стартануть — вот тут-то антивирус и поймал бы запуск вредоносного файла. А если использовать описанный трюк, то запуск не будет отловлен (вернее, будет, но антивирус проверит не реально запущенный код, а какой-нибудь безобидный файл, не имеющий отношения к вирусу).
Найдена уязвимость во всех версиях Windows, которую не закрывает ни один антивирус