Admin관리자   |    Posting포스트   |    LogOut로그아웃
:+:하늘을닮은호수:+: | Trac | 블로그   |    위치로그   |    태그로그   |    방명록


하늘을 닮은 호수
http://sunsson.iptime.org
Category
전체 (966)
[Standard] (59)
[OS] (119)
[Develope] (77)
[IT Trend] (347)
[Music] (101)
[삶의 질] (262)
Tag List
trac   3GPP   IPTV   svn   2MB   mysql   RTP   VoIP   c99   PSS   FLV   ffmpeg   grep   cdn   손예진   avc   memory_leak   H.263   팔봉산   awk   BIFS   연애시대   행복   IPv6   이명박대운하   광우병소고기   proactor   hint track   rtsig   SElinux  
‘SElinux’에 해당되는 글 2건
SElinux
Date : 2007/09/17 10:41

출처 : http://www.rootman.co.kr/NFS2/pds/Linux/SELinux.pdf

SELinux란?
A: 휘도라 코어(Fedora Core)의 SELinux(Security-Enhanced Linux)란 리
눅스 보안 모듈 구조체(Linux Security Modules(LSM) framework)를 이용
하여 리눅스 커널에 의무 접근 제어(Mandatory Access Control - MAC)를
구현하는 것이다. 표준 리눅스 보안(Standard Linux Security)은 자유재량
접근 제어(Discretionary Access Control – DAC) 모델이다. DAC 모델에서,
파일과 자원에 대한 결정권은 오직 해당 객체(objects)의 사용자(user id)에
게 있고 소유권(ownership)에 따라 이뤄진다. 각 사용자와 그 사용자에 의
해 실행된 프로그램은 자기에게 할당된 객체에 대해 전적으로 자유재량권을
갖는다. 이러한 상황에서는, 악의 있는 일반 혹은 루트 사용자(예로, setuid
와 setgid)가 실행시킨 결함이 있는 소프트웨어를 통해 주어진 객체로 원하
는 어떠한 일을 해도 막아낼 방법이 없으며 보안 정책을 시스템 전체에 걸
쳐 시행되도록 할 방법이 없다.
MAC 시스템은 위와 같은 빠져있는 요소들을 제공한다. 첫 째, 보안 정책을
모든 프로세스나 객체에 대하여 관리차원으로 규정 지을 수 있다. 둘 째, 커
널에 SELinux를 구현하면, 모든 프로세스와 객체를 제어할 수 있다. 셋 째,
결정은 단지 인증된 사용자(user identity)에 의해서가 아니라 이용 가능한
(available) 모든 보안 관련 정보에 근거하여 이뤄진다.
SELinux하에서 MAC는 모든 주체(subjects – 사용자, 프로그램, 프로세스)와
객체(파일, 디바이스)에 대해서 국부적으로 허가(granular permissions)해 줄
수 있다. 응용프로그램에서 불필요한 부분은 제외하고 오직 필요한 기능에
대해서만 사용 권한을 안전하게 부여한다.
SELinux 구현은 역할과 유형 시행(Type Enforcement - TE)에 기초하여 추
상적 사용자 수준 제어(abstracted user-level control)를 제공하는 역할 기
반 접근 제어(role-based access control – RBAC)를 사용한다. TE는 접근
제어를 처리하기 위해서 테이블(매트릭스)을 이용한다. 주체는 영역(domain)
을 갖고 객체는 유형을 갖으므로, 매트릭스에서 교차조회하여 이들의 상호작
용을 규정한다. 이는 리눅스 시스템에 있는 모든 동작자(actor)에 대하여 극
단적으로 국부 제어를 가능케 한다.
Q: SELinux 정책이란?
A: SELinux 정책은 사용자, 프로그램, 프로세스 그리고 이들의 동작 대상인
파일과 디바이스를 포함한 시스템 전체, 즉, 모든 주체와 객체에 대한 접근
허가(access permissions)를 기술한다. 휘도라 코아 정책은 관련 소스 패키
지와 함께 패키지로 공급된다. 현재 공급되는 정책 패키지는 다음과 같다.
• selinux-policy-strict-.rpm and selinux-policy-strict-sources-
.rpm
• selinux-policy-targeted-.rpm and selinux-policy-targetedsources-<
version-arch>.rpm
설치시 정책 소스는 /etc/selinux/policyname/src/policy에, 바이너리 정책 파일은
/etc/selinux/policyname/policy에 놓인다. 정책 소스는 최소 설치(ultra-minimal
installations)에 포함되지 않는다. 유형과 영역에 대한 정책은 주체와 객체에
대한 보안 문맥과 구분해서 별도로 설정된다.
Q: SELinux 목표 정책(SELinux targeted policy)이란?
A: 처음 SELinux가 휘도라 코아에 포함됐을 때, NSA의 엄격한 정책이 시행
됐었다. 시험 목적으로, 이는 그 엄격한 정책을 통해서 수백가지 문제점을
찾아낼 수 있었다. 뿐만 아니라, 휘도라 사용자들의 다양한 환경에 단 하나
의 엄격한 정책을 적용한다는 것은 실효성이 없다는 것이 명백히 드러났다.
기본 설치 이외의 것에 대해서 단일 엄격한 정책을 적용하는 것은 현지 일
반 사용자에게 전문 지식(기술)을 요구하는 것이었다.
이 시점에서, SELinux 개발자들은 사용자들이 선택한 내용을 검토하고, 다른
전략을 시도하기로 결정했다. 특정 데몬들, 특히, 깨지거나 손상(오염)되면
시스템을 황폐화시키거나 공격받기 쉬운 것들을 옥죄는(lock down) 데 초점
을 맞추는 정책을 만들기로 했다. 시스템의 나머지 부분은 SELinux가 활성
(enabled)이든 아니든 관계없이 똑같이 가동되도록, 즉, 마치 표준 리눅스
보안하에 운영되고 있는 것처럼 동작하도록 허용한다.
목표 정책 하에서, 대부분의 프로세스는 unconfined_t domain(무제한 영역)에
서 가동된다. 그 이름이 의미하는 바와 같이, 이 프로세스들은 거의
SELinux 정책에 의한 제한을 받지 안는다. 그러나, 그 프로세스들은 여전히
표준 리눅스/유닉스 보안에 의해 통제된다.
특정 네트워크 데몬들은 전용 정책을 갖고 있어, 응용프로그램이 시작될 때,
무제한 정책(unconfined_t policy)이 전용 정책으로 전이된다. 예를 들면, 시스
템 부팅시, init는 무제한 정책하에서 가동하지만, named가 시작할 때,
named 영역으로 전이되고 적시에 적절한 정책에 의해 옥죄어진다.
각 구체적인 데몬에 대한 목표 정책을 활성화 혹은 비활성화 시키는 것에
관하여 더 알고 싶으면, system-config-securitylevel의 사용법을 참조하기
바란다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/09/17 10:41 2007/09/17 10:41
Top

