Security Watch10가지 불변의 보안 법칙 돌아보기, 1부

Jesper M. Johansson

Scott Culp는 2000년에 "10 Immutable Laws of Security"라는 에세이를 발표했습니다. 이 글은 필자가 읽어 본 가장 훌륭한 보안 관련 에세이 중 하나입니다. Scott Culp가 이 글에서 제공한 정보는 지금까지 모든 정보 보안 관련 작업의 기초로 사용되고 있습니다. 아직 읽지 않았다면 지금 읽어 보고, 필요하다면 인쇄도 해 두시기 바랍니다. 이 글은 microsoft.com/technet/archive/community/columns/security/essays/10imlaws.mspx에서 볼 수 있습니다.

이 에세이에 대한 독자의 반응은 다양합니다. 어떤 이들은 Microsoft에서 심각한 문제로 알려진 여러 문제를 수정하지 않기 위해 게시한 글이라고 비판했고, 다른 이들은 보안에 대한 가장 근원적인 글로 생각했으며 너무 중요하다고 생각한 나머지 마음대로 도용하기도 했습니다. 그러나 필자에게 가장 큰 인상을 준 반응은 이 글에 고무된 사람들이 나름대로의 목록을 만들었다는 점입니다. edgeblog.net/2006/10-new-immutable-laws-of-it-security에서 그중 한 예를 볼 수 있습니다.

이 에세이가 발표된 후 8년 동안 보안 분야에서는 많은 일이 일어났습니다. 악명을 떨친 웜이 속출했고 조직 범죄, 정치적 단체 등과 함께 정보 전쟁 국면에 접어들었습니다. 피싱, 파밍, 봇넷, 스파이웨어, 사이트 간 요청 위조 공격과 같은 다양한 신조어가 일반적인 용어로 사용되기 시작했습니다. Windows에서 실행되는, 과거와는 비교할 수 없이 정교한 루트킷이 등장했습니다. 보안 위주의 새로운 OS 릴리스가 나온 반면 아직도 대부분의 보안이 무시되는 다른 운영 체제도 있습니다.

사회 공학은 심각한 위협으로 발전했습니다. 한 유력 소매업체에서 9,400만 명의 신용카드 번호가 유출되었다는 등의 데이터 침해 관련 소식도 이제 흔한 뉴스가 되었습니다. 이런 사건이 터져도 사람들은 이 소매점에서 계속 물건을 구입합니다. 미국과 영국 정부의 불찰로 엄청나게 많은 개인 정보가 유출되었지만 그래도 사람들은 이 정부에 개인 정보를 계속 제출하고 있습니다. 그리고 우리의 일상, 그리고 공항에 엄청난 보안 전시 행정이 자리를 잡았습니다.

필자는 이제 이 법칙을 재조명할 시기가 왔다고 생각합니다. 앞서 살펴본 모든 변화가 이번 세기의 초반에 발생했음을 고려할 때, 과연 지금도 이러한 보안 법칙이 불변의 법칙이라고 주장할 수 있을까요? 이 법칙이 불변의 법칙이라면(지난 8년 동안 유효했다면) 앞으로도 10년 동안 유효하다고 말할 수 있을 것입니다.

3부로 구성된 이 연재물에서 필자는 10가지 법칙 각각을 비판적인 시각으로 살펴볼 것입니다. 이번 달에는 제1 ~ 3 법칙에 대해 알아보고 다음 달에는 제4 ~ 7 법칙을 살펴보겠습니다. 그런 다음 마지막 호에서는 제8 ~ 10 법칙을 검토하고, 이 법칙이 2000년 처음 작성된 이후 발생한 일들에 비추어 볼 때 합리적이라고 판단되는 의견과 추가로 생각해 볼 문제를 제시할 것입니다.

제1 법칙: 악의적 의도를 가진 누군가가 사용자를 유도하여 자신이 만든 프로그램을 사용자의 컴퓨터에서 실행하도록 할 수 있다면 해당 컴퓨터는 더 이상 사용자의 것이 아니다.

이 법칙은 사실상 사용자가 컴퓨터에서 실행하는 모든 소프트웨어가 해당 컴퓨터를 제어할 수 있는 것으로 명시합니다. 이 불변의 법칙이 처음 나왔을 당시 Microsoft 운영 체제는 Windows 98, Windows Me 및 Windows NT 4.0이었습니다. 지금은 Windows Vista와 Windows Server 2008입니다.

