KR101197182B1 - 컴퓨터 시스템에서의 해킹 방지 장치 및 방법 - Google Patents

컴퓨터 시스템에서의 해킹 방지 장치 및 방법 Download PDF

Info

Publication number
KR101197182B1
KR101197182B1 KR1020080132401A KR20080132401A KR101197182B1 KR 101197182 B1 KR101197182 B1 KR 101197182B1 KR 1020080132401 A KR1020080132401 A KR 1020080132401A KR 20080132401 A KR20080132401 A KR 20080132401A KR 101197182 B1 KR101197182 B1 KR 101197182B1
Authority
KR
South Korea
Prior art keywords
quarantine
computer system
state
information
security
Prior art date
Application number
KR1020080132401A
Other languages
English (en)
Other versions
KR20100073673A (ko
Inventor
이윤구
양상운
안재환
안정철
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020080132401A priority Critical patent/KR101197182B1/ko
Priority to US12/643,077 priority patent/US8555387B2/en
Priority to EP09180202.5A priority patent/EP2202661B1/en
Priority to JP2009290487A priority patent/JP4969639B2/ja
Publication of KR20100073673A publication Critical patent/KR20100073673A/ko
Application granted granted Critical
Publication of KR101197182B1 publication Critical patent/KR101197182B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Abstract

본 발명은 컴퓨터 시스템에서 바이러스, 해킹과 같은 외부 공격으로부터 중요 정보가 노출되지 않기 위한 해킹 방지 장치 및 방법에 관한 것으로, 본 발명은 상기 컴퓨터 시스템의 메모리, 레지스터, 포트 중 적어도 하나의 상태를 변형하는 상태변이 수단과, 상기 변형된 컴퓨터 시스템의 상태 정보를 계산하는 상태계산 수단과, 상기 컴퓨터 시스템의 보안성 위해 요소를 제거하는 보안성위해요소제거 수단과, 상기 검역소에 상기 상태계산 수단에 의해 계산된 상태 정보를 송신하고, 상기 상태 정보를 근거로 상기 컴퓨터 시스템을 제어하기 위한 제어 정보를 상기 검역소로부터 수신하기 위한 통신 수단과, 상기 컴퓨터 시스템의 상태가 무결한 상태인 경우, 상기 검역소로부터 보안 정보를 수신하여 특정 프로세스를 실행하는 보안 목적 수단을 포함하며, 상기 상태 정보와 상기 제어 정보는 상기 컴퓨터 시스템이 무결할 때까지 반복적으로 송수신된다.
해킹, 검역소, 검역소 확장 코드

Description

컴퓨터 시스템에서의 해킹 방지 장치 및 방법{METHOD AND APPARATUS FOR PROTECTING A HACKING IN COMPUTER SYSTEM}
본 발명은 컴퓨터 시스템에서 바이러스, 해킹과 같은 외부 공격으로부터 중요 정보가 노출되지 않기 위한 해킹 방지 장치 및 방법에 관한 것으로, 특히 컴퓨터 시스템에서 안전성이 검증된 외부 또는 내부의 검역소를 이용하여 컴퓨터 시스템 내부에 안전한 검역소를 확장하여 해킹을 방지하는 해킹 방지 장치 및 방법에 관한 것이다.
컴퓨터의 사용 증가와 함께 인터넷의 기하 급수적 사용증가로 인해 컴퓨터의 데이터와 프로그램을 파괴하는 바이러스, 웜 및 기타 악성코드등과, 상용 프로그램들의 복제등이 증가하는 추세이다. 또한 인터넷 뱅킹이 활성화됨으로써 해킹에 의한 금융 사고도 증가하고 있는 실정이다. 또한 핸드폰 또는 게임기의 콘텐츠를 불법으로 복제 및 실행하는 등의 재산권 침해도 빈번하게 이루어지고 있다.
이에 따라 상기와 같은 외부 공격으로부터 소프트웨어의 복제 및 해킹을 방지하는 기술도 발전하고 있는 추세이다.
종래의 소프트웨어의 복제 및 해킹 방지 기술은 난독화(Obfuscation), 코드 암호화, 렉시컬(Lexical) 변환 등 여러 방식이 제안되어 왔다.
하지만 이러한 방식은 컴파일러에 의해 생성된 평이한 패턴의 코드를 변환해서, 좀더 어렵게 만들거나 기존의 해석툴이 손쉽게 사용되지 못하게 함으로써, 소프트웨어 자체 및 중요 정보의 해킹 자체를 어렵게 만드는 방식이었다.
그러나 이러한 해킹 방지 기술들도 해킹 자체가 불가능한 것은 아니다. 왜냐하면 근본적으로 모든 중요 정보는 호스트에서 핸들링될 수 밖기 때문이다. 상세히 설명하면, 모든 프로세스가 동작하기 위해서는 중앙 처리 장치(CPU)를 거치게 된다. 이에 따라 해킹 프로그램은 어떤 수단으로 CPU의 점유권을 획득하게 되는 경우 핵심 정보가 유출될 수 있는 가능성이 크게 된다.
따라서 컴퓨터 장치에서 근본적으로 외부 공격으로부터 해킹을 방지할 수 있는 기술이 요구된다.
따라서 본 발명의 목적은 바이러스 및 해킹과 같은 외부 공격으로부터 안전하게 중요 정보를 보호할 수 있는 해킹 방지 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 외부 또는 내부의 안전한 검역소를 이용하여 프로세스 내부에 안전한 검역 영역을 생성함으로써 중요 정보를 보호할 수 있는 해킹 방지 장치 및 방법을 제공함에 있다.
상술한 바를 달성하기 위한 본 발명은 프로세서를 구비한 컴퓨터 시스템의 해킹을 방지하기 위한 장치에 있어서, 상기 장치는, 안정성이 확보된 검역소와, 상기 검역소로부터 상기 프로세서에 외부 공격이 불가능한 상태를 구현하는 검역소 확장 수단을 포함한다.
상기 검역소 확장 수단은 상기 컴퓨터 시스템의 메모리, 레지스터, 포트 중 적어도 하나의 상태를 변형하는 상태변이 수단과, 상기 변형된 컴퓨터 시스템의 상태 정보를 계산하는 상태계산 수단과, 상기 컴퓨터 시스템의 보안성 위해 요소를 제거하는 보안성위해요소제거 수단과, 상기 검역소에 상기 상태계산 수단에 의해 계산된 상태 정보를 송신하고, 상기 상태 정보를 근거로 상기 컴퓨터 시스템을 제어하기 위한 제어 정보를 상기 검역소로부터 수신하기 위한 통신 수단과, 상기 컴퓨터 시스템의 상태가 무결한 상태인 경우, 상기 검역소로부터 보안 정보를 수신하여 특정 프로그램을 실행하는 보안 실행 수단을 포함하며, 상기 상태 정보와 상기 제어 정보는 상기 컴퓨터 시스템이 무결할 때까지 반복적으로 송수신된다.
상술한 바를 달성하기 위한 본 발명의 해킹 방지 방법은 컴퓨터 시스템의 메모리, 레지스터, 포트중 적어도 하나의 상태를 변형하는 단계와, 상기 변형된 컴퓨터 시스템의 상태 정보를 계산하는 단계와, 상기 컴퓨터 시스템의 보안성 위해 요소를 제거하는 단계와, 임의의 시점에서 상기 컴퓨터 시스템이 안정성이 확보된 검역소에 상태 정보를 전송하는 단계와, 상기 검역소가 상기 상태 정보를 근거로 계산된 제어 정보를 상기 컴퓨터 시스템에 전송하는 단계와, 상기 검역소가 임의의 시점에서 상기 컴퓨터 시스템의 상태 정보가 무결한 상태이면, 상기 컴퓨터 시스템에 특정 프로그램의 실행에 필요한 보안 정보를 전송하는 단계를 포함하며, 상기 상태 정보와 상기 제어 정보는 상기 컴퓨터 시스템이 무결할 때까지 반복적으로 송수신된다.
상술한 바와 같이 본 발명은 외부로부터의 공격을 차단하기 위해 안전한 검역소를 이용하여 호스트 내부에 시간적?공간적으로 무결한 상태를 생성한 후 중요 정보를 수신함으로써, 중요 정보가 유출되지 못하게 된다. 이에 따라 비밀정보의 보호뿐만 아니라 알고리즘 또는 컨텐츠와 같은 자산을 악성코드로부터 근본적으로 보호할 수 있는 효과가 있다.
이하 본 발명의 바람직한 실시 예들의 상세한 설명이 첨부된 도면들을 참조하여 설명할 것이다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일 한 부호들을 나타내고 있음을 유의하여야 한다. 하기 설명에서 구체적인 특정사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해 제공된 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명은 안전한 검역소를 생성하여 외부로부터의 공격을 막고 중요정보가 어떠한 수단에 의해 유출되는 것을 방지하기 위한 해킹 방지 장치 및 방법을 제안한다.
이에 우선 본 발명의 이해를 돕기 위해 본 발명이 적용되는 시스템을 설명한 후, 본 발명의 해킹 방지 장치 및 방법을 설명한다.
본 발명은 미리 구비된 안전한 검역소로부터 프로세서 내부에 시간적(temporal), 공간적(spatial)으로 분리된 영역을 유도하여 근본적으로 외부 공격을 차단할 수 있는 상태를 구현한다. 본 발명에서 시간적 분리는 후술할 검역소확장코드의 실행이 중간에 중단되지 아니함을 의미하며, 공간적 분리는 검역소확장코드의 무결성(integrity)이 실행의 시작과 종료 사이에 유지됨을 의미한다. 또한 상기 검역소는 안전성이 확보되어 있는 장치로서, 스마트카드, PCI 카드, 내부 메모리에 안전성이 검증된 코드 등이 될 수 있다.
도 1은 본 발명에 적용되는 컴퓨터 시스템(100)을 나타낸 도면으로, 검역소가 연결된 구조를 나타내었다.
도 1을 참조하면, 컴퓨터 시스템(100)은 운영체제(OS)의 스케줄링에 따라 프로세스를 처리하는 호스트(110)와, 미리 안정성이 확보된 검역소(120)를 포함한다. 여기서 상기 호스트(110)는 소정 시점에서 계산된 상태 정보를 전송하고, 이 후 상기 검역소(120)는 상기 상태 정보를 근거로 생성한 제어 정보를 상기 호스트(110)로 전송한다.
이러한 동작을 반복 수행 후, 상기 검역소(120)가 악성코드의 영향이 없다고 판단하면 보안 정보를 상기 호스트(110)에 전송하여, 마이크로 프로세서(111) 내부에 확보된 시간적, 공간적 검역소 안에서 민감한 처리를 하게 된다.
여기서 상기 검역소(120)는 호스트(110)의 외부에 나타내었으나, 호스트(110) 내부에 구비될 수 있다.
각 블록을 살펴보면, 상기 호스트(110)는 운영 체제(Operating System)의 스케줄링에 따라 실행되는 프로세스를 처리하는 마이크로 프로세서(111)와, 상기 실행 프로그램이 상주하는 메모리(113)를 포함한다. 상기 검역소(120)는 상기 호스트(110)로부터 전송된 상태 정보를 근거로 제어 정보를 생성하고, 상기 마이크로 프로세서(121) 내부에 안전한 검역소 확보시 필요한 보안 정보를 상기 호스트(110)에 전송한다. 여기서 상기 보안 정보는 프로그램의 비밀번호, 프로그램의 실행을 위한 복호화키, 특정 알고리즘 등으로 다양하게 구현될 수 있다.
상기 입력부(130)는 키보드, 마우스 등과 같은 입력 수단으로 구성될 수 있다.
상기 표시부(140)는 모니터등과 같이 호스트의 동작을 표시하는 장치이다.
본 발명은 안전한 검역소(120)로부터 컴퓨터 시스템(100)에 안전한 영역을 확보하기 위해 검역소 확장 코드를 사용하게 된다.
상기 검역소 확장 코드는 크게 상태변이코드조각들(state change code snippets), 상태계산코드조각들(state calculation code snippets), 보안위해요소제거 및 보안성증대 코드조각들(security acquisition code snippets), 검증된 검역소와의 통신코드조각들(communication code snippets), 보안목적코드조각들(security objective code snippets)을 포함한다.
상기 상태변이코드조각은 코드, 시스템의 메모리 및 레지스터, 포트에서 임의로 선택한 부분을 변형시킨다. 상기 상태변이코드조각은 일례로 메모리(113) 상의 일부 코드를 변경하여 이후 마이크로 프로세서(111)가 실행하는 명령을 변화시키는 것이 있을 수 있다.
상기 상태계산코드조각은 검역소 확장 코드 전체 및 보안에 민감한 메모리 및 보안에 민감한 레지스터 및 포트에서 임의로 선택한 부분에 대해 상태 값을 계산한다. 상기 상태 값은 첵섬(Check sum), 해쉬(Hash), 맥(MAC) 값 등이 사용될 수 있다. 본 발명에서는 이러한 상태 값을 통칭하여 상태 정보라 한다.
상기 보안위해요소제거 및 보안성증대 코드조각은 프로세서의 레지스터들을 안전하게 설정하고 하드웨어 레지스터를 변경한다. 또한 위해 요소로 작용할 수 있는 메모리의 내용을 바꾸고 내용을 추가하며, 보안성증대를 위한 코드를 실행하는 등의 역할을 통해 가능한 외부 공격에 의한 위협을 제거한다.
통신코드조각은 시스템 내부 또는 외부의 신뢰된 검역소(120)와 통신을 하며, 현재 코드 상태 값 즉 상태 정보를 전송하거나, 상기 검역소(120)로부터 검역소 확장 코드의 동작에 영향을 미치는 값을 수신한다. 본 발명에서는 상기 검역소확장코드의 동작에 영향을 미치는 값을 통칭하여 제어 정보라 한다.
보안목적코드조각은 결과적으로 생성된 검역소 안에서 실제 실행을 원하는 코드로서, 검역소로부터 그 자체가 공격을 받고 있지 않음을 확인 받은 상태에서 받은 중요정보를 사용하여 원하는 동작을 수행한다. 중요정보는 코드 자체 또는 키 정보와 같이 코드의 정상적인 실행에 필요한 정보를 의미하는 것으로, 본 발명에서는 통칭하여 보안 정보로 칭하기로 한다.
즉 본 발명에서는 마이크로 프로세서(111)에 외부 공격이 없는 영역을 확보하기 위해 검역소 확장 코드를 사용하게 된다.
도 2은 본 발명의 검역소 확장 코드의 동작을 나타낸 도면으로, 초기 시점 즉 t=0(220-0)에서 마이크로 프로세서(111)에 검역소가 확보되는 시점 즉 t=n(220-n)까지의 각 검역소 확장 코드조각(CS0, CS1,…)의 실행 및 변형되는 모습을 나타내었다. 여기서 각 블록들(210, 211, 213)은 검역소 확장 코드(CS0, CS1,…)를 나타낸 것으로, 상기 검역소 확장 코드(CS0, CS1,…)는 상기 메모리(113)에 상주되어 있다.
도 2를 참조하여 설명하면, t=0 일때(220-0) 검역소 확장 코드는(CS0, CS1,…) 초기화된다. 여기서, 상기 검역소 확장 코드(CS0, CS1,…)는 상태변이코드조각들, 상태계산코드조각들, 보안위해요소제거 및 보안성증대 코드조각들, 검역소와의 통신코드조각들, 보안목적코드조각들로 구성될 수 있다.
이러한 검역소 확장 코드(CS0, CS1,…)는 시간이 지남에 따라 실행 및 변형된다. 즉 각 코드조각들이 실행되는데, 그 중 상기 상태변이코드조각이 실행되는 경우, 마이크로 프로세서(111)가 실행하는 명령에 변화가 생기도록 동작함으로써, 새로운 코드조각들이 생성되거나 변형되는 동작이 수행된다. 이에 따라 검역소 확장 코드(CS0, CS1,…)는 실행되면서 또한 변형된다.
상기 상태계산코드조각들은 현재 상태에서의 메모리 및 보안에 민감한 상태 정보를 계산하는데, 상기 상태 정보는 첵섬(Check sum), 해쉬(Hash), 맥(MAC)등의 여러 상태 값 중 하나가 사용될 수 있다.
상기 보안위해요소제거 및 보안성증대 코드조각은 외부 공격을 차단하기 위해 시스템 제어권을 획득하여 인터럽트 중지 등의 동작을 수행할 수 있도록 한다.
이러한 코드조각들이 실행 중 소정 시점에서 통신코드조각이 실행되면 상기 검역소확장코드가 안전성이 확보된 검역소(120)와 통신한다. 즉, 상기 통신코드조각이 실행되면 상기 상태계산코드조각에 의해 현재 전체 코드 또는 일부 코드에 대한 상태 정보를 상기 검역소(120)에 전송한다. 상기 상태 정보는 t=0(220-0) 내지 t=n(220-n)이내 소정 시점에서 랜덤하게 전송될 수 있다.
상기 수신된 상태 정보가 정상적인지 검사하고, 상기 상태 정보가 정상이라고 판단되면, 상기 검역소(120)는 상기 상태 정보를 근거로 계산된 제어 정보를 상기 검역소 확장 코드에 전송하게 된다. 상기 제어 정보는 상기 검역소확장코드의 동작에 영향을 미치는 값으로, 상기 검역소확장코드의 분기 포인트 또는 이후 상태 정보의 전송 시점 등 여러 정보를 포함할 수 있다.
이 후, 상기 검역소(120)는 상기 상태 정보가 정확한지, 적절한 타이밍에 수신되는지를 검사한다.
이러한 과정이 반복되는 중 t=n(220-n)에 도달되었을 시점에 상기 검역소(120)가 현재까지 수신된 상태 정보가 정확하다고 판단되면, 상기 마이크로 프로세서(111)가 무결하다고 판단하여 보안이 필요한 처리를 시작할 수 있도록 보안 정보를 상기 검역소확장코드에 전송한다. 상기 보안 정보는 상기 보안목적코드가 정상적으로 실행될 수 있게 하는 정보로서, 상기 보안목적코드의 복호화키, 특정 프로그램의 알고리즘, 비밀번호 등 중요 정보가 포함될 수 있다.
상술한 바와 같이 본 발명은 외부로부터의 공격을 차단하기 위해 안전한 검역소를 이용하여 호스트 내부에 시간적?공간적으로 무결한 상태를 생성한 후 중요 정보를 수신함으로써, 중요 정보가 유출되지 못하게 한다.
도 3는 본 발명의 검역소 확장 코드가 동작하는 일례를 나타낸 도면이다.
도 3을 참조하면, 301 단계에서 변수를 초기화하는 동작을 수행한다. 이후 303 단계에서 상태변이코드조각에서 새로운 임의분기코드조각을 생성해서 스스로 변형을 가한다. 이후 305단계에서 실행되는 임의분기코드조각은 지금까지 누산적으로(accumulative) 갱신된 해쉬값에 현재 전체코드의 상태에서 도출된 해쉬값을 갱신해서 검역소(120)에 넘기고 상기 검역소로부터 받은 값을 바탕으로 선택된 지점으로 분기한다.
계속해서 이러한 과정이 진행되면서 시스템의 제어권을 자연스럽게 획득(인터럽트의 중지하는 등의 작업)하며, 혹시 있을지 모르는 보안위해요소를 제거(디버거 레지스터를 불활성화하는 등의 작업)한다. 마지막으로 313단계에서 상기 검역소(120)에서 보안목적코드조각에 필요한 중요정보를 받아 보안목적코드조각을 실행한다. 상기 보안목적코드조각에서는 보안이 필요한 알고리즘을 실행 또는 사용자로부터의 키입력획득 및 입력값의 해쉬를 통한 사용자 패스워드 보호 등 보안목적을 달성한다.
보안목적이 달성되고 실행이 완료되면 315 단계에서 메모리 또는 레지스터 등에 남아있을 수 있는 민감한 정보를 제거하고 제어권을 OS에 넘겨준다.
공격자는 보안목적코드에 대한 공격을 위해 검역소로부터 정상적으로 중요정보가 오도록 해야 한다. 보안목적코드와 중요정보가 동시에 있는 상황에서만 공격자에게 의미가 있기 때문이다. 중요 정보인 보안 정보는 가장 단순한 예로 보안목적코드에 대한 복호화 키가 될 수 있다. 공격자는 검역소가 시스템에 침입이 없고 정상적인 실행이 유지되고 있다고 믿도록 해야 한다. 때문에 해쉬값이 언제나 정상적으로 유지되도록 해야 한다. 동시에 공격자는 보안위해요소제거를 위한 코드의 실행에 계속적으로 개입을 해야 한다. 이 코드의 정상적인 실행은 공격자 자신의 공격이 성립되지 못하도록 하기 때문이다.
상기 보안위해요소제거 코드는 한 예로 시스템의 점유권을 선점하는 코드가 될 수 있는데, 점유권이 선점된 상태에서(인터럽트나 중단점설정관련레지스터 등은 안전한 상태로 설정됨을 가정) 공격자는 공격이 불가능해 진다. 그런데 이러한 개 입은 검역소확장코드 또는 시스템 전체의 상태 변화를 수반하며, 검역소에 전달할 상태 값에 변형을 가져오고 검역소는 정상적인 중요정보 전송을 포기하게 된다. 개입을 통한 해쉬값의 변형을 막기 위해 결과적으로 공격자는 검역소확장코드의 실행 내내 계속해서 개입해야 한다.
이렇게 자신의 개입에 따른 영향을 보상하며 상태계산코드조각들이 개입이전과 마찬가지의 상태 값을 내보내도록 유지한다. 공격자의 개입에 따른 영향을 보상하는 과정은 추가적 코스트(시간)를 발생시키고 검역소(120)는 이러한 코스트를 인지하여 중요정보제공을 포기한다.
전체과정 중에서 검역소(120)는 검역소확장코드 또는 시스템 내 보안관련요소(중단점관련 레지스터, 메모리, 포트 등)에 대해 일어나는 상태변화에 영향을 미칠 수 있는 값을 언제든 검역소확장코드로 전송할 수 있다. 이와 같은 과정은 공격자가 검역소확장코드의 실행이전에 수행하는 정적인 분석을 및 이를 통한 공격을 어렵게 한다.
설명한 방식은 간단한 예로 키보드해킹의 원천방지에 응용될 수 있으며, 시스템 관리(system management) 모드 또는 다중-프로세서(hyper threading 또는 multi core system 등) 구조 등에 적용되어 보다 안전한 보안목적코드의 실행을 가능케 한다.
본 발명의 해킹 방지 방법은 시스템 관리(System Management) 모드 또는 다른 OS로의 전환을 지원하는 프로세서에 효과적으로 응용될 수 있다.
고안된 방식을 사용하여 기존에 어렵게 여겨져 왔던 비밀정보의 보호뿐만 아 니라 알고리즘 또는 컨텐츠와 같은 자산을 악성코드로부터 근본적으로 보호할 수 있으며 구체적으로는 원천적인 키보드 해킹 방지 기술을 구현할 수 있는 등 수많은 응용이 가능하다.
한편 본 발명의 상세한 설명에서는 하나의 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 대역에서의 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐 아니라 이 특허청구의 범위와 균등한 것들에 의해서 정해져야 한다.
도 1은 본 발명에 따른 해킹 방지 시스템을 나타낸 블록도
도 2은 본 발명의 검역소 확장 코드의 동작 원리를 나타낸 도면
도 3는 본 발명의 검역소 확장 코드가 동작하는 일례를 나타낸 도면
<도면의 주요 부분에 대한 부호의 설명>
110 : 호스트
111 : 마이크로 프로세서
113 : 메모리
120 : 검역소
130 : 입력부
140 : 표시부

Claims (9)

  1. 프로세서를 구비한 컴퓨터 시스템의 해킹을 방지하기 위한 장치에 있어서, 상기 장치는,
    안정성이 확보된 검역소와,
    상기 검역소로부터 상기 프로세서에 외부 공격이 불가능한 상태를 구현하는 검역소 확장 수단을 포함하고,
    상기 검역소 확장 수단은,
    상기 컴퓨터 시스템의 메모리에 저장되는 코드를 생성하거나 변경하여 상기프로세서가 실행하는 명령에 변화가 생기도록 동작함으로써, 메모리, 레지스터, 포트중 적어도 하나의 상태를 변형하는 상태변이 수단과,
    상기 상태가 변형된 메모리, 레지스터 및 포트의 상태값 - 상기 상태값은 첵섬(check sum), 해쉬(hash) 및 맥(MAC) 중 적어도 하나를 포함함-를 계산하는 상태계산 수단과,
    상기 컴퓨터 시스템의 점유권을 선점하는 코드를 실행함으로써 보안성 위해 요소를 제거하는 보안성위해요소제거 수단과,
    상기 검역소에 상기 상태계산 수단에 의해 계산된 상태 정보를 송신하고, 상기 상태 정보를 근거로 상기 컴퓨터 시스템을 제어하기 위한 제어 정보를 상기 검역소로부터 수신하기 위한 통신 수단과,
    상기 컴퓨터 시스템의 상태가 무결한 상태인 경우, 상기 검역소로부터 보안 정보를 수신하여 특정 프로그램을 실행하는 보안 실행 수단을 포함하며,
    상기 상태 정보와 상기 제어 정보는 상기 컴퓨터 시스템이 무결할 때까지 반복적으로 송수신되는 해킹 방지 장치.
  2. 삭제
  3. 삭제
  4. 제 1항에 있어서, 상기 제어 정보는,
    상기 컴퓨터 시스템의 메모리, 레지스터, 포트 중 적어도 하나를 변형하는 값인 컴퓨터 시스템의 해킹 방지 장치.
  5. 제 1항에 있어서, 상기 보안 정보는,
    컨텐츠 또는 상기 프로그램을 실행하기 위한 키 정보중 적어도 하나를 포함하는 컴퓨터 시스템의 해킹 방지 장치.
  6. 검역소와 검역소 확장수단을 갖는 해킹 방지 장치에서 상기 해킹 방지 장치의 프로세서의 제어에 의해 실행되는 컴퓨터 시스템의 해킹 방지 방법에 있어서,
    상기 검역소 확장 수단이 상기 컴퓨터 시스템의 메모리에 저장되는 코드를 생성하거나 변경하여 상기 프로세서가 실행하는 명령에 변화가 생기도록 동작함으로써 메모리, 레지스터, 포트 중 적어도 하나의 상태를 변형하는 단계와,
    상기 검역소 확장 수단이 상기 변형된 메모리, 레지스터 및 포트의 상태값-상기 상태값은 첵섬(check sum), 해쉬(hash) 및 맥(MAC) 중 적어도 하나를 포함함- 를 계산하는 단계와,
    상기 검역소 확장 수단이 상기 컴퓨터 시스템의 점유권을 선점하는 코드를 실행함으로써 상기 컴퓨터 시스템의 보안성 위해 요소를 제거하는 단계와,
    상기 검역소 확장 수단이 임의의 시점에서 상기 컴퓨터 시스템이 안정성이 확보된 상기 검역소에 상태 정보를 전송하는 단계와,
    상기 검역소가 상기 상태 정보를 근거로 계산한 제어 정보를 상기 검역소 확장 수단에 전송하는 단계와,
    임의의 시점에서 상기 컴퓨터 시스템의 상태 정보가 무결한 상태이면, 상기 검역소가 상기 검역소 확장 수단에 특정 프로그램의 실행에 필요한 보안 정보를 전송하는 단계를 포함하며,
    상기 상태 정보와 상기 제어 정보는 상기 컴퓨터 시스템이 무결할 때까지 반복적으로 송수신되는 컴퓨터 시스템의 해킹 방지 방법.
  7. 삭제
  8. 제 6항에 있어서, 상기 제어 정보는,
    상기 컴퓨터 시스템의 메모리, 레지스터, 포트 중 적어도 하나의 상태를 변형하는 값인 컴퓨터 시스템의 해킹 방지 방법.
  9. 제 6항에 있어서, 상기 보안 정보는,
    컨텐츠 또는 상기 프로그램을 실행하기 위한 키 정보중 적어도 하나를 포함하는 컴퓨터 시스템의 해킹 방지 방법.
KR1020080132401A 2008-12-23 2008-12-23 컴퓨터 시스템에서의 해킹 방지 장치 및 방법 KR101197182B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020080132401A KR101197182B1 (ko) 2008-12-23 2008-12-23 컴퓨터 시스템에서의 해킹 방지 장치 및 방법
US12/643,077 US8555387B2 (en) 2008-12-23 2009-12-21 Apparatus and method for protecting asset in computer system
EP09180202.5A EP2202661B1 (en) 2008-12-23 2009-12-21 Apparatus and method for protecting asset in computer system
JP2009290487A JP4969639B2 (ja) 2008-12-23 2009-12-22 コンピュータシステムにおける資産保護装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080132401A KR101197182B1 (ko) 2008-12-23 2008-12-23 컴퓨터 시스템에서의 해킹 방지 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100073673A KR20100073673A (ko) 2010-07-01
KR101197182B1 true KR101197182B1 (ko) 2012-11-02

Family

ID=41843013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080132401A KR101197182B1 (ko) 2008-12-23 2008-12-23 컴퓨터 시스템에서의 해킹 방지 장치 및 방법

Country Status (4)

Country Link
US (1) US8555387B2 (ko)
EP (1) EP2202661B1 (ko)
JP (1) JP4969639B2 (ko)
KR (1) KR101197182B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075470B2 (en) * 2013-04-19 2018-09-11 Nicira, Inc. Framework for coordination between endpoint security and network security services

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100819942B1 (ko) * 2006-04-17 2008-04-10 주식회사 에어큐브 유무선 네트워크의 검역 및 정책기반 접속제어 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408642A (en) * 1991-05-24 1995-04-18 Symantec Corporation Method for recovery of a computer program infected by a computer virus
US6067410A (en) * 1996-02-09 2000-05-23 Symantec Corporation Emulation repair system
JP3381055B2 (ja) * 1997-01-27 2003-02-24 裕典 若山 ウィルスの侵入防止方法、及びウィルスの侵入防止機構
JP4812168B2 (ja) * 1999-02-15 2011-11-09 ヒューレット・パッカード・カンパニー 信用コンピューティング・プラットフォーム
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US8225414B2 (en) * 2000-08-28 2012-07-17 Contentguard Holdings, Inc. Method and apparatus for identifying installed software and regulating access to content
US7296296B2 (en) * 2003-10-23 2007-11-13 Microsoft Corporation Protected media path and refusal response enabler
US7694121B2 (en) 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
JP2006040196A (ja) 2004-07-30 2006-02-09 Hitachi Information & Control Systems Inc ソフトウェア監視システムおよび監視方法
US7571460B2 (en) * 2004-08-06 2009-08-04 Time Warner Cable, Inc. System and method for affecting the behavior of a network device in a cable network
KR100571695B1 (ko) 2005-11-04 2006-04-18 (주)아이넷캅 키보드와 마우스 및 영상의 해킹 방지 방법
EP2037388A4 (en) 2006-07-03 2016-12-14 Panasonic Ip Man Co Ltd CERTIFICATION DEVICE, VERIFICATION DEVICE, VERIFICATION SYSTEM, COMPUTER PROGRAM, AND INTEGRATED CIRCUIT

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100819942B1 (ko) * 2006-04-17 2008-04-10 주식회사 에어큐브 유무선 네트워크의 검역 및 정책기반 접속제어 방법

Also Published As

Publication number Publication date
KR20100073673A (ko) 2010-07-01
EP2202661A1 (en) 2010-06-30
US20100162397A1 (en) 2010-06-24
JP4969639B2 (ja) 2012-07-04
JP2010152898A (ja) 2010-07-08
EP2202661B1 (en) 2018-10-03
US8555387B2 (en) 2013-10-08

Similar Documents

Publication Publication Date Title
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
US10496812B2 (en) Systems and methods for security in computer systems
Dunn et al. Cloaking malware with the trusted platform module
EP1632835B1 (en) A secure processor
Ward et al. Survey of cyber moving targets second edition
US10503931B2 (en) Method and apparatus for dynamic executable verification
US20110191848A1 (en) Preventing malicious just-in-time spraying attacks
EP3270318B1 (en) Dynamic security module terminal device and method for operating same
KR20070111603A (ko) 클라이언트 및 서버의 보안시스템
US9256731B2 (en) System, information processing apparatus, secure module, and verification method
Falcarin et al. Exploiting code mobility for dynamic binary obfuscation
US10521613B1 (en) Adaptive standalone secure software
JP5575950B2 (ja) 無線端末装置およびシステム保護方法
KR20100054940A (ko) 임베디드 리눅스에서 서명 검증 방식을 이용한 악성 프로그램 차단 장치 및 방법
US7779269B2 (en) Technique for preventing illegal invocation of software programs
EP2075728A1 (en) A method and an apparatus for code protection
KR101197182B1 (ko) 컴퓨터 시스템에서의 해킹 방지 장치 및 방법
JP7024792B2 (ja) プログラム検証システム、方法およびプログラム
US20120278883A1 (en) Method and System for Protecting a Computing System
Gupta et al. Security and Cryptography
JP2002351686A (ja) データ処理方法及びデータ処理方法のプログラム
Zheng et al. TZ-KPM: Kernel protection mechanism on embedded devices on hardware-assisted isolated environment
Wang et al. Kernel and application integrity assurance: Ensuring freedom from rootkits and malware in a computer system
US10552602B2 (en) System and method for protecting a device against attacks on processing flow using a code pointer complement
KR101173761B1 (ko) 프로그램의 외부 공격에 대한 공격 방어 및 탐지를 위한 장치 및 방법

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
FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170918

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 8