Может ли apparmor ограничивать интерпретируемые языки?

Для интерпретируемых языков / vm (например, python, java, shell-скрипты) можно установить apparmor так, чтобы он ограничивал только определенный скрипт или программу? Если да, то как?

7
задан 16.04.2020, 22:08

2 ответа

Ну, на самом деле использование «/usr/bin/python2.7 ix» не очень хорошая идея. Поскольку эксплуатируемый код может выполнять python из оболочки, например: python -c 'некоторый злой код'. Это определенно не то, что вы хотите, и полностью нарушает концепцию песочницы (что такое apparmor)

#include <tunables/global>

/home/sam/myapp flags=(complain) {
  #include <abstractions/base>


  /home/sam/myapp r,
  /usr/bin/python2.7 Cx -> trusted_domain,

  profile trusted_domain {

   #include <abstractions/....>

   #include <abstraction/python>
   ... your policy for data, logs, connections, python files...
  }

}
0
ответ дан 16.04.2020, 22:08

Да, это возможно. Он также используется в Ubuntu, особенно по телефону.

Чтобы получить базовый скрипт apparmor, вы можете использовать aa-autodep из пакета apparmor-utils.

Быстрый пример для python:

cat >> ~/myapp << EOF
#! /usr/bin/python
EOF

sudo aa-autodep ~/myapp

cat /etc/apparmor.d/home.<user-name>.myapp

Это даст вам что-то вроде:

# Last Modified: Mon Feb 24 18:31:50 2014
#include <tunables/global>

/home/sam/myapp flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/python>

  /home/sam/myapp r,
  /usr/bin/python2.7 ix,

}

Тогда вы можете расширить это.

0
ответ дан 16.04.2020, 22:09

Теги

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