🥷
Red Team Articles
Linktree
  • ⚙️Binary Exploitation
    • PWN com 1 byte
    • GOT e PLT
    • Hook na GOT
  • 🌐Web
    • Mysql Case Sensitive Problems
    • Ruby: regex authentication bypass
    • CVE-2023-38964
  • 📲Mobile
    • 🍎iOS Pentest
      • 🤖How to use Frida on iOS 17 without Jailbreak
      • 💻Setup Lab
      • 📦Insecure Data Storage
        • Dump keychain datas
      • 🔙Server Side Vulnerabilities
        • Setup Proxy
        • Pentest on Server Side
      • ⚙️Client Side Vulnerabilities
        • Account theft
        • Insecure Logging
      • 🖱️Pasteboard & Clipboard
    • 🤖Android Pentest
      • AB - Android Backup
  • 🐳Docker
    • 🚪Backdooring docker container
    • 🪜Docker breakout
      • docker.sock
      • privileged flag
      • environments
    • 🏎️Docker assessment
      • Assessment with trivy
      • Assessment with docker bench security
    • 🛡️Defenses
      • AppArmor
      • SecComp
      • Capabilities
      • Docker content trust
    • 📖Namespaces
  • 🖥️SSH Tricks
  • Network
    • VPN WireGuard com pfSense + RestAPI
Powered by GitBook
On this page
  • Apresentação
  • Implementation
  • Conclusão
  1. Docker
  2. Defenses

AppArmor

PreviousDefensesNextSecComp

Last updated 2 years ago

Apresentação

apparmor é um módulo de segurança do linux que permite restringir certas atividades na máquina logado com tal usuário.

AppArmor pode ser usado para o host linux também, assim como podemos implementar ele no nosso contêiner

Implementation

AppArmor profile são os arquivos de configurações que o linux irá ler para aplicar as regras, você pode ver como esses arquivos podem ser criados

#include <tunables/global>
profile apparmor-profile flags=(attach_disconnected,mediate_deleted) {
  #include <abstractions/base>
  file,
  network,
  capability,
  deny /tmp/** w,
  deny /etc/passwd rwklx,
}

No meu caso estarei utilizando essa regra para demonstração, o que ela faz:

  • Não permite a criação de escrita no diretório /tmp/

  • Não permite o acesso ao arquivo /etc/passwd

Primeiro vamos carregar o profile no sistema com o comando:

sudo apparmor_parser -r -W <APPARMOR_PROFILE_FILE>

Logo após podemos utilizar a flag --security-opt com o argumento indiciando que a opção de segurança será o apparmor

docker run -it --rm --security-opt apparmor=<APPARMOR_PROFILE_FILE> <IMAGE_NAME> sh

Conclusão

Conseguimos com o auxilío de módulos de segurança do kernel do linux implementar mais segurança para o nosso contêiner, utilizando regras para permitir certas execuções no contêiner.

🐳
🛡️
aqui