KR20190072375A - 하드웨어 태스크 스위칭을 이용한 은닉 태스크의 감지 방법 및 장치 - Google Patents

하드웨어 태스크 스위칭을 이용한 은닉 태스크의 감지 방법 및 장치 Download PDF

Info

Publication number
KR20190072375A
KR20190072375A KR1020170173683A KR20170173683A KR20190072375A KR 20190072375 A KR20190072375 A KR 20190072375A KR 1020170173683 A KR1020170173683 A KR 1020170173683A KR 20170173683 A KR20170173683 A KR 20170173683A KR 20190072375 A KR20190072375 A KR 20190072375A
Authority
KR
South Korea
Prior art keywords
task
hidden
changed
tss
hardware
Prior art date
Application number
KR1020170173683A
Other languages
English (en)
Other versions
KR102022168B1 (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 KR1020170173683A priority Critical patent/KR102022168B1/ko
Publication of KR20190072375A publication Critical patent/KR20190072375A/ko
Application granted granted Critical
Publication of KR102022168B1 publication Critical patent/KR102022168B1/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/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Abstract

본 명세서에 개시된 하드웨어 태스크 스위칭이 가능한 컴퓨팅 장치에서 수행되는 컴퓨팅 장치의 은닉 태스크 감시 및 치료 방법은 하드웨어 태스크 스위칭의 제어와 관련된 테이블을 저장장치로부터 읽는 단계, 테이블의 복사본을 저장장치로 저장하는 단계, 테이블의 복사본과 테이블을 비교하여, 테이블의 변경 여부를 판단하는 단계 및 테이블이 변경된 것으로 판단될 경우, 미리 정해진 처리 방법을 수행하는 단계를 포함한다.

Description

하드웨어 태스크 스위칭을 이용한 은닉 태스크의 감지 방법 및 장치 {APPARATUS AND METHODS FOR DETECTING OF STEALTH TASK USING HARDWARE TASK SWITCHING}
본 명세서는 공격자의 악의적인 공격으로 컴퓨팅 장치에서 하드웨어 태스크 스위칭을 이용해 수행되는 은닉 태스크를 감지하고 이를 치료하는 방법 및 그 장치에 관한 것이다.
인터넷 등의 공중망(Public Network) 및 기업 내부의 사설망(Private Network)은 다수의 클라이언트 단말이 연결되어 있고, 어느 클라이언트 단말이 악성 코드에 감염된 경우 다른 클라이언트 단말들도 같은 악성 코드에 감염될 우려가 있으므로, 클라이언트 단말에 설치 또는 실행되는 프로그램을 감시할 필요가 있다. 보통의 악성 코드들은 클라이언트 단말의 관리자 권한을 얻어서 클라이언트 단말의 중요한 파일을 훼손 또는 암호화 하거나, 단말의 외부로 전송하기도 한다.
네트워크로부터 바이러스, 랜섬웨어, 웜 등의 클라이언트 단말에 대한 악성 코드의 침입을 감시하는 기존 백신은 미리 알려진 루트킷(Rootkit)을 감지하고 이를 삭제하는 방식을 주로 사용한다.
하지만, 루트킷을 통해서 관리자 권한을 얻은 공격자가 운영체제(Operating System)에서 감지할 수 없는 은닉 태스크를 실행한다면, 기존 백신은 루트킷을 삭제할 뿐 해당 은닉 태스크를 감지하거나 이를 종료시킬 수 없는 문제점이 있다.
이러한 방식으로 공격자가 은닉 태스크를 실행하는 경우, 종래의 일반적인 백신에 감지되지 않은 채로 사용자의 단말 장치에 대한 파일 변경, 훼손을 수행할 수 있고 또한 클라우딩 서버에서 수행되는 경우 클라우딩 서버의 연산장치의 자원을 공격자가 마음대로 이용할 수 있는 문제점이 있다.
등록특허공보 제10-1366554호, 2014.2.18
종래 기술로서 운영체제에서 감지할 수 없는 은닉 태스크를 생성하는 공격 방식은 알려진 적 없으나 실험을 통해 그러한 은닉 태스크를 생성하는 방법이 있음을 발견하여, 본 발명은 하드웨어 태스크 스위칭(Hardware Task Switching)을 이용하여 운영체제에서 감지할 수 없는 은닉 태스크의 생성 여부를 감지하고 이를 치료 가능한 방법 및 장치를 제안한다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 명세서는 하드웨어 태스크 스위칭이 가능한 컴퓨팅 장치에서 수행되는 컴퓨팅 장치의 은닉 태스크 감시 및 치료 방법 방법을 제시한다. 상기 컴퓨팅 장치의 은닉 태스크 감시 및 치료 방법은 하드웨어 태스크 스위칭의 제어와 관련된 테이블을 저장장치로부터 읽는 단계; 상기 테이블의 복사본을 저장장치로 저장하는 단계; 상기 테이블의 복사본과 상기 테이블을 비교하여, 상기 테이블의 변경 여부를 판단하는 단계; 및 상기 테이블이 변경된 것으로 판단될 경우, 미리 정해진 처리 방법을 수행하는 단계를 포함할 수 있다.
상기 방법 및 그 밖의 실시 예는 다음과 같은 특징을 포함할 수 있다.
상기 컴퓨팅 장치는 IA-32(Intel Architecture-32) 기반이고, 상기 하드웨어 태스크 스위칭의 제어와 관련된 테이블은 GDT(Global Descriptor Table) 또는 TSS(Task State Segment)일 수 있다. 상기 테이블의 변경 여부를 판단하는 단계는 TSS(Task State Segment) 서술자(Descriptor) 가 변경되거나 추가된 경우 또는 TSS의 EIP 값이 변경된 경우에 상기 테이블이 변경된 것으로 판단할 수 있다. 상기 테이블이 변경된 것으로 판단한 경우, 은닉 태스크의 실행코드를 검색하고 이를 패치(Patch)하는 단계 및 상기 테이블의 복사본을 이용하여 상기 변경된 테이블을 복원하는 단계를 더 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 명세서에 개시된 실시 예들에 의하면, 공격자가 하드웨어 태스크 스위칭을 통해 은닉된 태스크를 실행시키는 경우 이를 감지하고 치료할 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 은닉 태스크 감시 및 치료 시스템의 구성을 나타내는 도면이다.
도 2는 하드웨어 태스크 스위칭을 통한 은닉 태스크의 실행 가능성에 대한 실험 결과를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 은닉 태스크 감시 및 치료 방법을 설명하기 위한 흐름도이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 GDT, IDT, LDT 및 TSS의 관계를 설명하는 도면이다.
도 6은 IA-32 기반의 TSS 구조를 설명하는 도면이다.
본 명세서에 개시된 기술은 컴퓨팅 장치의 은닉 태스크 감시 및 치료 방법에 적용될 수 있다. 그러나 본 명세서에 개시된 기술은 이에 한정되지 않고, 상기 기술의 기술적 사상이 적용될 수 있는 모든 전자 장치 및 방법에도 적용될 수 있다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 명세서에 개시된 기술의 사상을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 명세서에 개시된 기술의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 명세서에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예들을 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 기술의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 그 기술의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 1은 은닉 태스크 감시 및 치료 장치의 예시적인 블록 다이어그램이다. 본 명세서에 개시된 은닉 태스크 감시 및 치료 장치는 제어부(110), 감시부(120), 저장부(130) 및 통신부(140)로 구성될 수 있다.
제어부(110) 및 감시부(120)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로서, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
은닉 태스크 감시 및 치료 장치는 하드웨어 태스크 스위칭(Hardware Task Switching)이 가능한 컴퓨팅 장치에서 구현될 수 있다.
태스크(Task)는 프로세서가 디스패치(Dispatch, 작업을 처리하기 위해 시스템 자원을 할당하는 것), 실행, 서스펜드(Suspend, 중지, 연기)를 할 수 있는 작업의 한 단위이고, 예를 들어, IA-32(Intel Architecture- 32) 기반 프로세서는 태스크의 상태 저장, 실행을 위한 태스크 디스패치, 태스크 스위칭을 위한 메커니즘을 제공한다.
프로세서가 보호 모드에서 작동될 경우, 태스크 내에서 프로세스의 실행이 이루어지는데, 태스크는 태스크 실행 공간과 TSS(태스크 상태 세그먼트, Task State Segment)의 두 구성요소로 구성된다. 태스크 실행 공간은 코드 세그먼트, 스택 세그먼트, 하나 혹은 하나 이상의 데이터 세그먼트들로 이루어진다. 복잡한 시스템은 프로세서의 태스크 관리 기능들을 이용하여 멀티 태스킹(Multi-Tasking)을 수행할 수 있고, 이 경우 TSS는 태스크 링킹 (Task-Linking) 메커니즘을 제공할 수 있다.
멀티 태스킹을 지원하는 운영체제는 시스템의 자원이 허락하는 한 다수 개의 태스크를 디스패치하여 수행할 수 있고, 이를 위해 각 태스크를 스위칭하는 방식을 이용할 수 있다.
태스크 스위칭 방법의 일예로서 선점형 방식의 태스크 스위칭은 수행중인 태스크의 작업이 완료되지 않아도 다른 태스크가 중앙처리장치를 선점 할 수 있다. 즉, 태스크가 수행되는 동안 어떤 상황에 있든지 해당 태스크를 일단 정지시키고 다른 태스크가 이전에 수행되던 곳부터 다시 시작하는 방식을 취한다.
자세히 설명하면, 중앙처리장치(CPU)에서 수행되는 태스크의 모든 레지스터 값을 저장하고, 이전에 수행하다가 저장되었던 태스크의 레지스터 값들을 중앙처리장치에 옮겨 멈추었던 부분부터 재개하는 방식이다.
특정 중앙처리장치는 태스크 스위칭을 위한 하드웨어적인 메커니즘(Hardware Task Switching)을 제공하는데, 이 경우 TSS를 이용하기도 한다. TSS는 특정 태스크와 관련된 중앙처리장치의 상태를 설명하는 데이터 세그먼트이다. 즉, 하드웨어적인 LTR 명령으로 현재 수행할 태스크가 저장되어 있는 TSS의 TSS 셀렉터(Selector)를 TR 레지스터에 지정하고 중앙처리장치는 GDTR과 TR레지스터를 참조하여 GDT(Global Discriptor Table)내에 존재하는 TSS 디스크립터(Descriptor)를 이용하여 실제 TSS 영역을 참조한다. TSS 영역은 중앙처리장치의 수행에 필요한 모든 레지스터들을 기록할 수 있는 구조로 구성될 수 있고, 이 구조에 이전 태스크 정보를 저장하고 다시 로딩하는 방법으로 태스크 스위칭을 수행할 수 있다. 다시 말하면, 일예로서 단순한 JMP 명령을 통해 TSS 셀렉터를 지정하여 자동으로 태스크 스위칭이 수행되도록 할 수 있고, 그 외에 CALL을 이용한 태스크 스위칭 등의 방식도 존재할 수 있다.
이에 비해 태스크 스위칭을 위한 소프트웨어적인 메커니즘(Software Task Switching)은 변화가 필요한 상태만을 저장 및 리로드(Reload)하는 방식으로, 현재의 스택 포인터(Stack Pointer)를 저장하고 새로운 스택 포인터를 리로드하는 기능을 통해 수행될 수 있다.
하드웨어 태스크 스위칭(Hardware Task Switching)이 가능한 컴퓨팅 장치에서 구현될 경우 제어부(110)는 하드웨어 태스크 스위칭의 제어와 관련된 테이블을 저장부(130)에서 읽고 그 복사본을 저장부(130)에 저장할 수 있다.
저장부(130)는 제어부(110) 또는 감시부(120)가 처리하는 데이터를 일시적 또는 영구적으로 저장하고, 은닉 태스크 감시 및 치료 장치의 중앙처리장치의 상태 데이터 및 태스크 스위칭에 필요한 데이터를 저장하는 기능을 포함한다. 저장부(130)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 또한, 저장부(130)는 활성 메모리이거나 비활성 메모리로 구현될 수도 있다.
일 실시 예에서, 상기 저장부(130)는 일반저장소와 상기 일반저장소와 비교하여 보안 레벨이 높은 보안 저장소로 구분되어 구성될 수 있다. 보안 저장소는 은닉 태스크 감시 및 치료 태스크가 수행되기 위해 필요한 데이터들이 저장될 수 있다. 이와 같은 보안 저장소는 저장부뿐 아니라 제어부와 더불어 보안 환경의 형태로 구현될 수 있다. 예를 들어, 일반 태스크의 실행 환경은 낮은 보안 레벨을 가진 실행 환경으로, 예를 들어, REE(rich execution environment)이라고 불릴 수 있다. 또한, 일반 실행 환경과 구분되는 보안 실행 환경은 높은 보안 레벨을 가진 실행환경으로, 예를 들어, TEE(trusted execution environment)이라고 불릴 수 있다. 상기 보안 실행 환경은, 예를 들면, 상대적으로 높은 보안 레벨이 요구되는 데이터를 안전한 환경 내에서 저장하고 관련 동작을 수행할 수 있다.
감시부(120)는 메모리에 상주하여 주기적으로 태스크 스위칭의 제어와 관련된 테이블을 읽어 제어부(110)로 하여금 테이블의 변경 여부를 판단하도록 할 수 있다. 제어부(110)는 미리 저장된 상기 테이블의 복사본과 비교하여 변경된 경우 은닉 태스크의 실행코드를 검색하여 이를 패치하고 상기 변경된 테이블을 복원할 수 있다.
특정 아키텍쳐에 기반한 경우, 하드웨어 태스크 스위칭 메커니즘은 하위버젼과 호환성을 위해서 존재하지만 실질적으로 태스크 스위칭 메커니즘은 소프트웨어 태스크 스위칭 메커니즘만 적용할 수 있다. 이 경우, 공격자가 관리자 권한(Ring 0)을 획득하여 하드웨어 태스크 스위칭 메커니즘을 동작시켜 새로운 태스크를 실행시키는 경우 운영체제에서는 중앙처리장치의 사용량 측정으로도 해당 태스크(은닉 태스크)의 실행을 감지할 수 없는 문제점이 있다.
예를 들어, IA-32 기반의 마이크로 소프트 윈도우즈 운영체제에서 TSS 구조체 포함된 공격자의 코드가 삽입된 드라이버를 로드하여 Ring 0 권한을 얻고 도 2(a)처럼 소프트웨어 태스크 스위칭과 하드웨어 태스크 스위칭에 타이머 값을 적용하여 동시에 해당 방식의 태스크들을 수행시켰을 경우, 도 2(b)의 오른쪽 화면처럼 윈도우즈의 중앙처리장치의 사용량 측정으로도 하드웨어 태스크 스위칭을 통한 태스크가 측정되지 않았음을 확인할 수 있다.
본 명세서의 은닉 태스크 감시 및 치료 장치는 통신부를 포함할 수 있고, 통신부는 네트워크를 통해 외부의 장치들과 통신을 수행할 수 있다. 네트워크는 예를 들어, 무선 네트워크, 유선 네트워크, 인터넷과 같은 공용 네트워크, 사설 네트워크, 모바일 통신 네트워크용 광역 시스템(global system for mobile communication network; GSM) 네트워크, 범용 패킷 무선 네트워크(general packet radio network; GPRS), 근거리 네트워크(local area network; LAN), 광역 네트워크(wide area network; WAN), 거대도시 네트워크(metropolitan area network; MAN), 셀룰러 네트워크, 공중 전화 교환 네트워크(public switched telephone network; PSTN), 개인 네트워크(personal area network), 블루투스, Wi-Fi 다이렉트(Wi-Fi Direct), 근거리장 통신(Near Field communication), 초 광 대역(UltraWide band), 이들의 조합, 또는 임의의 다른 네트워크일 수 있지만 이들로 한정되는 것은 아니다.
통신부(140)는 유선 및/또는 무선 통신 모듈로 구성될 수 있다. 예를 들어, 통신부(140)는, 와이파이(Wireless Fidelity, Wi-Fi), 블루투스(Bluetooth), 지그비(Zigbee), 엔에프씨(near field communication: NFC), 와이브로(Wireless Broadband Internet: Wibro) 등의 무선 통신모듈과 이더넷(Ethernet) 등의 유선 랜(LAN)과 같은 유선 통신 모듈 등을 포함할 수 있다. 상기 통신부(140)는 네트워크를 통해 외부 장치와 유무선 통신을 수행할 수 있다.
도 3은 은닉 태스크 감시 및 치료 장치의 동작을 나타내는 흐름도이다.
도 3을 참조하면, 은닉 태스크 감시 및 치료 장치는 하드웨어 태스크 스위칭의 제어와 관련된 테이블을 저장장치로부터 읽고(S301), 상기 테이블의 복사본을 저장장치로 저장(S302)할 수 있다.
앞서 기술한 것처럼, 하드웨어 태스크 스위칭에 특정 태스크과 관련된 중앙처리장치의 상태를 설명하는 데이터 세그먼트인 TSS를 이용할 수 있으며, 이 경우 TSS 영역은 중앙처리장치의 수행에 필요한 모든 레지스터들을 기록할 수 있는 구조로 구성될 수 있고, 이 구조에 이전 태스크 정보를 저장하고 다시 로딩하는 방법으로 태스크 스위칭을 수행할 수 있다.
따라서, IA-32 기반의 중앙처리장치는 GDT내에 존재하는 TSS 디스크립터(Descriptor)를 이용하여 실제 TSS 영역을 참조 및 이용하여 하드웨어 태스크 스위칭의 제어를 수행할 수 있으므로, 본 발명의 일 실시예로서 은닉 태스크 감시 및 치료 장치는 GDT(Global Descriptor Table)을 저장장치로부터 읽어 그 복사본을 저장장치로 저장할 수 있다.
다른 실시예로서, 은닉 태스크 감시 및 치료 장치는 하드웨어 태스크 스위칭의 제어와 관련된 직접적인 테이블로서 TSS 데이터를 저장장치로부터 읽어 그 복사본을 저장할 수도 있다.
은닉 태스크 감시 및 치료 장치는 주기적 또는 비주기적으로 하드웨어 태스크 스위칭의 제어와 관련된 테이블을 읽고(S303) 미리 저장된 테이블의 복사본과 비교하여, 공격자의 악의적인 하드웨어 태스크 스위칭을 통한 은닉 태스크 실행을 위해 테이블의 변경이 이루어 졌는지 판단(S304)할 수 있다.
예를 들어, IA-32 기반의 중앙처리 장치의 경우 공격자가 'Jump 0x50'명령어를 이용해 하드웨어 태스크 스위칭을 한 경우, 중앙처리장치는 태스크 스위칭을 위해 현재 상태의 레지스터 값을 저장하고 GDT의 0x50의 TSS 서술자(Descriptor)의 베이스(Base) 주소 값을 참조해 다른 태스크로 스위칭할 수 있다. 이 경우, 공격자가 'Jump 0x50'의 명령을 실행시키기 전에 TSS의 EIP값을 공격자가 원하는 다른 태스크의 주소로 변경해 놓았을 경우 중앙처리장치는 공격자가 원하는 태스크를 실행하게 되고 이 태스크는 은닉되어 운영체제에서 감지를 할 수 없다.
따라서, 은닉 태스크 감시 및 치료 장치는 미리 저장된 GDT 또는 TSS의 값과 비교하여 해당 값이 미리 저장된 값이 변경된 경우 은닉 태스크가 동작하는 것으로 판단할 수 있다.
일 실시예로서, IA-32 기반의 중앙처리 장치의 경우 은닉 태스크 감시 및 치료 장치는 미리 저장된 테이블을 참조하여 TSS 서술자(Descriptor) 값이 변경된 경우, TSS 서술자가 추가된 경우, TSS의 EIP값이 변경된 경우에 은닉 태스크가 동작하는 것으로 판단할 수 있다.
다른 실시예로서, 중앙처리장치가 하드웨어 디버깅을 이용하여 TSS 서술자가 변경되거나 추가되는 경우 예외(Exception)를 트리거링(Triggering) 하고, 이에 대한 변경 여부를 판단할 수도 있다.
은닉 태스크 감시 및 치료 장치는 은닉 태스크가 존재하는 것으로 판단한 경우 미리 정해진 처리 방법을 수행할 수 있다. 일 실시예로서, 은닉 태스크 감시 및 치료 장치는 은닉 태스크를 종료시키거나 또는 은닉 태스크의 실행코드를 검색하여 이에 대한 패치(Patch)를 수행(S305)할 수 있다.
예를 들어, 앞서 설명한 공격자가 하드웨어 태스크 스위칭을 위한 'Jump 0x50'명령 코드를 검색한 경우 이를 삭제할 수 있다.
또한, 은닉 태스크 감시 및 치료 장치는 상기 은닉 태스크의 실행코드와 관련된 디바이스 드라이버를 언로드(unload)하여 추후 발생할 수 있는 동일한 은닉 태스크에 의한 위험을 차단할 수 있다.
은닉 태스크 감시 및 치료 장치는 미리 저장된 테이블의 복사본을 기초로 변경된 테이블을 복원(S306)할 수 있다.
예를 들어, TSS 서술자(Descriptor) 값 또는 TSS의 EIP값이 변경된 경우 이를 원래의 값으로 재 변경하거나, TSS 서술자가 추가된 경우 이를 삭제할 수 있다. 실시 예에 따라, 은기 태스크 감시 및 치료 장치는 실행 코드의 패치 동작(S305) 수행 전 또는 후 테이블 복원하는 동작을 수행할 수 있다.
본 명세서에 개시된 실시예들에 따른 은닉 태스크 감시 및 치료 방법은 컴퓨터로 읽을 수 있는 기록 매체에서 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 명세서의 기술이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상에서 본 명세서의 기술에 대한 바람직한 실시 예가 첨부된 도면들을 참조하여 설명되었다. 여기서, 본 명세서 및 청구 범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다.
본 발명의 범위는 본 명세서에 개시된 실시 예들로 한정되지 아니하고, 본 발명은 본 발명의 사상 및 특허청구범위에 기재된 범주 내에서 다양한 형태로 수정, 변경, 또는 개선될 수 있다.
110: 제어부
120: 감시부
130: 저장부
140: 통신부

Claims (6)

  1. 하드웨어 태스크 스위칭이 가능한 컴퓨팅 장치에서 수행되는 방법으로,
    하드웨어 태스크 스위칭의 제어와 관련된 테이블을 저장장치로부터 읽는 단계;
    상기 테이블의 복사본을 저장장치로 저장하는 단계;
    상기 테이블의 복사본과 상기 테이블을 비교하여, 상기 테이블의 변경 여부를 판단하는 단계; 및
    상기 테이블이 변경된 것으로 판단될 경우, 미리 정해진 처리 방법을 수행하는 단계;
    를 포함하는 컴퓨팅 장치의 은닉 태스크 감시 및 치료 방법
  2. 제1 항에 있어서,
    상기 컴퓨팅 장치는 IA-32(Intel Architecture-32) 기반이고, 상기 하드웨어 태스크 스위칭의 제어와 관련된 테이블은 GDT(Global Descriptor Table) 또는 TSS(Task State Segment)인 것을 특징으로 하는 컴퓨팅 장치의 은닉 태스크 감시 및 치료 방법
  3. 제2 항에 있어서,
    TSS(Task State Segment) 서술자(Descriptor) 가 변경되거나 추가된 경우 또는 TSS의 EIP 값이 변경된 경우에 상기 테이블이 변경된 것으로 판단하는 것을 특징으로 하는 컴퓨팅 장치의 은닉 태스크 감시 및 치료 방법
  4. 제3 항에 있어서,
    상기 테이블이 변경된 것으로 판단한 경우, 은닉 태스크의 실행코드를 검색하고 이를 패치(Patch)하는 단계를 더 포함하는 컴퓨팅 장치의 은닉 태스크 감시 및 치료 방법
  5. 제4 항에 있어서,
    상기 테이블의 복사본을 이용하여 상기 변경된 테이블을 복원하는 단계를 더 포함하는 컴퓨팅 장치의 은닉 태스크 감시 및 치료 방법
  6. 제1 항 내지 제 5항 중 어느 한 항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
KR1020170173683A 2017-12-15 2017-12-15 하드웨어 태스크 스위칭을 이용한 은닉 태스크의 감지 방법 및 장치 KR102022168B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170173683A KR102022168B1 (ko) 2017-12-15 2017-12-15 하드웨어 태스크 스위칭을 이용한 은닉 태스크의 감지 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170173683A KR102022168B1 (ko) 2017-12-15 2017-12-15 하드웨어 태스크 스위칭을 이용한 은닉 태스크의 감지 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190072375A true KR20190072375A (ko) 2019-06-25
KR102022168B1 KR102022168B1 (ko) 2019-09-18

Family

ID=67065615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170173683A KR102022168B1 (ko) 2017-12-15 2017-12-15 하드웨어 태스크 스위칭을 이용한 은닉 태스크의 감지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102022168B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090107035A (ko) * 2007-01-25 2009-10-12 마이크로소프트 코포레이션 운영 체제 리소스 보호
US20090327688A1 (en) * 2008-06-28 2009-12-31 Chengdu Huawei Symantec Technologies Co., Ltd. Method and system for detecting a malicious code
US20130124917A1 (en) * 2011-11-16 2013-05-16 GM Global Technology Operations LLC Recovering from stack corruption faults in embedded software systems
KR101366554B1 (ko) 2012-09-20 2014-02-26 주식회사 동부하이텍 반도체 소자 및 그 제조 방법
US20140331231A1 (en) * 2001-03-22 2014-11-06 Sviral, Inc. Hardware task manager

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140331231A1 (en) * 2001-03-22 2014-11-06 Sviral, Inc. Hardware task manager
KR20090107035A (ko) * 2007-01-25 2009-10-12 마이크로소프트 코포레이션 운영 체제 리소스 보호
US20090327688A1 (en) * 2008-06-28 2009-12-31 Chengdu Huawei Symantec Technologies Co., Ltd. Method and system for detecting a malicious code
US20130124917A1 (en) * 2011-11-16 2013-05-16 GM Global Technology Operations LLC Recovering from stack corruption faults in embedded software systems
KR101366554B1 (ko) 2012-09-20 2014-02-26 주식회사 동부하이텍 반도체 소자 및 그 제조 방법

Also Published As

Publication number Publication date
KR102022168B1 (ko) 2019-09-18

Similar Documents

Publication Publication Date Title
US9280664B2 (en) Apparatus and method for blocking activity of malware
US9852289B1 (en) Systems and methods for protecting files from malicious encryption attempts
US11269996B2 (en) System and method for protecting memory pages
US10630643B2 (en) Dual memory introspection for securing multiple network endpoints
US10474819B2 (en) Methods and systems for maintaining a sandbox for use in malware detection
US10460099B2 (en) System and method of detecting malicious code in files
US9117080B2 (en) Process evaluation for malware detection in virtual machines
US10963558B2 (en) Malware detection method and malware detection apparatus
US9953164B2 (en) Confirming a malware infection on a client device using a remote access connection tool, to identify a malicious file based on fuzz hashes
US11363058B2 (en) Detecting execution of modified executable code
US9111089B1 (en) Systems and methods for safely executing programs
JP2018524756A (ja) 複数のソフトウェアエンティティにわたって悪意あるビヘイビアを追跡するためのシステムおよび方法
JP2014071796A (ja) マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びプログラム
US10860716B2 (en) Detecting malware concealed by delay loops of software programs
KR101064164B1 (ko) 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법
KR101563059B1 (ko) 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법
US10754931B2 (en) Methods for configuring security restrictions of a data processing system
JP2017204173A (ja) データ保護プログラム、データ保護方法及びデータ保護装置
KR20140139752A (ko) 루팅 검출방법 및 검출장치
KR102022168B1 (ko) 하드웨어 태스크 스위칭을 이용한 은닉 태스크의 감지 방법 및 장치
KR20210001057A (ko) 랜섬웨어 탐지 및 차단 방법
US20190080090A1 (en) Method and apparatus for detecting dynamically-loaded malware with run time predictive analysis
KR20110032449A (ko) 행위기반 탐지 장치 및 방법
CN103914656A (zh) 避免被恶意软件监控的方法和装置
KR20170074500A (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