Windows 98과 Windows Me에서는 사용자가 실행하는 모든 소프트웨어가 컴퓨터에 대해 전적인 제어 권한을 가졌습니다. Windows NT 4.0에는 매우 견고한 기본 보안 모델이 있었지만 이를 관리자로 실행할 경우 Windows NT 4.0의 격리 모델은 사실상 Windows 98과 Windows Me의 격리 모델로 다운그레이드되었습니다. 관리자가 아닌 사용자로 Windows NT 4.0을 실행할 수도 있었지만 상당히 불편했기 때문에 실제로 이 방법을 사용한 조직은 거의 없었습니다(열 손가락 안에 꼽을 정도).

관리자가 아닌 사용자로 Windows NT 4.0을 실행했다고 가정해 보겠습니다. 그래도 제1 법칙이 작성된 당시 이 법칙은 유효했을까요? 대답은 "유효했다"입니다. 먼저 Windows NT 4.0에는 중대한 결함이 많았습니다. 예를 들어 사용 권한을 더 엄격하게 했어야 할 부분들이 있습니다. 특히 커널 개체와 레지스트리에서 이런 부분이 두드러집니다. 또한 그 당시에는 아직 발견되지 않았지만 전문가들이 발생할 것이라 예상한 공격 유형도 많았습니다. 예를 들어 1999년 당시 사람들은 대화형 데스크톱에서 높은 권한의 사용자로 실행 중인 프로세스가 컴퓨터에 손상을 가할 수 있다는 사실을 인식하지 못했습니다. 이러한 사실이 널리 알려진 것은 2002년 Chris Paget이 파편 공격(Shatter attack)에 대한 백서 "Win32 API 악용"(seclists.org/bugtraq/2002/Aug/0102.html)을 발행한 이후였습니다.

제1 법칙의 초안이 작성된 당시 Microsoft는 파편 공격을 예상했을까요? 그렇지 않습니다. Microsoft는 다만 컴퓨터에서 실행 중인 응용 프로그램이 해당 컴퓨터를 장악하지 못하도록 하는 진정한 보안 경계는 거의 없다는, 단순한 사실만 인식하고 있었을 뿐입니다.

Windows Vista와 Windows Server 2008은 Windows NT 4.0과 두 세대 차이가 납니다. Windows Vista와 Windows Server 2008로 인해 제1 법칙이 무효화되었을까요? 아니면 이 법칙을 무효화한 다른 운영 체제가 있을까요? 상황에 따라 다릅니다. 새로운 OS에는 분명 더 견고한 보안 경계가 있고, 2000년에는 적절한 보안 경계를 가진 몇 가지 실험적 운영 체제도 있었습니다. 그러나 여전히 이러한 경계는 소수에 불과합니다. 예를 들어 Microsoft .NET Framework의 코드 액세스 보안은 보안 경계입니다. 이 경계는 샌드박스 내에서 실행되는 코드가 기본 운영 체제에 영향을 주지 않도록 하기 위한 목적으로 디자인되었습니다.

Internet Explorer의 Iframes는 또 다른 보안 경계를 제공합니다. 그러나 Iframes는 OS 자체에 대한 액세스에는 영향을 주지 않고 웹 페이지에서 각 콘텐츠 부분 간의 액세스에만 영향을 줍니다. 그림 1에 나와 있는 Internet Explorer의 보호 모드는 OS 수준의 보안 경계입니다. 이 경계의 목적은 사용자 작업 없이 브라우저 내에서 실행되는 코드가 기본 운영 체제에 영향을 주지 못하도록 하는 것입니다. 몇 가지 경계가 더 있는데, 그중 표준 사용자 계정은 사용자 계정이 기본 OS 또는 다른 사용자에게 영향을 주지 못하도록 하기 위한 경계입니다.

fig01.gif

그림 1 Internet Explorer 7에는 보호 모드라는 보안 경계가 사용됨(더 크게 보려면 이미지를 클릭하십시오.)

"보안 경계"라는 용어의 의미를 이해하는 것이 무척 중요합니다. 완전한 격리를 무한대로 보장하는 불가침의 벽이 있다는 의미는 아닙니다. 이 용어가 실제 의미하는 바는 Microsoft와 같은 소프트웨어 공급업체가 보안 패치를 통해 이 경계의 침해 행위를 해결할 책임이 있다는 것입니다. 앞으로도 소프트웨어에서 버그는 항상 존재하고, 우리는 계속해서 더 많은 침해 행위를 발견하고, 소프트웨어 공급업체는 계속해서 패치를 제공할 것입니다. 소프트웨어 공급업체는 이러한 취약점을 미연에 방지하기 위해 소프트웨어를 점점 더 개선해 나가야 합니다. 이것이 바로 제1 법칙이 여전히 유효함을 입증하는 증거라고 볼 수 있습니다.

한편 고려해야 할 중요한 부분이 한 가지 더 있습니다. 앞부분에 보면 "사용자 작업 없이"라는 구절이 나옵니다. 제1 법칙은 사실 소프트웨어의 결점이나 취약점에 대한 법칙이 아닙니다. 바로 사람들의 취약점에 대한 법칙입니다. 이 법칙에서 핵심적인 부분은 "유도하여"입니다. 악의적 의도를 가진 누군가가 자신의 프로그램을 실행하도록 사용자를 유도할 때는 필시 프로그램에 높은 권한이 부여되도록 상황을 만든 상태에서 사용자를 유도할 것입니다.

사용자에게 관리자 권한이 없어도 상관 없습니다. 표준 사용자도 은행 거래 파일, 연애 편지, 사진, 동영상 및 회사 기밀 정보와 같은 여러 가지 중요 정보에 액세스할 수 있습니다. 이러한 정보는 공격자에게 흥미로울테고, 모두 높은 권한이 없어도 읽을 수 있습니다. 사용자가 컴퓨터에서 관리하는 정보 측면에서 보면 악성 프로그램을 실행할 경우 사용자의 모든 것이 공격자에게 넘어가게 됩니다. 따라서 "사용자의 컴퓨터"를 "사용자가 컴퓨터에서 관리하는 데이터"로 정의한다면 권한에 대해 설명한 모든 내용은 무시하고 제1 법칙이 유효하다고 간단히 결론을 내릴 수 있습니다.

"사용자의 컴퓨터"에 대한 정의를 꼬치꼬치 따지지 않더라도 제1 법칙은 시간이 지난 지금까지 유효한 것으로 보입니다. 제1 법칙의 요지는 컴퓨터의 운영자인 사용자가 해당 컴퓨터에서 실행되는 소프트웨어에 대해 책임을 져야 한다는 사실입니다. 악의적인 드라이버나 악의적인 비디오 코덱을 설치하는 것은 해당 컴퓨터의 모든 제어 권한을 범죄자에게 넘겨 주는 것입니다!

소프트웨어 공급업체는 의도하지 않은 손상을 방지하기 위해 여러 가지 일을 할 수 있고, 실제로 보안 경계도 이러한 맥락에 따른 것이지만 의식적으로 악성 소프트웨어를 실행할 경우 이러한 보호 조치는 대부분 물거품이 됩니다. 이러한 사실이 바로 사용자에게 관리 작업을 수행할 권한이 있어서는 안 되는 이유이자 사용자 교육이 중요한 이유입니다. 그러므로 제1 법칙은 지금도 유효하다고 말할 수 있습니다. 다만 이를 위해서는 사용자 컴퓨터의 정의를 약간 수정해야 할 수도 있습니다.

제2 법칙: 악의적 의도를 가진 누군가가 사용자 컴퓨터의 OS를 변경할 수 있다면 해당 컴퓨터는 더 이상 사용자의 것이 아니다.

언뜻 이 법칙은 아주 간단해 보입니다. 악의적 의도를 가진 누군가가 사용자 컴퓨터의 운영 체제를 변경할 수 있다면 해당 컴퓨터를 더 이상 신뢰할 수 없는 것은 당연합니다. 그러나 컴퓨팅 요구 사항이 발전하면서 OS가 의미하는 바도 달라졌습니다. 필자는 수년 전에 The Blackwell Encyclopedia of Management(managementencyclopedia.com)라는 백과사전에서 OS라는 용어에 대한 정의를 작성했습니다. 이 정의에는 입력 및 출력 장치에 대한 액세스, 하드웨어에 대한 액세스 등을 관리하는 OS에 대한 내용이 포함되어 있었습니다. 지금은 이 백과사전을 구할 수 없고 필자가 제출한 내용도 역사 속으로 사라진 상태이지만 확실한 사실은 OS에 카드놀이, 태블릿 입력 시스템 및 비디오 트랜스코더가 포함된다는 언급은 하지 않았다는 점입니다.

