42

[born2beroot] APPArmor

hio9_9 2023. 1. 16. 01:23

APPArmor란?

  • 리눅스 애플리케이션 보안 시스템
  • 내외부적 위협으로부터 운영체제와 애플리케이션을 능동적으로 보호
  • 정책 파일을 바탕으로 어떤 어플리케이션이 어떤 파일에 접근가능한지 등 애플리케이션이 실행 전 행동을 검사하고 실행여부를 결정
  • MAC(Mandatory Access Control)를 제공해서 Unix DAC(Discretionary Access Control)를 보완

 

접근 통제

  • 디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제하는 것
  • 시스템 자원을 객체(Object)라고 하며 자원에 접근하는 사용자나 프로세스는 주체(Subject)라고 정의
    • /etc/passwd 파일은 객체이고 이 파일에 접근해서 암호를 변경하는 passwd 라는 명령어는 주체
    • 아파치 웹 서버의 설정 파일인 /etc/httpd/conf/httpd.conf 는 객체이며 웹 서버 프로그램인 /sbin/httpd 는 주체가 됩니다.

 

DAC(임의적 접근 통제)

  • 시스템 객체에 대한 접근을 사용자나 또는 그룹의 신분을 기준으로 제한
  • 사용자나 그룹이 객체의 소유자라면 다른 주체에 대해 이 객체에 대한 접근 권한을 설정 가능
  • 임의적 = 소유자가 자신의 판단에 의해서 권한을 줄 수 있음 
  • 사용자가 임의로 접근 권한을 지정  사용자의 권한을 탈취당하면 사용자가 소유하고 있는 모든 객체의 접근 권한을 가질 수 있음
  • 보안이 취약 (발생 가능한 문제 링크 참고)

 

https://www.lesstif.com/ws/access-control-dac-mac-43843837.html

 

접근 통제(Access Control) 와 DAC/MAC

배포판의 종류와 버전에 따라 ping 에 setuid 비트가 붙지 않았을 수도 있습니다.

www.lesstif.com

 

MAC(강제적 접근 통제)

  • 미리 정해진 정책과 보안 등급에 의거하여 주체에게 허용된 접근 권한과 객체에게 부여된 허용 등급을 비교하여 접근을 통제
  • 자원에 대한 접근은 주체의 보안등급과 객체의 보안레벨에 기반
  • 높은 보안을 요구하는 정보는 낮은 보안 수준의 주체가 접근할 수 없음
  • 소유자라고 할 지라도 정책에 어긋나면 객체에 접근할 수 없음

 

실행모드

  • enforce mode - 허용되지 않은 동작을 제한, 로그 남김
  • complain mode - 허용되지 않은 동작을 로그에 기록, 막지는 않음
  • unconfined mode - 동작 제한 X, 로그 기록 X

 

사용하기

apt install apparmor apparmor-utils  # APPArmor 설치 (기본적으로 설치되어 있음)
aa -enabled                          # 활성화 여부 확인
aa -status                           # 현재 상태 확인