Security Watch아일랜드 하핑: 원치 않는 종속성 처리

Jesper M. Johansson

지난 달 Security Watch에서는 네트워크를 공격하기 위해 USB 플래시 드라이브를 사용하는 시작 단계에 대해 살펴보았습니다. 공격은 감염된 USB 플래시 드라이브를 컴퓨터에 연결하는 순간 시작됩니다. 연결하면 악성 코드가 자동으로 또는 사용자의 약간의 도움을 통해(간단한 사회 공학을 이용하여)

실행됩니다. 이 공격은 워크스테이션에 로컬로 존재하지만 맬웨어가 네트워크의 다른 부분으로 확산될 수 있다는 것은 확실합니다. 곧 출간될 필자의 저서 Windows Server 2008 Security Resource Kit(Microsoft Press®, 2008)에서는 이러한 형태의 네트워크 공격에 대해 자세히 설명합니다. 이 칼럼에도 이 책에 실린 내용 중 일부가 포함되어 있습니다.

가장 확실한 보호 방법 한 가지는 이동식 드라이브의 사용을 금지하는 것입니다. 하지만 좋은 방법처럼 보일지라도 이를 시행하려고 하면 사용자들의 불만이 만만치 않을 것이며 그러한 사용자에게 책임을 묻기도 어려울 수 있습니다. 극도로 중요한 환경이 아니라면 더 좋은 방법은 관련된 위험을 관리하고 노출을 억제하는 것입니다.

또한 이동식 드라이브만 클라이언트 컴퓨터에 보안 위험을 초래하는 것이 아닙니다. "10가지 불변의 보안 법칙"(microsoft.com/technet/archive/community/columns/security/essays/10imlaws.mspx)을 상기해 보십시오. 여기서 "악의적 의도를 가진 누군가가 아무런 제한 없이 사용자의 컴퓨터에 물리적으로 액세스할 수 있다면 이 컴퓨터는 더 이상 사용자의 컴퓨터가 아니다."라는 세 번째 법칙은 여전히 유효합니다. 이 법칙을 고려할 때 공격자가 컴퓨터에 액세스할 수 있다면 그 컴퓨터의 보안은 침해된 것으로 간주해야 합니다. 공격자가 자신의 코드를 사용자 컴퓨터에서 실행할 수 있다면 원격에서도 이런 공격이 가능합니다. 이는 "악의적인 해커가 사용자의 컴퓨터에서 마음대로 자신이 만든 프로그램이 실행되도록 할 수 있다면 해당 컴퓨터는 더 이상 사용자의 것이 아니다."라는 첫 번째 법칙에 해당합니다.

이러한 불변의 법칙은 매우 잘 들어맞는 것으로 입증되었으며 컴퓨터의 작동 방식이 근본적으로 변경되기 전에는 크게 변경되지 않기 때문에 이 법칙을 지키는 것이 안전합니다. 따라서 설정된 시나리오에 이러한 법칙이 어떤 식으로 적용되는지 고려하여 이동식 드라이브 문제를 해결하는 것이 필수적입니다. 약간의 레지스트리 조작으로 이렇게 할 수 있습니다.

물론 다른 보호 대책도 마련해 두어야 합니다. 클라이언트 컴퓨터 중 많은 수에서 보안이 이미 침해되었거나 회사의 중요 보안 대책을 염두에 두지 않는 사용자가 사용할 수 있다고 가정하는 것이 타당합니다. 그리고 이로 인해 네트워크의 다른 부분에 영향이 미치지 않도록 해야 하며 이에 따라 보안 종속성의 파악, 분석 및 완화가 가지는 중요성이 더욱 커집니다.

보안 종속성의 정의

보안 종속성은 컴퓨터의 보안이 다른 컴퓨터의 보안에 종속될 때 발생합니다. "DC(도메인 컨트롤러)가 해킹되면 전체 네트워크가 해킹된 것이다."라는 이야기를 들은 적이 있을 것입니다. 이는 모든 도메인 구성원의 보안이 DC에 종속된다는 것을 가장 간단히 표현하는 말입니다. DC가 안전하지 않으면 구성원 컴퓨터가 안전할 수 없습니다. 공격자가 도메인의 보안 구성을 변경할 수 있으면 구성원 컴퓨터의 Administrators 그룹에 새 계정을 추가하는 등의 방법으로 도메인의 모든 컴퓨터에 대한 제어권을 확보할 수 있습니다. 관리자가 보안에 손상을 줄 수 있는 취약점만이 문제가 아닙니다. 관리자는 해당 관리자가 관리하는 모든 시스템에 대한 완전한 액세스 권한을 가집니다.

컴퓨터 시스템에서 종속성은 피할 수 없습니다. 사실 종속성은 매우 많은 곳에 사용되며 필요한 경우도 많습니다. 그렇다고 모든 종속성을 허용할 수 있다는 의미는 아닙니다. 이 칼럼에서는 적절한 종속성과 부적절한 종속성을 설명한 다음 종속성의 유형을 분석하고 이를 처리하는 방법을 설명합니다. Windows Server 2008 Security Resource Kit에서는 개별 종속성에 대해 자세히 소개하고 이를 관리하는 방법을 설명합니다.

적절한 종속성

대개의 경우 중요도가 낮은 시스템이 보안을 위해 중요도가 높은 시스템에 종속될 때는 종속성이 허용됩니다. 일반적으로 컴퓨터와 시스템은 중요도에 따라 분류할 수 있습니다. 특정 환경의 구체적인 등급은 지금 이야기하고 있는 주제와 크게 관련이 없으므로 기본적인 분류가 있다는 점만 이해하시기 바랍니다. 논의의 편의를 위해 여기서는 워크스테이션과 DC의 두 분류가 있다고 가정하겠습니다. 이 시나리오에서는 워크스테이션이 보안을 위해 DC에 종속되는 것이 허용됩니다. DC 등급은 워크스테이션보다 중요하므로 당연히 더 높은 수준으로 보호되어야 합니다.

사용자 계정에도 같은 논리를 적용할 수 있습니다. 관리자가 사용자 소유의 데이터를 조작하는 것은 허용됩니다. 관리자의 책임이 더 크며 컴퓨터와 해당 컴퓨터 안의 모든 데이터에 자유롭게(항상 직접적이거나 명확한 것은 아니지만) 액세스할 수 있기 때문입니다. 이 사실을 이해하고 적절하게 컴퓨터를 관리한다면 이 종속성에는 아무 문제가 없습니다.

소프트웨어도 이런 방식으로 분석할 수 있습니다. 웹 브라우저처럼 중요도가 낮은 소프트웨어가 운영 체제와 같은 중요도가 높은 소프트웨어에 보안을 위해 종속되는 것은 허용 가능합니다. OS에 버그가 있는 경우 웹 브라우저가 새로운 문제점에 취약해진다는 점은 놀라운 일이 아니며 즉각적인 조치 목록에서 우선 순위가 낮을 것입니다. OS와 기타 중요한 응용 프로그램 및 데이터가 주된 관심 대상이기 때문입니다. 이런 사실은 버그를 수정하는 방법 및 핫픽스 적용 대상과도 관련됩니다. 최대한 문제에 가깝게 접근하여 버그를 수정해야 합니다. 이렇게 해야 픽스로 인한 보호 효과가 최대화됩니다. 따라서 웹 브라우저에서 관련 문제를 해결하는 것보다는 OS 자체의 문제를 먼저 해결해야 합니다.

또는 디자인 변경을 통해 종속성을 제거할 수 있습니다. 예를 들어 웹 브라우저를 다시 작성하여 OS에 대한 종속성을 줄일 수 있습니다. 더 중요한 구성 요소(이 경우 OS)의 기능이 중요도가 낮은 구성 요소(웹 브라우저)가 해당 기능을 사용하는 방식으로 사용되도록 설계되지 않은 경우에 이 방식이 적합합니다.

부적절한 종속성

적절한 종속성에 대해 설명한 내용을 잘 생각해 보면 부적절한 종속성에 대한 정의가 명확해집니다. 기본적으로 더 중요한 시스템은 절대로 중요도가 낮은 시스템에 종속되어서는 안 됩니다.

워크스테이션의 보안 침해가 곧 DC의 보안 침해를 의미하는 상황이라면 심각한 보안 문제가 있는 것입니다. 전체 보안이 네트워크에 있는 개별 컴퓨터의 보안에 종속된다면 네트워크 보호는 불가능합니다.