컴퓨팅이 점점 더 복잡해짐에 따라 OS도 더 많은 기능을 지원하도록 확장되었습니다. 게다가 OEM은 유용한 것부터 극히 유해한 것에 이르기까지 온갖 종류의 자체적인 추가 소프트웨어를 OS에 넣는 경우가 많고, 이로 인해 문제는 더욱 복잡해집니다. 이러한 추가 소프트웨어의 기능 일부는 이미 핵심 운영 체제에 기본 제공되는 기능과 중복되기도 합니다.

예를 들어 Windows Server 2008 Enterprise Edition 기본 설치는 5GB 이상의 디스크 공간을 차지합니다. Windows Vista Ultimate Edition에는 10GB 이상의 공간을 차지하는 58,000개 이상의 파일이 포함되어 있습니다. 또한 OS를 구성하는 파일 외에도 수천 개의 구성 설정과 데몬 또는 서비스가 있습니다.

이러한 것도 모두 OS의 일부입니다. OS는 모든 파일, 모든 구성 설정, 모든 서비스, 그리고 파일 및 구성 설정에 의해 만들어지는 모든 런타임 개체(세마포, 명명된 파이프, RPC 끝점)까지 포괄하는 집합적 용어입니다. 시스템 시간과 같은 매우 추상적인 구성체, 그리고 이벤트 로그 내용과 같은 특정 데이터 유형도 OS의 일부로 간주해야 합니다.

OS가 얼마나 확장되고 발전했는지 고려할 때, 이러한 파일 중 하나라도 수정하면 정말 컴퓨터를 신뢰할 수 없게 될까요? 우선 직접적인 대답은 '아니요'입니다. 예를 들어 Windows Vista에는 MS-DOS의 오래된 줄 편집기인 edlin.exe가 기본 제공됩니다. 단언할 수는 없지만 Windows Vista가 출시된 이후 이 운영 체제가 설치된 모든 시스템을 통틀어 edlin.exe가 호출된 횟수는 단 두 번이라는 데 맛있는 커피 한 잔 정도는 기꺼이 걸겠습니다. 두 번의 호출은 모두 약 3분 전 구문을 기억해 내려고 애쓰던 중 필자가 실행한 것입니다. 누군가 edlin.exe 또는 아무도 사용하지 않는 다른 파일을 수정했다고 해서 해당 컴퓨터는 더 이상 사용자의 것이 아니라고 말할 수 있을까요?

edlin.exe는 분명히 운영 체제의 일부입니다. 그러나 아무도 이 파일을 실행하지 않는다면 이 파일에 대한 수정이 어떻게 컴퓨터 손상으로 이어질 수 있을까요? 물론 대답은 컴퓨터가 손상되지 않는다입니다. 운영 체제에서 사용되지 않는 부분이라면 수정된다 해도 컴퓨터에 피해를 주지 못합니다. 그리고 OS에서 사용되지 않는 부분은 많습니다.

그러나 간접적인 대답은 '예'입니다. 단순히 누군가 파일을 실행하는지 그렇지 않은지만으로 이 파일에 대한 수정이 컴퓨터에 손상을 주는지 여부를 판단할 수는 없기 때문입니다. 문제는 이것보다 좀 더 복잡합니다. 그림 2에 나와 있는 edlin.exe의 ACL(액세스 제어 목록)을 살펴보십시오.

fig02.gif

그림 2 매우 제한적인 edlin.exe의 ACL(더 크게 보려면 이미지를 클릭하십시오.)

edlin.exe의 ACL은 매우 제한적입니다. 이 실행 파일을 수정할 권한은 TrustedInstaller 서비스에만 있습니다. 이러한 사실은 매우 중요합니다. 사용자 컴퓨터에서 이 파일을 수정하는 악의적 의도를 가진 누군가에게 간접적인 영향을 미치기 때문입니다. edlin.exe를 수정하는 행위는 해당 컴퓨터가 더 이상 사용자의 것이 아님을 의미합니다. 여기서 핵심은 악의적인 사용자가 edlin.exe를 수정할 수 있다는 점입니다. 악의적 의도를 가진 누군가가 이 파일을 수정할 수 있다면 이는 사용자가 더 이상 컴퓨터의 어떠한 부분도 신뢰할 수 없음을 의미합니다.

