KR101816866B1 - 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법 - Google Patents

감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법 Download PDF

Info

Publication number
KR101816866B1
KR101816866B1 KR1020160101904A KR20160101904A KR101816866B1 KR 101816866 B1 KR101816866 B1 KR 101816866B1 KR 1020160101904 A KR1020160101904 A KR 1020160101904A KR 20160101904 A KR20160101904 A KR 20160101904A KR 101816866 B1 KR101816866 B1 KR 101816866B1
Authority
KR
South Korea
Prior art keywords
attack
information
monitoring
debug
integrity
Prior art date
Application number
KR1020160101904A
Other languages
English (en)
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 KR1020160101904A priority Critical patent/KR101816866B1/ko
Priority to US15/404,579 priority patent/US10467410B2/en
Application granted granted Critical
Publication of KR101816866B1 publication Critical patent/KR101816866B1/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
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Bioethics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법이 개시된다. 본 발명에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 장치는, 감시 대상 시스템의 감시 영역에 대한 감시 영역 정보를 수신하여 저장하는 감시 영역 정보 수신부, 상기 감시 영역 정보를 기반으로, 데이터 읽기 명령에 상응하는 기밀성 및 데이터 쓰기 명령에 상응하는 무결성 중 적어도 어느 하나를 감시하여, 공격 정보를 추출하는 감시부, 추출된 상기 공격 정보를 기반으로 공격 유무를 판단하고, 공격이 발생한 것으로 판단된 경우 상기 공격을 처리하는 공격 처리부를 포함한다.

Description

