엔지니어링 철학: Joanna Rutkowska

핵심 요약
- 그녀는 침해될 것을 전제로 데스크톱 운영체제를 설계했습니다. Joanna Rutkowska는 격리를 통한 보안(security by compartmentalization) 원칙을 중심으로 Qubes OS — “합리적으로 안전한 운영체제” — 를 만든 폴란드의 보안 연구자입니다. 시스템을 버그 없게 만들려고 애쓰는 대신, Qubes는 디지털 생활을 “qube”라고 부르는 격리된 가상 머신(업무, 개인, 뱅킹, 신뢰할 수 없는 작업)으로 나눕니다. 그래서 한 곳이 뚫려도 그 피해가 갇히고 나머지로는 번지지 못합니다.12
- 공격자로서의 명성이 먼저였습니다 — 그녀는 시스템을 어떻게 격리할지 배우기 위해 그것을 부숩니다. 2006년 Black Hat에서 그녀는 Blue Pill을 발표했습니다. AMD 하드웨어 가상화를 이용해 얇은 악성 하이퍼바이저를 실행 중인 OS 아래로 밀어 넣어, OS가 자신이 들어 있다는 사실조차 알 수 없는 가상 머신 안에 가두는 개념 증명 루트킷이었습니다. 플랫폼의 가장 깊은 계층을 공격해 본 경험이, 어떤 계층을 절대 신뢰해서는 안 되는지를 그녀에게 가르쳐 주었습니다.3
- 그녀는 “인프라를 불신하라”는 명제를 아키텍처로 바꿔 놓았습니다. “불신을 통한 보안(Security Through Distrusting)”이라는 제목의 기조연설에서 Rutkowska는 구성 요소를 “신뢰받는(trusted)” 것으로 만드는 업계의 습관이 순진하고 확장성이 없다고 주장했습니다. 어떤 단일 구성 요소든 침해되었을 수 있다고 간주하고, 거의 전부를 불신하며, 단일 실패 지점이 없도록 하는 편이 낫다는 것입니다.5 Qubes는 바로 그 주장을 작동하는 데스크톱으로 컴파일한 결과물입니다.2
- 그녀는 다른 모두가 맹목적으로 신뢰하던 플랫폼 계층들을 파고들었습니다. Blue Pill을 넘어 그녀는 System Management Mode와 Intel Trusted Execution Technology를 공격하는 선구적 작업을 했고, 2009년에는 “Evil Maid” 공격을 명명하여, 짧은 물리적 접근만으로 TrueCrypt 같은 전체 디스크 암호화를 무력화했습니다. 각 공격은 알고 보니 거짓이었던 신뢰 경계 하나하나를 지도로 그려냈습니다.14
원칙
“모든 소프트웨어에는 버그가 있다… 가능한 모든 익스플로잇을 막으려 시도하는 대신, Qubes는 익스플로잇이 일어날 것이라고 가정하고 피해를 가두는 데 집중한다.” — Qubes OS 소개 문서, 그 설립 취지를 풀어 옮김2
대부분의 보안 엔지니어링은 불가능한 목표를 좇습니다. 코드를 감사하고, 구멍을 메우고, 설정을 강화한 다음, 충분히 신중하기만 하면 시스템은 안전할 것이라고 스스로를 다독입니다. Rutkowska의 경력은 그 목표가 신기루임을 길고 끈기 있게 입증해 온 과정입니다. 현대의 데스크톱은 커널, 드라이버, 브라우저, PDF 리더, 펌웨어 등 수천만 줄의 코드를 돌리며, 그 모든 줄 하나하나가 버그가 숨을 수 있는 자리입니다. 그것들을 전부 찾아낼 수는 없고, 공격자는 단 하나만 있으면 됩니다. 그러니 정직한 질문은 “어떻게 이걸 버그 없게 만들까?”가 아니라 “무언가가 들어왔을 때 — 들어올지가 아니라 들어왔을 때 — 그것이 어디까지 닿을 수 있는가?”입니다.2
Rutkowska가 만들어 낸 답은 격리를 통한 보안입니다. 침해를 막을 수 없다면, 그것이 얼마나 멀리 퍼질지는 미리 정해 둘 수 있습니다. Qubes는 머신을 별개의 가상 머신들로 나눕니다 — 업무용 하나, 뱅킹용 하나, 개인 브라우징용 하나, 수상한 첨부 파일을 여는 용도 하나 — 각각이 Xen 하이퍼바이저 위에서 저마다의 경계를 가지고 돌아갑니다. 신뢰할 수 없는 qube에서 악성 링크를 열면 악성코드는 밀폐된 방 안에 떨어집니다. 그것은 뱅킹 qube와 신뢰 경계를 공유한 적이 없으므로 자격 증명에 닿을 수 없고, 침해된 qube는 그냥 버려 버리면 됩니다.12 물리 세계는 이미 이렇게 작동합니다. 투표하고, 잠자고, 현금을 보관하는 일을 칸막이 없는 한 방에서 하지는 않습니다. Qubes는 왜 당신의 컴퓨터는 그렇게 하느냐고 묻습니다.2
이 원칙에는 후반부가 있는데, 그쪽이 더 어렵습니다. 인프라를 불신하고, 신뢰할 수밖에 없는 부분을 줄여라. “불신을 통한 보안” 기조연설에서 Rutkowska는 어떤 구성 요소를 “신뢰받는” 것이라고 부르는 일은 칭찬이 아니라고 주장했습니다. 그것은 만약 그 구성 요소가 실패하면 “나의 보안 무결성 전체를 파괴할 수 있다”는 자백이라는 것입니다.5 그러므로 규율은 거의 모든 구성 요소를 침해되었을 수 있다고 간주하고, 단일 실패 지점을 제거하며, 다른 모든 것의 정확성이 의존하는 코드인 신뢰 컴퓨팅 기반(trusted computing base) 을 가능한 한 작게 유지하는 것입니다.52 결국에는 무언가는 신뢰하게 됩니다. 기예는 그 무언가를 작고, 들여다볼 수 있고, 수가 적게 만드는 데 있습니다.
배경
Joanna Rutkowska는 1981년 폴란드 바르샤바에서 태어나 바르샤바 공과대학교(Warsaw University of Technology) 에서 컴퓨터 과학 석사 학위를 받았습니다.1 그녀는 방어자가 아니라 공격 연구자로, 그것도 대단히 뛰어난 공격 연구자로 출발했습니다. 2000년대 중반 그녀는 x86 플랫폼에서 가장 낮고 가장 신뢰받는 계층들 — 방어 보안이 으레 단단한 지반으로 취급하는 계층들 — 을 파고들고 있었습니다.
그녀의 도약은 2006년 8월 3일 Black Hat Briefings에서 시연한 Blue Pill이었습니다. 같은 자리에서 Windows Vista의 커널 보호 메커니즘을 무력화하는 방법을 보이는 작업도 함께였습니다. eWeek는 그녀를 “2006년에 흔적을 남긴 다섯 해커” 중 하나로 꼽았습니다.13 2007년 4월 그녀는 바르샤바에 Invisible Things Lab을 설립했는데, 이곳은 그녀의 플랫폼 보안 작업의 본거지가 된 컨설팅 겸 연구 회사였습니다.1 그 후 수년 동안 그녀와 동료들 — 그중에 Alexander Tereshkin과 Rafal Wojtczuk이 있습니다 — 은 Xen 하이퍼바이저, Intel Trusted Execution Technology, 그리고 운영체제 커널보다도 더 아래에 있는 깊숙한 특권 실행 모드인 “링 -2” System Management Mode에 대한 공격을 발표했습니다.1 2009년 그녀는 Evil Maid 공격을 명명했는데, 이는 노트북의 부팅 과정을 침해하여 TrueCrypt 같은 전체 디스크 암호화의 암호 구절을 훔치는 물리적 접근 기법입니다.4
그런 다음 그녀는 공격 연구자가 좀처럼 하지 않는 일을 했습니다. 방어를 직접 만든 것입니다. Qubes OS 작업은 2010년 무렵 Wojtczuk과 함께 시작되었고, 격리를 통한 보안 원칙 위에 세워진 Qubes 1.0이 2012년 9월 3일 공개되었습니다.1 그녀는 여러 해 동안 이 프로젝트를 이끌었으며, 이 접근법은 Edward Snowden과 암호학자 Daniel J. Bernstein처럼 면면이 다양한 인물들로부터 공개적인 지지를 받았습니다.2 이후 그녀는 프라이버시와 탈중앙화 작업 쪽으로 옮겨 갔습니다. 그녀의 가장 최근 프로젝트들에 관한 구체적 내용은 간접적으로 요약하기보다 그녀 자신의 현재 채널에서 직접 읽는 편이 가장 좋으며, 이 글은 확실히 기록으로 남은 것만 다룹니다.1
작업
Qubes OS: 격리를 통한 보안
여기서 시작합시다. Qubes는 그 원칙을 실제로 실행할 수 있는 무언가로 만든 결과물이기 때문입니다. 이 설계는 대부분의 보안 도구가 이기고 있는 척하는 전쟁을 인정하는 것에서 출발합니다. 모든 소프트웨어에는 버그가 있고, 그중 일부는 익스플로잇이 가능하다.2 Qubes는 결코 뚫리지 않는 시스템이 되려 하지 않습니다. 뚫리더라도 그것이 별로 중요하지 않은 시스템이 되려고 합니다.
그 메커니즘은 Xen 하이퍼바이저입니다. 모든 것 아래에 얇은 하이퍼바이저와 dom0라 불리는 특별한 관리 도메인이 있는데, 이것은 디스플레이와 하드웨어를 제어하지만 의도적으로 네트워크에서 차단되어 있습니다. 그 위에서 당신의 qube들 — 각각 하나의 목적과 신뢰 수준에 맞춰진 경량 가상 머신 — 이 돌아갑니다.12 “업무” qube, “뱅킹” qube, “개인” qube, 그리고 낯선 사람에게서 온 무엇이든 여는 용도의 “신뢰할 수 없는” qube를 둘 수 있습니다. 각 qube의 창에는 위조할 수 없는 색깔 테두리가 둘러져 있어서, 주어진 창이 어느 보안 도메인에 속하는지 한눈에 알 수 있습니다.2 결정적으로, qube들은 템플릿 시스템을 통해 루트 파일 시스템을 공유하므로 가볍게 유지되고 함께 패치되는 한편, 각자의 개인 데이터는 격리된 채로 남습니다.2 그리고 가장 위험한 작업을 위해서는 일회용 qube — PDF 하나나 링크 하나를 열기 위해 띄워졌다가 곧바로 스스로 파괴되며 어떤 감염이든 함께 가져가 버리는 가상 머신 — 가 있습니다.2
이것이 엔지니어링으로서 중요한 이유는, Qubes가 보안의 단위를 “머신”에서 “도메인”으로 재정의하기 때문입니다. 일반적인 데스크톱에서는 실행하는 모든 애플리케이션이 하나의 신뢰 주소 공간을 공유합니다 — 브라우저도, 세금 소프트웨어도, 열지 말았어야 할 첨부 파일도 모두 나쁜 버그 하나 차이로 서로에게 닿아 있습니다. Qubes는 도메인 사이의 경계를 희망 섞인 관습이 아니라 하드웨어로 강제되는 벽으로 만듭니다. 그 대가는 실재합니다 — 더 많은 RAM, 더 많은 마찰, 어떤 작업이 어느 qube에 속하는지 결정해야 하는 규율 — 그리고 Rutkowska는 불신을 통한 보안이 사용성과 맞바꿔지기에 “만능 해결책이 아니다”라고 솔직히 인정합니다.5 그러나 그 대가로 얻는 것은, 최악의 경우가 더 이상 파국이 아니게 된다는 점입니다. 침해는 더 이상 “그들이 내 컴퓨터를 차지했다”가 아닙니다. “그들이 내가 곧 삭제할 일회용 방 하나를 차지했다”가 됩니다.
플랫폼을 부수다: Blue Pill, SMM, 그리고 Evil Maid
어떤 경계가 가짜인지 정확히 알기 전에는 좋은 격리 경계를 설계할 수 없는데, Rutkowska는 그것을 직접 공격해 보면서 배웠습니다. 그녀의 2006년 Black Hat 시연인 Blue Pill이 가장 명확한 사례입니다. 그것은 AMD의 하드웨어 가상화(AMD-V)를 악용해 대담한 일을 해내는 개념 증명 루트킷이었습니다. 실행 중인 머신 위에서 즉석으로 얇은 하이퍼바이저를 띄우고, 살아 있는 운영체제를 그 아래의 가상 머신 안으로 옮겨 넣는 것이었습니다.3 그 가상 머신 안에서 OS는 정상적인 세계를 보지만, 그 아래의 하이퍼바이저는 “하드웨어 인터럽트, 데이터 요청, 심지어 시스템 시간”까지 가로채어, 갇힌 OS에 제 입맛에 맞는 답을 먹일 수 있었습니다.3
Blue Pill이 무엇이었고 무엇이 아니었는지 정확히 짚을 필요가 있습니다. 그것은 실제 환경에서 발견된 악성코드가 아니라 개념 증명이었고, 그 가장 대담한 주장 — 그런 하이퍼바이저 루트킷이 “100% 탐지 불가능”하게 만들어질 수 있다는 주장 — 은 논쟁거리가 되어, 다른 연구자들이 타이밍 기반 탐지 방법을 제안했습니다.3 그러나 논쟁이 된 표제가 교훈은 아닙니다. 교훈은 그것이 드러낸 공격 표면입니다. 즉, 모든 운영체제에 박혀 있는 가정, 자신이 그 위에서 돌아가는 계층이 선하다는 가정 말입니다. Blue Pill은 가상화가 가장 특권적인 계층을 공격자의 안방으로 바꿔 놓을 수 있음을 — 그리고 당신이 “아래에” 있다고 신뢰하는 것이 바로 “위에서” 검증할 수 없는 것임을 — 보여 주었습니다.
같은 본능이 그녀의 나머지 공격 작업도 이끌었습니다. 동료들과 함께 그녀는 커널 아래에서 돌아가는 알려지지 않은 초특권 펌웨어 모드인 System Management Mode를, 그리고 그 존재 목적 자체가 신뢰를 확립하는 것이었던 기능인 Intel Trusted Execution Technology를 공격했습니다.1 그리고 2009년 그녀는 Evil Maid 공격을 명명했습니다. 암호화된 노트북을 호텔 방에 방치해 두면, 짧은 물리적 접근 권한을 가진 “메이드”가 암호화되지 않은 부트로더를 변조하여, 다음번에 당신이 암호 구절을 입력할 때 그것을 가로채게 만들 수 있다는 것입니다.4 TrueCrypt 같은 전체 디스크 암호화가 취약했던 이유는, 부팅 코드가 사용자에게 자신을 인증할 수 없었기 때문입니다 — 암호 구절을 요구하는 로더가 여전히 당신의 것인지 알 길이 없었던 것입니다.4 이 공격들 하나하나가 버티지 못한 신뢰 경계의 지도입니다. 훗날 Qubes를 만든 방어 아키텍트는, 어느 벽이 하중을 지탱하고 어느 벽이 그저 그려진 것인지를 이미 안에서부터 알고 있었습니다.