OS는 스스로를 보호합니다. 서비스와 구성 설정은 무단 수정을 할 수 없도록 보호됩니다. 디스크의 파일도 무단으로 수정할 수 없도록 보호되며 운영 체제에서 사용하는 세마포와 RPC 끝점도 무단으로 수정할 수 없도록 보호됩니다. 이렇게 보호되는 개체 중 하나라도 공격자가 수정할 수 있다면 이 공격자는 다른 모든 개체도 수정할 수 있으며 이미 수정했을 가능성이 높습니다.

이 부분은 상당히 중요합니다. 여러 불변의 법칙에서는 어떤 행위를 두고 컴퓨터의 손상 여부를 판단하지 않습니다. 중요한 점은 누군가에게 무엇을 할 권한이 있는가, 그것 뿐입니다. 이 부분은 간과해서는 안 됩니다. 컴퓨터 보안에서는 동작의 실제 수행보다 그 동작을 할 수 있다는 사실 자체가 훨씬 더 중요한 경우가 많다는 점을 항상 기억해야 합니다.

컴퓨터가 인터넷에 완전히 개방되어 있고 몇 달 동안 패치가 적용되지 않은 상태로 유지된다면 이 컴퓨터를 신뢰할 수 있을까요? 아닙니다. 이 컴퓨터는 손상된 것으로 간주해야 합니다. 손상되었을 가능성이 있는 시스템에서는 아무것도 신뢰할 수 없습니다. (필자는 5년 전 쓴 "도움말: 해킹을 당한 경우 대처 방법"(technet.microsoft.com/library/cc512587)에서도 이와 똑같은 말을 했었습니다.) 공격자의 기술이 뛰어나다면 손상된 시스템에 손상 징후가 전혀 나타나지 않을 수 있습니다. 시스템은 평상시와 똑같아 보입니다.

의문의 여지 없이 제2 법칙은 아직 유효합니다. 공격자가 사용자 컴퓨터의 보호되는 개체를 수정할 수 있다면 해당 컴퓨터는 더 이상 사용자의 것이 아닙니다. 중요한 것은 실제로 공격을 당했는지 여부가 아니라 이러한 개체를 수정할 수 있는지 여부임을 기억하십시오.

제3 법칙: 악의적 의도를 가진 사람이 아무런 제한 없이 사용자의 컴퓨터에 물리적으로 액세스할 수 있다면 이 컴퓨터는 더 이상 사용자의 것이 아니다.

이 법칙은 2000년에 매우 중요한 법칙이었습니다. 이 당시 대부분의 사람들은 시스템에 물리적으로 액세스하여 무엇을 수행할 수 있는지 제대로 알지 못했습니다. 사실 더 많은 것을 알고 있어야 했던 일부 정부 기관조차도 이러한 기본적인 부분을 놓쳤습니다. 당시 보안 지침에서는 로그온하지 않은 채로 종료를 허용하는 옵션을 비활성화할 것을 권장했습니다. 이렇게 하면 로그온 화면에서 Shut down…(종료...) 단추가 회색으로 비활성화됩니다. 이러한 지침이 만들어진 배경은 컴퓨터를 종료하려는 사용자는 누가 시스템을 종료했는지에 대한 감사 기록이 남도록 먼저 로그온해야 한다는 이론이었습니다.

이는 잘못된 생각에 대한 사례 연구입니다. 로그온 화면에서 Shut down…(종료...) 단추에 액세스하려면 실제로 콘솔 앞에 앉아 있어야 합니다. 그리고 콘솔 앞에 앉아 있고 컴퓨터의 전원을 꼭 꺼야 하는 상황이라면 일반적으로 컴퓨터의 앞쪽에 있는 크고 둥근 전원 단추를 사용하면 되고 전원 코드를 뽑아도 합니다. 시스템이 종료되고 감사 추적은 없습니다.

Windows 2000에는 로그온할 필요 없이 도킹 해제 허용이라는 보안 설정이 제공되며 이 옵션은 Windows Vista에서도 계속 사용할 수 있습니다(그림 3 참조). 원리는 같습니다. 랩톱을 도킹 스테이션에서 도킹 해제하려면 먼저 시스템에 로그온해야 합니다.

