Крис Эванс (Chris Evans), известный эксперт по компьютерной безопасности и автор защищенного FTP-сервера vsftpd, обратил внимание (https://scarybeastsecurity.blogspot.ru/2016/11/0day-poc-risk...) на фундаментальные проблемы в организации работы с новыми файлами в GNOME и продемонстрировал (https://scarybeastsecurity.blogspot.ru/2016/11/0day-exploit-...) на практике возможность их эксплуатации, показав как просто загрузив специально оформленный файл в систему можно добиться выполнения своего кода.Сама по себе проблема с автоматической обработкой новых файлов в системе не нова и уже давно применяется (https://www.opennet.ru/opennews/art.shtml?num=29532) для эксплуатации уязвимостей в библиотеках для обработки изображений (при открытии нового носителя в некоторых файловых менеджерах автоматически вызываются обработчики для создания пиктограмм с эскизами). Исследование Криса Эванса показывает, что проблема остаётся недооцененной и представляет большую угрозу для безопасности пользовательских Linux-систем.
В современных дистрибутивах Linux поставляется достаточно обширный набор плагинов Gstreamer для обработки различных форматов видео и изображений. При этом огромная доля из этих плагинов написана без оглядки на обеспечение безопасности и изобилует ошибками. В то же время в Fedora и других дистрибутивах применяется автоматическая индексация загружаемых пользователем файлов при помощи ПО GNOME Tracker (https://wiki.gnome.org/Projects/Tracker), которое извлекает из файлов метаданные при помощи имеющихся в системе библиотек. Кроме того, браузер Chrome настроен для сохранения загружаемых файлов на рабочий стол без подтверждения операции пользователем, что также приводит к автоматической обработке данных файлов при создании эскизов для рабочего стола.
Обилие проблемных декодировщиков контента в сочетании с автоматически обрабатывающим их приложением Tracker, которое запускается без применения изоляции SELinux, создаёт прекрасные условия для проведения атак c задействованием 0-day уязвимостей в плагинах Gstreamer. Чтобы показать, что подобные атаки вполне реальны, а не умозрительны, Крис Эванс опубликовал примеры эксплоитов, работающих в полностью обновлённом окружении с Fedora Linux 24 (при желании эксплоиты легко могут быть адаптированы для Ubuntu и любых других дистрибутивов). Первый пример манипулирует уязвиомстью в gst-plugins-bad1.0/gst/vmnc/vmncdec.c и приводит к краху процесса tracker-extract при открытии в Chrome специально оформленной страницы, перенаправляющей пользователя на avi-файл (https://security.appspot.com/security/vmnc/vmnc_width_height...) с эксплоитом.
Второй пример затрагивает уязвимость в gst-plugins-good/gst/flx/gstflxdec.c и содержит специально оформленный файл в формате FLAC (https://security.appspot.com/security/flic/fedora_flx_exploi...), открытие которого в Rhythmbox приводит к запуску калькулятора. Эксплоит не является универсальным и завязан на конкретные сборки Rhythmbox, Totem, tracker-extract или любого другого приложения, использующего GStreamer, поэтому представленный способ подходит только для совершение целевых атак на отдельные дистрибутивы (т.е. представленный FLAC-эксплоит будет работать только в Fedora 24 при обработке файлов в Rhythmbox, а для Ubuntu 16.04 и других программ потребуется создание другого FLAC-эксплоита).Для обхода механизмов защиты ASLR (Address Space Layout Randomization) и DEP (Data Execution Prevention) в эксплоите не используются методы манипулирования раскладкой памяти и вычисления указателей во время эксплуатации на основе данных из дополнительных источников. Вместо этого точечная подстановка кода осуществляется в цикле декодирования мультимедийного потока, используя для определения структуры кучи данные от периодически выполняемых операций выделения и очистки памяти для буферов декодирования. Определив структуру кучи осуществляется подмена данных в вызове system (в качестве альтернативы можно подменить код в буфере JIT).
Проблема уже устранена в Ubuntu (https://www.ubuntu.com/usn/usn-3135-1/) и ожидает исправления в остальных дистрибутивах: Debian (https://www.debian.org/security/) (устранена (https://www.debian.org/security/2016/dsa-3717) только первая проблема в gst-plugins-bad), RHEL (https://rhn.redhat.com/errata/rhel-workstation-7-errata.html), Fedora (https://bodhi.fedoraproject.org/updates/?releases=F25&type=s...), CentOS (https://lists.centos.org/pipermail/centos-announce/), SUSE (https://www.suse.com/support/update/), openSUSE (https://lists.opensuse.org/opensuse-security-announce/).URL: http://openwall.com/lists/oss-security/2016/11/22/5
Новость: https://www.opennet.ru/opennews/art.shtml?num=45543
Надо решать вопрос системно: Не знаю как сейчас, описать бинарные форматы на спец языке и использовать генератор защищенных парсеров бинарных форматов (kaitai struct или еще чего).
Ну и SELinux/AppArmor
А что SELinux/AppArmor? Если их настроить на все действия, объекты и не по принципу match *, юзеры сойдут сума. И админы тоже.
> Надо решать вопрос системно:Например отключить автоматическую обработку новых файлов всякими GNOME Tracker.
А зачем пользователь загружает мультимедиа файл?
Рано или поздно он сам его запустит, при чём тут трекеры и самбнэйлы.
> А зачем пользователь загружает мультимедиа файл?
> Рано или поздно он сам его запустит, при чём тут трекеры и
> самбнэйлы.ну от этого ничего не спасёт (кроме как применение типобезопасных языков, запуска программ с жёсткими правилами (зачем плееру что-то кроме списка плагинов запускать и писать куда-то кроме кеша ?))
главное чтоб правила не писал каждый нубомантейнер каждого дистриба а они были более централизованные
> ну от этого ничего не спасёт (кроме как применение типобезопасных языков, запуска
> программ с жёсткими правилами (зачем плееру что-то кроме списка плагинов запускать
> и писать куда-то кроме кеша ?))
> главное чтоб правила не писал каждый нубомантейнер каждого дистриба а они были
> более централизованныеПоздравляю, ты только что рассказал про Firejail (ну или аналогичную, которых я не знаю).
>> ну от этого ничего не спасёт (кроме как применение типобезопасных языков, запуска
>> программ с жёсткими правилами (зачем плееру что-то кроме списка плагинов запускать
>> и писать куда-то кроме кеша ?))
>> главное чтоб правила не писал каждый нубомантейнер каждого дистриба а они были
>> более централизованные
> Поздравляю, ты только что рассказал про Firejail (ну или аналогичную, которых я
> не знаю).проблема не в том что миллионы реализаций, проблема в том что нет firejaild и правильного пацана Лёни
если к системд прикрутят автоконтейнирование (или автоправила аппармора, или ещё что умное, я всёж так себе изучал) - это будет то достижение Лёни за которое потомки ему памятник поставят
> это будет то достижение Лёни за которое потомки ему памятник поставятА, я понял. Памятник поставят за это, а за всё остальное линчуют? :)
А вообще это давно может cgroups.
Памятник личневанию Лени сойдет
Главное чтобы картинки не оказались в одном контейнере с банковскими картами
> Главное чтобы картинки не оказались в одном контейнере с банковскими картамиПравильно. Картинки в один контейнер, пароли, банковские карты, переписка из соц. сетей в другом, чтобы легче было вытащить всё сразу.
>> Главное чтобы картинки не оказались в одном контейнере с банковскими картами
> Правильно. Картинки в один контейнер, пароли, банковские карты, переписка из соц. сетей
> в другом, чтобы легче было вытащить всё сразу.а вы шифруйте и пароль на стикере не пишите (а при целевой атаке за вами со спутника следить будут и считывать переписку прямо с отражения на сетчатке вашего глаза минуя ваш компутер (защищённый или не очень) )
Не, это дорого. Дешевле пытки ;)
Чому так грубо? Тєрморекталниї кріптоаліз є...
Вот всё у вас так, перректально...
https://xkcd.com/538/
Такой плагин должен просто seccomp юзать.
> проблема не в том что миллионы реализаций, проблема в том что нет
> firejaild и правильного пацана ЛёниИ это заметно - в роли аналога pid=1 он вообще никакой и жестоко глючит в контейнерах с несколькими программами.
> если к системд прикрутят автоконтейнирование
Так там майнтайнеры и прикручивают, в том же дебиане довольно многим сервисам уже выписали приватные диры, защиту от них системы, фильтры сисколов и проч. А если не нравится - в ситемд это еще все перекрыть можно своим фалом в /etc и пакетник не будет на него покушаться при апдейте пакета, потому что системные дефолты - в /usr.
> Поздравляю, ты только что рассказал про Firejail (ну или аналогичную, которых я не знаю).В системде так тоже можно и firejail все-таки заточен на запуск обычных десктопных программ юзером. Контейнеры допустим с несколькими программами он делать умеет. Но делает это довольно криво. Его проблема в том что PID=1 (или его user-вариантом) оно быть хронически не умеет. Поэтому если запустить программу, заджойнить туда еще пару программ, прибить первую программу то ... то firejail останется в контейнере. И будет истошно флудить ошибкой. Нагружая проц. Ну в общем он в таком виде только для десктопных апликух и под присмотром юзера. Сервисы им запускать - хорошая заявка на FAIL.
> А зачем пользователь загружает мультимедиа файл?
> Рано или поздно он сам его запустит, при чём тут трекеры и самбнэйлы.При том, что в первом случае заражение происходит, когда пользователь запустит файл, а во втором - когда демон GNOME Tracker дотянется до него своими ручками.
При том, что программа, которой воспользуется пользователь для просмотра мультимедиа-файла скорее всего не имеет проблем, свойственных ПО аналогичном GNOME Tracker (о чём автор и пишет).
То есть возможен следующийс сценарий: ты открыл в барузере страничку, браузер закэшировал картинку, её подхватил какой-нибудь "трекер", у тебя завёлся зловред.
>> Надо решать вопрос системно:
> Например отключить автоматическую обработку новых файлов всякими GNOME Tracker.массовое использование легковесных ограниченных контейнеров и правильный правил аппармора и ко в сочетании с юниксвей (одна программка - одна маленькая задачка)
нафиг гномтрекеру умение запускать калькуляторы и писать куда-то кроме как в "папочка для превьюшек" ?
> массовое использование легковесных ограниченных контейнеров и правильный правил аппармора
> и ко в сочетании с юниксвей (одна программка - одна маленькая
> задачка)разработчики приложения должны сбрасывать capabilities - это основная мера, и централизованная.
apparmor - дополнительная.
>> массовое использование легковесных ограниченных контейнеров и правильный правил аппармора
>> и ко в сочетании с юниксвей (одна программка - одна маленькая
>> задачка)
> разработчики приложения должны сбрасывать capabilities - это основная мера, и централизованная.
> apparmor - дополнительная.а главное - тем кто не сбросит - "централизованно отключать газ, отопление и канализацию"
зы: гугл с андройда со своей централизацией и управлением разработкой такую конфетку мог бы сделать, но сделал что сделал (одни проприетарные дрова чего стоят без отсутствия альтернативы)
> нафиг гномтрекеру умение запускать калькуляторы и писать куда-то кроме как в "папочка
> для превьюшек"?Так он и не умеет. Сказано же в новости: автор эксплуатировал переполнение буфера в GNOME Tracker, чтобы добиться выполнения своего кода. Этот код и запускал калькулятор.
>> нафиг гномтрекеру умение запускать калькуляторы и писать куда-то кроме как в "папочка
>> для превьюшек"?
> Так он и не умеет. Сказано же в новости: автор эксплуатировал переполнение
> буфера в GNOME Tracker, чтобы добиться выполнения своего кода. Этот код
> и запускал калькулятор.вот и должно быть правило к нему делающие "запускать калькулятор: денай"
и будет не важно запускал ли гномотрекер калькулятор сам по неосмотрительности или его вынудили это сделать обманом и угрозами физической расправы
> вот и должно быть правило к нему делающие "запускать калькулятор: денай"
> и будет не важно запускал ли гномотрекер калькулятор сам по неосмотрительности или
> его вынудили это сделать обманом и угрозами физической расправыВы из тех, кто молится на контейнеры?
Мысль, конечно, любопытная, но слабо реализуемая. Её попытались в андроиде воплотить в жизнь, но вышло не очень: всё равно вирусня ползёт по приложениям, как бешеный огурец по забору.
>> вот и должно быть правило к нему делающие "запускать калькулятор: денай"
>> и будет не важно запускал ли гномотрекер калькулятор сам по неосмотрительности или
>> его вынудили это сделать обманом и угрозами физической расправы
> Вы из тех, кто молится на контейнеры?
> Мысль, конечно, любопытная, но слабо реализуемая. Её попытались в андроиде воплотить в
> жизнь, но вышло не очень: всё равно вирусня ползёт по приложениям,
> как бешеный огурец по забору.а в андройде внедрены контейнеры ? я чтот и не в курсе даже о таком
> Надо решать вопрос системно:Именно, надо выкинуть всё мультимедийное глюкалово во flatpack'и.
> Ну и SELinux/AppArmorКоторые первым делом отключают все эксплойты. Ага.
> GNOME Tracker
> gstreamerДа, это Гном, детка!
>> GNOME Tracker
>> gstreamer
> Да, это Гном, детка!Это кодеки и демуксеры, детка!
Не пойму, в чем проблема писать код сразу правильно?
И не поймёшь, пока не начнёшь писать код. И даже после этого пару лет ничего понимать не будешь.
Ну так если ты вкурсе то просвети.
А кто будет баги править?
> А кто будет баги править?//оффтоп
скайнет же
Пользуйтесь Linux x86_64, VLC и DeadBeaF. Skype-падла тащит за собой gstreamer, но если система x86_64, то скайп использует зависимости x86, которые не используются софтом x86_64.
>Skype-падла тащит за собой gstreamerтак не пользуйтесь ;)
Так а чем пользоваться? Пока нет тенденции миграции овердофига пользователей в маттермосты и прочее новое/модное
> VLCСюда же можно добавить MPlayer и MPV.
mpv ffmpeg'ом питается
apt-cache depends mpv | grep ffmpeg[пыль]
apt-cache depends ffmpeg | grep gstreamer
[пыль]
Ну не знаю, что у вас за дистр такой ;)
> Ну не знаю, что у вас за дистр такой ;)Ну, в принципе, разработчикам виднее ;)
https://github.com/mpv-player/mpv
> Essential dependencies (incomplete list):
> ...
> FFmpeg libraries (libavutil libavcodec libavformat libswscale libavfilter and either libswresample or
> libavresample) At least FFmpeg 2.4.0 or Libav 11 is required.Да и дебиан вроде бы обратно на ffmpeg перешел.
https://lwn.net/Articles/650816/
Он давно перешёл, но MPV никогда не юзал ffmpeg и ffmpeg никогда не юзал GStreamer. Разрабам, конечно, виднее, но в Дебьяне собрано без него :)
> Он давно перешёл, но MPV никогда не юзал ffmpegА мусью не смущает, что libav, как бы, форк ffmpeg? )
> Разрабам, конечно, виднее, но в Дебьяне собрано без него :)
Ну-ну,
https://packages.debian.org/sid/mpv
> dep: libavcodec57
> FFmpeg library with de/encoders for audio/video codecs - runtime files
> dep: libavdevice57
> FFmpeg library for handling input and output devices - runtime files
> dep: libavformat57
> FFmpeg library with (de)muxers for multimedia containers - runtime files------
> и ffmpeg никогда не юзал GStreamerПросмотрите внимательно всю цепочку, начиная с #5 -- никто ничего такого не утверждал (хотя некоторые ответы, ввиду излишней лаконичности, можно толковать и так и эдак) :)
А ты всегда определяешь всякие там библиотеки, фреймворки и прочее по зависимым пакетам?
Ну у меня ffmpeg не стоит. Чего тут определять? Просто пруф предоставил.
Почему-то вспомнились autorun сдиромов под офтопиком, когда после прослушивания музла у некоторых были проблемы :)
Ну, это разные совсем случае.Тут больше уместна аналогия с уязвимостью при обработке ярлыков. Когда все уже поотключали автозапуск, выяснилось, что при открытии флешки винда грузит в память все содержащиеся в корне ярлыки. И во время этой подгрузки нашли уязвимость, позволяющую выполнить код. Вот тут сходство 100% - мы открываем папку и уже по факту открытия ОС начинает что-то делать, что-то вызывать, чтобы более удобно и красиво отобразить список содержимого.
так и хочется сказать "баян", но баян актуальнейшийзы: а правда что 100 независимых дистрибутивостроителей сделают более качественные дистрибутивы наступив в сумме на 5*100+1 грабель чем 100 дистрибутивостроителей поставленных раком некими условиями распространения пакетов, торговых марок и ко с необходимостью минимизировать внесение изменений не принятых в апстрим пакета и дистрибутива, наступившими на 5+1 грабель ?
а я уже давно твержу что винда в плане безопасности конкретного юзера в юзерской жизнедеятельности давно продвинулась куда дальше чем линукс (это не значит что она безопаснее, это значит что об этих угрозах вспоминают (с помощью миллионов хомячков у которых жопа в огне) и делают инструменты (даже если это антивирус_димы_пупкина который не помогает))
(в плане безопасности конкретной программы - линукс конешно лидирует)
Угу куча дыр для работы других программ так безопасно :) Особенно эти дыры любят юзать антивирусы. Например Касперыч встраивается в Проводник(с)(ТМ) и ядро и обитает там как честный вирус :)
> Угу куча дыр для работы других программ так безопасно :) Особенно эти
> дыры любят юзать антивирусы. Например Касперыч встраивается в Проводник(с)(ТМ) и ядро
> и обитает там как честный вирус :)//оффтоп
это полезная бифидобактерия, всё как у человеков - если неприлично разожрётся или пролезет в нетипичные условия - будет мешаться
Ну не знаю ... В чём различие в безопасности конкретного юзверя в винде и линуксах ?
И почему в винде лучше ? В антивирусах ?Вопрос-то в другом, что все попытки сделать жизнь юзверю проще, уменьшают безопасность.
> Ну не знаю ... В чём различие в безопасности конкретного юзверя в
> винде и линуксах ?
> И почему в винде лучше ? В антивирусах ?различие в том что в винде антивирь тебе человеческим голосом молвит "программулина хочет открыть файло, разрешить ?" (ну если его через очередную дырку в винде не вырубят раньше) а в лине тыжадмин, сам найди что очередной дистрибостроитель захреначил для кеширования рисунков со вставленной флешки и найди ппашечку с обновлёнными гстримерами
что лучше для пользователя - таки вопрос
> ам найди что очередной дистрибостроитель захреначил для кеширования рисунков со вставленной флешкиС этого момента поподробнее. Насколько я знаю, пока иксы не создадут пиксмап он не загрузится в память и не останется там до его выгрузки.
> "программулина хочет открыть файло, разрешить ?"А потом такой юзер прибегает к тебе и говорит, что разрешил и у него что-то сломалось! В линуксе проще права разграничить, если знать что делать, и тогда таких юзеров станет меньше.
>> ам найди что очередной дистрибостроитель захреначил для кеширования рисунков со вставленной флешки
> С этого момента поподробнее. Насколько я знаю, пока иксы не создадут пиксмап
> он не загрузится в память и не останется там до его
> выгрузки.в новости и на разборке метаинформации обжигаются, без всяких иксов
всегда есть несколько способов сделать что-то, особенно учитывая что ваше "что-то" и "что-то" очередного дистрибостроителя могут быть одинакого фенотипа, но принадлежать к разным царствам живых существ
Ненене, давай ты не будешь уходить от ответа :) Пруф можно, интересно же :) Я вот тоже недавно задался вопросом, а как иксы кешееируют изображения, но найти ничего путного не смог.
> Ненене, давай ты не будешь уходить от ответа :) Пруф можно, интересно
> же :) Я вот тоже недавно задался вопросом, а как иксы
> кешееируют изображения, но найти ничего путного не смог.нет, увы тут я не могу тебе помочь, не знаю
> различие в том что в винде антивирь тебе человеческим голосом молвит "программулина хочет открыть файло, разрешить ?"По-вашему, это безопасность?
>> различие в том что в винде антивирь тебе человеческим голосом молвит "программулина хочет открыть файло, разрешить ?"
> По-вашему, это безопасность?а по вашему безопасность с другой стороны баррикад ? у вас под убунточкой есть программочка которая скажет "вай, плеер полез в папочку "банковские операции" файлики пощупать" ?
>>> различие в том что в винде антивирь тебе человеческим голосом молвит "программулина хочет открыть файло, разрешить ?"
>> По-вашему, это безопасность?
> а по вашему безопасность с другой стороны баррикад ? у вас под
> убунточкой есть программочка которая скажет "вай, плеер полез в папочку "банковские
> операции" файлики пощупать" ?Есть программуличка которая не даст плееру их пощупать. Вот и все.
>>>> различие в том что в винде антивирь тебе человеческим голосом молвит "программулина хочет открыть файло, разрешить ?"
>>> По-вашему, это безопасность?
>> а по вашему безопасность с другой стороны баррикад ? у вас под
>> убунточкой есть программочка которая скажет "вай, плеер полез в папочку "банковские
>> операции" файлики пощупать" ?
> Есть программуличка которая не даст плееру их пощупать. Вот и все.правда есть или "у нас есть ТАКИЕ(!!!) программы, но вам мы их не покажем" ?
как же в новости калькулятор то запустили ? или это такой специальный "небанковский" калькулятор для доступа из плеера ?
> различие в том что в винде антивирь тебе человеческим голосом молвит "программулина хочет открыть файло, разрешить ?"Ты похоже даже близко не представляешь сколько вызовов open делает не-helloworld программа при своей нормальной работе. Заманаешься разрешать.
Но для таких как ты есть линукс версии популярных антивирусов.
>> различие в том что в винде антивирь тебе человеческим голосом молвит "программулина хочет открыть файло, разрешить ?"
> Ты похоже даже близко не представляешь сколько вызовов open делает не-helloworld программа
> при своей нормальной работе. Заманаешься разрешать.
> Но для таких как ты есть линукс версии популярных антивирусов.представляю
откройте для себя "вилдкарты" и "регэкспы" создаваемые с помощью юзерфрендли-гуи-интерфейса
а так же предсозданные правила на системдефолтные файлы
И будет разрешить всё или не разрешить ничего.
> Ну не знаю ... В чём различие в безопасности конкретного юзверя в
> винде и линуксах ?В винде некоторые дыры не закрывают. В Wendoz 10, не удивлюсь, есть куча дыр ещё со времён XP. А всё из-за софта, который этими дырами успешно пользуется. Как я уже писал выше - те же антивирусы.
> А всё из-за софта, который этими дырами успешно пользуется.Вовсе не из-за софта.
Просто риск от исправления больше, чем проблемы от дыры.К примеру, если у десяти пользователей "все работает", а у трёх проблемы,
то выпустят костыль для трёх (чтоб не напрягять десятерых).А потом из-за этой же дыры проблемы ещё у трёх - и для них костыль (чтоб не напрягать беспроблемных и тех у кого уже есть костыль).
И так, постепенно, все будут с костылями.Если же проблемы у десятерых, а у трёх нет, то дыру пофиксят.
А исправляя дыры, которые клиентов не трогают - получишь в конце года вместо 100% бонуса, только 70% (а то и 50%).
> Вовсе не из-за софта.Из-за него. В новых версиях специально эмулируют баги для старого софта.
Талантливый парень, и в кино снимается, и уязвимости находит.
Напомнило анекдот про хакера и солонку. В итоге, видео придётся запускать в контейнере на 64-ядерном процессоре чтобы все системы анализа и защиты от опасного контента не тормозили просмотр.
> Напомнило анекдот про хакера и солонку. В итоге, видео придётся запускать в
> контейнере на 64-ядерном процессоре чтобы все системы анализа и защиты от
> опасного контента не тормозили просмотр.//оффтоп
тяжело жить без всепланетной реморализации (и принудительной!) :(
> фундаментальные проблемы в организации работы с новыми файлами в GNOMEСоздание программ "для дeбилов" ещё ни к чему хорошему не приводило. Плохо будет и дeбилам и всем остальным.
> Создание программ "для дeбилов" ещё ни к чему хорошему не приводило.Просто попытка оградить админов от криков юзеров, что у них что-то там не работает.
watПотом по факту крики всё равно есть, но в добавок сам админ не знает из-за чего, потому что проблема не воспроизводится, "я ничего не делал, оно само упало". И что самое смешное, оно действительно "само".
Можно ли решить проблему огораживанием программ, автоматически создающих превьюшки?
Например, Apparmor-правило для PDF-читалки Evince огораживает evince-thumbnailer.
Есть ffmpeg-thumbnailer, стало быть, и его можно огородить.
Этот функционал надо не огораживать, а отрывать наxер в плагины. Кому надо - пусть явно включают.
Сгенерировал профиль Apparmor для файлового менеджера Caja в Debian Wheezy.На PDF-ках и видосах запускаются /usr/bin/atril-thumbnailer и /usr/bin/ffmpegthumbnailer соответственно. Тот же Apparmor может запретить им запускать что не нужно и лезть куда не следует. На фотках отдельный thumbnailer не используется, но можно принудить Caja не делать лишнего.
# Last Modified: Thu Nov 24 13:07:12 2016
#include <tunables/global>/usr/bin/caja flags=(complain) {
#include <abstractions/base>
#include <abstractions/fonts>
#include <abstractions/freedesktop.org>
#include <abstractions/nameservice>
deny /home/andrey/.bash_history r,
deny /home/andrey/.bash_logout r,
deny /home/andrey/.bash_profile r,
deny /home/andrey/.bashrc r,
deny /home/andrey/.dmrc r,
deny /home/andrey/.galculator r,
deny /home/andrey/.gemrc r,
deny /home/andrey/.gitconfig r,
deny /home/andrey/.gitk r,
deny /home/andrey/.gksu.lock r,
deny /home/andrey/.gnome-rdp.db r,
deny /home/andrey/.hugin r,
deny /home/andrey/.irb-history r,
deny /home/andrey/.isomaster r,
deny /home/andrey/.jackdrc r,
deny /home/andrey/.jigdo-lite r,
deny /home/andrey/.lesshst r,
deny /home/andrey/.mkshrc r,
deny /home/andrey/.mtpaint r,
deny /home/andrey/.my.cnf r,
deny /home/andrey/.mysql_history r,
deny /home/andrey/.netrc r,
deny /home/andrey/.node_repl_history r,
deny /home/andrey/.pgadmin3 r,
deny /home/andrey/.pgpass r,
deny /home/andrey/.profile r,
deny /home/andrey/.psql_history r,
deny /home/andrey/.ptbt1 r,
deny /home/andrey/.pulse-cookie r,
deny /home/andrey/.rediscli_history r,
deny /home/andrey/.sqlite_history r,
deny /home/andrey/.viminfo r,
deny /home/andrey/.vimrc r,
deny /home/andrey/.xinitrc r,
deny /home/andrey/.xsession-errors r,
deny /home/andrey/.zlogin r,
deny /home/andrey/.zshrc r,/bin/ls rix,
/etc/udev/udev.conf r,
/home/*/ r,
/home/*/.ICEauthority r,
/home/*/.Xauthority r,
/home/*/.Xdefaults r,
/home/*/.Xresources r,
/home/*/.cache/dconf/user rw,
/home/*/.config/caja-actions/* r,
/home/*/.config/caja/** rw,
/home/*/.config/dconf/user r,
/home/*/.config/user-dirs.dirs r,
/home/*/.fontconfig/* r,
/home/*/.gtk-bookmarks r,
/home/*/.icons/** r,
/home/*/.local/share/ r,
/home/*/.local/share/file-manager/** r,
/home/*/.local/share/gvfs-metadata/* r,
/home/*/.local/share/icons/** r,
/home/*/.local/share/mime/* r,
/home/*/.themes/** r,
/home/*/.thumbnails/** rw,
/home/*/1024x768.xbs r,
/home/*/1280x1024.xbs r,
/home/*/1280x1024_downloads.xbs r,
"/home/*/1C passwords" r,
/home/*/Desktop/ r,
/home/*/Desktop/** r,
/home/*/Templates/ r,
/home/*/base64 r,
/home/*/draggable-on-press.html r,
/home/*/mbox r,
/home/*/os r,
/home/*/preseed-jessie.cfg r,
/home/*/snapshots r,
/home/*/test-res.html r,
/home/*/Изображения/ r,
/home/*/Изображения/** r,
"/home/*/Пароль режима восстановления служб каталогов:" r,
/media/workspace/ r,
/media/workspace/** r,
/proc/*/fd/ r,
/proc/*/mountinfo r,
/proc/*/mounts r,
/proc/filesystems r,
/run/udev/data/* r,
/sys/devices/** r,
/tmp/.mate_desktop_thumbnail.* rw,
/usr/bin/atril-thumbnailer Ux,
/usr/bin/caja mr,
/usr/bin/ffmpegthumbnailer Ux,
/usr/lib{,32,64}/** mr,
/usr/local/gimp247/share/applications/* r,
/usr/local/share/ r,
/usr/local/share/applications/* r,
/usr/local/share/mime/ r,
/usr/share/ r,
/usr/share/caja/** r,
/usr/share/glib-2.0/schemas/* r,
/usr/share/gvfs/remote-volume-monitors/ r,
/usr/share/gvfs/remote-volume-monitors/* r,
/usr/share/mime/ r,
/usr/share/themes/** r,
/usr/share/thumbnailers/ r,
/usr/share/thumbnailers/atril.thumbnailer r,
/usr/share/thumbnailers/mate-ffmpegthumbnailer.thumbnailer r,
/usr/share/thumbnailers/mate-font-viewer.thumbnailer r,}
Ты даже не понимаешь в чём проблема.
Так объясни.
> Так объясни.Давай я попробую объяснить.
Ты файловый менеджер для чего используешь?
Как apparmor/SELinux может "понять" что это ты "ткнул мышкой", "нажал клавиши",
а не сам файловый менеджер пытается что-то скопировать или запустить?
>> Так объясни.
> Давай я попробую объяснить.
> Ты файловый менеджер для чего используешь?
> Как apparmor/SELinux может "понять" что это ты "ткнул мышкой", "нажал клавиши",
> а не сам файловый менеджер пытается что-то скопировать или запустить?а часто вы с бина файловым менеджером программы запускаете ? и какие ?
или часто вы с бина копируете ? это в общем, в частности скриптик может отслеживать такие вещи и выдавать всплывашку "вы ли за баранкой этого пылесоса ?"
> а часто вы с бина файловым менеджером программы запускаете ? и какие ?Прикинь - часто. Кнопачка "открыть с помощью" контекстного меню.
mpv, например, не умеет перехватывать ассоциации файлов, поэтому по дефолту видео запускается через какое-то убогое подeлие от DE. При установке вайна наоборот - ассоциации корёжит так, что даже txt начитают открываться через "блокнот".
Это только один из случаев, когда такое может потребоваться.
Может, я чего-то недопонимаю, но в Apparmor работает так:
открываю я "огороженным" файл-менеджером (Caja) графический файл, Caja запрашивает выполнение программы-смотрелки для этого файла; открываю PDF-файл, Caja запрашивает выполнение PDF-смотрелки. Запуск любой внешней программы контролируется Apparmor, и происходит, только если явно разрешн.
Если при попытке открыть JPG-файл попробует запуститься калькулятор, Apparmor не позволит это сделать и запротоколирует.Или вы хотите сказать, что при манипуляциях с памятью, всяких переполнениях буфера несанкционированный запуск программ происходит не от имени родительского процесса и т.о. уходит от контроля?
> Может, я чего-то недопонимаю, но в Apparmor работает так:
> открываю я "огороженным" файл-менеджером (Caja) графический файл, Caja запрашивает выполнение
> программы-смотрелки для этого файла; открываю PDF-файл, Caja запрашивает выполнение PDF-смотрелки.
> Запуск любой внешней программы контролируется Apparmor, и происходит, только если явно
> разрешн.
> Если при попытке открыть JPG-файл попробует запуститься калькулятор, Apparmor не позволит
> это сделать и запротоколирует.
> Или вы хотите сказать, что при манипуляциях с памятью, всяких переполнениях буфера
> несанкционированный запуск программ происходит не от имени родительского процесса и т.о.
> уходит от контроля?он хочет сказать что аппармор будет не в курсе что вы пытаетесь открыть жпг а у вас от этого запустился калькулятор, более того - вы можете быстробыстро открыть жпг на просмотр и запустить калькулятор ручками самостоятельно - для апармора это будет смотреться одинаково с "файлменегер при считывании информации картинки поломалося и запустил калькулятор"
> он хочет сказать что аппармор будет не в курсе что вы пытаетесь открыть жпг а у вас от этого запустился калькуляторApparmor работает по белому списку. Калькулятор не является обработчиком JPG-файлов, никто его в белый список прог, которые может запускать файл-менеджер, не внесёт. Т.о. Apparmor-у не нужно знать, какие файлы щёлкает пользователь.
Другое дело, что Apparmor-профили для файл-менеждеров по умолчанию отсутствуют.
Курс лекций "Инженерный подход и основы разумной разработки ПО" - платный, 1000р/час, рассчитан на 40 часов. Первая лекция "Костыли как система мировоззрения и почему это тупиковый путь".Нищим не подаю.
Ответ разработчиков: Да успокойтесь, линуксами все равно никто не пользуется, включая нас.