의류 란 무엇입니까?


93

의류에 대한 이야기가 많이 들리고 다음을 알고 싶습니다.

  • 의류 란 무엇입니까?
  • 의류는 어떻게 작동합니까?

답변:


92

그것은 무엇인가

의류는 필수 액세스 제어 (또는 MAC) 시스템입니다. LSM 커널 향상을 사용하여 프로그램을 특정 자원으로 제한합니다. AppArmor는 시스템이 시작될 때 커널에 프로파일을로드하여이를 수행합니다. 의류에는 시행과 불만의 두 가지 유형의 프로필 모드가 있습니다. 시행 모드의 프로파일은 해당 프로파일의 규칙을 시행 하고 syslog또는 에서 위반 시도를보고 auditd합니다. 불평 모드의 프로필은 프로필 규칙을 시행하지 않으며 위반 시도 만 기록합니다.

우분투에서는 Apparmor가 기본적으로 설치됩니다. 프로그램이 액세스해야하는 파일 및 권한을 결정하기 위해 응용 프로그램을 프로파일로 제한합니다. 일부 응용 프로그램에는 자체 속성이 제공되며 apparmor-profiles패키지 에서 더 많이 찾을 수 있습니다 .

apparmor-profiles을 실행 하여 설치할 수 있습니다 sudo apt-get install apparmor-profiles.

이 게시물에 대해 다시 작성한 우분투 포럼에서 Apparmor의 좋은 예를 찾았습니다.

Apparmor는 응용 프로그램이 악의적으로 변하지 않도록하는 보안 프레임 워크입니다. 예를 들어 Firefox를 실행하고 home폴더 를 삭제하는 악성 프로그램을 설치하려고하는 나쁜 사이트를 방문하는 경우 Apparmor는 Firefox에 제한이 있지만 원하지 않는 작업 (예 : 음악, 문서 액세스 등)은하지 못합니다. 이런 방식으로 응용 프로그램이 손상 되더라도 아무런 해를 끼치 지 않습니다.

작동 원리

apparmor-utils패키지는 AppArmor의 구성을위한 명령 줄 도구가 포함되어 있습니다. 그것을 사용하여 의류의 실행 모드를 변경하고, 프로파일의 상태를 찾아 새로운 프로파일을 생성하는 등을 할 수 있습니다.

가장 일반적인 명령은 다음과 같습니다.