블로그코리아에 블UP하기
SElinux
Date : 2007/09/17 10:36

출처 : http://www.hackerslab.org/korg/view.fhz?menu=news&no=1852

[좁은문님 曰] SELinux 써 보셨습니까? 저는 들어 보기만 하고 아직 사용해 본 적이 없습니다만 사용해 보신 분들의 말씀을 듣고 싶군요. CNet에 SELinux에 관한 글이 실렸군요. SELinux는 좀 더 안전한 리눅스를 위해 미 국가안보국 NSA에 의해 개발된 리눅스로, 무료로 다운받을 수 있습니다. 아래는 ZDNet-UK에 실린 CNet 기사 요약입니다:

===================
리눅스를 사용한다고 해서 해커의 타겟이 되지 않을 것이란 건 순진한 생각이다. 리눅스로 호스팅을 하거나 중요한 데이터를 전송하는데 사용하고 있다면 미 국가안보국이 개발해 무료로 배포하고 있는 SELinux(Security-Enhanced Linux)를 사용해 볼 것을 권한다.

2001년 1월 최초로 릴리스된 SELinux는 오픈소스 리눅스 커널의 보안을 강화시켜 파일 변조와 어플리케이션 보안 프로시저 무사통과를 막고, 악성 어플리케이션에 의한 피해를 줄이기 위한 목적으로 NSA 연구 프로젝트에 의해 개발되었다.