fig03.gif

그림 3 컴퓨터와 도킹 스테이션을 둘 다 훔치면? (더 크게 보려면 이미지를 클릭하십시오.)

이 설정의 실질적인 보안 가치는 매우 불분명합니다. 필자가 보기에 이 이론은 누군가 랩톱에 접근하여 도킹을 해제할 수만 있다면 컴퓨터를 쉽게 훔칠 수 있다는 의미라고 생각합니다. 필자가 랩톱을 훔칠 일은 없겠지만 만일 훔치려고 마음만 먹는다면 이와 같은 도난 방지 대책은 전혀 방해가 되지 않을 것입니다. 랩톱과 도킹 스테이션을 통째로 훔쳐가면 되니까요. 게다가 네트워크 케이블과 전원 코드까지 덤으로 가져가게 되겠군요. 완전히 쓸모없는 보안 수단입니다.

Petter Nordahl-Hagen이 오프라인 NT 암호와 레지스트리 편집기를 만들었을 때야 비로소 물리적 액세스의 핵심이 제대로 인식되기 시작했습니다. 그가 만든 것은 NTFS 볼륨에 대한 읽기/쓰기 액세스를 허용하는 실험용 NTFS 파일 시스템 드라이버가 포함된 Linux 부팅 디스크에 불과했습니다. 부팅 디스크의 소프트웨어는 레지스트리를 로컬 시스템에 탑재하고 SAM(소프트웨어 자산 관리) 하이브에 관리자 계정을 위한 새 암호를 썼습니다. 사용자가 해야 할 일은 시스템에 물리적으로 액세스하고 1 ~ 2분 정도 기다리는 것이 전부였습니다.

바로 이와 같은 도구 때문에 제3 법칙이 등장하게 되었습니다. 사실 Nordahl-Hagen의 도구는 많은 데모에서 사용되었습니다. 안타깝게도 대부분의 사용자들은 핵심을 제대로 파악하지 못했습니다. 필자는 개인적으로 몇 가지 데모에서 이 도구를 사용했지만 "사용자들이 이런 도구를 모르게 하려면 어떻게 해야 합니까?", 그리고 "Microsoft에서는 이 문제를 해결하기 위해 어떤 노력을 하고 있습니까?"라는 질문을 받는 데 지쳐 사용을 그만두게 되었습니다. 놀라울 정도로 많은 IT 업계 종사자들이 물리적 액세스가 다른 어떤 것보다 중요하다는 사실을 인정하거나 이해하려 하지 않았습니다.

이러한 환경에서 제3 법칙은 매우 중요한 의미를 제시했습니다. 그러나 비평가들은 이 법칙을 맹렬히 공격했습니다. 사람들은 Microsoft가 물리적 액세스와 아주 조금이라도 관련된 모든 문제를 수정하지 않기 위해 만든 법칙이라며 비웃었습니다. 실제로 제3 법칙은 여러 사례에서 취약점 보고(예: 오프라인 NT 암호 및 레지스트리 편집기 해킹)를 인정하지 않는 근거로 사용되었습니다. 그러나 시스템에 물리적으로 액세스할 수 있는 공격자를 차단하는 방법은 오로지 이들이 어떤 것에도 접근하지 못하게 하는 방법밖에는 없습니다.

바로 여기에 제3 법칙의 잠재적인 허점이 있습니다. 불변의 법칙이 작성된 후로 전체 디스크 암호화 기술이 바람직한 솔루션으로 부상했습니다. 전체 하드 디스크 암호화, 좀 더 정확한 용어로 전체 볼륨 암호화를 사용하면 전체 볼륨(운영 체제에 따라 파티션이라고도 함)을 암호화할 수 있습니다. 전체 부팅 볼륨(즉, OS가 위치한 볼륨)이 암호화된다면 제3 법칙이 여전히 유효한가에 대한 질문이 남습니다.

