Самая простая безопасная игра в песочнице (необходимые ограниченные ресурсы)

Debian GNU/Linux имеет ethtool и сетевые инструменты для установки скорости Ethernet.

Пример:

  • узнайте свой NICs:
hwinfo --netcard --short
 network:                                                        
  wlp4s0               Atheros AR928X Wireless Network Adapter (PCI-Express)
  enp5s0               Broadcom NetLink BCM57780 Gigabit Ethernet PCIe
  • узнайте возможные скорости:
ethtool enp5s0
 Settings for enp5s0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
  • можно теперь установить все поддерживаемые режимы как это:
ethtool -s enp5s0 speed 100 duplex full
15
21.12.2014, 19:58
4 ответа

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

С помощью контрольных групп вы можете сделать следующее:

  1. Ограничить использование ядра ЦП до 1 ЦП с помощью подсистемы cpuset
  2. Установить ограничения на использование памяти с помощью подсистемы памяти , отслеживая даже вилы. См. Пример https://github.com/gsauthof/cgmemtime .
  3. Запретить сетевой доступ ко всему, что не на lo , с помощью подсистемы net_prio .

А с помощью SELinux / AppArmor вы можете ограничить доступ процесса для чтения / записи.

Примечание. Я не знаком с AppArmor, но это система обязательного контроля доступа (MAC), а это значит, что защита записи и чтения - это его работа.

Использование этих систем зависит от написания правильных конфигураций. Конечно, все это легче сказать, чем сделать. Итак, вот несколько справочных ссылок, которые помогут вам начать:

Удачи!

1
27.01.2020, 19:50

Я бы отказался от SELinux для AppArmor , только если бы я использовал Ubuntu . (на самом деле довольно сложно)

LXC сам по себе небезопасен. Если вам нужна безопасность, вы должны использовать их через libvirt (на основе SELinux MLS ).

Ваша проблема бесконечна , поэтому не пытайтесь найти какое-либо решение в готовом виде и без бесконечного времени, помните, что даже kernel.org был запущен, а совсем недавно ФБР заявило, что кто-то использовал их системы в течение многих лет и до сих пор не был обнаружен.

Я выберу LXC / libvirt для довольно хорошей безопасности или попробую «новые» прозрачные контейнеры Intel , которые используют очень легкую виртуальную машину для вашего контейнера с понятным использованием из DAX / KSM (я не тестировал их, но они действительно выглядят очень многообещающими).

Если вас беспокоит использование ядра, grsecurity - ваше решение, но вам придется интегрировать его с вашим контейнерным решением (головная боль наверняка).

Это, конечно, непростая задача, LXC / libvirt действительно удобны, но, возможно, лучше использовать чистые контейнеры.

Докер? Я не использовал / не хотел бы использовать докеры для большего, чем локальное тестирование, когда не было доступного бродячего бокса, им нужно больше работы и лучшее сообщество.

Конечно, контейнеры systemd тоже хороши, но я предполагаю, что они вам не нравятся / вы их не хотите, потому что вы даже не упомянули о них, и они не зависят от производителя.

Если вам нужно что-то «попроще» и более любительское, вы можете попробовать firejail , я использовал его для некоторых настольных «приложений», и он выполняет свою работу (довольно легко создать шаблон для вашего пользовательского приложения используйте "частные" монтирования поверх ваших каталогов и ограничьте сеть только для локального использования, порожденные процессы наследуются для родительского и продолжается ...).

Ура и получайте удовольствие, не сходя с ума. ;)

1
27.01.2020, 19:50

Возможно, вы захотите изучить системы грид-вычислений. В частности, BOINC ( http://boinc.berkeley.edu ) проверяет почти все ваши ящики.

Я считаю, что он работает с вашими параметрами как таковыми:

fs: может читать / писать в свой собственный каталог, больше нигде

net: можно настроить только для разрешения сетевого доступа к вашему серверу BOINC, но не t по умолчанию из коробки IIRC

mem: да, отдельные ограничения памяти для простаивающих и не простаивающих машин

cpu: да, можно даже сказать «не запускать, если компьютер не простаивает»

{ {1}}
0
27.01.2020, 19:50

seccomp-bpf - еще один вариант, который хорошо работает для OpenSSH, vsftpd и Chromium. Он имеет только exit(), sigreturn(), read(), но также использует write(), хотя позволяет фильтровать системные вызовы с помощью настраиваемых правил Berkeley Packet Filter. Он также может использоваться в сочетании с cgroups для памяти, cpu и т.д....

https://wiki.mozilla.org/Security/Sandbox/Seccomp

0
27.01.2020, 19:50

Теги

Похожие вопросы