일반적으로 리눅스 시스템 보안은 커널과 setuid/setgid 바이너리를 통해 생성된 종속관계에 의존한다. 그렇기 때문에 이런 보안 매커니즘에서는 권한이 부여되는 어플리케이션의 설정을 이용, 실행중인 프로세스의 취약점을 익스플로이트하면 전체 시스템을 장악할 수 있게 되는 경우가 많다. 다른 어플리케이션과의 호환성과 상호 운영으로 인한 이 문제점은 현재 우리가 사용하고 있는 대부분 운영 시스템의 문제점이기도 하다.

SELinux는 커널과 보안 설정 정책을 최우선순위로 하기 때문에 보안 시스템을 올바르게 설정만 한다면, 어플리케이션과 daemonm 등을 잘못 설정하더라도 사고시 사용자 프로그램과 시스템 daemon을 망치는 데만 그친다. 기본적인 시스템 구조는 물론 다른 사용자 프로그램과 daemon은 손상되지 않는다.

간단히 말해서 어플리케이션 설정상의 취약점이나 익스플로이트가 전체 시스템을 망칠 수 없다는 소리다.

SELinux 설치하기

SELinux 커널, 유틸리티, daemon/유틸리티 패치, 문서화는 Security-Enhanced Linux 웹사이트에서 다운로드 가능하다. 현재 사용하고 있는 리눅스 시스템을 새 커널로 컴파일 해서 수정되지 않은 시스템 패키지로 엑세스 해야 한다.

개발자들은 최신 릴리스를 레드햇 배포판과 함께 테스트 했는데 최근 리눅스 어플리케이션과 호환 가능하다고 한다.

커널을 컴파일해 permissive 모드에서 실행되게 할 수 있다. 이 모드는 보안 설정 정책 검사 모드로 설치된 사용자 어플리케이션과 시스템 운영상 필요한 퍼미션을 결정하게 해 준다.

SELinux를 사용하면 가장 좋은 점은 사용자 프로그램을 그 프로그램의 실행에 필요한 최소한의 권한으로 제한할 수 있다는 점이다. 또한 커널 오브젝트와 서비스 엑세스 컨트롤, 프로세스 초기화, 상속, 프로그램 실행 엑세스 컨트롤, 파일 시스템, 디렉토리, 파일 오픈파일 description 엑세스 컨트롤, 소켓, 메세지, 네트워크 인터페이스 컨트롤 등의 기능이 있다.

SELinux를 사용하면 모든 사용자와 시스템 어플리케이션을 계속해서 업데이트할 필요가 없이, 패치와 업데이트를 편할 때 적용해도 되기 때문에 좋다.

SELinux는 아직 개발중인 프로젝트다. NSA는 중요한 정보가 있는 시스템에 SELinux를 사용하라고 권장한 적은 없지만 나는 지난 한해 동안 SELinux를 사용했는데 시스템에 문제가 생긴적이 한번도 없었다.

일단 다운로드 받아서 테스트를 해 볼 것을 권한다.

NSA(The National Security Agency)
다운로드 ZDNet-UK

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/09/17 10:36 2007/09/17 10:36
Top

블로그코리아에 블UP하기
Creative Commons License
블로그 내에 모든 저작물은 크리에이티브 커먼즈코리아 저작자표시 - 비영리 - 변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
최근 덧글
펼치기
최근 트랙백
펼치기
Today :
29
Yesterday :
207
Total :
78520
Powered by :
Textcube
ver :
1.7.5 : Risoluto
skin by :