Aparmor nedir?


93

Apparmor hakkında çok fazla konuşma duyuyorum, aşağıdakileri bilmek istiyorum:

  • Aparmor nedir?
  • Apparmor nasıl çalışır?

Yanıtlar:


92

Ne olduğunu

Apparmor, Zorunlu Erişim Kontrolü (veya MAC) sistemidir. Programları belirli kaynaklarla sınırlandırmak için LSM çekirdek geliştirmelerini kullanır. AppArmor bunu, sistem başladığında çekirdeğe yüklenen profillerle yapar. Apparmor'un iki tür profil modu vardır, uygulama ve şikayet etme. Uygulama kipindeki profiller bu profilin kurallarını zorlar ve ihlal girişimlerini syslogveya içinde bildirir auditd. Şikayet modundaki profiller, herhangi bir profil kuralını zorlamaz; ihlal ihlal girişimlerini girmeniz yeterlidir.

Ubuntu'da Apparmor varsayılan olarak yüklenir. Bir programın erişmesi gereken dosya ve izinleri belirlemek için uygulamaları profillerle sınırlar. Bazı uygulamalar kendi özelliklerine sahip olacak ve daha fazlasını apparmor-profilespakette bulabilirsiniz.

Sen yükleyebilir apparmor-profilesçalıştırarak sudo apt-get install apparmor-profiles.

Bu yazı için yeniden yazdığım Ubuntu forumlarında iyi bir Apparmor örneği buldum.

Apparmor, uygulamaların kötülük yapmasını önleyen bir güvenlik çerçevesidir. Örneğin: Firefox'u çalıştırıp home, klasörümü silecek kötü amaçlı yazılım yüklemeye çalışan kötü bir siteyi ziyaret edersem, Apparmor, istemediğim herhangi bir şeyi yapmasını engellese de (müziğe, belgelerime vb. Erişmek gibi) Firefox'ta sınırlar koyar. Bu sayede başvurunuz tehlikeye atılsa bile, hiçbir zarar yapılamaz.

Nasıl çalışır

apparmor-utilsPaket AppArmor yapılandırmak için komut satırı araçları içerir. Kullanarak Apparmor'un yürütme modunu değiştirebilir, bir profilin durumunu bulabilir ve yeni profiller oluşturabilirsiniz

Bunlar en yaygın komutlardır:

Not: Profiller içinde saklanır./etc/apparmor.d/

  • Apparmor'un durumunu ile kontrol edebilirsiniz sudo apparmor_status. Yüklenen tüm profillerin *, zorlama modundaki tüm profillerin, şikayet modundaki tüm profillerin, zorla / şikayet içindeki hangi işlemlerin tanımlandığını vb.
  • Bir profil koymak için şikayetçi kullandığınız modu sudo aa-complain /path/to/bin, nerede /path/to/binprogramlar binklasörü. Örneğin, running: sudo aa-complain /usr/bin/firefoxFirefox’u şikayet moduna geçirir.
  • sudo aa-enforce /path/to/binBir program profilini zorlamak için kullanılır .
  • Tüm profilleri sırasıyla sudo aa-complain /etc/apparmor.d/*ve ile şikayet / zorlama modlarına yükleyebilirsiniz sudo aa-enforce.d/*.

Bir profili çekirdeğe yüklemek için kullanırsın apparmor_parser. -rParametreyi kullanarak profilleri yeniden yükleyebilirsiniz .

  • Bir profili kullanmak için:, cat /etc/apparmor.d/profile.name | sudo apparmor_parser -aiçeriğini profile.nameApparmor ayrıştırıcısına etkili bir şekilde basar .
  • Bir profili yeniden yüklemek için -r, aşağıdaki gibi parametreyi kullanın :cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
  • Tüm Apparmor'un profillerini yeniden yüklemek için şunu kullanın: sudo service apparmor reload

Bir profili devre dışı bırakmak için size bağlantı için /etc/apparmor.d/disable/kullanıyor lnböyle: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/o zaman çalıştırın: sudo apparmor_parser -R /etc/apparmor.d/profile.name.

Not: karıştırmayınapparmor_parser -rileapparmor_parser -R ONLAR AYNI ŞEY DEĞİLDİR!

  • Bir profili yeniden etkinleştirmek için, içindeki sembolik bağlantıyı kaldırın /etc/apparmor.d/disable/ve -aparametreyi kullanarak yükleyin .sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
  • Apparmor'u devre dışı bırakabilir sudo service apparmor stopve çekirdek modülünü kullanaraksudo update-rc.d -f apparmor defaults
  • Apparmor ile başlayın sudo service apparmor startve çekirdek modüllerini yükleyinsudo update-rc.d apparmor defaults

Profiller

Profiller, /etc/apparmor.d/'/' yerine '.' İle değiştirilen, çalıştırılabilir dosyanın tam yolundan sonra depolanır ve adlandırılır. Örneğin /etc/apparmor.d/bin.pingiçin profil pingiçinde /bin.

Profillerde kullanılan iki ana giriş türü vardır:

  1. Yol Girdileri, bir uygulamanın hangi dosyalara erişebileceğini belirler.

  2. Yetenek girdileri, bir sürecin hangi ayrıcalıkları kullanabileceğini belirler.

Örnek olarak pingbulunan profile etc/apparmor.d/bin.pingbakalım.

#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>Dosyayı globaldizine dahil eder tunables, bu, ortak bir dosyaya yerleştirilmek üzere birden fazla uygulamaya ilişkin ifadelere izin verir.

/bin/ping flags=(complain)profilli programın yolunu ve şikayet edilecek modu ayarlar.

capability net_rawUygulamanın CAP_NET_RAW Posix.1ekabiliyete erişmesine izin verir .

/bin/ping mixr Uygulamaya, dosyaya erişimi okuma ve yürütme izni verir.

/etc/modules.conf r,rUygulama verir okuma için ayrıcalıkları/etc/modules.conf

Not: Bir profil oluşturduktan / düzenledikten sonra, değişikliklerin geçerli olması için profili yeniden yüklemeniz gerekir.

İşte kullanabileceğiniz izinlerin bir listesi:

  • r - oku
  • w - yazmak
  • ux - Kısıtsız Yürütme
  • Ux - Kısıtsız Yürüt - ortamı temizle
  • px - Ayrık profil yürütme
  • Px - Ayrık profil yürütme - çevreyi temizle
  • ix - Devralma yürütme
  • m - izin PROT_EXECile mmap(2)çağrıları
  • l - link

Kaynaklar


Yani kullanıcı olarak çalışan ve sistemdeki dosyaların çoğunu değiştirme izinlerine sahip olmayan bir programa benziyor?
Izkata

Evet ve hayır. Belirli bir uygulamanın neler yapabileceğini tanımlayan bir profil ayarlarsınız . Daha sonra o profile programlar eklersiniz ve bu, o profildeki programların yapmasına izin verilenleri sınırlar. Bu yüzden bir kullanıcı gibidir, çünkü onlar yalnızca yönetici (sizin) profilde söyleyebileceklerine erişebilirler.
Seth

Ah, yani profiller programlar için kullanıcı grupları gibidir;)
Izkata

Evet öyle değil;)
Seth

Her internet bağlantısını engellemek ve kime erişmeye çalıştığını söylemek için apparmor'un kullanılabileceğini düşünüyor musunuz? ve o günlüğe dayanarak her bir uygulama için izinler yaratıyoruz? Buradaki fikir, $ penceresindeki Zonalarm gibi ve LeopardFlower ve ProgramGuard gibi Linux'taki eski "uygulama başına güvenlik duvarları" gibi çalışmasını sağlamaktır. işleri yürütmek için bir çekirdek modülü.
Kova Gücü

6

AppArmor, programları sınırlı sayıda kaynakla sınırlandırmak için bir çekirdek (LSM) geliştirmesi olan bir Zorunlu Erişim Kontrolü (MAC) sistemidir. AppArmor'un güvenlik modeli, erişim denetimi niteliklerini kullanıcılar yerine programlara bağlamaktır. AppArmor hapsi, çekirdeğe yüklenen ve tipik olarak önyüklemeli profiller aracılığıyla sağlanır. AppArmor profilleri iki moddan birinde olabilir: uygulama ve şikayet etme. Uygulama modunda yüklenen profiller, profilde tanımlanan politikanın uygulanmasının yanı sıra politika ihlali teşebbüslerinin raporlanmasına (syslog veya auditd yoluyla) neden olur. Şikayet modundaki profiller politikayı zorlamaz, bunun yerine politika ihlali girişimlerini raporlar.

AppArmor, Linux'ta yol tabanlı olması, zorlama ve şikayet modu profillerinin karıştırılmasına izin vermesi, gelişmeyi kolaylaştırmak için dosyalar içermesi ve diğer popüler MAC sistemlerine göre daha düşük bir engel oluşturması nedeniyle, Linux'taki diğer MAC sistemlerinden farklıdır.

AppArmor, ilk olarak Immunix'te görülen ve daha sonra Ubuntu, Novell / SUSE ve Mandriva'ya entegre edilmiş bir teknolojidir. Çekirdek AppArmor işlevselliği, Linux çekirdeğinde 2.6.36'dan itibarendir; AppArmor, Ubuntu ve diğer geliştiriciler tarafından ek AppArmor işlevselliğini ana hat çekirdeğinde birleştirmek için çalışmalar devam etmektedir.

Sana birkaç tane daha faydalı link var. Wiki.Ubuntu.com Ubuntuforums.org

Apparmor Ubuntu 12.04 ve Ubuntu 12.10 için kılavuzları

Umarım bu size yardımcı olur.


3

İşte Apparmor wiki'den bir alıntı :

AppArmor, etkili ve kullanımı kolay bir Linux uygulama güvenlik sistemidir. AppArmor, iyi bir davranış sergileyen ve bilinmeyen uygulama hatalarının istismar edilmesini önleyerek işletim sistemini ve uygulamalarını dış kaynaklı veya iç tehditlerden, hatta sıfır günlük saldırılardan proaktif olarak korur. AppArmor güvenlik politikaları, bireysel uygulamaların hangi sistem kaynaklarına erişebileceğini ve hangi ayrıcalıklara sahip olduğunu tamamen tanımlar. AppArmor'a bir dizi varsayılan politika dahil edilmiştir ve gelişmiş statik analiz ve öğrenme temelli araçların bir kombinasyonu kullanılarak, çok karmaşık uygulamalar için bile AppArmor politikaları birkaç saat içinde başarıyla dağıtılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.