KR20070111603A - 클라이언트 및 서버의 보안시스템 - Google Patents
클라이언트 및 서버의 보안시스템 Download PDFInfo
- Publication number
- KR20070111603A KR20070111603A KR1020060044601A KR20060044601A KR20070111603A KR 20070111603 A KR20070111603 A KR 20070111603A KR 1020060044601 A KR1020060044601 A KR 1020060044601A KR 20060044601 A KR20060044601 A KR 20060044601A KR 20070111603 A KR20070111603 A KR 20070111603A
- Authority
- KR
- South Korea
- Prior art keywords
- client
- server
- application
- protected space
- integrity
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 클라이언트/서버 시스템을 외부의 해킹공격으로부터 보호할 수 있는 클라이언트/서버 보안시스템 및 보안방법에 관한 것으로, 클라이언트 시스템에 기존 운영체제 환경과 격리된 보호공간을 생성해 보호공간 내에서 클라이언트 어플리케이션을 실행하고, 동시에 클라이언트와 서버간에 송수신되는 패킷의 무결성을 검증함으로써, 서버 어플리케이션은 보호공간 내에서 실행된 클라이언트 어플리케이션이 생성한 네트워크 패킷만을 신뢰하게 되고, 이로써 외부 해커의 공격으로부터 서버시스템과 클라이언트 시스템을 동시에 보호할 수 있다.
Description
도 1은 종래의 네트워크 방화벽의 동작을 개략적으로 도시하는 도면이고,
도 2는 종래의 웹 어플리케이션 방화벽의 동작을 개략적으로 도시하는 도면이고,
도 3은 종래의 취약점 스캐너 및 소스코드 점검도구를 사용하여 어플리케이션을 개발하는 과정을 개략적으로 나타내는 도면이고,
도 4는 본 발명의 시스템의 바람직한 실시예를 도시하는 도면이고,
도 5는 본 발명의 보호공간을 구현하는 바람직한 실시예를 도시하는 도면이고,
도 6은 본 발명의 보호공간을 구현하는 또 다른 바람직한 실시예를 도시하는 도면이고,
도 7은 본 발명의 무결성 검증수단을 구현하는 바람직한 실시예를 도시하는 도면이고,
도 8은 본 발명의 무결성 검증수단을 구현하는 또 다른 바람직한 실시예를 도시하는 도면이고,
도 9는 본 발명의 서버측 무결성 검증수단을 구현하는 바람직한 실시예을 도시하는 도면이고,
도 10은 본 발명의 서버측 무결성 검증수단을 구현하는 또 다른 바람직한 실시예을 도시하는 도면이다.
본 발명은 클라이언트/서버 시스템을 외부의 해킹공격으로부터 보호할 수 있는 방법에 관한 것이다. 구체적으로는 클라이언트 시스템에 기존 운영체제 환경과 격리된 보호공간을 생성해 보호공간 내에서 클라이언트 어플리케이션을 실행하며, 서버 어플리케이션은 보호공간 내에서 실행된 클라이언트 어플리케이션이 생성한 네트워크 패킷만을 신뢰함으로써, 외부 해커의 공격으로부터 서버시스템과 클라이언트 시스템을 동시에 보호할 수 있는 방법에 관한 것이다.
종래 전자상거래 분야에서 서버 시스템에 대한 외부의 해킹공격을 차단하기 위해 네트워크 방화벽, 어플리케이션 방화벽, 취약점 스캐너 등이 사용되었다.
네트워크 방화벽은 OSI (Open Systems Interconnection) 7계층 중 3계층인 네트워크 계층(network layer)이나 4계층인 전송계층(transport layer)에 존재하는 취약점에 대한 외부해커의 공격을 차단한다.
도 1은 네트워크 방화벽(150)에 관한 것으로 사용자는 네트워크 방화벽을 이용해 IP 주소 및 포트(port) 번호를 이용한 접근제어규칙(151)을 설정해 비인가된 공격자로부터의 네트워크 패킷을 차단한다.
FTP 서비스 인가자(100)가 FTP 서비스(160)에 접속하려하면 네트워크 방화벽 (150)은 해당 접속을 허용하며, FTP 서비스 비인가자(110)가 FTP 서비스(160)에 접속하려하면 네트워크 방화벽(150)은 해당 접속을 차단한다.
웹 서비스(170)는 모든 사용자(120)에게 접근이 허가되어있으므로 네트워크 방화벽(150)은 웹 서비스(170)로 향하는 모든 패킷을 허용한다.
네트워크 방화벽을 이용하는 경우, IP 주소 및 포트를 기준으로 허가, 차단 여부를 결정하므로 공격자가 인가자의 머신을 해킹한 후 인가자의 머신을 경유해 공격하거나 인가자가 악의적인 마음을 가지고 공격을 시도한다면 이를 막을 방법이 없다.
또한, 웹 서비스(170)와 같이 외부에 공개된 서버는 웹 어플리케이션에 취약점이 있다면 누구든 해당 취약점을 공격할 수 있으므로 네트워크 방화벽(150)은 취약점에 대한 외부해커의 공격을 막을 수 없다. 즉, 네트워크 방화벽(150)은 허가할 서비스와 허가하지 않을 서비스를 제어할 수는 있지만, 허가된 서비스의 취약점에 대한 공격은 막을 수 없다. 이와 같은 문제를 해결하기 위해 어플리케이션 방화벽이 선보였다.
어플리케이션 방화벽은 OSI 7계층 중 7계층인 응용계층(application layer)에서 동작하므로, HTTP, FTP, SMTP 등 각종 프로토콜을 인식할 수 있으며 해당 어플리케이션에 존재하는 취약점에 대한 공격을 방어할 수 있다.
도 2는 어플리케이션 방화벽 중 대표적인 웹 어플리케이션 방화벽(220)에 관한 것이다. 웹 어플리케이션 방화벽(220)은 패킷을 필터링하는 시스템(222)을 구비하여, 수신되는 패킷을 미리 정의된 패턴(221)과 비교해 악성패킷(220)이면 차단하 고 정상패킷(210)이면 웹서버(230)로 전송하는 패킷 필터링 방식으로 동작한다.
하지만, 웹 어플리케이션 방화벽(220)은 알려진 공격기법을 이용해 패턴(221)을 작성하므로, 공격자는 기존의 공격기법을 약간 변형함으로써 패턴필터시스템(222)을 쉽게 우회할 수 있고, 알려지지 않은 공격기법은 방어할 수 없으며, 입력되는 모든 패킷을 수십~수천 개의 미리 정의된 패턴(221)과 비교하는 작업을 수행해야하므로 웹 서비스 속도가 크게 느려지는 문제가 있었다.
또한, 정상패킷(210)이 미리 정의된 패턴(221)과 우연히 일치하면 악성패킷(220)으로 오인되어 정상적인 사용자의 웹 서비스 이용이 차단되는 부작용도 있다.
또한, 웹 어플리케이션 방화벽(220)은 일반적인 공격패턴만을 감시할 수 있으므로 특정 웹 사이트에만 국한되는 취약점을 막기 힘들다. 예를 들면, 홈 쇼핑 관련 웹 사이트에서 물품결재금액을 10,000원에서 1,000원으로 수정하는 것과 같은 형태의 공격은 해당 사이트에만 의미 있는 공격이므로 웹 어플리케이션 방화벽이(220) 효과적으로 막을 수 없다.
웹 어플리케이션 방화벽(220)은 어플리케이션의 취약점은 그대로 둔 채, 해당 취약점에 대한 공격을 차단하는 방식이다. 이와는 달리 취약점 스캐너나 소스코드 점검도구는 취약점 자체를 제거하는 방식을 사용한다.
취약점 스캐너는 어플리케이션 서버 외부에서 취약점 존재여부 진단용 패킷을 전송하고 그 응답을 확인해 취약점 존재여부를 점검하는 도구이며, 소스코드 점검도구는 소스코드를 직접 살펴보고 취약점 존재여부를 판단하는 도구이다.
도 3은 취약점 스캐너 및 소스코드 점검도구를 사용하는 과정이다. 어플리케 이션 개발을 시작(300)하면 일반적으로 설계 및 코딩단계(310)를 거치며 일정 부분 완료된 후 취약점 스캐너 및 소스코드 점검도구를 실행해 지금까지 작성한 코드에 취약점이 존재하는지 확인하는 취약점 점검단계(320)를 진행한다. 이때, 취약점이 발견되면 수정단계(330)를 거치며 이 과정을 취약점이 발견되지 않을 때까지 이를 반복하고, 개발을 완료(340)한다.
일반적으로 취약점 스캐너나 소스코드 점검도구는 보안 취약점이 존재함을 알려주는 역할만을 하며 보안 취약점을 제거하는 것은 개발자의 몫이다. 따라서 개발자는 보안취약점을 제거하기 위해 취약점과 관련해 고급해커와 동등한 수준의 전문지식이 있어야 하며, 취약점 제거에도 많은 비용과 시간이 필요하다.
어플리케이션 방화벽과 마찬가지로 물품가격을 10,000원에서 1,000으로 수정하는 것과 같은 특정 사이트에 국한된 취약점은 취약점 스캐너나 소스코드 점검도구가 발견할 수 없는 단점도 존재한다.
이와 같은 이유로 종래 기술에 의하면 근본적인 어플리케이션 서버 보안시스템을 구축하기 어려웠다.
한편 최근 가상머신에 대한 연구가 활발히 진행되고 있다. 가상머신은 1960년대에 한 대의 메인프레임을 여러 대의 머신으로 가상적으로 나눠 쓰기 위해 도입된 개념이다. 하지만, 마이크로컴퓨터나 PC 가격이 하락함에 따라 한 대의 메인프레임을 나눠 쓰는 것보다는 여러 대의 PC를 도입하는 것이 비용 측면에서 유리해졌고 1980년대에 들어서 가상머신 기술은 거의 사용되지 않게 되었다. 하지만, 1990년대 들면서 다수의 소용량 컴퓨터를 사용하는 것이 관리 및 유지보수 비용을 오히 려 증가시켰으며, 컴퓨팅 자원의 효율적 사용도 문제가 있었기 때문에 다시 가상화기술에 관심을 기울이기 시작하였다.(한 예로 A 서버는 CPU 사용률이 10%인데 비해 B 서버는 CPU 사용률이 99%인 경우가 있다.)
가상머신을 구현하는 방식은 다양하다. 대표적인 것은 명령어 셋 레벨의 가상화 방식으로 중앙처리장치, 메모리, 칩셋, 버스 및 각종 주변장치 (네트워크 카드, 하드디스크, 플로피디스크, 시디롬)를 소프트웨어 적으로 에뮬레이션해 가상머신을 생성하는 것이다. 명령어 셋 레벨의 가상화 방식은 가상머신에서 발생하는 모든 명령어를 소프트웨어 적으로 처리해야하므로 처리속도를 비롯한 성능상 문제가 많았다.
반가상화(Paravirtualization) 방식은 명령어셋 레벨 가상화방식과는 달리 명령어를 에뮬레이션하는 것이 아니라 운영체제의 소스코드나 바이너리를 수정해 하나의 하드웨어에서 여러 개의 운영체제가 실행될 수 있도록 하는 것이다. 최근에는 운영체제를 수정하지 않아도 하나의 하드웨어에 여려 개의 운영체제를 실행할 수 있게 해주는 CPU도 개발되었다. 반가상화 방식은 명령어셋이 소프트웨어 적으로 재해석되는 것이 아니므로 처리속도가 빠르다.
운영체제 레벨 가상화 방식은 운영체제의 각 구성요소 (프로세스, 파일시스템, 네트워크 자원, 시스템 콜 인터페이스, 네임스페이스 등)를 가상화하는 방식이다.
라이브러리 레벨 가상화 방식은 운영체제 내에서 라이브러리를 가상화하는 방식이다. 구체적으로는 API(Application Program Interface)를 가상화하는 방식이 다. 예를 들면, WINE과 같이 Win32 API를 UNIX/X 시스템에서 구현해 유닉스에서 윈도우 어플리케이션이 실행되게 하거나 반대로 윈도우에서 POSIX, OS2 서브시스템을 제공하는 것 등이 있다.
어플리케이션 레벨 가상화 방식은 Java Virtual Machine과 같이 어플리케이션을 바이트코드 형태로 작성해 하나의 어플리케이션이 다양한 이기종의 하드웨어 및 소프트웨어 환경에서 실행될 수 있도록 하는 것이다.
현재 가상화 기술은 서버통합, 소프트웨어 개발 및 테스트, 호스팅 분야에서 많이 사용되고 있으며, 보안 분야에 있어서는 신뢰되지 않는 프로그램을 가상머신 내에서 실행해 호스트 OS를 보호하거나 악성코드가 숨겨져 있는지 여부를 테스트 하는 등 주로 가상머신 안에서 신뢰되지 않는 어플리케이션을 실행하는 방식으로 연구가 진행되어왔다. 하지만, 전자상거래를 위한 기법에 있어서 가상머신을 이용한 클라이언트 어플리케이션과 서버 어플리케이션 보안기술에 관한 연구는 아직 진행되고 있지 않다.
본원 발명은 상기와 같은 OSI 7계층의 응용계층에서 동작하는 클라이언트/서버 시스템의 보안 문제를 효과적으로 해결하기 위한 것이다.
첫 번째 목적은 서버 시스템을 보호하기 위해 클라이언트 어플리케이션을 보호공간 안에서만 실행가능하게 함으로써 서버측에 악의적이거나 비정상적인 패킷이 전송되는 것 자체를 불가능하게 하는 것이다.
두 번째 목적은 클라이언트 어플리케이션을 보호공간 안에서 실행함으로써 클라이언트 어플리케이션 자체를 각종 해킹이나 악성코드로부터 보호하는 것이다.
종래의 클라이언트 보안 제품은 안티바이러스(Anti-Virus), 안티키로거(Anti-Key-logger), PC 방화벽(PC fire wall) 등 클라이언트 시스템이 해킹당하거나 악성코드에 감염되는 것을 방지하고 클라이언트에 저장된 중요한 정보가 유출되는 것을 방지한다. 종래의 서버 보안 제품은 네트워크 방화벽, 어플리케이션 방화벽, 취약점 스캐너 및 소스코드 점검도구 등 서버로 전송되는 패킷을 네트워크 레벨에서 차단하거나 서버 어플리케이션에 취약점이 존재하는지 여부를 확인하는 방식이다.
종래의 보안제품은 클라이언트 보안제품은 클라이언트 시스템만을 보호하고, 서버 보안제품은 서버 시스템만을 보호하지만 본 발명은 클라이언트와 서버 시스템을 동시에 보호하며, 알려지지 않은 형태의 공격 및 제로데이 공격(Zero Day Attack)으로부터도 클라이언트 및 서버 시스템을 효율적으로 보호한다.
본 발명은 상기 목적을 달성하기 위해 클라이언트 어플리케이션을 실행할 신뢰된 보호공간을 제공하는 수단과 방법 및 서버 시스템에서 클라이언트 어플리케이션이 보호할 수 있는 무결성 검사의 수단과 방법을 제공하는 것이다. 도 4는 이에 관한 기본적인 구성을 도시한다.
일반적으로 클라이언트/서버 시스템은 클라이언트측 시스템(500)과 서버측 시스템(550)으로 구성되며 클라이언트측 시스템과 서버측 시스템 사이는 네트워크(532)로 연결되어 있다.
클라이언트측 시스템(500)은 클라이언트 어플리케이션(521)과 그것을 실행할 수 있는 운영체제로 구성되며, 어플리케이션 실행공간은 일반적인 어플리케이션 실행공간(510)과 보호공간(520)으로 나뉜다. 일반적인 어플리케이션 실행공간(510)에는 일반 어플리케이션(511), 해킹툴(512), 기타 소프트웨어(513)가 실행될 수 있고, 보호공간(520) 안에서는 클라이언트 어플리케이션(521)과 무결성 검증수단(522)을 실행한다. 지금까지 서버측 시스템(550)에 대한 해킹은 해커(533)가 클라이언트 어플리케이션(511)을 조작하거나 해킹툴(512)을 실행해 악성패킷(531)을 생성하고 그것을 전송해 서버측 시스템(550)을 공격하는 방식으로 이루어졌다. 따라서 기존 서버시스템 보안제품은 전술한 바와 같이 서버 단에 위치해서 수신되는 네트워크 패킷을 검사하여 허용 여부를 결정하거나 서버 어플리케이션(551) 취약점 자체를 제거하는 방식으로 동작하였다.
일반적인 어플리케이션 실행공간(510)은 해커가 실행 중인 어플리케이션을 마음대로 조작할 수 있고, 영역 내에 어떤 어플리케이션이라도 실행할 수 있지만, 보호공간(520)은 허가된 클라이언트 어플리케이션(521)만 실행될 수 있으므로 해킹툴, 악성코드, 애드웨어는 침투할 수 없고 해커의 공격으로부터 클라이언트 어플리케이션(521)을 보호할 수 있다
따라서, 보호공간(520) 내의 클라이언트 어플리케이션(521)이 생성한 패킷만 서버측 시스템으로 전송되는 것을 허용하고 이외의 어플리케이션(511, 512, 513)이 생성한 네트워크 패킷은 모두 차단하게 되면, 서버측 시스템(550)도 안전하게 보호할 수 있다. 현재까지의 서버 어플리케이션 보안시스템은 전송되는 모든 패킷에 악의적인 내용이 있는지 여부를 OSI 7계층에서 7계층인 (응용계층)에서 확인해야하므로 많은 계산이 필요하였기 때문에 서버시스템의 성능저하를 가져왔으나 본 발명은 이와 같은 계산이 필요 없으므로 서버 시스템의 성능저하 없이 시스템을 보호할 수 있다.
한편, 보호공간(521) 내에서 생성된 네트워크 패킷(530)이라 하더라도 해당 패킷은 다양한 네트워크 전송구간(532)을 거친 후 서버측 시스템(550)에 전송되므로, 해커(533)는 이러한 네트워크 전송구간(532)에서 패킷을 변조하거나 악성코드를 삽입할 수 있다. 따라서 보호공간(520) 내의 클라이언트 어플리케이션(521)에서 생성된 패킷이 네트워크 전송구간(532)에서 해커(533)에 의해 변조되지 않았음을 보장하는 무결성 검증수단이 필요하다. 무결성 검증수단은 클라이언트측 무결성 검증수단(522)과 서버측 무결성 검증수단(540)로 구성되며, 두 부분이 상호작용하여 무결성 여부를 검증하게 된다.
이하, 보호공간을 구현하는 다양한 수단과 방법 및 패킷의 무결성을 검증하는 다양한 수단과 방법에 관한 실시예를 첨부된 도면을 참조하여 설명한다.
제 1
실시예
도 5는 보호공간(520)을 구현하는 바람직한 실시예를 도시한다. 종래의 가상머신 기술을 이용하면 물리적으로 하나인 머신에 동시에 여러 개의 가상머신을 실행하는 것이 가능하다. 실제머신에 한 개 혹은 여러 개의 가상머신을 생성한 후, 실제머신의 운영체제(601)는 일반적인 어플리케이션 실행영역(510)으로 설정하고, 가상머신의 운영체제(602)는 보호공간(520)으로 설정한다. 가상머신 구현방법은 종 래에 알려진 명령어 셋 레벨의 가상화 방식, 반가상화 방식, OS 레벨의 가상화 방식, 라이브러리 레벨의 가상화 방식, 유저모드 샌드박스(UserMode Sandbox) 방식 등을 모두 포함한다. 실제머신의 운영체제(601)에는 일반 어플리케이션(603)과 악성 어플리케이션(604)이 실행될 수 있으며 가상머신의 운영체제(602)에는 허가된 클라이언트 어플리케이션(605)만 실행될 수 있다. 실제머신의 운영체제(601)와 가상머신의 운영체제(602)는 하나의 머신내에서 서로 분리되어 있으므로 악성 어플리케이션(604)이 가상머신의 운영체제(602)로 침투할 수 없으며, 가상머신의 운영체제(602)는 신뢰되는 보호공간(520)을 수립한다.
제 2
실시예
도 6은 보호공간(520)을 구현하는 다른 바람직한 실시예를 도시한다. 해킹툴, 웜 및 바이러스 등 악성 어플리케이션(712), 클라이언트 어플리케이션(710) 및 일반적인 어플리케이션(711)은 동일한 운영체제 공간(700) 내에서 실행된다. 악성 어플리케이션(712)은 클라이언트 어플리케이션(710)과 일반 어플리케이션(711)에 대하여 공격을 시도할 수 있다. 이때, 클라이언트 어플리케이션(710)으로의 공격은 운영체제 자원 격리수단(713)에 의해 차단된다. 운영체제 자원 격리수단(713)은 클라이언트 어플리케이션(710)을 이루는 프로세스, 레지스트리, 파일, 네트워크, 메모리 등의 운영체제 자원에 대해 악성 어플리케이션(712)이 접근하는 것을 차단한다. 아울러 안티리버스엔지니어링(Anti-Reverse Engineering) 및 디버깅 등의 기법을 이용해 어플리케이션의 중요 알고리즘이나 중요한 값을 알아내고 데이터나 프로그램의 흐름에 대한 조작을 시도하는 것을 차단 하는 기능을 포함할 수도 있다.
제 3
실시예
도 7은 무결성 검증수단의 바람직한 실시예를 도시한다. 보호공간(520) 내에서 실행된 클라이언트 어플리케이션(800)에서 생성된 네트워크 패킷과 서버 어플리케이션(850)에서 생성된 패킷이 전송되는 과정에서 해커(860)가 패킷을 조작해 클라이언트 어플리케이션(800) 및 서버 어플리케이션(850)을 공격하는 것을 막기 위해 클라이언트, 서버 사이의 네트워크 통신을 암호화한다. 클라이언트 어플리케이션(800)에서 생성된 네트워크 패킷은 클라이언트측 암호화 수단(810)에 의해 암호화되어 전송되고, 전송된 패킷은 서버측 복호화 수단(840)에 의해 복호화되어 서버 어플리케이션(850)으로 전송된다. 서버 어플리케이션(850)에서 생성된 네트워크 패킷은 서버측 암호화 수단(830)에 의해 암호화되어 전송되고, 전송된 패킷은 클라이언트측 복호화 수단(820)에 의해 복호화되어 클라이언트 어플리케이션(800)으로 전송된다. 이 경우 클라이언트와 서버 사이의 네트워크 구간에서 해커(860)가 전송되는 네트워크 패킷을 위, 변조하는 것이 불가능하다.
제 4
실시예
도 8은 무결성 검증수단의 다른 바람직한 실시예이다. 클라이언트 어플리케이션(900)이 생성한 네트워크 패킷을 서버 어플리케이션(930)으로 전송할 때, '클라이언트측 무결성정보 추가모듈'(910)은 전송되는 네트워크 패킷을 이용해 계산된 무결성 검증 값을 네트워크 패킷에 첨부한 후 이를 서버측으로 전송한다. 만약 해커(940)가 전송과정에서 패킷을 위, 변조(941)했다면 '서버측 무결성정보 확인모듈'(921)에서 패킷을 이용해 계산한 무결성 검증 값과 '클라이언트측 무결성정보 추가모듈'(910)에서 계산되어 추가된 무결성 검증 값이 서로 다를 것이며, 이 경우 서버측 무결성정보 확인모듈(921)은 전송된 네트워크 패킷이 위, 변조된 것으로 판단하고 폐기한다. 만약, 값이 동일하다면 전송된 패킷을 서버 어플리케이션(930)으로 보낸다.
서버 어플리케이션(930)에서 클라이언트 어플리케이션(900)으로 패킷을 전송할 때 '서버측 무결성정보 추가모듈'(920)은 전송되는 네트워크 패킷을 이용해 계산된 무결성 검증 값을 네트워크 패킷에 첨부한 후 클라이언트측으로 전송한다. 만약 해커(940)가 전송과정에서 패킷을 위, 변조(941)했다면 '클라이언트측 무결성정보 확인모듈'(911)에서 패킷을 이용해 계산한 무결성 검증 값과 '서버측 무결성정보 추가모듈'(920)에서 계산되어 추가된 무결성 검증 값이 서로 다를 것이며, 이 경우 클라이언트측 무결성정보 확인모듈(911)은 전송된 네트워크 패킷이 위, 변조된 것으로 판단하고 폐기한다. 만약, 값이 동일하다면 전송된 패킷을 클라이언트 어플리케이션(900)으로 보낸다.
제 5
실시예
도 9는 서버측 무결성 검증수단(540)의 한 실시 예이다. 서버측 무결성 검증수단은 네트워크 장비형태인 서버측 무결성 검증장비(1010)로 제작되어 인터넷구간(1000)과 서버시스템(1020) 사이에 위치하며 서버 어플리케이션(1030)으로 향하는 네트워크 패킷에 대한 무결성을 검증하고, 무결성이 확인된 네트워크 패킷은 전송을 허용하고 확인되지 않는 네트워크 패킷은 폐기처분한다. 또한, 서버 어플리케이션(1030)에서 인터넷 구간(1000)으로 나가는 네트워크 패킷에 대한 무결성정보를 생성한다.
일반적으로 인터넷구간(1000)과 서버측 무결성 검증장비(1010) 사이에는 라우터를 비롯한 다양한 네트워크 장비가 존재할 수 있으며, 서버측 무결성 검증장비(1010)와 서버시스템(1020) 사이에도 스위치 허브를 비롯한 다양한 네트워크 장비가 존재할 수 있다.
제 6
실시예
도 10은 서버측 무결성 검증수단(540)의 다른 바람직한 실시예이다. 서버측 무결성 검증수단이 제 5 실시예처럼 별도의 장비로 존재하는 것이 아니라 서버시스템(1110)에서 모듈형태인 서버측 무결성 검증모듈(1130)로서 존재하며, 상기 모듈은 인터넷 구간(1100)에서 서버 어플리케이션(1120)으로 향하는 패킷이 서버 어플리케이션(1120)으로 전송되기 전에 먼저 수신하여 무결성을 검증하고, 서버 어플리케이션(1120)에서 생성된 네트워크 패킷이 인터넷 구간으로 전송되기 전에 먼저 수신하여 무결성정보를 생성한다.
일반적으로 서버측 무결성 검증모듈(1130)은 웹서비스 프로그램(Apache, IIS 등의 plug-in이나 filter 형식으로 제작되거나, 서버 운영체제의 시스템 콜이나 API를 후킹하는 방식으로 구현된다.
주어진 본 발명의 원리에 대한 설명에 많은 변화 및 변형이 고안될 것으로 이해된다. 그러므로 후기될 특허 청구 범위는 본 발명의 본질 및 범위를 벗어나지 않는 그러한 모든 변화 및 변형을 포함하는 것을 의도로 한다.
본 발명에 의하면, 네트워크 상에서 실행되는 클라이언트/서버 시스템을 구성하는 클라이언트 어플리케이션과 서버 어플리케이션을 동시에 보호함으로써 클라이언트/서버 시스템에 대한 외부 공격을 효과적으로 차단한다. 클라이언트 어플리케이션을 클라이언트 시스템의 보호공간 안에서 실행함으로써 클라이언트 어플리케이션 자체를 각종 해킹이나 악성코드로부터 보호하고, 클라이언트와 서버 사이에 송수신되는 패킷의 무결성을 검증함으로써 서버측에 악의적이거나 비정상적인 패킷이 전송되는 것 자체를 불가능하게 할 수 있다.
Claims (18)
- 클라이언트와 서버로 구성되는 네트워크 시스템의 보안 시스템에 있어서,상기 클라이언트는 클라이언트 어플리케이션을 보호하는 보호공간 생성수단, 및클라이언트측 및 서버측에 제공되고, 클라이언트와 서버 사이에서 송수신하는 네트워크 패킷이 조작되지 않았음을 보장하기 위한 무결성 검증수단을 포함하는 것을 특징으로 하는 클라이언트/서버 보안 시스템.
- 제 1 항에 있어서,상기 서버에 제공되는 무결성 검증수단은 상기 보호공간에서 실행된 클라이언트 어플리케이션에서 생성된 네트워크 패킷만을 허용하는 것을 특징으로 하는 클라이언트/서버 보안 시스템.
- 제 1 항 또는 제 2 항에 있어서,상기 보호공간 생성수단은 가상머신인 것을 특징으로 하는 클라이언트/서버 보안 시스템.
- 제 1 항 또는 제 2 항에 있어서,상기 보호공간 생성수단은 격리된 운영제체 자원을 생성하는 수단인 것을 특 징으로 하는 클라이언트/서버 보안 시스템.
- 제 4 항에 있어서,상기 격리된 운영체제 자원의 생성수단은 보호공간 안에서 실행되는 프로세스가 접근할 수 없는 자원에 대한 접근을 차단하고, 보호공간 밖에서 실행되는 프로세스가 보호공간 안에서 실행되는 프로세스의 자원에 접근하는 것을 차단하는 것을 특징으로 하는 클라이언트/서버 보안 시스템.
- 제 5 항에 있어서,상기 자원에 대한 접근은 메모리, 파일, 디렉터리, 레지스트리, 핸들, 프로세스, 네트워크의 전부 또는 일부에 대한 접근인 것을 특징으로 하는 클라이언트/서버 보안 시스템.
- 제 1 항에 있어서,상기 무결성 검증수단은 무결성정보 생성수단, 및 무결성정보 확인수단을 구비하는 것을 특징으로 하는 클라이언트/서버 보안 시스템.
- 제 7 항에 있어서,상기 무결성정보 생성수단은 패킷을 암호화하고, 상기 무결성정보 확인수단은 패킷을 복호화하는 것을 특징으로 하는 클라이언트/서버 보안 시스템.
- 제 7 항에 있어서,상기 무결성정보 생성수단은 검증값를 부가하고, 상기 무결성정보 확인수단은 상기 검증값을 확인하는 것을 특징으로 하는 클라이언트/서버 보안 시스템.
- 클라이언트와 서버로 구성되는 네트워크 시스템의 보안 시스템에 있어서,클라이언트측에 제공되고 클라이언트 어플리케이션을 실행하는 가상머신, 및클라이언트측 및 서버측에 제공되고, 클라이언트와 서버 사이에서 송수신하는 네트워크 패킷을 암호 또는 복호하는 암호/복호 수단을 포함하는 것을 특징으로 하는 클라이언트/서버 보안 시스템.
- 클라이언트/서버 어플리케이션을 실행하는 방법에 있어서,클라이언트측에 클라이언트 어플리케이션의 보호공간을 생성하고, 상기 보호공간에서 클라이언트 어플리케이션을 실행하며,상기 서버 어플리케이션은 상기 보호공간에서 실행된 클라이언트 어플리케이션에서 생성된 네트워크 패킷만을 허용하는 것을 특징으로 하는 클라이언트/서버 어플리케이션 실행 방법.
- 클라이언트/서버 어플리케이션을 실행하는 방법에 있어서,클라이언트측에 클라이언트 어플리케이션의 보호공간을 생성하고, 상기 보호 공간에서 클라이언트 어플리케이션을 실행하며, 상기 클라이언트측 및 서버측에서 네트워크 패킷의 무결성을 검증하는 것을 특징으로 하는 클라이언트/서버 어플리케이션 실행 방법.
- 제 11 항 또는 제 12 항에 있어서,상기 보호공간을 생성하는 것은 가상머신을 이용하여 보호공간을 생성하는 것을 특징으로 하는 클라이언트/서버 어플리케이션 실행 방법.
- 제 11 항 또는 제 12 항에 있어서,상기 보호공간을 생성하는 것은, 격리된 운영체제 자원을 생성함으로써 보호공간 안에서 실행되는 프로세스가 접근할 수 없는 자원에 대한 접근을 차단하고, 보호공간 밖에서 실행되는 프로세스가 보호공간 안에서 실행되는 프로세스의 자원에 접근하는 것을 차단하는 것을 특징으로 하는 클라이언트/서버 어플리케이션 실행 방법.
- 제 12 항에 있어서,상기 네트워크 패킷의 무결성을 검증하는 것은 클라이언트측과 서버측 중 패킷을 송신하는 측에서 무결성 정보를 생성하고, 패킷을 수신하는 측에서 무결성 정보를 확인하는 것을 특징으로 하는 클라이언트/서버 어플리케이션 실행 방법.
- 제 15 항에 있어서,상기 무결성 정보의 생성은 패킷을 암호화하여 이루어지고, 상기 무결성 정보의 확인은 암호화된 패킷을 복호화하여 이루어지는 것을 특징으로 하는 클라이언트/서버 어플리케이션 실행 방법.
- 제 15 항에 있어서,상기 무결성 정보의 생성은 검증값를 부가하여 이루어지고, 상기 무결성 정보의 확인은 상기 검증값을 확인하여 이루어지는 것을 특징으로 하는 클라이언트/서버 어플리케이션 실행 방법.
- 제 11 항 또는 제 17 항의 클라이언트/서버 어플리케이션 실행 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기억매체.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060044601A KR20070111603A (ko) | 2006-05-18 | 2006-05-18 | 클라이언트 및 서버의 보안시스템 |
EP07746559A EP2021934A4 (en) | 2006-05-18 | 2007-05-17 | PROCESS FOR PROTECTING CLIENT AND SERVER |
JP2009510892A JP2009537892A (ja) | 2006-05-18 | 2007-05-17 | クライアントおよびサーバの保護方法 |
CN200780017193XA CN101443746B (zh) | 2006-05-18 | 2007-05-17 | 用于保护客户端及服务器的方法 |
US12/301,232 US8738786B2 (en) | 2006-05-18 | 2007-05-17 | Method for protecting client and server |
PCT/KR2007/002411 WO2007136192A1 (en) | 2006-05-18 | 2007-05-17 | Method for protecting client and server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060044601A KR20070111603A (ko) | 2006-05-18 | 2006-05-18 | 클라이언트 및 서버의 보안시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070111603A true KR20070111603A (ko) | 2007-11-22 |
Family
ID=39090381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060044601A KR20070111603A (ko) | 2006-05-18 | 2006-05-18 | 클라이언트 및 서버의 보안시스템 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20070111603A (ko) |
CN (1) | CN101443746B (ko) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010090435A2 (ko) * | 2009-02-05 | 2010-08-12 | 주식회사 안철수연구소 | 선별적 가상화를 이용한 악성 코드 사전 차단 장치 및 그 방법 |
WO2011056880A2 (en) * | 2009-11-03 | 2011-05-12 | Mcafee, Inc. | Rollback feature |
WO2011108877A2 (ko) * | 2010-03-05 | 2011-09-09 | 주식회사 안철수연구소 | 클라이언트 가상화를 이용한 서버의 논리적 분리 시스템 및 방법 |
KR101069500B1 (ko) * | 2008-09-12 | 2011-09-30 | 포항공과대학교 산학협력단 | 네크워크 시스템에서 가상화 및 신뢰 플랫폼 모듈을 이용한데이터 보안 처리 방법 및 기록매체 |
KR101107056B1 (ko) * | 2011-07-07 | 2012-01-25 | 이니텍(주) | 클라우드 컴퓨팅 환경에서 가상 머신의 보안 정보 처리 방법 |
KR101415403B1 (ko) * | 2012-08-31 | 2014-07-04 | 이병환 | 공유 가능한 보안공간 제공시스템 및 그 방법 |
KR101478619B1 (ko) * | 2008-02-27 | 2015-01-06 | 삼성전자주식회사 | 가상화 기술을 이용한 데이터 입출력 방법 및 장치 |
KR20190099898A (ko) * | 2018-02-20 | 2019-08-28 | 고려대학교 산학협력단 | Https에서의 쿠키 무결성 검증 방법 |
KR102247621B1 (ko) * | 2019-10-28 | 2021-04-30 | 숭실대학교산학협력단 | 손상된 스위치와 우회 공격을 탐지하는 네트워크 환경 관리 시스템 및 방법 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706851B (zh) * | 2009-11-03 | 2012-07-04 | 广州广电运通金融电子股份有限公司 | 自助终端的进程控制方法及*** |
DE102009054114A1 (de) * | 2009-11-20 | 2011-05-26 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Zugreifen auf Steuerungsdaten gemäß einer bereitgestellten Rechteinformation |
US8490088B2 (en) * | 2010-09-10 | 2013-07-16 | International Business Machines Corporation | On demand virtual machine image streaming |
CN102073536A (zh) * | 2011-01-11 | 2011-05-25 | 济南银泉科技有限公司 | 利用云平台实现模板编辑入库及批量生成虚拟机的方法 |
CN103164467B (zh) * | 2011-12-15 | 2016-03-02 | 英顺源(上海)科技有限公司 | 存取映射档案的***及其方法 |
CN102707971A (zh) * | 2012-04-26 | 2012-10-03 | 广东电子工业研究院有限公司 | 一种在虚拟机中自动获取和安装软件的方法 |
CN106487850B (zh) * | 2015-08-29 | 2019-10-25 | 华为技术有限公司 | 一种云环境下获取镜像的方法、装置和*** |
CN110826006B (zh) * | 2019-11-22 | 2021-03-19 | 支付宝(杭州)信息技术有限公司 | 基于隐私数据保护的异常采集行为识别方法和装置 |
CN111143857B (zh) * | 2019-12-27 | 2022-04-22 | 达闼机器人有限公司 | 一种数据分享方法、机器人控制器及存储介质 |
-
2006
- 2006-05-18 KR KR1020060044601A patent/KR20070111603A/ko not_active Application Discontinuation
-
2007
- 2007-05-17 CN CN200780017193XA patent/CN101443746B/zh not_active Expired - Fee Related
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9164919B2 (en) | 2008-02-27 | 2015-10-20 | Samsung Electronics Co., Ltd. | Method and apparatus for inputting/outputting virtual operating system from removable storage device on a host using virtualization technique |
US8966142B2 (en) | 2008-02-27 | 2015-02-24 | Samsung Electronics Co., Ltd. | Method and apparatus for inputting/outputting virtual operating system from removable storage device on a host using virtualization technique |
KR101478619B1 (ko) * | 2008-02-27 | 2015-01-06 | 삼성전자주식회사 | 가상화 기술을 이용한 데이터 입출력 방법 및 장치 |
KR101069500B1 (ko) * | 2008-09-12 | 2011-09-30 | 포항공과대학교 산학협력단 | 네크워크 시스템에서 가상화 및 신뢰 플랫폼 모듈을 이용한데이터 보안 처리 방법 및 기록매체 |
KR100985074B1 (ko) * | 2009-02-05 | 2010-10-04 | 주식회사 안철수연구소 | 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 |
WO2010090435A3 (ko) * | 2009-02-05 | 2010-10-14 | 주식회사 안철수연구소 | 선별적 가상화를 이용한 악성 코드 사전 차단 장치 및 그 방법 |
US8984629B2 (en) | 2009-02-05 | 2015-03-17 | Ahnlab., Inc. | Apparatus and method for preemptively protecting against malicious code by selective virtualization |
WO2010090435A2 (ko) * | 2009-02-05 | 2010-08-12 | 주식회사 안철수연구소 | 선별적 가상화를 이용한 악성 코드 사전 차단 장치 및 그 방법 |
WO2011056880A2 (en) * | 2009-11-03 | 2011-05-12 | Mcafee, Inc. | Rollback feature |
US8539583B2 (en) | 2009-11-03 | 2013-09-17 | Mcafee, Inc. | Rollback feature |
US9607150B2 (en) | 2009-11-03 | 2017-03-28 | Mcafee, Inc. | Rollback feature |
US9703958B2 (en) | 2009-11-03 | 2017-07-11 | Mcafee, Inc. | Rollback feature |
US9852296B2 (en) | 2009-11-03 | 2017-12-26 | Mcafee, Llc | Rollback feature |
WO2011056880A3 (en) * | 2009-11-03 | 2011-08-11 | Mcafee, Inc. | Rollback feature |
US9032523B2 (en) | 2009-11-03 | 2015-05-12 | Mcafee, Inc. | Rollback feature |
WO2011108877A2 (ko) * | 2010-03-05 | 2011-09-09 | 주식회사 안철수연구소 | 클라이언트 가상화를 이용한 서버의 논리적 분리 시스템 및 방법 |
US8713640B2 (en) | 2010-03-05 | 2014-04-29 | Ahnlab, Inc. | System and method for logical separation of a server by using client virtualization |
WO2011108877A3 (ko) * | 2010-03-05 | 2012-02-09 | 주식회사 안철수연구소 | 클라이언트 가상화를 이용한 서버의 논리적 분리 시스템 및 방법 |
KR101107056B1 (ko) * | 2011-07-07 | 2012-01-25 | 이니텍(주) | 클라우드 컴퓨팅 환경에서 가상 머신의 보안 정보 처리 방법 |
KR101415403B1 (ko) * | 2012-08-31 | 2014-07-04 | 이병환 | 공유 가능한 보안공간 제공시스템 및 그 방법 |
KR20190099898A (ko) * | 2018-02-20 | 2019-08-28 | 고려대학교 산학협력단 | Https에서의 쿠키 무결성 검증 방법 |
KR102247621B1 (ko) * | 2019-10-28 | 2021-04-30 | 숭실대학교산학협력단 | 손상된 스위치와 우회 공격을 탐지하는 네트워크 환경 관리 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN101443746A (zh) | 2009-05-27 |
CN101443746B (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20070111603A (ko) | 클라이언트 및 서버의 보안시스템 | |
Zheng et al. | A survey on the moving target defense strategies: An architectural perspective | |
US9954872B2 (en) | System and method for identifying unauthorized activities on a computer system using a data structure model | |
Chen et al. | Non-control-data attacks are realistic threats. | |
Black et al. | A survey of similarities in banking malware behaviours | |
Angel et al. | Defending against malicious peripherals with Cinch | |
Serpanos et al. | Security challenges in embedded systems | |
CN108595982B (zh) | 一种基于多容器分离处理的安全计算架构方法及装置 | |
Xu et al. | Data-provenance verification for secure hosts | |
Alzahrani et al. | An analysis of conti ransomware leaked source codes | |
Gupta et al. | Taxonomy of cloud security | |
Main et al. | Software protection and application security: Understanding the battleground | |
Costa et al. | Vigilante: End-to-end containment of internet worm epidemics | |
Mirza et al. | Ransomware analysis using cyber kill chain | |
US20050086512A1 (en) | Worm blocking system and method using hardware-based pattern matching | |
Liu et al. | Binary exploitation in industrial control systems: Past, present and future | |
Wang et al. | TVIDS: Trusted virtual IDS with SGX | |
Martsenyuk et al. | Features of multifunctional Backdoor technology in the personal space of users. | |
Sang et al. | A tool to analyze potential I/O attacks against PCs | |
Grammatikakis et al. | System threats | |
Subedi | A Framework for Analyzing Advanced Malware and Software | |
Endsuleit et al. | A security analysis on jade (-s) v. 3.2 | |
Liu et al. | TZEAMM: An Efficient and Secure Active Measurement Method Based on TrustZone | |
Shen et al. | The Impact of Attacking Windows Using a Backdoor Trojan | |
Wang et al. | Coprocessor-based hierarchical trust management for software integrity and digital identity protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |