문맥 (context)
본 출원은 2004년 2월 13일자로 출원된 미합중국 가출원 제60/544,772호의 특권을 주장하는 것이다.
본 발명은 보안 통신으로 네트워크 환경을 통해 전달된 컴퓨터 익스플로이트로부터 컴퓨팅 장치를 보호하는 시스템 및 방법에 관한 것이다.
점점 더 많은 컴퓨터들 및 그 밖의 컴퓨팅 장치들이 인터넷과 같은 다양한 네트워크를 통해 상호 접속됨에 따라, 특히 네트워크 또는 정보 시스템을 통해 전달된 침입 또는 공격으로부터의 컴퓨터 보안은 점점 더 중요해지고 있다. 본 분야에 숙련된 기술자들이 알 수 있는 바와 같이, 이들 공격은 컴퓨터 바이러스, 컴퓨터 웜, 시스템 컴포넌트 교체, 서비스 거부 공격, 심지어 합법적인 컴퓨터 시스템 특징의 오용/남용을 포함하여(그러나 이것들에 반드시 제한되는 것은 아님) 많은 다른 형태로 나타는데, 이것들 모두는 불법적인 목적을 위해 하나 이상의 컴퓨터 시스템 취약점을 악용하여 공격한다. 본 분야에 숙련된 기술자들은 다양한 컴퓨터 공격이 기술적으로 서로 다르다는 것을 알 수 있지만, 본 발명을 위해, 설명을 단순하게 하기 위해, 이후로 이들 공격 모두를 컴퓨터 익스플로이트, 또는 더욱 단순하게 익스플로이트로 언급하겠다.
컴퓨터 시스템이 컴퓨터 익스플로이트에 의해 공격당하거나 "감염"될 때, 시스템 장치 불능; 펌웨어, 애플리케이션 또는 데이터 파일의 삭제 또는 손상; 잠재적으로 민감한 데이터를 네트워크 상의 다른 위치로의 전송; 컴퓨터 시스템 셧 다운; 또는 컴퓨터 시스템의 충돌 야기를 포함하는 여러가지 불리한 결과들이 초래된다. 모든 컴퓨터 익스플로이트가 그런 것은 아니지만 많은 컴퓨터 익스플로이트의 또 다른 유해한 양상은 감염된 컴퓨터 시스템이 다른 컴퓨터를 감염시키는데 사용된다는 것이다.
도 1은 하나의 컴퓨터 익스플로이트가 공통으로 분포되는 예시적인 네트워크 환경(100)을 도시한 도면이다. 도 1에 도시된 바와 같이, 전형적인 예시적인 네트워크 환경(100)은 인트라넷과 같은 통신 네트워크(110)를 통하거나, 또는 인터넷으로 통칭되는 글로벌 TCP/IP를 포함하는 대규모 통신 네트워크를 통해 모두 상호접속된 다수의 컴퓨터(102-108)를 포함한다. 어떤 이유로든, 컴퓨터(102)와 같이 네트워크(110)에 접속된 컴퓨터 상에서 악의를 가진 사람은 컴퓨터 익스플로이트(112)를 개발하여 네트워크 상으로 배포한다. 배포된 컴퓨터 익스플로이트(112)는 화살표(114)로 표시된 바와 같이 컴퓨터(104)와 같은 하나 이상의 컴퓨터에 의해 수신되어 그 컴퓨터를 감염시킨다. 다수의 컴퓨터 익스플로이트에서 그렇듯이, 일단 감염되면, 컴퓨터(104)는 화살표(116)로 표시된 바와 같이 컴퓨터(106)와 같은 다른 컴퓨터를 감염시키는데 사용되고, 이번에는 컴퓨터(106)가 화살표(118)로 표시된 바와 같이 컴퓨터(108)와 같은 또 다른 컴퓨터를 감염시킨다. 명백하게, 현대의 컴퓨터 네트워크의 속도 및 접속으로 인해, 컴퓨터 익스플로이트(112)는 기하급수적으로 "성장"할 수 있고, 곧 로컬 전염병이 되어, 세계적인 컴퓨터 유행병으로 빠르게 확대된다.
컴퓨터 익스플로이트, 특히 컴퓨터 바이러스 및 웜에 대한 종래의 방어책은 안티-바이러스 소프트웨어이다. 일반적으로, 안티-바이러스 소프트웨어는 네트워크를 통해 도달하는 입력 데이터를 스캔해서, 공지된 컴퓨터 익스플로이트와 관련된 식별가능한 패턴을 찾는다. 공지된 컴퓨터 익스플로이트와 관련된 패턴을 검출하면, 안티-바이러스 소프트웨어는 감염된 데이터로부터 컴퓨터 바이러스를 제거하거나, 데이터를 차단하거나, 또는 "감염된" 입력 데이터를 삭제함으로써 응답할 수 있다. 불행히도, 안티-바이러스 소프트웨어는 전형적으로 "공지된" 식별가능한 컴퓨터 익스플로이트를 대상으로 삼는다. 빈번하게, 이것은 익스플로이트의 "서명(signature)"이라고 칭해지는 것과 데이터 내의 패턴을 맞추어봄으로써 행해진다. 이러한 익스플로이트 검출 모델에서의 중요한 결함 중의 하나는 컴퓨터의 안티-바이러스 소프트웨어가 새로운 컴퓨터 익스플로이트를 식별하여 응답하도록 갱신될 때까지 알려지지 않은 컴퓨터 익스플로이트가 네트워크 내에서 확인되지 않은 상태로 전파될 수 있다는 것이다.
안티-바이러스 소프트웨어가 수천의 공지된 컴퓨터 익스플로이트의 인식으로 더욱 정교해지고 효율적으로 됨에 따라, 컴퓨터 익스플로이트도 그만큼 더 정교해졌다. 예를 들어, 다수의 최근 컴퓨터 익스플로이트는 이제 그 형태가 다양하고, 또는 바꾸어 말하면, 그 익스플로이트들이 이동중에 안티-바이러스 소프트웨어에 의해 인식될 수 있는 식별가능한 패턴 또는 "서명"은 없다. 이러한 다양한 익스플로이트는 다른 컴퓨터 시스템으로 전파되기 전에 그들 스스로 변경하기 때문에 때때로 안티-바이러스 소프트웨어에 의해 인식불가능하다.
컴퓨터 익스플로이트에 대한 보호를 위해 오늘날 일반적인 다른 방어책은 하드웨어 또는 소프트웨어 네트워크 방화벽(firewall)이다. 본 분야에 숙련된 기술자들이 알 수 있는 바와 같이, 방화벽은 내부 네트워크와 외부 네트워크 사이의 정보의 흐름을 제어함으로써 외부 네트워크로부터 비롯된 권한없는 액세스로부터 내부 네트워크를 보호하는 보안 시스템이다. 방화벽의 외부에서 비롯된 모든 통신은 프럭시(proxy)에 먼저 보내지는데, 프럭시는 그 통신을 조사하여, 그 통신을 예정된 타겟에 보내는 것이 안전한지 허용 가능한지 판정한다. 불행히도, 허용 가능한 네트워크 활동이 억제되지 않고, 허용 불가능한 네트워크 활동이 거부되도록 방화벽을 적절하게 구성하는 것은 정교하고 복잡한 작업이다. 기술적으로 복잡해지는 것 이외에도, 방화벽 구성은 관리하기가 어렵다. 방화벽이 부적절하게 구성되면, 허용 가능한 네트워크 트래픽이 부주의하게 셧다운될 수 있고, 허용 불가능한 네트워크 트래픽이 허용될 수 있어서, 내부 네트워크의 신뢰성을 떨어뜨린다. 이러한 이유로, 방화벽에 대한 변경은 일반적으로 드물게 행해지고, 기술적 네트워크 설계에 관해 숙련된 기술자들에 의해서만 행해진다.
방화벽의 또 다른 제한으로서, 방화벽은 내부 네트워크를 보호하는 동안, 특정 컴퓨터에는 어떠한 보호도 제공하지 않는다. 즉, 방화벽은 그 자신을 특정 컴퓨터의 요구에 따라 적응시키지 않는다. 그 대신에, 방화벽이 단일 컴퓨터를 보호하기 위해 사용될 지라도, 방화벽은 여전히 단일 컴퓨터의 구성에 따르지 않고 방화벽의 구성에 따라 컴퓨터를 보호한다.
방화벽과 관련된 또 다른 문제는 방화벽에 의해 설정된 주변부 내에서 비롯된 컴퓨터 익스플로이트로부터 방화벽이 보호를 제공하지 못한다는 것이다. 즉, 일단 익스플로이트가 방화벽에 의해 보호된 네트워크를 침입할 수 있으면, 익스플로이트는 방화벽에 의해 저지되지 않는다. 이러한 상황은 직원이 휴대형 컴퓨터를 집으로 가져가서(즉, 회사 방화벽 보호를 벗어나서), 덜 안전한 환경인 집에서 사용할 때 자주 발생한다. 그 직원도 모르게, 휴대용 컴퓨터는 이때 감염된다. 휴대형 컴퓨터가 방화벽의 보호 안에서 회사 네트워크에 재접속되면, 익스플로이트는 종종, 방화벽에 의해 확인되지 않은채 다른 컴퓨터들을 자유롭게 감염시킨다.
상술된 바와 같이, 컴퓨터 익스플로이트는 이제 합법적인 컴퓨터 시스템 특징들도 공격을 강화한다. 그러므로, 방화벽 및 안티-바이러스 소프트웨어 제공자들 이외의 많은 관계자들이 컴퓨터 익스플로러부터의 컴퓨터 보호와 관련하여 이제 협력해야 한다. 예를 들어, 운영 체계 제공자는 이제, 경제적 및 계약적인 이유로, 컴퓨터 익스플로이트에 의해 사용될 수 있는 결함 또는 취약점을 식별하기 위해 그들의 운영 체계 기능을 계속적으로 분석 검토해야 한다. 본 발명을 위해, 컴퓨터 익스플로이트가 컴퓨터 시스템을 공격할 수 있는 어떤 길은 일반적으로 컴퓨터 시스템 취약점, 또는 단순하게 취약점이라 칭해질 수 있다.
취약점이 운영 체계, 또는 그외 다른 컴퓨터 시스템 컴포넌트, 드라이버, 애플리케이션에서 식별되어 처리되면, 제공자는 전형적으로 취약점을 개선하기 위해 소프트웨어 갱신을 배포할 것이다. 종종 패치(patch)라고 칭해지는 이러한 갱신은 식별된 취약점으로부터 컴퓨터 시스템을 안전하게 보호하기 위해 컴퓨터 시스템 상에 설치되어야 한다. 그러나, 이러한 갱신은 본질적으로 운영 체계, 장치 드라이버, 또는 소프트웨어 애플리케이션의 컴포넌트에 대한 코드 변경이다. 그것만으로도, 그들은 안티-바이러스 소프트웨어 제공자로부터 안티-바이러스 갱신으로서 빠르고 자유롭게 배포될 수 없다. 이들 갱신이 코드 변경이기 때문에, 소프트웨어 갱신은 공중으로 배포되기 전에 실질적인 기업내 테스팅을 필요로 한다. 불행히도, 기업내 테스팅으로도, 소프트웨어 갱신은 하나 이상의 다른 컴퓨터 시스템 특징이 중단되거나 고장나게 할 수 있다. 그러므로, 소프트웨어 갱신은 컴퓨터 시스템을 신뢰하는 당사자들이 큰 딜레마에 빠지게 한다. 더욱 구체적으로, 당사자는 그들 컴퓨터 시스템의 동작을 중단시킬 위험을 무릅쓰고 취약점으로부터 컴퓨터 시스템을 보호하기 위해 컴퓨터 시스템을 갱신할 것인가, 아니면 그들의 컴퓨터 시스템이 감염될 위험을 무릅쓰고 컴퓨터 시스템의 갱신을 그만둘 것인가?
현재의 시스템 하에서는, 새로운 컴퓨터 익스플로이트가 네트워크(110) 상에서 배포될 때와 컴퓨터 시스템이 컴퓨터 익스플로이트로부터 보호하기 위해 갱신될 때의 사이에 존재하는, 이후 취약점 윈도우라고 불리우는 기간이 있다. 그 이름이 붙여진 것은, 이러한 취약점 윈도우 동안에, 컴퓨터 시스템이 새로운 컴퓨터 익스플로이트에 노출되거나 공격받기 쉬워서이다. 도 2a-2b는 이러한 취약점 윈도우를 도시한 예시적인 시각표의 블록도이다. 시각표에 관한 다음 설명과 관련하여, 중요한 시간 또는 이벤트가 식별되어, 시각표에 관한 이벤트로 칭해질 것이다.
도 2a는 이제 공중 네트워크 상에서 배포되는 더욱 최근의 정교한 부류의 컴퓨터 익스플로이트들 중의 하나와 관련된 컴퓨터 시스템의 취약점 윈도우를 도시한 것이다. 후술되는 바와 같이, 이 새로운 부류의 컴퓨터 익스플로이트는 컴퓨터 시스템 취약점을 식별하기 위한 시스템 제공자의 사전행동 보안 조치를 역이용하고, 그 다음에 컴퓨터 익스플로이트를 만들어내어 전달한다.
도 2a를 참조하면, 이벤트(202)에서, 운영 체계 제공자는 배포된 운영 체계에서 취약점을 존재를 식별한다. 예를 들어, 한 시나리오에서, 그 자신의 배포된 운영 체계의 내부 분석을 실행하는 운영 체계 제공자는 컴퓨터 시스템을 공격하기 위해 사용될 수 있는 이전에 알려지지 않은 취약점을 밝혀낸다. 대안적인 시나리오에서, 이전에 알려지지 않은 취약점은 컴퓨터 시스템 상에서 시스템 보안 분석을 실행하여 취약점에 관한 정보를 운영 체계 제공자에게 중계하는 조직을 포함하는 제3자에 의해 발견된다.
일단 운영 체계 제공자가 보안 취약점의 존재를 알았으면, 운영 체계 제공자는 취약점을 처리하여, 이벤트(204)에서, 운영 체계가 실행되는 소정의 컴퓨터 시스템을 안전하게 보호하기 위한 패치를 작성하여 배포한다. 전형적으로, 운영 체계 제공자는 패치를 설치하는 모든 운영 체계 사용자들에 대한 권고와 함께, 이용가능한 시스템 패치가 있는 몇가지 유형의 안내서를 만들 수 있다. 패치는 감염된 컴퓨터 시스템 상으로의 다운로드 및 설치를 위해 네트워크(110) 상의 공지된 위치에 보통 배치된다.
불행히도, 이런 일이 너무나도 자주 발생하기 때문에, 운영 체계 제공자가 패치를 배포한 후, 악의를 가진 자가 패치를 다운로드하고, 운영 체계 및 그외 것들에 의해 공표된 임의의 정보뿐만 아니라 몇가지 역공학(reverse engineering)을 사용하여, 운영 체계 내의 "픽스드(fixed)" 취약점에 관한 명세를 식별한다. 이 정보를 사용하여, 악의를 가진 자는 하위 취약점을 공격하기 위한 컴퓨터 익스플로이트를 만든다. 이벤트(208)에서, 악의를 가진 자는 컴퓨터 익스플로이트를 네트워크(110) 상으로 배포한다. "픽스(fix)"라고도 공지되어 있는 소프트웨어 패치를 발행하는 목적은 하위 취약점을 정정하기 위한 것인데, "픽스"는 종종, 악의를 가진 자에 의해 만들어진 컴퓨터 익스플로이트에 의해 공격받을 수 있는 새로운 취약점을 불행히도 스스로 만들어내거나 포함할 수 있는 소프트웨어 코드의 복잡한 부분이다. 그러므로, "픽스"가 정정하는 것을 평가하는 것 이외에, "픽스"가 또한 잠재적인 취약점에 대해 평가된다.
"픽스"가 이용가능하지만, 악의를 가진 자는 상술된 것을 포함한 여러가지 이유로, 모든 취약한 컴퓨터 시스템이 즉시 업그레이드될 수 있는 것은 아니라는 것을 알고 있다. 그러므로, 이벤트(208)에서, 악의를 가진 자는 컴퓨터 익스플로이트(112)를 네트워크(110) 상으로 배포한다. 컴퓨터 익스플로이트(112)의 배포는 상술된 바와 같이, 취약한 컴퓨터 시스템이 이러한 컴퓨터 익스플로이트에 영향받기 쉬운 취약점 윈도우(212)를 열게 한다. 이벤트(210)에서 패치가 컴퓨터 시스템 상에 최종적으로 설치될 때만은 취약점 윈도우(212)는 그 컴퓨터 시스템에 대해 닫혀있다.
오늘날 배포된 많은 컴퓨터 익스플로이트가 도 2a와 관련하여 설명된 시나리오와 같은 공지된 취약점에 기초하고 있지만, 때때로, 이전에 알려지지 않은 취약점을 역이용하는 컴퓨터 익스플로이트가 네트워크(110) 상에 배포된다. 도 2b는 이러한 시나리오 하의 시각표(220)에 관한 취약점 윈도우(230)를 도시한 것이다. 그러므로, 시각표(220) 상에 도시된 바와 같이, 이벤트(222)에서, 악의를 가진 자는 새로운 컴퓨터 익스플로이트를 배포한다. 이것이 새로운 컴퓨터 익스플로이트이기 때문에, 취약한 컴퓨터 시스템을 공격으로부터 보호하기 위해 이용할 수 있는 운영 체계 패치도 없고 안티-바이러스 갱신도 없다. 이에 대응하여, 취약점 윈도우(230)가 열린다.
새로운 컴퓨터 익스플로이트가 네트워크(110) 상에서 돌아다니고 약간 지난 시점에서, 운영 체계 제공자 및/또는 안티-바이러스 소프트웨어 제공자는 이벤트(224)로 표시된 바와 같이 새로운 컴퓨터 익스플로이트를 검출한다. 본 분야에 숙련된 기술자들이 알 수 있는 바와 같이, 전형적으로, 새로운 컴퓨터 익스플로이트의 존재는 운영 체계 제공자 및 안티-바이러스 소프트웨어 제공자에 의해 몇시간 내에 검출된다.
일단 컴퓨터 익스플로이트가 검출되면, 안티-바이러스 소프트웨어 제공자는 안티-바이러스 소프트웨어가 컴퓨터 익스플로이트를 인식할 수 있는 패턴 또는 "서명"을 식별하기 위한 프로세스를 시작할 수 있다. 이와 유사하게, 운영 체계 제공자는 운영 체계가 컴퓨터 익스플로이트로부터 보호하기 위해 패치되어야 하는지를 판정하기 위해 컴퓨터 익스플로이트를 분석하는 프로세스를 시작한다. 이러한 병행된 노력의 결과로서, 이벤트(226)에서, 운영 체계 제공자 및/또는 안티-바이러스 소프트웨어 제공자는 컴퓨터 익스플로이트를 처리하는, 운영 체계에 대한 갱신, 즉 소프트웨어 패치, 또는 안티-바이러스 갱신을 배포한다. 그 다음, 이벤트(228)에서, 사용자의 컴퓨터 시스템 상에 갱신이 설치됨으로써, 컴퓨터 시스템을 보호하고, 취약점 윈도우(230)을 닫게 한다.
컴퓨터 익스플로이트가 컴퓨터 시스템에 대해 보안 위협을 하는 가능한 모든 시나리오들만을 나타내는 상기 예로부터 알 수 있는 바와 같이, 취약점 윈도우는 컴퓨터 익스플로이트(112)가 네트워크(110) 상에 배포되는 시간과, 대응하는 갱신이 취약점 윈도우를 닫기 위해 사용자의 컴퓨터 시스템 상에 설치된 시간의 사이에 존재한다. 딱하게도, 취약점 윈도우가 크든 작든, 감염된 컴퓨터는, 일단 가능하다면, "치료"하여 회복시키기 위해서 컴퓨터 소유자의 비용이 상당히 든다. 이 비용은 네트워크(110)에 부착된 수백만 또는 수천만의 장치를 가질 수 있는 큰 기업 또는 단체를 취급할 때 막대하게 들 수 있다. 그러한 비용은 그와 같은 익스플로이트가 고객 데이터를 변경시키거나 파괴할 수 있는 가능성에 의해 더욱 증폭되는데, 고객 데이터의 변경 또는 파괴와 같은 것은 추적하여 치료하기가 매우 곤란하거나 불가능할 수 있다. 필요한 것은 보호 갱신이 컴퓨터 시스템 상에서 이용가능하고/하거나 설치되기 전이라도, 개별 컴퓨터 시스템의 요구에 응답하는 방식으로 그 요구에 따라 컴퓨터 익스플로이트에 대해 컴퓨터 시스템을 안전하게 보호하는 시스템 및 방법이다. 종래 기술에서 발견된 이들 및 그외 다른 문제들이 본 발명에 의해 처리된다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
방화벽(firewall)의 작동 과정에서 외부 네트워크로부터 오는 통신은 어떤 구성요소를 거치며, 그 구성요소는 어떤 역할을 수행하는가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation방화벽의 통신 처리 과정에서 거치는 구성요소와 해당 구성요소의 기능을 파악해야 한다.
-
2정보 추출
information_extraction방화벽과 관련된 통신 흐름 및 프럭시(proxy)의 역할을 추출한다.
- 방화벽의 외부에서 비롯된 모든 통신은 프럭시(proxy)에 먼저 보내지는데, 프럭시는 그 통신을 조사하여, 그 통신을 예정된 타겟에 보내는 것이 안전한지 허용 가능한지 판정한다.
-
3근거 선택
evidence_selection통신이 프럭시로 먼저 보내진다는 점과 프럭시의 판정 기능을 핵심 근거로 선택한다.
- 방화벽의 외부에서 비롯된 모든 통신은 프럭시(proxy)에 먼저 보내지는데, 프럭시는 그 통신을 조사하여, 그 통신을 예정된 타겟에 보내는 것이 안전한지 허용 가능한지 판정한다.
-
4논리 통합
logical_integration외부 통신 -> 프럭시(조사 및 판정) -> 타겟 전달의 관계를 연결한다.
-
5결론 도출
conclusion_formulation프럭시가 통신을 조사하여 안전성 및 허용 가능성을 판정하는 역할을 함을 도출한다.
- 프럭시는 그 통신을 조사하여, 그 통신을 예정된 타겟에 보내는 것이 안전한지 허용 가능한지 판정한다.
-
6답변 생성
answer_generation질문에 맞춰 구성요소(프럭시)와 기능(조사 및 판정)을 포함하여 답변을 작성한다.
- 프럭시(proxy)에 먼저 보내지는데, 프럭시는 그 통신을 조사하여, 그 통신을 예정된 타겟에 보내는 것이 안전한지 허용 가능한지 판정한다.
최종 답변 (final_answer)
방화벽의 외부에서 비롯된 모든 통신은 프럭시(proxy)에 먼저 보내지며, 프럭시는 해당 통신을 조사하여 예정된 타겟에 보내는 것이 안전한지 또는 허용 가능한지를 판정하는 역할을 수행한다.
핵심 해석 (core_interpretation)
방화벽의 외부에서 비롯된 모든 통신은 프럭시로 먼저 보내져 통신의 안전성과 허용 가능 여부를 판정한다.