Microsoft выпустила билд Windows 10 Insider Preview Build 16232 для PC на канале быстрых обновлений (Fast ring) для участников программы Windows Insiders, а также новый билд для мобильных устройств Windows 10 Mobile Insider Preview Build 15228 (тоже (Fast ring). Чуть ранее компания анонсировала новые функции безопасности, которые появятся в операционной системе к осеннему обновлению Fall Creators Update. Так вот, некоторые из анонсированных функций безопасности реализованы именно сейчас в этих билдах, так что их можно «пощупать» в деле.
Защита от эксплойтов
Одно из нововведений — настройки защиты от эксплойтов в Windows Defender Security Center. Теперь пользователь может собственноручно проверять текущие настройки, изменять их для системы и отдельных приложений непосредственно из Windows Defender Security Center, а не из Windows Defender Antivirus.
Microsoft обещает вскоре выпустить более подробную документацию по настройкам защиты от эксплойтов и напоминает, что эта функция находится в разработке и пока может работать не совсем корректно.
Защита от эксплойтов Windows Defender Exploit Guard реализована на базе системной защиты Enhanced Mitigation Experience Toolkit (EMET). Microsoft уверяет, что эта технология позволяет эффективно защитить систему не только от известных уязвимостей, но также от неизвестных, то есть 0day. Встроенные правила и политики стараются помешать вредоносной программе совершить вразумительные действия в системе, даже после вскрытия новой уязвимости.
Защита отдельных приложений Windows Defender Application Guard (WDAG) призвана остановить распространение инфекции, если она уже попала в систему. Если кто-то случайно скачал и запустил вредоносную программу из Интернета, или зловред попал в систему через 0day-уязвимость, то WDAG пытается изолировать это приложение, чтобы оно не распространилось далее по локальной сети и на локальном компьютере. Microsoft пишет, что это дополнительный уровень защиты системы, в дополнение к файрволу и антивирусу.
Управляемый доступ к папкам в Windows Defender Antivirus
Это совершенно новая опция, которая призвана защитить ценные данные на компьютере от вредоносных приложений и угроз, в том числе от криптовымогателей. Для включения этой опции в англоязычной версии Windows 10 следует запустить Windows Defender Security Center, перейти в раздел настроек Virus & threat protection и активировать опцию Controlled folder access.
Настройка создаёт «белый» список приложений, которым разрешён доступ к определённым папкам. При попытке иного приложения записать что-нибудь в эту папку или изменить (зашифровать) файлы в ней пользователь получит уведомление о попытке несанкционированного доступа. В настройках управляемого доступа можно указывать произвольные папки для защиты и произвольные приложения для «белого» списка.
Хотя можно вносить под защиту произвольные директории, но нельзя удалить оттуда папки, которые внесены по умолчанию: это Documents, Pictures, Movies и Desktop. Также по умолчанию разрешён доступ к папкам нескольким приложениям.
Внесение дополнительных директорий в список для защиты осуществляется через вкладку Protected folders. Microsoft пишет, что можно вносить сетевые ресурсы (network shares) и логические диски (mapped drives), а вот переменные окружения и подстановочные знаки (wildcards) пока не поддерживаются.
Теоретически, управляемый доступ к папкам должен запретить криптовымогателю доступ к файлам. Но насколько надёжна эта функция на практике — это ещё нужно посмотреть. Например, если Word в «белом» списке, то получит ли доступ к файлам вредоносный макрос?
Другие настройки безопасности
Кроме управляемого доступа к папкам, в новом билде реализовали опцию постоянных данных (Data Persistence) в Microsoft Edge через групповые политики виртуальной машины Application Guard, в которой работает браузер. Эта функция выключена по умолчанию, но после её активации (через Windows Components > Windows Defender Application Guard) все закладки, куки и сохранённые пароли будут сохранятся во всех будущих сессиях Application Guard.
Microsoft обещает к осени значительно усилить защиту платформы Windows 10, в первую очередь, за счёт доработки и внедрения набора инструментов Windows Defender Advanced Threat Protection (ATP).
Microsoft также обещает применять с целью усиления защиты «уникальный интеллект» Intelligent Security Graph (ISG), дата-майнинг и машинное обучение для обработки триллионов сигналов, которые поступают в облако с компьютеров пользователей. Для системных администраторов реализуют новые функции аналитики настроек безопасности (Security Analytics). Они позволят отслеживать статус установки критически важных патчей, статус важных системных настроек безопасности, конфигураций и т. д. К осени будут дополнены и API для разработчиков, которые позволят сторонним системам инструктировать Windows Defender ATP автоматически выполнять необходимые действия в случае наступления определённых условий.
Всё это пока в планах. На данный момент Microsoft реализовала пока только управляемый доступ к файлам, что тоже неплохо.
Комментарии (85)
dimkss
30.06.2017 13:47+1>> Настройка создаёт «белый» список приложений, которым разрешён доступ к определённым папкам. При попытке иного приложения записать что-нибудь в эту папку или изменить (зашифровать) файлы в ней пользователь получит уведомление о попытке несанкционированного доступа.
Первая мысль — создаем список самых популярных приложений — браузеры, фары, тотал коммандеры, и маскируем эксплоит под них, не?Evengard
30.06.2017 13:53+2Сейчас все современные бинарники от производителей браузеров и т.д. подписаны криптографически. Так что просто списком тут не обойтись.
dimkss
30.06.2017 14:02-2Действительно… тогда, как вариант, инфицируем те-же бинарники но с сайтов типа free-software-2017, besplatnye-programmy-vyndovs10 и т.д…
Кстати интересно, почему никто не ставит задержку на шифрование? Т.е. инфицировать, подождать пару-четыре месяца, а тогда все шифрануть скопом?LazyCrazy
01.07.2017 18:46Кстати интересно, почему никто не ставит задержку на шифрование? Т.е. инфицировать, подождать пару-четыре месяца, а тогда все шифрануть скопом?
Велик шанс, что за это время обнаружат и внесут во все базы?dimkss
01.07.2017 18:49Вариант.
Я думал что большинство вирусов находят постфактум, уже после выполнения шифрования, после коннекта к серверу для DDOS ботов, или после передачи необходимой инфу куда надо.
CaptainFlint
30.06.2017 14:47Вторая мысль: ничего не маскируем, а тупо используем официальные подписанные приложения. Скажем, текстовому редактору всё равно понадобится давать доступ ко всему, с чем работаешь. Если редактор достаточно продвинутый, то можно им в командном режиме править файлы как угодно, зачастую даже без показа окна (впрочем, запустить программу с принудительно скрытым окном тоже не проблема).
i_Max2
30.06.2017 16:00На маках есть опция в настройках безопасности на счет официальных приложений (из стора) типа разрешать запускатся только приложениям из стора, либо еще разрешать дополнительно приложениям подписанным официальным разработчиком и 3 опция (при специальных действиях со стороны пользователя), когда с паролем админа разрешено запускается приложение от незарегестрированного разработчика.
Возможно в Виндовс так же можно сделать и с доступом к файлам.CaptainFlint
30.06.2017 16:47Возможность запуска — это одно, а ограничение функций уже запущенной программы — это совсем другое. Вот есть у меня, скажем, редактор EmEditor.exe. Подписанный сертификатом, абсолютно чистый, незаражённый, и поэтому ему разрешено менять все файлы. Он поддерживает параметры командной строки, которые позволяют открыть файл, заменить в нём текст и сохранить этот файл без взаимодействия с пользователем. Шифровальщик пролезает на комп, и ему даже не надо самому ничего записывать, он тупо вызывает EmEditor.exe, передавая ему параметры замены, и ни одна проверка доступа к файлам даже не пикнет. Ведь файл-то будет открываться доверенным EmEditor'ом, а не самим шифровальщиком.
i_Max2
30.06.2017 17:23-1Нутак я и говорю, если бы разрешения на запуск вирусу бы система не дала, то и запустить любой редактор (и от его имени менять файлы) он бы не смог.
Хотя бы для начала это сделали бы в ВиндовсCaptainFlint
30.06.2017 17:36И все его первым же делом поотключали бы. У винды же нет своего стора (не считая жалкой пародии под названием Windows Store), все приложения ставятся извне. Задолбаешься каждое в список вносить.
P.S. Вообще говоря, есть групповые политики по разрешённому списку приложений, но кривые до невозможности, и обходятся влёт даже без специальных умений.i_Max2
30.06.2017 22:06Ну значит Микрософту нужно привести в порядок груповые политики. Облагородить, «выпрямить» все углы и защитить лт обходов.
Omelyan
01.07.2017 17:46… но кривые до невозможности, и обходятся влёт даже без специальных умений.
Например?CaptainFlint
02.07.2017 02:17Пример кривости или обходимости? Кривость в неудобстве настроек — диск/каталог добавить нельзя, нет возможности задать, скажем, доверенные подписи и много прочего, что может прийти в голову. Обходимость:
1. В политику вписывается только имя исполняемого файла, без пути. Называем вирус explorer.exe и радуемся.
2. Ограничение действует только на запуск из Проводника. Если пользователь работает в другом файловом менеджере или командной строке, его это не затронет.sumanai
02.07.2017 08:16диск/каталог добавить нельзя
Можно, но не нужно. Все программы должны быть установлены в Program Files, откуда по умолчанию запуск приложений разрешён.
В политику вписывается только имя исполняемого файла, без пути. Называем вирус explorer.exe и радуемся.
Во-первых, добавлять политики на explorer.exe нет необходимости, он находится в системном каталоге, запуск из которого по умолчанию разрешён. Во-вторых, невозможно создать правило для имени, вы брешите. В SRP eсть правила для пути, хеша и сертификата, то есть именно то, что вы просили.
Ограничение действует только на запуск из Проводника. Если пользователь работает в другом файловом менеджере или командной строке, его это не затронет.
А почему тогда у меня тотал пишет «Программа не запускается! (5)», а cmd.exe «Не удается выполнить указанную программу.»? Магия WinXP x64?
Может, стоит проверять свои утверждения перед тем, как размещать их на гиковских ресурсах?CaptainFlint
02.07.2017 13:15Возможно, мы говорим о разных политиках. Я нагуглил только информацию про «Конфигурация пользователя — Административные шаблоны — Система — Выполнять только указанные приложения Windows», её и проверял, перед тем, как размещать свои утверждения на гиковских ресурсах. Да там прямым текстом в описании всё это говорится. У меня Win7.
Если Тотал не запускает, то, видимо, он проверяет эти политики (или пользуется API, которое их проверяет). Причём и то не везде: редактор по F4 у меня замечательно запустился, не будучи в списке. При этом в качестве редактора у меня самописная программа, которая запускает настоящий редактор в зависимости от типа файла, так вот, она тоже прекрасно запустила нужный мне редактор (который тоже не в списке) и не вякнула. А про разрешение запуска всего и вся через cmd.exe в описании упомянуто особо, и лично у меня через cmd всё запускается.sumanai
02.07.2017 23:30Возможно, мы говорим о разных политиках.
Так и есть, выкидывайте ваш гугл.
Пройдите в «Конфигурация компьютера — Конфигурация Windows — Параметры безопасности — Политики ограниченного использования программ», определите их и выберите уровень безопасности «Запрещено». Потом можете в дополнительных правилах добавлять что душе угодно, хоть пути, хоть хеши, хоть сертификаты.
fedorro
30.06.2017 13:49+3Microsoft обещает вскоре выпустить более подробную документацию по настройкам защиты от эксплойтов ...
Которая будет заключаться в установке соответствующего флажка, и «защищать», в основном, от старого, несовместимого софта.
Теоретически, управляемый доступ к папкам должен запретить криптовымогателю доступ к файлам.
… и первым шагом вымогатель должен будет добавить себя в белый список…
TargetSan
30.06.2017 16:28+1Интересно, когда МС сделают нормальную виртуализацию ресурсов для приложений — чтобы каждое из них сидело в своём маленьком болотце и считало, что кроме него в системе никого нет, и оно работает под админом.
Sadler
30.06.2017 23:40Это было бы здорово, ибо сейчас для этого приходится юзать сторонний софт, который иногда роняет систему или рушит отдельные приложения. Ну, или хотя бы иметь возможность добавлять процессы в ACL.
KOLANICH
01.07.2017 09:57То что мс озаботилась разрешениями для приложений на винапи — это большой прогресс, это очевидное решение, давно в куцом виде используемое антивирусами и в более продвинутом виде — песочницами, которое давно надо было полноценно встроить в ОС, и если честно я не понимаю, почему это до сих пор не было сделано. Но вот на линуксе мы подобное скорее всего не скоро увидим, потому что «линукс не для десктопа», «кому я нужен, кроме АНБ» и «виртуализуй машину полностью» (QubesOS) и т.д. Приходится извращать с firejail и прочими костыльными решениями, которые весьма дырявые (солянка из seccomp-bpf, overlayfs, apparmor, capabilities, namespaces и x-серверов xpra/xephyr не может быть недырявой) и ломают приложения вместо того, чтобы симулировать окружение нужной чистот. Виртуализацией должна заниматься ОС, а не солянка из костылей.
kafeman
01.07.2017 20:31Но вот на линуксе мы подобное скорее всего не скоро увидим
$ man sandbox
Это именно то, о чем вы спрашиваете (никакой виртуализации).
Nomad1
30.06.2017 16:31+8Hellsy22
30.06.2017 18:31+1Хочу отметить, что в некоторых других системах получить актуальный открытых за последнюю секунду приложениями файлов — та еще задача, не то, что централизованно управлять этим процессом. А уж интерактивно контролируемый доступ к папкам и вовсе из области фантастики. Эта фича будет прекрасна и в контексте установки сомнительного софта.
kafeman
30.06.2017 18:16-3Всего через ~20 лет, как это сделали в Linux. Ну ОК…
Hellsy22
30.06.2017 18:33Ээ… что именно ~20 лет сделали в Linux? Расскажите мне про интерактивное системное приложение, способное контролировать доступ других приложений в конкретные папки.
kafeman
30.06.2017 18:55В Linux давно есть LSM, который устанавливает хуки на доступ к любым ресурсам. Далее, даже в ванильном ядре есть множество модулей, которые эту возможность используют. Например, вот так можно настроить права для Firefox в AppArmor:
/usr/bin/firefox { # Бла-бла-бла # Запретить любой доступ к /home/user/.ssh и записывать в логи любые попытки сделать это audit deny @{HOME}/.ssh/** mrwkl, # Запретить доступ к /etc/passwd (как пример) deny /etc/passwd mrwkl, # Разрешить доступ на чтение и запись в /home/user/Downloads @{HOME}/Downloads** rw }
Что вы имели ввиду под «интерактивное системное приложение», я не понял. GUI что-ли? Нафиг он нужен. А минусуют, наверное, программисты Microsoft, которые судя по новости даже поддержку wildcard не осилили. Выше, например, спрашивали, как быть с каким-нибудь офисным пакетом, через который всякие «Пети» распространяются. Да пожалуйста, разрешите ему доступ только к определенным файлам (.doc(x) для Word'а, например) и никакие другие файлы (например, пароли из Keepass) он прочитать никогда не сможет.kafeman
30.06.2017 18:59Кстати, таким же образом можно настроить firewall на уровне приложений. Firefox'у исходящие на порт 80 открыть, а какому-нибудь калькулятору доступ к сети вообще отключить. Наверное, еще через 20 лет такое появится и в Windows.
Hellsy22
30.06.2017 19:58Нафиг он нужен
Вот вчера я ставил себе пакет, которого нет в официальном репозитории. Пришлось ставить из частного. И у меня нет никакой гарантии, что в процессе установки (на минуточку — с рутовыми правами!) мне не записали что-нибудь левое. Т.е. я верю, что конкретно этот человек ничего плохого не замышлял, но все же предпочел бы убедиться. И при этом я категорически не могу ограничить работу установщика лишь парой директорий. И меня вполне устроили бы интерактивные запросы (хоть с помощью ncurses) вида «Процесс Бла-бла-бла, попытка записи в directory/file: разрешить, разрешить для этой директории, разрешить для всех, запретить»kafeman
30.06.2017 20:16То, что вы предлагаете, было бы небезопасно (установщик бы за вас нажал «Да»). Но есть функция аудита, которая позволяет вам постфактум просмотреть все действия программы. Если что-то пошло не так, то вы это заметите.
Hellsy22
30.06.2017 20:39установщик бы за вас нажал «Да»
А вот в случае запросов UAC никакой установщик ничего нажать не может.
Но все немного печальнее, в линуксах mandatory lock мягко скажем — не распространен, а большинством штатных приложений не обрабатывается даже advisory lock, так что я не представляю, как вообще можно сделать ожидание решения пользователя.kafeman
30.06.2017 20:56А вот в случае запросов UAC никакой установщик ничего нажать не может.
Сможет. Все установщики в Windows получают наивысший приоритет. Т.е. после первого абстрактного вопроса «Разрешить программе X вносить изменения в систему?» все другие запросы она сможет от вас скрыть. А если выбрать «Запретить», то вы просто не сможете установить свою программу (аналог — когда вас спрашивают «Установить пакет X? y/N»)
Но все немного печальнее, в линуксах mandatory lock мягко скажем — не распространен, а большинством штатных приложений не обрабатывается даже advisory lock
Из коробки безопасна разве что OpenBSD (по крайнее менее, так утверждают ее создатели). То, что Linux каким-то магическим образом безопасен сам по себе, конечно, неправда. Но вся разница в том, что пряморукий админ сможет защитить его, а Windows (как показывают последние новости) нет.Hellsy22
30.06.2017 21:36А что именно показывают последние новости? Точнее, я не совсем понимаю, почему при целой куче червей в интернете, ползающих в основном под разнообразными линуксами на всех типах устройств — линукс «можно защитить», а винду — нет.
Меня вот как-то миновали проблемы с Петей и Wannacry, вероятно хватило десяти минут проведенных за настройкой штатного фаервола. И ребенок ни разу не смог заразить виндовую машину — административного доступа нет, а белый список приложений/директорий есть, так что никакую пакость из интернета или с флэшки не намотать. Впрочем, на момент эпидемии я немного подстраховался и включил еще ShadowDefender (кстати, есть ли его аналог под линукс?)
Но каждый раз, когда я ставлю неподписанное приложение в винде или пакет из неизвестного источника в линуксе — я немного напрягаюсь. И очень хорошо, что хотя бы в одной ОС мне придется напрягаться меньше.kafeman
30.06.2017 21:52Почитайте Хабр по запросу «Petya». Многочисленные админы утверждают, что у них, среди прочего, были установлены все последние обновления, а также имелся внешний (!) железный firewall. Не помогло.
Насчет ShadowDefender — именно по такому принципу работает ФС в Docker. При чтении могут использоваться файлы из вашей хостовой системы, а при записи создается копия. Придумано для экономии места на диске.
Проблему с установщиками, теоретически, можно было бы решить, добавив больше мета-информации к пакетам. Тогда перед тем, как передать управления какому-нибудь postinstall, установщик системы загонит сам себя в песочницу, в которой разрешено только то, на что вы дали свое согласие перед установкой.
И очень хорошо, что хотя бы в одной ОС мне придется напрягаться меньше.
Это в какой же?Hellsy22
30.06.2017 22:10Многочисленные админы утверждают
А вы ожидали, что они признают свои ошибки?
по такому принципу работает ФС в Docker
Не секрет, что с контейнеров виртуальных машин можно делать снапшоты и откатывать их по надобности. Но как быть с десктопом? Мне известна лишь одна ОС, подразумевающая гипервизор и контейнеры на десктопе — это Qubes, но она очень уж неспешна и все еще сыровата.
Это в какой же?
В Win10, очевидно. Кстати, вот еще интересный вопрос — много ли популярных дистрибутивов для десктопа идут с SELinux или AA?kafeman
30.06.2017 22:23А вы ожидали, что они признают свои ошибки?
Нет, но они бы могли промолчать, не в даваясь в детали того, что и где у них стоит. А тут скорее возглас — как так, мы все сделали правильно, а оно все-равно заразилось.
Но как быть с десктопом?
Если поискать, то copy-on-write ФС для Linux наверняка существуют. Просто я не вижу в этом смысла — мне проще запретить запись каким-то левым приложениям, чем потом откатывать их приколы.
В Win10, очевидно.
Почему очевидно? Что именно в Windows сделано лучше в плане безопасности, чем в Linux? Из того, что мы обсуждали, пока результат не в ее пользу, из-за слабой реализации MAC.
много ли популярных дистрибутивов для десктопа идут с SELinux или AA?
Практически все.Hellsy22
30.06.2017 22:55+1Из того, что мы обсуждали, пока результат не в ее пользу
У меня сложилось диаметрально противоположное впечатление. Если не скатываться на уровень типа «в линуксе нет XXX, значит XXX не нужен!», то все довольно очевидно. Но давайте еще раз пройдемся по основным пунктам.
1. Файервол в Windows изначально application-based. Дает возможность разграничить доступ не только к/от IP или интерфейсам, но и к авторизованным компьютерам (это опять-таки про ленивых сисадминов). По-умолчанию содержит монитор, позволяющий увидеть, какие приложения подошли под правила и каков был результат. При этом интерактивен, т.е. при первом запросе неизвестного ему приложения поинтересуется у пользователя — можно ли пускать, не забыв показать есть ли у приложения валидная цифровая подпись доверенного издателя.
2. UAC проверяет валидность издателя и может выполняться от разных административных аккаунтов, sudo ничего не проверяет и вариантов выбора аккаунтов даже из wheel я что-то не видел.
3. Интерактивный управляемый доступ к папкам.
Собственно, обсуждаемая тема. Это то, что радикально поможет уменьшить количество бардака с доступом. UAC тоже хорошо помог — приложения могут писать только в свою собственную установочную директорию, любой шаг в сторону вызывает вопросы UAC. Но это уже после установки, а мне нужно знать, что происходит в процессе. И нет, я не хочу узнавать об этом постфактом из аудита (который, кстати, в винде тоже есть и весьма подробный).kafeman
30.06.2017 23:24Если не скатываться на уровень типа «в линуксе нет XXX, значит XXX не нужен!», то все довольно очевидно.
Я лишь имел ввиду, что никогда не испытывал необходимости в XXX, и потому не знаю, существует оно, или нет. Но за 5 минут поиска все-таки нашел. Оно? По описанию даже лучше.
Файервол в Windows изначально application-based
А выше пишете, что начиная с XP SP2. Хотя это, конечно, неважно. Информация о том, что какое-то приложение нарушило политику, как оказалось, есть. Например, в стоковой Fedora с Gnome. Для того, чтобы добавить исключения, нужно, естественно, ввести пароль root.
UAC проверяет валидность издателя
У Intel есть соответствующие патчи, но ими сознательно никто не пользуется. В конце концов, доверие к издателю ничего не значит. Возвращаясь к Petya, одним из векторов атаки был взлом серверов одного достаточно честного приложения для бухгалтерии. Издатель, естественно, был не в курсе, и никого ломать не желал. Аналогичная история случилась в прошлом году, когда взломали сервера BitTorrent.
sudo ничего не проверяет и вариантов выбора аккаунтов даже из wheel я что-то не видел.
Простите, вы sudo когда-нибудь пользовались? Из манов: «sudo, sudoedit — execute a command as another user». Вы можете залогиниться вообще под любым аккаунтом, даже системным, вход для которого любым иным образом запрещен.
Интерактивный управляемый доступ к папкам.
Все тоже самое, и даже больше, уже давно есть в ванильном ядре Linux. Причем есть выбор: AppArmor для домохозяек или SELinux для продвинутых. Можете ли вы ограничить доступ конкретного приложения к файлам с определенным расширением? Судя по тому, что я прочитал в этой новости, нет.
Но это уже после установки, а мне нужно знать, что происходит в процессе.
Вы читали мой комментарий? Придуманной вами возможности в Windows нет. Впрочем, как и в Linux.Hellsy22
01.07.2017 00:58Не совсем понял при чем тут btrfs, но мне он знаком лишь как альтернатива zfs для дедупликации, снапшотов и компрессии на лету. Вообще, если говорить о файловых системах, то производительсность NTFS разумеется ужасна — у меня из под виртуалки самба вдвое быстрее файлы отдает с ext4 на том же диске, чем нативная винда с ntfs-раздела.
А выше пишете, что начиная с XP SP2
Так он и появился в XP SP2. До этого штатного фаервола, ЕМНИП, не было, в ходу были лишь сторонние.
Информацию о том, что какое-то приложение нарушило политику я могу вам даже с помощью iptables сделатьнапример такiptables -N LOGDROP iptables -A LOGDROP -p TCP -j LOG --log-level 7 --log-prefix "TCP DROP: " iptables -A LOGDROP -p UDP -j LOG --log-level 7 --log-prefix "UDP DROP: " iptables -A LOGDROP -j DROP ... и в самом конце: iptables -A OUPUT -j LOGDROP
kafeman
01.07.2017 01:59Не совсем понял при чем тут btrfs, но мне он знаком лишь как альтернатива zfs для дедупликации, снапшотов и компрессии на лету.
OK, тогда расскажите, что такое этот ваш ShadowDefender? Как я понял, это ФС, которая фактически копирует файл (целиком или блоками), а процесс об этом не знает. После все изменения откатываются обратно.
Информацию о том, что какое-то приложение нарушило политику я могу вам даже с помощью iptables сделать
Нет, я имел ввиду именно user-friendly. Вверху экрана всплывает уведомление о том, что нарушена какая-то политика.
Кстати, нашел в Интернете вот такой скриншот. Можете сами поискать вариации по запросу «selinux alert».
Скриншот, предположительно стоковая FedoraHellsy22
01.07.2017 02:24что такое этот ваш ShadowDefender
Дополнительная прослойка между реальной файловой системой и приложениями. Все изменения файлов, записанные после включения SD — пишутся в память/его скрытый от доступа файл, но для системы и приложений все выглядит как обычно. Перед перезагрузкой машины администратор может подтвердить все изменения или изменения отдельных папок/файлов. Если не подтвердит, то после перезагрузки машина вернется в точности в состояние до включения SD. Неиспользуемые в данный момент файлы можно закоммитить хоть сразу.
В общем, удобная утилита для машин публичного доступа или запуска сомнительных приложений.
которые жмут «Разрешить» не задумываясь
Такие и sudo подтверждают не задумываясь, хотя конечно же под десктопный линукс угроз все еще намного меньше.
это список запрашиваемых разрешений в манифесте приложения
И хорошо бы иметь встроенный интерактивный контроль доступа ко всему железу, хотя тут Андроид пока впереди всех.
Следующим в моем виш-листе стоит application-based routing, в винде он кое-как делается через приложение ForceBindIp (работает не всегда), в линуксе надо мучиться с метками пакетов, роутингом и отсутствием возможности привязать все это непосредственно к приложению (можно или к порту, или к pid-у).kafeman
01.07.2017 02:41Все изменения файлов, записанные после включения SD — пишутся в память/его скрытый от доступа файл, но для системы и приложений все выглядит как обычно. Перед перезагрузкой машины администратор может подтвердить все изменения или изменения отдельных папок/файлов. Если не подтвердит, то после перезагрузки машина вернется в точности в состояние до включения SD.
И в чем отличие от:Не совсем понял при чем тут btrfs, но мне он знаком лишь как альтернатива zfs для дедупликации, снапшотов и компрессии на лету.
Обычная copy-on-write ФС. Можно откатить, можно оставить.
Такие и sudo подтверждают не задумываясь
Не, тут на вопрос «Что ты сейчас сделал?» пользователь хотя бы ответит «Ввел свой пароль», что может натолкнуть его на определенные мысли. А в случае с UAC он обычно даже не помнит, что было написано на кнопке, которую он нажал.
Андроид пока впереди всех
Потому что он был кастрирован изначально. Сейчас такое без потери обратной совместимости уже не сделать. Посмотрим, что выйдет из Ubuntu Snap. С одной стороны, выглядит интересно. С другой стороны, как срочно обновить какой-нибудь OpenSSL внутри контейнера?
khrundel
01.07.2017 19:25В случае с консольным sudo я могу быть уверен, что мой пароль не будет куда-то записан.
Точно?
Многие консольные приложения вызывают sudo сами, т.е. в терминале может появиться запрос от sudo на пароль. Если перед этим дать пользователю заполнить опросник или тупо симулировать долгий процесс подготовки данных, многие ли нажмут ctrl-c вместо простого ввода пароля?
Ну и консольный sudo тоже не панацея.
history -a; echo "this program requires root"; PATH="~/.config/fakesudodir/:$PATH" bash -i
Многие ли заметят подвох?
kafeman
01.07.2017 19:53Многие — это какие? У меня все выводят что-то вроде «This command has to be run under the root user» в
stderr
и закрываются. После чего я добавляю "/usr/bin/sudo " в начале и ввожу пароль.
Многие ли заметят подвох?
Все, кто не используют bash :-) Кстати, вы не поверите, у какого количества альтернативно одаренных JS-разработчиков $PATH="./node_modules/bin:..." (обратите внимание на точку в начале). Но дураки должны страдать…khrundel
02.07.2017 18:57Многие — это какие?
Почти все вменяемые из тех, чья работа не ограничена 1м действием. Знаете почему? Потому, что в linux принято "unix way", сложная программа делегирует свои функции другим программам, активно использует скрипты и всё это очень уязвимо, запускать такую программу из под рута крайне не рекомендуется. В принципе решаемо, можно форкнуться, в дочернем процессе сделать setuid(getuid()), а потом работать под пользователем, передавая команды через пайп родителю. Но на практике "sudo команда" проще. Кроме того, часто программе неизвестно, понадобятся ли ей рутовые права вообще. Поэтому часто программа, например, компонует и пишет данные на флешку под пользователем, а загрузочный сектор через sudo/gksudo.
У меня все выводят что-то вроде «This command has to be run under the root user» в stderr и закрываются. После чего я добавляю "/usr/bin/sudo " в начале и ввожу пароль.
рад за вас. А вот я то ли беспечнее вас, то ли честнее, потому что я пишу без пути. Впрочем, вас это не спасёт: /usr/bin/sudo() { echo "ой, судо сломалось"; }
Все, кто не используют bash :-)
Разве что. Но и тут $SHELL спасёт злобного хацкера.
В общем, разговор начался с критики ламерья, которые говорят "да" UAC'у не думая, а закончился параноиками, у которых и шелл нестандартный.
Hellsy22
30.06.2017 23:06Да, еще контроль запускаемых приложений.
Это очень интересная тема, поскольку штатные средства позволяют ограничить папки для запуска на уровне системы. В смысле, что пользователь может создавать сколько угодно своих папок и выставлять на них любые права, но запускать никакие приложения там расположенные ему система не разрешит. В список исключений можно внести как отдельные пути/приложения, так и, к примеру, контрольные суммы приложений.
Все это богатство доступно на самой обычной винде. На Windows Server групповые политики дают куда больше настроек.
Лично мне в винде не хватает только нормального роутинга. Оба штатных варианта по сравнению с гибкостью iptables — какие-то кастрированные до безобразия. Но, возможно, мне просто не хватает опыта.kafeman
30.06.2017 23:26Да, еще контроль запускаемых приложений. Это очень интересная тема, поскольку штатные средства позволяют ограничить папки для запуска на уровне системы.
Это у вас такой юмор? Это было в Unix еще во времена, когда MS DOS даже не планировалась :-)Hellsy22
01.07.2017 01:03Мы говорим про современный Linux и я что-то не припомню в stage3 Gentoo или Debian-а инструментов для управления запуском или маски, ограничивающей выставление прав на файл конкретным пользователем для своих файлов. Может быть подскажете?
kafeman
01.07.2017 02:06Я имею ввиду noexec. Например, у меня монтируются с ним все внешние диски. Пускай там будут хоть терабайты вирусов, запустить их никто не сможет. Для домохозяек я бы также рекомендовал запретить запуск из /home. Сам я этого сделать, к сожалению не могу, потому что часто приходится тестировать свои же программы.
Но запретить пользователям ставить метки на файлы наверняка можно. Опять же, нужно просто поискать решение, поскольку необходимости у меня такой никогда не было. Слишком экзотическая задача…Hellsy22
01.07.2017 02:33Да задача, собственно, тривиальная — разрешить пользователю запускать только приложения, одобренные администратором, при этом у пользователя есть право на запись в своей домашней директории. В винде это решается групповыми политиками, в линуксе — я пока не знаю как.
noexec — в целом вариант, если сабж поддерживается zfs, то можно хоть каждому пользователю выделить свою fs в общем пуле. Но возникает другая проблема — запретить все можно, а вот разрешить запускать что-то в пользовательской директории после этого — нет.kafeman
01.07.2017 03:23Да задача, собственно, тривиальная — разрешить пользователю запускать только приложения, одобренные администратором
Не вижу никакого смысла. Доступ к терминалу остается? Значит, можно писать скрипты. Тут нужно работать в направлении, чтобы запущенные пользователем программы в принципе не могли ничего испортить. Иначе выходит разновидность security through obscurity.
Если речь о приложениях в каком-нибудь /usr/bin, то просто ограничьте доступ к файлам. Оставьте его только для определенной группы и добавьте в нее проверенных пользователей.
можно хоть каждому пользователю выделить свою fs в общем пуле
Если очень надо, то:
/home/dummies/noob /home/dummies/lamer /home/stuff/kafeman
Соответственно,/home/dummies
— одна ФС (сnoexec
),/home/stuff
— другая.Hellsy22
01.07.2017 03:52Значит, можно писать скрипты
Это защита от дурака, готового не глядя запустить любой бинарник или скрипт, а не от человека целенаправлено ломающего систему.
нужно работать в направлении, чтобы запущенные пользователем программы в принципе не могли ничего испортить
Это, увы, не спасет файлы самого пользователя. Хотя как отдельная задача тоже весьма интересна. Я в свое время перерыл кучу форумов и почти везде мнения сходились к тому, что chroot ненадежен и тянет за собой массу вторичных проблем, так что если нужна безопасная песочница, то лучше сразу использовать виртуальную машину. Но для десктопа это плохое решение.kafeman
01.07.2017 04:17Не, скрипты через
noexec
запретить, скорее всего, не получится. Ведь формально запущен будет неspyware.sh
, а какой-нибудь/usr/bin/bash
. Вариант «да это от добропорядочных людей защита» — security through obscurity в чистом виде, прям как по учебнику.
Спасти файлы пользователя — тут только постоянный бекап несколько раз в день через какой-нибудь duplicity. Он, кстати, может интегрироваться с Nautilus, в контекстом меню у каждого файла будет пункт «Откатить все назад». Если у вас настолько продвинутые пользователи, то они всегда могут случайно нажать «Удалить».
Из виртуализации есть Docker, который имеет минимальный overhead. На десктопе вполне работоспособен, посмотрите в сторону Ubuntu Snap, ссылку я уже давал выше. Но только смысла во всем этом нету — файлы можно удалить/повредить откуда угодно.
Кстати, насчет запускаемых приложений — в SELinux есть режим, когда запрещено все, что не разрешено. Для скаченного из Интернета файла политик не будет > программа не запустится даже под root'ом.
Barnaby
30.06.2017 22:10Т.е. я верю, что конкретно этот человек ничего плохого не замышлял, но все же предпочел бы убедиться.
Так можно открыть пакет и посмотреть что куда ставится и какие там скрипты. Хотя там уже бинарники, тогда и пакет надо самому собирать.
kafeman
30.06.2017 22:16Я так понял, он боится именно скриптов, которые выполняются из-под root'а в момент установки пакета. Анализировать сотни строк непонятно кем написанных Bash-скриптов, конечно, не самое интересное занятие, тут я согласен с Hellsy22. Было бы гораздо удобнее узнать о необычной активности пакета от системы.
А что касается собранных бинариков, то тут уже как раз никаких проблем нет, ибо для них легко пишутся MAC-политики.Hellsy22
01.07.2017 01:07Верно, процесс инсталляции меня напрягает в обеих ОС, потому как я его не контролирую и ему нужны административные права. И если подписанным приложениям в винде/штатным пакетам из репозитория я еще доверяю (хотя, как было замечено выше, ни подпись, ни репозиторий — не панацея), то ставя что-то из левого источника я каждый раз рискую. И мне это не очень нравится.
technic93
02.07.2017 09:43Редко когда программе нужен postinstall. Если был бы вариант не выполнять эти скрипты по умолчанию думаю вам бы подошло.
3al
01.07.2017 13:32права для Firefox в AppArmor
Создают видимость защиты: пока firefox запущен в X11-сессии, он может делать в ней всё. В том числе:
- Открыть невидимое окно терминала и сэмулировать ввод в нём произвольного текста. Родителем терминала по мнению apparmor'а будет, конечно, оконный менеджер или лаунчер DE, а не firefox
- Слушать весь ввод с клавиатуры в иксах. Включая пароли для sudo
Пока в практически всех дистрибутивах используется Xorg — никакой безопасности в GUI-оболочке в них нет.kafeman
01.07.2017 14:01Боюсь спросить, вы сколько лет Xorg не обновляли? В апстриме давно есть поддержка SELinux, на Launchpad легко находятся патчи для AppArmor.
3al
01.07.2017 14:09Эти патчи не включены в популярные дистрибутивы и никем не тестированы.
EDIT: да и не работают, ибо XAce бесполезенkafeman
01.07.2017 14:39Fedora достаточно популярный? XSELinux Object Manager имеется (правда, отключен по-умолчанию в пользу Xephyr в песочнице, но включается одной командой).
По приведенной вами ссылке очень странные аргументы (приложения привыкли лезть куда не надо, поэтому защиту мы включать не будем, а то вдруг эти кривые приложения перестанут работать?)3al
01.07.2017 14:41Ну так эта ссылка объясняет, почему пользуется Xephyr в песочнице а не XACE. В Qubes OS примерно то же самое. Слишком много реально используемых приложений ломается.
kafeman
01.07.2017 14:59Отличный повод переписать эти приложения. Во времена первых Windows тоже были экземпляры, гадящие напрямую в видеобуфер. Но ничего, им сказали «нельзя», они перестали. Для особо упоротых оставили эмуляцию (аналогия — Xephyr). Тем более, если авторы собираются портировать свои приложений на какой-нибудь Wayland, то обуздать свои аппетиты им все-равно придется.
В Qubes OS в принципе все виртуализированно, не только иксы. Это их фишка.
alex_ter
30.06.2017 22:43-1Какую-то маркетинговую чушь придумывают, по другому не скажешь. Где гарантии что дыру в этих «управляемых папках» не найдут? Еще ворох уязвимостей добавят и не более того.
NeuroHunter
01.07.2017 09:40| Где гарантии
Там же, где и гарантии, что глубоко в недрах OpenSSL/ядра Linux/прочего популярного opensource по не лежит очередной Heartbleed.
aamonster
30.06.2017 23:13Не, ну пригодится, конечно (хотя как раз вирусы наверняка обойдут), но лучше бы с той же целью совершенствовали возможности бэкапа (в облако, на другие компы, ещё куда)
Благо, инфраструктура для этого есть. Продвинутый пользователь уже сейчас может организовать себе бэкап, до которого вирус не доберётся. Volume shadow copy для доступа к файлам + rsync (читать про rsnapshot и http://www.mikerubel.org/computers/rsync_snapshots/ — благо, теперь rsync практически из коробки есть и под windows 10) + немного уличной магии, чтобы для очередного бэкапа делалась очередная папка с доступом на запись, а по окончанию — доступ на запись закрывался бы навсегда (и этим управлял бы сервер бэкапов, а не бэкапящийся комп).
Ну, наверное, и как-то проще можно.
Когда будет из коробки понятное чайнику решение для этого — ущерб от криптеров и дохлых hdd резко пойдёт на убыль.
vesper-bot
Интересно, через какое место сделан управляемый доступ к файлам. Если через фильтр файловой системы, его тупо отключают и что там за вин-дефендер был — неважно. Ну или reboot в петю-с-мишей, где фильтр тупо не загружается. Или какой-нибудь DoS вида "запортить фильтру списки", после чего ОС не будет загружаться из-за отсутствия доступа к файлам. Хотя идея неплохая — сейчас далеко не каждый доступ к файлу на запись является легитимным действием.
daggert
Нормальные пользователи ничего не отключают, пользуясь готовым, а отключившие — ССЗБ.
vesper-bot
Отключает, естественно, вирус, получивший права системы, а не пользователь. Если отключил пользователь, то скорее всего у него хватит мозгов на резервное копирование, хотя бы в ручном режиме. Хотя бы на настройку истории файлов на отключаемый носитель.
Xaliuss
Если у вируса права системы, то никакая защита не поможет. Но против обычных шифровальщиков это реально поможет. Эскалация прав не такая простая вещь, и уязвимости прикрывают.
MisterParser
Обычно вирусы начинают вредоносные действия после получения доступа к правам системы, эксплуатируя одну из уязвимостей.
Xaliuss
Но не все вирусы так делают. Шифровальщики опасны сейчас тем, что им достаточно прав пользователя, что делает их очень простыми в написании. Эта защита от них поможет, с учётом того, что антивирусы против них помогают плохо.