é uma ferramenta ou talvez uma máquina virtual para executar um executável dentro dele
Sim, isso se chama Virtualização de aplicativos .
O LXC (Linux Containers) é uma ferramenta comumente usada para configurar isso. Ele permite que você configure uma rede completamente separada para este aplicativo e o coloca em uma espécie de máquina virtual, muito parecida com um chroot. Isto é principalmente para fins de segurança (uma "cadeia"), não para auditar.
Acho que é um pouco fora do escopo da pergunta explicar os contêineres completos do LXC, bem como fazer uma auditoria exata. Abaixo está um pouco sobre como começar, no entanto.
Enquanto o programa está rodando, eu quero ver tudo o que o executável está fazendo (acesso a arquivos e rede).
Isso pode ser feito usando strace
e eu fiz a mesma pergunta no Unix e Linux:
- Como monitoro arquivos abertos de um processo em tempo real? (também abrange rede)
Como respondeu lá, basicamente se trata
strace -t -e trace=open,close,read,getdents,write,connect,accept command-here
Importante: uma vez que você vê isso acontecendo, o dano já ocorreu.
Contêiner de aplicativos LXC
De este artigo . Tudo se resume a:
-
lxc-macvlan.conf
arquivo de configuração:# example as found on /usr/share/doc/lxc/examples/lxc-macvlan.conf # Container with network virtualized using the macvlan device driver lxc.utsname = alpha lxc.network.type = macvlan lxc.network.flags = up lxc.network.link = eth0 # or eth2 or any of your NICs lxc.network.hwaddr = 4a:49:43:49:79:bd lxc.network.ipv4 = 0.0.0.0/24
-
Inicie usando
lxc-execute
:sudo lxc-execute -n bash-test2 -f lxc-macvlan.conf /bin/bash
Observe que o LXC oferece o tipo de contêiner do sistema e do aplicativo. Você está procurando por contêineres de aplicativos aqui.