KR101473726B1 - 쉘코드 은닉 및 침입 탐지 장치 및 그 방법 - Google Patents

쉘코드 은닉 및 침입 탐지 장치 및 그 방법 Download PDF

Info

Publication number
KR101473726B1
KR101473726B1 KR1020120140618A KR20120140618A KR101473726B1 KR 101473726 B1 KR101473726 B1 KR 101473726B1 KR 1020120140618 A KR1020120140618 A KR 1020120140618A KR 20120140618 A KR20120140618 A KR 20120140618A KR 101473726 B1 KR101473726 B1 KR 101473726B1
Authority
KR
South Korea
Prior art keywords
image file
decoder
module
shellcode
decoders
Prior art date
Application number
KR1020120140618A
Other languages
English (en)
Other versions
KR20140072749A (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 KR1020120140618A priority Critical patent/KR101473726B1/ko
Publication of KR20140072749A publication Critical patent/KR20140072749A/ko
Application granted granted Critical
Publication of KR101473726B1 publication Critical patent/KR101473726B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

본 명세서는 24 비트의 BMP 파일에 실행 가능한 상태로 쉘 코드와 디코더를 은닉하는 쉘 코드 은닉 장치 및 그 방법과, 스테가노그래피(steganography) 기법을 근거로 이미지에서 메시지의 삽입 여부를 유추하고, 에뮬레이션 기법을 근거로 은닉된 쉘 코드를 탐지하는 침입 탐지 장치 및 그 방법에 관한 것이다. 이를 위하여 본 명세서에 따른 쉘코드 은닉 방법은, 스캐닝 모듈을 통해, 저장부에 미리 저장된 24 비트의 BMP 형식의 이미지 파일을 로딩하는 단계; 상기 스캐닝 모듈을 통해, 디코더 저장소에 미리 저장된 복수의 디코더 중에서 상기 로딩한 이미지 파일에 삽입 가능한 디코더가 있는지 여부를 확인하는 단계; 상기 스캐닝 모듈을 통해, 상기 확인 결과, 상기 복수의 디코더 중에서 상기 로딩한 이미지 파일에 삽입 가능한 디코더가 있을 때, 상기 삽입 가능한 디코더에 대응하는 해당 이미지 파일과 관련된 이미지 파일에 대한 정보를 결정 모듈에 전달하는 단계; 상기 결정 모듈을 통해, 상기 스캐닝 모듈로부터 전달된 상기 이미지 파일에 대한 정보를 은닉 모듈에 전달하는 단계; 및 상기 은닉 모듈을 통해, 상기 이미지 파일에 대한 정보를 근거로 상기 이미지 파일에 쉘코드 및 디코더를 삽입하는 단계;를 포함한다.

Description

쉘코드 은닉 및 침입 탐지 장치 및 그 방법{APPARATUS FOR HIDING SHELLCODE AND DETECTING AND INTRUSION AND METHOD THEREOF}
본 명세서는 쉘코드 은닉 및 침입 탐지 장치 및 그 방법에 관한 것으로, 특히 24 비트의 BMP 파일에 실행 가능한 상태로 쉘코드와 디코더를 은닉하는 쉘 코드 은닉 장치 및 그 방법과, 스테가노그래피(steganography) 기법을 근거로 이미지에서 메시지의 삽입 여부를 유추하고, 에뮬레이션 기법을 근거로 은닉된 쉘 코드를 탐지하는 침입 탐지 장치 및 그 방법에 관한 것이다.
일반적으로, 쉘코드(shellcode)는, 사이버 공격에 의해 대상 시스템에서 실행할 수 있는 명령어 코드의 집합이다.
이러한 상기 쉘코드는, 공격당한 시스템을 제어하여, 시스템에 원격 연결할 수 있게 하거나, 특정 악성 코드를 다운로드 받아 실행하게 하는 등의 다양한 역할을 수행한다.
또한, 방어 시스템에서는, 공격이 다양하더라도, 동일한 형태의 쉘코드가 사용된다는 점을 근거로 공격을 방어하고 있다.
이러한 탐지 방법에는, 상기 쉘코드에 항상 존재하는 시그너처(signature)를 활용한 기법(또는, 방법), 정규 표현식(Regular Expression)을 통한 패턴 기반 탐지 기법, 일반적인 데이터 트래픽과 다르다는 점을 이용한 통계 기반의 탐지 기법, 가상의 CPU와 레지스터를 구성하고 프로세스의 입력값을 모두 실행시킨 후 악성 행위를 한다고 판단이 되면 탐지를 하는 에뮬레이션 기법 등이 있다.
또한, 이러한 탐지를 회피하기 위해 난독화, 암호화, 쓰레기 코드 삽입 및 쉘코드를 다양하게 변형시키는 폴리몰픽(Polymorphism), 메타몰픽(Metamorphism) 기법이 제안되어 왔지만, 상기 설명된 통계 기반 탐지 기법과 에뮬레이션 기반 탐지 기법에 의해 탐지될 수 있다.
또한, 모든 쉘코드 명령을 영문자로 표현하는 영문자 쉘코드(English Shellcode)도 여전히 상기 에뮬레이션 기법에 의해 탐지된다.
한국 특허 출원 번호 제10-2007-0133772호
본 명세서의 목적은, 미리 지정된 형식의 이미지 파일에 공격 탐지 대상으로 주로 사용되는 쉘코드와 디코더를 은닉하는 쉘코드 은닉 및 침입 탐지 장치 및 그 방법을 제공하는 데 있다.
본 명세서의 다른 목적은, 스테가노그래피 기법이 적용된 은닉 기술을 식별하는 쉘코드 은닉 및 침입 탐지 장치 및 그 방법을 제공하는 데 있다.
본 명세서의 실시예에 따른 쉘코드 은닉 방법은, 스캐닝 모듈을 통해, 저장부에 미리 저장된 24 비트의 BMP 형식의 이미지 파일을 로딩하는 단계; 상기 스캐닝 모듈을 통해, 디코더 저장소에 미리 저장된 복수의 디코더 중에서 상기 로딩한 이미지 파일에 삽입 가능한 디코더가 있는지 여부를 확인하는 단계; 상기 스캐닝 모듈을 통해, 상기 확인 결과, 상기 복수의 디코더 중에서 상기 로딩한 이미지 파일에 삽입 가능한 디코더가 있을 때, 상기 삽입 가능한 디코더에 대응하는 해당 이미지 파일과 관련된 이미지 파일에 대한 정보를 결정 모듈에 전달하는 단계; 상기 결정 모듈을 통해, 상기 스캐닝 모듈로부터 전달된 상기 이미지 파일에 대한 정보를 은닉 모듈에 전달하는 단계; 및 상기 은닉 모듈을 통해, 상기 이미지 파일에 대한 정보를 근거로 상기 이미지 파일에 쉘코드 및 디코더를 삽입하는 단계;를 포함한다.
본 명세서와 관련된 일 예로서, 상기 복수의 디코더 중에서 상기 로딩한 이미지 파일에 삽입 가능한 디코더가 있는지 여부를 확인하는 단계는, 상기 이미지 파일의 데이터 영역을 순차적으로 검사하여, 상기 디코더 저장소에 미리 저장된 복수의 디코더 각각에 사용된 하나 이상의 명령값과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값이 있는지 여부를 확인할 수 있다.
본 명세서와 관련된 일 예로서, 상기 이미지 파일에 대한 정보는, 상기 디코더가 삽입 가능한 해당 이미지 파일, 상기 해당 이미지 파일에 삽입 가능한 하나 이상의 디코더 및, 상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 해당 이미지 파일의 데이터 영역의 명령값 중 적어도 하나의 정보를 포함할 수 있다.
본 명세서와 관련된 일 예로서, 상기 이미지 파일에 쉘코드 및 디코더를 삽입하는 단계는, 상기 은닉 모듈을 통해, 상기 쉘코드를 상기 이미지 파일에 대한 정보에 포함된 상기 이미지 파일의 LSB(Least Significant Bit)에 은닉하는 과정; 및 상기 은닉 모듈을 통해, 상기 이미지 파일에 대한 정보에 포함된 삽입 가능한 디코더를 명령 코드 단위로 더미 코드 또는 점프 코드를 삽입하는 방법을 통해 상기 이미지 파일의 데이터 영역에 은닉하는 과정;을 포함할 수 있다.
본 명세서와 관련된 일 예로서, 상기 디코더를 상기 이미지 파일의 데이터 영역에 은닉하는 과정은, 상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값을 상기 디코더의 명령값으로 변경하고, 이전 명령값과 새로 변경한 명령값 사이의 데이터 값을 조작하여 상기 더미 코드 또는 상기 점프 코드를 생성할 수 있다.
본 명세서의 실시예에 따른 쉘코드 은닉 장치는, 저장부에 미리 저장된 임의의 24 비트의 BMP 형식의 이미지 파일에 쉘코드와 디코더를 은닉하는 쉘코드 은닉 장치에 있어서, 복수의 디코더를 저장하는 디코더 저장소; 상기 디코더 저장소에 미리 저장된 복수의 디코더 중에서 상기 이미지 파일에 삽입 가능한 디코더가 있을 때, 상기 삽입 가능한 디코더에 대응하는 해당 이미지 파일과 관련된 이미지 파일에 대한 정보를 전달하는 스캐닝 모듈; 상기 스캐닝 모듈과 연동하며, 상기 스캐닝 모듈로부터 전달된 상기 이미지 파일에 대한 정보를 전달하는 결정 모듈; 및 상기 이미지 파일에 대한 정보를 근거로 상기 이미지 파일에 쉘코드 및 디코더를 삽입하는 은닉 모듈;을 포함한다.
본 명세서와 관련된 일 예로서, 상기 스캐닝 모듈은, 상기 이미지 파일의 데이터 영역을 순차적으로 검사하여, 상기 디코더 저장소에 미리 저장된 복수의 디코더 각각에 사용된 하나 이상의 명령값과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값이 있는지 여부를 확인할 수 있다.
본 명세서와 관련된 일 예로서, 상기 은닉 모듈은, 상기 쉘코드를 상기 이미지 파일에 대한 정보에 포함된 상기 이미지 파일의 LSB에 은닉하며, 명령 코드 단위로 더미 코드 또는 점프 코드를 삽입하는 방법을 통해 상기 이미지 파일에 대한 정보에 포함된 삽입 가능한 디코더를 상기 이미지 파일의 데이터 영역에 은닉할 수 있다.
본 명세서와 관련된 일 예로서, 상기 은닉 모듈은, 상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값을 상기 디코더의 명령값으로 변경하고, 이전 명령값과 새로 변경한 명령값 사이의 데이터 값을 조작하여 상기 더미 코드 또는 상기 점프 코드를 생성할 수 있다.
본 명세서의 실시예에 따른 침입 탐지 방법은, 스테가노그래피 탐지 모듈을 통해, 패킷 디코더로부터 전달된 데이터를 스테가노그래피(steganography) 기법을 통해 쉘코드의 은닉 여부를 유추하는 단계; 및 상기 스테가노그래피 탐지 모듈을 통해, 쉘코드 은닉이 의심스러운 데이터 또는 상기 쉘코드의 은닉 여부가 명확하게 판단되지 않은 데이터를 전달하는 단계; 에뮬레이션 탐지 모듈을 통해, 상기 전달된 쉘코드 은닉이 의심스러운 데이터 또는 상기 쉘코드의 은닉 여부가 명확하게 판단되지 않은 데이터를 명령어로 해독하고 실행하여 상기 쉘코드 은닉이 의심스러운 데이터 또는 상기 쉘코드의 은닉 여부가 명확하게 판단되지 않은 데이터가 공격 코드인지 여부를 검증하는 단계; 및 상기 검증 결과를 출력하는 단계;를 포함한다.
본 명세서와 관련된 일 예로서, 상기 스테가노그래피 기법은, 히스토그램 및, 개선된 LSB를 포함할 수 있다.
본 명세서의 실시예에 따른 침입 탐지 장치는, 스테가노그래피 기반의 쉘코드 은닉을 탐지하는 침입 탐지 장치에 있어서, 패킷 디코더로부터 전달된 데이터를 스테가노그래피 기법을 통해 쉘코드의 은닉 여부를 유추하고, 쉘코드 은닉이 의심스러운 데이터 또는 상기 쉘코드의 은닉 여부가 명확하게 판단되지 않은 데이터를 전달하는 스테가노그래피 탐지 모듈; 및 상기 전달된 쉘코드 은닉이 의심스러운 데이터 또는 상기 쉘코드의 은닉 여부가 명확하게 판단되지 않은 데이터를 명령어로 해독하고 실행하여 상기 쉘코드 은닉이 의심스러운 데이터 또는 상기 쉘코드의 은닉 여부가 명확하게 판단되지 않은 데이터가 공격 코드인지 여부를 검증하는 에뮬레이션 탐지 모듈;을 포함한다.
본 명세서의 실시예에 따른 쉘코드 은닉 및 침입 탐지 장치 및 그 방법은, 미리 지정된 형식의 이미지 파일에 공격 탐지 대상으로 주로 사용되는 쉘코드와 디코더를 은닉함으로써, 공세적 대응 객체에 대한 은닉 기술에 유용하고, 국방 사이버전 공세적 대응 기술에 유용할 수 있다.
또한, 본 명세서의 실시예에 따른 쉘코드 은닉 및 침입 탐지 장치 및 그 방법은, 네트워크를 통해 전파될 수 있는 스테가노그래피 기법이 적용된 은닉 기술(또는, 악성 행위)을 식별함으로써, 사이버 네트워크 방어 기술 응용에 유용할 수 있다.
도 1은 본 명세서의 실시예에 따른 쉘코드 은닉 장치(100)의 구성을 나타낸 블록도이다.
도 2는 본 명세서의 실시예에 따른 침입 탐지 장치(200)의 구성을 나타낸 블록도이다.
도 3은 본 명세서의 제1 실시예에 따른 쉘코드 은닉 방법을 나타낸 흐름도이다.
도 4 내지 도 7은 본 명세서의 제1 실시예에 따른 쉘코드 및 디코더의 은닉 결과를 나타낸 도이다.
도 8은 본 명세서의 제2 실시예에 따른 스테가노그래피 기법 기반의 침입 탐지 방법을 나타낸 흐름도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 따른 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 명세서의 실시예에 따른 쉘코드 은닉 장치(100)의 구성을 나타낸 블록도이다.
도 1에 도시한 바와 같이, 쉘코드 은닉 장치(100)는, 디코더 저장소(110), 스캐닝 모듈(120), 결정 모듈(130), 은닉 모듈(140) 및, 저장부(150)로 구성된다. 도 1에 도시된 쉘코드 은닉 장치(100)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 쉘코드 은닉 장치(100)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 쉘코드 은닉 장치(100)가 구현될 수도 있다.
상기 디코더 저장소(Decoder Repository)(110)는, 은닉시킨 쉘코드를 복원할 수 있는 디코더의 풀(pool)이다. 여기서, 상기 명세서의 일 실시예에서는, 상기 쉘코드가 LSB(Least Significant Bit)에 은닉된다.
또한, 상기 디코더 저장소(110)는, 디코더를 작성하는 사람에 따라 똑같은 일을 하더라도 다른 디코더가 나올 수 있음 고려하여, 복수의 디코더를 저장한다.
이와 같이, 상기 복수의 디코더가 상기 디코더 저장소(110)에 저장됨에 따라, 더욱 쉽게 임의의 이미지(또는, 이미지 파일)에 쉘코드를 은닉시킬 수 있다.
또한, 상기 디코더 저장소(110)는, 디코더의 명령 코드가 2 바이트(Byte)를 넘길 경우, 이미지 내에서 유사한 패턴을 찾기 어렵기 때문에, 최대 2 바이트 명령 코드로 이루어진 디코더를 저장한다.
상기 스캐닝 모듈(Scanning Module)(120)은, 상기 저장부(150)에 미리 저장된 특정 비트 수 및 특정 형식의 이미지 파일을 로딩한다(또는, 읽는다). 여기서, 상기 이미지 파일은, 24 비트의 BMP 형식(bitmap format)의 이미지 파일일 수 있다. 이때, 상기 24 비트의 BMP 형식의 이미지 파일은, 데이터 영역에 RGB(3 바이트) 값을 통해 하나의 픽셀(pixel)을 표현하는데 3 바이트가 하나의 픽셀을 나타내는 비압축 포맷이기 때문에, 약간 값을 수정하더라도 원본 이미지에 큰 차이가 발생하지 않는다. 따라서, 본 명세서에서는 상기와 같은 특성을 근거로, 임의의 공격자가 상기 이미지 파일의 데이터 영역의 값을 적절히 조작하여 쉘코드를 실행 가능한 상태로 은닉할 수 있도록 구성한다. 또한, 모든 종류의 쉘코드를 은닉할 수 있도록 상기와 같은 LSB에 쉘코드를 1 비트씩 은닉하고(또는, 숨기고), 상기 은닉된 쉘코드를 실행 순간에 복호화하여 원래 코드로 재조립할 수 있는 상기 디코더를 구성한다.
또한, 상기 스캐닝 모듈(120)은, 상기 결정 모듈(130)과의 연동을 통해, 상기 디코더 저장소(110)에 미리 저장된 복수의 디코더 중에서 상기 로딩한 이미지 파일(또는, 상기 로딩한 이미지 파일의 데이터 영역)에 삽입 가능한 디코더가 있는지 여부를 확인(또는, 판단)한다.
즉, 상기 스캐닝 모듈(120)은, 상기 결정 모듈(130)과의 연동을 통해, 상기 이미지 파일의 데이터 영역을 순차적으로 검사하여, 상기 디코더 저장소(110)에 미리 저장된 복수의 디코더 각각에 사용된 하나 이상의(또는, 각각의) 명령값(또는, 명령 코드)과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값이 있는지 여부를 확인한다.
또한, 상기 스캐닝 모듈(120)은, 상기 확인 결과(또는, 상기 판단 결과), 상기 로딩한 이미지 파일에 대해서 상기 복수의 디코더 중 삽입 가능한 디코더가 없는 경우에는, 상기 결정 모듈(130)과의 연동을 통해, 상기 저장부(150)에 미리 저장된 다른 이미지 파일을 로딩하고, 상기 명령값 유사 여부 확인 과정을 반복적으로 수행한다.
또한, 상기 스캐닝 모듈(120)은, 상기 확인 결과(또는, 상기 판단 결과), 상기 로딩한 이미지 파일에 대해서 상기 복수의 디코더 중 삽입 가능한 디코더가 있는 경우, 상기 삽입 가능한 디코더에 대응하는 해당 이미지 파일과 관련된 이미지 파일에 대한 정보를 상기 결정 모듈(130)에 전달한다. 여기서, 상기 이미지 파일에 대한 정보는, 상기 디코더가 삽입 가능한 해당 이미지 파일, 상기 해당 이미지 파일에 삽입 가능한 하나 이상의 디코더 및, 상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 해당 이미지 파일의 데이터 영역의 명령값(또는, 상기 디코더에 사용된 하나 이상의 명령값과 오차가 가장 적은 상기 해당 이미지 파일의 데이터 영역의 바이트) 등 중에서 적어도 하나의 정보를 포함한다.
상기 결정 모듈(Decision Module)(130)은, 상기 스캐닝 모듈(120)로부터 전달된 상기 이미지 파일에 대한 정보를 은닉 모듈(140)에 전달한다.
이때, 상기 결정 모듈(130)은, 상기 해당 이미지 파일에 삽입 가능한 디코더가 복수인 경우, 가장 거리가 짧은 하나의 디코더를 선택하고, 상기 선택된 디코더와 관련된(또는, 대응하는) 이미지 파일에 대한 정보(예를 들어, 상기 가장 거리가 짧은 디코더, 상기 가장 거리가 짧은 디코더가 삽입 가능한 이미지 파일 및, 상기 가장 거리가 짧은 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 해당 이미지 파일의 데이터 영역의 명령값 등의 정보 포함)를 상기 은닉 모듈(140)에 전달할 수도 있다.
또한, 상기 결정 모듈(130)은, 상기 스캐닝 모듈(120)과의 연동을 통해, 상기 저장부(150)로부터 더 이상 로딩할 이미지 파일이 없는 경우에는, 전체 작업을 종료할 수 있다.
상기 은닉 모듈(Hiding Module)(140)은, 상기 결정 모듈(130)로부터 전달된 상기 이미지 파일에 대한 정보를 근거로 은닉 과정을 수행한다.
즉, 상기 은닉 모듈(140)은, 상기 해당 이미지 파일에 삽입 가능한 디코더가 있을 때 상기 결정 모듈(130)로부터 전달된 상기 이미지 파일에 대한 정보를 근거로, 쉘코드를 상기 이미지 파일에 대한 정보에 포함된 상기 이미지 파일의 LSB에 은닉하고, 상기 이미지 파일에 대한 정보에 포함된 상기 삽입 가능한 디코더를 명령 코드 단위로 더미 코드 또는 점프 코드를 삽입하는 방법을 통해 상기 이미지 파일의 데이터 영역에 은닉한다. 이때, 상기 은닉 모듈(140)은, 상기 디코더(또는, 상기 삽입 가능한 디코더)에 사용된 하나 이상의 명령값과 가장 유사한 상기 해당 이미지 파일의 데이터 영역의 명령값을 상기 디코더의 명령값으로 변경하고, 이전 명령값과 새로 변경한 명령값 사이의 데이터 값을 조작하여 상기 더미 코드 또는 상기 점프 코드를 생성한다. 여기서, 상기 더미 코드는, 실행은 되지만 디코더의 전체적인 동작에는 결과적으로 아무런 영향을 미치지 않는 코드이다. 각 명령 코드 사이에 있는 값의 조작을 최소화하기 위해서, 단일 바이트 명령 코드로 된 더미 코드를 생성 및 사용한다. 또한, 상기 점프 코드는, 하나의 명령 코드에서 다음 명령 코드로 바로 이동하기 위해 삽입한다. 상기 더미 코드 또는 상기 점프 코드를 근거로 명령 코드를 연결하여, 하나의 완성된 디코더를 구성한다. 이때, 상기 디코더는, 상기 쉘코드가 숨겨진 영역에서 한 바이트씩 값을 읽어와 쉘코드가 숨겨진 마지막 비트를 모아 쉘코드를 재조립한다. 또한, 상기 디코더를 실행시킬 때, 상기 쉘코드가 숨겨져 있는 시작 위치를 알아내는 것이 필요하며, 본 명세서의 실시예에서는 CALL 명령어가 복귀 주소를 스택에 저장하는 점을 이용한다. 또한, 상기 디코더는, 시작 전에 pop만하면 쉘코드가 숨겨진 시작 위치를 획득할 수 있다.
또한, 상기 스캐닝 모듈(120), 상기 결정 모듈(130) 및, 상기 은닉 모듈(140)은 하나의 은닉 엔진을 형성할 수도 있다.
상기 저장부(150)는, 플래시 메모리 타입(Flash Memory Type), 하드 디스크 타입(Hard Disk Type), 멀티미디어 카드 마이크로 타입(Multimedia Card Micro Type), 카드 타입의 메모리(예를 들면, SD 또는 XD 메모리 등), 자기 메모리, 자기 디스크, 광디스크, 램(Random Access Memory : RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory : ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 중 적어도 하나의 저장매체를 포함할 수 있다. 또한, 쉘코드 은닉 장치(100)는 인터넷(internet)상에서 저장부(150)의 저장 기능을 수행하는 웹 스토리지(web storage)를 운영하거나, 또는 상기 웹 스토리지와 관련되어 동작할 수도 있다.
또한, 상기 저장부(150)는, 복수의 24 비트의 BMP 이미지 파일을 저장한다.
또한, 상기 쉘코드 은닉 장치(100)는, 내부의 임의의 구성 요소 또는, 임의의 다른 단말기 또는 서버 등과 유/무선 통신망을 통해 통신 연결하는 통신부(미도시)를 더 포함할 수 있다. 여기서, 무선 인터넷 기술로는, 무선랜(Wireless LAN : WLAN), 와이 파이(Wi-Fi), 와이브로(Wireless Broadband : Wibro), 와이맥스(World Interoperability for Microwave Access : Wimax), HSDPA(High Speed Downlink Packet Access), IEEE 802.16, 롱 텀 에볼루션(Long Term Evolution : LTE), 광대역 무선 이동 통신 서비스(Wireless Mobile Broadband Service : WMBS) 등이 포함될 수 있다. 또한, 근거리 통신 기술로는, 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association : IrDA), UWB(Ultra Wideband), 지그비(ZigBee), 인접 자장 통신(Near Field Communication; NFC) 등이 포함될 수 있다. 또한, 유선 통신 기술로는, 전력선 통신(Power Line Communication : PLC), USB 통신, 이더넷(Ethernet), 시리얼 통신(serial communication), 광/동축 케이블 등이 포함될 수 있다.
도 2는 본 명세서의 실시예에 따른 침입 탐지 장치(200)의 구성을 나타낸 블록도이다.
도 2에 도시한 바와 같이, 침입 탐지 장치(200)는, 스테가노그래피 탐지 모듈(210) 및, 에뮬레이션 탐지 모듈(220)로 구성된다. 도 2에 도시된 침입 탐지 장치(200)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 2에 도시된 구성 요소보다 많은 구성 요소에 의해 침입 탐지 장치(200)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 침입 탐지 장치(200)가 구현될 수도 있다.
상기 스테가노그래피 탐지 모듈(210)은, 상기 침입 탐지 장치(200)에 포함된 패킷 디코더(미도시)로부터 전달된 데이터를 연산이 간단한 스테가노그래피 기법을 통해 쉘코드의 은닉 여부를 유추한다. 여기서, 상기 스테가노그래피 기법은, 히스토그램 및, 개선된 LSB(enhanced LSB) 등을 포함한다. 이때, 상기 스테가노그래피 탐지 모듈(210)은, 기술 적용 가능성만 판단할 수 있는 스테가노그래피의 특성상, 명확하게 판단되지 않은 데이터를 상기 에뮬레이션 탐지 모듈(220)로 전달한다.
즉, 상기 스테가노그래피 탐지 모듈(210)은, 상기 데이터에 대한 쉘코드의 은닉 여부를 유추하고, 상기 유추 결과, 쉘코드 은닉이 의심스러운 데이터 또는 상기 쉘코드의 은닉 여부가 명확하게 판단되지 않은 데이터를 상기 에뮬레이션 탐지 모듈(220)로 전달한다.
상기 에뮬레이션 탐지 모듈(220)은, 상기 스테가노그래피 탐지 모듈(210)의 은닉 여부 유추 결과(또는, 상기 스테가노그래피 탐지 모듈(210)로부터 전달된 상기 데이터)를 근거로, 상기 명확하게 판단되지 않은 데이터(또는, 상기 쉘코드 은닉이 의심스러운 데이터)를 명령어(또는, 인스트럭션)로 해독하고 실행시켜 상기 데이터(또는, 상기 데이터에 포함된 값)가 공격 코드인지 아닌지를 검증한다.
즉, 상기 에뮬레이션 탐지 모듈(220)은, 가상의 레지스터와 중앙 처리 장치(CPU)를 구성하고, 상기 침입 탐지 장치(200) 내의 임의의 취약한 프로세스로 가는 네트워크 트래픽을 가로채어 특정 데이터(또는, 패킷)를 획득한다. 또한, 상기 에뮬레이션 탐지 모듈(220)은, 상기 획득한 데이터를 명령어로 해독하고 실행시켜 상기 획득한 데이터가 공격 코드인지 아닌지를 검증한다. 여기서, 상기 획득한 데이터는, 상기 스테가노그래피 탐지 모듈(210)로부터 전달되는 상기 명확하게 판단되지 않은 데이터 또는, 상기 쉘코드 은닉이 의심스러운 데이터에 대응할 수 있다.
또한, 상기 에뮬레이션 탐지 모듈(200)은, 상기 검증 결과, 상기 데이터가 공격 코드인 경우, 경고(또는, 알람) 신호를 출력하기 위한 경고 데이터베이스(미도시)와, 상기 경고 데이터베이스와 연동한 경고 생성부(미도시)를 더 포함할 수 있다.
또한, 상기 에뮬레이션 탐지 모듈(200)은, 상기 검증 결과를 출력하기 위한 표시부(미도시)를 더 포함할 수 있다.
상기 표시부는, 터치 스크린 일 수 있다.
또한, 상기 표시부는, 액정 디스플레이(Liquid Crystal Display : LCD), 박막 트랜지스터 액정 디스플레이(Thin Film Transistor-Liquid Crystal Display : TFT LCD), 유기 발광 다이오드(Organic Light-Emitting Diode : OLED), 플렉시블 디스플레이(Flexible Display), 3차원 디스플레이(3D Display), 전자잉크 디스플레이(e-ink display) 중에서 적어도 하나를 포함할 수 있다.
또한, 상기 쉘코드 은닉 장치(100) 및/또는 상기 침입 탐지 장치(200)는, 임의의 소프트웨어 모듈 형태로 구성하여, 임의의 장치(또는, 시스템)에 별도의 하드웨어 교체 없이 상기 장치의 모듈 업데이트를 통해 해당 장치에 구성할 수도 있다.
이와 같이, 미리 지정된 형식의 이미지 파일에 공격 탐지 대상으로 주로 사용되는 쉘코드와 디코더를 은닉하여, 공세적 대응 객체에 대한 은닉 기술에 유용하고, 국방 사이버전 공세적 대응 기술에 유용할 수 있다.
또한, 이와 같이, 네트워크를 통해 전파될 수 있는 스테가노그래피 기법이 적용된 은닉 기술(또는, 악성 행위)을 식별하여, 사이버 네트워크 방어 기술 응용에 유용할 수 있다.
이하에서는, 본 명세서에 따른 쉘코드 은닉 및 침입 탐지 방법을 도 1 내지 도 8을 참조하여 상세히 설명한다.
도 3은 본 명세서의 제1 실시예에 따른 쉘코드 은닉 방법을 나타낸 흐름도이다.
먼저, 스캐닝 모듈(120)은, 저장부(150)에 미리 저장된 특정 비트 수 및 특정 형식의 이미지 파일을 로딩한다(또는, 읽는다). 여기서, 상기 이미지 파일은, 24 비트의 BMP 형식의 이미지 파일일 수 있다(S310).
이후, 상기 스캐닝 모듈(120)은, 결정 모듈(130)과의 연동을 통해, 디코더 저장소(110)에 미리 저장된 복수의 디코더 중에서 상기 로딩한 이미지 파일(또는, 상기 로딩한 이미지 파일의 데이터 영역)에 삽입 가능한 디코더가 있는지 여부를 확인(또는, 판단)한다.
즉, 상기 스캐닝 모듈(120)은, 상기 결정 모듈(130)과의 연동을 통해, 상기 이미지 파일의 데이터 영역을 순차적으로 검사하여, 상기 디코더 저장소(110)에 미리 저장된 복수의 디코더 각각에 사용된 하나 이상의 명령값(또는, 명령 코드)과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값이 있는지 여부를 확인한다(S320).
이후, 상기 스캐닝 모듈(120)은, 상기 확인 결과(또는, 상기 판단 결과), 상기 로딩한 이미지 파일에 대해서 상기 복수의 디코더 중 삽입 가능한 디코더가 없는 경우에는, 상기 결정 모듈(130)과의 연동을 통해, 상기 저장부(150)에 미리 저장된 다른 이미지 파일을 로딩하여, 상기 단계(S320 단계)를 반복 수행한다.
또한, 상기 결정 모듈(130)은, 상기 저장부(150)로부터 더 이상 로딩할 이미지 파일이 없는 경우에는, 작업을 종료할 수 있다(S330).
또한, 상기 스캐닝 모듈(120)은, 상기 확인 결과(또는, 상기 판단 결과), 상기 로딩한 이미지 파일에 대해서 상기 복수의 디코더 중 삽입 가능한 디코더가 있는 경우, 상기 이미지 파일에 대한 정보를 상기 결정 모듈(130)에 전달한다. 여기서, 상기 이미지 파일에 대한 정보는, 상기 디코더가 삽입 가능한 해당 이미지 파일, 상기 해당 이미지 파일에 삽입 가능한 하나 이상의 디코더 및, 상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 해당 이미지 파일의 데이터 영역의 명령값(또는, 상기 디코더에 사용된 하나 이상의 명령값과 오차가 가장 적은 상기 해당 이미지 파일의 데이터 영역의 바이트) 등의 정보를 포함한다(S340).
이후, 상기 결정 모듈(130)은, 상기 스캐닝 모듈(120)로부터 전달된 상기 이미지 파일에 대한 정보를 은닉 모듈(140)에 전달한다.
이때, 상기 결정 모듈(130)은, 상기 해당 이미지 파일에 삽입 가능한 디코더가 복수인 경우, 가장 거리가 짧은 디코더를 선택하고, 상기 선택된 디코더와 관련된 이미지 파일에 대한 정보(예를 들어, 상기 가장 거리가 짧은 디코더, 상기 가장 거리가 짧은 디코더가 삽입 가능한 이미지 파일 및, 상기 가장 거리가 짧은 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 해당 이미지 파일의 데이터 영역의 명령값 등의 정보 포함)를 상기 은닉 모듈(140)에 전달할 수도 있다(S350).
이후, 상기 은닉 모듈(140)은, 상기 결정 모듈(130)로부터 전달된 상기 이미지 파일에 대한 정보를 근거로 은닉 과정을 수행한다.
즉, 상기 은닉 모듈(140)은, 상기 해당 이미지 파일에 삽입 가능한 디코더가 있을 때, 상기 결정 모듈(130)로부터 전달된 상기 이미지 파일에 대한 정보를 근거로 쉘코드를 상기 이미지 파일의 LSB에 은닉하고, 상기 삽입 가능한 디코더를 명령 코드 단위로 더미 코드 또는 점프 코드를 삽입하는 방법을 통해 은닉(예를 들어, 상기 은닉 모듈(140)은, 상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 해당 이미지 파일의 데이터 영역의 명령값을 상기 디코더의 명령값으로 변경하고, 이전 명령값과 새로 변경한 명령값 사이의 데이터 값을 조작하여 상기 더미 코드 또는 상기 점프 코드를 생성)한다. 여기서, 상기 더미 코드는, 실행은 되지만 디코더의 전체적인 동작에는 결과적으로 아무런 영향을 미치지 않는 코드이다. 각 명령 코드 사이에 있는 값의 조작을 최소화하기 위해서, 단일 바이트 명령 코드로 된 더미 코드를 생성 및 사용한다. 또한, 상기 점프 코드는, 하나의 명령 코드에서 다음 명령 코드로 바로 이동하기 위해 삽입한다. 상기 더미 코드 또는 상기 점프 코드를 근거로 명령 코드를 연결하여, 하나의 완성된 디코더를 구성한다.
일 예로, 상기 은닉 모듈(140)은, 도 4에 도시한 바와 같이, 24 비트의 BMP 파일의 데이터 영역에 더미 코드를 생성하여 디코더를 은닉(또는, 삽입)하고, 상기 24 비트의 BMP 파일의 LSB에 쉘코드를 은닉한다.
또한, 도 5는, 원본 이미지(왼쪽)에 대해서, 상기 은닉 모듈(140)에 의한 은닉 과정(상기 더미 코드 생성) 수행 이후의 수정된 이미지(오른쪽)를 나타낸다.
다른 일 예로, 상기 은닉 모듈(140)은, 도 6에 도시한 바와 같이, 24 비트의 BMP 파일의 데이터 영역에 점프 코드를 생성하여 디코더를 은닉하고, 상기 24 비트의 BMP 파일의 LSB에 쉘코드를 은닉한다.
또한, 도 7은, 원본 이미지(왼쪽)에 대해서, 상기 은닉 모듈(140)에 의한 은닉 과정(상기 점프 코드 생성) 수행 이후의 수정된 이미지(오른쪽)를 나타낸다(S360).
도 8은 본 명세서의 제2 실시예에 따른 스테가노그래피 기법 기반의 침입 탐지 방법을 나타낸 흐름도이다.
먼저, 스테가노그래피 탐지 모듈(210)은, 패킷 디코더(미도시)로부터 전달된 데이터를 연산이 간단한 스테가노그래피 기법(예를 들어, 히스토그램 및, 개선된 LSB(enhanced LSB) 등 포함)을 통해 쉘코드의 은닉 여부를 유추한다. 이때, 상기 스테가노그래피 탐지 모듈(210)은, 기술 적용 가능성만 판단할 수 있는 스테가노그래피의 특성상, 명확하게 판단되지 않은 데이터를 에뮬레이션 탐지 모듈(220)로 전달한다.
즉, 상기 스테가노그래피 탐지 모듈(210)은, 상기 데이터에 대한 쉘코드의 은닉 여부를 유추하고, 상기 유추 결과, 쉘코드 은닉이 의심스러운 데이터 또는 상기 쉘코드의 은닉 여부가 명확하게 판단되지 않은 데이터를 상기 에뮬레이션 탐지 모듈(220)로 전달한다(S810).
이후, 상기 에뮬레이션 탐지 모듈(220)은, 상기 스테가노그래피 탐지 모듈(210)의 은닉 여부 유추 결과(또는, 상기 스테가노그래피 탐지 모듈(210)로부터 전달된 상기 데이터)를 근거로, 상기 명확하게 판단되지 않은 데이터(또는, 상기 쉘코드 은닉이 의심스러운 데이터)를 명령어(또는, 인스트럭션)로 해독하고 실행시켜 상기 데이터(또는, 상기 데이터에 포함된 값)가 공격 코드인지 아닌지를 검증한다.
즉, 상기 에뮬레이션 탐지 모듈(220)은, 가상의 레지스터와 중앙 처리 장치(CPU)를 구성하고, 침입 탐지 장치(200) 내의 임의의 취약한 프로세스로 가는 네트워크 트래픽을 가로채어 특정 데이터(또는, 패킷)를 획득한다. 또한, 상기 에뮬레이션 탐지 모듈(220)은, 상기 획득한 데이터를 명령어로 해독하고 실행시켜 상기 획득한 데이터가 공격 코드인지 아닌지를 검증한다(S820).
이후, 상기 에뮬레이션 탐지 모듈(200)은, 상기 검증 결과, 상기 데이터가 공격 코드인 경우, 경고 데이터베이스(미도시)와 연동한 경고 생성부(미도시)를 통해 경고(또는, 알람) 신호를 출력한다(S830).
본 명세서의 실시예는 앞서 설명한 바와 같이, 미리 지정된 형식의 이미지 파일에 공격 탐지 대상으로 주로 사용되는 쉘코드와 디코더를 은닉하여, 공세적 대응 객체에 대한 은닉 기술에 유용하고, 국방 사이버전 공세적 대응 기술에 유용할 수 있다.
또한, 본 명세서의 실시예는 앞서 설명한 바와 같이, 네트워크를 통해 전파될 수 있는 스테가노그래피 기법이 적용된 은닉 기술(또는, 악성 행위)을 식별하여, 사이버 네트워크 방어 기술 응용에 유용할 수 있다.
전술한 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 쉘코드 은닉 장치 110: 디코더 저장소
120: 스캐닝 모듈 130: 결정 모듈
140: 은닉 모듈 150: 저장부
200: 침입 탐지 장치 210: 스테가노그래피 탐지 모듈
220: 에뮬레이션 탐지 모듈

Claims (14)

  1. 스캐닝 모듈을 통해, 저장부에 미리 저장된 24 비트의 BMP 형식의 이미지 파일을 로딩하는 단계;
    상기 스캐닝 모듈을 통해, 디코더 저장소에 미리 저장된 복수의 디코더 중에서 상기 로딩한 이미지 파일에 삽입 가능한 디코더가 있는지 여부를 확인하는 단계;
    상기 스캐닝 모듈을 통해, 상기 확인 결과, 상기 복수의 디코더 중에서 상기 로딩한 이미지 파일에 삽입 가능한 디코더가 있을 때, 상기 삽입 가능한 디코더에 대응하는 해당 이미지 파일과 관련된 이미지 파일에 대한 정보를 결정 모듈에 전달하는 단계;
    상기 결정 모듈을 통해, 상기 스캐닝 모듈로부터 전달된 상기 이미지 파일에 대한 정보를 은닉 모듈에 전달하는 단계; 및
    상기 은닉 모듈을 통해, 상기 이미지 파일에 대한 정보를 근거로 상기 이미지 파일에 쉘코드 및 디코더를 삽입하는 단계;를 포함하며,
    상기 복수의 디코더 중에서 상기 로딩한 이미지 파일에 삽입 가능한 디코더가 있는지 여부를 확인하는 단계는,
    상기 이미지 파일의 데이터 영역을 순차적으로 검사하여, 상기 디코더 저장소에 미리 저장된 복수의 디코더 각각에 사용된 하나 이상의 명령값과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값이 있는지 여부를 확인하는 것을 특징으로 하는 쉘코드 은닉 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 이미지 파일에 대한 정보는,
    상기 디코더가 삽입 가능한 해당 이미지 파일, 상기 해당 이미지 파일에 삽입 가능한 하나 이상의 디코더 및, 상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 해당 이미지 파일의 데이터 영역의 명령값 중 적어도 하나의 정보를 포함하는 것을 특징으로 하는 쉘코드 은닉 방법.
  4. 제1항에 있어서, 상기 이미지 파일에 쉘코드 및 디코더를 삽입하는 단계는,
    상기 은닉 모듈을 통해, 상기 쉘코드를 상기 이미지 파일에 대한 정보에 포함된 상기 이미지 파일의 LSB(Least Significant Bit)에 은닉하는 과정; 및
    상기 은닉 모듈을 통해, 상기 이미지 파일에 대한 정보에 포함된 삽입 가능한 디코더를 명령 코드 단위로 더미 코드 또는 점프 코드를 삽입하는 방법을 통해 상기 이미지 파일의 데이터 영역에 은닉하는 과정;을 포함하는 것을 특징으로 하는 쉘코드 은닉 방법.
  5. 제4항에 있어서, 상기 디코더를 상기 이미지 파일의 데이터 영역에 은닉하는 과정은,
    상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값을 상기 디코더의 명령값으로 변경하고, 이전 명령값과 새로 변경한 명령값 사이의 데이터 값을 조작하여 상기 더미 코드 또는 상기 점프 코드를 생성하는 것을 특징으로 하는 쉘코드 은닉 방법.
  6. 저장부에 미리 저장된 임의의 24 비트의 BMP 형식의 이미지 파일에 쉘코드와 디코더를 은닉하는 쉘코드 은닉 장치에 있어서,
    복수의 디코더를 저장하는 디코더 저장소;
    상기 디코더 저장소에 미리 저장된 복수의 디코더 중에서 상기 이미지 파일에 삽입 가능한 디코더가 있을 때, 상기 삽입 가능한 디코더에 대응하는 해당 이미지 파일과 관련된 이미지 파일에 대한 정보를 전달하는 스캐닝 모듈;
    상기 스캐닝 모듈과 연동하며, 상기 스캐닝 모듈로부터 전달된 상기 이미지 파일에 대한 정보를 전달하는 결정 모듈; 및
    상기 이미지 파일에 대한 정보를 근거로 상기 이미지 파일에 쉘코드 및 디코더를 삽입하는 은닉 모듈을 포함하며,
    상기 스캐닝 모듈은,
    상기 이미지 파일의 데이터 영역을 순차적으로 검사하여, 상기 디코더 저장소에 미리 저장된 복수의 디코더 각각에 사용된 하나 이상의 명령값과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값이 있는지 여부를 확인하는 것을 특징으로 하는 쉘코드 은닉 장치.
  7. 삭제
  8. 제6항에 있어서, 상기 이미지 파일에 대한 정보는,
    상기 디코더가 삽입 가능한 해당 이미지 파일, 상기 해당 이미지 파일에 삽입 가능한 하나 이상의 디코더 및, 상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 해당 이미지 파일의 데이터 영역의 명령값 중 적어도 하나의 정보를 포함하는 것을 특징으로 하는 쉘코드 은닉 장치.
  9. 제6항에 있어서, 상기 은닉 모듈은,
    상기 쉘코드를 상기 이미지 파일에 대한 정보에 포함된 상기 이미지 파일의 LSB에 은닉하며, 명령 코드 단위로 더미 코드 또는 점프 코드를 삽입하는 방법을 통해 상기 이미지 파일에 대한 정보에 포함된 삽입 가능한 디코더를 상기 이미지 파일의 데이터 영역에 은닉하는 것을 특징으로 하는 쉘코드 은닉 장치.
  10. 제9항에 있어서, 상기 은닉 모듈은,
    상기 디코더에 사용된 하나 이상의 명령값과 가장 유사한 상기 이미지 파일의 데이터 영역의 명령값을 상기 디코더의 명령값으로 변경하고, 이전 명령값과 새로 변경한 명령값 사이의 데이터 값을 조작하여 상기 더미 코드 또는 상기 점프 코드를 생성하는 것을 특징으로 하는 쉘코드 은닉 장치.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
KR1020120140618A 2012-12-05 2012-12-05 쉘코드 은닉 및 침입 탐지 장치 및 그 방법 KR101473726B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120140618A KR101473726B1 (ko) 2012-12-05 2012-12-05 쉘코드 은닉 및 침입 탐지 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120140618A KR101473726B1 (ko) 2012-12-05 2012-12-05 쉘코드 은닉 및 침입 탐지 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20140072749A KR20140072749A (ko) 2014-06-13
KR101473726B1 true KR101473726B1 (ko) 2014-12-18

Family

ID=51126527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120140618A KR101473726B1 (ko) 2012-12-05 2012-12-05 쉘코드 은닉 및 침입 탐지 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR101473726B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3093787A1 (en) 2015-05-11 2016-11-16 BlackFort Security INC. Apparatus and method for detecting unsteady flow of program

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101704703B1 (ko) * 2016-06-08 2017-02-08 (주)케이사인 더미 코드를 사용하는 애플리케이션 코드 은닉 장치 및 이를 이용한 애플리케이션 코드 은닉 방법
KR20180082694A (ko) * 2017-01-10 2018-07-19 (주) 코콤 스테가노 그래피를 이용한 스마트 기기 해킹 방지 방안
KR102079377B1 (ko) * 2018-06-04 2020-02-19 고려대학교 산학협력단 문서 파일의 악성 코드 무력화 서비스 제공 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3093787A1 (en) 2015-05-11 2016-11-16 BlackFort Security INC. Apparatus and method for detecting unsteady flow of program

Also Published As

Publication number Publication date
KR20140072749A (ko) 2014-06-13

Similar Documents

Publication Publication Date Title
JP6371790B2 (ja) 変更されたウェブページを判定するためのシステム及び方法
US9973531B1 (en) Shellcode detection
US9104872B2 (en) Memory whitelisting
CN102110210B (zh) 用于移动设备上的安全浏览的可信图形渲染
US10185595B1 (en) Program verification using hash chains
US20150363598A1 (en) Detection of malicious scripting language code in a network environment
US20150215336A1 (en) Method and system for protecting against unknown malicious activities by detecting a heap spray attack on an electronic device
KR101473726B1 (ko) 쉘코드 은닉 및 침입 탐지 장치 및 그 방법
CN102224505A (zh) 用于运行时攻击预防的系统和方法
CN104134143B (zh) 移动支付安全的保护方法、装置及云服务器
CN104052722A (zh) 网址安全性检测的方法、装置及系统
CN106919811B (zh) 文件检测方法和装置
KR102093274B1 (ko) 콘텐트 스캐닝 에이전트, 콘텐트 스캐닝 방법 및 그 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체
CN111149106B (zh) 使用多个设备证书进行密钥认证的设备和方法
EP3270318B1 (en) Dynamic security module terminal device and method for operating same
CN105320535A (zh) 一种安装包的校验方法、客户端、服务器及系统
US20190087573A1 (en) Detecting executable code within a data entity
KR102188396B1 (ko) 이미지 파일에 포함된 악성코드와 은닉 정보를 무력화하기 위한 장치 및 그의 구동 방법
CN109522683B (zh) 软件溯源方法、系统、计算机设备及存储介质
Kvarda et al. Software implementation of a secure firmware update solution in an IOT context
US10915654B2 (en) Data loss prevention
JP2010211453A (ja) ファイル改竄チェック方法および装置
CN110740112A (zh) 认证方法、装置和计算机可读存储介质
CA2981363A1 (en) Data protection
US20110191853A1 (en) Security techniques for use in malicious advertisement management

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