KR101802131B1 - 알려지지 않은 취약점 활용 공격에 대한 대항력을 향상시킨 침입 감내 장치 - Google Patents
알려지지 않은 취약점 활용 공격에 대한 대항력을 향상시킨 침입 감내 장치 Download PDFInfo
- Publication number
- KR101802131B1 KR101802131B1 KR1020160011967A KR20160011967A KR101802131B1 KR 101802131 B1 KR101802131 B1 KR 101802131B1 KR 1020160011967 A KR1020160011967 A KR 1020160011967A KR 20160011967 A KR20160011967 A KR 20160011967A KR 101802131 B1 KR101802131 B1 KR 101802131B1
- Authority
- KR
- South Korea
- Prior art keywords
- virtual machine
- virtual
- virtual machines
- machines
- online
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/22—Arrangements for preventing the taking of data from a data transmission channel without authorisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/30—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명의 실시예는, 침입 감내 장치에 있어서, 웹서버 시스템 내에 운영체제, 웹서버 소프트웨어 및 응용 프로그램의 언어 중 적어도 하나의 다양화 요인이 서로 다른 복수의 가상머신을 온라인 상태로 배치하는 가상머신 배치부; 및 상기 복수의 가상머신 중에서 적어도 하나의 가상머신의 웹서비스 노출이 종료된 경우에 상기 종료된 적어도 하나의 가상머신을 대체하는 대체 가상머신을 온라인 상태로 전환하는 가상머신 전환부를 포함하는 것을 특징으로 하는 침입 감내 장치를 제공한다.
Description
본 발명의 실시예는 알려지지 않은 취약점 활용 공격에 대한 대항력을 향상시킨 침입 감내 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
오늘날 자동차 내부의 전자 장비들 간의 통신망, 가정 내의 각종 제품들 사이의 통신 등을 비롯하여 인터넷에 연결되어 있는 많은 사용자들이 동시에 이용할 수 있는 쇼핑몰, 은행, 정부 기관까지 다양한 대상 시스템이 이용되고 있다. 이러한 시스템에서 정보의 교환과 서비스의 제공이 늘수록 악의적인 방법을 이용하여 이익을 취하려는 사용자도 늘어날 수 있으며, 제공하는 서비스나 교환하는 정보의 종류에 따라 악의적인 사용자가 치명적인 문제를 일으키기도 한다.
2013년의 사이버 테러는 악의적 의도를 지닌 공격자가 공격대상 기업 또는 기관 내부 대량의 대상 시스템을 감염시킨 후 잠복하다 동시에 시스템을 파괴하도록 해 3만 2천 여대의 PC가 피해를 입혔고, 같은 해 6월에는 대량의 좀비PC를 이용한 분산 서비스 거부 공격(DDoS: Distributed Denial of Service) 및 개인 정보 유출 등을 감행한 사이버 테러가 있었다. 이러한 공격들은 공격대상 시스템을 지속적으로 관찰 및 분석을 통하여 알려지지 않은 취약점(Unknown Vulnerability)을 발견하고 이를 활용하여 시스템 내부에 침입하는 방법으로 이루어졌으며, 침입 후에 내부의 PC들을 감염시키거나 해당 시스템의 웹페이지에 악성 코드를 심어 정보를 요청하는 PC들을 감염시키는 방법으로 좀비 PC를 양성하는데 이용하였다.
최근 계속 이어지고 있는 이런 유형의 사이버 테러를 지능적 지속 위협 (Advanced Persistent Threat, APT)이라고 한다. 2014년에도 지능적 지속 위협을 이용한 공격으로 한국 수력 원자력, 소니 픽쳐스를 대상으로 한 사이버 테러가 발생했다. 지능적 지속 위협을 활용한 공격은 첫째, 알려지지 않은 취약점을 이용하여 시스템 내부로 침입을 하며, 둘째, 장시간 시스템 내부에 잠복하여 피해량 확대를 위한 취약점을 찾거나 유출을 위한 정보를 수집한다. 공격자는 이러한 약점 및 정보를 볼모로 사이버 인질극(Ransomware)을 벌이거나 기업 업무의 마비, 금전적 피해, 정부 기관 공격 등의 목적으로 시스템을 파괴하기도 한다.
시스템 관리자들은 이전의 취약점 공격 등을 비롯하여 분산 서비스 거부 공격(DDoS), 좀비 PC를 양성하는 악성 코드 등으로부터 시스템과 사용자를 보호하기 위하여 방화벽(Firewall), 침입 탐지 시스템(Intrusion Detection System) 및 침입 방지 시스템(Intrusion Protection System) 등과 같은 보안 장비와 기술을 적용하고 있다.
방화벽은 신뢰 수준이 서로 다른 네트워크 사이에서 미리 설정된 규칙(Policy) 집합들을 기반으로 주고 받는 네트워크 패킷을 관리하는 보안 시스템이다. 이를 토대로 신뢰 수준이 낮은 외부 네트워크로부터 내부 네트워크의 신뢰 수준을 높이는 보안 장벽 역할을 한다. 침입 탐지 시스템은 방화벽과 비슷한 역할로 네트워크와 내부 시스템상에서 발생하는 이벤트들을 모니터링하고 사전에 정의된 보안 정책에 따라 악의적인 행동 또는 보안 정책상 위반 사항을 탐지 후 경고를 발생시킨다.
침입 방지 시스템은 위의 방화벽과 침입 탐지 시스템 등과 같은 네트워크 기반의 차단 시스템을 결합한 시스템으로, 서명(Signature) 기반의 공격 서명 또는 비정상적 행위(Anomaly)를 찾아내어 침입 이전에 공격을 중단시키는 데 초점을 둔 능동적인 방어 개념의 보안 시스템이다. 또한 내부 시스템의 비정상적 행위에 따른 정보 유출도 탐지 및 차단을 함으로써 악의적인 내부 사용자의 비정상적 행위를 통제할 수도 있다.
이와 같이, 기존의 보안 시스템들은 알려진 취약점을 기반으로 한 공격의 서명을 저장한 데이터베이스와 현재의 입력되는 패킷을 비교하여 네트워크상 공격을 탐지할 수도 있으며, 일반적인 상황의 네트워크 트래픽, 대상 시스템의 성능 등을 패턴화한 기준치를 정하고 기준치에서 벗어나는 행동을 비정상적 행동으로 간주하는 방법으로 공격을 탐지한다.
그러나 이러한 기존의 시스템들은 공격의 서명을 저장해 놓은 데이터베이스의 공간 크기에 따라 탐지 가능한 공격의 범위가 제한되고, 알려진 취약점 공격에서 1비트만 서명이 달라져도 저장한 데이터베이스가 최신화되기 전까지는 탐지가 어렵다는 문제가 있다. 또한 비정상적 행위를 탐지하기 위해서 높은 복잡도와 성능을 요구하기도 하고, 정상적인 요청과 행동을 비정상적인 것으로 탐지하는 긍정 오류(False Positive)가 발생하기도 한다. 서비스 제공자에 의해 제공되는 서비스의 종류가 점점 다양화되고 다른 서비스와의 관계도 복잡해지면서 해당 서비스에서 비롯되는 취약점의 종류와 수도 늘어나고 있다.
지능적 지속 위협에는 제로 데이(Zero-Day) 취약점을 비롯하여 알려지지 않은 취약점을 주로 활용하는 위협이 있다. 또한 대상 시스템 내부로 침입에 성공한 이후에는 장시간 잠복을 하여 비정상 행동을 탐지하는 보안 시스템에도 쉽게 검출이 되지 않는다는 제한이 있다. 따라서, 보안상 안전한 시스템을 구축하기 위한 기존의 보안 솔루션들은 신뢰할 수준으로 공격을 탐지하거나 방지하는 데에는 불충분하다. 공격자는 방어자의 수준을 뛰어넘기 위해 지속적인 우회로를 개발하기 때문에 모든 공격을 탐지하거나 방지하는 것은 불가능하다고 할 수 있다. 이에 따라 기존의 보안 시스템이 탐지하지 못하는 어떠한 공격이 발생하더라도 사용자에게 적절한 수준의 서비스를 지속적으로 제공하기 위한 보안 시스템이 필요하다.
이러한 문제점을 해결하기 위해 본 발명의 실시예는, 이러한 기존의 보안 시스템의 제한점을 극복하기 위한 개선안으로는 침입 감내 시스템(Intrusion Tolerant System)이 있으며, 침입 감내 시스템은 알려지지 않은 취약점을 이용하거나 기존의 보안 시스템에서 탐지가 되지 않는 공격, 오류 등으로부터 보안 시스템을 보호하고, 악의적 내부 사용자 등으로부터 침입을 받더라도 대상 시스템이 받는 영향을 제한하고 감내함으로써 대상 시스템이 받는 피해를 최소화하고 보안 및 성능상 적절한 수준의 서비스를 지속적으로 사용자에게 제공하는 것을 목적으로 한다.
전술한 목적을 달성하기 위해 본 발명의 일 실시예는, 침입 감내 장치에 있어서, 웹서버 시스템 내에 운영체제, 웹서버 소프트웨어 및 응용 프로그램의 언어 중 적어도 하나의 다양화 요인이 서로 다른 복수의 가상머신을 온라인 상태로 배치하는 가상머신 배치부; 및 상기 복수의 가상머신 중에서 적어도 하나의 가상머신의 웹서비스 노출이 종료된 경우에 상기 종료된 적어도 하나의 가상머신을 대체하는 대체 가상머신을 온라인 상태로 전환하는 가상머신 전환부를 포함하는 것을 특징으로 하는 침입 감내 장치를 제공한다.
여기서, 상기 다양화 요인은, 상기 가상머신 내에서 상기 응용 프로그램이 실행되는 순서가 무작위화 되도록 설정하는 것을 포함할 수 있으며, 상기 가상머신 전환부는 상기 다양화 요인에 대하여 상기 복수의 가상머신과 비교하여 상기 복수의 가상머신과 다른 다양화 요인을 가장 많이 갖는 가상머신을 상기 대체 가상머신으로 선택할 수 있다.
또한 상기 가상머신 전환부는, 기설정된 모든 조합의 다양화 요인에 대응되는 기 구성된 가상머신들이 적어도 한번 온라인 상태로 실행된 경우, 상기 복수의 가상머신을 동시에 온라인 상태로부터 제거한 후에 상기 복수의 가상머신을 대체하는 복수의 대체 가상머신을 온라인 상태로 전환하는 일괄복원을 수행할 수 있으며, 상기 복수의 가상머신을 복수의 다양화 요인별로 그룹화한 후 상기 복수의 가상머신에 대하여 그룹별로 순차적으로 상기 일괄복원을 수행할 수 있다.
또한, 상기 가상머신 전환부는, 같은 운영체제를 사용하는 가상 머신 그룹에 대한 일괄 복원을 수행하는 경우, 해당 운영체제를 사용하지 않는 가상머신은 온라인 상태로 존재하도록 하고 해당 운영체제를 사용하는 가상 머신만 온라인 상태에서 제거한 후 일괄 복원을 수행할 수 있다.
상기 가상머신 전환부는, 각 가상 머신 이미지의 전체 온라인 노출빈도에 관계없이 대체 가상머신을 선택할 수 있다.
상기 가상머신 전환부는, 상기 종료된 적어도 하나의 가상머신을 대체하여 다음번에 온라인 상태로 전환할 가상머신에 대응되는 가상머신 이미지를 기 저장된 가상머신 이미지 그룹으로부터 선택하고 상기 종료된 적어도 하나의 가상머신을 제거한 후에 상기 선택된 가상머신 이미지를 온라인 상태로 전환할 수 있다.
또한, 상기 가상머신 전환부는, 상기 종료된 가상 머신이 복구 과정에 들어가기 전에 주요 파일과 메모리 상태를 검사하여 공격의 흔적 또는 주요 파일의 변조 여부에 따라 상기 종료된 가상 머신의 보안성을 점수화하고, 상기 점수에 따라 상기 종료된 가상 머신의 다음 노출 시기를 결정할 수 있다.
상기 가상머신 배치부는, 기설정 특정 그룹의 운영체제를 사용하는 가상머신은 기설정 개수 이상이 온라인 상에 노출되는 일이 없도록 가상머신을 선택하도록 구현될 수 있다.
상기 가상머신 전환부는, 저장된 가상머신 이미지들 중에서, 파기되는 가상머신의 OS와 다른 OS를 갖는 가상머신 이미지를 선택한 후, 선택된 가상머신 이미지들 중에서 파기되는 가상머신의 웹 응용 프로그램 언어와 다른 웹 응용 프로그램 언어를 갖는 가상머신 이미지를 선택하여 대체 가상머신을 선택할 수 있다.
전술한 목적을 달성하기 위해 본 발명의 다른 실시예는, 침입 감내 방법에 있어서, 웹서버 시스템 내에 운영체제, 웹서버 소프트웨어 및 응용 프로그램 언어 중 적어도 하나의 다양화 요인이 서로 다른 복수의 가상머신을 온라인 상태로 배치하는 과정; 및 상기 복수의 가상머신 중에서 적어도 하나의 가상머신의 웹서비스 노출이 종료된 경우에 상기 종료된 적어도 하나의 가상머신을 대체하는 대체 가상머신을 온라인 상태로 전환하는 과정을 포함하는 것을 특징으로 하는 침입 감내 방법을 제공한다.
전술한 목적을 달성하기 위해 본 발명의 다른 실시예는, 컴퓨터에, 웹서버 시스템 내에 운영체제, 웹서버 소프트웨어 및 응용 프로그램 언어 중 적어도 하나의 다양화 요인이 서로 다른 복수의 가상머신을 온라인 상태로 배치하는 과정; 및 상기 복수의 가상머신 중에서 적어도 하나의 가상머신의 웹서비스 노출이 종료된 경우에 상기 종료된 적어도 하나의 가상머신을 대체하는 대체 가상머신을 온라인 상태로 전환하는 과정을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 온라인 상태에 노출된 대상 시스템에서 실행되고 있는 가상 머신들의 공통 취약점을 최소화함으로써 다수의 가상 머신에 대한 동시 공격을 회피하는 효과가 있다.
또한, 미처 회피하지 못한 공격이 다수의 가상 머신에 잠복해 있더라도 다양화 요인별로 일괄 복원하는 경우에는 잠복되어 있는 공격을 제거하여 대상 시스템이 마비되는 상황을 회피함으로써 대상 시스템의 보안성 및 생존성을 향상시키는 효과가 있다.
도 1은 침입 감내 시스템의 구조를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 침입감내 장치(200)를 도시한 도면이다.
도 3은 가상 머신이 4가지 상태를 주기적으로 순환하면서 서비스를 제공하는 경우를 예시한 도면이다.
도 4는 가상 머신 이미지들의 다양화와 가상 머신 종류의 개수에 따라 공격 성공 확률에 대한 관계를 보여주는 도면이다.
도 5는 가상 머신들의 4가지 상태에 포렌식(Forensics)과 업데이트(Update)과정이 추가된 도면이다.
도 6은 본 발명의 일 실시예에 따른 침입감내 장치(200)가 동작을 수행하는 전체 흐름도를 도시한 도면이다.
도 7은 가상화 기반에서의 가상머신의 복원 주기를 보여주는 도면이다.
도 8은 가상 머신 이미지를 다양화하는 예시를 보여준다.
도 9는 위에서 설계한 실험에 따라, 본 발명의 실시예와 비교군인 SEITS, SCIT의 가상 머신 다양화 수준을 나타낸 도면이다.
도 10은 본 발명의 실시예와 비교군인 SEITS, SCIT의 다양화 수준에 따른 응답 시간을 나타낸 도면이다.
도 11은 본 발명의 실시예와 비교군인 SEITS, SCIT의 잠복 공격에 따른 응답 시간을 그래프로 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 침입감내 장치(200)를 도시한 도면이다.
도 3은 가상 머신이 4가지 상태를 주기적으로 순환하면서 서비스를 제공하는 경우를 예시한 도면이다.
도 4는 가상 머신 이미지들의 다양화와 가상 머신 종류의 개수에 따라 공격 성공 확률에 대한 관계를 보여주는 도면이다.
도 5는 가상 머신들의 4가지 상태에 포렌식(Forensics)과 업데이트(Update)과정이 추가된 도면이다.
도 6은 본 발명의 일 실시예에 따른 침입감내 장치(200)가 동작을 수행하는 전체 흐름도를 도시한 도면이다.
도 7은 가상화 기반에서의 가상머신의 복원 주기를 보여주는 도면이다.
도 8은 가상 머신 이미지를 다양화하는 예시를 보여준다.
도 9는 위에서 설계한 실험에 따라, 본 발명의 실시예와 비교군인 SEITS, SCIT의 가상 머신 다양화 수준을 나타낸 도면이다.
도 10은 본 발명의 실시예와 비교군인 SEITS, SCIT의 다양화 수준에 따른 응답 시간을 나타낸 도면이다.
도 11은 본 발명의 실시예와 비교군인 SEITS, SCIT의 잠복 공격에 따른 응답 시간을 그래프로 나타낸 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 침입 감내 시스템의 구조를 도시한 도면이다.
알려지지 않은 취약성을 활용한 공격 또는 기존의 보안 시스템에서 탐지하지 못하는 공격들은 그대로 대상 시스템에 침입하여 정보 유출, 사이버 인질극, 최악의 경우는 대상 시스템을 마비시키는 등 정상적인 작동 또는 서비스가 제한되게 한다. 침입 감내 시스템은 알려지지 않은 취약점을 이용하거나 기존의 보안 시스템에서 탐지가 되지 않는 공격, 오류, 악의적 내부 사용자 등으로부터 침입을 받더라도 대상 시스템이 받는 영향을 제한하고 감내함으로써 시스템이 받는 피해를 최소화하고 보안 및 성능상 적절한 수준의 서비스를 지속적으로 사용자에게 제공하는 것을 목표로 한다.
일반적으로 공격자(Intruder)나 악의적인 내부 사용자는 대상 시스템의 취약성을 활용하여 대상 시스템에 침입한다. 통상적인 공격의 경우는 침입 탐지 시스템(IDS: Intrusion Dectection System)이나 침입 방지 시스템(IPS: Intrusion Protection System), 방화벽(Firewall) 등에서 이를 막을 수 있지만 기존의 보안 시스템에서 탐지하지 못하거나 알려지지 않은 공격, 보안 시스템 이후의 대상 시스템 내에서 발생하는 악의적 내부 사용자의 공격은 여전히 내부 시스템(대상 시스템)을 위협하게 된다. 침입 감내 시스템은 이러한 잔여 공격들로 인해 발생할 수 있는 시스템 결함 또는 파괴를 방어할 수 있어야 한다.
도 1에서 물리적인 호스트들은 호스트를 직접 공격하는 침입에 대비하기 위하여 운영체제와 가상화 기술을 다양화하여 구성하고 가상화 기술을 통해 다수의 가상 머신(VM: Virtual Machine)을 보유하며, 이 가상 머신들은 Central Controller(110)에 의해 통제된다. 온라인 상태의 가상 머신들은 제공하는 서비스마다 클러스터화 되어 외부 네트워크와의 연결을 통해 사용자들의 요청을 처리하고, 오프라인 상태의 가상 머신들은 이미지 형태로 각 호스트에 저장되어 있으며 주기적으로 온라인과 오프라인 상태를 순환한다. Central Controller(110)는 외부 네트워크와 직접적으로 연결되지 않으며 내부 네트워크를 통해 각 호스트들과 연결된다. Central Controller(110)는 가상 머신의 주기적 순환을 관리하고 다음번 온라인 상태에 노출할 가상 머신을 선정하는 과정과 잠복 공격을 대비한 일괄 복원 과정 등을 수행한다.
도 2는 본 발명의 일 실시예에 따른 침입감내 장치(200)를 도시한 도면이다. 본 발명의 일 실시예에 따른 침입감내 장치(200)는 도 1의 Central Controller(110)를 구현한 실시예이다.
도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 침입감내 장치(200)는 가상머신 배치부(210), 가상머신 전환부(220) 및 가상머신 이미지 저장부(230)를 포함하여 대상 시스템의 취약성을 방어하는 동작을 실행한다. 여기서 가상머신 배치부(210), 가상머신 전환부(220) 및 가상머신 이미지 저장부(230) 중에서 일부 구성요소는 생략되거나 다른 구성요소가 추가되어 침입감내 장치(200)가 구현될 수도 있다.
가상머신 배치부(210)는 웹서버 시스템(대상 시스템) 내에 운영체제, 웹서버 소프트웨어 및 응용 프로그램 언어 중 적어도 하나의 다양화 요인이 서로 다른 복수의 가상머신을 온라인 상태로 배치한다.
가상머신 배치부(210)는 세가지 주요 요소를 기초로 실행될 수 있으며, 이 세 가지 요소에는 각각 중복성(Redundancy), 다양성(Diversity) 및 가상화(Virtualization)가 있다.
중복성은, 동일한 서비스를 제공하는 시스템을 복제하여 구성 요소 수를 증가시키는 것을 의미한다. 동기화를 통해 각각의 복제 시스템들은 주 시스템에서 보조 시스템으로 전환이 되더라도 즉시 동일한 서비스를 제공할 수 있다. 중복성만을 이용할 때는 결함 감내에는 효과적이지만 공격자가 하나의 확실한 취약점을 활용하여 공격을 할 때에는 전체 시스템이 공격을 받는 문제가 발생한다.
다양성은, 이미 중복성을 이용하여 동일한 서비스를 제공하는 다수의 대상 시스템이 있을 때 이 대상 시스템마다 구성 요소를 다르게 해서 각각의 독립성을 증가시키는 것을 의미한다. 이는 중복성의 문제를 개선하는 것으로서 전체 대상 시스템의 공통 취약점을 최소화할 수 있다. 다양화 요인은 필요한 서비스, 대상 시스템 성능 등에 따라 다를 수 있으나 다양화 요인이 추가될수록 침입 감내 능력은 증가한다.
가상화는 대상 시스템 내의 하나 이상의 호스트에 복제된 여러 가상 머신(VM: Virtual Machine)을 구축하는 것으로서, 한정된 자원으로 중복성과 다양성을 동시에 제공 가능하다. 또한 VMWare 등과 같은 가상화 소프트웨어에서 제공하는 스냅샷(Snapshot)과 같은 기능은 가상 머신의 초기 상태를 저장한 후 언제든지 해당 초기 상태로 돌아가기 쉽게 하는 것으로서 복구 기반 침입 감내 시스템에서 신속한 복구를 가능하게 한다.
가상머신 전환부(220)는 온라인 상태의 복수의 가상머신 중에서 적어도 하나의 가상머신의 웹서비스 노출이 종료된 경우에 종료된 적어도 하나의 가상머신을 대체하는 대체 가상머신을 온라인 상태로 전환한다. 여기서, 가상머신의 웹서비스 노출의 종료는 일정 주기마다 이루어질 수 있다.
예를 들어, 가상머신 전환부(220)는 공격자로부터 악의적인 접근 또는 공격을 받기 쉬운 중요한 서버의 보안성을 향상하기 위한 것으로서, 주기적인 초기 상태 복구를 통해 대상 시스템의 운영 체제와 응용 프로그램을 오염되지 않은 깨끗한 상태로 재구성할 수도 있다.
도 3은 가상 머신이 4가지 상태를 주기적으로 순환하면서 서비스를 제공하는 경우를 예시한 도면이다.
도 3에서, 상태 순환 순서는 Active -> Grace period -> Cleansing -> Live spare가 된다. Active 상태는 가상 머신이 온라인에 있는 상태로 외부 네트워크의 사용자로부터 요청을 받고 서비스를 처리하는 단계이다. 온라인 상태에서의 노출 시간(Exposure Time)이 경과한 가상 머신은 초기 상태 복구를 위해 Cleansing 상태로 전환되어야 하지만 이미 사용자로부터 받은 요청을 마저 처리를 해주어야 하기 때문에 Grace period 단계를 거친다. Grace period 단계에서는 새로운 서비스 요청은 거부하고 이미 받은 서비스 요청만을 처리한다. 이후 Cleansing 단계에서 호스트는 초기 상태의 서버로 복구되며, 복구된 가상 머신은 오프라인 상태인 Live spare 상태에서 온라인으로 노출되기를 대기한다. 이 모든 과정은 가상머신 전환부(220)에 의해 통제될 수 있는데, 가상 머신의 개수, 온라인 상태에서의 노출 시간, Cleansing 단계에서의 복구 시간 등에 따라 전체적인 운용을 조절한다. 여기서, 온라인 상태에서의 노출 시간을 한정함으로써 공격자가 내부 시스템으로 침입을 성공할 충분한 시간을 제공하지 않는다는 이점과 성공한 침입에 대해서도 주기적인 복구를 통해 초기 상태로 돌아감으로써 피해량을 최소화시킨다는 이점이 있다. 또한, 침입뿐만 아니라 결함이나 갑자기 발생한 오류에 의한 비정상적인 상태에서도 복원이 가능하기 때문에 항상 깨끗한 상태를 유지할 수 있다.
하지만, 도 3의 방법은 고정된 주기로 순환을 하기 때문에 몇가지 한계를 가지고 있다. 고정된 주기로 순환하는 과정을 어느 정도 실행하게 되면 공격자는 고정된 노출 시간과 노출 패턴을 기억하게 되고, 취약점 또한 동일한 시간과 패턴으로 노출된다. 공격자는 기억한 노출 시간, 패턴을 토대로 대상 시스템에 대한 침입을 수월하게 할 수 있다. 이는 가상머신의 다양화가 반영되더라도 마찬가지로 다음 번에 노출될 시스템의 구성 요소를 미리 예측함으로써 해당 노출 시기에 활용될 취약점을 미리 준비할 수 있는 시간을 벌게 된다.
한편, 가상머신 배치부(210)에 의해 배치되는 VM과 가상머신 전환부(220)에 의해 대체되는 가상머신에서 다양화 요인으로는, 운영 체제의 다양화, 가상화 기술 소프트웨어 종류의 다양화, 응용 프로그램 작성 언어의 종류의 다양화, 및 동일한 시스템 구성 요소 내에서 주요 서비스의 프로세스 ID 생성 무작위화 등을 들 수 있다. 예컨대, 운영 체제의 다양화로는 Windows, Linux, OSX 등을 들 수 있으며, 가상화 기술 소프트웨어 종류의 다양화로는 Xen, VMware 등을 들 수 있다.
운영 체제를 VM마다 다르게 선택하는 것은 취약점을 다르게 할 수 있는 가장 큰 요인이며, VM마다 서로 다른 운영 체제를 선택하여 운용하여 여러 VM 사이에서 동시에 사용하는 운영 체제의 종류가 늘어날수록 공통 취약점이 줄어든다.
가상화 기술은 하이퍼 바이저와 가상 머신을 구축하는 응용 프로그램이며 여기에는 Xen, VMware 등의 상용 소프트웨어들이 있다.
웹 응용 프로그램은 웹 서버를 구축하고 서비스를 제공할 수 있게 해주는 소프트웨어로 운영 체제마다 적절한 웹 응용 프로그램이 있다. 이러한 웹 응용 프로그램은 웹 서비스를 제공하는 데에 중요한 역할을 하기 때문에 항상 보호되어야 한다.
전술하였듯이, 다양화 요인의 하나로는, 가상머신 내에서 복수의 응용 프로그램이 실행되는 순서가 무작위화 되도록 설정하는 것을 포함할 수 있다. 가상 머신 동작시 이러한 복수의 웹 응용 프로그램이 항상 동일한 순서로 가동된다면 특정 응용 프로그램에 대응하는 프로세스 ID(PID) 가 항상 일정하게 되므로 공격자는 시스템 침입 후 웹 서비스를 용이하게 마비시킬 수 있게 된다. 따라서 프로세스 ID의 생성을 무작위화 하도록 구성하는 것으로 충분히 공격을 어렵게 할 수 있는 다양화의 요인이 된다.
도 4는 가상 머신 이미지들의 다양화와 가상 머신의 개수에 따라 공격 성공 확률에 대한 관계를 보여주는 도면이다.
저장되어 있는 가상 머신 이미지를 이용하여 서비스 복구를 진행하는 경우, 만약 대상 시스템이 항상 같은 가상 머신 이미지로만 구성이 된다면 이미 파악된 하나의 취약점으로 대상 시스템 전체를 마비시킬 수 있다. 하지만 가상 머신의 다양화 요인을 증가시키면 제공하는 서비스 복구 후 온라인 상태 전환시 서로 다른 특성을 가지는 가상 머신들을 포함하여 대상 시스템이 구성되므로 침입자의 공격을 제한하는데 매우 효과적이다. 도 4에 도시한 바와 같이, 가상 머신 이미지의 개수와 K 개의 다양화 요인을 추가 구성할 때 공격 성공 확률이 감소됨을 알 수 있다.
가상머신 전환부(220)는 종료된 가상 머신이 복구 과정에 들어가기 전에 주요 파일과 메모리 상태를 검사하여 공격의 흔적 또는 주요 파일의 변조 여부에 따라 종료된 가상 머신의 보안성을 점수화하고, 그 점수에 따라 종료된 가상 머신의 다음 노출 시기를 결정한다.
즉, 온라인 상태를 마친 가상 머신이 복구 과정에 들어가기 전 주요 파일과 메모리 상태를 검사하여 공격의 흔적 또는 주요 파일의 변조 여부에 따라 해당 가상 머신 이미지의 보안성을 점수화할 수도 있다. 이 점수에 따라 다음 노출 시기에 가장 점수가 높은 이미지를 온라인 상태로 노출시킴으로써 보안성을 향상시킨다.
도 5는 가상 머신들의 4가지 상태에 포렌식(Forensics)과 업데이트(Update)과정이 추가된 도면이다.
일반적으로 휘발성 메모리는 가상 머신의 위협 상태를 알 수 있는 중요한 정보들을 담고 있다. 특히 루트킷 (Rootkit) 등의 악성 코드를 탐지하는 데에는 포렌식 과정으로서 휘발성 메모리 검사를 수행하는 것이 확실한 방법이다. 호스트 기반의 침입 탐지 시스템(H-IDS) 등도 메모리 상의 비정상적 프로세스를 탐지하는 능력을 갖고 있으나, 실시간으로 탐지하는 데에는 한계가 있고 대상 시스템의 서비스 제공 성능에도 제한을 준다.
여기서, 휘발성 메모리 검사는 온라인 상태를 마친 가상 머신을 대상으로 하기 때문에 시간 제약 없이 세부적인 검사가 가능하다. 하지만 전체 가상 머신 중 하나의 가상 머신에 침입한 공격의 경우에 대해서는 점수화를 통해 온라인 상태 노출 우선순위를 낮춰 해당 가상머신을 온라인으로 노출시키지 않을 수 있으나 다수의 가상 머신에 공격이 잠복되어 있을 때는 하나의 가상 머신만을 대상으로 한 복구 또는 가상머신 선택 우선 순위 정책으로는 공격을 회피하는 데 제한적이다.
또한, 몇 차례 점수화가 진행되고 나면 점수가 높은 가상 머신 이미지만 지속적으로 온라인 상태에 노출되므로 하나의 확실한 취약점을 이용하면 다수의 가상 머신이 동시에 공격을 받는 경우가 발생할 수 있다. 이에 따라 하나의 가상 머신만을 대상으로 하는 복구하는 방법보다는, 다수의 가상 머신에 공격 침입 후 잠복할 때에도 복구 가능하고 한 취약점을 이용한 공격에 다수의 가상 머신이 동시에 공격을 받지 않도록 하는 솔루션이 필요하다.
도 6은 본 발명의 일 실시예에 따른 침입감내 장치(200)가 동작을 수행하는 전체 흐름도를 도시한 도면이다.
도 6에 도시한 바와 같이, 가상머신 전환부(220)는 가상화 기반에서의 복원 주기 조정, 온라인 전환 가상 머신 선정, 잠복 공격 대비 가상 머신 일괄 복원 등의 동작을 수행한다.
가상화 기반에서의 복원 주기 조정에 따라, 물리적 서버 기반의 Cleansing 과정 대신에 가상화 기반에서는 사용 중인 가상 머신을 파기하고 새로운 가상머신 이미지로 가상 머신을 구성 후 대체함으로써 Cleansing 과정을 없애어 복원 시간을 단축할 수 있다.
온라인 전환 가상 머신 선정 과정은 다음번 온라인 상태에 노출될 가상 머신을 선정하는 과정으로서, 온라인 상태의 가상머신 간의 다양화 정도를 최대로 만들기 위해 현재 온라인 상태에 없는 가상 머신을 우선적으로 온라인으로 전환하여 가상 머신간 공통 취약점을 최소화시킨다.
잠복 공격 대비 가상 머신 일괄 복원 과정은 온라인 상태의 다수의 가상 머신에 잠복해 있을 수도 있는 공격을 제거하기 위한 것으로서, 다양화 요인별로 가상 머신을 동시에 복원한다. 즉, 가상머신 전환부(220)는 기설정된 모든 조합의 다양화 요인에 대응되는 기 구성된 가상머신들이 적어도 한번 온라인 상태로 실행된 경우, 현재 온라인 상태로 실행중인 복수의 가상머신을 동시에 온라인 상태로부터 제거한 후에 해당 복수의 가상머신을 대체하는 복수의 대체 가상머신을 온라인 상태로 전환하는 일괄복원을 수행한다.
전술한 바와 같이, 가상머신 배치부(210)에 의해 가상 머신이 온라인 상태로 배치되어 복수의 가상머신이 온라인 상태가 된 후(S602), 가상머신 전환부(220)는 온라인 상태의 가상 머신의 노출 시간이 종료되면 Grace Period를 거쳐 노출시간이 종료된 해당 가상머신을 파기한다. 온라인 상태의 가상 머신이 파기되기 전에 다양한 조합의 다양화 요소들을 갖는 가상 머신 이미지들이 한번 이상 온라인 상태에 노출되는 것을 1주기로 계산하여, 1주기(1 Round)가 도래했는지 여부를 확인한다(S604). 1주기가 도래하지 않은 것으로 확인된 경우, 다음 번 온라인으로 노출할 가상 머신을 선정과정을 시작한다(S606). 여기서, 가상머신 전환부(220)는 기설정된 다양화 요인에 대하여 온라인 상태의 복수의 가상머신과 비교하여 가장 많은 다양화 요인을 온라인 상태의 복수의 가상머신과 다르게 갖는 가상머신을 대체 가상머신으로 선택할 수 있다. 또한, 기설정된 다양화 요인에 대하여 온라인 상태의 복수의 가상머신과 비교하고, 파기되는 가상머신과 다양화 요인이 가장 많이 다른 가상머신을 대체 가상머신으로 선택할 수도 있다.
다음 번 온라인으로 노출할 가상 머신을 선정하는 과정이 시작되면 가상머신 이미지 저장부(230)에 저장된 가상머신 이미지 그룹을 검색하여 파기되는 가상머신의 OS와 다른 OS를 갖는 하나 이상의 가상머신 이미지들을 선택한다(S608).
가상머신 이미지 저장부(230)는 오프라인 상태의 가상머신에 대응하는 가상머신 이미지를 저장하며, 하나 이상의 다양화 요인에 따라 가능한 모든 조합의 다양화 요인을 갖는 복수의 가상머신 이미지를 저장한다. 가상머신 전환부(220)는 저장된 가상머신 이미지들 중에서, 파기되는 가상머신의 OS와 다른 OS를 갖는 가상머신 이미지를 선택한다(S610).
가상머신 전환부(220)는 S610 단계에서 선택된 가상머신 이미지들 중에서 파기되는 가상머신의 웹 응용 프로그램 언어와 다른 웹 응용 프로그램 언어를 갖는 가상머신 이미지를 선택한다(S612).
가상머신 전환부(220)는 S612 단계에서 어느 하나의 가상머신 이미지가 선택되면 최종적으로 선택된 가상머신 이미지를 Live Spare 단계에 대기시키고(S614) 파기될 가상 머신을 대체하여 온라인 상태에 노출시킨다(S602).
가상머신 전환부(220)는, 다양한 조합의 다양화 요소들을 갖는 가상 머신 이미지들이 한번 이상 온라인 상태에 노출되는 1주기가 도래한 것으로 판단한 경우에, 적어도 하나의 가상 머신에 잠복되어 있는 공격을 대비하여 각 주기 마지막에 일괄복원할 다양한 조합의 다양화 요인을 선택하고(S616) 그에 대응하는 조합의 다양화 요인을 갖는 가상머신 이미지를 이용하여 일괄복원을 수행한다(S618).
일괄 복원은 다수의 가상 머신에 잠복해 있을 수 있는 공격을 동시에 제거하기 위한 것이다. 또한, 일괄 복원은 다양화시킨 가상 머신들이 가지는 공통 취약점에 의해 공격이 다른 가상 머신으로 전이되는 가능성을 제거하며, 잠복 공격에 의해 발생할 수 있는 정보 유출이나 시스템 마비 상황 발생 이전에 공격을 제거함으로써 평균적인 서비스 제공 가능 시간이 늘어나는 효과를 제공한다.
도 3에서 도시한 4단계 주기에 따라 복원되는 경우에는, 물리적인 서버의 경우 초기 상태로 되돌리기 위해 Cleansing 과정이 필수적이다. 이 과정에서 서버의 운영체제, 응용프로그램 등을 새롭게 구축하여 최초 오염이 되지 않은 상태로 되돌린다. 온라인 상태에서 침입에 의한 공격으로 시스템이 손상되었거나 Rootkit 같은 악성 코드가 서버 내부에 잔존해 있더라도 Cleansing 과정에서 제거되어 정상적인 서비스를 다시 제공할 수 있다. 물리적인 서버의 Cleansing 과정은 운영체제 등을 다시 구축해야 하는 시간이 소요되는 데 이 시간 동안은 서버가 작동을 할 수 없게 된다.
가상화 기반에서는 가상 머신을 사용하여 서버를 구성한다. 가상 머신은 운영체제, 응용프로그램 등을 미리 구축해 놓은 해당 이미지 파일을 불러오는 과정만으로 바로 운용 상태가 되며, 물리적인 서버의 Cleansing 소요 시간에 비해 상대적으로 아주 적은 시간이 소요된다. 또한 상용 가상화 소프트웨어에서 제공하는 스냅샷(Snapshot) 같은 상태 저장 기능을 사용하여 가상 머신의 초기 상태를 저장한 후 필요한 시기에 불러와서 초기 상태로 돌아가게 하면 이미지 파일을 불러오는 과정보다 더 적은 시간으로 복원이 가능하다.
따라서 기존 물리적인 서버와 같이 따로 복원 과정을 가지는 것보다는 운용 중인 가상 머신을 제거하고 새로운 가상 머신 이미지를 불러와 대체하는 것으로 쉽게 초기 상태로의 복원이 가능하며 소요시간 또한 단축된다.
도 7은 가상화 기반에서의 가상머신의 복원 주기를 보여주는 도면이다.
도 7에 도시한 바와 같이, 가상머신 전환부(220)는 온라인 상태의 가상 머신은 Active 상태(S710)에서 Grace Period 를 거쳐(S730) 오프라인 상태가 되면 바로 제거하며(S750), Grace Period 이전에 가상머신 전환부(220)는 다음번에 온라인 상태로 노출할 가상 머신 이미지를 선정한다(S720). 선정된 가상 머신 이미지를 불러와 Live Spare 단계에서 대기시키다(S740) 온라인 가상 머신이 제거(S750)됨과 동시에 새로운 가상 머신을 온라인 상태로 전환시킨다(S710). 이 과정을 통해 도 3의 복원 주기가 가지는 Cleansing 단계에서의 소요시간을 없앨 수 있다.
대상 시스템에 포함되는 모든 가상 머신이 동일한 운영체제, 동일한 웹 서버 소프트웨어, 동일한 웹 응용 프로그램 언어 등을 사용한다면 하나의 취약점을 활용한 공격으로 시스템 전체가 마비되는 상황이 발생할 수 있다. 이에 대한 대비를 위해서 각각의 가상 머신의 구성 요소를 다양하게 구성한다.
도 8은 가상 머신 이미지를 다양화하는 예시를 보여준다.
도 8에 예시한 바와 같이 운영 체제는 Win Server 2012, Ubuntu, OS X, Debian 등일 수 있으며, 웹 서버 소프트웨어는 IIS, Apache, Nginx 등일 수 있으며, 다양한 웹 응용프로그램 언어(n-version)를 사용할 수 있다. 운영 체제의 종류의 개수를 l, 웹 서버 소프트웨어 종류의 개수를 m, 웹 응용프로그램 언어 종류의 개수를 n이라 할 때, 가능한 전체 가상 머신 이미지 조합의 총 개수 N은 N=l × m × n으로 나타낼수 있다. 다양화된 가상 머신 이미지들은 각 호스트마다 적어도 하나 저장되어 가상머신 전환부(220)에 의해 선정된 가상 머신이 온라인으로 전환된다.
가상머신 배치부(210)에 의해 최초 가상 머신 배치되는 경우에는 가상 머신 이미지의 다양화가 최대화될 수 있도록 배치한다. 이때 다른 다양화 요인들에 비해 운영체제가 가지는 취약점이 가장 많기 때문에 가상 머신의 운영체제의 중복을 최소화하는 것을 최우선으로 고려한다. 특히 기설정 특정 그룹의 운영체제(예컨대, Windows Server 계열 운영체제)의 경우 버전이 다르더라도 공통으로 가지는 취약점이 많기 때문에 해당하는 기설정 특정 그룹의 운영체제를 사용하는 가상머신은 기설정 개수 이상이 온라인 상에 노출되는 일이 없도록 가상머신을 선택한다. 예컨대 기설정 특정 그룹의 운영체제를 사용하는 가상머신은 1개만 온라인 상에 노출되도록 가상머신을 선택한다.
다음의 우선순위는 웹 서버 소프트웨어의 중복을 최소화하는 것으로 운영체제보다 취약점의 개수가 적으며 또한 서로 다른 웹 서버 소프트웨어끼리 공통 취약점이 거의 없지만, 널리 사용되는 소프트웨어 수가 적기 때문에 동일한 웹 서버 소프트웨어가 가상 머신들끼리 중복되는 경우를 최소화해야 한다. 도 8에서의 예시에 따른 우선순위는 웹 응용프로그램 언어의 중복을 최소화하는 것이 마지막 우선순위가 된다.
가상머신 배치부(210)에 의한 가상머신의 최초 온라인 배치 이후에 가상머신 전환부(220)는 노출 시간 종료시마다 대체 가상머신에 대응되는 새로운 가상 머신 이미지를 불러와 온라인 상태의 가상 머신을 대체한다.
가상머신 전환부(220)의 온라인 가상머신 선택시 가장 중요한 것은 온라인 상태의 가상 머신들의 다양화를 최대화시켜 단일 취약점 활용 공격에 대한 피해량을 최소화시키는 것이다. 또한 공격자가 지속적인 Fingerprint 공격 등으로 가상 머신 이미지의 종류 및 노출 패턴 등을 알아내려고 하는 것에 대비하여 공격자로 하여금 예측 불가능한 노출 순서를 만들어야 한다.
가상머신 전환부(220)는 단순 무작위 순서에 의해 대체 가상 머신을 선정할 수도 있다. 단순 무작위 순서에 의해 대체 가상 머신을 선정할 경우는 전체 가상 머신 이미지 파악 후 다음번 노출할 가상 머신을 확률적으로 분석해 내거나 또는 동일한 가상 머신이 온라인 상에 중복 노출되어 단일 취약점 활용 공격에 다수의 가상 머신이 동시 공격받을 가능성도 발생한다.
따라서, 가상머신 전환부(220)는 초기의 가상머신 배치 이후, 대체 가상 머신 이미지는 초기와 동일한 우선순위로 선정할 수도 있으며, 초기와 동일한 우선순위로 선정하는 방법에 더해서 직전에 온라인에서 운용 후 제거된 가상 머신이 직후에 다시 온라인 상태로 노출되지 않도록 온라인 상태로 실행될 대체 가상머신 후보에서 제외할 수도 있다.
또한, 가상머신 전환부(220)는 각 가상 머신 이미지의 전체 온라인 노출빈도에 관계없이 대체 가상머신을 선택함으로써 공격자가 다음에 노출할 가상 머신을 예측하지 못하도록 할 수도 있다.
전체 시스템 중 하나의 가상 머신에 공격이 잠복해 있을 경우에는 주기적 복원만으로 대응이 가능하다. 하지만 전술한 다양화 요인의 조합으로 인한 다양화된 대상 시스템이라 하더라도 공통 취약점이 있기 때문에 이를 활용한 공격에는 다수의 온라인 상태의 가상 머신이 공격받게 된다. 또한, 가상화 소프트웨어의 VMCI(Virtual Machine Communication Interface) 취약점을 활용한 가상 머신들간의 공격 전이 가능성과 같은 시스템 외부로부터의 침입뿐만 아니라 내부 감염도 발생할 수 있기 때문에 개별적인 복원만으로는 효과적인 대응이 제한적이다.
이러한 제한점을 해결하기 위한 방법으로 다양화 요인별 일괄 복원을 수행할 수 있다. 일괄 복원은 다수의 가상 머신을 동시에 복원하는 것으로 가상 머신들간의 공통 취약점을 활용하여 서로간 공격을 전이시키는 감염의 가능성을 제거하고 다수의 가상 머신에 감염된 공격을 동시에 제거할 수 있는 효과가 있다.
가상머신 전환부(220)는 일반적인 복원 과정을 수행하다가 전체 가상 머신 이미지가 한번 이상 온라인 상태에 노출되게 되면(1주기) 일괄 복원 과정을 수행한다. 이후 매 주기마다 일괄 복원을 수행하며 일괄 복원의 대상 다양화 요인은 취약점이 많은 기설정 요인(예컨대, 운영체제 요인)별로 순차적으로 일괄복원을 수행한다.
운영체제별로 해당 운영체제를 사용하는 가상 머신에 대한 일괄 복원을 수행하는 경우에 해당 운영체제를 사용하지 않는 가상머신은 온라인 상태로 존재하도록 하고 해당 운영체제를 사용하는 가상 머신만 온라인 상태에서 제거한 후 일괄 복원을 수행한다.
운영체제별로 해당 운영체제를 사용하는 가상 머신에 대한 일괄 복원이 끝나면 순차적으로 웹 서버 소프트웨어별로 해당 웹 서버 소프트웨어를 사용하는 가상머신을 일괄 복원한다.
(1) Central Controller에 의해 취약점 수가 많은 운영체제 우선 일괄 복원
(2) 다음번 온라인 노출 가상 머신은 전술한 온라인 전환 가상 머신 선정 정책에 의해 선정
(3) 온라인 가상 머신의 제거 전 다음번 온라인 노출 가상 머신들을 Live Spare 대기 후 온라인 가상 머신 제거시 교체
- 실험 설계-
본 발명의 실시예가 실행 목표를 달성하는지를 판단하기 위해 이전 연구인 SCIT(Self-Cleansing Intrusion Tolerance), SEITS(Secure Enhanced Intrusion Tolerant System)와 비교실험을 하였다. 실험에 적용된 공격은 알려지지 않은 취약점을 활용하여 다수의 가상 머신을 대상으로 하는 공격을 기본으로 해당 공격이 가상 머신에 잠복 후 다른 가상 머신을 감염시켜 잠복 공격이 확대되는 모델을 포함시켰다. 다수의 가상 머신에 잠복한 공격은 잠복된 시간동안 정보를 유출하거나 가상 머신을 마비시키는 공격을 동시에 일으키도록 하였다. 실험은 본 발명의 실시예가 위의 공격에 효과적으로 대응하는지를 알아보기 위해 취약점 활용 공격시 가상 머신의 다양화 정도, 취약점 활용 공격을 포함한 서비스 요청시의 응답시간과 잠복 공격시 해당 공격에 따른 응답시간, 정보유출량을 측정하였다.
본발명의 실시예와 이전 연구들의 비교실험을 위해 CloudSim 시뮬레이터를 사용하였다. CloudSim은 이산 이벤트(Discrete Event) 시뮬레이션 엔진을 사용한 Java 기반의 시뮬레이터로 가상화 기술을 이용한 서버 구성을 제공한다. 시뮬레이터 환경 중 Datacenter, Virtual Machine, Cloudlet은 각각 호스트의 성능, 가상 머신의 종류와 성능, 패킷과 관련한 성능 값을 상세하게 설정할 수 있기 때문에 제안한 시스템을 구성하기에 적합하다. 실험에 사용된 환경 및 시뮬레이션 변수는 표 1과 같다.
가상 머신 이미지는 4개의 서로 다른 운영체제와 3개의 웹 서버 소프트웨어를 다양화 요인으로 하여 총 12개를 구성하였으며 온라인 상태에 노출된 가상 머신은 9개로 하였다. 총 패킷은 10,000개를 발생시켰으며 패킷 사이즈는 통상적인 응답시간을 고려하여 가상 머신의 성능 변수 512 에 변수 0.77을 곱한 것을 사용하였다. 패킷은 실제 환경과 유사하게 하기 위해서 0.1에서 2초까지의 전송 간격을 적용하였다. 균등한 실험 조건을 위해 공격 모델에 따라 동일하게 위협을 발생시켰으며, 다양화를 적용하지 않은 SCIT의 경우 적절한 비교 분석이 어려워 최초에는 총 12개의 가상 머신 이미지 중 무작위로 9개를 배치하고 이후 가상 머신 선정시에도 마찬가지로 총 12개 가상 머신 이미지를 무작위로 선정하는 정책을 적용하였다.
- 실험 결과 -
도 9는 위에서 설계한 실험에 따라, 본 발명의 실시예(proposed)와 비교군인 SEITS, SCIT의 가상 머신 다양화 수준을 나타낸 도면이고, 도 10은 본 발명의 실시예(proposed)와 비교군인 SEITS, SCIT의 다양화 수준에 따른 응답 시간을 나타낸 도면이고, 도 11은 본 발명의 실시예(proposed)와 비교군인 SEITS, SCIT의 잠복 공격에 따른 응답 시간을 그래프로 나타낸 도면이다. 여기서, 각 그래프의 가로 축은 시간(초)을 나타낸다.
도 9에서, SEITS 는 다수의 가상 머신 이미지 중 보안성 점수가 높은 가상 머신 이미지가 우선적으로 온라인 상태에 노출되기 때문에 시간이 지남에 따라 다양화 수준이 내려간다. SCIT의 경우는 무작위로 가상 머신 이미지를 선정하였기 때문에 이미지 선정시마다 다양화 수준 변화가 발생한다. 본 발명의 실시예는 온라인상 노출되어 있지 않은 가상 머신을 우선적으로 노출하기 때문에 지속적으로 최고 수준을 유지함을 알 수 있다. 가상 머신의 다양화 수준이 높다는 것은 단일 취약점 활용 공격시 피해를 받는 대상이 적다는 것을 의미한다.
이러한 가상 머신 다양화 수준을 토대로 취약점 활용 공격을 받았을 때는 도 10에 나타낸 바와 같이, 다양화 수준이 낮아진 SEITS 와 SCIT 에 비해 본 발명의 ㅅ실시예에 따른 침입 감내장치의 응답시간이 짧게 나타났으며 이것은 같은 공격을 받았을 시에 피해 정도가 적다는 것으로 해석할 수 있다.
또한, 도 11에 도시한 바와 같이, 다수의 가상 머신에 잠복하다 동시에 시스템 마비 공격을 일으키는 공격시 각 대상 시스템들의 응답 시간과 관련하여, 본발명의 실시예는 주기적으로 일괄 복원을 하면서 대상 시스템에 동시 잠복 중인 공격들을 일괄적으로 제거하는 데 비해 다른 두 시스템은 다수의 가상 머신에 공격이 잠복 중이더라도 이를 효과적으로 제거하지 못하기 때문에 높은 응답시간을 보인다. 이는 본 발명의 실시예가 잠복 중인 공격에 대해 적은 피해를 받는 것으로 해석할 수 있다.
한편, 본 발명의 일 실시예에 따른 침입감내 방법을 도 6을 참조하여 설명한다.
도 6에 도시하듯이, 본 발명의 일 실시예에 따른 침입감내 방법은, 웹서버 시스템 내에 운영체제, 웹서버 소프트웨어 및 응용 프로그램 언어 중 적어도 하나의 다양화 요인이 서로 다른 복수의 가상머신을 온라인 상태로 배치하는 과정(S602) 및 온라인 상태의 복수의 가상머신 중에서 적어도 하나의 가상머신의 웹서비스 노출이 종료된 경우에 종료된 적어도 하나의 가상머신을 대체하는 대체 가상머신을 온라인 상태로 전환하는 과정(S604 ~ S618)을 포함한다.
전술한 바와 같이, 도 6에 기재된 침입감내 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 침입감내 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
이상의 설명은 본 발명 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명 실시예들은 본 발명 실시예의 기술사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명 실시예의 기술사상의 범위가 한정되는 것은 아니다.
110: Central Controller
200: 침입감내 장치
210: 가상머신 배치부
220: 가상머신 전환부
230: 가상머신 이미지 저장부
200: 침입감내 장치
210: 가상머신 배치부
220: 가상머신 전환부
230: 가상머신 이미지 저장부
Claims (15)
- 침입 감내 장치에 있어서,
웹서버 시스템 내에 운영체제, 웹서버 소프트웨어 및 응용 프로그램의 언어를 포함하는 복수의 다양화 요인 중 여러 다양화 요인이 서로 다르도록 형성된 복수의 가상머신을 온라인 상태로 배치하는 가상머신 배치부; 및
상기 복수의 가상머신 중에서 적어도 하나의 가상머신의 웹서비스 노출이 종료된 경우에 상기 종료된 적어도 하나의 가상머신을 대체하는 대체 가상머신을 온라인 상태로 전환하는 가상머신 전환부
를 포함하며, 상기 가상머신 전환부는,
기설정된 조합의 다양화 요인에 대응되는 기 구성된 가상머신 이미지들이 적어도 한번 온라인 상태로 실행된 경우, 상기 복수의 가상머신 중 여러 가상머신을 동시에 온라인 상태로부터 제거한 후에 상기 제거된 여러 가상머신을 대체하는 복수의 대체 가상머신을 온라인 상태로 전환하는 일괄복원을 수행하는 것을 특징으로 하는 침입 감내 장치. - 제1항에 있어서,
상기 가상머신 전환부는, 복수개의 대체 가상머신이 온라인 상태로 전환되는 경우 상기 복수개의 대체 가상머신에 대응되는 응용 프로그램들이 실행되는 순서가 무작위화 되도록 설정함으로써 상기 복수개의 대체 가상머신에 대응되는 응용 프로그램의 프로세스 ID가 무작위로 생성되도록 것을 특징으로 하는 침입 감내 장치. - 제1항에 있어서, 상기 가상머신 전환부는,
상기 복수의 다양화 요인에 대하여 상기 종료된 가상머신과 비교하여 상기 종료된 가상머신과 다른 다양화 요인을 가장 많이 갖는 가상머신을 상기 대체 가상머신으로 선택하는 것을 특징으로 하는 침입 감내 장치. - 삭제
- 제1항에 있어서,
상기 복수의 가상머신을 하나의 다양화 요인별로 그룹화한 후 하나의 그룹의 가상머신에 대하여 상기 일괄복원을 수행하는 것을 특징으로 하는 침입 감내 장치. - 제5항에 있어서, 상기 가상머신 전환부는,
같은 운영체제를 사용하는 가상 머신 그룹에 대한 일괄 복원을 수행하는 경우, 해당 운영체제를 사용하지 않는 가상머신은 온라인 상태를 유지하도록 하고 해당 운영체제를 사용하는 가상 머신을 온라인 상태에서 제거한 후 일괄 복원을 수행하는 것을 특징으로 하는 침입 감내 장치. - 제1항에 있어서,
상기 가상머신 전환부는, 상기 기 구성된 가상 머신 이미지의 전체 온라인 노출빈도에 관계없이 상기 기 구성된 가상 머신 이미지 중에서 대체 가상머신을 선택하는 것을 특징으로 하는 침입 감내 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 제1항에 있어서, 상기 가상머신 배치부는,
기설정 특정 그룹의 운영체제를 사용하는 가상머신은 기설정 개수 이상이 온라인 상에 노출되는 일이 없도록 상기 대체 가상머신을 선택하는 것을 특징으로 하는 침입 감내 장치. - 제1항에 있어서, 상기 가상머신 전환부는,
상기 기 구성된 가상머신 이미지들 중에서, 파기되는 가상머신의 OS와 다른 OS를 갖는 가상머신 이미지를 선택한 후, 선택된 가상머신 이미지들 중에서 상기 파기되는 가상머신의 웹 응용 프로그램 언어와 다른 웹 응용 프로그램 언어를 갖는 가상머신 이미지를 선택하여 상기 대체 가상머신을 선택하는 것을 특징으로 하는 침입 감내 장치. - 침입 감내 방법에 있어서,
웹서버 시스템 내에 운영체제, 웹서버 소프트웨어 및 응용 프로그램 언어를 포함하는 복수의 다양화 요인 중 여러 다양화 요인이 서로 다르도록 형성된 복수의 가상머신을 온라인 상태로 배치하는 과정; 및
상기 복수의 가상머신 중에서 적어도 하나의 가상머신의 웹서비스 노출이 종료된 경우에 상기 종료된 적어도 하나의 가상머신을 대체하는 대체 가상머신을 온라인 상태로 전환하는 과정
을 포함하며, 상기 대체 가상머신을 온라인 상태로 전환하는 과정은,
기설정된 조합의 다양화 요인에 대응되는 기 구성된 가상머신 이미지들이 적어도 한번 온라인 상태로 실행된 경우, 상기 복수의 가상머신 중 여러 가상머신을 동시에 온라인 상태로부터 제거한 후에 상기 제거된 여러 가상머신을 대체하는 복수의 대체 가상머신을 온라인 상태로 전환하는 일괄복원을 수행하는 것을 특징으로 하는 침입 감내 방법. - 컴퓨터에,
웹서버 시스템 내에 운영체제, 웹서버 소프트웨어 및 응용 프로그램 언어를 포함하는 복수의 다양화 요인 중 여러 다양화 요인이 서로 다르도록 형성된 복수의 가상머신을 온라인 상태로 배치하는 과정; 및
상기 복수의 가상머신 중에서 적어도 하나의 가상머신의 웹서비스 노출이 종료된 경우에 상기 종료된 적어도 하나의 가상머신을 대체하는 대체 가상머신을 온라인 상태로 전환하는 과정
을 실행하며, 상기 대체 가상머신을 온라인 상태로 전환하는 과정은,
기설정된 조합의 다양화 요인에 대응되는 기 구성된 가상머신 이미지들이 적어도 한번 온라인 상태로 실행된 경우, 상기 복수의 가상머신 중 여러 가상머신을 동시에 온라인 상태로부터 제거한 후에 상기 제거된 여러 가상머신을 대체하는 복수의 대체 가상머신을 온라인 상태로 전환하는 일괄복원을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160011967A KR101802131B1 (ko) | 2016-01-29 | 2016-01-29 | 알려지지 않은 취약점 활용 공격에 대한 대항력을 향상시킨 침입 감내 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160011967A KR101802131B1 (ko) | 2016-01-29 | 2016-01-29 | 알려지지 않은 취약점 활용 공격에 대한 대항력을 향상시킨 침입 감내 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170091249A KR20170091249A (ko) | 2017-08-09 |
KR101802131B1 true KR101802131B1 (ko) | 2017-11-29 |
Family
ID=59652658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160011967A KR101802131B1 (ko) | 2016-01-29 | 2016-01-29 | 알려지지 않은 취약점 활용 공격에 대한 대항력을 향상시킨 침입 감내 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101802131B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190071874A (ko) | 2017-12-15 | 2019-06-25 | (주)테미 | 복합형 복구기반 침입감내 시스템 및 방법 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101916676B1 (ko) | 2017-11-27 | 2018-11-08 | 한국인터넷진흥원 | 사이버 위협 인텔리전스 데이터를 수집하는 방법 및 그 시스템 |
-
2016
- 2016-01-29 KR KR1020160011967A patent/KR101802131B1/ko active IP Right Grant
Non-Patent Citations (2)
Title |
---|
David Pham 외 1명, "An Intrusion Tolerance Approach to Enhance Single Sign On Server Protection", Dependability (DEPEND), IEEE (2010.07.25.) |
김희영 외 2명, "가상 이미지 분석 및 보안성 있는 노출정책을 이용한 고유의 침입감내 시스템 설계", Telecommunications Review, 제22권 6호 (2012.12.) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190071874A (ko) | 2017-12-15 | 2019-06-25 | (주)테미 | 복합형 복구기반 침입감내 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20170091249A (ko) | 2017-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
El Kafhali et al. | Security threats, defense mechanisms, challenges, and future directions in cloud computing | |
US11082435B1 (en) | System and method for threat detection and identification | |
US10623434B1 (en) | System and method for virtual analysis of network data | |
US8006305B2 (en) | Computer worm defense system and method | |
US8375444B2 (en) | Dynamic signature creation and enforcement | |
US9838416B1 (en) | System and method of detecting malicious content | |
US8171553B2 (en) | Heuristic based capture with replay to virtual machine | |
CN111181926B (zh) | 一种基于拟态防御思想的安全设备及其运行方法 | |
Carlin et al. | Intrusion detection and countermeasure of virtual cloud systems-state of the art and current challenges | |
CN106161451A (zh) | 防御cc攻击的方法、装置及系统 | |
AU2011271157A1 (en) | System and method for identifying unauthorized activities on a computer system using a data structure model | |
Beraud et al. | Using cyber maneuver to improve network resiliency | |
US20160110544A1 (en) | Disabling and initiating nodes based on security issue | |
Osman et al. | Sandnet: Towards high quality of deception in container-based microservice architectures | |
KR101802131B1 (ko) | 알려지지 않은 취약점 활용 공격에 대한 대항력을 향상시킨 침입 감내 장치 | |
Sepczuk | Dynamic web application firewall detection supported by cyber mimic defense approach | |
US7549167B1 (en) | Self-cleansing system | |
CN112583841B (zh) | 虚拟机安全防护方法及系统、电子设备和存储介质 | |
Cedeno | Mitigating cyberattacks affecting resource-constrained devices through moving target defense (mtd) mechanisms | |
Liu et al. | A novel framework for zero-day attacks detection and response with cyberspace mimic defense architecture | |
Kumar | Intrusion detection and prevention system in enhancing security of cloud environment | |
Venkataramana et al. | Multi-agent intrusion detection and prevention system for cloud environment | |
KR101717697B1 (ko) | 가상화 환경에서의 침입 감내 시스템 및 그 방법 | |
Tahir et al. | An anomaly detection fabric for clouds based on collaborative VM communities | |
Szczepanik et al. | Detecting New and Unknown Malwares Using Honeynet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |