ฉันได้ยินจำนวนมากพูดคุยเกี่ยวกับ apparmor ฉันต้องการทราบต่อไปนี้:
- apparmor คืออะไร
- apparmor ทำงานอย่างไร
ฉันได้ยินจำนวนมากพูดคุยเกี่ยวกับ apparmor ฉันต้องการทราบต่อไปนี้:
คำตอบ:
Apparmor เป็นระบบควบคุมการเข้าถึง (หรือ MAC) ที่บังคับใช้ มันใช้การปรับปรุงเคอร์เนล LSM เพื่อ จำกัด โปรแกรมให้กับทรัพยากรบางอย่าง AppArmor ทำสิ่งนี้พร้อมกับโปรไฟล์ที่โหลดลงในเคอร์เนลเมื่อระบบเริ่มทำงาน Apparmor มีโหมดโปรไฟล์สองแบบ ได้แก่ การบังคับใช้และการบ่น โปรไฟล์ในโหมดการบังคับใช้การบังคับใช้กฎระเบียบของโปรไฟล์และรายงานความพยายามละเมิดหรือsyslog
auditd
โปรไฟล์ในโหมดบ่นไม่ได้บังคับใช้กฎโปรไฟล์ใด ๆ เพียงบันทึกความพยายามในการละเมิด
ใน Ubuntu Apparmor จะถูกติดตั้งตามค่าเริ่มต้น มัน จำกัด แอพพลิเคชั่นให้กับโปรไฟล์เพื่อกำหนดว่าไฟล์และการอนุญาตใดที่โปรแกรมต้องการเข้าถึง แอปพลิเคชั่นบางตัวจะมาพร้อมกับคุณสมบัติของตัวเองและสามารถพบได้ในapparmor-profiles
แพ็คเกจ
คุณสามารถติดตั้งโดยการเรียกใช้apparmor-profiles
sudo apt-get install apparmor-profiles
ฉันพบตัวอย่างที่ดีของ Apparmor ในฟอรัม Ubuntu ที่ฉันเขียนใหม่สำหรับโพสต์นี้
Apparmor เป็นกรอบความปลอดภัยที่ป้องกันไม่ให้แอปพลิเคชันเปลี่ยนความชั่วร้าย ตัวอย่างเช่น: หากฉันใช้ Firefox และเยี่ยมชมไซต์ที่ไม่ดีที่พยายามติดตั้งมัลแวร์ที่จะลบ
home
โฟลเดอร์ของฉันApparmor มีข้อ จำกัด ใน Firefox แม้ว่าจะป้องกันไม่ให้ทำสิ่งที่ฉันไม่ต้องการ (เช่นการเข้าถึงเพลงเอกสาร ฯลฯ ) วิธีนี้แม้ว่าแอปพลิเคชันของคุณจะถูกบุกรุกไม่สามารถทำอันตรายได้
apparmor-utils
แพคเกจประกอบด้วยเครื่องมือบรรทัดคำสั่งสำหรับการกำหนดค่า AppArmor ใช้มันคุณสามารถเปลี่ยนโหมดการทำงานของ Apparmor ค้นหาสถานะของโปรไฟล์สร้างโปรไฟล์ใหม่ ฯลฯ
คำสั่งเหล่านี้เป็นคำสั่งทั่วไป:
หมายเหตุ:โปรไฟล์จะถูกเก็บไว้ใน/etc/apparmor.d/
sudo apparmor_status
ได้ คุณจะได้รับรายการโปรไฟล์ทั้งหมด * โหลดโปรไฟล์ทั้งหมดในโหมดบังคับใช้โปรไฟล์ทั้งหมดในโหมดบ่นกระบวนการที่กำหนดไว้ในการบังคับใช้ / บ่น ฯลฯ sudo aa-complain /path/to/bin
ที่ไหน ตัวอย่างเช่นการทำงาน: จะทำให้ Firefox อยู่ในโหมดบ่น/path/to/bin
bin
sudo aa-complain /usr/bin/firefox
sudo aa-enforce /path/to/bin
เพื่อบังคับใช้โปรไฟล์โปรแกรม sudo aa-complain /etc/apparmor.d/*
และsudo aa-enforce.d/*
ตามลำดับ apparmor_parser
เพื่อโหลดรายละเอียดลงในเคอร์เนลที่คุณจะใช้ คุณสามารถโหลดโปรไฟล์โดยใช้-r
พารามิเตอร์
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
ซึ่งพิมพ์เนื้อหาของprofile.name
ลงในโปรแกรมแยกวิเคราะห์ของ Apparmor ได้อย่างมีประสิทธิภาพ-r
พารามิเตอร์ดังนี้:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
sudo service apparmor reload
การปิดใช้งานรายละเอียดที่คุณเชื่อมโยงไปยัง/etc/apparmor.d/disable/
การใช้ln
เช่นนี้ แล้วเรียกใช้: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/profile.name
หมายเหตุ:อย่าสับสนapparmor_parser -r
กับapparmor_parser -R
พวกเขาไม่ใช่สิ่งเดียวกัน!
/etc/apparmor.d/disable/
จากนั้นโหลดโดยใช้-a
พารามิเตอร์sudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
sudo service apparmor stop
และลบโมดูลเคอร์เนลโดยใช้sudo update-rc.d -f apparmor defaults
sudo service apparmor start
และโหลดโมดูลเคอร์เนลด้วยsudo update-rc.d apparmor defaults
โปรไฟล์จะถูกเก็บไว้ใน/etc/apparmor.d/
และตั้งชื่อตามเส้นทางแบบเต็มไปยังไฟล์ที่เรียกทำงานได้ซึ่งจะแทนที่ '/' ด้วย '.' ยกตัวอย่างเช่น/etc/apparmor.d/bin.ping
เป็นรายละเอียดสำหรับใน ping
/bin
มีรายการหลักสองประเภทที่ใช้ในโปรไฟล์:
รายการเส้นทางกำหนดว่าไฟล์ใดที่แอปพลิเคชันสามารถเข้าถึงได้
รายการความสามารถกำหนดสิทธิ์พิเศษที่กระบวนการสามารถใช้ได้
ให้ดูที่โปรไฟล์ping
ตั้งอยู่ในetc/apparmor.d/bin.ping
เป็นตัวอย่าง
#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>
รวมไฟล์global
ในไดเร็กทอรีtunables
ซึ่งอนุญาตให้ใช้คำสั่งที่เกี่ยวข้องกับหลายแอ็พพลิเคชันที่ต้องอยู่ในไฟล์ทั่วไป
/bin/ping flags=(complain)
ตั้งค่าพา ธ ไปยังโปรแกรมที่ทำโปรไฟล์และตั้งค่าโหมดให้บ่น
capability net_raw
อนุญาตให้แอปพลิเคชันเข้าถึงCAP_NET_RAW Posix.1e
ความสามารถ
/bin/ping mixr
อนุญาตให้แอปพลิเคชันอ่านและดำเนินการเข้าถึงไฟล์
/etc/modules.conf r,
The r
ให้แอปพลิเคชันอ่านสิทธิ์สำหรับ/etc/modules.conf
หมายเหตุ:หลังจากที่สร้าง / แก้ไขรายละเอียดที่คุณจำเป็นต้องโหลดรายละเอียดสำหรับการเปลี่ยนแปลงที่จะมีผลบังคับใช้
นี่คือรายการสิทธิ์ที่คุณสามารถใช้ได้:
r
- อ่าน w
- เขียน ux
- ดำเนินการไม่ จำกัด Ux
- ไม่ จำกัด ดำเนินการ - ขัดสิ่งแวดล้อม px
- ดำเนินการโปรไฟล์แบบไม่ต่อเนื่อง Px
- โพรไฟล์แบบแยกรัน - ขัดสภาพแวดล้อม ix
- สืบทอดการทำงาน m
- อนุญาตPROT_EXEC
ด้วยการmmap(2)
โทร l
- ลิงค์AppArmor เป็นระบบควบคุมการเข้าถึง (MAC) ซึ่งเป็นการปรับปรุงเคอร์เนล (LSM) เพื่อ จำกัด โปรแกรมไว้ในชุดทรัพยากรที่ จำกัด รูปแบบความปลอดภัยของ AppArmor คือการผูกแอ็ตทริบิวต์การควบคุมการเข้าถึงกับโปรแกรมมากกว่าให้กับผู้ใช้ AppArmor confinement ถูกจัดเตรียมผ่านโปรไฟล์ที่โหลดลงในเคอร์เนลซึ่งโดยปกติจะเป็นการบู๊ต โปรไฟล์ AppArmor สามารถอยู่ในหนึ่งในสองโหมด: การบังคับใช้และบ่น ส่วนกำหนดค่าที่โหลดในโหมดการบังคับใช้จะส่งผลให้มีการบังคับใช้นโยบายที่กำหนดไว้ในโปรไฟล์เช่นเดียวกับความพยายามละเมิดนโยบายการรายงาน (ผ่าน syslog หรือ auditd) โปรไฟล์ในโหมดบ่นจะไม่บังคับใช้นโยบาย แต่จะรายงานความพยายามละเมิดนโยบายแทน
AppArmor นั้นแตกต่างจากระบบ MAC อื่น ๆ บน Linux ที่เป็นแบบพา ธ อนุญาตให้ผสมการบังคับใช้และโปรไฟล์โหมดบ่นใช้ไฟล์รวมถึงการพัฒนาที่ง่ายและมีอุปสรรคน้อยกว่าระบบ MAC อื่นที่เป็นที่นิยม
AppArmor เป็นเทคโนโลยีที่จัดตั้งขึ้นเป็นครั้งแรกใน Immunix และต่อมารวมเข้ากับ Ubuntu, Novell / SUSE และ Mandriva ฟังก์ชันการทำงานหลักของ AppArmor อยู่ในเคอร์เนล mainline จาก 2.6.36 เป็นต้นไป ทำงานอย่างต่อเนื่องโดย AppArmor, Ubuntu และนักพัฒนาอื่น ๆ เพื่อรวมการทำงานของ AppArmor เพิ่มเติมลงในเคอร์เนล mainline
ฉันมีลิงก์ที่เป็นประโยชน์เพิ่มเติมเล็กน้อยกับคุณ: Wiki.Ubuntu.com Ubuntuforums.org
คู่มือ Apparmor สำหรับUbuntu 12.04และUbuntu 12.10
หวังว่าจะช่วยคุณ
นี่คือคำพูดจากApparmor wiki :
AppArmor เป็นระบบความปลอดภัยของแอพพลิเคชั่น Linux ที่มีประสิทธิภาพและใช้งานง่าย AppArmor ปกป้องระบบปฏิบัติการและแอปพลิเคชันในเชิงรุกจากภัยคุกคามภายนอกหรือภายในแม้กระทั่งการโจมตีแบบ zero-day โดยการบังคับใช้พฤติกรรมที่ดีและป้องกันแม้แต่ข้อบกพร่องของแอปพลิเคชันที่ไม่รู้จักจากการถูกโจมตี นโยบายความปลอดภัยของ AppArmor กำหนดว่าทรัพยากรระบบใดที่แต่ละแอปพลิเคชันสามารถเข้าถึงได้และมีสิทธิ์ใดบ้าง นโยบายเริ่มต้นจำนวนมากรวมอยู่ใน AppArmor และด้วยการใช้การวิเคราะห์แบบคงที่ขั้นสูงและเครื่องมือการเรียนรู้ขั้นสูงนโยบาย AppArmor สำหรับแอพพลิเคชั่นที่ซับซ้อนมากสามารถนำไปใช้งานได้ในเวลาไม่กี่ชั่วโมง