بسم الله، والحمد لله، والصلاة والسلام على رسول الله وعلى آله وصحبه ومن اهتدى بهداه، السلام عليكم ورحمة الله وبركاته تحيه طيبه أما بعد:
الAppArmor “درع التطبيق”: هو إطار تنظيمي للحد من صلاحيات الدخول للتطبيقات الى ملفات النظام. تساعد هذه الحمايه الاستبقايه على الحد من الثغرات المعروفه والغير معروفه في التطبيقات من تخريب او إخلال النظام. (قراءه اكثر هنا و هنا).
ملاحظه: قبل القيام بالخطوات يرجى النظر الى الملاحظات في الاسفل.
- تسطيب حزم وملفات اضافيه تحتاجها مع الAppArmor في التوزيعات الديبيانيه (حزمه الAppArmor مسطبه ومفعله بشكل تلقائي في ديبيان)
sudo apt install apparmor-utils apparmor-profiles apparmor-profiles-extra
حزمه apparmor-utils: تساعد هذه الحزمه على استخدام امر aa-enforce وهو سنحتاجه لاحقا لجعل ملفات التطبيقات مفعله بشكل دائم
ملفات التطبيقات من apparmor-profiles-extra و apparmor-profiles : وهي ملفات apparmor الخاصه بالتطبيقات المدعومه فقط (اي التي تكون موجوده داخل هاتين القائمتين)
- التاكد ان كل شيء يعمل قبل الاستمرار
نتاكد ان الapparmor مسطبه ومفعله عن طريق
sudo service apparmor status
سيظهر شيء قريب من هذا: (المهم وجود Active: active)
apparmor.service - Load AppArmor profiles
Loaded: loaded (/lib/systemd/system/apparmor.service; enabled; vendor preset:
Active: active (exited)
Docs: man:apparmor(7)
https://gitlab.com/apparmor/apparmor/wikis/home/
نتاكد ان ملفات الapparmor متعرف عليها من قبل تطبيق الapparmor
sudo aa-status
سيظهر شيء قريب من هذا (اسماء ملفات apparmor للتطبيقات المدعومه, وهذه التي تاتي مع apparmor-profiles التي سطبناها سابقا)
user@clearnet:~$ sudo aa-status
apparmor module is loaded.
30 profiles are loaded.
14 profiles are in enforce mode.
/usr/bin/pidgin
/usr/bin/pidgin//sanitized_helper
/usr/bin/totem
/usr/bin/totem-audio-preview
/usr/bin/totem-video-thumbnailer
/usr/bin/totem//sanitized_helper
/usr/sbin/apt-cacher-ng
/usr/sbin/haveged
nvidia_modprobe
nvidia_modprobe//kmod
system_tor
16 profiles are in complain mode.
/usr/bin/irssi
/usr/sbin/dnsmasq
/usr/sbin/dnsmasq//libvirt_leaseshelper
avahi-daemon
identd
klogd
mdnsd
nmbd
nscd
ping
smbd
smbldap-useradd
smbldap-useradd///etc/init.d/nscd
syslog-ng
syslogd
traceroute
2 processes have profiles defined.
2 processes are in enforce mode.
/usr/sbin/haveged (479)
/usr/bin/tor (615) system_tor
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
- فرق الملفات بين الEnforce Mode و الComplain Mode
الملفات التي تكون في حاله الانفاذ Enforce وهي التي تكون متعرف عليها من قبل الApparmor/فعاله وتوفر حد الصلاحيات/الامن المطلوب منها للتطبيق المعين
الملفات التي تكون في حاله الشكوى Complain (معنى اصح الخمول) وهي التي تكون متعرف عليها من قبل الApparmor ولكنها لا توفر الحمايه لانها ليست في حاله تنفيذ ولكن فقط متعرف عليها.
- تحويل ملف Apparmor من حاله Complain الى Enforce
مثلا من ملفات الapparmor السابقه اريد تحويل ملف الapparmor الخاص بPing الى Enforce mode
sudo aa-enforce ping
سيظهر لك شيء شبيه بهذا
Setting /usr/bin/ping to enforce mode.
Warning: profile ping represents multiple programs
اذا قمت بامر sudo aa-status سيظهر ping تحت الEnforce
- استخدام ملفات اضافيه لapparmor من apparmor-profiles-extra (او من اي مكان اخر نفس الامر)
الملفات الاضافيه تجدها هنا:
ls /usr/share/apparmor/extra-profiles
اذا اردنا استخدام ملف apparmor لتطبيق نستخدمه مثلا Firefox نلاحظ وجود ثلاثه ملفات له:
usr.lib.firefox.firefox
usr.lib.firefox.firefox.sh
usr.lib.firefox.mozilla-xremote-client
نفرض نريد ان نفعل الثلاثه جميعا , نقوم بنسخها الى /etc/apparmor.d
sudo cp /usr/share/apparmor/extra-profiles/usr.lib.firefox.firefox /etc/apparmor.d
(نفس الامر لباقي الملفات فقط تغير usr.lib.firefox.firefox الى اسم الملف الاخر)
بعد الانتهاء الان نقوم بتحويلها الى Enforce Mode
sudo aa-enforce /etc/apparmor.d/usr.lib.firefox.firefox
(نفس الامر لباقي الملفات فقط تغير usr.lib.firefox.firefox الى اسم الملف الاخر)
انتهى التفعيل واذا كتبت sudo aa-status ستجدها في الEnforce Mode.
الملاحظات والاضافات
-
اذا تستخدم تطبيق وملفات sandboxing مثل Firejail فلا تفعل ملفات الapparmor لنفس التطبيقات لانه سيسبب تعارض بينهم وقد ينتج عنه الغاء احدهم للاخر لذا استخدم هذا او هذا للتطبيق الواحد.
-
مقارنه بين Firejail و Apparmor تجدها هنا.
-
ملفات الApparmor الخاصه بالتطبيقات تجريبيه وليست مستقره لذا ليس مضمون انها ستعمل بدون مشاكل.
-
لا ينصح بتفعيل جميع ملفات الApparmor ولكن فقط فعلها للتطبيقات التي تحتاجها/تستخدمها.
-
يمكنك صناعه ملفات Apparmor خاصه بك راجع هنا.
-
يمكنك اضافه ملفات اضافيه للapparmor من هونكس: (للنظر الى الملفات هنا)
**لاضافه مستودعات هونكس راجع هنا.
** لتسطيب ملفات الapparmor من مستودع هونكس:
sudo apt install apparmor-profiles-kicksecure