/////
Search
๐ŸŽพ

AppArmor vs SELinux

โ†’ SELinux

๊ด€๋ฆฌ์ž๊ฐ€ ์‹œ์Šคํ…œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” Linux ์‹œ์Šคํ…œ์šฉ ๋ณด์•ˆ ์•„ํ‚คํ…์ฒ˜ Security-Enhanced Linux์˜ ์•ฝ์ž
SELinux๋Š” 2000๋…„์— ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋ฆด๋ฆฌ์Šค ๋˜์–ด 2003๋…„์— ์—…์ŠคํŠธ๋ฆผ Linux ์ปค๋„๋กœ ํ†ตํ•ฉ ๋จ

How to work?

SELinux๋Š” ์‹œ์Šคํ…œ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ํ”„๋กœ์„ธ์Šค, ํŒŒ์ผ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ •์˜ํ•œ๋‹ค.
์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์ƒ์„ ์ •ํ•˜๋Š” ๋ฃฐ ์„ธํŠธ์ธ ๋ณด์•ˆ ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜์—ฌ ํ—ˆ์šฉ๋œ ์•ก์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
์•ก์„ธ์Šค๋ฅผ ์‹œ๋„ํ•˜๋Š” ์ฃผ์ฒด์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๊ฐ์ฒด์— ์•ก์„ธ์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ,
SELinux๋Š” ์ฃผ์ฒด์™€, ๋Œ€์ƒ์ด ๋˜๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•œ ๊ถŒํ•œ์ด ์บ์‹œ๋˜๋Š” AVC(Access Vector Cache)๋ฅผ ํ™•์ธํ•œ๋‹ค.
SELinux๊ฐ€ ์Šค์Šค๋กœ ์•ก์„ธ์Šค์— ๋Œ€ํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ณด์•ˆ ์„œ๋ฒ„์— ์•ก์„ธ์Šค ์ ‘๊ทผ ์š”์ฒญ์„ ์ „์†กํ•˜๋Š”๋ฐ,
๋ณด์•ˆ ์„œ๋ฒ„๋Š” ์ฃผ์ฒด์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ํ”„๋กœ์„ธ์Šค์˜ ๋ณด์•ˆ ์ปจํ…์ŠคํŠธ์™€ ํŒŒ์ผ์„ ํ™•์ธํ•œ๋‹ค.
๊ทธ ๋’ค ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ํ—ˆ์šฉ๋˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€๋œ๋‹ค.
๊ถŒํ•œ ๊ฑฐ๋ถ€ ์‹œ avc: denied๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ /var/log.messages์— ๋‚˜ํƒ€๋‚œ๋‹ค.

ย How to setting?

์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ํƒ€๊ฒŸ ์ •์ฑ… ๋˜๋Š” ๋‹ค๋‹จ๊ณ„ ์ •์ฑ…์ด๋ผ ๋ถˆ๋ฆฌ๋Š” MLS(Multi-Level Security)์ด๋‹ค.
ํƒ€๊ฒŸ ์ •์ฑ… ์€ ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ ๋‹ค์–‘ํ•œ ํ”„๋กœ์„ธ์Šค์™€ ํƒœ์Šคํฌ ๋ฐ ์„œ๋น„์Šค๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.
MLS๋Š” ๋งค์šฐ ๋ณต์žกํ•  ์ˆ˜ ์žˆ์–ด ๋ณดํ†ต ์ •๋ถ€ ๊ธฐ๊ด€์—์„œ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.
/etc/sysconfig/selinux ํŒŒ์ผ์„ ๋ณด๋ฉด ์‹œ์Šคํ…œ์ด ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
SELinux๊ฐ€ permissive mode์ธ์ง€, enforcing mode์ธ์ง€, ๋˜๋Š” ๋น„ ํ™œ์„ฑํ™” ๋ชจ๋“œ์ธ์ง€ ๊ทธ๋ฆฌ๊ณ  ์–ด๋Š ์ •์ฑ…์ด ๋กœ๋“œ ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ์„น์…˜์ด ์žˆ๋‹ค.

ย DAC(์ž„์˜ ์•ก์„ธ์Šค ์ œ์–ด) , MAC(ํ•„์ˆ˜ ์•ก์„ธ์Šค ์ œ์–ด)

์ „ํ†ต์ ์ธ Linux์™€ UNIX ์‹œ์Šคํ…œ์€ DAC๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. SELinux๋Š” Linux์šฉ MAC ์‹œ์Šคํ…œ์˜ ํ•œ ์˜ˆ์ด๋‹ค.
DAC ์‹œ์Šคํ…œ ์‚ฌ์šฉ ์‹œ ํŒŒ์ผ๊ณผ ํ”„๋กœ์„ธ์Šค์—๋Š” ์†Œ์œ ์ž๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ์„ ์†Œ์œ  ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋ฃน์ด ํŒŒ์ผ์„ ์†Œ์œ ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํŒŒ์ผ์„ ์†Œ์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ํ•ด์„œ ์†Œ์œ ์ž๋Š” ์ž์‹ ์˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
root ์‚ฌ์šฉ์ž๋Š” DAC ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ „์ฒด ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ฐ€์ง„๋‹ค. root ๊ถŒํ•œ์ด ์žˆ์œผ๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ํŒŒ์ผ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ  ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ SELinux์™€ ๊ฐ™์€ MAC ์‹œ์Šคํ…œ์—์„œ๋Š” ์•ก์„ธ์Šค์— ๋Œ€ํ•ด ๊ด€๋ฆฌ์ ์œผ๋กœ ์„ค์ •๋œ ์ •์ฑ…์ด ์žˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ์‹œ์Šคํ…œ ์ „์ฒด์˜ ์•ก์„ธ์Šค์— ๋Œ€ํ•œ ์ •์ฑ…์ด ์žˆ๋‹ค๋Š” ๋ง๊ณผ ๊ฐ™๋‹ค. ๋”ฐ๋ผ์„œ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ DAC ์„ค์ •์ด ๋ณ€๊ฒฝ ๋˜๋”๋ผ๋„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋‚˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ฒŒํ•˜๋Š” SELinux ์ •์ฑ…์ด ์‹œ์Šคํ…œ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•œ๋‹ค.

โ†’ AppArmor

Application Armor์˜ ์•ฝ์ž๋กœ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋ณด์•ˆ ๋ชจ๋“ˆ์ด๋‹ค.
AppArmor๋Š” ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœํ•„ ๋ณ„๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ์—ญ๋Ÿ‰์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋ณด์•ˆ ๋ชจ๋“ˆ์ด๋‹ค.
MAC(๊ฐ•์ œ์  ์ ‘๊ทผ ํ†ต์ œ)๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์ „ํ†ต์ ์ธ DAC(์ž„์˜์  ์ ‘๊ทผ ํ†ต์ œ) ๋ชจ๋ธ์„ ์ง€์›ํ•œ๋‹ค.

โ†’ ๋น„๊ต

type\categories
OS
Security Model
๋ณต์žก๋„
SELinux
RedHat(RHEL, Fedora, CentOS)
MAC (์‹œ์Šคํ…œ ์ „์ฒด)
๋ณต์žก
AppArmor
SUSE, Debian ๊ณ„์—ด
MAC (๊ฐœ๋ณ„ ํ”„๋กœ๊ทธ๋žจ)
๊ฐ„๋‹จ

Reference