인프라를 불신하라: 신뢰 컴퓨팅 기반 줄이기
Qubes는 단지 “모든 것을 가상 머신에서 돌려라”가 아닙니다. 더 깊은 설계 원칙은 신뢰 컴퓨팅 기반을 최소화하고 불신하는 것 — 시스템 전체의 보안이 그 정확성에 기대고 있는 구성 요소들의 집합 말입니다. Rutkowska의 기조연설 “불신을 통한 보안”은 그 철학을 직설적으로 천명합니다. 구성 요소를 “신뢰받는” 것으로 만들려는 통상적 충동은 “지나치게 순진하고 확장성이 없다”는 것입니다. 보안에서 “신뢰받는”이란 사실 어떤 구성 요소가 잘못되면 “나의 보안 무결성 전체를 파괴할 수 있다”는 뜻이기 때문입니다.5 올바른 대응은 어떤 단일 구성 요소든 침해되었을 수 있다고 가정하고, 거의 전부를 불신하며, 단일 실패 지점이 없도록 설계하는 것입니다.5
이 원칙은 Qubes의 구체적인 선택들에서 확인할 수 있습니다. 관리 도메인 dom0는 의도적으로 네트워크 접근이 차단되어 있는데, 네트워크로 도달할 수 있는 dom0라면 그것이 침해되는 순간 머신 전체를 차지하는 단일 지점이 될 것이기 때문입니다.2 네트워킹과 USB 자체도 각자의 격리된 qube로 밀어 넣어, 네트워크 카드 드라이버의 버그나 악성 USB 장치가 모든 것이 신뢰하는 커널이 아니라 샌드박스에 떨어지도록 합니다.2 도메인 사이를 넘나드는 파일은 방어적으로 처리됩니다 — Rutkowska가 Qubes에서 이미지와 PDF를 처리하는 방식에 적용한, 바로 그 “침해되었을 수 있다고 취급하라”는 논리입니다.5 그리고 일회용 qube는 그 불신을 가장 직접적으로 구현합니다. PDF 리더가 익스플로잇되지 않으리라고 신뢰하는 대신, 그것이 익스플로잇될 것이라고 가정하고, 곧 파괴할 가상 머신 안에서 실행하여, 폭발이 빈 방 안에서 일어나도록 두는 것입니다.2
이를 관통하는 줄기는 자신의 코드에 대한 겸손입니다. 크고 복잡한 구성 요소를 신뢰하는 시스템은 크고 복잡한 도박을 하고 있는 셈입니다. Rutkowska의 아키텍처는 그 도박을 작게 만드는 데 — 신뢰 컴퓨팅 기반을 얇은 하이퍼바이저와 네트워크에서 격리된 dom0로 줄이고, 그 위의 거의 모든 것은 소모 가능하고, 교체 가능하며, 적대적이라고 간주하는 데 — 공을 들입니다.25

데스크톱에서 탈중앙화로
Rutkowska는 여러 해 동안 Qubes를 이끈 다음, 운영체제가 부분적으로만 풀어 주는 더 넓은 문제로 눈을 돌렸습니다. 완벽하게 격리된 데스크톱조차도 여전히 그 주변의 인프라 — 클라우드 저장소, 네트워크, 당신의 데이터를 쥐고 있는 서비스들 — 를 신뢰한다는 문제입니다.15 그녀의 이후 작업은 프라이버시와 탈중앙화 쪽으로 옮겨 갔으며, 단일 머신에서 그것이 대화하는 시스템들로 같은 불신을 바깥으로 확장했습니다. 그 프로젝트들의 정확한 형태와 현황은 여기서 풀어 옮기기보다 그녀 자신의 현재 글에서 직접 받아들이는 편이 가장 좋습니다. 깔끔하게 전해지는 것은 제품이 아니라 원칙입니다. 그 본능은 한결같습니다. 인프라가 침해되었다고 가정하고, 그 가정이 가능한 한 적은 대가만 치르게 하도록 설계하라.5
방법론
Qubes, Blue Pill, SMM과 TXT 공격, 그리고 “불신을 통한 보안”을 두루 읽어 보면 같은 신념들이 거듭 등장합니다. Rutkowska의 방법론은 구호라기보다 일군의 상시적 습관입니다.
침해를 가정하라. 그리고 피해 범위를 기준으로 설계하라. 그 출발의 수는 예방이 실패할 것임을 인정하고 침해가 얼마나 멀리 퍼지는지를 묻는 것입니다.2 규모의 관점에서 이것은 Werner Vogels가 신뢰성에 대해 하는 일의 보안판 쌍둥이입니다 — 모든 것은 늘 고장 나므로, 고장을 피할 수 있는 척하기보다 피해 범위를 가두라는 것입니다. 이 교훈은 Qubes를 한참 넘어 전해집니다. 아무것도 들어오지 않는 경우를 위해 설계하지 말고, 무언가가 들어왔을 때 그것이 작고 소모 가능한 독방에 갇히도록 설계하세요. 이것은 보안에 적용한 증거 관문입니다 — “아직 아무도 침입하지 않았다”는 증거가 아닙니다. “여기서의 침해가 저기에 닿을 수 없다”가 증거입니다.
인프라를 불신하라. 그리고 경계를 증명하라. 모든 구성 요소를 침해되었을 수 있다고 취급하고, 기본값으로 신뢰를 부여하기를 거부하세요.5 이것은 Thompson의 “Reflections on Trusting Trust”를 데스크톱 아키텍처로 바꿔 놓은 것입니다. 직접 검토하지 않은 것은 신뢰할 수 없으니, 볼 수 없는 계층을 신뢰하기를 멈추고 대신 벽으로 막아 버리라는 것입니다. 규율은 모든 구성 요소에 대해 “이것이 침해되면 무엇을 차지하게 되는가?”라고 묻고 — 그 답이 “거의 아무것도 없다”가 될 때까지 경계를 다시 그리는 것입니다.
남이 부수기 전에 직접 부숴라. Rutkowska의 방어는 10년에 걸친 공격 — Blue Pill, SMM, Evil Maid — 위에 세워졌습니다. 가짜임을 먼저 증명하지 않은 경계는 격리할 수 없기 때문입니다.34 이것은 Adi Shamir가 암호학에 가져온 바로 그 본능입니다. 방어하기 위해 공격하고, 진지한 파괴 시도에서 살아남는 것만 신뢰하라. 상시적 습관은 먼저 공격자의 모자를 쓰고, 당신의 신뢰 가정 중 어느 것이 거짓인지 지도로 그린 다음, 그 거짓이 있던 자리에 벽을 설계하는 것입니다.
신뢰 컴퓨팅 기반을 줄여라. 당신의 보안이 의존하는 코드 줄이 적을수록 당신의 도박은 작아집니다.25 얇은 하이퍼바이저와 네트워크에서 격리된 dom0는 들여다볼 수 있는 내기지만, 모든 드라이버와 서비스를 신뢰 경계 안에 둔 모놀리식 커널은 눈먼 내기입니다. 이것은 신뢰에 적용한 최소 가치 제품입니다. 가장 깨끗한 신뢰 기반은 여전히 자신의 단일 임무를 해내는 가장 작은 기반입니다. 신뢰를 반드시 신뢰해야 하는 것까지 깎아 내고, 나머지는 적대적이라고 간주하세요.
맞바꿈에 정직하라. Rutkowska는 과대 포장하지 않습니다 — 그녀는 불신을 통한 보안이 “만능 해결책이 아니며” 사용성과 편의성을 대가로 치른다고 분명히 말합니다.5 그 습관은 당신이 사들이는 보안의 값을 숨기는 대신 명시하여, 다음 엔지니어가 그것을 저울질할 수 있게 하는 것입니다. 그 솔직함은 보안에 적용한 품질이 유일한 변수입니다. 그 비용까지 함께 밝힌 진짜 보장은, 조용히 지켜지지 않는 안락한 약속보다 더 값집니다. 당신이 이해하고 선택한 경계가, 당연하다 여기고 물려받은 경계보다 낫습니다.
영향의 사슬
그녀를 빚은 이들
2000년대 중반의 공격 연구 커뮤니티. Rutkowska는 Black Hat과 저수준 시스템 해킹의 플랫폼 공격 문화 안에서 성장했습니다. 그곳에서의 작업은 아무도 의문을 품지 않는 가정을 찾아내 부수는 것이었습니다.3 그 문화의 중심 반사 신경 — 모두가 신뢰하는 계층을 불신하라 — 이 그녀의 방어 작업의 척추가 되었습니다. (형성적 영향)
하드웨어 가상화의 물결. Blue Pill은 AMD-V와 Intel VT-x가 막 하드웨어 가상화를 주류로 만든 덕분에야 가능했습니다.3 그녀가 2006년에 무기로 쓴 바로 그 기술이, Qubes에서는 그녀가 격리를 세운 기반이 되어, Xen이 하이퍼바이저를 공격자의 도구에서 방어자의 벽으로 바꿔 놓았습니다.12 (직접적 영향)
Xen 및 하이퍼바이저 보안의 계보. Xen을 분석하고 공격한 세월은 하이퍼바이저 격리가 얼마나 강력한지 — 그리고 얼마나 취약한지 — 를 정확히 그녀에게 가르쳐 주었고, 그 지식이 dom0를 네트워크에서 차단하고 드라이버를 격리된 도메인으로 밀어 넣는 Qubes의 결정을 빚었습니다.12 (형성적 영향)
그녀가 빚은 이들
프라이버시를 의식하는 컴퓨팅. Qubes는 표적 침해를 가정해야 하는 기자, 활동가, 보안 연구자들에게 권장되는 데스크톱이 되었습니다 — 위협 모델이 구호가 아니라 국가인 사람들을 위한 진짜 도구입니다.2
격리의 사고방식. “격리를 통한 보안”과 “신뢰 컴퓨팅 기반을 줄여라”는 Qubes를 한참 넘어, 샌드박싱, 컨테이너 격리, 앱별 가상화를 업계 전반에서 사고하는 방식으로 퍼져 나갔습니다.25
먼저 부수는 방어자들. Rutkowska는 가장 강력한 방어 아키텍트가 흔히 과거의 공격자임을 — 진짜 신뢰 경계를 부숴 봄으로써 지도로 그리는 것이 그것을 올바르게 그려 내기 위한 전제 조건임을 — 보여 주는 상존하는 사례입니다.34
관통하는 줄기
Rutkowska는 이 시리즈의 격리 주춧돌입니다 — “시스템은 침해될 것이다”에 절망이 아니라 아키텍처로 답하는 인물 말입니다. Adi Shamir는 암호학에서 방어하기 위해 공격하며, 진짜 파괴 시도에서 살아남는 것만 신뢰합니다. Rutkowska는 한 계층 아래에서 같은 순환을 돌려, 하이퍼바이저와 부팅 체인을 부숴 봄으로써 그것들이 침해되어도 살아남는 데스크톱을 만들 수 있게 합니다.34 Thompson과 Ritchie는 직접 만들고 검토하지 않은 것은 신뢰할 수 없다는 경고를 우리에게 주었습니다. Rutkowska의 “인프라를 불신하라”는 그 경고를 작동하는 운영체제로 바꿔 놓은 것으로, 거기서 신뢰할 수 없는 계층들은 막연히 바라는 대상이 아니라 벽으로 막힌 대상입니다.5 그리고 Werner Vogels가 신뢰성을 위해 모든 것은 늘 고장 나므로 피해 범위를 가두라고 말하는 곳에서, Rutkowska는 보안에 대해 같은 말을 합니다. Radia Perlman은 적대적이고 고장 나는 경우를 설계의 중심으로 삼아 네트워크를 설계했고, Rutkowska는 머신을 그렇게 설계합니다. Vogels가 고장 난 디스크를 가두고 Perlman이 끊어진 링크를 가두는 곳에서, Rutkowska는 말합니다. 공격자는 이미 안에 들어와 있다 — 그러니 모든 도메인을 격리하고, 모든 계층을 불신하며, 침해를 던져 버릴 수 있는 일회용 방으로 만들어라. (시리즈 가교)
내가 여기서 얻는 것
Rutkowska에게서 내가 간직하는 교훈은 침해에 맞서 설계하지 말고, 침해를 전제로 설계하라는 것입니다. 대부분의 만드는 사람처럼 내 본능도 그 대상을 강화하는 것 — 입력을 검증하고, 의존성을 패치하고, 설정을 잠그는 것 — 이며, 보안을 충분히 높게 쌓으려 애쓰는 벽으로 취급하는 것입니다. “모든 소프트웨어에는 버그가 있다”는 그 책망입니다. 벽은 뚫릴 것입니다. 언제나 버그가 하나 더 있기 때문이고, 정작 중요한 질문은 공격자가 벽을 넘은 다음 무엇에 닿느냐이기 때문입니다. 그래서 이제 무언가를 만들 때 — 인증 경계, 신뢰할 수 없는 입력을 돌리는 서비스, 돈을 다루는 기능 — 나는 “어떻게 막을까?”를 묻기 전에 “이것이 침해되면 피해 범위가 어디까지인가?”를 먼저 물으려 합니다. 안전함의 정직한 버전은 “이것이 어떻게 깨지는지 모르겠다”가 아닙니다. “그것이 깨지면 피해가 내가 삭제할 수 있는 방 하나에 갇힌다”입니다.
두 번째 교훈은 내가 신뢰할 수밖에 없는 것에 대한 합리적 편집증입니다. 어떤 구성 요소를 “신뢰받는” 것으로 손쉽게 통과시키고 넘어가기는 쉽지만, Rutkowska는 그 단어를 나에게 다시 정의해 주었습니다. 무언가를 신뢰받는 것이라 부르는 일은, 그것이 실패하면 모든 것을 파괴할 수 있음을 인정하는 것입니다. 그것이 내가 경계를 그리는 방식을 바꿔 놓았습니다. 내가 끌어오는 모든 라이브러리, 의존하는 모든 서비스, 그 위에서 돌아가는 모든 계층은 그것이 정확하다는 내기이며 — 내기의 크기는 내 신뢰 컴퓨팅 기반의 크기입니다. 그래서 나는 그 기반을 작고 들여다볼 수 있게 유지하고, 위험하고 복잡한 것을 적대적이라고 간주하는 샌드박스로 밀어 넣으며, 그녀처럼 격리가 나에게서 편의를 앗아 간다는 사실에 정직하려 합니다. 그 편집증은 비관이 아닙니다. 내가 무엇을 신뢰하고 있는지 정확히 알고, 그 목록을 가능한 한 짧게 만드는 규율입니다.
자주 묻는 질문
Qubes OS란 무엇인가요?
Qubes OS는 Joanna Rutkowska가 만든 무료 오픈 소스 보안 지향 데스크톱 운영체제로, 프로젝트 측은 이를 “합리적으로 안전한 운영체제”라고 설명합니다.2 이 운영체제는 Xen 하이퍼바이저를 사용해 컴퓨팅을 qube라 불리는 격리된 가상 머신으로 나눕니다 — 업무, 뱅킹, 개인 브라우징, 신뢰할 수 없는 파일 열기 같은 활동을 위한 별개의 칸막이들입니다. qube들이 격리되어 있기 때문에 한 곳의 침해가 다른 곳에 닿을 수 없고, 따라서 단 한 번의 침해로 인한 피해가 가두어집니다. 또한 사용 후 스스로 파괴되는 일회용 qube를 지원하며, 각 도메인에 위조할 수 없는 색깔 창 테두리를 부여하여 어떤 창이 어느 칸막이에 속하는지 알 수 있게 합니다.12
격리를 통한 보안(compartmentalization)이란 무엇인가요?
격리를 통한 보안, 즉 구획화는 Qubes의 핵심에 있는 원칙입니다. 소프트웨어를 버그 없게 만들려 애쓰는 대신, 시스템을 격리된 도메인으로 나눔으로써 침해가 일어날 것이라고 가정하고 피해를 가두는 것입니다.2 Qubes 소개 문서는 물리적 삶에 빗댑니다 — 사람은 자연스럽게 활동을 서로 다른 방으로 나눕니다 — 그리고 그렇지 않으면 모든 것이 하나의 신뢰 경계를 공유하게 될 컴퓨터에 그것을 적용합니다.2 이를 보완하는 나머지 절반은 “인프라를 불신하라”입니다. 모든 구성 요소를 침해되었을 수 있다고 취급하고, 단일 실패 지점을 제거하며, 신뢰 컴퓨팅 기반을 가능한 한 작게 유지하라는 것입니다.5
Blue Pill은 무엇이었나요?
Blue Pill은 Joanna Rutkowska가 2006년 8월 3일 Black Hat에서 시연한 개념 증명 루트킷입니다. 이것은 AMD 하드웨어 가상화(AMD-V)를 이용해 실행 중인 머신 위에서 얇은 악성 하이퍼바이저를 띄우고 살아 있는 운영체제를 그 아래의 가상 머신 안으로 옮겨 넣어, 하이퍼바이저가 OS가 보는 하드웨어, 인터럽트, 심지어 시스템 시간까지 가로채고 위조할 수 있게 했습니다.3 그런 루트킷이 “100% 탐지 불가능”할 수 있다는 Rutkowska의 주장은 논쟁거리가 되었고, 다른 연구자들은 타이밍 기반 탐지를 제안했습니다. 그것은 실제 환경에서 발견된 악성코드가 아니라, 하나의 공격 표면 — OS 아래의 계층이 선하다는 가정 — 을 보여 준 연구 시연이었습니다.3
Evil Maid 공격이란 무엇인가요?
Evil Maid 공격은 Joanna Rutkowska가 2009년 블로그 글에서 명명한 물리적 접근 기법입니다. 공격자가 방치된 암호화 노트북 — 이를테면 호텔 방에 둔 — 에 잠깐 감시 없는 접근을 얻으면, 암호화되지 않은 부팅 코드를 변조하여 사용자가 다음번에 전체 디스크 암호화 암호 구절을 입력할 때 그것을 몰래 가로채게 만들 수 있습니다.4 TrueCrypt 같은 전체 디스크 암호화 시스템이 취약했던 이유는, 부트 로더가 사용자에게 자신을 인증할 수 없어서, 피해자가 침해된 로더와 정당한 로더를 구별할 길이 없었기 때문입니다.4 이것은 암호화만으로는 적이 물리적으로 만질 수 있는 머신을 보호하지 못한다는 점을 생생하게 보여 줍니다.
출처
-
“Joanna Rutkowska,” Wikipedia. 폴란드의 보안 연구자, 1981년 폴란드 바르샤바 출생; 바르샤바 공과대학교에서 컴퓨터 과학 석사 학위 취득. 2006년 Black Hat에서 하드웨어 가상화를 이용한 Windows Vista 커널 보호 공격과 Blue Pill 기법을 발표; eWeek의 “2006년에 흔적을 남긴 다섯 해커” 중 하나로 선정. 2007년 4월 바르샤바에 Invisible Things Lab 설립. 동료들(Alexander Tereshkin, Rafal Wojtczuk)과 함께 Xen 하이퍼바이저, Intel Trusted Execution Technology, System Management Mode를 공격하는 연구 발표. 2009년 “Evil Maid” 공격 명명. 2010년 무렵 Wojtczuk과 Qubes OS 개발 시작; “qube”라 불리는 격리된 경량 가상 머신을 이용한 “격리를 통한 보안” 원칙 위에 세워진 Qubes 1.0을 2012년 9월 3일 공개. 이후 프라이버시와 탈중앙화 작업 쪽으로 이동. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
“Introduction,” Qubes OS documentation (qubes-os.org), 그리고 “Qubes OS,” Wikipedia. Qubes OS는 단일 사용자 데스크톱 컴퓨팅을 위한 무료 오픈 소스 보안 지향 운영체제로, 프로젝트 표어는 “합리적으로 안전한 운영체제”이다. “격리를 통한 보안”/”구획화를 통한 보안”을 구현하며, “모든 소프트웨어에는 버그가 있다”는 것과 완벽하게 버그 없는 소프트웨어는 불가능하다는 전제 위에서 작동한다 — 그래서 모든 익스플로잇을 막으려 시도하는 대신, Qubes는 익스플로잇이 일어날 것이라고 가정하고, 가치 있는 데이터를 위험한 활동으로부터 분리하여 피해를 가두는 데 집중한다. Xen 하이퍼바이저를 사용해 애플리케이션을 가상 머신(“qube”)으로 격리하며, 각 qube는 목적, 성격(Fedora/Debian/Windows 템플릿), 신뢰 수준을 갖는다; 관리 도메인(dom0)이 하드웨어/디스플레이를 관리하며 네트워크에서 차단되어 있다; 네트워킹과 USB는 격리된 qube로 밀어 넣어진다. 기능에는 종료 시 스스로 파괴되는 일회용 qube, 앱 qube를 위한 공유 템플릿 시스템, split GPG, 각 보안 도메인을 식별하는 위조할 수 없는 색깔 창 테두리가 포함된다. Joanna Rutkowska가 만들었으며(최초 공개 2012년 9월 3일); 이 접근법은 Edward Snowden과 Daniel J. Bernstein을 포함한 인물들로부터 공개적으로 지지받았다. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
“Blue Pill (software),” Wikipedia. Blue Pill은 Joanna Rutkowska가 설계하고 2006년 8월 3일 Black Hat Briefings에서 처음 시연한 개념 증명 루트킷으로, x86 하드웨어 가상화(원래 AMD-V/SVM, 이후 Intel VT-x로 이식)를 사용한다. 그것은 “얇은 하이퍼바이저를 띄우고 머신의 나머지를 그 아래에 가상화하여 실행 중인 운영체제 인스턴스를 가두는” 방식으로 작동하며, 그 후 “하드웨어 인터럽트, 데이터 요청, 심지어 시스템 시간까지 하이퍼바이저가 가로챌(그리고 가짜 응답을 보낼) 수 있었다.” Rutkowska는 그것이 “100% 탐지 불가능”을 달성할 수 있다고 주장했으나, 이는 논쟁이 되었다 — AMD는 이를 일축했고 다른 연구자들은 타이밍 기반 탐지 방법을 제안했다. 그것은 실제 환경에서 발견된 악성코드가 아니라 개념 증명이자 연구 시연이었다. ↩↩↩↩↩↩↩↩↩↩↩↩
-
“Evil maid attack,” Wikipedia. evil maid 공격은 물리적 접근을 통해 방치된 장치를 표적으로 삼아, 탐지할 수 없는 방식으로 그것을 침해하여 공격자가 나중에 데이터에 접근할 수 있게 한다. 이 용어는 보안 분석가 Joanna Rutkowska가 2009년 블로그 글에서 소개했으며, 방치된 컴퓨터의 부팅 과정/펌웨어를 침해(예: 외부 USB 플래시 드라이브를 통해)하여 TrueCrypt 같은 전체 디스크 암호화를 우회하는 방법을 설명했다. 그러한 시스템은 “사용자에게 자신을 인증할 수 없기 때문에 evil maid 공격에 취약하다” — 공격자가 암호화 로더 코드를 수정하여 암호 구절을 가로챌 수 있다. 이 공격은 피해자가 장치를 한 번(침해를 심기 위해) 그리고 그 후 다시 한 번(가로챈 데이터를 회수하기 위해) 방치할 것을 요구한다. ↩↩↩↩↩↩↩↩↩
-
Iain Thomson, “Security industry needs to be less trusting to get more secure,” The Register, 2017년 12월 7일, Joanna Rutkowska의 기조연설 “불신을 통한 보안(Security Through Distrusting)”에 관한 보도. Invisible Things Lab의 최고 경영자인 Rutkowska는, 시스템을 “신뢰받는” 것으로 만드는 데 집중하는 통상적인 보안 업계의 관행이 “지나치게 순진하고 더 복잡한 시스템으로 확장되지 않는다”고 주장했다. 컴퓨터 보안에서 “신뢰받는”이란 어떤 코드 조각이 “나의 보안 무결성 전체를 파괴할 수 있다”는 뜻이기 때문이다. 그녀의 대안은 시스템 내 어떤 단일 구성 요소든 침해되었을 수 있다고 취급하는 것 — 거의 모든 구성 요소와 행위자를 불신하고 단일 실패 지점을 두지 않는 것 — 이며, 이는 그녀가 Qubes에서 이미지와 PDF 파일을 처리하는 방식에 적용한 원칙이다. 그녀는 “불신을 통한 보안은 만능 해결책이 아니며, 특히 사용성과 편의성 면에서 맞바꿈을 수반한다”고 인정했다. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