Насколько легко разработчику «изолировать» программу?=news.ycombinator.com=

Насколько легко разработчику «изолировать» программу? ( bsd.lv )

PhilippGille 17 минут назад | [–]
В другом комментарии уже упоминался Chromium. В похожем баулбарке я бы упомянул Deno для запуска TypeScript/JavaScript в песочнице, которой нужно дать явное разрешение на файловую систему и сетевой доступ [1].

Вероятно, следует упомянуть и WebAssembly [2].

[1] https://docs.deno.com/runtime/fundamentals/security/

[2] Существуют разные среды выполнения, вот одна из них: https://docs.wasmtime.dev/security.html

dgellow 12 минут назад | | [–]
Я игрался с deno в течение последних недель. Это определенно интересный проект. Однако я нахожу, что системе разрешений не хватает той детализации, которую я хотел бы. Вы быстро оказываетесь в состоянии «все или ничего», где я бы действительно хотел вместо этого различать код, который я считаю надежным, и код, который я считаю рискованным.

Тем не менее, довольно аккуратно, и я понимаю, где буду использовать это в будущем.

simonw 53 минуты назад | | [–]
Ситуация с macOS просто удручающа. sandbox-exec / seatbelt помечены как устаревшие почти десять лет назад (с macOS Sierra в 2016 году), но все по-прежнему используют их — вот OpenAI использует их для своего нового Codex CLI: https://github.com/openai/codex/issues/215

Может быть, новые “контейнеры” в macOS 26 станут хорошей заменой? Хотя, похоже, это другое решение.

Все, что мне нужно, это простой, документированный, поддерживаемый способ запустить двоичный файл на моем компьютере и сказать: «он может получить доступ только к этим файлам, использовать столько-то оперативной памяти и не может делать никаких исходящих сетевых запросов». Меня всегда удивляло, насколько это сложно!

paulddraper 31 минут назад | | [–]
Согласен, macOS здесь отстает от всех остальных ОС.

Самое простое решение — отказаться от этого и использовать Linux (Docker).

throwaway290 44 минуты назад | | | [–]
Я использую Docker для этого. Песочница неэффективна. Например, если вы запустите Firefox с профилем “deny network”, вы все равно сможете просматривать веб-страницы как обычно.
jbverschoor 4 минуты назад | | | [–]
то же самое.. Я использую https://github.com/jrz/container-shell для запуска нового образа Debian+Tools в текущем каталоге, но при этом он позволяет мне легко открывать несколько терминалов для одного и того же экземпляра.

shell my:sandbox Я также использую sandbox-exec с ограничениями по pwd, в зависимости от того, что я хочу выполнить.

jbverschoor 6 минут назад | | [–]
На самом деле это не имеет значения, если:

1) Разработчики отмечают «каждое разрешение»

2) На уровне распределения никаких проверок не происходит.

petermcneeley 1 час назад | | [–]
По понятным причинам хром имеет довольно обширную песочницу. Вы можете прочитать исходный код прямо здесь: https://source.chromium.org/chromium/chromium/src/+/main:con…
bqmjjx0kac 27 минут назад | | [–]
Вот более информативный документ о песочнице в Chromium

https://source.chromium.org/chromium/chromium/src/+/main:san…

simonw 33 минуты назад | | | [–]
Похоже, это подмножество их песочницы, которое применяется к графическим процессорам, файл — content/gpu/gpu_main.cc
hdjrudni 58 минут назад | | [–]
Мне это интересно для предстоящего проекта, но сложность настройки не кажется хорошим способом сравнения этих проектов. Мне нужно знать: (a) могу ли я запустить полностью ненадежный код в этих песочницах? (b) которые позволяют мне отключить сетевой доступ, доступ к файловой системе и ограничить использование ЦП и ОЗУ? т. е. набор функций.

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

user_7832 39 минут назад | | [–]
Tangential: Есть ли хорошие методы для windows/windows software? Hyper V хорош для небольшого кода, но если вы хотите устанавливать программу каждый раз, она устаревает очень быстро. Я бы тоже не хотел доверять случайным файлам из интернета.
ZeroConcerns 1 час назад | [–]
Хотя это и интересно, отсутствие различия между кооперативными и немодифицированными программами в данном случае несколько ослабляет сравнение.

Я имею в виду, что API OpenBSD великолепны и все такое, но большинство разработчиков не будут знать о них и не будут развертывать их на платформе, которая их изначально поддерживает.

И да, супервизоры режима ядра, если они доступны, страдают от непонятных конфигураций, поэтому ясно, что было бы неплохо найти золотую середину (особенно такую, которая применима и к W-среде), но не ясно, заинтересован ли кто-то в этом?

ykonstant 46 минут назад | [–]
Действительно, если вы пытаетесь создать что-то кроссплатформенное и используете специфические API BSD для безопасности, легко получить #ifdef soup в некоторых из самых чувствительных частей вашего кода. Один неверный логический шаг там, и вы скомпрометируете свое приложение, пытаясь его укрепить. Я не знаю решения 🙁


Рассмотрите возможность подачи заявки на набор в YC на осень 2025 года! Заявки принимаются до 4 августа

Source: news.ycombinator.com

Leave a Reply

Your email address will not be published. Required fields are marked *