LINUX.ORG.RU

Linux sandboxing

 , ,


1

3

Тут недавно был тред про песочницы, но там обсуждалась реализация (что-то в духе, почему в бсд так, а в линуксе не так).

У меня практический вопрос: что сейчас используется для sandboxing'а? Задача проста: есть недовереннные приложения (бинарники из левых источников). Надо запустить их, обеспечивая максимальную безопасность с минимальными затратами. Вариант - не запускать левые бинариники не подходит.

★★

Последнее исправление: maverik (всего исправлений: 1)

Firejail стар и скорее мёртв, чем жив.
Я советую Bubblewrap - проще некуда. Если нужно что-то посложнее (и посекурнее) - непривилегированный LXC.

gasinvein ★★★
()
Ответ на: комментарий от gasinvein

Я бы предпочел посекурнее. Значит LXC. А если docker (вроде он полегче)? Я знаю, что он не задумывался, как песочница, поэтому неуверен, насколько он полезен в этом качестве.

maverik ★★
() автор топика
Ответ на: комментарий от maverik

ИМХО, докер сложнее в обращении, и ещё сложнее для графических приложений.

вроде он полегче

Нет, совсем наоборот.

gasinvein ★★★
()
Последнее исправление: gasinvein (всего исправлений: 1)

chroot в gentoo-hardened ядре

бинарники из левых источников

безопасность

qemu без аппаратной виртуализации, но это менее безопасно чем bochs и прочие подобные

anonymous
()
Ответ на: комментарий от anonymous

gentoo-hardened ядре

Ну я же просил попроще.

qemu без аппаратной виртуализации, но это менее безопасно чем bochs и прочие подобные

Почему?

maverik ★★
() автор топика
Ответ на: комментарий от Jopich1

Слишком тяжело (по сис. требованиям) и по удобству. Запускать виртуалку каждый раз, когда надо запустить что-то недоверенное не очень удобно. Я уверен, есть решения поудобнее.

maverik ★★
() автор топика
Последнее исправление: maverik (всего исправлений: 1)
Ответ на: комментарий от maverik

Выбора особо нет. Либо виртуалка, либо контейнеры. На текущий момент третьего ещё не придумали.

anonymous
()
Ответ на: комментарий от maverik

https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=kvm

https://www.cvedetails.com/vulnerability-list/vendor_id-7506/opec-1/Qemu.html

execute arbitrary code on the host

ну ты понял, высокая производительность достигается только путём значительного снижения надёжности и безопасности, и kvm особо славится простотой эксплуатации уязвимостей на хосте (хотя и без этого дыр достаточно) — годами исправляют, исправляют, и никак не исправят.

Не исключено, что и проплатили спецслужбы для себя.

anonymous
()

QubesOS, с чистой AppVM. Безопаснее контейнеров и удобно.

anonymous
()

Я Д'Артаньян, а вы ничего не понимаете

что сейчас используется для sandboxing'а?

Смотря чего.

Задача проста: ... Надо ... максимальную ... с минимальными затратами.

Лизни розетку.

есть недовереннные приложения (бинарники из левых источников).

Либо вируальные машины, либо контейнеры. Все эти ваши сраные lxc, докеры, фаерджейлы и прочая контейнерота в линуксе построены вокруг namespaces, cgroups и seccomp. Вся их безопасность концептуально ничем не отличается и зависит только от количества багов, которые их авторы допустили. Рулетка короче.

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

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

Зы: Макском, сцуко, прикрути нормальную капчу.

anonymous
()
Ответ на: Я Д'Артаньян, а вы ничего не понимаете от anonymous

построены вокруг namespaces, cgroups и seccomp.

Вся их безопасность ... зависит только от количества багов, которые их авторы допустили

Сам себе противоречишь. Безопасность обеспечена механизмами в ядре, но зависит от багов в прикладных утилитах.

gasinvein ★★★
()
Последнее исправление: gasinvein (всего исправлений: 1)
Ответ на: комментарий от gasinvein

Безопасность обеспечена механизмами в ядре, но зависит от багов в прикладных утилитах.

Если прикладные утилиты херово заюзают механизмы в ядре, то вся безопасность - пшик.

anonymous
()
Ответ на: комментарий от gasinvein

И как же, например, можно хреново заюзать пространство имён пользователей?

Например можно очепятаться и не заюзать его вообще.

anonymous
()
Ответ на: комментарий от gasinvein

То же, что и «не заюзать его вообще», только не заюзать вообще ничего.

Ну попробуй, только файловую систему заизолируй, а остальное оставь. Потом расскажешь, сколько опрошенных заметило подвох.

anonymous
()
Ответ на: комментарий от gasinvein

Firejail стар и скорее мёртв, чем жив.

21 час назад последний коммит был сделан. Ты поехавший?

Quasar ★★★★★
()
Ответ на: комментарий от maverik

Если хочешь совсем, то виртуальную машину ставь и обмазывай патчами против Meltdown и Spectre. И то гарантии никакой не будет, так как в процессорах может быть ещё куча неизвестных широкому кругу лиц уязвимостей.

Quasar ★★★★★
()
Ответ на: комментарий от maverik

Собственно, Docker - это костыли над LXC. Так что да - тоже имеет.

Quasar ★★★★★
()
Ответ на: комментарий от maverik

В виртуалке проверяешь, доверенное или нет. Потом как доверенное пускаешь в основной системе. Можешь через qemu-user попробовать запускать.

Quasar ★★★★★
()
Ответ на: комментарий от maverik

Контейнеры хороши для разграничения честных и доверенных приложений. Для недоверенных тебе нужна виртуализация, а ещё лучше - эмуляция.

Quasar ★★★★★
()
Ответ на: комментарий от maverik

У bochs преимущество в том, что это эмулятор. Надо специально под него под писать и выискивать в нём уязвимости для того, чтобы пробиться в хост. Недостаток в том, что он далеко не всё поддерживает, поэтому придётся идти на компромисс и использовать qemu, который, кстати, тоже эмулировать умеет, но быстрее. Qemu как раз как быстрый эмулятор и создавался, а потом к нему модуль kqemu для виртуализации прикручивали.

Quasar ★★★★★
()
Ответ на: Я Д'Артаньян, а вы ничего не понимаете от anonymous

В иксах там были какие-то заморочки, что они могут читать весь клипборд и всю клавиатуру.

firejail уже научился и это ограничивать.

Как оно в вяленде - поттеринг его знает.

Даунята, которые делают вяленого, так уверены в тотальной изоляции своего высера, что пропустили мимо себя рабочую реализацию кейлоггера для вяленого.

В фаерджейле эту проблему решали отдельными иксами, но я в этом не копенгаген.

Не совсем, но близко. Проблема решена с помощью Xpra.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

В виртуалке проверяешь, доверенное или нет

Сложна. Сразу так не скажешь - нормальное или нет. Оно может заявленную функцию свою выполняет, а параллельно тащит файлы из системы или перехватывает клавиатуру. Мне теперь forensic analysis для каждого приложения делать? Этак я до конца жизни сидеть буду.

Я просто хочу по-умолчанию подозрительные (не из реп) приложения всегда запускать в песочнице. И не важно, «хорошие» они или нет. К тому же, приложение может быть «хорошим» (фф, например), но через дыры в нем могут тебя поиметь. Такие тоже лучше изолированно запускать.

maverik ★★
() автор топика
Ответ на: комментарий от gasinvein

Firejail стар и скорее мёртв, чем жив.

Я, кстати, пожел к ним в жыдхаб, и, судя по коммитам, они живы.

maverik ★★
() автор топика

И в догонку узнал, что

1. Во фряшечке есть jail из коробки (и, судя по описанию, довольно хороший, особенно в сочетании с zfs)

2. В debian, который я использую, не завезли LXD (пилят), а LXC - второй версии (тоже в процессе обновления, емнип).

3. В OpenBSD, как я понял, почти ничего не завезли, что прискорбно - хотел попробовать на одной машине.

maverik ★★
() автор топика
Последнее исправление: maverik (всего исправлений: 1)
Ответ на: комментарий от maverik

К тому же, приложение может быть «хорошим» (фф, например), но через дыры в нем могут тебя поиметь. Такие тоже лучше изолированно запускать.

Apparmor.

Для действительно потенциально вредоносных программ только виртуалка.

Vigi
()
Ответ на: комментарий от maverik

Тред до конца не дочитал, но попробуй вагрант, оно реально удобно.

Поднимается одной командой.

PunkoIvan ★★★★
()
Ответ на: комментарий от Vigi

Если только под чрутом, под неймспейсами, в виртуалке, с селинуксом (хотя не, это nsa и шапка — они не trustworthy, как это принято говорить) где-нибудь сбоку и на hardened ядре. Сами по себе все эти защиты обходятся достаточно тривиально и стоимость их пробития не очень высока. Чем дороже пробить защиту, тем меньше вероятность, что кто-нибудь найдёт это целесообразным. Вроде даже раньше виртуалки пробивала каждая вторая малварь.

anonymous
()
Ответ на: комментарий от Vigi

Apparmor

firejail, вроде, поддерживает профили apparmor.

Для действительно потенциально вредоносных программ только виртуалка.

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

maverik ★★
() автор топика
Ответ на: комментарий от maverik

firejail, вроде, поддерживает профили apparmor.

Как поддержка на случай, если firejail окажется дыряв, я особо не пользовался, потому что лень было ковыряться, но на первый взгляд сделано не удобно.

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

Собирай всё что собирается сам. А не тащи непонятные бинарники из интернетов.

Я у себя на системе полигон не устраиваю, потому виртуалки редко запускаю, но всякую «доверенную» проприетарщину и программы типа браузера огораживаю двумя способами: если это что-то на разок запустить и удалить, либо если это игры, которые надолго не задержатся, то запускаю в firejail, если это что-то что в системе задержится, то огораживаю apparmor.

Плюс firejail для игр ещё в том, что в нём легко настроить другую огороженную директорию в качестве хомяка, а потому все сохранения и настройки хранятся в этой отдельной директории, а не засирают стандартный хомяк.

Vigi
()
Ответ на: комментарий от maverik

Во фряшечке есть jail из коробки (и, судя по описанию, довольно хороший, особенно в сочетании с zfs)

Ты если solaris zones попробуешь, вообще прифигеешь от сочетания с zfs, fma, smf и ко.

anonymous
()
Ответ на: комментарий от anonymous

Можно ли её ставить на рабочую станцию частному лицу сейчас? В порядке освоения стека технологий естественно. Или придётся лицензию покупать? А то линукс катится куда-то не туда.

anonymous
()
Ответ на: комментарий от anonymous

Ну я вот думаю, если линукс совсем укатится, можно перезжать на фряшку (хотелось бы на опенок, но там плохо с дарйверами и виртуализацией).

maverik ★★
() автор топика
Ответ на: комментарий от anonymous

Да, можно. OpenIndiana как альтернатива.

anonymous
()
Ответ на: комментарий от maverik

Мне теперь forensic analysis для каждого приложения делать? Этак я до конца жизни сидеть буду.

Тогда меняй свой подход к доверию софту. Другого пути нет.

Quasar ★★★★★
()
Ответ на: комментарий от Vigi

если firejail окажется дыряв

Firejail - это обёртка над имеющимися механизмами изоляции. Так что тут по сути надежда на то, что эти механизмы не будут дырявыми. Так что там всё скорее как поддержка на всякий случай.

Quasar ★★★★★
()
Ответ на: комментарий от Vigi

Flatpak - это бессмысленные чудовище Франкенштейна. Защищает ничуть не лучше остальных средств. Да и тот же AppImage поддерживает firejail.

Quasar ★★★★★
()
Ответ на: комментарий от maverik

На фряхе всегда всё было плохо и всегда будет так. На опёнке вообще считай, что ничего нет и не будет.

Quasar ★★★★★
()

Надо запустить их, обеспечивая максимальную безопасность с минимальными затратами.

чрут в помощь

ya-betmen ★★★★★
()
Ответ на: комментарий от gasinvein

Firejail стар и скорее мёртв, чем жив.

На днях была новая версия, профилей ещё добавили вагон.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.