AppArmor from scratch 2

Aus xinux.net
Zur Navigation springen Zur Suche springen

Programm, welches eingeschränkt werden soll

Ein einfaches Programm, welches eine Datei erzeugt, soll so eingeschränkt werden, dass es nur bestimmte Dateien modifizieren darf.

  • apt install gcc apparmor-utils
  • cat /usr/local/bin/schreiber.c
#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;
    FILE *fd;
    for (i = 1; i < argc; i++) {
    fd = fopen(argv[i], "w");
    
    if (fd == NULL) {
        fprintf(stderr, "fopen failed for %s\n", argv[i]);
        return 1;
    }

    fprintf(fd, "Erfolgreich in %s geschrieben\n", argv[i]);
    fclose(fd);
    }

    return 0;
}
  • cd /usr/local/bin
  • gcc schreiber.c -o schreiber
  • cd /root
  • schreiber Testdatei
  • cat Testdatei
Erfolgreich in Testdatei geschrieben.

Programm einschränken

  • sudo aa-genprof /usr/local/bin/schreiber
  • schreiber Testdatei
  • Jetzt Profil einscannen (mit “S”) und generieren und speichern (“S”)
  • sudo aa-enforce usr.local.bin.schreiber

Testen

  • schreiber Testdatei
  • cat Testdatei
Erfolgreich in Testdatei geschrieben.
  • ./schreiber Testdatei2
fopen failed for Testdatei2