AppArmor
WhiteIntel은 다크 웹을 활용한 검색 엔진으로, 무료 기능을 제공하여 회사나 그 고객이 스틸러 악성 소프트웨어에 의해 침해당했는지 확인할 수 있습니다.
WhiteIntel의 주요 목표는 정보 도난 악성 소프트웨어로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.
그들의 웹사이트를 방문하여 무료로 엔진을 시험해 볼 수 있습니다:
기본 정보
AppArmor는 프로그램별 프로필을 통해 프로그램에 제공되는 리소스를 제한하는 것을 목적으로 하는 커널 개선으로, 사용자가 아닌 프로그램에 직접 액세스 제어 속성을 묶어 강제 액세스 제어(MAC)를 효과적으로 구현합니다. 이 시스템은 프로필을 커널에 로드하여 작동하며, 이러한 프로필은 프로그램이 액세스할 수 있는 리소스를 지시합니다. 네트워크 연결, raw 소켓 액세스 및 파일 권한과 같은 것들이 포함됩니다.
AppArmor 프로필에는 두 가지 운영 모드가 있습니다:
강제 모드: 이 모드는 프로필 내에서 정의된 정책을 적극적으로 시행하여 이러한 정책을 위반하는 조치를 차단하고 syslog 또는 auditd와 같은 시스템을 통해 이러한 위반 시도를 기록합니다.
불평 모드: 강제 모드와 달리 불평 모드는 프로필의 정책에 어긋나는 조치를 차단하지 않습니다. 대신, 이러한 시도를 정책 위반으로 기록하고 제한을 시행하지 않습니다.
AppArmor 구성 요소
커널 모듈: 정책 시행을 담당합니다.
정책: 프로그램 동작 및 리소스 액세스에 대한 규칙과 제한을 지정합니다.
파서: 정책을 커널에 로드하여 시행하거나 보고합니다.
유틸리티: AppArmor와 상호 작용하고 관리하기 위한 인터페이스를 제공하는 사용자 모드 프로그램입니다.
프로필 경로
AppArmor 프로필은 일반적으로 _/etc/apparmor.d/_에 저장됩니다.
sudo aa-status
를 사용하여 일부 프로필에 제한이 있는 이진 파일을 나열할 수 있습니다. 나열된 각 이진 파일의 경로에서 "/" 문자를 점으로 변경하면 언급된 폴더 내의 apparmor 프로필 이름을 얻을 수 있습니다.
예를 들어, _/usr/bin/man_에 대한 apparmor 프로필은 _/etc/apparmor.d/usr.bin.man_에 위치합니다.
명령어
프로필 생성
영향을 받는 실행 파일을 나타내기 위해 절대 경로 및 와일드카드가 허용됩니다 (파일 글로빙을 위해).
파일에 대한 이진 파일의 액세스를 나타내기 위해 다음 액세스 제어를 사용할 수 있습니다:
r (읽기)
w (쓰기)
m (메모리 맵을 실행 파일로)
k (파일 잠금)
l (하드 링크 생성)
ix (다른 프로그램을 새 프로그램에서 정책 상속하여 실행)
Px (환경을 정리한 후 다른 프로필 하에서 실행)
Cx (환경을 정리한 후 자식 프로필 하에서 실행)
Ux (환경을 정리한 후 비제한적으로 실행)
변수는 프로필에서 정의될 수 있으며 프로필 외부에서 조작할 수 있습니다. 예: @{PROC} 및 @{HOME} (프로필 파일에 #include <tunables/global> 추가)
허용 규칙을 재정의하는 거부 규칙이 지원됩니다.
aa-genprof
프로필 생성을 쉽게 시작하려면 apparmor를 사용할 수 있습니다. 이진 파일이 수행하는 작업을 apparmor가 검사한 다음 허용하거나 거부할 작업을 결정할 수 있습니다. 다음을 실행하면 됩니다:
그럼, 다른 콘솔에서 일반적으로 실행되는 이진 파일이 수행하는 모든 작업을 수행하십시오:
그럼, 첫 번째 콘솔에서 "s"를 누르고 기록된 작업에서 무시하거나 허용할지 여부를 지정하십시오. 완료하면 "f"를 누르고 새 프로필이 _/etc/apparmor.d/path.to.binary_에 생성됩니다.
화살표 키를 사용하여 허용/거부/기타를 선택할 수 있습니다.
aa-easyprof
또한 이진 파일의 apparmor 프로필 템플릿을 만들 수 있습니다:
기본적으로 생성된 프로필에서는 아무 것도 허용되지 않으므로 모든 것이 거부됩니다. 예를 들어 /etc/passwd r,
와 같은 줄을 추가하여 이진 파일이 /etc/passwd
를 읽을 수 있도록 허용해야 합니다.
그런 다음 새 프로필을 강제로 적용할 수 있습니다.
로그에서 프로필 수정
다음 도구는 로그를 읽고 감지된 금지된 작업 중 일부를 허용할지 사용자에게 물을 것입니다:
화살표 키를 사용하여 허용할지 거부할지 또는 기타 작업을 선택할 수 있습니다.
프로필 관리
로그
실행 파일 **service_bin
**의 _/var/log/audit/audit.log_에서 AUDIT 및 DENIED 로그의 예시:
당신은 다음을 사용하여 이 정보를 얻을 수도 있습니다:
도커에서의 Apparmor
도커의 프로필 docker-profile이 기본적으로 로드되는 방법에 주목하세요:
기본적으로 Apparmor 도커 기본 프로필은 https://github.com/moby/moby/tree/master/profiles/apparmor에서 생성됩니다.
도커 기본 프로필 요약:
모든 네트워킹에 액세스 권한
**능력(capability)**이 정의되지 않음 (그러나 일부 능력은 기본 기본 규칙을 포함하여 제공됨 예: #include <abstractions/base>)
/proc 파일에 쓰기가 허용되지 않음
다른 /proc 및 /sys의 하위 디렉토리/파일은 읽기/쓰기/잠금/링크/실행 액세스가 거부됨
마운트이 허용되지 않음
Ptrace는 동일한 apparmor 프로필에 의해 제한된 프로세스에서만 실행될 수 있음
도커 컨테이너를 실행하면 다음 출력이 표시됩니다:
참고로 apparmor는 기본적으로 컨테이너에 부여된 권한(capabilities privileges)도 차단할 것입니다. 예를 들어, SYS_ADMIN 권한이 부여되더라도 /proc 내부에 쓰기 권한을 차단할 수 있습니다. 이는 기본적으로 도커(apparmor) 프로필이 이 액세스를 거부하기 때문입니다:
Apparmor를 비활성화해야 제한을 우회할 수 있습니다:
기본적으로 AppArmor은 컨테이너가 SYS_ADMIN 능력을 갖고 있더라도 내부에서 폴더를 마운트하는 것을 금지합니다.
도커 컨테이너에 능력을 추가/제거할 수 있음을 유의하세요 (이는 AppArmor 및 Seccomp과 같은 보호 방법에 의해 여전히 제한될 것입니다):
--cap-add=SYS_ADMIN
은SYS_ADMIN
능력을 부여합니다.--cap-add=ALL
은 모든 능력을 부여합니다.--cap-drop=ALL --cap-add=SYS_PTRACE
은 모든 능력을 제거하고SYS_PTRACE
만 부여합니다.
일반적으로, 도커 컨테이너 내에서 특권 능력을 발견했지만 일부 부분의 exploit이 작동하지 않는 경우, 이는 도커 AppArmor가 방지하고 있기 때문일 수 있습니다.
예시
(여기의 예시에서 가져옴)
AppArmor 기능을 설명하기 위해 새로운 Docker 프로필 "mydocker"를 만들고 다음 줄을 추가했습니다:
프로필을 활성화하려면 다음을 수행해야 합니다:
프로필을 나열하려면 다음 명령을 사용할 수 있습니다. 아래 명령은 새로운 AppArmor 프로필을 나열합니다.
아래와 같이 AppArmor 프로필이 "/etc/"에 쓰기 액세스를 방지하고 있기 때문에 " /etc/"를 변경하려고 시도할 때 오류가 발생합니다.
AppArmor Docker Bypass1
컨테이너에서 실행 중인 apparmor 프로필을 찾을 수 있습니다.
그럼, 다음 줄을 실행하여 사용 중인 정확한 프로필을 찾을 수 있습니다:
AppArmor Docker Bypass2
AppArmor는 경로를 기반으로 하며, 이는 /proc
디렉토리 내의 파일을 보호하더라도 컨테이너가 실행될 방법을 구성할 수 있다면, 호스트의 proc 디렉토리를 **/host/proc
**에 마운트할 수 있으며, 이는 더 이상 AppArmor에 의해 보호되지 않을 것입니다.
AppArmor Shebang Bypass
이 버그에서 특정 리소스로 perl 실행을 방지하고 있더라도, 첫 줄에 **#!/usr/bin/perl
**을 지정한 쉘 스크립트를 만들고 해당 파일을 직접 실행하면 원하는 작업을 실행할 수 있습니다. 예:
WhiteIntel은 다크 웹을 기반으로 한 검색 엔진으로, 회사나 그 고객이 스틸러 악성 소프트웨어에 의해 침해당했는지 확인할 수 있는 무료 기능을 제공합니다.
WhiteIntel의 주요 목표는 정보를 도난하는 악성 소프트웨어로 인한 계정 탈취와 랜섬웨어 공격을 막는 것입니다.
그들의 웹사이트를 방문하여 무료로 엔진을 시험해 볼 수 있습니다:
Last updated