맨위로가기

리눅스 보안 모듈

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

리눅스 보안 모듈(LSM)은 리눅스 커널에 강제적 접근 통제(MAC) 모듈을 구현하기 위해 설계된 프레임워크이다. 시스템 호출 가로채기 대신 커널 객체 접근 직전에 훅을 삽입하여 다중 처리 환경에서 안정성을 확보하고 TOCTTOU 공격 취약점을 줄인다. LSM은 AppArmor, SELinux, Smack, TOMOYO Linux, Landlock 등 다양한 보안 모듈의 기반이 되었으며, 2003년 리눅스 커널 2.6에 통합되었다. LSM은 오버헤드와 다른 목적으로의 남용 가능성에 대한 비판을 받기도 한다.

더 읽어볼만한 페이지

  • 리눅스 커널 - 적재 가능 커널 모듈
    적재 가능 커널 모듈은 운영 체제 커널의 기능을 확장하거나 수정하기 위해 사용되며, 메모리 효율성, 시스템 유지보수, 개발 편의성을 제공하지만, 성능 저하, 보안 취약성, 호환성 문제 등의 단점도 존재한다.
  • 리눅스 커널 - 리눅스 리브레
    리눅스 리브레는 자유 소프트웨어 철학에 따라 리눅스 커널에서 독점 바이너리 블롭을 제거한 커널로, 보안과 안정성 향상을 가져오지만 일부 하드웨어 기능 제한을 초래할 수 있으며, 여러 리눅스 배포판에서 사용된다.
  • 운영 체제 보안 - NX 비트
    NX 비트는 하드웨어 기반 보안 기능으로, 메모리 페이지의 실행 권한을 제어하여 특정 영역에서 코드 실행을 막아 버퍼 오버플로 공격과 같은 보안 위협을 줄이는 데 사용되며, AMD에서 처음 도입 후 다양한 프로세서와 운영체제에서 DEP 등의 이름으로 구현되었다.
  • 운영 체제 보안 - 슈퍼유저
    슈퍼유저는 운영 체제에서 모든 권한을 가진 사용자를 지칭하며, 유닉스 계열에서는 root, 윈도우에서는 관리자 계정이 해당 역할을 수행한다.
리눅스 보안 모듈
개요
유형리눅스 커널 모듈
상태활성
사용 가능리눅스
작성 언어C 언어
라이선스GNU 일반 공중 사용 허가서 버전 2
상세 정보
설명리눅스 커널이 다양한 컴퓨터 보안 모델을 지원할 수 있도록 하는 프레임워크
관련 프로젝트
관련 프로젝트SELinux
AppArmor
Smack
TOMOYO Linux
Yama (Yet Another Mac Approach)

2. 설계

LSM은 리눅스 커널에 최소한의 변경만을 가하면서 강제적 접근 통제(MAC) 모듈을 구현할 수 있도록 설계되었다. LSM은 시스템 호출 가로채기 대신, 커널 객체 접근 직전에 "훅"을 삽입하는 방식을 사용한다. 이는 다중 처리 환경에서 안정적이며, TOCTTOU 공격에 대한 취약점을 줄인다.[23][24][1][2][7]

LSM은 일반적인 훅 메커니즘이나 운영 체제 수준 가상화를 지원하지 않는다. 시스템 감사와 유사하지만, 더 세밀한 접근 통제를 제공한다. 시스템 감사는 모든 접근 시도를 기록해야 하지만, LSM은 커널 "단락" 실패로 인한 오류 코드 반환을 탐지하기 위해 더 많은 훅이 필요하므로 모든 접근 시도를 기록하지는 않는다.[1][2][7][9][23][24]

LSM 설계는 USENIX Security 2002에서 발표된 논문 ''리눅스 보안 모듈: 리눅스 커널을 위한 일반 보안 지원''[7]에 설명되어 있다. 같은 컨퍼런스에서, 모든 필요한 훅이 실제로 리눅스 커널에 삽입되었는지 확인하기 위해 커널 코드의 자동 정적 분석을 연구한 논문 ''권한 부여 훅 배치에 대한 CQUAL 사용''[9]이 발표되었다.

3. 채택

보안 모듈설명
AppArmor응용 프로그램 프로파일을 기반으로 시스템 자원에 대한 접근을 제어한다.
SELinux미국 국가안보국(NSA)이 개발한 강제 접근 제어(MAC) 구현 보안 모듈이다.
Smack단순 강제 접근 제어 커널(Simplified Mandatory Access Control Kernel)의 약자로, 단순성을 강조한 모듈이다.
TOMOYO 리눅스일본 NTT 데이터가 개발하였으며, 시스템 동작을 분석하고 제어하는 기능을 제공한다.
Landlock프로세스가 스스로 권한을 제한할 수 있게 해주는 모듈이다.[4]


4. 역사

2001년 리눅스 커널 서밋에서 미국 국가안보국(NSA)은 보안 강화 리눅스(SELinux)를 리눅스 2.5에 포함할 것을 제안했다.[5] 그러나 리누스 토르발스는 여러 보안 모델이 개발 중이고 보안 커뮤니티가 아직 합의에 이르지 못했다는 이유로 이를 거부하고, 대신 "모듈로 만들라"고 지시했다.

이에 크리스핀 코완은 LSM을 제안했다.[6] LSM은 로드 가능한 커널 모듈이 강제적 접근 통제를 시행할 수 있도록 충분한 "훅"(업콜)을 제공하는 리눅스 커널의 인터페이스였다. 이후 2년간 이뮤닉스사(Immunix Corporation), NSA, 맥아피(McAfee), IBM, 실리콘 그래픽스(Silicon Graphics) 등 LSM 커뮤니티의 노력으로 개발되어, 2003년 리눅스 커널 2.6에 포함되었다.

2006년, 일부 커널 개발자들은 SELinux가 유일하게 널리 사용되는 LSM 모듈이라는 점을 들어 LSM을 제거하고 SELinux로 대체해야 한다고 주장했다. 그러나 AppArmor, 리눅스 침입 탐지 시스템(Linux Intrusion Detection System) 등 다른 LSM 모듈도 존재했고, 커널 서밋에서 리누스 토르발스는 최고의 보안 모델을 가릴 의사가 없다며 LSM 유지를 결정했다.

이후 Smack(2.6.25), TOMOYO 리눅스(2.6.30), AppArmor(2.6.36) 등 다양한 보안 모듈이 메인라인 커널에 채택되었다. LSM으로 구현된 보안 모듈은 커널 내에서 공존 가능하나 동시 실행은 불가능하며, 부팅 시 선택해야 한다. 리눅스 커널 2.6.24 이후, 특수 방법을 제외하고는 로드 가능한 커널 모듈(LKM)으로 보안 모듈을 구현할 수 없게 되었다.[14][15]

5. 비판

몇몇 리눅스 커널 개발자들은 LSM의 오버헤드와 다른 목적으로의 남용 가능성을 비판한다.[25] grsecurity 개발자는 LSM이 루트킷 삽입을 허용할 수 있다고 비판한다.[19] RSBAC영어 개발자는 LSM이 RSBAC의 필요성에 비해 불완전하다고 비판한다.[26][20] 독점 소프트웨어 모듈이 LSM을 우회하여 커널 접근 제한을 풀 가능성에 대한 우려도 존재한다.[16][17]

참조

[1] 웹사이트 Linux Security Modules: General Security Support for the Linux Kernel http://www.usenix.or[...] 2007-02-03
[2] 웹사이트 11th USENIX Security Symposium http://www.usenix.or[...] 2007-02-03
[3] 웹사이트 Using CQUAL for Static Analysis of Authorization Hook Placement http://www.usenix.or[...] 2007-02-03
[4] 웹사이트 Landlock: unprivileged access control https://landlock.io
[5] 웹사이트 Linux Security Modules: General Security Hooks for Linux http://www.hep.by/gn[...] 2015-10-26
[6] 웹사이트 Linux Security Module Interface http://marc.info/?l=[...] 2001-04-11
[7] 웹사이트 Linux Security Modules: General Security Support for the Linux Kernel http://www.usenix.or[...] 2007-02-03
[8] 웹사이트 CQual http://sourceforge.n[...]
[9] 웹사이트 Using CQUAL for Static Analysis of Authorization Hook Placement http://www.usenix.or[...] 2007-02-03
[10] 웹사이트 Linux Security Module Interface http://marc.info/?l=[...] 2001-04-11
[11] 문서
[12] 웹사이트 Time to remove LSM http://marc.info/?l=[...] 2006-04-17
[13] 웹사이트 Linux Security Module は不要なのか? https://srad.jp/stor[...] スラッシュドット・ジャパン 2006-04-19
[14] 웹사이트 AKARI: アクセスの保存および制限を行うためのツール http://akari.sourcef[...] akari.sourceforge.jp 2011-01-16
[15] 웹사이트 AKARI がどうやって、LSMフックの乗っ取っているのか調べてみた http://mkosaki.blog4[...] mkosaki.blog46.fc2.com 2010-10-14
[16] 웹사이트 Realtime Linux Security Module http://sourceforge.n[...] SourceForge.net 2009-07-17
[17] 웹사이트 Linux: Realtime Linux Security Module, 2.6 Latency http://kerneltrap.or[...] KernelTrap 2004-12-29
[18] 웹사이트 realtime-lsm in Andrew Morton's latest kernel patchset http://www.mail-arch[...] linux-audio-dev mailing list 2005-02-11
[19] 웹사이트 "grsecurity - Why doesn't grsecurity use LSM?" 等 http://www.grsecurit[...] grsecurity 2007-02-03
[20] 웹사이트 RSBAC and LSM http://www.rsbac.org[...] RSBAC 2007-02-03
[21] 웹사이트 2.10 What are the known issues with the LSM (Linux Security Modules) system? http://dazuko.org/tg[...] dazuko.org 2007-10-02
[22] 웹사이트 Dazuko - A Stackable Filesystem to Allow Online File Access Control http://dazuko.dnsali[...] dazuko.dnsalias.org 2011-01-25
[23] 웹인용 Linux Security Modules: General Security Support for the Linux Kernel http://www.usenix.or[...] 2017-08-06
[24] 웹인용 11th USENIX Security Symposium http://www.usenix.or[...] 2016-02-12
[25] 웹인용 grsecurity http://www.grsecurit[...] grsecurity 2016-02-12
[26] 웹인용 RSBAC and LSM http://www.rsbac.org[...] RSBAC 2016-02-12



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com