이를 통계적으로 살펴보겠습니다. 네트워크의 모든 컴퓨터가 전체 시간 중 99.999퍼센트의 시간 동안 "안전"하다면 매우 안전한 네트워크를 갖추었다고 생각할 수 있습니다. 사실 이러한 비율은 아주 작은 네트워크가 아니라면 현실적인 수치와 상당히 차이가 있습니다. 그러면 이제 네트워크에 40,000대의 컴퓨터가 있고 각 컴퓨터가 전체 시간의 0.001퍼센트 동안 취약하다고 가정하겠습니다. 그러면 전체 네트워크는 전체 시간의 40퍼센트 동안 잠재적으로 안전하지 않은 것입니다.

또한 종속성을 관리하지 않으면 바로 그 0.001퍼센트의 시간에 있는 한 대의 컴퓨터로 인해 전체 네트워크의 보안이 침해될 수 있습니다. 이런 측면에서 보면 네트워크는 얼마나 안전한 것일까요? 분명히 말하지만, 더 중요한 시스템을 덜 중요한 시스템으로부터 보호하는 것이 무엇보다 중요합니다.

이 논리를 사용자 계정과 소프트웨어로 쉽게 확장할 수 있습니다. 예를 들어 Windows®의 새로운 터미널 서비스 클라이언트에서는 투명한 터미널 서비스 로그온을 위해 사용자 이름과 암호를 저장할 수 있습니다. 이 자격 증명은 자격 증명 관리자 API를 통해 저장되며 기본 로그온 세션에 사용되는 자격 증명으로 보호됩니다.

이 경우 보안 종속성이 생길 수 있습니다. 자신의 개인 워크스테이션에 로그인한 네트워크 관리자의 경우를 생각해 보겠습니다. 이 관리자는 전자 메일, 웹 탐색 및 정보 근로자가 일반적으로 수행하는 작업을 위해 이 워크스테이션을 사용합니다. 이때는 권한이 낮은 도메인 계정을 사용합니다.

그러던 중 이 관리자는 몇 가지 관리 작업을 수행하기 위해 DC 중 하나에 연결합니다. 이를 위해 터미널 서비스 클라이언트를 사용하고 나중에 더 쉽게 연결할 수 있도록 암호를 저장하도록 선택합니다. 이 경우 부적절한 보안 종속성이 최소 하나, 그리고 상황에 따라 두 개까지 생깁니다. 첫 번째는 이 관리자의 도메인 관리 계정 자격 증명은 권한이 낮은 정보 근로자 자격 증명으로 보호된다는 점입니다. 이 권한이 낮은 사용자 계정이 손상되면 도메인 관리 사용자 계정도 손상되어 결국 전체 도메인의 보안이 침해됩니다.

두 번째 종속성은 이 관리자가 도메인 컨트롤러가 아닌 시스템에서 도메인 관리 자격 증명을 입력한다는 사실 때문에 발생합니다. 개인 워크스테이션이 최소한 DC와 같은 수준으로 보호되는 경우가 아니라면(대개의 경우 이렇게 보호되지 않음) DC의 보안이 해당 사용자의 개인 워크스테이션에 설정된 보안에 종속되는 결과를 초래합니다. 예를 들어 회사에 불만을 품은 동료 직원이 네트워크 관리자의 워크스테이션에 키 입력 로거를 설치하면 도메인 관리 자격 증명이 캡처됩니다. 도메인 컨트롤러가 아닌 시스템에서 도메인 관리 자격 증명을 입력할 때마다 해당 시스템의 보안 결함이 전체 도메인에 노출됩니다.

이제 도메인 관리자가 현재 로그온해 있거나, 로그온한 적이 있거나, 앞으로 로그온할 컴퓨터에 공격자가 이동식 드라이브를 삽입한다고 가정해 보겠습니다. 그러면 이 도메인 관리자에게 보안 문제가 발생하며 더 나아가 전체 도메인의 보안이 침해됩니다. 이런 상황을 피할 수 있도록 이에 대한 내용을 충분히 파악해야 합니다. 물론 보안 응용 프로그램이 특정 작업을 수행할 때 보안 수준이 더 낮게 설정된 응용 프로그램의 기능에 의존하는 경우에도 동일한 상황이 발생할 수 있습니다.

공격에 대한 분석

