[Linux] AppArmor - 리눅스 커널 보안 모듈

nakkim·2022년 3월 6일
0

AppArmor란

  • 리눅스 애플리케이션 보안 시스템이다.
  • 내외부적 위협으로부터 운영체제와 애플리케이션을 능동적으로 보호한다.
  • MAC(Mandatory Access Control)를 제공해서 Unix DAC(Discretionary Access Control)를 보완한다.
  • 프로그램에서 액세스할 수 있는 파일을 지정하는 규칙 집합에 따라 프로그램을 제한

접근 통제

운영체제에서 접근 통제(Access Control)는
디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제하는 것을 의미한다.

DAC(임의적 접근 통제)

  • 시스템 객체에 대한 접근을 사용자나 그룹의 신분을 기준으로 제한
  • 사용자나 그룹이 객체의 소유자라면 다른 주체에 대해 해당 객체에 대한 접근 권한 설정 가능
  • 자신의 판단에 의해 권한을 줄 수 있기 때문에 임의적이라고 함

MAC(강제적 접근 통제)

  • 미리 정해진 정책과 보안 등급에 의거하여 접근 통제
  • 자원에 대한 접근은 주체의 보안등급과 객체의 보안레벨에 기반
  • 관리자만이 객체의 보안레벨, 주체의 보안등급을 수정할 수 있음
  • 높은 보안을 요구하는 정보는 낮은 보안 수준의 주체가 접근할 수 없음
  • 객체의 소유자라고 해도 정책에 어긋나면 객체에 접근할 수 없음


$ aa-status

리눅스 배포판에 AppArmor가 포함되어 있는지 확인하는 명령어
커널 모듈이기 때문에 보통 사용자가 직접 설치하지 않는다.
/etc/apparmor.d/ 디렉터리 내의 파일(=application profiles)을 편집하여 각 응용 프로그램이 수행할 수 있는 작업을 관리할 수 있다.
aa-status 명령어를 통해 현재 활성화된 프로필을 확인할 수 있다.

로그 메세지 확인

AppArmor는 잠재적으로 유해한 작업을 수행하려는 어플리케이션을 거부할 때마다 로그를 찍는다.
시스템에 따라 syslog, auditd, kernel log, journald logs에서 로그를 찾을 수 있다.

$ sudo journalctl -fx
audit[13172]: AVC apparmor="ALLOWED" operation="open"
profile="libreoffice-soffice"
name="/home/otto/.mozilla/firefox/ov37570l.default/cert8.db"
pid=13172 comm="soffice.bin" requested_mask="w"
denied_mask="w" fsuid=1001 ouid=1001

https://wiki.apparmor.net/

profile
nakkim.hashnode.dev로 이사합니다

0개의 댓글