참고 : 프로파일은/etc/apparmor.d/

  • 에서 의복 상태를 확인할 수 있습니다 sudo apparmor_status. 로드 된 모든 프로파일, 강제 모드의 모든 프로파일, 불만 모드의 모든 프로파일, 강제 / 불평에 정의 된 프로세스 등의 목록이 표시됩니다.
  • 에 프로필을 넣으려면 불평 사용 모드를 sudo aa-complain /path/to/bin여기서 /path/to/bin프로그램의입니다 bin폴더. 예를 들어, running : sudo aa-complain /usr/bin/firefox을 실행 하면 Firefox가 불평 모드에있게됩니다.
  • sudo aa-enforce /path/to/bin프로그램 프로파일을 시행하는 데 사용 합니다.
  • 당신은로드 할 수 있는 모든 / 불평에 프로필과 모드를 적용 sudo aa-complain /etc/apparmor.d/*하고 sudo aa-enforce.d/*각각.

커널에 프로파일을로드하려면 사용 apparmor_parser합니다. -r매개 변수를 사용하여 프로파일을 다시로드 할 수 있습니다 .

  • 프로파일을로드하려면 다음을 사용하십시오. : Apparmor의 파서에 cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a내용을 효과적으로 인쇄합니다 profile.name.
  • 프로파일을 다시로드하려면 -r다음과 같이 매개 변수 를 사용하십시오 .cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
  • 모든 Apparmor의 프로파일을 다시로드하려면 다음을 사용하십시오. sudo service apparmor reload

프로필을 사용하지 않으려면 당신은 연결/etc/apparmor.d/disable/사용하여 ln다음과 같이 : sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/다음을 실행합니다 sudo apparmor_parser -R /etc/apparmor.d/profile.name.

참고 : 그것들apparmor_parser -r과혼동하지 마십시오apparmor_parser -R.

  • 프로파일을 다시 활성화하려면 해당 심볼릭 링크를 제거한 /etc/apparmor.d/disable/다음 -a매개 변수를 사용하여로드하십시오 .sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
  • 를 사용하여 의류를 비활성화 sudo service apparmor stop하고 커널 모듈을 제거 할 수 있습니다sudo update-rc.d -f apparmor defaults
  • 에서 시작하여 sudo service apparmor start커널 모듈로드sudo update-rc.d apparmor defaults

프로필

프로파일은 /etc/apparmor.d/'/'를 '.'로 바꾸어 프로파일 링 한 실행 파일의 전체 경로에 저장되고 이름이 지정됩니다. 예를 들어 /etc/apparmor.d/bin.ping대한 프로파일이다 ping에서 /bin.

프로파일에 사용되는 두 가지 주요 유형의 항목이 있습니다.

  1. 경로 항목 은 응용 프로그램이 액세스 할 수있는 파일을 결정합니다.

  2. 기능 항목은 프로세스가 사용할 수있는 권한을 결정합니다.

대한 프로파일 볼 수 ping있는 위치, etc/apparmor.d/bin.ping예를 들어,.

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global>global디렉토리에 파일 을 포함하여 tunables여러 응용 프로그램과 관련된 명령문을 공통 파일에 배치 할 수 있습니다.

/bin/ping flags=(complain)프로파일 링 된 프로그램의 경로를 설정하고 모드가 불평하도록 설정합니다.

capability net_raw애플리케이션이 CAP_NET_RAW Posix.1e기능에 액세스 할 수 있도록합니다 .

/bin/ping mixr 응용 프로그램이 파일에 대한 읽기 및 실행 액세스를 허용합니다.

/etc/modules.conf r,r응용 프로그램 제공 읽기 에 대한 권한을/etc/modules.conf

참고 : 프로파일을 작성 / 편집 한 후 변경 사항을 적용하려면 프로파일을 다시로드해야합니다.

사용할 수있는 권한 목록은 다음과 같습니다.

  • r - 읽다
  • w -쓰다
  • ux -제한되지 않은 실행
  • Ux -제한되지 않은 실행-환경을 스크러빙
  • px -개별 프로파일 실행
  • Px -개별 프로파일 실행-환경 스크럽
  • ix -상속 실행
  • m - 수 PROT_EXECmmap(2)통화
  • l -링크

출처


그래서 그것은 일종의 사용자처럼 행동하고 시스템의 대부분의 파일을 수정할 권한이없는 프로그램과 비슷합니까?
이즈 카타

예, 아니오 특정 애플리케이션이 수행 할 수있는 작업을 정의 하는 프로파일 을 설정합니다 . 그런 다음 해당 프로파일에 프로그램을 추가하면 해당 프로파일의 프로그램이 수행 할 수있는 작업이 제한됩니다. 따라서 관리자 (사용자)가 프로필에서 할 수있는 내용에만 액세스 할 수 있기 때문에 사용자와 같습니다.
Seth

아, 그래서 프로필은 프로그램의 사용자 그룹과 같습니다;)
Izkata

그렇습니다 많이 그런;)
Seth

모든 인터넷 연결을 차단하고 누가 액세스하려고하는지 말하기 위해 apparmor를 사용할 수 있다고 생각하십니까? 해당 로그를 기반으로 각 애플리케이션에 대한 권한을 생성합니까? 아이디어는 window $의 Zonalarm처럼 작동하고 LeopardFlower 및 ProgramGuard와 같은 Linux의 오래된 "응용 프로그램 당 방화벽"과 같이 작동하는 것입니다 (더 이상 생각할 수없는 것 같습니다). 작업을 수행하기위한 커널 모듈
Aquarius Power

6

AppArmor는 프로그램을 제한된 리소스 세트로 제한하기 위해 커널 (LSM) 향상 기능인 MAC (필수 액세스 제어) 시스템입니다. AppArmor의 보안 모델은 액세스 제어 속성을 사용자가 아닌 프로그램에 바인딩하는 것입니다. AppArmor 제한은 일반적으로 부팅시 커널에로드 된 프로파일을 통해 제공됩니다. AppArmor 프로파일은 시행 및 불만의 두 가지 모드 중 하나 일 수 있습니다. 시행 모드로로드 된 프로파일은 프로파일에 정의 된 정책을 시행하고 정책 위반 시도를보고합니다 (syslog 또는 감사를 통해). 불평 모드의 프로필은 정책을 시행하지 않고 정책 위반 시도를보고합니다.

AppArmor는 경로 기반이며 적용 및 불평 모드 프로파일을 혼합 할 수 있으며 포함 파일을 사용하여 개발을 용이하게하며 다른 대중적인 MAC 시스템보다 진입 장벽이 훨씬 낮다는 점에서 Linux의 다른 MAC 시스템과 다릅니다.

AppArmor는 Immunix에서 처음 발견 된 기술이며 나중에 Ubuntu, Novell / SUSE 및 Mandriva에 통합되었습니다. 핵심 AppArmor 기능은 2.6.36 이상에서 기본 Linux 커널에 있습니다. AppArmor, Ubuntu 및 기타 개발자는 추가 AppArmor 기능을 기본 커널에 병합하기 위해 작업을 진행하고 있습니다.

도움이 더 필요한 링크가 있습니다 : Wiki.Ubuntu.com Ubuntuforums.org

Ubuntu 12.04Ubuntu 12.10 용 의류 가이드

희망이 당신을 도울 것입니다.


3

다음은 Apparmor 위키 의 인용문 입니다 .

AppArmor는 효과적이고 사용하기 쉬운 Linux 응용 프로그램 보안 시스템입니다. AppArmor는 올바른 동작을 적용하고 알 수없는 응용 프로그램 결함도 악용되지 않도록하여 외부 및 내부 위협, 심지어 제로 데이 공격으로부터 운영 체제와 응용 프로그램을 사전에 보호합니다. AppArmor 보안 정책은 개별 응용 프로그램이 액세스 할 수있는 시스템 리소스와 권한을 완전히 정의합니다. AppArmor에는 여러 가지 기본 정책이 포함되어 있으며 고급 정적 분석 및 학습 기반 도구를 조합하여 매우 복잡한 애플리케이션에 대한 AppArmor 정책을 몇 시간 안에 성공적으로 배포 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.