앞에서 악의적 의도를 가지고 이동식 드라이브를 컴퓨터에 삽입한 경우에 발생할 수 있는 문제를 설명했습니다. 하지만 드라이브가 처음에 삽입된 컴퓨터의 경우에는 어떤 상황이 될지 분명합니다. 따라서 해당 컴퓨터가 그림 1에서처럼 도메인에 가입된 것으로 가정해 보겠습니다.

그림 1 이상적인 도메인 종속성

그림 1** 이상적인 도메인 종속성 **

여기서 설명하는 시나리오는 이상적인 종속성을 나타냅니다. 화살표는 방향을 나타내며 종속성이 어디서 상속되는지를 가리킵니다. 예를 들어 워크스테이션의 보안은 DC의 보안에 종속되며 사용자의 보안은 워크스테이션의 보안에 종속됩니다. 공격자는 워크스테이션의 보안을 침해할 수 있으며 이 경우에는 사용자가 해당 워크스테이션에 저장한 모든 정보에서 보안 침해가 발생할 수 있지만 보안 침해는 이 단계에서 격리됩니다.

하지만 워크스테이션에 로그온하는 사용자가 서버에서 로컬 관리자 그룹의 구성원이라고 가정하겠습니다. 그리고 도메인 관리자가 서버에 자주 로그온한다고 가정해 보십시오. 그러면 종속성은 그림 2와 같아집니다.

그림 2 보안이 침해된 도메인 종속성

그림 2** 보안이 침해된 도메인 종속성 **

문제의 컴퓨터에 로그온한 사람을 다르게 가정한 것만으로 네트워크 전체의 보안이 위험해졌습니다. 도메인 관리자가 서버에 로그온하기 때문에 DC와 전체 도메인의 보안이 해당 서버의 보안에 종속됩니다.

서버를 DC와 같은 수준의 보안으로 관리한다면 문제가 되지 않습니다. 하지만 이 경우 워크스테이션에 로그온하는 사용자는 서버 Administrators 그룹의 구성원입니다. 따라서 서버의 보안이 워크스테이션의 보안에 종속됩니다. 이는 전체 도메인의 보안이 워크스테이션의 보안에 종속된다는 의미입니다. 이 경우 이 워크스테이션에서 사용자 모르게 공격자의 도구가 실행되면 어떻게 될까요?

오늘날 정보 보안에 있어서 보안 종속성보다 중요하게 다루어야 할 개념은 거의 없습니다. 네트워크를 분석하고 종속성을 파악해 보면 틀림없이 부적절한 종속성을 발견하게 될 것입니다. 생각보다 많이 발견되는 최악의 시나리오는 전체 네트워크의 보안이 전체 네트워크에 종속되는 경우입니다. 즉, 모든 개별 컴퓨터의 보안이 다른 모든 컴퓨터의 보안에 종속되어 있을 수 있습니다. 이 경우 관계를 제어하는 것이 불가능하고 너무 복잡하기 때문에 이런 유형의 환경에서는 합리적이고 현실적인 위험 관리 전략을 개발하는 것이 불가능합니다. 해결 방법은 종속성을 분석하고 관리하는 것뿐입니다.

이 칼럼에서는 종속성의 의미와 이를 분석하고 해결하는 방법에 대해 개괄적으로 설명했습니다. 자세한 내용은 필자의 저서 Windows Server 2008 Security Resource Kit에서 보실 수 있습니다. 이 책에서는 장 전체를 할애하여 종속성을 분석하고 서버 및 도메인 격리 등의 고급 기술과 관리 계정 관리 등의 일반적인 기술을 모두 사용하여 이를 관리하는 방법에 대해 다룹니다.

이 칼럼의 집필을 위한 아이디어를 구상하는 데 도움을 준 David LeBlanc에게 감사의 뜻을 전합니다.

Jesper M. Johansson은 소프트웨어 보안 문제 분야의 보안 엔지니어이며 TechNet Magazine의 객원 편집자로서, MIS 분야 박사 학위를 취득했고 컴퓨터 보안 분야에서 20년 이상의 경력을 보유하고 있습니다.

© 2008 Microsoft Corporation 및 CMP Media, LLC. All rights reserved. 이 문서의 전부 또는 일부를 무단으로 복제하는 행위는 금지됩니다..