O apparmor pode restringir as linguagens interpretadas?

7

Para linguagens interpretadas / vm (por exemplo, scripts python, java, shell) pode aparacer ser definido para confinar apenas um script ou programa específico? Se sim, como?

    
por Ian N 19.10.2013 / 04:32

2 respostas

2

Sim, é possível. Ele também está em uso no Ubuntu, especialmente no telefone.

Para obter um script básico do apparmor, você pode usar aa-autodep do pacote apparmor-utils.

Exemplo rápido para python:

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

sudo aa-autodep ~/myapp

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

Isso lhe dará algo como:

# 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,

}

Então você pode expandir isso.

    
por labsin 24.02.2014 / 18:38
1

Bem, realmente usar '/usr/bin/python2.7 ix' não é uma boa ideia. Como o código explorado pode executar o python a partir do shell, por exemplo: python-c 'algum código maligno'. Definitivamente não é o que você quer e quebra totalmente o conceito sandbox (o que é o 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...
  }

}
    
por Yurii Oleynikov 30.07.2017 / 21:59