감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법{APPARATUS AND METHOD FOR CONFIDENTIALITY AND INTEGRITY MONITORING OF TARGET SYSTEM}
본 발명은 감시 대상 시스템의 기밀성 및 무결성을 감시하는 기술에 관한 것으로, 특히 온 칩 디버그 로직이 탑재된 감시 대상 시스템에서, 운영체제, 애플리케이션 및 라이브러리 소프트웨어에 대한 기밀성 및 무결성을 보장하는 기술에 관한 것이다.
코드 및 데이터 영역의 무결성을 감시하는 기술은 크게 두 가지 접근 방식으로 구분된다. 첫 번째 방식은 하드웨어 기반의 접근 방식이고, 두 번째 방식은 소프트웨어 접근 방식이다.
하드웨어 기반의 접근 방식은 별도로 제작한 감시 하드웨어를 장착하여, 감시 대상 코드 영역에 대한 쓰기 시도를 탐지하는 방식이다. 하드웨어 기반 커널 무결성 감시 기술로는 Copilot, Vigilare, KI-Mon 등이 있다. 그러나 종래의 하드웨어 기반의 방식은 별도의 하드웨어를 필요로 하며, 임베디드 시스템의 경우 시스템에 장착하기 힘든 경우가 발생할 수 있다.
PCI 카드 기반 메모리 감시 기술은 주기적으로 메모리 상태를 검사한 후, 해쉬를 계산하여 정상 상태에서의 해쉬값과 비교함으로써 변조를 감지하는 스냅샷 방식의 감시 기법이다. 그리고 메모리 슬롯에 장착하여 메모리 입출력을 감시하는 기술은 대상 운영체제의 메모리 검사를 통하여, 운영체제 커널에 대한 변조가 감지된 경우 루트킷을 동작하는 기술이다. PCI 카드 기반 메모리 감시 기술 및 메모리 카드 기반 감시 기술은 별도의 특화된 하드웨어 장치를 필요로 한다.
또한, 메모리 버스를 스누핑하는 하드웨어 장치를 이용하여 커널 메모리에 대한 변조 시도를 감지하는 기술 및 동적으로 값이 변화하는 커널 메모리에 대한 감시 기술도 등장하였다. 그러나, 시스템 관점에서 별도의 하드웨어를 필요로 하고, 공격자가 캐시를 이용하여 데이터 값을 조작하는 경우, 시스템 버스에 데이터 입출력 행위가 발생하지 않으므로 공격을 검출할 수 없다는 한계가 있다.
다음으로 소프트웨어 기반의 방식은 페이지 테이블(page table)을 이용하여 코드 및 데이터에 대한 무결성을 감시하고, 보장하는 기술이다. 소프트웨어 기반의 방식은 악성코드가 감시 소프트웨어와 같은 권한을 가지는 경우, 페이지 테이블 등 데이터와 소프트웨어 코드를 조작하여 회피할 수 있다.
또한, 소프트웨어 기반의 방식은 메모리 접근 권한 침범(access permission violation)에 의한 페이지 폴트로 인하여 실행 속도가 현저히 느려지는 단점이 있다. 그리고 인스트럭션 패치와 데이터 로드 및 데이터 스토어 명령 구분 없이, 일기, 쓰기, 실행 세 가지의 접근 제어만 가능하다는 단점이 있다.
따라서, 감시 대상 시스템의 내부 또는 외부에 탑재되어 기밀성 및 무결성을 감시하는 기술의 개발이 필요하다.
한국 등록 특허 제10-1358815호, 2014년 02월 11일 공고(명칭: 스누프 기반의 커널 무결성 감시 장치 및 그 방법)
본 발명의 목적은 온 칩 디버그 로직이 탑재된 시스템에서, 운영체제, 애플리케이션 및 라이브러리 소프트웨어에 대한 기밀성 및 무결성을 보장하는 것이다.
또한, 본 발명의 목적은 악성코드에 의해 실행되는 코드 영역에 대한 데이터 읽기(data load) 명령을 탐지 및 방지하여 코드 기밀성을 감시 및 보장하는 것이다.
또한, 본 발명의 목적은 악성코드에 의해 실행되는 코드 영역에 대한 데이터 쓰기(data store) 명령을 탐지하고, 변조를 방지하여, 코드 무결성을 감시 및 보장하는 것이다.
또한, 본 발명의 목적은 종래의 시스템 버스를 이용한 스냅샷 방식이나, 버스 스누핑 방식으로는 검출하기 힘든 캐시를 이용한 공격을 검출할 수 있도록 하는 것이다.
또한, 본 발명의 목적은 악성코드에 의해 실행되는 불변 데이터 영역에 대한 쓰기(store) 명령을 탐지하고, 변조를 방지하여, 불변 데이터의 무결성을 감시 및 보장하는 것이다.
또한, 본 발명의 목적은 악성코드에 의해 실행되는 가변 데이터 영역에 대한 비정상 범위의 값 쓰기(data store) 명령을 탐지하고, 변조를 방지하여 가변 데이터의 무결성을 감시 및 보장하는 것이다.
또한, 본 발명의 목적은 감시 대상 시스템의 내부에 탑재되는 형태로 구현되어, 모바일 기기 및 임베디드 장치 등 외부 하드웨어를 장착하기 힘든 감시 대상 시스템을 훼손하지 않고 기밀성 및 무결성 감시 장치를 탑재할 수 있도록 하는 것이다.
또한, 본 발명의 목적은 감시 대상 시스템의 외부에 설치되는 형태로 구현되어, 감시 대상 시스템에 독립적으로 동작함으로써 감시 대상 시스템의 무결성에 영향을 받지 않도록 하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 장치는, 감시 대상 시스템의 감시 영역에 대한 감시 영역 정보를 수신하여 저장하는 감시 영역 정보 수신부, 상기 감시 영역 정보를 기반으로, 데이터 읽기 명령에 상응하는 기밀성 및 데이터 쓰기 명령에 상응하는 무결성 중 적어도 어느 하나를 감시하여, 공격 정보를 추출하는 감시부, 추출된 상기 공격 정보를 기반으로 공격 유무를 판단하고, 공격이 발생한 것으로 판단된 경우 상기 공격을 처리하는 공격 처리부를 포함한다.
이때, 상기 감시 영역은, 커널, 애플리케이션 및 라이브러리 중 적어도 어느 하나에 대한 코드 영역 및 데이터 영역 중 적어도 어느 하나를 포함할 수 있다.
이때, 상기 감시 영역 정보는, 상기 감시 영역에 상응하는 코드 종류, 절대 주소, 상대 주소, 기능 종류, 실행 종류, 데이터 종류 및 데이터 범위 중 적어도 어느 하나를 포함할 수 있다.
이때, 상기 감시부는, 상기 감시 영역 정보에 상기 절대 주소가 포함되지 않은 경우, 상기 상대 주소 및 기능 종류 중 적어도 어느 하나를 기반으로 상기 절대 주소를 추출할 수 있다.
이때, 상기 감시부는, 상기 감시 영역 정보에 상응하는 상기 데이터 읽기 명령이 검출될 경우 디버그 로직이 디버그 이벤트를 발생하도록, 상기 디버그 로직을 제어하는 디버그 로직 제어부, 그리고 발생된 상기 디버그 이벤트를 검출하고, 상기 디버그 이벤트에 상응하는 감시 영역 정보 및 프로세서 정보를 포함하는 상기 공격 정보를 추출하는 디버그 이벤트 검출부를 포함할 수 있다.
이때, 상기 프로세서 정보는, 상기 명령을 실행하는 프로세서의 레지스터 값, 스택 메모리 값 중 적어도 어느 하나를 포함할 수 있다.
이때, 상기 공격 처리부는, 상기 공격 정보가 상기 감시 영역 정보에 상응하는지 여부를 판단하여, 상기 공격 유무를 판단할 수 있다.
이때, 상기 공격 처리부는, 상기 공격이 발생한 것으로 판단된 경우, 상기 데이터 읽기 명령의 실행을 중단하거나, 상기 데이터 읽기 명령에 상응하는 메모리 값 이외의 값을 반환할 수 있다.
이때, 상기 감시부는, 상기 감시 영역 정보에 상응하는 상기 데이터 쓰기 명령이 검출될 경우 디버그 로직이 디버그 이벤트를 발생하도록, 상기 디버그 로직을 제어하는 디버그 로직 제어부, 그리고 발생된 상기 디버그 이벤트를 검출하고, 상기 디버그 이벤트에 상응하는 감시 영역 정보 및 프로세서 정보를 포함하는 상기 공격 정보를 추출하는 디버그 이벤트 검출부를 포함할 수 있다.
이때, 상기 공격 처리부는, 상기 공격 정보와 수신된 상기 감시 영역 정보를 기반으로, 상기 공격 정보가 비정상 범위의 값에 대한 데이터 쓰기 명령인지 여부를 판단하여, 상기 공격 유무를 판단할 수 있다.
이때, 상기 공격 처리부는, 상기 공격이 발생한 것으로 판단된 경우, 상기 데이터 쓰기 명령의 실행을 중단하거나, 상기 데이터 쓰기 명령에 상응하는 값을 메모리에 반영하지 않을 수 있다.
이때, 상기 공격 정보 및 상기 공격의 처리 결과 중 적어도 어느 하나를 출력하는 처리 결과 출력부를 더 포함할 수 있다.
이때, 상기 기밀성 및 무결성 감시 장치는, 상기 감시 대상 시스템의 내부에 탑재되고, 상기 감시부는, 상기 감시 대상 시스템의 디버그 로직을 직접 제어하여 상기 공격 정보를 추출할 수 있다.
이때, 상기 감시부는, 상기 감시 대상 시스템의 디버그 포트를 이용하여, 상기 감시 대상 시스템의 외부에서 상기 감시 대상 시스템의 디버그 로직을 제어하고, 상기 디버그 로직을 제어하여 상기 공격 정보를 추출할 수 있다.
또한, 본 발명의 일실시예에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 장치에 의해 수행되는 감시 대상 시스템의 기밀성 및 무결성 감시 방법은 상기 감시 대상 시스템의 감시 영역에 대한 감시 영역 정보를 수신하여 저장하는 단계, 상기 감시 영역 정보를 기반으로, 데이터 읽기 명령에 상응하는 기밀성 및 데이터 쓰기 명령에 상응하는 무결성 중 적어도 어느 하나를 감시하여, 공격 정보를 추출하는 단계, 추출된 상기 공격 정보를 기반으로 공격 유무를 판단하는 단계, 그리고 공격이 발생한 것으로 판단된 경우, 상기 공격을 처리하는 단계를 포함할 수 있다.
이때, 상기 공격 정보를 추출하는 단계는, 상기 감시 영역 정보에 상응하는 상기 데이터 읽기 명령이 검출될 경우 디버그 로직이 디버그 이벤트를 발생하도록, 상기 디버그 로직을 제어하는 단계, 발생된 상기 디버그 이벤트를 검출하는 단계, 그리고 상기 디버그 이벤트에 상응하는 감시 영역 정보 및 프로세서 정보를 포함하는 상기 공격 정보를 추출하는 단계를 포함할 수 있다.
이때, 상기 공격 유무를 판단하는 단계는, 상기 공격 정보가 상기 감시 영역 정보에 상응하는지 여부를 판단하여, 상기 공격 유무를 판단하고, 상기 공격을 처리하는 단계는, 상기 공격이 발생한 것으로 판단된 경우, 상기 데이터 읽기 명령의 실행을 중단하거나, 상기 데이터 읽기 명령에 상응하는 메모리 값 이외의 값을 반환할 수 있다.
이때, 상기 공격 정보를 추출하는 단계는, 상기 감시 영역 정보에 상응하는 상기 데이터 쓰기 명령이 검출될 경우, 디버그 로직이 디버그 이벤트를 발생하도록 상기 디버그 로직을 제어하는 단계, 발생된 상기 디버그 이벤트를 검출하는 단계, 그리고 상기 디버그 이벤트에 상응하는 감시 영역 정보 및 프로세서 정보를 포함하는 상기 공격 정보를 추출하는 단계를 포함할 수 있다.
이때, 상기 공격 유무를 판단하는 단계는, 상기 공격 정보와 수신된 상기 감시 영역 정보를 기반으로, 상기 공격 정보가 비정상 범위의 값에 대한 데이터 쓰기 명령인지 여부를 판단하여, 상기 공격 유무를 판단하고, 상기 공격을 처리하는 단계는, 상기 공격이 발생한 것으로 판단된 경우, 상기 데이터 쓰기 명령의 실행을 중단하거나, 상기 데이터 쓰기 명령에 상응하는 값을 메모리에 반영하지 않을 수 있다.
이때, 상기 기밀성 및 무결성 감시 장치는, 상기 감시 대상 시스템의 내부에 탑재되어 상기 감시 대상 시스템의 디버그 로직을 직접 제어하거나, 상기 감시 대상 시스템의 외부에서 디버그 포트를 이용하여 상기 디버그 로직을 제어할 수 있다.
본 발명에 따르면, 온 칩 디버그 로직이 탑재된 시스템에서, 운영체제, 애플리케이션 및 라이브러리 소프트웨어에 대한 기밀성 및 무결성을 보장할 수 있다.
또한 본 발명에 따르면, 악성코드에 의해 실행되는 코드 영역에 대한 데이터 읽기(data load) 명령을 탐지 및 방지하여 코드 기밀성을 감시 및 보장할 수 있다.
또한 본 발명에 따르면, 악성코드에 의해 실행되는 코드 영역에 대한 데이터 쓰기(data store) 명령을 탐지하고, 변조를 방지하여, 코드 무결성을 감시 및 보장할 수 있다.
또한, 본 발명에 따르면, 종래의 시스템 버스를 이용한 스냅샷 방식이나, 버스 스누핑 방식으로는 검출하기 힘든 캐시를 이용한 공격을 검출할 수 있다.
또한 본 발명에 따르면, 악성코드에 의해 실행되는 불변 데이터 영역에 대한 쓰기(store) 명령을 탐지하고, 변조를 방지하여, 불변 데이터의 무결성을 감시 및 보장할 수 있다.
또한 본 발명에 따르면, 악성코드에 의해 실행되는 가변 데이터 영역에 대한 비정상 범위의 값 쓰기(data store) 명령을 탐지하고, 변조를 방지하여 가변 데이터의 무결성을 감시 및 보장할 수 있다.
또한 본 발명에 따르면, 감시 대상 시스템의 내부에 탑재되는 형태로 구현되어, 모바일 기기 및 임베디드 장치 등 외부 하드웨어를 장착하기 힘든 감시 대상 시스템을 훼손하지 않고 기밀성 및 무결성 감시 장치를 탑재할 수 있다.
또한 본 발명에 따르면, 감시 대상 시스템의 외부에 설치되는 형태로 구현되어, 감시 대상 시스템에 독립적으로 동작함으로써 감시 대상 시스템의 무결성에 영향을 받지 않을 수 있다.
도 1은 본 발명의 일실시예에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 장치의 구성을 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 감시부의 구성을 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 일실시예에 따른 감시 대상 시스템을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 기밀성을 감시하는 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일실시예에 따른 무결성을 감시하는 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 일실시예에 따른 기밀성 및 무결성 감시 장치가 감시 대상 시스템의 내부에 탑재되는 형태를 설명하기 위한 도면이다.
도 8은 본 발명의 일실시예에 따른 기밀성 및 무결성 감시 장치가 감시 대상 시스템의 외부에 구비되는 형태를 설명하기 위한 도면이다.
도 9는 종래 기술에 따른 시스템 버스 기반 감시 장치의 한계점을 설명하기 위한 도면이다.
도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 장치의 구성을 나타낸 블록도이다.
도 1에 도시한 바와 같이, 감시 대상 시스템의 기밀성 및 무결성 감시 장치(100)는 감시 영역 정보 수신부(110), 감시부(120), 공격 처리부(130) 및 처리 결과 출력부(140)를 포함한다.
먼저, 감시 영역 정보 수신부(110)는 감시 대상 시스템의 감시 영역에 대한 감시 영역 정보를 수신하여 저장한다.
여기서, 감시 영역은 커널, 애플리케이션 및 라이브러리 중 적어도 어느 하나에 대한 코드 영역과 데이터 영역 중 적어도 어느 하나를 포함할 수 있다. 그리고 감시 영역 정보는 감시 영역에 상응하는 코드 종류, 절대 주소, 상대 주소, 기능 종류, 실행 종류, 데이터 종류 및 데이터 범위 중 적어도 어느 하나를 포함할 수 있다.
다음으로 감시부(120)는 감시 영역 정보를 기반으로 기밀성 및 무결성 중 적어도 어느 하나를 감시하여 공격 정보를 추출한다. 이때, 감시부(120)는 데이터 읽기 명령에 상응하는 기밀성을 감시하거나, 데이터 쓰기 명령에 상응하는 무결성을 감시할 수 있다.
여기서 데이터 읽기 명령은 data load instruction 및 data read instruction 중에서 어느 하나를 의미하고, 데이터 쓰기 명령은 data store instruction 및 data write instruction 중에서 어느 하나를 의미할 수 있다.
본 발명의 일 실시예에 따른 기밀성 및 무결성 감시 장치(100)는 디버그 로직이 프로세서의 인스트럭션 패치, 데이터 읽기 명령 및 데이터 쓰기 명령을 구분할 수 있다는 점을 이용한다.
그리고 감시부(120)는 감시 영역 정보에 상응하는 데이터 읽기 명령 및 데이터 쓰기 명령 중 적어도 어느 하나가 검출될 경우 디버그 로직이 디버그 이벤트를 발생하도록, 디버그 로직을 제어한다. 여기서, 디버그 로직은 온 칩 디버그 로직(On-chip debug logic)을 의미할 수 있다.
감시부(120)는 감시 영역 정보를 디버그 로직에 설정하여, 디버그 로직을 제어할 수 있다. 이때, 감시부(120)는 디버그 로직에 감시 영역 정보에 상응하는 절대 주소 및 명령의 종류를 디버그 로직에 설정할 수 있다.
감시 영역 정보 수신부(110)가 수신한 감시 영역 정보에 절대 주소가 포함되지 않은 경우, 감시부(120)는 상대 주소 및 기능 종류 중 적어도 어느 하나를 기반으로 절대 주소를 추출할 수 있다. 그리고 추출된 절대 주소를 기반으로 디버그 로직을 제어할 수 있다.
감시부(120)에 의해 제어된 디버그 로직은 감시 영역에 상응하는 절대 주소의 범위에, 해당 명령이 실행되는 것이 감지될 경우 디버그 이벤트를 발생한다. 또한, 감시부(120)는 발생된 디버그 이벤트를 검출하여 운영체제, 애플리케이션 및 라이브러리에 대한 코드 기밀성과 코드, 데이터의 무결성을 감시한다.
즉, 감시 영역 정보에 상응하는 주소 범위에서 데이터 읽기 명령 및 데이터 쓰기 명령 중 적어도 어느 하나가 검출된 경우, 디버그 로직은 디버그 이벤트를 발생한다. 그리고 감시부(120)는 발생된 디버그 이벤트를 검출하고, 디버그 이벤트에 상응하는 감시 영역 정보 및 프로세서 정보를 포함하는 공격 정보를 추출한다. 여기서, 프로세서 정보는 명령을 실행하는 프로세서의 레지스터 값, 스택 메모리 값 중 적어도 어느 하나를 포함할 수 있다.
그리고 공격 처리부(130)는 추출된 공격 정보를 기반을 공격 유무를 판단하고, 공격이 발생한 것으로 판단된 경우 공격을 처리한다.
이때, 공격 처리부(130)는 공격 정보가 감시 영역 정보에 상응하는지 여부를 판단하여, 공격 유무를 판단할 수 있다. 공격 처리부(130)는 공격이 발생한 것으로 판단된 경우, 데이터 읽기 명령의 실행을 중단하거나, 데이터 읽기 명령에 상응하는 메모리 값 이외의 값을 반환할 수 있다.
또한, 공격 처리부(130)는 공격 정보와 수신된 감시 영역 정보를 기반으로, 공격 정보가 비정상 범위의 값에 대한 데이터 쓰기 명령인지 여부를 판단하여 공격 유무를 판단할 수도 있다. 그리고 공격 처리부(130)는 공격이 발생한 것으로 판단된 경우, 데이터 쓰기 명령의 실행을 중단하거나, 데이터 쓰기 명령에 상응하는 값을 메모리에 반영하지 않을 수 있다.
마지막으로 처리 결과 출력부(140)는 공격 정보 및 공격의 처리 결과 중 적어도 어느 하나를 출력한다.
본 발명의 일실시예에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 장치(100)는 감시 대상 시스템의 내부에 탑재되거나, 감시 대상 시스템의 외부에 구비될 수 있다.
특히, 기밀성 및 무결성 감시 장치(100)가 감시 대상 시스템의 내부에 탑재되는 경우, 기밀성 및 무결성 감시 장치(100)는 감시 대상 시스템의 디버그 로직을 직접 제어하여 공격 정보를 추출할 수 있다. 반면, 기밀성 및 무결성 감시 장치(100)가 감시 대상 시스템의 외부에 위치하는 경우, 기밀성 및 무결성 감시 장치(100)는 감시 대상 시스템의 디버그 포트를 이용하여 디버그 로직을 제어할 수 있다.
이하에서는 도 2를 통하여, 본 발명의 일실시예에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 장치의 감시부 구성에 대하여 더욱 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 감시부의 구성을 나타낸 블록도이다.
도 2에 도시한 바와 같이, 감시 대상 시스템의 기밀성 및 무결성 감시 장치(100)의 감시부(120)는 디버그 로직 제어부(121) 및 디버그 이벤트 검출부(125)를 포함한다.
먼저, 디버그 로직 제어부(121)는 디버그 로직을 제어한다. 이때, 디버그 로직 제어부(121)는 디버그 로직이 감시 영역 정보에 상응하는 데이터 읽기 명령 및 데이터 쓰기 명령 중 적어도 어느 하나의 명령이 검출될 경우 디버그 이벤트를 발생하도록, 디버그 로직을 제어한다.
그리고 디버그 이벤트 검출부(125)는 디버그 로직으로부터 발생된 디버그 이벤트를 검출한다. 또한, 디버그 이벤트 검출부(125)는 검출된 디버그 이벤트에 상응하는 감시 영역 정보 및 프로세서 정보를 포함하는 공격 정보를 추출한다.
여기서, 프로세서 정보는 데이터 읽기 명령 및 데이터 쓰기 명령 중 적어도 어느 하나의 명령을 실행하는 프로세서의 레지스터 값, 스택 메모리 값 중 적어도 어느 하나를 포함할 수 있다.
이하에서는 도 3 내지 도 6을를 통하여 본 발명의 일실시예에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 장치에 의해 수행되는 감시 대상 시스템의 기밀성 및 무결성 감시 방법에 대하여 더욱 상세하게 설명한다.
도 3은 본 발명의 일실시예에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 방법을 설명하기 위한 순서도이다.
먼저, 기밀성 및 무결성 감시 장치(100)는 감시 영역 정보를 수신하고, 수신된 감시 영역 정보를 저장한다(S310).
기밀성 및 무결성 감시 장치(100)는 감시 대상 시스템의 감시 영역에 대한 감시 영역 정보를 수신한다. 여기서 감시 대상 시스템은 기밀성 및 무결성 중 적어도 어느 하나의 감시 대상이 되는 시스템을 의미하며, 감시 대상 시스템은 후술할 도 2를 통하여 더욱 상세하게 설명한다.
감시 영역은 감시 대상 시스템에 상응하는 커널, 애플리케이션 및 라이브러리 중 적어도 어느 하나에 대한 코드 영역 및 데이터 영역을 의미할 수 있다. 그리고 감시 영역 정보는 감시 영역에 상응하는 코드 종류, 절대 주소, 상대 주소, 기능 종류, 실행 종류, 데이터 종류 및 데이터 범위 중 적어도 어느 하나를 포함할 수 있다.
그리고 기밀성 및 무결성 감시 장치(100)는 기밀성 및 무결성을 감시하여, 공격 정보를 추출한다(S320).
기밀성 및 무결성 감시 장치(100)는 수신된 감시 영역 정보를 기반으로, 감시 대상 시스템에 대한 기밀성 및 무결성을 감시한다. 이때, 기밀성은 데이터 읽기 명령에 상응하는 기밀성을 의미하고, 무결성은 데이터 쓰기 명령에 상응하는 무결성을 의미할 수 있다.
기밀성 및 무결성 감시 장치(100)는 감시 대상 시스템의 기밀성 및 무결성을 감시하여, 공격 정보를 추출한다. 여기서 공격 정보는 검출된 명령에 상응하는 디버그 이벤트의 감시 영역 정보 및 프로세서 정보를 포함할 수 있다.
기밀성 및 무결성 감시 장치(100)는 S320 단계에서 데이터 읽기 명령이 검출된 경우 기밀성에 상응하는 공격 정보를 추출하고, 데이터 쓰기 명령이 검출된 경우 무결성에 상응하는 공격 정보를 추출할 수 있다. 이때, 기밀성 및 무결성 감시 장치(100)가 기밀성 및 무결성을 감시하고, 공격 정보를 추출하는 과정은 후술할 도 5 및 도 6을 통하여 더욱 상세하게 설명한다.
다음으로 기밀성 및 무결성 감시 장치(100)는 공격이 발생하였는지 여부를 판단한다(S330).
기밀성 및 무결성 감시 장치(100)는 추출된 공격 정보 및 감시 영역 정보를 기반으로 공격이 발생하였는지 여부를 판단한다. 이때, 기밀성 및 무결성 감시 장치(100)는 공격 정보가 감시 영역 정보에 상응하는지 여부를 판단하거나, 공격 정보가 비정상 범위의 값에 대한 데이터 쓰기 명령인지 여부를 판단하여 공격 유무를 판단할 수 있다.
공격이 발생한 것으로 판단된 경우, 기밀성 및 무결성 감시 장치(100)는 공격을 처리한다(S340).
공격이 발생한 경우, 기밀성 및 무결성 감시 장치(100)는 공격 정보에 상응하는 데이터 읽기 명령 및 데이터 쓰기 명령 중 적어도 어느 하나의 실행을 중단할 수 있다. 그리고 기밀성 및 무결성 감시 장치(100)는 데이터 읽기 명령에 상응하는 메모리 값 이외의 값을 반환하거나, 데이터 쓰기 명령에 상응하는 값을 메모리에 반영하지 않을 수 있다.
반면, 공격이 발생하지 않은 것으로 판단된 경우, 기밀성 및 무결성 감시 장치(100)는 도 3에 도시된 기밀성 및 무결성 감시 과정을 종료할 수 있다.
마지막으로, 기밀성 및 무결성 감시 장치(100)는 공격 정보 및 공격 처리 결과 중 적어도 어느 하나를 출력한다(S350).
기밀성 및 무결성 감시 장치(100)는 공격 정보 및 공격 처리 결과 중 적어도 어느 하나를 사용자에게 보고하고, 저장할 수 있다. 이때, 기밀성 및 무결성 감시 장치(100)가 공격 정보 및 공격 처리 결과를 출력하는 방법은 이에 한정되지 않는다.
도 4는 본 발명의 일실시예에 따른 감시 대상 시스템을 설명하기 위한 도면이다.
도 4에 도시한 바와 같이, 감시 대상 시스템(200)의 프로세서는 CPU(Central Processing Unit) 및 L1 캐시(cache)를 포함할 수 있다. 일반적으로 최근 출시된 프로세서들은 성능 향상을 위하여 L1 캐시를 포함한다. 그리고 프로세서의 외부에는 L2, L3 캐시가 존재하며, L1 캐시와 마찬가지로 시스템의 구성 방식에 따라 L2 캐시 및 L3 캐시는 존재하지 않을 수 있다.
프로세서는 단일코어 프로세서 및 멀티코어 프로세서로 구분될 수 있으며, 단일코어 프로세서는 1개의 프로세서 코어를 포함하고, 멀티코어 프로세서는 2개 이상의 프로세서 코어를 포함한다. 각 프로세서 코어는 CPU를 포함하고, L1 캐시를 포함할 수 있다. 특히, 본 발명의 일실시예에 따른 감시 대상 시스템은 멀티코어 및 멀티프로세서 시스템을 의미할 수 있다.
그리고 최근 출시되는 프로세서 칩은 시스템 온 칩(SoC, System On Chip) 형태로 생산되며, 시스템 온 칩은 프로세서, 온 칩 디버그 로직, L2 캐시, L3 캐시 및 주변 장치가 하나의 칩 안에 포함될 수 있다.
오늘날 대부분의 PC 및 모바일 프로세서 칩은 온 칩 디버그 로직을 내장하거나, 시스템에 탑재된 디버그 로직을 이용할 수 있도록 지원한다. JTAG (Joint Test Action Group)이 대표적인 온 칩 디버그 로직이며, ARM과 인텔 아키텍쳐의 프로세서 칩은 JTAG이나 자체적인 디버그 로직을 지원하고 있다.
디버그 로직에서 data-breakpoint(watchpoint)는 데이터 읽기 명령(data load, data read), 데이터 쓰기 명령(data store, data write) 실행 시 디버그 이벤트를 발생시킨다. 여기서 데이터 읽기 명령은 프로세서가 실행을 위해 메모리로부터 코드를 읽어오는 명령 읽기(instruction fetch)와는 다른 명령으로, 데이터로서 값을 읽기 위해 코드나 데이터 메모리 영역을 접근하는 명령이다.
디버그 이벤트는 소프트웨어 디버그 이벤트와 하드웨어 디버그 이벤트, 두 종류가 있다. 소프트웨어 디버그 이벤트는 운영체제 등 시스템 내부 소프트웨어가 이벤트를 처리한다. 하드웨어 디버그 이벤트는 이벤트를 발생시킨 프로세서의 하드웨어 상태가 디버깅 상태로 전환되므로, 해당 프로세서는 하드웨어 디버그 이벤트를 처리할 수 없다.
따라서 하드웨어 디버그 이벤트는 디버그 포트에 연결된 외부 하드웨어 장치가 처리하거나, 멀티 프로세서 또는 멀티 코어 시스템의 경우, 시스템 내의 다른 프로세서 또는 다른 코어가 처리해야 한다. 또한 data-breakpoint는 데이터 읽기 명령 또는 데이터 쓰기 명령에 대한 데이터 값이 특정 범위 또는 특정 범위 이외의 값이 되는 조건에서 디버그 이벤트가 발생하도록 설정할 수 있다.
이하에서는 도 5 및 도 6을 통하여, 기밀성 및 무결성 감시 장치가 각각 기밀성 및 무결성을 감시하는 방법에 대하여 더욱 상세하게 설명한다.
도 5는 본 발명의 일실시예에 따른 기밀성을 감시하는 방법을 설명하기 위한 순서도이다.
먼저, 기밀성 및 무결성 감시 장치(100)는 감시 영역 정보를 수신하여 저장한다(S510).
기밀성 및 무결성 감시 장치(100)는 사용자로부터 감시 영역에 대한 감시 영역 정보를 수신할 수 있다. 여기서, 감시 영역은 커널, 애플리케이션 및 라이브러리 중 적어도 어느 하나에 대한 코드 영역을 의미할 수 있다. 그리고 기밀성 및 무결성 감시 장치(100)는 하나 이상의 코드 영역을 동적으로 설정하여 감시할 수 있다.
그리고 감시 영역 정보는 감시 영역에 상응하는 코드 종류, 절대 주소, 상대 주소, 기능 종류를 포함할 수 있다. 여기서, 코드 종류는 해당 감시 영역이 커널, 애플리케이션 및 라이브러리 중 어느 것인지를 구분하는 정보이고, 절대 주소는 실행 중인 감시 대상 시스템에서 코드 영역의 주소 범위를 의미한다. 절대 주소는 주소 범위와 함께 주소가 가상 주소(virtual address)인지 물리적 주소(physical address)인지에 대한 정보를 포함할 수 있다.
또한, 상대 주소는 특정 주소를 기준으로 얼마만큼의 오프셋 위치에 감시할 코드 영역이 존재하는지를 의미하며, 감시 영역 정보에 절대 주소가 포함된 경우, 상대 주소는 생략될 수 있다.
그리고 기능 종류는 코드 영역의 기능에 대한 정보를 나타내는 추상적인 정보로, 감시 영역에 대한 절대 주소 및 상대 주소 등의 주소 정보가 존재하지 않을 경우, 실행 중인 감시 대상 시스템에서 해당 영역의 메모리 위치를 추출하기 위하여 사용자가 제공하는 정보를 의미할 수 있다. 기밀성 및 무결성 감시 장치(100)는 기능 종류를 이용하여, 메모리 중에서 특정 프로세서 명령 패턴이 감지될 경우, 해당 메모리 영역이 기능 종류에 상응하는 코드 영역인 것으로 판단할 수 있다.
다음으로 기밀성 및 무결성 감시 장치(100)는 디버그 로직에 감시 영역 정보를 설정하여 디버그 로직을 제어한다(S520).
디버그 로직이 코드 영역에 대한 프로세서의 데이터 읽기 명령(data load)을 검출하면 디버그 이벤트를 발생하도록, 기밀성 및 무결성 감시 장치(100)는 디버그 로직을 제어한다. 기밀성 및 무결성 감시 장치(100)는 디버그 로직에 감시 영역 정보를 설정함으로써, 프로세서가 감시 영역이 주소 값에 상응하는 데이터 읽기 명령을 실행하는 경우 디버그 로직이 프로세서 명령을 중단하고, 데이터 읽기 명령에 상응하는 디버그 이벤트를 발생하도록 할 수 있다.
또한, 기밀성 및 무결성 감시 장치(100)는 디버그 이벤트를 검출한다(S530).
디버그 로직은 감시 영역 정보에 상응하는 데이터 읽기 명령이 검출된 경우 디버그 이벤트를 발생한다. 그리고 기밀성 및 무결성 감시 장치(100)는 디버그 로직이 발생한 디버그 이벤트를 검출한다.
다음으로 기밀성 및 무결성 감시 장치(100)는 공격 정보를 추출한다(S540).
기밀성 및 무결성 감시 장치(100)는 발생된 디버그 이벤트로부터 이벤트 정보, 감시 영역 정보 및 프로세서 정보를 포함하는 공격 정보를 추출한다. 여기서, 이벤트 정보는 디버그 이벤트를 발생시킨 프로세서 명령의 주소, 접근하고자 한 데이터의 주소, 명령의 종류를 포함할 수 있다. 또한, 프로세서 정보는 레지스터 값, 스택 메모리 값을 포함할 수 있으며, 감시 영역 정보는 감시 영역에 상응하는 주소 정보를 포함할 수 있다.
다음으로 기밀성 및 무결성 감시 장치(100)는 공격이 발생하였는지 여부를 판단하고(S550), 공격이 발생한 것으로 판단된 경우 데이터 읽기 명령의 실행을 중단한다(S560).
기밀성 및 무결성 감시 장치(100)는 S540 단계에서 추출한 공격 정보와 사용자로부터 수신하여 기 저장된 감시 영역 정보를 비교하여 공격이 발생하였는지 여부를 판단할 수 있다.
기밀성 및 무결성 감시 장치(100)는 공격 정보에 상응하는 데이터 주소와 기저장된 감시 영역 정보를 비교하여, 공격 정보에 상응하는 디버그 이벤트가 감시 영역의 주소 범위 내에 포함되는지 여부를 판단한다. 그리고 기밀성 및 무결성 감시 장치(100)는 해당 감시 영역의 주소 범위 내에 상응하는 명령의 종류와 공격 정보를 비교하여, 해당 감시 영역에서 감시 대상이 되는 명령이 실행되는지 여부를 판단한다.
예를 들어, 디버그 이벤트가 감시 영역 정보에 상응하는 주소 범위에서 발생하였고, 감시 영역의 주소 범위에 상응하는 명령의 종류가 데이터 읽기 명령이고, 추출된 공격 정보에 상응하는 명령의 종류가 데이터 읽기 명령인 경우, 기밀성 및 무결성 감시 장치(100)는 공격이 발생한 것으로 판단한다.
그리고 공격이 발생된 것으로 판단된 경우, 기밀성 및 무결성 감시 장치(100)는 데이터 읽기 명령의 실행을 중단하거나, 데이터 읽기 명령에 상응하는 메모리 값이 아닌 값을 반환할 수 있다.
또한, 기밀성 및 무결성 감시 장치(100)는 공격 정보 및 공격의 처리 결과를 저장하고, 사용자에게 전달할 수 있다. 이때, 사용자에게 공격 정보 및 공격의 처리 결과를 전달하는 방법은 출력, 전송 등 다양한 방법으로 구현될 수 있으며, 이에 한정되지 않는다.
반면, 공격이 발생하지 않은 것으로 판단된 경우, 기밀성 및 무결성 감시 장치(100)는 도 5의 기밀성 감시 과정을 종료할 수 있다.
전통적으로 악성 코드가 커널이나 애플리케이션을 공격하는 방법으로 Overflow 공격이 많이 사용되었다. Overflow 공격을 방어하기 위해서는 데이터 영역에서 코드가 실행되지 못하도록 하는 DEP(Data Execution Prevention) 기술이 적용되었다. DEP를 통해 보호된 메모리 영역에서는 공격자가 삽입한 코드의 실행이 불가능해졌다.
악성코드 제작자들은 DEP를 우회하여 공격하기 위하여, ROP(Return Oriented Programming) 공격을 개발하였다. ROP 공격은 이미 로드되어 실행 가능한 메모리 영역에 존재하는 코드조각을 수집하여, 공격자가 원하는 행위를 만들어내는 공격방법이다. ROP를 방어하기 위해서 ASLR(Address space layout randomization) 기법을 도입하였으나, 최근의 악성코드는 원하는 코드조각을 미리 찾아 놓지 않고, 악성코드 실행 중에 동적으로 찾는 방법을 사용하고 있다.
원하는 코드조각을 실행 중 동적으로 찾기 위해서 이미 로드된 커널, 라이브러리, 어플리케이션 코드를 이용하는데, 이를 위해서 악성코드는 코드영역을 데이터로 읽는 작업이 필수적이다.
따라서, 본 발명의 실시예에 따른 기밀성 및 무결성 감시 장치(100)는 온 칩 디버그 로직을 이용하여 커널, 라이브러리, 어플리케이션의 코드 영역에 대한 읽기 명령을 감시하고 실행을 방지하여 코드 영역에 대한 기밀성을 보장할 수 있다. 코드 영역에 대한 기밀성은 ROP 공격을 방어하는데 사용할 수 있다.
기존의 페이지 테이블을 이용한 접근 제어는 읽기, 쓰기, 실행, 세 가지 행위에 대한 제어를 지원하고 있지만, 코드 영역에 대한 읽기가, 프로세서가 실행할 명령을 읽기 위한 인스트럭션 패치(instruction fetch)인지, 데이터로 메모리를 읽기 위한 읽기 명령인지 구분할 수 없다. 따라서, 프로세서가 실행되기 위해서는 코드 영역은 무조건 읽기 행위를 허용해 왔으며, 따라서 코드영역에 대한 기밀성은 보장할 수 없었다.
그러나 본 발명의 실시예에 따른 기밀성 및 무결성 감시 장치(100)는 디버그 로직이 프로세서가 실행하려는 명령이 데이터 읽기 명령, 쓰기 명령인지 프로세서 실행을 위한 인스트럭션 패치인지 구분할 수 있다는 점을 이용한다. 그리고 기밀성 및 무결성 감시 장치(100)는 디버그 로직을 이용해서 코드 영역에 대해 인스트럭션 패치를 위한 읽기는 허용하는 반면, 데이터 읽기 행위는 감시 대상으로 설정하여, 코드 영역에 대한 무결성일 감시 및 보장할 수 있다.
도 6은 본 발명의 일실시예에 따른 무결성을 감시하는 방법을 설명하기 위한 순서도이다.
먼저, 기밀성 및 무결성 감시 장치(100)는 감시 영역에 대한 감시 영역 정보를 수신하여 저장한다(S610).
여기서, 감시 영역은 커널, 애플리케이션 및 라이브러리 중 적어도 어느 하나에 대한 코드 영역 및 데이터 영역을 포함할 수 있다. 그리고 기밀성 및 무결성 감시 장치(100)는 하나 이상의 코드 영역 및 데이터 영역을 동적으로 설정하여 감시할 수 있다.
그리고 기밀성 및 무결성 감시 장치(100)는 사용자로부터 감시 영역 정보를 수신할 수 있으며, 감시 영역 정보는 감시 영역에 상응하는 실행 종류, 데이터 종류, 절대 주소, 상대 주소, 기능 종류 및 데이터 범위 중 적어도 어느 하나를 포함할 수 있다.
여기서, 실행 종류는 해당 감시 영역이 커널, 애플리케이션 및 라이브러리 중 어느 것인지를 구분하는 정보이고, 데이터 종류는 해당 감시 영역을 코드, 불변 데이터 및 가변 데이터로 구분하는 정보를 의미한다. 그리고 절대 주소는 실행 중인 감시 대상 시스템에서 감시 영역의 주소 범위를 의미하며, 주소 범위와 함께 주소가 가상 주소(virtual address)인지 물리적 주소(physical address)인지에 대한 정보를 포함할 수 있다.
또한, 상대 주소는 특정 주소를 기준으로 얼마만큼의 오프셋 위치에 감시 영역이 존재하는지를 의미하며, 감시 영역 정보에 절대 주소가 포함된 경우, 상대 주소는 생략될 수 있다.
그리고 기능 종류는 감시 영역의 기능에 대한 정보를 나타내는 추상적인 정보로, 감시 영역에 대한 절대 주소 및 상대 주소 등의 주소 정보가 존재하지 않을 경우, 실행 중인 감시 대상 시스템에서 해당 영역의 메모리 위치를 추출하기 위하여 사용자가 제공하는 정보를 의미할 수 있다.
기밀성 및 무결성 감시 장치(100)는 기능 종류를 이용하여, 감시 영역이 코드 영역이고, 메모리 중에 특정 프로세서 명령 패턴이 나타나는 경우, 해당 메모리 영역이 기능 종류에 상응하는 감시 영역인 것으로 판단할 수 있다. 또한, 기밀성 및 무결성 감시 장치(100)는 감시 영역이 데이터 영역이고, 특정 데이터 패턴이 나타나는 경우, 해당 메모리 영역이 기능 종류에 상응하는 감시 영역인 것으로 판단할 수 있다.
또한, 데이터 범위는 해당 영역에 상응하는 데이터의 정상 값 범위를 의미한다. 이때, 정상 값 범위가 아닌 데이터에 상응하는 데이터 쓰기 명령은, 해당 영역에 대한 쓰기 시도 자체가 비정상으로 간주될 수 있다.
다음으로 기밀성 및 무결성 감시 장치(100)는 디버그 로직에 감시 영역 정보를 설정하여 디버그 로직을 제어한다(S620).
기밀성 및 무결성 감시 장치(100)는 디버그 로직에 감시 영역 정보를 설정함으로써, 디버그 로직이 감시 영역에 대한 데이터 쓰기 명령이 감지될 경우 디버그 이벤트를 발생하도록 한다. 기밀성 및 무결성 감시 장치(100)에 의해 감시 영역 정보가 설정된 디버그 로직은, 감시 영역에 대한 데이터 쓰기 명령이 프로세서에서 실행되는 경우, 명령의 실행을 중단하고, 디버그 이벤트를 발생한다.
기밀성 및 무결성 감시 장치(100)는 디버그 로직이 감시 영역의 메모리 주소에 상응하는 데이터 쓰기 명령에 대하여 디버그 이벤트를 발생시키도록, 디버그 로직을 제어할 수 있다.
또한, 기밀성 및 무결성 감시 장치(100)는 디버그 이벤트를 검출하고(S630), 디버그 이벤트로부터 공격 정보를 추출한다(S640).
기밀성 및 무결성 감시 장치(100)는 디버그 이벤트가 발생한 경우, 디버그 이벤트로부터 감시 영역 정보 및 프로세서 정보를 포함하는 공격 정보를 추출한다. 여기서, 감시 영역 정보는 감시 영역의 절대 주소 및 상대 주소 중 적어도 어느 하나를 포함하고, 프로세서 정보는 레지스터 값, 스택 메모리 값 중 적어도 어느 하나를 포함할 수 있다.
기밀성 및 무결성 감시 장치(100)가 공격 정보를 기반으로 공격이 발생하였는지 여부를 판단한 결과(S650), 공격이 발생한 것으로 판단된 경우 데이터 쓰기 명령의 실행을 중단한다(S660).
기밀성 및 무결성 감시 장치(100)는 디버그 이벤트에서 추출한 공격 정보와 S610 단계에서 수신된 감시 영역 정보를 비교하여, 데이터 쓰기 명령이 정상 값 범위를 벗어나는 값인 비정상 범위의 값에 대한 데이터 쓰기 명령인 경우, 공격이 발생한 것으로 판단한다.
공격 정보가 기 저장된 감시 영역 정보에 상응하는 주소 범위와 매핑되고, 공격 정보에 상응하는 명령의 종류가 기 저장된 감시 영역 정보에 상응하는 명령의 종류와 일치하는 경우, 기밀성 및 무결성 감시 장치(100)는 공격이 발생한 것으로 판단할 수 있다.
그리고 공격이 발생한 것으로 판단된 경우, 기밀성 및 무결성 감시 장치(100)는 데이터 쓰기 명령의 실행을 중단하거나, 데이터 쓰기 명령에 상응하는 메모리에 데이터 쓰기 명령에 상응하는 데이터 값을 적용하지 않는다.
또한, 기밀성 및 무결성 감시 장치(100)는 공격 정보 및 공격의 처리 결과를 저장하고, 사용자에게 전달할 수 있다. 이때, 사용자에게 공격 정보 및 공격의 처리 결과를 전달하는 방법은 출력, 전송 등 다양한 방법으로 구현될 수 있으며, 이에 한정되지 않는다.
반면, 공격이 발생하지 않은 것으로 판단된 경우 데이터 쓰기 명령을 수행하거나, 도 6의 무결성 감시 과정의 수행을 종료할 수 있다.
윈도우(Windows), 리눅스(Linux) 및 안드로이드(Android) 시스템에서, 악성코드는 자신이 원하는 공격을 하기 위하여 공유 라이브러리 인젝션(shared library injection), DLL 인젝션(DLL injection) 또는 code injection 기법을 통하여, 운영체제, 라이브러리 및 어플리케이션의 코드 영역을 자신이 원하는 실행 코드로 덮어써서 변조하는 방법을 사용하는 경우가 많다.
따라서 시스템의 부팅과정이나 실행 중에 코드영역에 대한 쓰기 시도를 감시 및 방지할 필요가 있다. 본 발명의 일실시예에 따른 기밀성 및 무결성 감시 장치(100)는 코드영역에 대해서 디버그 로직을 제어하고, 디버그 이벤트를 검출하여 쓰기 명령를 탐지한다. 그리고 기밀성 및 무결성 감시 장치(100)는 대상 메모리 영역이 비정상적인 값으로 변경되지 않도록 방지한다.
코드 영역과 마찬가지로 커널이 사용하는 중요 데이터 영역의 값을 변조하는 공격도 지속적으로 발생하였다. 대표적인 공격이 인터럽트 벡터 테이블을 변조하거나, 시스템콜 테이블을 변조하여, 공격자가 생성한 코드 영역으로 프로세서의 실행 주소를 변경하는 방법이다.
본 발명의 일실시예에 따른 기밀성 및 무결성 감시 장치(100)는 인터럽트 벡터 테이블과 시스템 콜 테이블을 포함하는 주요 데이터 영역에 대한 쓰기 명령을 검출하고, 비정상 범위 데이터 값으로 변조되는 행위를 방지한다. 기밀성 및 무결성 감시 장치(100)는 디버그 로직을 제어하고, 디버그 이벤트를 검출하여, 데이터 쓰기 명령을 탐지 및 방지하여, 코드, 불변 데이터 및 가변 데이터 영역에 대한 무결성을 감시하고 보장할 수 있다.
설명의 편의상 도 5 및 도 6을 통하여, 기밀성 및 무결성 감시 장치(100)가 기밀성 및 무결성을 감시하는 방법을 각각 나누어 설명하였다. 그러나 이에 한정하지 않고, 기밀성 및 무결성 감시 장치(100)는 기밀성 및 무결성을 동시에 감시할 수 있다.
이때, 기밀성 및 무결성 감시 장치(100)는 공격 정보를 추출하는 S540 단계 및 S640 단계에서 명령의 종류를 포함하는 공격 정보를 추출하고, 추출된 명령의 종류와 기 저장된 감시 영역 정보에 상응하는 명령의 종류를 비교하여, 해당 디버그 이벤트가 공격에 해당하는지 여부를 판단할 수 있다.
이하에서는 도 7 및 도 8을 통하여 기밀성 및 무결성 감시 장치가 감시 대상 시스템의 내부 또는 외부에 구비되는 형태에 대하여 더욱 상세하게 설명한다.
기밀성 및 무결성 감시 장치(100)는 감시 대상 시스템의 내부에 탑재되어 실행되는 소프트웨어 형태로 구현되거나, 감시 대상 시스템의 외부에서 감시 대상 시스템에 독립적으로 실행되는 하드웨어 형태로 구현될 수 있다.
도 7은 본 발명의 일실시예에 따른 기밀성 및 무결성 감시 장치가 감시 대상 시스템의 내부에 탑재되는 형태를 설명하기 위한 도면이다.
도 7에 도시한 바와 같이, 기밀성 및 무결성 감시 장치(100)는 소프트웨어 형태로 구현되어, 감시 대상 시스템의 내부에 탑재될 수 있다.
그리고 기밀성 및 무결성 감시 장치(100)는 감시 대상 시스템의 디버그 로직과 직접 연결되어 디버그 로직을 제어하고, 디버그 이벤트를 검출 및 분석할 수 있다. 또한, 기밀성 및 무결성 감시 장치(100)는 시스템 버스를 이용하여 메모리에 대한 접근이 가능하며, 시스템 버스를 통하여 디버그 로직을 제어할 수 있다.
특히, 기밀성 및 무결성 감시 장치(100)가 감시 대상 시스템의 내부에 탑재되는 경우, 기밀성 및 무결성 감시 장치(100)는 공격자가 디버깅 로직에 접근하거나, 기밀성 및 무결성 감시 장치(100)가 사용하고 있는 메모리 영역을 오염시키기 위하여 실행하는 프로세서 행위를 미리 탐지하고, 악성 명령이 실행되지 못하도록 할 수 있다.
이때, 기밀성 및 무결성 감시 장치(100)는 프로세서가 제공하는 특권 모드(privileged processor mode)를 이용하여 기밀성 및 무결성 감시 장치가 사용하는 코드 영역 및 데이터 영역에 대하여, 커널 레벨이나 유저 레벨의 공격자가 접근하지 못하도록 할 수 있다.
그리고 기밀성 및 무결성 감시 장치(100)는 프로세서 특권 모드를 이용하여, 공격자가 디버그 로직에 접근하지 못하도록 제어할 수 있다. 여기서 프로세서 특권 모드는 가상화를 위한 하이퍼바이저(hypervisor), ARM의 TrustZone 등, 상용 프로세서가 제공하는 특권모드를 포함할 수 있다.
이와 같이, 기밀성 및 무결성 감시 장치(100)가 소프트웨어 형태로 구현될 경우 별도의 하드웨어 장치를 장착하지 않아도 된다.
도 8은 본 발명의 일실시예에 따른 기밀성 및 무결성 감시 장치가 감시 대상 시스템의 외부에 구비되는 형태를 설명하기 위한 도면이다.
도 8과 같이, 기밀성 및 무결성 감시 장치(100)는 독립적인 하드웨어 장치로 구성되어, 감시 대상 시스템의 외부에 설치될 수 있다. 기밀성 및 무결성 감시 장치(100)가 도 8과 같이 독립적인 하드웨어로 구성되는 경우, 감시 대상 시스템의 무결성에 영향을 받지 않는다.
그리고 기밀성 및 무결성 감시 장치(100)는 감시 대상 시스템과 디버그 포트를 통하여 연결될 수 있다. 기밀성 및 무결성 감시 장치(100)에 내장된 소프트웨어는 디버그 포트를 통하여 디버그 로직을 제어하고, 디버그 이벤트를 검출할 수 있다. 또한, 기밀성 및 무결성 감시 장치(100)는 디버그 로직을 통하여 감시 대상 시스템의 메모리에 대한 접근을 수행할 수 있다.
도 8에 도시된 기밀성 및 무결성 감시 장치(100)는, 소프트웨어로 구현된 도 7의 기밀성 및 무결성 감시 장치(100)와 목적, 기능 및 구성이 지엽적인 부분을 제외하고는 동일할 수 있다.
이하에서는 도 9를 통하여 종래 기술에 따른 감시 장치의 한계와, 본 발명의 효과에 대하여 더욱 상세하게 설명한다.
도 9는 종래 기술에 따른 시스템 버스 기반 감시 장치의 한계점을 설명하기 위한 도면이다.
Copilot등의 스냅샷 모니터와 Vigilare, KI-MON 등의 시스템 버스 스누핑 기반 모니터는 시스템 버스 기반 감시 장치로, 시스템 버스에 나타나는 쓰기 시도를 검출한다.
도 9에 도시한 바와 같이, 종래 기술에 따른 시스템 버스 기반 감시 장치들은 CPU와 캐시(cache) 사이에서 읽기 및 쓰기 시도를 통한 공격이 발생한 경우, 공격을 검출할 수 없다.
프로세서는 시스템 버스를 통하여 메모리에 존재하는 코드 및 데이터에 접근할 수 있다. 그러나, 해당 메모리의 데이터가 캐시에 존재하는 경우, 캐시에만 접근하여 읽기 명령 및 쓰기 명령이 실행될 수 있으므로, 프로세서가 시스템 버스에 접근할 필요가 없다. 캐시에 저장된 데이터는 최종적으로 삭제되거나, 메모리에 반영되며, 메모리에 반영되는 경우 시스템 버스를 통하여 읽기 및 쓰기가 실행된다.
그러나, 시스템 버스에 대한 접근이 이루어지는 시점에서는 악성코드가 이미 공격을 마치고, 시스템상에서 사라진 후 일 가능성이 높다. 또한, 캐시 접근이 여러 번 수행되더라도 메모리에 반영되는 시점에는 가장 마지막에 적용된 캐시 값이 시스템 버스에 나타난다. 따라서, 시스템 버스를 통하여 버스 트래픽을 감지하더라도, 악성코드가 수행한 중간 행위는 검출할 수 없다. 이러한 문제점들로 인하여, 종래의 Vigilare나 KI-MON을 포함한 시스템 버스 트래픽을 검출하는 기술은 캐시 기반의 공격을 검출할 수 없다.
오늘날 프로세서와 운영체제는 캐시 사용을 극대화하는 방법을 개발 및 도입하고 있고 있으며, 캐시 사용률이 증가하고 있다. 그러나 종래 기술에 따른 시스템 버스 기반 감시 장치는 시스템 버스를 통하여 CPU와 캐시 사이의 공격을 검출할 수 없다.
반면, 본 발명의 일실시예에 따른 기밀성 및 무결성 감시 장치(100)는 감시 대상 시스템에 탑재된 온 칩 디버그 로직을 제어하고, 디버그 이벤트를 분석하여 감시 영역에 대한 데이터 읽기 명령 및 데이터 쓰기 명령을 검출한다. 특히, 기밀성 및 무결성 감시 장치(100)는 코드 영역에 대한 데이터 읽기 명령을 검출하여 코드에 대한 기밀성을 감시하고, 코드 영역 및 데이터 영역에 대한 데이터 쓰기 명령을 검출하여 종래의 시스템 버스 방식으로는 분석하기 힘든 캐시를 이용한 공격을 검출할 수 있다.
감시 대상 시스템에 탑재된 온 칩 디버그 로직은 프로세서가 실행하는 명령어 단위의 감시가 가능하도록 설계되었다. 그리고 본 발명의 일실시예에 따른 기밀성 및 무결성 감시 장치(100)는 디버그 로직에서 생성되는 디버그 이벤트를 검출하고 분석함으로써, 프로세서가 명령을 실행할 때 인스트럭션 패치, 데이터 읽기 명령 및 데이터 쓰기 명령을 검출하는, 디버그 로직 기반의 감시 방법이다. 따라서, 읽기, 쓰기 트래픽이 시스템 버스에 나타날 때만 감시가 가능하던 종래의 시스템 버스 기반 감시 기술에 비하여 기밀성 및 무결성 감시 성능이 우수하다.
도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
도 10을 참조하면, 본 발명의 실시예는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1000)에서 구현될 수 있다. 도 10에 도시된 바와 같이, 컴퓨터 시스템(1000)은 버스(1020)를 통하여 서로 통신하는 하나 이상의 프로세서(1010), 메모리(1030), 사용자 입력 장치(1040), 사용자 출력 장치(1050) 및 스토리지(1060)를 포함할 수 있다. 또한, 컴퓨터 시스템(1000)은 네트워크(1080)에 연결되는 네트워크 인터페이스(1070)를 더 포함할 수 있다. 프로세서(1010)는 중앙 처리 장치 또는 메모리(1030)나 스토리지(1060)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1030) 및 스토리지(1060)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1031)이나 RAM(1032)을 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 태양에 따른 방법을 수행할 수 있다.
이상에서와 같이 본 발명에 따른 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 감시 대상 시스템의 기밀성 및 무결성 감시 장치
110: 감시 영역 정보 수신부
120: 감시부
121: 디버그 로직 제어부
125: 디버그 이벤트 검출부
130: 공격 처리부
140: 처리 결과 출력부
200: 감시 대상
1000: 컴퓨터 시스템
1010: 프로세서
1020: 버스
1030: 메모리
1031: 롬
1032: 램
1040: 사용자 입력 장치
1050: 사용자 출력 장치
1060: 스토리지
1070: 네트워크 인터페이스
1080: 네트워크

Claims (20)

  1. 감시 대상 시스템의 감시 영역에 대한 감시 영역 정보를 수신하여 저장하는 감시 영역 정보 수신부,
    상기 감시 영역 정보에 상응하는 명령이 검출될 경우 상기 감시 대상 시스템의 디버그 로직이 디버그 이벤트를 발생하도록 상기 디버그 로직을 제어하고, 발생된 상기 디버그 이벤트를 검출하여 상기 디버그 이벤트에 상응하는 공격 정보를 추출하는 감시부,
    추출된 상기 공격 정보를 기반으로 공격 유무를 판단하고, 공격이 발생한 것으로 판단된 경우 상기 명령의 실행을 방지하여 상기 감시 대상 시스템의 기밀성 및 무결성을 보장하도록 상기 공격을 처리하는 공격 처리부를 포함하고,
    상기 감시부는,
    상기 감시 영역 정보에 상응하는 데이터 읽기 명령 및 데이터 쓰기 명령 중 적어도 어느 하나의 상기 명령이 검출될 경우, 상기 감시 대상 시스템의 디버그 로직이 디버그 이벤트를 발생하도록 상기 디버그 로직을 제어하는 디버그 로직 제어부, 그리고
    발생된 상기 디버그 이벤트를 검출하고, 검출된 상기 디버그 이벤트에 상응하는 감시 영역 정보 및 프로세서 정보를 포함하는 상기 공격 정보를 추출하는 디버그 이벤트 검출부를 포함하며,
    상기 공격 처리부가 검출하는 상기 공격은,
    상기 감시 대상 시스템의 중앙처리장치(CPU)와 캐시 사이에서의 읽기 시도 및 쓰기 시도 중 적어도 어느 하나를 통한 공격을 포함하는 것을 특징으로 하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  2. 제1항에 있어서,
    상기 감시 영역은,
    커널, 애플리케이션 및 라이브러리 중 적어도 어느 하나에 대한 코드 영역 및 데이터 영역 중 적어도 어느 하나를 포함하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  3. 제2항에 있어서,
    상기 감시 영역 정보는,
    상기 감시 영역에 상응하는 코드 종류, 절대 주소, 상대 주소, 기능 종류, 실행 종류, 데이터 종류 및 데이터 범위 중 적어도 어느 하나를 포함하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  4. 제3항에 있어서,
    상기 감시부는,
    상기 감시 영역 정보에 상기 절대 주소가 포함되지 않은 경우, 상기 상대 주소 및 기능 종류 중 적어도 어느 하나를 기반으로 상기 절대 주소를 추출하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  5. 삭제
  6. 제1항에 있어서,
    상기 프로세서 정보는,
    상기 명령을 실행하는 프로세서의 레지스터 값, 스택 메모리 값 중 적어도 어느 하나를 포함하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  7. 제1항에 있어서,
    상기 공격 처리부는,
    상기 공격 정보가 상기 감시 영역 정보에 상응하는지 여부를 판단하여, 상기 공격 유무를 판단하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  8. 제7항에 있어서,
    상기 공격 처리부는,
    상기 공격이 발생한 것으로 판단된 경우, 상기 데이터 읽기 명령의 실행을 중단하거나, 상기 데이터 읽기 명령에 상응하는 메모리 값 이외의 값을 반환하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  9. 삭제
  10. 제1항에 있어서,
    상기 공격 처리부는,
    상기 공격 정보와 수신된 상기 감시 영역 정보를 기반으로, 상기 공격 정보가 비정상 범위의 값에 대한 데이터 쓰기 명령인지 여부를 판단하여, 상기 공격 유무를 판단하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  11. 제10항에 있어서,
    상기 공격 처리부는,
    상기 공격이 발생한 것으로 판단된 경우, 상기 데이터 쓰기 명령의 실행을 중단하거나, 상기 데이터 쓰기 명령에 상응하는 값을 메모리에 반영하지 않는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  12. 제1항에 있어서,
    상기 공격 정보 및 상기 공격의 처리 결과 중 적어도 어느 하나를 출력하는 처리 결과 출력부를 더 포함하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  13. 제1항에 있어서,
    상기 기밀성 및 무결성 감시 장치는,
    상기 감시 대상 시스템의 내부에 탑재되고,
    상기 감시부는,
    상기 감시 대상 시스템의 상기 디버그 로직을 직접 제어하여 상기 공격 정보를 추출하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  14. 제1항에 있어서,
    상기 감시부는,
    상기 감시 대상 시스템의 디버그 포트를 이용하여, 상기 감시 대상 시스템의 외부에서 상기 감시 대상 시스템의 상기 디버그 로직을 제어하고, 상기 디버그 로직을 제어하여 상기 공격 정보를 추출하는 디버그 로직 기반의 기밀성 및 무결성 감시 장치.
  15. 디버그 로직 기반의 기밀성 및 무결성 감시 장치에 의해 수행되는 감시 대상 시스템의 기밀성 및 무결성 감시 방법에 있어서,
    상기 감시 대상 시스템의 감시 영역에 대한 감시 영역 정보를 수신하여 저장하는 단계,
    상기 감시 영역 정보에 상응하는 데이터 읽기 명령 및 데이터 쓰기 명령 중 적어도 어느 하나의 상기 명령이 검출될 경우, 상기 감시 대상 시스템의 디버그 로직이 디버그 이벤트를 발생하도록 상기 디버그 로직을 제어하는 단계,
    발생된 상기 디버그 이벤트를 검출하고, 검출된 상기 디버그 이벤트에 상응하는 감시 영역 정보 및 프로세서 정보를 포함하는 공격 정보를 추출하는 단계,
    추출된 상기 공격 정보를 기반으로 공격 유무를 판단하는 단계, 그리고
    공격이 발생한 것으로 판단된 경우, 상기 명령의 실행을 방지하여 상기 감시 대상 시스템의 기밀성 및 무결성을 보장하도록 상기 공격을 처리하는 단계
    를 포함하고,
    상기 공격 유무를 판단하는 단계는,
    상기 감시 대상 시스템의 중앙처리장치(CPU)와 캐시 사이에서의 읽기 시도 및 쓰기 시도 중 적어도 어느 하나를 통한 공격의 발생 유무를 판단하는 것을 특징으로 하는 디버그 로직 기반의 기밀성 및 무결성 감시 방법.
  16. 삭제
  17. 제15항에 있어서,
    상기 공격 유무를 판단하는 단계는,
    상기 공격 정보가 상기 감시 영역 정보에 상응하는지 여부를 판단하여, 상기 공격 유무를 판단하고,
    상기 공격을 처리하는 단계는,
    상기 공격이 발생한 것으로 판단된 경우, 상기 데이터 읽기 명령의 실행을 중단하거나, 상기 데이터 읽기 명령에 상응하는 메모리 값 이외의 값을 반환하는 디버그 로직 기반의 기밀성 및 무결성 감시 방법.
  18. 삭제
  19. 제15항에 있어서,
    상기 공격 유무를 판단하는 단계는,
    상기 공격 정보와 수신된 상기 감시 영역 정보를 기반으로, 상기 공격 정보가 비정상 범위의 값에 대한 데이터 쓰기 명령인지 여부를 판단하여, 상기 공격 유무를 판단하고,
    상기 공격을 처리하는 단계는,
    상기 공격이 발생한 것으로 판단된 경우, 상기 데이터 쓰기 명령의 실행을 중단하거나, 상기 데이터 쓰기 명령에 상응하는 값을 메모리에 반영하지 않는 디버그 로직 기반의 기밀성 및 무결성 감시 방법.
  20. 제15항에 있어서,
    상기 디버그 로직을 제어하는 단계는,
    상기 감시 대상 시스템의 내부에 탑재되어 상기 감시 대상 시스템의 상기 디버그 로직을 직접 제어하거나, 상기 감시 대상 시스템의 외부에서 디버그 포트를 이용하여 상기 디버그 로직을 제어하는 디버그 로직 기반의 기밀성 및 무결성 감시 방법.
KR1020160101904A 2016-08-10 2016-08-10 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법 KR101816866B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160101904A KR101816866B1 (ko) 2016-08-10 2016-08-10 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법
US15/404,579 US10467410B2 (en) 2016-08-10 2017-01-12 Apparatus and method for monitoring confidentiality and integrity of target system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160101904A KR101816866B1 (ko) 2016-08-10 2016-08-10 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101816866B1 true KR101816866B1 (ko) 2018-01-10

Family

ID=60998392

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160101904A KR101816866B1 (ko) 2016-08-10 2016-08-10 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법

Country Status (2)

Country Link
US (1) US10467410B2 (ko)
KR (1) KR101816866B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200116311A (ko) * 2019-04-01 2020-10-12 서울대학교산학협력단 커널 무결성 검증 장치 및 그 방법
WO2022154195A1 (ko) * 2021-01-14 2022-07-21 충남대학교산학협력단 모바일 신뢰 실행 환경의 보안성 강화를 위한 장치
KR20230011534A (ko) * 2021-07-13 2023-01-25 한국전자통신연구원 가상 머신 보안 위협 방지 장치 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10708011B2 (en) 2018-03-28 2020-07-07 SK Hynix Inc. Eye opening hardware offloading
CN112955887A (zh) * 2018-11-07 2021-06-11 C2A安全有限公司 面向返回的编程防护

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101358815B1 (ko) * 2013-06-04 2014-02-11 서울대학교산학협력단 스누프 기반의 커널 무결성 감시 장치 및 그 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818729B1 (en) * 2003-09-15 2010-10-19 Thomas Plum Automated safe secure techniques for eliminating undefined behavior in computer software
US20060277435A1 (en) 2005-06-07 2006-12-07 Pedersen Frode M Mechanism for storing and extracting trace information using internal memory in microcontrollers
US20160357958A1 (en) * 2015-06-08 2016-12-08 Michael Guidry Computer System Security

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101358815B1 (ko) * 2013-06-04 2014-02-11 서울대학교산학협력단 스누프 기반의 커널 무결성 감시 장치 및 그 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200116311A (ko) * 2019-04-01 2020-10-12 서울대학교산학협력단 커널 무결성 검증 장치 및 그 방법
KR102183649B1 (ko) * 2019-04-01 2020-11-26 서울대학교산학협력단 커널 무결성 검증 장치 및 그 방법
WO2022154195A1 (ko) * 2021-01-14 2022-07-21 충남대학교산학협력단 모바일 신뢰 실행 환경의 보안성 강화를 위한 장치
KR20230011534A (ko) * 2021-07-13 2023-01-25 한국전자통신연구원 가상 머신 보안 위협 방지 장치 및 방법
KR102526681B1 (ko) 2021-07-13 2023-05-02 한국전자통신연구원 가상 머신 보안 위협 방지 장치 및 방법
US11893107B2 (en) 2021-07-13 2024-02-06 Electronics And Telecommunications Research Institute Apparatus and method for preventing security threat to virtual machine

