TOMOYO Linux: A Mandatory Access Control Method Based on Application Execution State
이 논문은 전통적인 애플리케이션-파일 조합에만 의존하는 대신 애플리케이션의 실행 이력과 의도를 평가함으로써 악의적인 접근 및 운영 오류의 위험을 줄여 시스템 보안을 강화하는 새로운 강제 접근 제어 방식인 TOMOYO Linux를 소개한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신의 컴퓨터가 거대하고 북적이는 사무실 건물이라고 상상해 보세요. 이 건물 안에는 수천 명의 직원(애플리케이션)들이 각자의 업무를 수행해야 합니다. 어떤 이들은 파일을 읽어야 하고, 어떤 이들은 보고서를 작성해야 하며, 어떤 이들은 전화 통화(네트워크 연결)를 해야 합니다.
과거의 방식: "당신은 누구십니까?"라고 묻는 보안 요원
오랫동안 컴퓨터 보안은 건물 정문 앞에 서 있는 매우 단순하고 약간은 혼란스러워 보이는 보안 요원처럼 작동했습니다. 이 요원은 오직 두 가지만 질문했습니다:
- "당신은 누구입니까?" (어떤 애플리케이션인가?)
- "어떤 문을 열려고 합니까?" (어떤 파일에 접근하려는 것인가?)
만약 요원이 "웹 브라우저" 직원이 "비밀번호 파일"이라는 문을 열려고 하는 것을 본다면, 그는 목록을 확인합니다. 만약 목록에 "웹 브라우저는 비밀번호 파일을 열 수 있다"라고 적혀 있다면, 그는 입장을 허용합니다. 그렇지 않다면, 그는 그를 막아섭니다.
문제점: 이 시스템은 너무 투박합니다. 이 요원은 웹 브라우저가 왜 그 파일을 열려고 하는지는 신경 쓰지 않습니다.
- 시나리오 A: 브라우저가 단순히 일반적인 웹페이지를 불러오는 중입니다. (안전함)
- 시나리오 B: 브라우저가 해커에게 속아 당신의 비밀번호 파일을 훔치려 하고 있습니다. (위험함!)
과거의 요원은 동일한 직원(웹 브라우저)과 동일한 문(비밀번호 파일)을 봅니다. 그는 안전한 방문과 절도의 차이를 구분할 수 없습니다. 그래서 그는 모두를 들여보내거나(위험함), 아니면 모두를 못 들어오게 막아버립니다(비현실적임).
새로운 방식: TOMOYO Linux ( "이야기를 듣는" 보안 요원)
이 논문의 저자들은 리눅스 컴퓨터를 위한 새로운 종류의 보안 요원을 제안합니다. 바로 TOMOYO입니다. 이 요원은 단순히 "당신은 누구십니까?"라고 묻지 않습니다. 그는 **"당신은 어떻게 여기까지 왔습니까? 그리고 당신의 이야기는 무엇입니까?"**라고 묻습니다.
"실행 이력(Execution History)"의 마법
이미지를 떠올려 보세요. 사무실의 모든 직원이 채용되거나 새로운 업무를 시작할 때마다, 그들은 여권 도장을 받습니다.
- 만약 메인 로비에서 로그인했다면, 다음과 같은 도장을 받습니다: 로비 -> 접수처 -> 당신의 책상.
- 만약 뒷창문을 통해 시스템에 침입하도록 해킹당했다면, 당신의 도장은 다음과 같이 다를 것입니다: 뒷창문 -> 환기구 -> 당신의 책상.
TOMOYO는 실행 중인 모든 프로그램의 이러한 전체 **이력(history)**을 추적합니다. 이 시스템은 애플리케이션이 현재 상태에 도달하기 위해 거친 정확한 경로를 알고 있습니다.
실제 적용 사례
셸(Shell)(명령어를 입력할 수 있게 해주는 명령줄 도구)을 예로 들어 보겠습니다. 기존 시스템에서 셸은 그냥 셸일 뿐입니다. 하지만 TOMOYO에서 요원은 여권을 살펴봅니다:
- 안전한 셸: 당신이 자신의 컴퓨터 콘솔에서 로그인했습니다.
- 이력: 커널 -> 로그인 화면 -> 당신의 셸.
- 요원의 결정: "좋습니다. 이 사용자는 신뢰할 수 있습니다. 당신이 필요한 거의 모든 프로그램을 실행해도 좋습니다."
- 의심스러운 셸: 아파치(Apache) 웹 서버(웹사이트를 구동하는 프로그램)가 해킹되어, 침입을 시도하기 위해 셸을 생성했습니다.
- 이력: 커널 -> 웹 서버 -> 해킹된 셸.
- 요원의 결정: "잠깐만요! 웹 서버로부터 온 셸은 의심스럽습니다. 당신은 로그 파일을 읽는 것과 같은 매우 특정한 일들만 할 수 있습니다. 위험한 프로그램을 실행하거나 파일을 삭제하는 것은 허용되지 않습니다."
두 경우 모두 정확히 동일한 프로그램 파일(/bin/bash)을 실행하고 있음에도 불구하고, TOMOYO는 그들의 이야기가 다르기 때문에 그들을 완전히 다르게 취급합니다.
"화이트리스트(Whitelist)" 접근 방식
TOMOYO는 엄격한 화이트리스트 방식으로 작동합니다.
- 기존 시스템 (블랙리스트): "나는 당신이 나쁜 짓을 한다는 것을 알게 되면 막을 것입니다." (하지만 해커들은 항상 나쁜 짓을 하는 새로운 방법을 만들어냅니다.)
- TOMOYO (화이트리스트): "나는 당신의 특정 이야기 속에 적혀 있는 것들만 정확히 허용할 것입니다."
만약 프로그램이 자신의 특정 "이야기 목록"에 없는 행동을 하려고 하면, 요원은 즉시 이를 차단합니다. 설령 그 프로그램이 "슈퍼 유저(관리자)" 권한으로 실행 중이라 하더라도, 요원은 개의치 않습니다. 규칙은 모두에게 적용됩니다.
왜 이것이 더 나은가 (논문의 주장)
이 논문은 이 방법이 기존 시스템이 해결할 수 없었던 문제들을 해결한다고 주장합니다:
- "변장한" 공격을 차단합니다: 만약 해커가 위험한 파일을 안전한 파일처럼 보이도록 이름을 바꾼다면, 기존의 요원은 속을 수 있습니다. 하지만 TOMOYO는 이력과 인자(arguments)(프로그램에 주어진 구체적인 지침)를 살펴봄으로써 그 행동이 타당한지 판단합니다.
- 관리가 더 쉽습니다: 건물 전체에 대해 복잡한 규칙을 추측하는 대신, 관리자는 "학습 모드(learning mode)"를 통해 관찰할 수 있습니다. 시스템은 모든 것이 정상적으로 작동할 때 직원들이 실제로 하는 행동을 기록하고, 그 외의 모든 것은 차단합니다. 이는 마치 평범한 날의 사무실 모습을 사진으로 찍어둔 뒤, 오직 그 움직임만을 허용하는 것과 같습니다.
- 빠릅니다: 저자들은 테스트를 통해 이 방식이 컴퓨터에 약간의 추가 작업(요원이 여권을 확인하는 데 시간이 걸리는 것처럼)을 더하지만, 컴퓨터의 속도를 크게 저하시키지 않는다는 것을 발견했습니다. 대부분의 작업에서 지연 시간은 사용자에게 보이지 않을 정도로 미미합니다.
핵심 요약
TOMOYO Linux는 보안을 정적인 "신원 확인"에서 동적인 "이야기 확인"으로 변화시킵니다. 이 시스템은 맥락(context)이 중요하다는 것을 이해합니다. 어떤 상황에서 하는 한 가지 행동은 안전할 수 있지만, 다른 상황(예: 해커에게 탈취당한 후)에서 하는 똑같은 행동은 위험할 수 있습니다. 모든 애플리케이션의 여정을 추적함으로써, TOMOYO는 전통적인 보안 요원들이 결코 볼 수 없었던 공격들을 막아낼 수 있습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.