KR102309695B1 - 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치 - Google Patents

호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치 Download PDF

Info

Publication number
KR102309695B1
KR102309695B1 KR1020200057513A KR20200057513A KR102309695B1 KR 102309695 B1 KR102309695 B1 KR 102309695B1 KR 1020200057513 A KR1020200057513 A KR 1020200057513A KR 20200057513 A KR20200057513 A KR 20200057513A KR 102309695 B1 KR102309695 B1 KR 102309695B1
Authority
KR
South Korea
Prior art keywords
file
hidden
files
interface module
intrusion detection
Prior art date
Application number
KR1020200057513A
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 KR1020200057513A priority Critical patent/KR102309695B1/ko
Application granted granted Critical
Publication of KR102309695B1 publication Critical patent/KR102309695B1/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/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치에 관한 것으로 더욱 상세하게는 숨겨진 인터페이스(hidden interface)를 이용하여 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치에 관한 것이다. 본 발명의 일 실시예에 따른 호스트 침입 탐지를 위한 파일 기반 제어장치는 숨겨진 상태로 플래그가 설정되는 등록파일을 저장하는 저장모듈; 사용자 영역과 커널 영역 사이에서 운용되는 제어모듈을 포함하고, 제어모듈은, 사용자 영역과 커널 영역 사이에서 운용되는 인터페이스이고, 합법 응용 프로그램을 통해서 등록파일에 접근할 때 허용되고, 숨겨진 경로를 통해서 숨겨진 상태로 설정되는 숨겨진 인터페이스 모듈을 포함하고, 숨겨진 인터페이스 모듈은 이진 편집기를 이용하여 숨겨진 경로 상에 존재하는 실행 파일을 수정해서 링크된 라이브러리를 변경하고, 사용자 영역에서 운용되는 합법 응용 프로그램을 이용해서 등록파일에 접근할 수 있도록 구성된다.

Description

호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치{File-based deception technology for thwarting malicious users}
본 발명은 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치에 관한 것으로 더욱 상세하게는 숨겨진 인터페이스(hidden interface)를 이용하여 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
최근의 네트워크 환경은 사용자들에게 언제 어디서든지 편리하고 쉽게 서비스를 이용할 수 있도록 가상 인프라를 제공하는 클라우드 컴퓨팅 자원이 점차 증가하고 있다. 이에 반해서 많은 기업 및 개인 사용자들은 다양한 클라우드 컴퓨팅 자원에 최적화된 네트워크 보안 시스템을 갖추고 있지 못하다.
더군다나 컴퓨터 공격은 매우 다양화 되고 있고, 공격자는 이메일을 통해 다수의 사람들에게 피싱 이메일 또는 악의적인 소프트웨어를 보낼 수 있음에도 불구하고, 이를 방어할 수 있는 네트워크 보안 시스템은 아직 미비한 것이 현재의 실정이다.
종래 공격자를 기만하여 공격을 탐지, 방지 또는 지연시키기 위한 방법 중의 하나가 허니파일을 이용한 공격자 기만 기술이다. 미국특허공개 2013-0145465(Multilayered deception for intrusion detection and prevention)는 가짜 파일을 이용하여 공격자가 가짜 파일에 접근하는 순간 공격의 징후로 탐지하기 위한 네트워크 보안 기술을 개시하고 있다.
그러나 이 방법에 따르면, 가짜 파일은 정상 사용자도 구분을 못 할 수 있어서 오류탐지(false alarm)가 많은 문제점이 노출되었다.
특히, 최근 운영체제들은 파일 검색을 빠르게 지원하기 위해서 파일 인덱싱 서비스를 기본적으로 수행한다. 이때 파일 인덱싱을 위해 저장된 모든 파일을 주기적으로 읽어보는 작업이 수행되기 때문에, 정상 사용자도 가짜 파일에 접근하는 일이 발생되고, 이는 오류탐지를 발생시키는 문제점이 발생되었다.
미국특허공개 2013-0145465(Multilayered deception for intrusion detection and prevention)
따라서 본 발명의 목적은 숨겨진 인터페이스를 이용하여 정상 사용자와 악의적인 공격자를 구분하고, 호스트 침입 탐지를 수행할 수 있는 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 다양한 공격 시나리오에 대하여 효과적으로 보안을 수행하고, 합법적인 응용 프로그램 또는 사용자에 대해서 잘못된 경고를 생성하지 않는 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 공격자가 보안 시스템을 침투하여 시스템 파일에 공격하는 것을 감시하고, 신속한 대응과 시스템 파일을 보호할 수 있는 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 등록파일에 대해서 숨김상태로 설정하고, 숨겨진 인터페이스를 통해서만 등록파일의 액세스를 도모할 수 있는 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치를 제공함에 있다.
상기와 같은 기술적 과제를 해결하기 위해 본 발명의 일 실시예에 따른 호스트 침입 탐지를 위한 파일 기반 제어장치는 숨겨진 상태로 플래그가 설정되는 등록파일을 저장하는 저장모듈; 사용자 영역과 커널 영역 사이에서 운용되는 제어모듈을 포함하고, 제어모듈은, 사용자 영역과 커널 영역 사이에서 운용되는 인터페이스이고, 합법 응용 프로그램을 통해서 등록파일에 접근할 때 허용되고, 숨겨진 경로를 통해서 숨겨진 상태로 설정되는 숨겨진 인터페이스 모듈을 포함하고, 숨겨진 인터페이스 모듈은 이진 편집기를 이용하여 숨겨진 경로 상에 존재하는 실행 파일을 수정해서 링크된 라이브러리를 변경하고, 사용자 영역에서 운용되는 합법 응용 프로그램을 이용해서 등록파일에 접근할 수 있도록 구성된다.
바람직하게는 저장모듈은 파일에 대한 읽기 액세스와 파일에 대한 쓰기 액세스가 수행되면 보고가 이루어지도록 플래그가 설정된 가짜파일을 저장하고, 가짜파일은 사용자 영역과 커널 영역 사이에서 운용되는 일반 인터페이스 모듈을 통해서 표시가 이루어진다.
바람직하게는 제어모듈은, 가짜파일을 모니터링하고 보고가 이루어지면 경보 알람을 발생한다.
바람직하게는 가짜파일은 숨겨진 인터페이스 모듈을 이용해서 접근되지 않도록 설정된다.
바람직하게는 저장모듈은 등록파일과 가짜파일의 플래그 설정상태에 대한 파일 조회테이블을 저장한다.
바람직하게는 등록파일과 가짜파일에 대한 플래그값은 디렉토리에도 적용할 수 있다.
바람직하게는 등록파일은 시스템 파일, 사용자 파일과 같이, 합법 응용 프로그램을 통해서 이용하거나 생성되는 파일을 포함한다.
바람직하게는 숨겨진 인터페이스 모듈은 암호처럼 알고 있는 정보를 통해서 숨겨진 경로 상에 존재하는 파일과 디렉토리를 액세스할 수 있다.
바람직하게는 숨겨진 경로에 존재하는 파일과 디렉토리는 스크립트를 이용해서 숨겨진 경로의 연결을 구성한다.
바람직하게는 숨겨진 경로와 스크립트는 숨겨진 상태를 갖도록 플래그가 설정된다.
바람직하게는 숨겨진 인터페이스 모듈은 표준 라이브러리를 수정하여 구성한다.
바람직하게는 저장모듈은 숨겨진 인터페이스 모듈과 일반 인터페이스 모듈을 이용해서 접근이 가능한 일반파일을 저장하고, 일반파일은 플래그 상태 설정이 안된 파일로 구성된다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 호스트 침입 탐지를 위한 파일 기반 제어방법은 숨겨진 상태로 플래그가 설정되는 등록파일을 저장모듈에 저장하는 단계; 사용자 영역과 커널 영역 사이에서 제어모듈이 운용하는 단계를 포함하고, 제어모듈은, 합법 응용 프로그램을 통해서 등록파일에 접근할 때 허용되고, 숨겨진 경로를 통해서 숨겨진 상태로 설정되는 숨겨진 인터페이스 모듈을 포함하고, 숨겨진 인터페이스 모듈은 이진 편집기를 이용하여 숨겨진 경로 상에 존재하는 실행 파일을 수정해서 링크된 라이브러리를 변경하고, 사용자 영역에서 운용되는 합법 응용 프로그램을 이용해서 등록파일에 접근할 수 있도록 구성된다.
바람직하게는 저장모듈은 파일에 대한 읽기 액세스와 파일에 대한 쓰기 액세스가 수행되면 보고가 이루어지도록 플래그가 설정된 가짜파일을 저장하는 단계를 포함하고, 가짜파일은 사용자 영역과 커널 영역 사이에서 운용되는 일반 인터페이스 모듈을 통해서 접근이 허용된다.
바람직하게는 제어모듈은 가짜파일을 모니터링하고 보고가 이루어지면 경보 알람을 발생한다.
바람직하게는 등록파일과 가짜파일에 대한 플래그값은 디렉토리에도 적용 가능하다.
바람직하게는 저장모듈은 숨겨진 인터페이스 모듈과 일반 인터페이스 모듈을 이용해서 접근이 가능한 일반파일을 저장하는 단계를 포함한다.
바람직하게는 일반파일에 대해서는 플래그 설정을 하지 않고, 가짜파일에 대해서는 읽기 액세스 보고, 쓰기 액세스 보고, 숨겨진 인터페이스 모듈에 대해서 숨겨지도록 플래그 설정을 하고, 등록파일에 대해서는 일반 인터페이스 모듈에 대해서 파일이 숨겨지도록 플래그 설정을 하고, 유인파일에 대해서는 읽기 액세스 보고, 쓰기 액세스 보고가 이루어지도록 플래그 설정을 한다.
바람직하게는 숨겨진 인터페이스 모듈은 사용자 영역과 커널 영역 사이에서 데이터 교환에 이용되는 포인터를 사용하는 시스템 콜을 이용하여 구현 가능하다.
바람직하게는 숨겨진 인터페이스 모듈은, 리드 시스템 콜을 이용하여 구현한다.
바람직하게는 숨겨진 인터페이스 모듈은 리드 시스템 콜을 호출하기 전에 데이터를 수신하기 위한 버퍼를 할당하고, 할당된 버퍼에 숨겨진 인터페이스 모듈에 대한 확인 정보인 서명, 요청 유형, 요청 특정 매개변수를 저장한다.
바람직하게는 숨겨진 인터페이스 모듈은 서명이 일치하면 숨겨진 인터페이스 모듈의 사용을 허용하고, 숨겨진 인터페이스 모듈의 신호처리 후, 버퍼에 저장된 서명을 삭제한다.
상기 목적을 달성하기 위한 호스트 침입 탐지를 위한 파일 기반 제어방법은 사용자 영역에서 응용 프로그램이 접근이 이루어지는 것을 감시하는 단계; 라이브러리 영역에서 일반 인터페이스 모듈의 운용을 감시하는 단계; 커널 영역에서 저장모듈에 저장된 파일에 설정된 플래그를 확인하는 단계; 커널 영역에서 일반 인터페이스 모듈이 접근한 파일에 읽기 액세스 플래그, 쓰기 액세스 플래그가 설정되어 있으면 제어모듈에 외부 침입을 보고하는 단계; 및 커널 영역에서 일반 인터페이스 모듈이 접근한 파일에 플래그 설정이 없을 때, 원래의 인터페이스 모듈의 신호처리가 이루어지는 단계를 포함하여 이루어진다.
상기 목적을 달성하기 위한 호스트 침입 탐지를 위한 파일 기반 제어방법은 사용자 영역에서 응용 프로그램의 접근이 이루어지는 것을 감시하는 1 단계; 숨겨진 경로에서 실행파일을 수정하여 변경된 라이브러리 영역에 진입한 숨겨진 인터페이스 모듈의 운용을 감시하는 2 단계; 변경된 라이브러리 영역에서 할당된 버퍼에 서명, 요청 타입, 요청 특정 매개변수를 저장하고, 숨겨진 인터페이스 모듈을 호출하는 3 단계; 서명이 일치하면, 숨겨진 인터페이스 모듈을 요청 타입에 기반해서 신호처리를 수행하는 4 단계; 및 서명이 일치하지 않을 때, 원래의 숨겨진 인터페이스 모듈의 신호처리를 수행하는 5 단계를 포함한다.
바람직하게는 숨겨진 인터페이스 모듈을 요청 타입에 기반해서 신호처리 후, 버퍼에 저장된 서명을 삭제하는 6 단계를 포함한다.
바람직하게는 숨겨진 인터페이스 모듈은 저장모듈에 저장된 등록파일에 접근이 허용되고, 등록파일은 숨겨진 인터페이스 모듈을 통해서만 접근이 이루어지고, 파일을 숨겨진 상태로 유지하는 플래그가 설정된다.
바람직하게는 저장모듈에는 가짜파일의 저장이 이루어지고, 가짜파일은 읽기 액세스 보고, 쓰기 액세스 보고를 위한 플래그가 설정되며, 5단계에서 서명이 일치하지 않을 때, 파일에 설정된 플래그를 확인하여, 제어모듈에 보고가 이루어진다.
본 발명에 따른 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치는 숨겨진 인터페이스를 이용하여 정상 사용자와 악의적인 공격자를 구분하고, 호스트 침입을 감시할 수 있다. 즉, 본 발명은 등록파일에 대해서 숨김상태로 설정하고, 숨겨진 인터페이스를 통해서만 등록파일의 액세스를 할 수 있도록 관리하므로서, 등록파일이 외부 공격자에게 손상되는 것을 방지하는 효과를 얻을 수 있다.
본 발명은 다양한 공격 시나리오에 대하여 효과적으로 보안을 수행하고, 합법적인 응용 프로그램 또는 사용자에 대해서 잘못된 경고를 생성하지 않도록 관리할 수 있다. 특히, 본 발명은 합법 응용 프로그램 또는 합법 사용자가 가짜파일에 접근하는 것을 원천적으로 차단하여, 잘못된 경보가 발생되는 것을 방지하는 것이 가능하다.
본 발명은 공격자가 보안 시스템을 침투하여 시스템 파일에 공격하는 것을 감시하고, 신속한 대응과 시스템 파일을 보호하는 것이 가능하다. 특히, 본 발명은 1차적으로 방어가 구축된 호스트 시스템에서 보안 시스템을 뚫고 공격자가 침입하여 호스트 시스템 내 가짜파일을 액세스할 때, 이를 즉시 모니터링하고 관리자에게 보고가 이루어지도록 한다. 따라서 본 발명은 시스템 내 파일 손상, 외부 누출이 이루어지기 전에 공격자의 침투를 감시하는 것이 가능하다.
도 1은 본 발명의 일 실시예에 따른 호스트 침입 탐지를 위한 파일 기반 제어장치의 전체적인 개략도이다.
도 2는 본 발명의 일 실시예에 따른 호스트 침입 탐지를 위한 파일 기반 제어장치에서 저장 모듈에 저장되는 다양한 파일들과, 저장모듈에 저장된 다양한 파일에 접근이 허용되는 인터페이스에 대한 개념도를 도시하고 있다.
도 3은 본 발명의 파일 시스템(저장모듈)에 접근이 이루어지는 일반 인터페이스와 숨겨진 인터페이스에 대한 구성도를 도시하고 있다.
도 4a는 본 발명의 저장모듈에 저장되는 파일들에 대한 플래그 설정 테이블을 도시하고 있다.
도 4b는 본 발명의 일 실시예에서 파일들에 대한 플래그 설정 테이블을 도시하고 있다.
도 5는 본 발명의 일 실시예에 따른 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치에서 숨겨진 인터페이스를 구현하는 예시도를 도시하고 있다.
도 6은 본 발명의 일 실시예에서 vim으로 실행 파일을 열었을 때의 화면 캡쳐이다.
도 7은 본 발명의 일 실시예에 따른 리드 시스템 콜을 이용하여 숨겨진 인터페이스를 호출하는 알고리즘의 실시예를 도시하고 있다.
도 8a, 도 8b, 도8c는 본 발명의 일 실시예에 따른 리드 시스템 콜을 이용하여 숨겨진 인터페이스를 구현한 동작 순서도를 도시하고 있다.
도 9는 본 발명의 일 실시예에 적용한 호스트 머신과 가상 머신의 사양을 도시하고 있다.
도 10은 본 발명의 일 실시예에서, 유틸리티 dd로 측정한 파일 읽기 및 쓰기 처리량을 보여주고 있다.
도 11은 본 발명의 일 실시예에서 지연 시간을 보여주고 있다.
도 12는 본 발명의 일 실시예에서 ls 유틸리티의 처리량을 비교하여 보여주고 있다.
도 13은 본 발명의 일 실시예에서 지연값을 표시하고 있다.
도 14는 본 발명의 일 실시예에 따라서 커널 영역과 라이브러리 영역세서 코드의 수정된 라인 수를 테이블로 표시하고 있다.
도 15는 본 발명과 기존의 허니파일을 이용한 기만 방법의 비교 결과를 표시하고 있다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "부"와 "기", "모듈"과 "부", "유닛"과 "부", "장치"와 "시스템", "단말"과 "노드"와 "디지털 무전기" 등은 명세서 작성의 용이함 만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다. 본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
파일 기반의 기만 기술은 다양한 시스템 엔티티에 적용되었다. 네트워크 기반 기만 기술은 가짜 네트워크 구성, 가짜 서버, 가짜 서비스 및 가짜 메시지와 같은 가짜 네트워크 엔티티를 표시하여 사이버 공격을 차단한다. 일 예로 가짜 데이터베이스, 가짜 비밀번호, 가짜 계정 및 가짜 패치들은 공격자를 유인하는데 이용된다.
공격자가 가짜 파일에 엑세스하면 공격으로 판단하는데, 이때 액세스 가능한 가짜 파일에 대해서 가능한 진짜 파일처럼 인식될 수 있도록 하기 위해서 기존 실제 파일을 프로 파일링하여 가짜 파일을 자동으로 생성한다. 가짜 파일은 랜섬웨어를 탐지하는데도 이용된다. 이와 같은 허니파일은 공격자를 유인하는 효과는 있지만, 정상 사용자 및 합법적인 응용 프로그램에서 허니파일로 인하여 오류탐지가 발생되는 것을 방지하기가 어려웠다.
본 발명에서는 이를 해결하기 위하여 숨겨진 인터페이스를 이용하여 오류탐지 문제를 해결하면서 정상 사용자와 악의적인 공격자를 구분하고, 호스트 침입 탐지를 수행할 수 있는 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치를 제안한다.
도 1은 본 발명의 일 실시예에 따른 호스트 침입 탐지를 위한 파일 기반 제어장치의 전체적인 구성도를 도시하고 있다.
본 발명의 호스트(100)는 보안시스템이 갖춰진 컴퓨팅 시스템을 일 예로 들 수 있다. 호스트(100)는 사용자 및 응용 프로그램들이 이용되는 사용자 영역과 운영체제의 운영하에 제어가 이루어지는 커널영역을 포함한다. 커널영역은 컴퓨팅 시스템의 하드웨어 구성들을 제어한다.
본 발명의 호스트(100)는 보안시스템을 통해서 보안이 1차적으로 이루어지는 시스템을 의미한다. 단순하게는 암호 입력, 별도의 보안시스템이 구동되는 상태를 갖는다. 호스트(100)에 포함된 하드웨어에는 숨겨진 상태로 설정되는 등록파일을 저장하는 저장모듈(30) 등이 포함된다. 저장모듈(30)은 읽기 액세스 보고와 쓰기 액세스 보고가 설정되는 가짜파일을 저장한다. 저장모듈(30)은 일반파일을 저장한다. 저장모듈(30)에 저장되는 파일들은 커널 영역에 포함된 파일 시스템(50)에 의해서 물리적 소재를 관리받거나 파일로 접근하는 방식 등을 제어받는다. 즉, 저장모듈(30)의 모든 저장 파일은 파일 시스템(50)의 기반에서 관리가 이루어진다.
호스트(100)는 등록파일에 접근할 때 이용되고, 합법 운용 프로그램에게만 사용이 허용되고, 숨겨진 경로를 통해서 숨겨진 상태로 설정되는 숨겨진 인터페이스 모듈(20)을 포함한다. 본 발명의 호스트 침입 탐지를 위한 파일 기반 제어장치는, 숨겨진 인터페이스 모듈(20)에서 이진 편집기를 이용하여 미리 약속된 실행 파일을 수정해서 링크된 라이브러리를 변경하면, 합법 응용 프로그램들이 숨겨진 인터페이스 모듈(20)을 사용할 수 있도록 구성되어진다.
호스트(100)는 가짜파일에 접근할 때 이용되고, 사용자 영역과 커널 영역 사이에서 운용되는 일반 인터페이스 모듈(10)을 포함한다. 호스트(100)는 사용자 영역과 커널 영역 사이에서 운용되는 일반 인터페이스 모듈(10)과 숨겨진 인터페이스 모듈(20)을 포함하고, 이를 전체적으로 운용 제어하는 제어모듈(40)을 포함한다. 이 외에도 호스트(100)는 컴퓨팅 환경에서 필요로 하는 입출력모듈, 통신모듈 등을 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 호스트 침입 탐지를 위한 파일 기반 제어장치에서 저장 모듈에 저장되는 다양한 파일들과, 저장모듈에 저장된 다양한 파일에 접근이 허용되는 인터페이스에 대한 개념도를 도시하고 있다.
본 발명은 일반 인터페이스(또는 일반 인터페이스 모듈 ; 10)와 숨겨진 인터페이스(또는 숨겨진 인터페이스 모듈 ; 20)를 포함한다. 그리고 본 발명의 저장모듈(30)에는 등록파일, 가짜파일, 일반파일 등이 저장된다. 등록파일, 가짜파일, 일반파일들은 롬, 저장 모듈, 저장장치, 저장매체, 하드디스크 등에 저장되어지는 컴퓨터 파일들이다. 일반 인터페이스(10)와 숨겨진 인터페이스(20)는 사용자 영역에 존재하는 응용 프로그램들이 커널 영역(또는 운영체제)의 관리하에 존재하는 등록파일, 가짜파일, 일반파일들에 접근하기 위해서 이용되어지는 프로그램 인터페이스이다. 여기서 프로그램 인터페이스는 운영체제에서 제공하는 시스템 콜을 의미한다.
숨겨진 인터페이스(20)를 통해 사용이 이루어질 수 있도록 표시되는 파일은 합법적인 사용자 및 응용 프로그램에서 사용되는 실제 파일들이다. 본 발명에서는 합법적인 사용자 및 합법적인 응용 프로그램에서 사용되어지는 파일을 "등록파일"로 정의한다. 등록파일에는 시스템 파일과 같이, 합법적인 사용자 및 합법적인 응용 프로그램을 통해서 사용되거나 합법적인 사용자 및 응용 프로그램이 사용되기 위해서 필요로 하는 중요한 파일들이 포함된다. 그 외에도 유저 파일과 같이 사용자가 생성한 사용자 데이터도 포함될 수 있다. 이하 설명에서 합법적인 사용자 및 합법적인 응용 프로그램을 "합법 응용 프로그램"으로 통일하여 기재한다.
등록파일은 합법 응용 프로그램에게 사용이 허용되는 숨겨진 인터페이스(20)를 통해서만 접근을 허용한다. 따라서 등록파일은 숨겨진 상태로 설정되고, 숨겨진 인터페이스(20)를 통해서만 사용이 이루어질 수 있도록 표시되어진다.
반면에 일반 인터페이스(10)는 일반 파일 및 가짜 파일 등에 접근하도록 구성된다. 따라서 공격자들은 일반 인터페이스(10)를 통해서 시스템 내 저장되고 있는 일반 파일 또는 가짜 파일 등에 접근이 이루어질 수 있다.
일반 파일은 공격자에 의해서 파괴가 되어도 무방한 파일들로 구성된다. 그리고 가짜 파일은 일반 인터페이스(10)를 통해서만 표시가 이루어지는 파일로 구성된다. 가짜 파일은 공격자의 침투를 감시하는 용도로 이용되고, 본 발명에서는 가짜 파일에 접근과 동시에 관리자에게 보고가 이루어지도록 구성된다. 따라서 제어모듈(40)은 가짜 파일에 일반 인터페이스 모듈(10)의 접근을 감시하고, 보고가 이루어지면 경보 알람을 발생하도록 제어한다. 여기서 경보 알람은 관리자, 상부 관리시스템 등에 통보하는 구성이다.
본 발명은 파일을 표시할 인터페이스를 정의할 수 있다. 이는, 본 발명을 관리 감독하는 관리자 또는 관리 시스템(이하 "관리자"로 통일하여 기재함)에 의해서 초기에 설정하는 것이 바람직하다. 일 예로 본 발명은 액세스 유형(읽기 또는 쓰기)을 구성할 수도 있다. 본 발명에서 파일은 도 4a에 도시하고 있는 바와 같이, 4개의 플래그에 의해서 설정된다.
플래그 h가 설정되면 파일이 일반 인터페이스(10)에서 숨겨진다. 플래그 h는 등록파일을 숨기는데 사용된다. 플래그 r이 설정되면 파일을 일반 인터페이스(10)를 통해서 읽을 경우 관리자에게 보고된다. 플래그 w가 설정되면 파일에 대한 쓰기 엑세스가 보고되고, 플래그 f가 설정되면 파일은 숨겨진 인터페이스(20)에서도 숨겨진다.
도 4a에 도시되고 있는 플래그 정의값은 파일 외에도 디렉토리에도 적용할 수 있다. 일 예로 플래그 r이 디렉토리에 대해서 설정된 경우, 디렉토리의 파일 목록이 검색되면 관리자에게 보고된다.
한편, 본 발명에서 파일에 플래그 r 또는 플래그 w가 설정된 경우에 있어서도 합법 응용 프로그램이 파일에 엑세스 할 권한이 없는 경우에는 파일을 액세스 할 수 없다. 반면에 플래그 h가 설정된 경우, 파일이 표시되지 않기 때문에 일반 인터페이스(10)를 통해서는 액세스 할 수 없지만, 경로를 알고 있는 경우에서는 즉, 숨겨진 인터페이스(20)를 사용하는 합법 응용 프로그램은 액세스할 수 있다.
본 발명에서는 기존과는 다른 형태로 숨겨진 인터페이스를 구현할 수 있으나, 이 경우는 공격자가 쉽게 알 수 있기 때문에 기존에 사용하는 리드 시스템 콜(read system call)을 이용하여 숨겨진 인터페이스를 구현한다.
본 발명은 애플리케이션이 리드 시스템 콜을 사용하기 전에 데이터를 수신하기 위해서 버퍼를 할당한다. 본 발명은 리드 시스템 콜을 사용하기 전에 요청 데이터 구조가 버퍼에 기록되어야 한다. 이후 운영체제는 버퍼의 기록을 확인하고, 첫번째 네개의 워드가 특정 패턴과 일치하면 숨겨진 인터페이스로 인식하여 요청사항에 필요한 신호처리를 수행한다. 그러나 확인한 값이 일치하지 않을 때, 운영체제는 일반적인 리드 시스템 콜로 처리한다.
한편, 오류탐지를 억제하기 위해서 합법 응용 프로그램은 숨겨진 인터페이스(20)를 사용해야 하고, 합법적인 사용자는 합법 응용 프로그램을 사용해야 한다. 일반적으로 응용 프로그램은 시스템 콜을 직접 사용하지 않고, 표준 라이브러리에서 제공하는 래퍼(wrapper) 함수를 호출하면, 그 함수에서 실제로 시스템 호출한다. 즉, 대부분의 응용 프로그램은 파일 접근을 위하여 표준 라이브러리를 사용하고 있다.
따라서 본 발명에서는 도 3에 도시하고 있는 바와 같이, 숨겨진 인터페이스(20)를 사용하기 위하여 수정된 라이브러리를 제공한다. 이를 위해서 본 발명에서는 모든 응용 프로그램에 대한 소스 코드를 확보할 수 없으므로, 이진 에디터(binary editor)를 사용하여 실행 파일을 수정하고, 연결된 라이브러리를 수정하도록 구성한다.
본 발명에서 수정된 실행 파일은 숨겨진 디렉토리에 있고, 도 4a에서 정의한 플래그 h를 디렉토리에 적용하더라도 파일 경로를 미리 알고 있는 경우, 숨겨진 파일과 디렉토리를 액세스하는 것이 가능하다. 따라서 숨겨진 인터페이스가 필요한 합법 응용 프로그램들은 실행파일을 이진 에디터로 수정하여 링크된 라이브러리만 변경하면, 소스코드 없이도 합법적인 응용 프로그램들이 숨겨진 인터페이스를 사용하도록 할 수 있다.
이 경우 기본 검색 경로를 숨겨진 디렉토리로 변경하는 스크립트가 제공될 수 있고, 합법 응용 프로그램은 스크립트를 실행하면, 가짜 파일을 액세스 하는 일 없이 숨겨진 인터페이스를 사용해서 등록파일에 접근하는 것이 가능하게 된다.
예를 들어서 ls 유틸리티는 일반적으로 /bin 디렉토리에 있다. /a_hidden_path 에 수정된 실행 파일을 동일한 이름으로 제공한다. 본 발명은 합법 응용 프로그램에게 경로 환경 변수를 /a_hidden_path로 변경하기 위한 스크립트가 제공된다. 여기서 /a_hidden_path는 하나의 예이고, 임의의 파일 이름을 숨겨진 경로로 사용할 수 있다.
스크립트를 실행한 후, 합법 응용 프로그램은 아무것도 변경되지 않은 것처럼 ls를 사용할 수 있고, 합법 응용 프로그램이 가짜 파일을 액세스하면서 발생될 수 있는 오류탐지를 미연에 방지할 수 있다.
물론 본 발명의 숨겨진 경로와 스크립트는 숨겨진 상태이어야 바람직하다. 즉, 숨겨진 경로와 스크립트에는 도 4a에 도시되고 있는 플래그 h가 설정되고, 합법 응용 프로그램은 이 숨겨진 경로를 알고 있는 상태이므로 숨겨진 인터페이스를 액세스 하는 것이 가능해진다. 따라서 경로 이름 자체는 암호와 동일한 기능을 수행하고, 합법 응용 프로그램은 암호(숨겨진 경로)를 기억해야 한다. 이것은 권한이 없는 사용자가 숨겨진 경로와 스크립트를 사용하여 시스템에 접속하는 것을 방지하기 위함이다.
본 발명은 침입 탐지 시스템을 뚫고 호스트에 액세스하는 공격자를 차단하기 위해서 사용한다. 공격자는 로컬 터미널을 통해서 호스트에 액세스할 수도 있고, 네트워크를 통해서 호스트에 접속할 수도 있다. 통상적으로 공격자는 악의적인 응용 프로그램(malware)을 실행하거나 기존 응용 프로그램 또는 유틸리티를 활용하여 호스트에 접속한다.
이 경우 모두 일반 인터페이스를 사용하게 된다. 즉, 침입자는 응용 프로그램에 따른 실행파일을 실행시켰을 때, 표준 라이브러리와 같은 일반 인터페이스를 사용하여 파일 시스템에 접근하게 된다. 이때, 일반 인터페이스를 통해서 파일 시스템에 접근하면, 일반 파일과 가짜 파일에 대한 접근이 이루어진다.
본 발명은 일반 인터페이스를 통해서 가짜 파일에 대한 액세스가 이루어지는 것을 감지하고, 등록파일을 액세스 하지 못하도록 하여 호스트의 관리자가 공격자에 대한 악의적인 접속을 모니터링할 수 있다.
특히, 본 발명은 공격자들이 숨겨진 경로와 숨겨진 인터페이스의 존재를 알지 못하도록 설정해둔다. 즉, 합법 응용 프로그램 및 수정된 라이브러리는 숨겨진 경로 상에 존재한다. 따라서 공격자들은 호스트에 침입했어도 자신의 위치를 알지 못하고, 합법 응용 프로그램 및 등록파일들을 획득하지 못한다.
이를 위해서 본 발명의 실시예에서 파일 구성은 다음과 같이 구성 가능하다.
도 4b에 도시하고 있는 바와 같이, 일반 파일(또는 일반 디렉토리)에는 본 발명에서 응용되는 플래그가 설정되어 있지 않다. 일반 파일은 일반 인터페이스(10)와 숨겨진 인터페이스(20)가 모두 액세스할 수 있고, 관리자에게 파일의 액세스에 따른 보고도 이루어지지 않는다.
가짜 파일(또는 가짜 디렉토리)은 r,w,f 플래그가 설정된다. 가짜 파일은 적을 유인하기 위한 것이며 실제로 사용되지는 않는다. 본 발명에서는 숨겨진 인터페이스(20)를 이용하여 가짜 파일이 액세스되지 않도록 숨겨진 인터페이스(20)로부터 숨겨진다.
이 부분은 기존의 허니 파일/디렉토리에 대한 부분과 다른 부분이다. 기존의 허니 파일/디렉토리는 정상 사용자, 합법적인 응용 프로그램 및 공격자 모두 액세스가 가능하도록 구성되고 있었다. 그렇기 때문에 기존의 시스템에서는 정상 사용자 또는 합법적인 응용 프로그램이 허니 파일 또는 허니 디렉토리를 접속하면서 오류탐지가 발생하는 일이 빈번하게 발생되었다.
그러나 본 발명에서는 가짜 파일에 대해서 숨겨진 인터페이스(20)에서 액세스 하지 않도록 숨겨진다. 따라서 가짜 파일을 합법 응용 프로그램이 액세스 하지 않게 되면서 허위 경보도 발생하지 않는다.
또한, 시스템 파일 중 일부에 대해서 모든 사용자들이 읽을 수는 있지만 덮어 쓸 수는 없다. 일 예로 공유 객체(동적 링크 라이브러리)는 모든 응용 프로그램에서 사용할 수 있지만 합법적인 업데이터만이 업데이트 할 수 있어야 한다.
본 발명에서는 플래그 w가 설정되어 있는 파일에 대해서 공격자가 수정하려고 하면, 관리자에게 보고되도록 설정된다.
또한 본 발명은 실제 파일을 미끼로 이용하여 공격자를 유인할 수 있다. 가짜 파일의 가장 큰 문제는 오래된 메타 데이터이다. 메타 데이터(일 예: 마지막 액세스 시간 정보)가 오랫동안 업데이트 되지 않으면, 공격자는 가짜 파일을 열기 전에도 이를 확인할 수 있다. 따라서 유인 파일이 계속해서 업데이트되면, 공격자를 유인하는데 성공할 가능성이 높다. 그러나 유인 파일은 공격자에게 노출될 우려가 있으므로 중요한 정보를 포함해서는 안된다.
본 발명은 호스트에 액세스한 공격자를 다음과 같이 탐지할 수 있다.
공격자가 호스트에 접속할 때, 가장 일반적인 활동은 명령 기록을 확인 및 삭제하고 시스템 파일을 읽어서 시스템을 탐색한다. 이를 정찰 단계라고 하며, 공격자는 시스템을 손상시키는 방법을 파악하기 위해서 시스템에 대한 정보를 수집한다.
따라서 플래그 r을 공격자가 읽을 가능성이 높은 파일에 설정하면, 명령 기록 및 정찰 단계에서 호스트에 접속한 공격자를 감지하는 것이 가능해진다.
또한 매력적인 이름으로 가짜 파일을 만들거나 실제 시스템 파일을 미끼로 사용하여 해당 파일에 플래그 f를 설정하면, 숨겨진 인터페이스는 액세스 할 수 없는 숨겨진 파일이 된다. 특히, 가짜 파일을 사용하는 경우 메타 데이터를 계속해서 업데이트한다.
랜섬웨어의 경우, 시스템 또는 사용자 파일을 인질로 보유하고 공격자에게 다시 액세스 권한을 요청하는 악성 코드 유형이다. 랜섬웨어는 일반적으로 디스크를 검색하여 대상 파일을 찾아 암호화한다.
본 발명은 랜섬웨어가 호스트에 침입하였을 때, 디스크의 검색단계에서 랜섬웨어 침입을 탐지할 수 있다. 즉, 본 발명은 랜섬웨어가 검색될 가능성이 있는 디렉토리를 플래그 r을 설정하면, 해당 디렉토리의 검색시에 관리자에게 랜섬웨어 침입이 보고되어져서 랜섬웨어 탐지가 가능해진다.
또한 랜섬웨어가 사용자 파일을 대상으로 악성 코드를 심는 것을 방지하기 위해서, 플래그 r을 사용자 파일에 해당하는 문서 그리고 하위 디렉토리에도 설정할 수 있다. 따라서 랜섬웨어가 일반 인터페이스를 통해서 해당 문서, 해당 하위 디렉토리를 읽을 때, 랜섬웨어에 의한 파일의 암호화 전에, 관리자에게 공격자의 침입이 보고되는 것이 가능해진다.
호스트는 공격의 결과로 시스템 파일이 수정될 우려가 발생될 수 있다. 일 예로 DLL 삽입 및 로그 스크러빙 공격이 있다. 공격자는 호스트에 침입하여 관리 권한을 획득하거나 시스템 파일을 수정할 수 있다.
본 발명에서는 이러한 문제가 발생할 수 있는 시스템 파일을 플래그 w를 설정한다. 플래그 w가 설정된 파일은 공격자가 접근하면, 관리자에게 보고가 이루어진다. 따라서 본 발명은 이와 같은 관리자 보고를 통해서 공격자의 침입을 탐지하고, 즉시 필요한 조치를 취하는 것이 가능해진다.
본 발명은 호스트에 저장된 중요한 데이터(파일)이 유출되는 것을 방지할 수 있다. 본 발명은 등록 파일에 대해서 플래그 h를 설정한다. 플래그 h가 설정된 파일은 일반 인터페이스(10)에서 숨겨진다. 따라서 일반 인터페이스(10)를 사용하게 되는 공격자는 등록 파일을 찾을 수 없다.
도 5는 본 발명의 일 실시예에 따른 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치에서 숨겨진 인터페이스를 구현하는 예시도를 도시하고 있다.
본 발명의 일 실시예에 따른 숨겨진 인터페이스 구현을 위해서 다음의 사항들이 충분히 고려되어야 한다. 첫째 본 발명에 따른 숨겨진 인터페이스는 공격자에게 숨겨진 상태를 유지해야 한다. 둘째 본 발명의 실시예가 사용됨에 있어서 오버헤드가 최소화되어야 한다. 셋째 합법적인 응용 프로그램 및 합법적인 사용자가 숨겨진 인터페이스를 컴파일 하지 않고 사용이 가능해야만 한다.
최근, 대부분의 운영체제는 파일 엑세스를 위한 일련의 시스템 콜을 사용한다. 또한 본 발명에서 숨겨진 인터페이스를 구현하는 가장 간단한 방법은 새로운 시스템 콜을 도입하는 것이다. 그러나 새로운 시스템 콜은 공격자에게 쉽게 노출될 수 있기 때문에 기존 사용되는 시스템 콜을 활용하여 숨겨진 인터페이스 구현에 적용하는 것이 바람직하다.
사용자 영역(user space)에 대한 포인터를 매개변수로 사용하는 시스템 콜이 있다. 일 예로 리드 시스템 콜은 사용자 및 응용 프로그램이 사용되는 사용자 영역과 운영체제가 운용되는 커널 영역 간에 데이터를 교환하는데 이용된다. 본 발명에서는 숨겨진 인터페이스를 구현함에 있어서 일 실시예로 리드 시스템 콜을 사용한다. 그러나 사용자 영역 포인터를 사용하는 모든 시스템 콜을 본 발명의 숨겨진 인터페이스를 구현하는데 사용할 수 있다.
본 발명의 일 실시예에 따른 숨겨진 인터페이스의 데이터 구조를 살펴보면, 서명(signature), 요청 유형(request type), 요청 특정 파라미터(request-specific parameters)를 포함한다.
리드 시스템 콜(read system call)을 사용하여 본 발명의 숨겨진 인터페이스를 구현한 일 실시예가 도 5에 도시되고 있다.
본 발명의 숨겨진 인터페이스의 데이터 구조는 서명 필드(signature)를 포함하고, 서명 필드는 시스템 콜을 해석하는 방법을 결정하는데 사용된다. 리드 시스템 콜은 숨겨진 인터페이스에도 사용되지만, 일반적인 시스템 콜로도 사용될 수 있다. 따라서 서명이 일치하면, 숨겨진 인터페이스 사용으로 해석된다. 서명이 일치하지 않으면 일반적인 시스템 콜로 사용된다.
도시되는 실시예에서 서명에 4개의 단어(0x031F21DC, 0xFC12D002, 0x1B0FF28C, 0x952C012F)를 사용한다. 즉, 숨겨진 인터페이스가 공격자에 의해서 또는 의도되지 않은 상태에서 호출되지 않도록 서명 필드를 구성하고, 서명 일치가 이루어진 후 숨겨진 인터페이스에서 소정의 신호처리가 행해지면 서명 필드가 삭제되도록 구성한다.
이것은 메모리의 서명 필드 영역이 초기화되지 않고 다른 응용 프로그램 등에 할당될 경우, 기타 응용 프로그램이 숨겨진 인터페이스를 실수로 트리거 할 수 있고, 이때 저장된 서명으로 인하여 숨겨진 인터페이스가 노출될 우려가 발생되는 것을 방지하기 위함이다. 따라서 이를 방지하기 위해서 숨겨진 인터페이스의 신호처리를 수행한 후 4 개의 서명 필드에 기재된 단어는 삭제되도록 한다.
본 발명의 숨겨진 인터페이스의 데이터 구조는 요청 유형(request type)을 포함한다.
본 발명은 읽기 플래그, 변경 플래그, 디렉토리 읽기, 읽기, 쓰기의 다섯가지 유형을 지원하고 있다. 읽기 플래그와 변경 플래그는 파일의 플래그를 읽거나 변경하는데 사용되고, 그 외 디렉토리 읽기, 읽기, 쓰기는 네 개의 플래그를 구현하는데 사용된다.
본 발명의 숨겨진 인터페이스의 데이터 구조는 요청 특정 파라미터(request-specific parameters)를 포함한다. 읽기 플래그 요청 유형에는 파일 디스크립터가 매개 변수로 필요하다. 변경 플래그 요청 유형에서는 파일 디스크립터와 새 플래그가 필요하다. 그 외 디펙토리 읽기, 읽기, 쓰기의 요청 유형에서는 해당 일반 시스템 호출과 동일한 매개 변수를 사용한다.
다음, 본 발명에서 기존 시스템 콜을 활용하되 숨겨진 인터페이스를 사용하기 위하여 수정하는 과정을 살펴본다.
최근의 운영체제는 열기, 읽기, 쓰기, 닫기, 디렉토리 열기, 디렉토리 읽기, 디렉토리 닫기 등과 같은 파일 작업에 대한 시스템 호출을 사용한다.
본 발명의 일 실시예는 리눅스(Linux)에서 프로토 타입으로 구현하였다. 리눅스에서 플래그는 읽기, 쓰기 및 getdents (디렉토리 읽기 용) 시스템 호출로 확인 가능하다. 본 발명은 숨겨진 인터페이스의 일 실시예를 구현하기 위해 래퍼 함수와 리드 시스템 콜을 이용한다.
도 7은 본 발명의 일 실시예에 따른 기존의 리드 시스템 콜을 수정하여 숨겨진 인터페이스를 호출하는 알고리즘의 실시예를 도시하고 있다.
1 리드 호출되면, 2 서명의 일치를 확인하고, 3 숨겨진 인터페이스 함수가 호출되거나, 2 에서 서명이 일치하지 않으면 일반 인터페이스로 호출되어진다.
5 에서 리드 시스템 콜의 매개 변수 중 하나는 리드 파일 디스크립터이다. 즉, 플래그 r이 설정되어 있으면, 6 해당 파일을 읽었을 때 관리자에게 보고된다. 그리고 나서 7 원래의 리드 시스템 콜이 호출된다.
8 쓰기(라이트) 호출은, 9 플래그 w가 설정되어 있는지 확인하고, 플래그 w가 설정되어 있을 때, 10 관리자에게 보고된다. 그리고 11 원래의 라이트 시스템 콜이 호출된다.
12 getdents 호출은, 파일 목록을 읽기 위해서 13 원래의 getdents 시스템 콜이 호출되어서, 목록의 파일 플래그가 확인되고, 14 플래그 h가 설정된 파일은 일반 인터페이스에서 숨겨지도록 목록에서 숨겨진다.
15 숨겨진 인터페이스 호출이 이루어지면, 요청 유형에 따른 신호처리가 이루어진다. 16에서 요청 유형이 플러그를 읽거나 변경하는 경우, 17 해당하는 요청 유형을 처리한다.
18에서 요청 유형이 읽기 유형이면, 19에서 원래의 리드 시스템 콜을 호출한다. 20에서 요청 유형이 쓰기 유형이면, 21에서 원래의 라이트 시스템 콜을 호출한다. 22에서 요청 유형이 getdents 유형이면, 23에서 원래의 getdents 시스템 콜을 호출하고, 이때 24에서 플래그 f가 설정된 파일은 목록에서 숨겨진다.
그리고 마지막으로 25 에서 서명을 삭제하여, 숨겨진 인터페이스가 의도하지 않게 드러나는 것을 방지한다.
이와 같이 각 파일에 대한 상태를 표시하는 플래그를 저장하려면, 추가 필드가 필요하다. 리눅스에서 이 필드를 추가하기 위해서는 아이노드(inode)의 구조를 변경해야 하지만, 본 발명의 실시예에서는 아이노드 구조를 변경하지 않고, 커널영역에서 별도의 조회 테이블을 설정 저장하고, 사용할 수 있도록 구현하였다.
다음, 본 발명에서 합법적인 응용 프로그램 또는 사용자들은 숨겨진 인터페이스를 통해서 파일을 액세스 해야 한다. 이 경우 모든 응용 프로그램이 해당되는 것은 아니다. 플래그 설정에 따라서 보고를 트리거하는 파일에 가장 적게 액세스하는 응용 프로그램이 있을 수 있다. 즉, 플래그 r 또는 플래그 w가 설정된 파일에 액세스 할 가능성이 있는 응용 프로그램은 잘못된 경보 발생을 방지하기 위해서 숨겨진 인터페이스를 사용해야 한다.
일반적으로 응용 프로그램은 시스템 콜을 직접 호출하지 않는다. 응용 프로그램은 표준 라이브러리에서 제공하는 랩퍼 함수를 이용한다.
표준 라이브러리가 동적으로 링크된 경우 링크된 라이브러리의 경로를 수정하여 쉽게 대체할 수 있다. 정적으로 링크된 경우 숨겨진 인터페이스를 사용하기 위해서는 응용 프로그램의 소스코드가 필요하다.
이를 위해서 본 발명에서는 라이브러리와 동적으로 연결된 응용 프로그램에 숨겨진 인터페이스를 사용하는 수정된 라이브러리를 제공한다. 수정된 라이브러리는 숨겨진 디렉토리에 존재해야 하고, 수정된 라이브러리의 파일 이름이 동일하면 경로만 변경하면 된다.
일 예로 리눅스의 경우 LD_LIBRARY_PATH 환경 변수를 변경하여 수행하는 것이 가능하다. 파일 이름이 변경되면, 응용 프로그램의 실행 파일을 이진 편집기로 수정해야 한다.
프로토 타입에서는 vim을 사용하여 실행 파일을 편집한다. 도 6은 vim으로 실행 파일을 열었을 때의 화면 캡쳐이다. 라이브러리 파일 이름은 libselinux.so.1 및 libc.so.6과 같은 일반 텍스트로 표시된다. vim의 표준 명령을 사용하여 쉽게 변경할 수 있다.
도 8은 응용 프로그램에서 표준 라이브러리에 구현된 fwrite를 호출하는 예에 대한 라이브러리 영역과 커널영역에서의 원래의 인터페이스 경우, 일반 인터페이스 경우, 숨겨진 인터페이스 경우의 동작 과정도를 도시하고 있다.
도 8a는 원래의 응용 프로그램에서 fwrite를 호출할 때의 순서도이다.
사용자 영역에서 응용 프로그램이 fwrite 함수를 호출하면, 원래의 라이브러리 영역에서 쓰기 시스템 콜이 호출되고, 원래의 커널영역에서 원래의 쓰기 시스템 콜이 호출된다.
도 8b는 본 발명에 따라서 fwrite를 호출할 때의 순서도를 도시하고 있고, 이 경우는 일반 인터페이스를 사용하는 과정도이다.
이 구성은 사용자 영역에서 응용 프로그램이 접근이 이루어지는 것을 감시하는 단계, 라이브러리 영역에서 일반 인터페이스 모듈의 운용을 감시하는 단계, 커널 영역에서 저장모듈에 저장된 파일에 설정된 플래그를 확인하는 단계, 커널 영역에서 일반 인터페이스 모듈이 접근한 파일에 읽기 액세스 플래그, 쓰기 액세스 플래그가 설정되어 있으면 제어모듈에 외부 침입을 보고하는 단계, 커널 영역에서 일반 인터페이스 모듈이 접근한 파일에 플래그 설정이 없을 때, 원래의 인터페이스 모듈의 신호처리가 이루어지는 단계를 포함한다.
즉, 사용자 영역에서 응용 프로그램이 fwrite 함수를 호출하면, 원래의 라이브러리 영역에서 쓰기 시스템 콜이 호출된다. 그리고 커널영역에서는 플래그 w가 설정되어 있는지를 확인하고, 플래그 w가 설정되어 있지 않은 경우에서는 커널에서 원래의 쓰기 시스템 콜이 호출된다. 그리고 플래그 w가 설정되어 있으면, 관리자에게 보고서가 전송되어진다. 이때 커널 영역에 접근하는 인터페이스는 일반 인터페이스이다.
도 8c는 본 발명에 따라서 fwrite를 호출할 때의 순서도를 도시하고 있고, 이 경우는 숨겨진 인터페이스를 사용하는 과정도이다.
이 구성은 사용자 영역에서 응용 프로그램의 접근이 이루어지는 것을 감시하는 1 단계, 숨겨진 경로에서 실행파일을 수정하여 변경된 라이브러리 영역에 진입한 숨겨진 인터페이스 모듈의 운용을 감시하는 2 단계, 변경된 라이브러리 영역에서 할당된 버퍼에 서명, 요청 타입, 요청 특정 매개변수를 저장하고, 숨겨진 인터페이스 모듈을 호출하는 3 단계, 서명이 일치하면, 숨겨진 인터페이스 모듈을 요청 타입에 기반해서 신호처리를 수행하는 4 단계, 서명이 일치하지 않을 때, 원래의 숨겨진 인터페이스 모듈의 신호처리를 수행하는 5 단계를 포함한다.
즉, 사용자 영역에서 합법 응용 프로그램이 fwrite 함수를 호출하면, 이진 편집기를 통해서 실행파일이 수정되어서 수정된 라이브러리에 연결된다. 즉, fwrite를 호출하면 숨겨진 인터페이스를 통해서 수정된 라이브러리 영역에 연결된다.
먼저 수정된 라이브러리 영역에서, 사용자 공간에 버퍼가 할당되고, 해당 버퍼에 서명, 요청 유형 및 파라미터가 수신된다. 그 다음에 숨겨진 인터페이스인 리드 시스템 콜이 호출된다.
그 다음 커널 영역에서 버퍼에 수신된 서명과의 일치 여부, 해당 파일에 플래그 r이 설정되었는지 여부 등의 확인이 이루어진 후, 서명이 불일치하고 해당 파일에 플래그 r이 설정되어 있지 않을 때, 원래의 리드 시스템 콜 호출이 수행되어진다.
한편, 커널 영역에서 버퍼에 수신된 서명과 숨겨진 인터페이스를 통해서 입력된 서명이 일치하면, 이후 요청 유형에 대한 정보가 플래그 변경, 읽기, 쓰기, getdents 등을 확인하고, 요청 유형에 기반해서 숨겨진 인터페이스의 신호처리가 진행된다. 일 예로 앞서 수정된 라이브러리 영역에서 요청 유형이 쓰기 유형으로 설정되고 있으므로, 숨겨진 인터페이스는 쓰기 요청 유형에 기반해서 원래의 쓰기 시스템 콜을 호출한다. 그리고 숨겨진 인터페이스에 대한 신호처리가 이루어지면, 버퍼에 저장된 서명은 삭제된다.
다음은 본 발명에 따른 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치의 구체적인 실시 형태를 살펴본다.
Linux 5.0.7을 수정하여 본 발명을 프로토 타입한다. 실시예에 적용한 호스트 머신과 가상 머신의 사양은 도 8에 도시하고 있다. 그리고 읽기 및 쓰기 작업의 오버헤드를 측정하기 위하여 코어 유틸리티(coreutils) 8.31의 일부인 디스크 벤치마크 유틸리티 dd를 사용하였다.
디렉토리를 읽은 오버헤드를 측정하기 위해서 유틸리티의 실행시간인 ls를 측정한다. 이 유틸리티는 코어 유틸리티(coreutils) 8.31의 일부이고, 합법적인 응용 프로그램과 연결된 glibc 2.29를 숨겨진 인터페이스를 사용할 수 있도록 수정한다.
본 발명에서 플래그를 변경하기 위해 숨겨진 인터페이스를 통해 플래그 변경 요청을 커널에 보내는 유틸리티를 개발했다. 즉, 본 발명이 디스크 입/출력에 대한 최소한의 오버헤드를 발생시키고, 호스트에 침입한 공격자의 공격을 성공적으로 탐지하며, 또한 합법적인 응용 프로그램들에 의한 잘못된 경보도 생성하지 않음을 확인할 수 있다.
리드 시스템 콜의 성능 오버헤드는 숨겨진 인터페이스 및 플래그를 확인하여 발생한다. 도 7에 도시된 알고리즘에서 확인할 수 있는 바와 같이, 리드 시스템 콜이 호출될 때, 서명, 요청 타입, 파라미터 등이 저장된 버퍼가 판독되어 숨겨진 인터페이스에 대한 호출 여부를 확인한다.
이를 위해서 버퍼를 복사하고 서명을 비교하는 과정에서 성능 오버헤드가 발생한다. 이때 숨겨진 인터페이스가 호출되지 않으면 플래그가 검사되어 오버헤드가 발생한다.
본 발명에서 숨겨진 인터페이스를 통해서 파일을 읽기 위해서는 서명을 사용하여 리드 시스템 콜을 호출한다. 그리고 서명이 일치하면 숨겨진 인터페이스의 사용을 위한 필요한 신호처리가 수행된다. 읽기 요청은 원래의 리드 시스템 콜을 호출하여 처리된다. 따라서 숨겨진 인터페이스를 처리하면 숨겨진 인터페이스를 통해 파일을 읽는데 추가 오버 헤드가 발생한다.
본 발명에서 숨겨진 인터페이스를 통해서 파일을 쓰기 위해서는 리드 시스템 콜이 사용된다. 쓰기 요청에 대한 서명 및 데이터 구조가 함께 호출된다. 이후 숨겨진 인터페이스는 원래의 쓰기 시스템 콜을 호출하여 요청을 처리한다. 숨겨진 인터페이스를 통해 파일을 작성하는 성능 오버 헤드는 숨겨진 인터페이스를 처리하므로써 발생한다.
도 10는 유틸리티 dd로 측정한 파일 읽기 및 쓰기 처리량을 보여주고 있고, 도 11d은 지연 시간을 보여주고 있다.
요청 크기는 4KB에서 16MB로 다양하게 구성되고, 총 데이터량은 4GB로 동일하게 구성한다. 요청 수는 T/S이고, T는 총 데이터량 4GB, S는 요청 크기 4KB~16MB이다. 실험은 유틸리티 dd를 이용하여 100회 동안 처리량과 지연을 기록하였다.
도시되고 있는 그래프는 원래 실험치(Original)와 일반 인터페이스를 사용하는 일반(Regular)과 숨겨진 인터페이스를 사용한 본 발명(Hidden)의 처리량과 지연을 비교하였다.
숨겨진 인터페이스를 사용하는 본 발명의 경우, 데이터 파일을 읽고 쓰는데 오버헤드가 크게 발생할 것으로 예상되지만, 실제 측정한 결과는 도 10와 도 11에서 확인할 수 있는 바와 같이, 큰 차이가 없이 나타났다. 이것은 숨겨진 인터페이스를 사용하는 본 발명을 적용하여 데이터 파일을 읽고 쓰더라도 데이터 파일의 액세스의 전체 성능에 미치는 영향은 최소화이고, 따라서 오버헤드가 최소화 됨을 확인할 수 있다.
본 발명은 getdents 시스템 호출은 숨겨진 파일을 제거할 때 성능 오버헤드가 발생한다. 도 7에 도시된 알고리즘에서와 같이 getdents 함수는 모든 파일 목록을 얻기 위해서 원래의 시스템 호출이 먼저 이루어져야만 한다. 그리고 나서 파일들 중에서 플래그 h가 설정된 파일의 제거가 이루어진다.
이를 위해서 숨겨진 인터페이스를 이용한 getdents 함수의 처리 과정은, 플래그 h 그리고 플래그 f가 설정되지 않은 파일들만을 버퍼에 복사한다. 즉, 원래의 getdents 함수 신호처리과정에서 추가적인 메모리 복사 과정이 이루어지는 것이다.
이때 추가 메모리 복사 파일 수는 플래그 h와 플래그 f가 설정되지 않은 파일 수에 비례한다. 따라서 숨겨진 파일이 많을수록 디렉토리를 읽는데 오버헤드가 증가한다.
도 12는 ls 유틸리티의 처리량을 비교하고, 도 13은 지연값을 표시하고 있다. 처리량은 초당 파일 수로 측정되고, 지연값은 원래 값의 평균으로 정규화된다.
도 12의 (a) 경우 100개의 테스트 파일을 생성하고, 100개의 테스트 파일 중 플래그 h와 f의 비율을 0%,25%,50%,75%,100% 설정하였다. 추가 메모리 복사 수가 줄어들기 때문에 숨겨진 파일의 백분율에 따라 일반과 본 발명의 처리량이 약간 증가했다.
그러나 원래의 처리량은 변경되지 않는다. 총 파일 수가 1000개로 증가하면 도 12의 (b)와 같이 이 영향은 더욱 명확해진다. 숨김 파일이 없는 0%의 경우 일반과 본 발명의 처리량은 각각 원래의 경우보다 10.82% 및 9.53%가 낮았다. 그러나 숨겨진 파일의 비율이 증가하면, 일반과 본 발명의 처리량은 증가하는 반면에 원래의 값은 동일하게 유지된다.
본 발명의 구현을 위하여 수정된 코드 줄 수를 측정한다. 리눅스 커널 5.0.7의 356줄과 glibc 2.29의 76줄을 수정하였다. 즉, 도 14에 도시하고 있는 바와 같이, 커널영역에서 356 줄과, 라이브러리 영역에서 76줄을 수정하여 본 발명의 숨겨진 인터페이스를 구현하였다.
본 발명의 실시예를 기존의 허니 파일 기만 기법과 비교하면 도 15와 같은 결과를 얻을 수 있었다.
정찰단계에서 공격자는 호스트에 칩입하여 정보를 수집한다. 즉, 공격자는 시스템 파일을 읽어서 정보를 수집한다.
본 발명에서는 공격자가 액세스 할 수 있는 파일을 플래그 r을 설정한다. 이를 통해서 공격자가 시스템 파일을 액세스할 때, 플래그 r이 설정된 경우, 관리자에게 보고가 되면서, 관리자는 공격자의 침입을 감시할 수 있다.
일 예로 관리자는 테스트를 위한 사용자 계정을 만들고, 관리자는 홈 디렉토리에서 .bash_history 파일에 플래그 r을 설정한다.
공격자는 일반 인터페이스를 이용하여 호스트에 접근하고, 공격자는 cat 유틸리티를 이용하여 /bin 및 .bash_history 파일을 읽는 것이 가능해진다.
만약 기존의 허니 파일 기만 기법의 경우, 공격자를 유인하기 위하여 사용자 계정을 만들고, 이름이 비슷한 유인 파일(.command_history)을 생성하고, 홈 디렉토리에 적절히 배치한다.
공격자는 호스트에 접근하고, 공격자는 cat 유틸리티를 이용하여 .command_history를 읽는 것이 가능해진다.
이와 같이, 본 발명과 기존의 허니 파일 기만 기법을 비교해보면, 기존의 허니 파일 기만 기법의 경우, 유인 파일인 .command_history을 읽어야만 공격자를 감지할 수 있다. 그러나 본 발명은 실제 파일인 .bash_history을 이용하기 때문에 공격자를 탐지할 확률은 더 높다.
또한, 기존의 허니 파일 기만 기법은 합법적인 응용 프로그램 및 정상적인 사용자가 유인 파일인 .command_history을 읽는 경우가 발생하여, 잘못된 경보를 발생하는 일이 빈번하다. 그러나 본 발명에서는 합법적인 응용 프로그램 및 정상적인 사용자는 일반 인터페이스를 사용하지 않고, 숨겨진 인터페이스를 이용하기 때문에 미끼 파일인 .bash_history을 읽는 일은 발생하지 않는다.
랜섬웨어에 대해서 본 발명과 허니파일 기만 기법을 비교한 결과는 다음과 같다.
본 발명은 플래그 r을 /home 디렉토리에 설정하고, 랜섬웨어가 파일 검색을 시작하면, 경보 알람이 발생 가능하다. 즉, 랜섬웨어의 접근과 동시에 탐지가 이루어지는 것이다.
또한 본 발명에서 합법적인 응용 프로그램과 사용자는 숨겨진 디렉토리를 (/123qweASD)에서 스크립트를 실행하고, 기본 검색경로를 /123qweASD/bin으로 변경한다. 여기서 합법적인 응용 프로그램과 사용자는 암호처럼 숨겨진 디렉토리를 알고 있는 상태이다. 그리고 합법적인 응용 프로그램은 ls를 사용하여 /home 디렉토리를 읽는다. ls는 /123qweASD/bin에 있고, 숨겨진 인터페이스를 사용한다.
반면에 허니파일 기만 기법을 위해 유인 파일인 secret.doc를 /home에 배치한다.
본 발명과 허니파일 기만 기법 모두, 랜섬웨어를 탐지할 수 있다. 그러나 허니파일 기만 기법은 합법적인 사용자가 유인 파일을 읽는 경우에서도 잘못된 경보를 발생한다. 그러나 본 발명은 숨겨진 인터페이스를 이용하여 디렉토리를 읽기 때문에 유인 파일을 읽을 경우가 발생하지 않고 잘못된 경보를 발생하지 않는다.
로그 스크러빙(LOG SCRUBBING)의 경우, 공격자는 로그 파일을 수정하여 수행한 작업을 숨길 수 있다. 이러한 로그제거 공격을 탐지하기 위해서 본 발명에서는 syslog 파일을 플래그 w 설정한다.
이 경우, 단순히 로그 파일을 읽는 경우에서는 경보가 발생하지 않지만, 공격자가 로그 파일을 편집하려고 하면 관리자에게 보고되면서 경보가 발생되어진다.
본 발명에서는 합법 응용 프로그램에서 로그 파일의 기록을 할 때, 이진 편집기를 이용하여 실행 파일을 편집하고, 연결 라이브러리를 제공하는 방법을 사용한다. 특히, 본 발명은 숨겨진 인터페이스를 사용하여 로그 파일을 업데이트하기 때문에 잘못된 경보를 발생하지 않는다.
기존의 허니파일 기만기법은 이러한 공격자의 공격에 대응하기 위한 방법이 없다. 그러나 본 발명은 해당 파일에 플래그 w가 설정되어 있어서, 공격자가 쓰기를 하고자 할 때, 관리자에게 보고되면서 외부 침입을 탐지하는 것이 가능해진다.
본 발명은 데이터 손실을 방지하기 위해서 중요한 데이터 등의 등록파일에 대하여 일반 인터페이스로부터의 접근을 방지한다. 즉, 플래그 h가 설정된 파일은 일반 인터페이스를 통해서 볼 수 없도록 설정된다.
공격자 및 일반 인터페이스를 사용하는 허가되지 않은 사용자는 수정되지 않은 ls 유틸리티를 사용하여 데이터 파일에 접근한다. 반면에 본 발명은 숨겨진 인터페이스를 이용하여 수정된 ls 유틸리티를 사용하여 데이터 파일에 접근한다.
테스트를 위한 일 실시예로 관리자는 사용자 계정 victim을 만들고, /home / victim /Documents 디렉토리에 있는 top_secret.doc 파일에 플래그 h을 설정한다.
공격자는 일반 인터페이스인 ls 유틸리티를 사용하여 /home /victim /Documents 디렉토리를 읽는다. 그러나 top_secret.doc 파일에는 플래그 h가 설정되어 있으므로 일반 인터페이스로는 접근이 불가능하다.
본 발명의 경우, 합법적인 응용 프로그램 및 정상적인 사용자는 숨겨진 디렉토리(123qweASD)에서 스크립트를 실행하고(여기서 정상 사용자 및 합법적인 응용 프로그램은 숨겨진 디렉토리를 찾는 경로를 암호처럼 알고 있는 상태이다), 이진 편집기를 통해서 기본 검색경로를 /123qweASD/bin으로 변경한다.
합법적인 사용자는 변경된 경로인 /123qweASD /bin에 있으며, 숨겨진 인터페이스 ls를 사용하여 /home /victim /Documents 디렉토리를 읽는다.
따라서 본 발명은 공격자가 일반 인터페이스를 이용하여 디렉토리를 읽기 때문에 플래그 h가 설정된 top_secret.doc 파일을 찾지 못하므로, 데이터의 손실을 방지할 수 있다. 반면에 합법적인 응용 프로그램 및 사용자는 숨겨진 인터페이스를 사용하는 수정된 ls를 사용하여 해당 파일을 찾을 수 있다.
즉, 본 발명은 악의적인 사용자가 호스트에 침입했을 때, 이를 즉시 탐지할 수 있도록 숨겨진 인터페이스를 사용하는 것을 특징으로 한다. 특히 본 발명은 등록 파일에 대해서 공격자가 확인할 수 없도록 숨겨진 상태를 갖도록 설정하며, 가짜 파일에 대해서는 공격자가 접근시 즉시 관리자에게 보고될 수 있도록 파일 상태를 설정한다. 그리고 가짜 파일에 대한 합법 응용 프로그램이 접근이 불가능하도록 설정하여, 오탐이 발생될 수 있는 부분을 방지하는 것을 특징으로 한다.
이상에서 설명된 본 발명은 일반적인 컴퓨팅 디바이스를 포함하는 컴퓨팅 환경에서 구현된다. 컴퓨팅 환경은 컴퓨팅 디바이스를 포함 가능하다. 컴퓨팅 디바이스는 다른 단말과 신호를 송수신하는 모든 형태의 컴퓨팅 디바이스일 수 있다.
컴퓨팅 디바이스는 적어도 하나의 프로세서, 컴퓨터 판독 가능한 저장매체 및 통신버스를 포함한다. 프로세서는 컴퓨팅 디바이스로 하여금 앞서 언급된 실시예에 따라 동작하도록 제어할 수 있다. 프로세서는 컴퓨터 판독 가능한 저장매체에 저장된 하나 이상의 프로그램을 실행할 수 있다. 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능한 명령어를 포함할 수 있으며, 컴퓨터 실행 가능 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장매체는 컴퓨터 실행 가능 명령어 내지 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능한 저장 매체에 저장된 프로그램은 프로세서에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독한 가능 저장 매체는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 디바이스에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스는 프로세서, 컴퓨터 판독 가능한 저장 매체를 포함하여 컴퓨팅 장치의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 디바이스는 또한 하나 이상의 입출력 장치를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스 및 하나 이상의 통신 인터페이스를 포함할 수 있다. 입출력 인터페이스 및 통신 인터페이스는 통신 버스에 연결된다. 입출력 장치(미도시)는 입출력 인터페이스를 통해 컴퓨팅 디바이스의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치는 컴퓨 디바이스를 구성하는 일 컴포넌트로서 컴퓨팅 디바이스의 내부에 포함될 수도 있고, 컴퓨팅 디바이스와는 구별되는 별개의 장치로 컴퓨팅 디바이스와 연결될 수도 있다.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
이상의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
10 : 일반 인터페이스 모듈
20 : 숨겨진 인터페이스 모듈
30 : 저장모듈
40 : 제어모듈

Claims (27)

  1. 숨겨진 상태로 플래그가 설정되는 등록파일을 저장하는 저장모듈;
    사용자 영역과 커널 영역 사이에서 운용되는 제어모듈을 포함하고,
    제어모듈은, 사용자 영역과 커널 영역 사이에서 운용되는 인터페이스이고, 합법 응용 프로그램을 통해서 등록파일에 접근할 때 허용되고, 숨겨진 경로를 통해서 숨겨진 상태로 설정되는 숨겨진 인터페이스 모듈을 포함하고,
    숨겨진 인터페이스 모듈은 이진 편집기를 이용하여 숨겨진 경로 상에 존재하는 실행 파일을 수정해서 링크된 라이브러리를 변경하고, 사용자 영역에서 운용되는 합법 응용 프로그램을 이용해서 등록파일에 접근할 수 있도록 구성되고,
    숨겨진 인터페이스 모듈은 암호처럼 알고 있는 정보를 통해서 숨겨진 경로 상에 존재하는 파일과 디렉토리를 액세스할 수 있고,
    숨겨진 경로에 존재하는 파일과 디렉토리는 스크립트를 이용해서 숨겨진 경로의 연결을 구성하는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  2. 청구항 1에 있어서,
    저장모듈은 파일에 대한 읽기 액세스와 파일에 대한 쓰기 액세스가 수행되면 보고가 이루어지도록 플래그가 설정된 가짜파일을 저장하고,
    가짜파일은 사용자 영역과 커널 영역 사이에서 운용되는 일반 인터페이스 모듈을 통해서 표시가 이루어지는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  3. 청구항 2에 있어서,
    제어모듈은, 가짜파일을 모니터링하고 보고가 이루어지면 경보 알람을 발생하는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  4. 청구항 2에 있어서,
    가짜파일은 숨겨진 인터페이스 모듈을 이용해서 접근되지 않도록 설정되는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  5. 청구항 2에 있어서,
    저장모듈은 등록파일과 가짜파일의 플래그 설정상태에 대한 파일 조회테이블을 저장하는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  6. 청구항 5에 있어서,
    등록파일과 가짜파일에 대한 플래그값은 디렉토리에도 적용할 수 있는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  7. 청구항 1에 있어서,
    등록파일은 시스템 파일, 사용자 파일과 같이, 합법 응용 프로그램을 통해서 이용하거나 생성되는 파일을 포함하는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  8. 삭제
  9. 삭제
  10. 청구항 1에 있어서,
    숨겨진 경로와 스크립트는 숨겨진 상태를 갖도록 플래그가 설정되는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  11. 청구항 1에 있어서,
    숨겨진 인터페이스 모듈은 시스템 콜을 변경하여 구현하는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  12. 청구항 2에 있어서,
    저장모듈은 숨겨진 인터페이스 모듈과 일반 인터페이스 모듈을 이용해서 접근이 가능한 일반파일을 저장하고,
    일반파일은 플래그 상태 설정이 안된 파일로 구성되는 호스트 침입 탐지를 위한 파일 기반 제어장치.
  13. 숨겨진 상태로 플래그가 설정되는 등록파일을 저장모듈에 저장하는 단계;
    사용자 영역과 커널 영역 사이에서 제어모듈이 운용하는 단계를 포함하고,
    제어모듈은, 합법 응용 프로그램을 통해서 등록파일에 접근할 때 허용되고, 숨겨진 경로를 통해서 숨겨진 상태로 설정되는 숨겨진 인터페이스 모듈을 포함하고,
    숨겨진 인터페이스 모듈은 이진 편집기를 이용하여 숨겨진 경로 상에 존재하는 실행 파일을 수정해서 링크된 라이브러리를 변경하고, 사용자 영역에서 운용되는 합법 응용 프로그램을 이용해서 등록파일에 접근할 수 있도록 구성되고,
    숨겨진 인터페이스 모듈은 암호처럼 알고 있는 정보를 통해서 숨겨진 경로 상에 존재하는 파일과 디렉토리를 액세스할 수 있고,
    숨겨진 경로에 존재하는 파일과 디렉토리는 스크립트를 이용해서 숨겨진 경로의 연결을 구성하는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  14. 청구항 13에 있어서,
    저장모듈은 파일에 대한 읽기 액세스와 파일에 대한 쓰기 액세스가 수행되면 보고가 이루어지도록 플래그가 설정된 가짜파일을 저장하는 단계를 포함하고,
    가짜파일은 사용자 영역과 커널 영역 사이에서 운용되는 일반 인터페이스 모듈을 통해서 접근이 허용되는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  15. 청구항 14에 있어서,
    제어모듈은 가짜파일을 모니터링하고 보고가 이루어지면 경보 알람을 발생하는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  16. 청구항 15에 있어서,
    등록파일과 가짜파일에 대한 플래그값은 디렉토리에도 적용 가능한 호스트 침입 탐지를 위한 파일 기반 제어방법.
  17. 청구항 16에 있어서,
    저장모듈은 숨겨진 인터페이스 모듈과 일반 인터페이스 모듈을 이용해서 접근이 가능한 일반파일을 저장하는 단계를 포함하는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  18. 청구항 17에 있어서,
    일반파일에 대해서는 플래그 설정을 하지 않고,
    가짜파일에 대해서는 읽기 액세스 보고, 쓰기 액세스 보고, 숨겨진 인터페이스 모듈에 대해서 숨겨지도록 플래그 설정을 하고,
    등록파일에 대해서는 일반 인터페이스 모듈에 대해서 파일이 숨겨지도록 플래그 설정을 하는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  19. 청구항 13 내지 청구항 18 중 어느 한 청구항에 있어서,
    숨겨진 인터페이스 모듈은 사용자 영역과 커널 영역 사이에서 데이터 교환에 이용되는 포인터를 사용하는 시스템 콜을 변경하여 구현 가능한 호스트 침입 탐지를 위한 파일 기반 제어방법.
  20. 청구항 19에 있어서,
    숨겨진 인터페이스 모듈은, 리드 시스템 콜을 변경하여 구현하는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  21. 청구항 20에 있어서,
    숨겨진 인터페이스 모듈은 리드 시스템 콜을 호출하기 전에 데이터를 수신하기 위한 버퍼를 할당하고, 할당된 버퍼에 숨겨진 인터페이스 모듈에 대한 확인 정보인 서명, 요청 유형, 요청 특정 매개변수를 저장하는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  22. 청구항 21에 있어서,
    숨겨진 인터페이스 모듈은 서명이 일치하면 숨겨진 인터페이스 모듈의 사용을 허용하고, 숨겨진 인터페이스 모듈의 신호처리 후, 버퍼에 저장된 서명을 삭제하는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  23. 삭제
  24. 사용자 영역에서 합법 응용 프로그램을 통하여 fwrite 함수를 호출하는지 감시하는 1 단계;
    fwrite 함수가 호출되면, 숨겨진 경로에서 실행파일을 수정하여 변경된 라이브러리 영역에 진입한 숨겨진 인터페이스 모듈의 운용을 감시하는 2 단계;
    변경된 라이브러리 영역에서 할당된 버퍼에 서명, 요청 타입, 요청 특정 매개변수를 저장하고, 숨겨진 인터페이스 모듈을 호출하는 3 단계;
    서명이 일치하면, 숨겨진 인터페이스 모듈을 요청 타입에 기반해서 신호처리를 수행하는 4 단계; 및
    서명이 일치하지 않을 때, 원래의 숨겨진 인터페이스 모듈의 신호처리를 수행하는 5 단계를 포함하는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  25. 청구항 24에 있어서,
    숨겨진 인터페이스 모듈을 요청 타입에 기반해서 신호처리 후, 버퍼에 저장된 서명을 삭제하는 6 단계를 포함하는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  26. 청구항 24에 있어서,
    숨겨진 인터페이스 모듈은 저장모듈에 저장된 등록파일에 접근이 허용되고,
    등록파일은 숨겨진 인터페이스 모듈을 통해서만 접근이 이루어지고, 파일을 숨겨진 상태로 유지하는 플래그가 설정되는 호스트 침입 탐지를 위한 파일 기반 제어방법.
  27. 청구항 24에 있어서,
    저장모듈에는 가짜파일의 저장이 이루어지고, 가짜파일은 읽기 액세스 보고, 쓰기 액세스 보고를 위한 플래그가 설정되며,
    5단계에서 서명이 일치하지 않을 때, 파일에 설정된 플래그를 확인하여, 제어모듈에 보고가 이루어지는 호스트 침입 탐지를 위한 파일 기반 제어방법.


KR1020200057513A 2020-05-14 2020-05-14 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치 KR102309695B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200057513A KR102309695B1 (ko) 2020-05-14 2020-05-14 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200057513A KR102309695B1 (ko) 2020-05-14 2020-05-14 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치

Publications (1)

Publication Number Publication Date
KR102309695B1 true KR102309695B1 (ko) 2021-10-07

Family

ID=78609573

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200057513A KR102309695B1 (ko) 2020-05-14 2020-05-14 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치

Country Status (1)

Country Link
KR (1) KR102309695B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101216986B1 (ko) * 2012-03-20 2012-12-31 주식회사 시큐브 동적 라이브러리 및 코드 사인 기반의 파일 및 폴더 접근 제어 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101216986B1 (ko) * 2012-03-20 2012-12-31 주식회사 시큐브 동적 라이브러리 및 코드 사인 기반의 파일 및 폴더 접근 제어 시스템 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Teryl Taylor et al, "Hidden in Plain Sight: Filesystem View Separation for Data Integrity and Deception", Detection of Intrusions and Malware, and Vulnerability Assessment, pp. 256-278(2018.06.) *
미국특허공개 2013-0145465(Multilayered deception for intrusion detection and prevention)

Similar Documents

Publication Publication Date Title
US11611586B2 (en) Systems and methods for detecting a suspicious process in an operating system environment using a file honeypots
Milajerdi et al. Poirot: Aligning attack behavior with kernel audit records for cyber threat hunting
US11663323B2 (en) Process privilege escalation protection in a computing environment
US10691792B2 (en) System and method for process hollowing detection
US10614252B2 (en) Peer integrity checking system
US10122752B1 (en) Detecting and preventing crypto-ransomware attacks against data
US11586736B2 (en) Systems and methods for detecting malicious processes
US11947667B2 (en) Preventing ransomware from encrypting files on a target machine
US9230098B2 (en) Real time lockdown
US9147073B2 (en) System and method for automatic generation of heuristic algorithms for malicious object identification
EP2245572B1 (en) Detecting rootkits over a storage area network
US11409862B2 (en) Intrusion detection and prevention for unknown software vulnerabilities using live patching
US11314864B2 (en) Memory layout based monitoring
US11494491B2 (en) Systems and methods for protecting against malware code injections in trusted processes by a multi-target injector
CN110647744A (zh) 使用特定于对象的文件系统视图识别和提取关键危害取证指标
KR101223594B1 (ko) Lkm 루트킷 검출을 통한 실시간 운영정보 백업 방법 및 그 기록매체
Lee et al. PhantomFS: File-based deception technology for thwarting malicious users
Choi et al. PhantomFS-v2: Dare you to avoid this trap
KR102309695B1 (ko) 호스트 침입 탐지를 위한 파일 기반 제어방법 및 장치
CN112597492B (zh) 一种基于Windows内核的二进制可执行文件更改监测方法
KR102344966B1 (ko) 파일 기반 기만 기술을 이용한 공격 탐지 장치 및 방법
Gu et al. Gemini: Guest-transparent honey files via hypervisor-level access redirection
US11899782B1 (en) Preserving DLL hooks
US20230297685A1 (en) Remediation method to trace and clean up malicious files in a distributed malware detection system
US20230036599A1 (en) System context database management

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant