AppArmor
WhiteIntel je dark-web pretraživač koji nudi besplatne funkcionalnosti za proveru da li je kompanija ili njeni korisnici kompromitovani od strane malvera za krađu podataka.
Primarni cilj WhiteIntel-a je borba protiv preuzimanja naloga i napada ransomware-a koji proizilaze iz malvera za krađu informacija.
Možete posetiti njihovu veb stranicu i isprobati njihovu mašinu za besplatno na:
Osnovne informacije
AppArmor je kernel unapređenje dizajnirano da ograniči resurse dostupne programima putem profila po programu, efikasno implementirajući obaveznu kontrolu pristupa (MAC) povezivanjem atributa kontrole pristupa direktno sa programima umesto sa korisnicima. Ovaj sistem funkcioniše tako što učitava profile u kernel, obično tokom pokretanja, a ovi profili diktiraju koje resurse program može da pristupi, kao što su mrežne veze, pristup sirovim soketima i dozvole za datoteke.
Postoje dva operativna moda za AppArmor profile:
Režim sprovođenja: Ovaj režim aktivno sprovodi politike definisane unutar profila, blokirajući akcije koje krše ove politike i beležeći svaki pokušaj njihovog kršenja putem sistema poput syslog-a ili auditd-a.
Režim prigovora: Za razliku od režima sprovođenja, režim prigovora ne blokira akcije koje idu protiv politika profila. Umesto toga, beleži ove pokušaje kao kršenja politike bez sprovođenja ograničenja.
Komponente AppArmor-a
Kernel modul: Odgovoran za sprovođenje politika.
Politike: Specificiraju pravila i ograničenja za ponašanje programa i pristup resursima.
Parser: Učitava politike u kernel radi sprovođenja ili izveštavanja.
Usluge: To su programi u režimu korisnika koji pružaju interfejs za interakciju sa AppArmor-om i upravljanje njime.
Putanje profila
Apparmor profili obično se čuvaju u /etc/apparmor.d/
Sa sudo aa-status
možete da vidite binarne datoteke koje su ograničene nekim profilom. Ako možete da zamenite znak "/" tačkom u putanji svake navedene binarne datoteke, dobićete ime apparmor profila unutar pomenutog foldera.
Na primer, apparmor profil za /usr/bin/man biće smešten u /etc/apparmor.d/usr.bin.man.
Komande
Kreiranje profila
Da biste naznačili pogođeni izvršni fajl, dozvoljeni su apsolutni putevi i džokeri (za pretragu fajlova) za specificiranje fajlova.
Da biste naznačili pristup koji će binarni fajl imati nad fajlovima, mogu se koristiti sledeće kontrole pristupa:
r (čitanje)
w (pisanje)
m (mapiranje memorije kao izvršiv)
k (zaključavanje fajla)
l (kreiranje tvrdih linkova)
ix (za izvršavanje drugog programa sa novim programom koji nasleđuje pravila)
Px (izvršavanje pod drugim profilom, nakon čišćenja okruženja)
Cx (izvršavanje pod djetetovim profilom, nakon čišćenja okruženja)
Ux (izvršavanje bez ograničenja, nakon čišćenja okruženja)
Promenljive se mogu definisati u profilima i mogu se manipulisati izvan profila. Na primer: @{PROC} i @{HOME} (dodajte #include <tunables/global> u fajl profila)
Pravila zabrane podržana su za poništavanje pravila dozvole.
aa-genprof
Da biste lako počeli sa kreiranjem profila, apparmor vam može pomoći. Moguće je da apparmor inspekcijom akcija koje izvršni fajl obavlja, a zatim vam dozvoli da odlučite koje akcije želite dozvoliti ili zabraniti. Samo trebate pokrenuti:
Zatim, u drugoj konzoli izvršite sve radnje koje binarni fajl obično izvršava:
Zatim, u prvom konzoli pritisnite "s", a zatim u zabeleženim akcijama naznačite da li želite da ignorišete, dozvolite ili šta god drugo. Kada završite, pritisnite "f" i novi profil će biti kreiran u /etc/apparmor.d/path.to.binary
Koristeći strelice možete izabrati šta želite da dozvolite/odbijete/šta god
aa-easyprof
Takođe možete kreirati šablon apparmor profila binarnog fajla sa:
Imajte na umu da prema podrazumevanom profilu ništa nije dozvoljeno, tako da je sve zabranjeno. Morate dodati linije poput /etc/passwd r,
da biste omogućili binarno čitanje /etc/passwd
, na primer.
Zatim možete naterati novi profil sa
Modifikovanje profila iz logova
Sledeći alat će pročitati logove i pitati korisnika da li želi da dozvoli neke od detektovanih zabranjenih radnji:
Koristeći strelice možete izabrati šta želite da dozvolite/odbijete/bilo šta drugo
Upravljanje profilom
Dnevnici
Primeri AUDIT i DENIED dnevnika iz /var/log/audit/audit.log izvršnog fajla service_bin
:
Možete dobiti ove informacije i koristeći:
Apparmor u Dockeru
Primetite kako je profil docker-profile u dockeru učitan podrazumevano:
Podrazumevani Apparmor docker-default profil generiše se sa https://github.com/moby/moby/tree/master/profiles/apparmor
docker-default profil sažetak:
Pristup svim mrežama
Nijedna sposobnost nije definisana (Međutim, neke sposobnosti dolaze iz uključivanja osnovnih osnovnih pravila tj. #include <abstractions/base>)
Pisanje u bilo koji /proc fajl nije dozvoljeno
Ostali poddirektorijumi/fajlovi od /proc i /sys su odbijeni pristup za čitanje/pisanje/zaključavanje/povezivanje/izvršavanje
Montiranje nije dozvoljeno
Ptrace se može pokrenuti samo na procesu koji je ograničen istim apparmor profilom
Kada pokrenete docker kontejner trebalo bi da vidite sledeći izlaz:
Napomena da će apparmor čak blokirati privilegije sposobnosti dodeljene kontejneru podrazumevano. Na primer, moći će blokirati dozvolu za pisanje unutar /proc čak i ako je SYS_ADMIN sposobnost dodeljena jer apparmor profil za docker podrazumevano odbija ovaj pristup:
Morate onemogućiti apparmor da biste zaobišli njegova ograničenja:
Imajte na umu da će AppArmor podrazumevano zabraniti kontejneru da montira fascikle iznutra čak i sa SYS_ADMIN sposobnošću.
Imajte na umu da možete dodati/ukloniti sposobnosti kontejneru (ovo će i dalje biti ograničeno zaštitnim metodama poput AppArmor-a i Seccomp-a):
--cap-add=SYS_ADMIN
dodajeSYS_ADMIN
sposobnost--cap-add=ALL
dodaje sve sposobnosti--cap-drop=ALL --cap-add=SYS_PTRACE
uklanja sve sposobnosti i daje samoSYS_PTRACE
Obično, kada otkrijete da imate privilegovanu sposobnost dostupnu unutar docker kontejnera ali deo eksploatacije ne funkcioniše, to će biti zato što će docker apparmor to sprečavati.
Primer
(Primer sa ovde)
Da ilustrujem funkcionalnost AppArmor-a, kreirao sam novi Docker profil "mydocker" sa dodatom sledećom linijom:
Da bismo aktivirali profil, potrebno je uraditi sledeće:
Da biste naveli profile, možete izvršiti sledeću komandu. Komanda ispod nabraja moj novi AppArmor profil.
Kao što je prikazano ispod, dobijamo grešku prilikom pokušaja promene "/etc/" jer AppArmor profil sprečava pristup za pisanje "/etc".
AppArmor Docker Bypass1
Možete pronaći koji apparmor profil pokreće kontejner koristeći:
Zatim možete pokrenuti sledeću liniju da pronađete tačan profil koji se koristi:
AppArmor Docker Bypass2
AppArmor je zasnovan na putanji, što znači da čak i ako možda štiti datoteke unutar direktorijuma poput /proc
, ako možete konfigurisati kako će kontejner biti pokrenut, možete montirati direktorijum proc domaćina unutar /host/proc
i on više neće biti zaštićen od strane AppArmor-a.
AppArmor Shebang Bypass
U ovom bagu možete videti primer kako čak i ako sprečavate perl da se pokrene sa određenim resursima, ako jednostavno kreirate shell skriptu specifikujući u prvom redu #!/usr/bin/perl
i izvršite datoteku direktno, moći ćete izvršiti šta god želite. Na primer:
WhiteIntel je pretraživač pokretan dark web-om koji nudi besplatne funkcionalnosti za proveru da li je kompanija ili njeni korisnici ugroženi od malvera koji krade informacije.
Njihov primarni cilj WhiteIntela je borba protiv preuzimanja naloga i napada ransomvera koji proizilaze iz malvera koji krade informacije.
Možete posetiti njihovu veb lokaciju i isprobati njihovu mašinu za besplatno na:
Last updated