대답은 '그렇다고 볼 수 있다'입니다. 첫째, 암호 해독 키를 어딘가에 저장해야 합니다. 가장 손쉬운 보관 장소이자 BitLocker의 기본 옵션은 컴퓨터의 신뢰할 수 있는 플랫폼 모듈 칩입니다. 이렇게 하면 컴퓨터는 알아서 부팅됩니다. 일단 컴퓨터가 부팅되고 나면 해당 컴퓨터에 대한 영구적인 물리적 제어 권한이 있는, 기략이 뛰어나고 자본이 탄탄한 공격자는 이 컴퓨터를 마음껏 공격할 수 있습니다. 이제 컴퓨터를 임의 네트워크에 연결할 수 있으므로 네트워크와 관련된 방법을 통해 시스템을 공격할 수도 있습니다.

예를 들어 공격자는 USB 플래시 드라이브와 같은 DMA(직접 메모리 액세스) 장치를 사용하여 메모리를 읽거나 쓸 수 있습니다. 컴퓨터가 실행 중인 경우에는 공격자가 이 컴퓨터에 물리적으로 액세스할 수 있다면 모든 방책이 무효화됩니다.

암호 해독 키가 컴퓨터 자체에 저장되어 있지 않은 경우에는 공격자가 이러한 키를 얻거나 추측할 수 있는지 여부에 따라 공격 여하가 결정됩니다. PIN 코드가 컴퓨터 부팅에 사용되는 경우 공격자는 비교적 적은 노력을 들여 코드를 추측해 낼 수 있습니다. USB 플래시 드라이브 또는 일회용 암호 저장소와 같은 별도의 하드웨어 장치에 암호 해독 키가 저장되어 있거나 여기서 키가 파생되는 경우 공격자는 이러한 별도의 장치에 액세스할 수 있어야 합니다. PIN 코드보다 더 많은 노력이 필요하긴 하지만 이러한 키를 얻는 방법, 또는 이러한 키에 대한 액세스 권한이 있는 사람을 속이는 방법도 확실히 있습니다.

제3 법칙을 약간 다른 관점에서 "공격자가 사용자 컴퓨터에 물리적으로 액세스할 수 있다면 컴퓨터는 도난된 상태일 가능성이 높고 사용자가 되찾을 가능성은 거의 없다."로도 해석할 수 있습니다. 이 관점에서 볼 때 컴퓨터는 정말로 더 이상 사용자의 것이 아닙니다. 또한 이 관점에서 보면 사용자 컴퓨터의 데이터에 액세스할 수 있는지 여부는 공격자에게 중요한 문제가 아닐 수도 있습니다. 그러나 이는 제3 법칙이 의미하는 바가 아닙니다. 이 법칙은 공격자가 컴퓨터 자체뿐만 아니라 컴퓨터의 데이터도 액세스할 수 있음을 의미했습니다.

모든 사항을 고려할 때 제3 법칙은 여전히 유효합니다. 오늘날 사용되는 기술 중 일부는 물리적 액세스 권한이 있는 많은 공격자를 저지하고, 이로써 안전 장치가 탑재된 컴퓨터의 데이터에 액세스할 수 있는 공격자의 수를 최소화하는 데 있어 상당한 발전을 이룬 것이 사실입니다. 즉, 공격자가 실제로 얼만큼의 성과를 거둘 수 있는지는 항상 공격자의 권한에 따라 정해지며 새로운 기술이 10가지 불변의 법칙 상당수를 어느 정도 해결해 주고 있습니다. 그러나 조금 더 복잡하다 해도 여전히 물리적 액세스는 시스템 침투 방법을 제공합니다.

지금까지 살펴본 바로 불변의 보안 법칙은 기술 발전과 시간의 흐름에 매우 탄력적으로 적응하는 것으로 입증되었습니다. 처음 세 가지 법칙 중 제3 법칙은 일부 사례에서 여전히 유효성을 유지하고 있지만 기반이 가장 불안합니다. 하지만 이 법칙은 즉시 사용 가능한 강력한 완화책을 가진 법칙이기도 합니다. 다음 2회의 TechNet Magazine에서는 이번 호에 이어서 제4 법칙 ~ 제10 법칙이 아직 불변한지를 확인해 보겠습니다.

Jesper M. Johansson은 보안 소프트웨어 분야의 소프트웨어 설계자이며 TechNet Magazine의 객원 편집자로서, 정보 관리 시스템 분야 박사 학위와 20여 년 이상의 보안 관련 경력을 보유한 엔터프라이즈 보안 영역의 Microsoft MVP(Most Valuable Professional)입니다. 그의 최근 저서로는 Windows Server 2008 Security Resource Kit가 있습니다.