Also Published As

Publication number Publication date
US10467410B2 (en) 2019-11-05
US20180046804A1 (en) 2018-02-15

Similar Documents

Publication Publication Date Title
US10810309B2 (en) Method and system for detecting kernel corruption exploits
US9158941B2 (en) Managing access to content in a data processing apparatus
KR101816866B1 (ko) 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법
US8578483B2 (en) Systems and methods for preventing unauthorized modification of an operating system
US7496966B1 (en) Method and apparatus for controlling operation of a secure execution mode-capable processor in system management mode
US8341369B2 (en) Providing protected access to critical memory regions
Stüttgen et al. Anti-forensic resilient memory acquisition
EP2691851B1 (en) Method and apparatus for transparently instrumenting an application program
US20120216281A1 (en) Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
KR102189296B1 (ko) 가상 머신 보안 어플리케이션을 위한 이벤트 필터링
RU2659472C2 (ru) Внесение ошибки страницы в виртуальных машинах
Duflot et al. Using CPU system management mode to circumvent operating system security functions
US7730249B2 (en) Device control apparatus that calls an operating system to control a device
Wang et al. Design and implementation of SecPod, a framework for virtualization-based security systems
US20060010440A1 (en) Optimizing system behavior in a virtual machine environment
JP2010517164A (ja) オペレーティングシステム資源の保護
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
JP2004504663A (ja) 分離実行環境での複数の分離メモリへのアクセスの制御
Lee et al. Efficient security monitoring with the core debug interface in an embedded processor
JP2015166952A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
KR101013419B1 (ko) 시스템 보호 장치 및 방법
Zhao et al. On the effectiveness of virtualization based memory isolation on multicore platforms
JP2019008503A (ja) 情報処理監視装置、情報処理監視方法、プログラム、記録媒体及び情報処理装置
Suzaki et al. Kernel memory protection by an insertable hypervisor which has VM introspection and stealth breakpoints
Kuzuno et al. KMO: kernel memory observer to identify memory corruption by secret inspection mechanism

Legal Events

Date Code Title Description
GRNT Written decision to grant