Co to jest apparmor?

93

Słyszę wiele rozmów na temat zbroi, chcę wiedzieć, co następuje:

  • Co to jest apparmor?
  • Jak działa apparmor?
Alvar
źródło

Odpowiedzi:

92

Co to jest

Apparmor to system obowiązkowej kontroli dostępu (lub MAC). Wykorzystuje ulepszenia jądra LSM, aby ograniczyć programy do niektórych zasobów. AppArmor robi to z profilami załadowanymi do jądra podczas uruchamiania systemu. Apparmor ma dwa rodzaje trybów profilu, egzekwowania i składania skarg. Profile w trybie wymuszania wymuszają reguły tego profilu i zgłaszają próby naruszenia zasad w sysloglub auditd. Profile w trybie narzekań nie wymuszają żadnych reguł profilowych, rejestrują jedynie próby naruszenia zasad.

W Ubuntu Apparmor jest instalowany domyślnie. Ogranicza aplikacje do profili, aby określić, do jakich plików i uprawnień ma dostęp program. Niektóre aplikacje będą miały własne właściwości, a więcej można znaleźć w apparmor-profilespakiecie.

Możesz zainstalować apparmor-profiles, uruchamiając sudo apt-get install apparmor-profiles.

Znalazłem dobry przykład Apparmor na forach Ubuntu, który przepisałem na ten post.

Apparmor to platforma bezpieczeństwa, która zapobiega przekształcaniu aplikacji w zło. Na przykład: Jeśli uruchomię Firefoksa i odwiedzę złą stronę, która próbuje zainstalować złośliwe oprogramowanie, które usunie mój homefolder, Apparmor ma ograniczenia w Firefoksie, ale uniemożliwia mu robienie czegoś, czego nie chcę (np. Uzyskiwanie dostępu do mojej muzyki, dokumentów itp.). W ten sposób nawet jeśli Twoja aplikacja zostanie naruszona, nie możesz wyrządzić szkody.

Jak to działa

apparmor-utilsPakiet zawiera narzędzia wiersza poleceń do konfigurowania AppArmor. Za jego pomocą możesz zmienić tryb wykonywania Apparmor, znaleźć status profilu, utworzyć nowe profile itp.

Oto najczęstsze polecenia:

Uwaga: Profile są przechowywane w/etc/apparmor.d/

  • Możesz sprawdzić status Apparmor za pomocą sudo apparmor_status. Otrzymasz listę wszystkich profili * załadowanych, wszystkich profili w trybie egzekwowania, wszystkich profili w trybie narzekań, jakie procesy są zdefiniowane w narzucaniu / narzekaniu itp.
  • Aby ustawić profil w trybie narzekania , którego używasz sudo aa-complain /path/to/bin, gdzie /path/to/binjest binfolder programów . Na przykład uruchomienie: sudo aa-complain /usr/bin/firefoxspowoduje przejście Firefoksa w tryb narzekań.
  • Użyć sudo aa-enforce /path/to/bindo wymuszenia profil programów.
  • Możesz załadować wszystkie profile do trybów składania skarg / egzekwowania za pomocą sudo aa-complain /etc/apparmor.d/*i sudo aa-enforce.d/*.

Aby załadować profil do jądra, którego byś użył apparmor_parser. Możesz ponownie załadować profile za pomocą -rparametru.

  • Aby załadować profil, użyj :, cat /etc/apparmor.d/profile.name | sudo apparmor_parser -aktóry skutecznie drukuje zawartość profile.nameparsera Apparmor.
  • Aby ponownie załadować profil, użyj -rparametru:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
  • Aby ponownie załadować wszystkie profile Apparmor, użyj: sudo service apparmor reload

Aby wyłączyć profil, który odwołuje się go /etc/apparmor.d/disable/za pomocą lntak: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/uruchom: sudo apparmor_parser -R /etc/apparmor.d/profile.name.

Uwaga: Nie mylapparmor_parser -rz nimi,apparmor_parser -R NIE SĄ TAM SAMĄ RZECZĄ!

  • Aby ponownie włączyć profil, usuń dowiązanie symboliczne do niego, /etc/apparmor.d/disable/a następnie załaduj go za pomocą -aparametru.sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
  • Możesz wyłączyć Apparmor za pomocą sudo service apparmor stopi usunąć moduł jądra za pomocąsudo update-rc.d -f apparmor defaults
  • Uruchom Apparmor za pomocą sudo service apparmor starti ładuj moduły jądra za pomocąsudo update-rc.d apparmor defaults

Profile

Profile są przechowywane /etc/apparmor.d/i nazywane po pełnej ścieżce do pliku wykonywalnego, który profilują, zastępując „/” na „.”. Na przykład /etc/apparmor.d/bin.pingjest profil o pingw /bin.

Istnieją dwa główne typy wpisów używanych w profilach:

  1. Wpisy ścieżki określają, do których plików aplikacja może uzyskać dostęp.

  2. Wpisy zdolności określają, jakich uprawnień może używać proces.

Przyjrzyjmy się profilowi pingznajdującemu się etc/apparmor.d/bin.pingjako przykład.

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global>Uwzględnia plik globalw katalogu tunables, pozwala to na umieszczenie instrukcji dotyczących wielu aplikacji we wspólnym pliku.

/bin/ping flags=(complain)ustawia ścieżkę do profilowanego programu i ustawia tryb narzekania.

capability net_rawumożliwia aplikacji dostęp do CAP_NET_RAW Posix.1efunkcji.

/bin/ping mixr umożliwia aplikacji odczyt i wykonanie dostępu do pliku.

/etc/modules.conf r,rDaje aplikacja odczytu przywileje/etc/modules.conf

Uwaga: po utworzeniu / edycji profilu należy ponownie załadować profil, aby zmiany odniosły skutek.

Oto lista uprawnień, których możesz użyć:

  • r - przeczytaj
  • w - pisać
  • ux - Nieograniczone wykonanie
  • Ux - Unstrained Execute - szoruj środowisko
  • px - Wykonanie profilu dyskretnego
  • Px - Wykonywanie profilu dyskretnego - szorowanie środowiska
  • ix - Dziedzicz wykonanie
  • m - pozwalają PROT_EXECz mmap(2)połączeń
  • l - link

Źródła

Seth
źródło
Więc to jest trochę jak program działający jako użytkownik i nie posiadający uprawnień do modyfikowania większości plików w systemie?
Izkata,
Tak i nie. Skonfigurujesz profil, który określa, co mogą robić określone aplikacje. Następnie dodajesz programy do tego profilu, co ogranicza możliwości programów w tym profilu. To jest jak użytkownik, ponieważ może uzyskać dostęp tylko do tego, co administrator (ty) mówi w profilu.
Seth
Ach, więc profile są jak grupy użytkowników programów;)
Izkata
Tak, wiele innych;)
Seth
Czy uważasz, że apparmor może być używany do blokowania każdego połączenia internetowego i mówienia, kto próbuje uzyskać do niego dostęp? i na podstawie tego dziennika tworzymy uprawnienia dla każdej aplikacji? Chodzi o to, aby działał jak Zonalarm w systemie Windows $ i jak stare „zapory ogniowe na aplikację” w systemie Linux, takie jak LeopardFlower i ProgramGuard (wydaje mi się, że nie są już możliwe do kompilacji). Jest też nowy o nazwie Douane i używa moduł jądra, aby wszystko działało.
Aquarius Power
6

AppArmor to system obowiązkowej kontroli dostępu (MAC), który jest rozszerzeniem jądra (LSM) w celu ograniczenia programów do ograniczonego zestawu zasobów. Model bezpieczeństwa AppArmor polega na wiązaniu atrybutów kontroli dostępu z programami, a nie z użytkownikami. Ograniczenie AppArmor jest zapewniane przez profile ładowane do jądra, zwykle podczas rozruchu. Profile AppArmor mogą być w jednym z dwóch trybów: egzekwowania i składania skarg. Profile załadowane w trybie wymuszania spowodują wymuszenie zasad określonych w profilu, a także zgłoszenie prób naruszenia zasad (za pośrednictwem syslog lub audytu). Profile w trybie narzekania nie będą egzekwować zasad, ale zamiast tego będą zgłaszać próby naruszenia zasad.

AppArmor różni się od niektórych innych systemów MAC w Linuksie tym, że jest oparty na ścieżkach, pozwala na mieszanie profili trybu egzekwowania i narzekań, wykorzystuje pliki dołączone w celu ułatwienia rozwoju i ma znacznie niższą barierę wejścia niż inne popularne systemy MAC.

AppArmor to sprawdzona technologia, która po raz pierwszy pojawiła się w Immunix, a później została zintegrowana z Ubuntu, Novell / SUSE i Mandriva. Podstawowa funkcjonalność AppArmor znajduje się w głównym jądrze Linuksa od wersji 2.6.36; AppArmor, Ubuntu i inni programiści pracują nad połączeniem dodatkowej funkcjonalności AppArmor z jądrem głównym.

Mam kilka innych pomocnych linków do Ciebie: Wiki.Ubuntu.com Ubuntuforums.org

Przewodniki Apparmor dla Ubuntu 12.04 i Ubuntu 12.10

Mam nadzieję, że ci to pomoże.

rɑːdʒɑ
źródło
3

Oto cytat z wiki Apparmor :

AppArmor to skuteczny i łatwy w użyciu system bezpieczeństwa aplikacji Linux. AppArmor proaktywnie chroni system operacyjny i aplikacje przed zagrożeniami zewnętrznymi lub wewnętrznymi, nawet atakami zero-day, poprzez wymuszanie dobrego zachowania i zapobieganie wykorzystywaniu nawet nieznanych wad aplikacji. Zasady bezpieczeństwa AppArmor całkowicie określają, do jakich zasobów systemowych mogą uzyskiwać dostęp poszczególne aplikacje i jakie uprawnienia. AppArmor zawiera wiele domyślnych zasad, a dzięki połączeniu zaawansowanych narzędzi analizy statycznej i narzędzi opartych na uczeniu się, zasady AppArmor dla nawet bardzo złożonych aplikacji można wdrożyć z powodzeniem w ciągu kilku godzin.

Adeline Dale
źródło