Linux Scurity Modelμ 리λ μ€ μ΄μ 체μ μμ μμ€ν μμμ λν μ κ·Ό κΆνμ κ΄λ¦¬νκ³ , 보μμ κ°ννκΈ° μν΄ μ€κ³λ λ€μν λ©μ»€λμ¦μ μλ―Έν¨
=> μ¬μ©μ, νλ‘μΈμ€, νμΌ, λ€νΈμν¬ μμ κ°μ μνΈμμ©μ μ μ΄νκ³ , λΆλ²μ μΈ μ κ·Όμ΄λ ν΄νΉμ λ°©μ§νλ λ° λμμ μ€
Linux Security Mdoelμ ν¬κ² λ κ°μ§ μ£Όμ μ κ·Ό μ μ΄ λ°©μμΌλ‘ λλ¨
Discretionary Access Control (DAC)
DACλ 리λ μ€μμ κ°μ₯ κΈ°λ³Έμ μΈ λ³΄μ λͺ¨λΈλ‘
μμ€ν μμμ μμ μκ° νμΌμ΄λ λλ ν 리 λ±μ μμμ λν΄ μ½κΈ°, μ°κΈ°, μ€ν κΆνμ λΆμ¬νκ±°λ μ νν μ μμ!
=> νμΌ κΆνκ³Ό μμ μ μ 보λ chmod, chown, chgrp λͺ
λ Ήμ ν΅ν΄ κ΄λ¦¬ κ°λ₯
(κ°μ²΄μ μ£Όμ²΄κ° μ κ·Ό μ¬λΆλ₯Ό κ²°μ νλ λΆμ°ν 보μ κ΄λ¦¬)
μ¬κΈ°μ κ°μ²΄λ μμμ νμΌ κ°μ μμ€ν μμμ΄κ³ 주체λ μμ μ κ°μ μμμ μ κ·Όνλ μ¬μ©μλ νλ‘μΈμ€λ‘ λ³Ό μ μμ
- μ₯μ
- κ°λ¨νκ³ μ μ°ν λ°©μμΌλ‘, μ¬μ©μκ° νμΌ κΆνμ μμ λ‘κ² κ΄λ¦¬ν μ μμ
- κ°μ²΄ (νμΌ) λ³ μΈλΆνλ μ κ·Ό μ μ΄
- λ¨μ
- 보μμ μ·¨μ½ν μ μμ (νμΌ μμ μκ° λ€λ₯Έ μ¬μ©μμκ² μμ λ‘κ² κΆνμ λΆμ¬ν μ μκΈ°μ μλͺ»λ μ€μ μΌλ‘ 보μ μν λ°μ)
Mandatory Access Control (MAC)
MACμ μ€μ μ μ± μ μν΄ μμμ λν μ κ·Ό κΆνμ΄ κ°μ λλ 보μ λͺ¨λΈμ
=> κ°λ³ μ¬μ©μκ° μμ μ΄ μμ ν νμΌμ λν΄ κΆνμ λ§μλλ‘ μ€μ ν μ μκ³ μμ€ν μ μ μ± μ λ°λΌ μ κ·Όμ΄ ν΅μ λ¨
(κ΄λ¦¬μλ§μ΄ μ κ·Ό μ μ΄μ κ·μΉμ μ€μ , λ³κ²½ν μ μλ μ€μμ§μ€ν 보μκ΄λ¦¬)
μ΄λ λ λμ 보μ μꡬμ¬νμ μΆ©μ‘±νκΈ° μν΄ μ¬μ©λλ©°, νμΌλΏλ§ μλλΌ νλ‘μΈμ€, λ€νΈμν¬ μμλ± λ€μν μμμ μ μ©λ¨
- μ₯μ
- λ§€μ° μ격ν 보μ
- λͺ¨λ κ°μ²΄μ λν κ΄λ¦¬κ° μ©μ΄
- λ§€μ° μ격ν 보μ
- λ¨μ
- μ΄μμ΄ λ³΅μ‘ν¨
- λͺ¨λ μ κ·Όμ λν΄ νμΈνλ―λ‘ μ±λ₯μ μ ν
(DACλ κ° νμΌλ§λ€ 미리 μ μλ κ°λ¨ν κΆνμ λΉκ΅νμ§λ§, MACμ λͺ¨λ μμ€ν μμκ³Ό νλ‘μΈμ€κ° μΌκ΄λ 보μ μ μ± μ λ°λΌ κ΄λ¦¬λ¨)
- μ΄μμ΄ λ³΅μ‘ν¨
μ΄λ° MAC μμ€ν μ΄ μ μ©λ λ κ°μ§ λνμ μΈ λ³΄μ νλ μμν¬κ° AppArmor μ SELinuxμ!
SELinux (Security - Enhanced Linux)
NSA(λ―Έκ΅ κ΅κ°μ보κ΅) μμ κ°λ°ν 보μ νλ μμν¬λ‘, μμ€ν μμμ λν μΈλ°ν μ κ·Ό μ μ΄λ₯Ό μ 곡ν΄μ€
λͺ¨λ νμΌ, νλ‘μΈμ€, λ€νΈμν¬ μμμ λν΄ λ³΄μ 컨ν μ€νΈ(λΌλ²¨)λ₯Ό ν λΉνμ¬ μ κ·Όμ μ μ΄νλ λ°©μ
=> μ μ± κΈ°λ°μΌλ‘ μ΄μλλ©°, 보μ μλ° μ μ΄λ₯Ό μ°¨λ¨νκ³ λ‘κ·Έλ₯Ό κΈ°λ‘ν¨
보μ 컨ν μ€νΈλ κ° μμκ³Ό νλ‘μΈμ€μ ν λΉλλ©°, 컨ν μ€νΈλ μ¬μ©μ, μν , μ ν, 보μ μμ€κ³Ό κ°μ μ 보λ₯Ό ν¬ν¨
μ μ± μ μμκ³Ό νλ‘μΈμ€ κ°μ μνΈμμ©μ λν κ·μΉμ μ μν¨
=> ex. νΉμ νλ‘μΈμ€κ° μ΄λ€ νμΌμ μ κ·Όν μ μλμ§, μ΄λ€ λ€νΈμν¬ ν¬νΈλ₯Ό μ΄ μ μλμ§λ₯Ό κ·μ
allow httpd_t httpd_sys_content_t:file { read open };
μμ κ°μ΄ κ·μΉμ μ ν΄λμΌλ©΄ httpd_t νλ‘μΈμ€κ° httpd_sys_content_t μ νμ νμΌμ λν΄ μ½κΈ°μ μ΄κΈ° κΆνμ νμ©νλ μ μ± μ
(SELinuxμμλ 보μ 컨ν
μ€νΈκ° λͺ
μμ μΌλ‘ μ μλμ§ μμ νλ‘μΈμ€λ νμΌμ λν΄ κΈ°λ³Έμ μΌλ‘ λͺ¨λ μ κ·Όμ μ°¨λ¨ν¨)
μμλ₯Ό μ΄ν΄λ³΄λ©΄
1. νλ‘μΈμ€κ° νμΌμ΄λ λ€νΈμν¬ μμμ μ κ·Όνλ €κ³ ν λ, μμ€ν μ ν΄λΉ μμ²μ 컀λλ‘ μ λ¬ν¨
2. 컀λμ μ κ·Όνλ €λ νλ‘μΈμ€μ μμμ 보μ 컨ν μ€νΈλ₯Ό νμΈν¨
(νλ‘μΈμ€κ° httpd_t μ νμ κ°μ§κ³ μκ³ νμΌμ΄ httpd_sys_content_t μ νμ κ°μ§λ€λ©΄ ν΄λΉ κ·μΉμ λ°λΌ μ κ·Ό νμ© μ¬λΆλ₯Ό νλ¨)
3. 컀λμ μ μ±
νμΌ (μ μ±
λ°μ΄ν°λ² μ΄μ€)μμ 미리 μ μλ κ·μΉμ μ°Έμ‘°νμ¬, httpd_t νλ‘μΈμ€κ° httpd_sys_content_t νμΌμ λν μ½κΈ° λλ μ΄κΈ° κΆνμ κ°μ§κ³ μλμ§ νμΈν¨
(μ μ±
λ°μ΄ν°λ² μ΄μ€λ μ μ±
νμΌμ΄ μ»΄νμΌλ ν μμ€ν
μ μ€μΉλλ©΄ 컀λμ μν΄ λ‘λλ¨ => 컀λμ μ΄λ₯Ό ν΅ν΄ μμ€ν
μ 보μ κ·μΉμ μ€μκ°μΌλ‘ μ μ©ν μ μμ)
=> λ³΄ν΅ μ»΄νμΌλ μ μ±
λͺ¨λμ /etc/selinux/targeted/modules/active/ μ΄ κ²½λ‘μ μ μ₯λ¨
4. μ μ±
μ λ°λΌ μ κ·Όμ allow / deny ν μ§ κ²°μ ν¨
(μ΄ λ λͺ
μμ μΌλ‘ νμ©λμ§ μμΌλ©΄ μ κ·Όμ deny)
AppArmor
Canonicalμμ κ°λ°ν 보μ νλ μμν¬λ‘, κ²½λ‘ κΈ°λ°μ μ κ·Ό μ μ΄λ₯Ό μ 곡ν΄μ€
νλ‘μΈμ€κ° νμΌ μμ€ν μ μ κ·Όν μ μλ κ²½λ‘μ μμμ νλ‘νμΌλ‘ μ μνμ¬ μ μ΄ν¨
=> κ° νλ‘μΈμ€μ λν΄ νλ‘νμΌμ μμνμ¬, ν΄λΉ νλ‘μΈμ€κ° μ΄λ€ νμΌ, λλ ν 리, λ€νΈμν¬ μμ λ±μ μ κ·Όν μ μλμ§λ₯Ό μ μ
(κ²½λ‘ κΈ°λ°μ΄λ―λ‘, μμμ κ²½λ‘λ₯Ό κΈ°μ€μΌλ‘ μ κ·Όμ μ μ΄ν¨)
μλ₯Ό λ€μ΄ /etc/passwd r κ°μ΄ κ·μΉμ μ ν΄λμΌλ©΄ ν΄λΉ νλ‘μΈμ€κ° /etc/passwd νμΌμ μ½μ μ μμμ μλ―Έν¨
νλ‘νμΌμ μ ν λͺ¨λ(complain mode)μ κ°μ λͺ¨λ(enforce mode) λ‘ μ€νλ μ μλλ° μ ν λͺ¨λμμλ μ μ± μλ°μ κΈ°λ‘λ§ νκ³ , κ°μ λͺ¨λμμλ μ μ± μλ° μ μ κ·Όμ μ°¨λ¨ν¨
μ 리ν΄λ³΄μλ©΄ μμμ λν μ κ·Ό μ μ΄λ νμΌμ΄λ λλ ν 리μ κ²½λ‘λ₯Ό κΈ°μ€μΌλ‘ μ΄λ£¨μ΄μ§κ³ νλ‘μΈμ€λ νμ©λ κ²½λ‘μ μμμλ§ μ κ·Όν μ μμ
(λͺ
μλμ§ μμμΌλ©΄ μ λΆ deny)
AppArmorμ νλ‘νμΌμ μΌλ°μ μΌλ‘ /etc/apparmor.d/ λλ ν 리 μλμ μμΉν¨
μ΄ λλ ν 리 μμλ μ μν΄λμ μ¬λ¬ νλ‘νμΌλ€μ΄ μμΉν΄μκ³ μ΄λ₯Ό κΈ°λ°μΌλ‘ νλ‘μΈμ€μ μ κ·Ό μμ²μ μ²λ¦¬ν¨
(νλ‘μΈμ€κ° μ κ·Ό μμ²μ ν λ AppArmorλ νμ¬ νμ±νλ νλ‘νμΌμ νμΈνμ¬ μ κ·Όν μ μλ μμλ° μμ μ νκ°)
=> νλ‘νμΌμ μμ ν νμλ λ³κ²½ μ¬νμ μ μ©ν΄μΌνκΈ°μ apparmor_parser λͺ
λ Ήμ΄μ -r μ΅μ
μ μ¬μ©νμ¬ νλ‘νμΌμ λ‘λ(νλ‘νμΌ νμ±ν) ν΄μΌν¨!
Linux Security Modules (LSM)
리λ μ€ μ»€λμμ 보μ κΈ°λ₯μ νμ₯ν μ μλλ‘ μ 곡λλ νλ¬κ·ΈμΈ μΈν°νμ΄μ€μ
=> SELinux, AppArmor λ±μ 보μ λͺ¨λμ΄ LSMμ ν΅ν΄ λμν¨
(μ΄λ₯Ό ν΅ν΄ 리λ μ€ μμ€ν μμ λ€μν 보μ λͺ¨λΈμ μΆκ°νκ±°λ κ΅μ²΄ν μ μμ)
'π Infra > Linux' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Macμμ vimrc νμΌ μμ μ read-only μλ¬ ν΄κ²° (Vim μ€μ ) (0) | 2024.10.02 |
---|