KR101663013B1 - 코드 주입 공격을 감지하는 장치 및 방법 - Google Patents

코드 주입 공격을 감지하는 장치 및 방법 Download PDF

Info

Publication number
KR101663013B1
KR101663013B1 KR1020100003856A KR20100003856A KR101663013B1 KR 101663013 B1 KR101663013 B1 KR 101663013B1 KR 1020100003856 A KR1020100003856 A KR 1020100003856A KR 20100003856 A KR20100003856 A KR 20100003856A KR 101663013 B1 KR101663013 B1 KR 101663013B1
Authority
KR
South Korea
Prior art keywords
address
input
code injection
page corresponding
page
Prior art date
Application number
KR1020100003856A
Other languages
English (en)
Other versions
KR20110083884A (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 KR1020100003856A priority Critical patent/KR101663013B1/ko
Priority to US12/885,672 priority patent/US8615806B2/en
Publication of KR20110083884A publication Critical patent/KR20110083884A/ko
Application granted granted Critical
Publication of KR101663013B1 publication Critical patent/KR101663013B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1475Passive attacks, e.g. eavesdropping or listening without modification of the traffic monitored

Abstract

코드 주입 공격을 감지하는 장치 및 방법이 개시된다. 본 발명의 일 측에 따른 코드 주입 공격을 감지하는 장치 및 방법은 주소에 대한 버퍼 미스를 감지하고, 주소에 대응하는 페이지가 갱신되었고, 주소에 대응하는 페이지의 모드가 사용자 모드이고, 주소의 페이지가 외부입력에 의해 삽입되었으면 코드 주입 공격으로 감지하는 것으로, 코드 주입 공격에 의해 주입된 악성 코드가 실행될 때의 발생하는 특징을 고려해서, 코드 주입 공격을 감지한다.

Description

코드 주입 공격을 감지하는 장치 및 방법{APPARATUS AND METHOD FOR DETECTING CODE INJECTION ATTACK}
기술분야는 악의적인 의도를 가진 공격자가 컴퓨터 시스템에서 운영체제 또는 응용프로그램의 취약점을 이용하여 자신이 만든 코드(code)를 현재 수행 중인 프로세스에 삽입하고 강제로 실행 시키는 코드 주입 공격을 감지하는 장치 및 방법에 관한 것이다.
코드 주입(Code Injection) 공격은 운영체제(OS) 또는 응용프로그램이 잘못된 데이터를 처리하는 과정에서 일어나는 현상(bug)을 활용하는 공격으로, 피해 시스템의 사용자가 공격을 인지하지 못하는 방법이다. 코드 주입 공격은 컴퓨터 시스템 내에서 공격자의 권한을 점차 확대시킨다.
코드 주입 공격에 의해 현재 실행 중인 프로세스, 특히 커널 모드(kernel mode)로 실행 중인 프로세스에 공격 코드가 주입되면, 공격자는 컴퓨터 시스템을 완전 장악할 수 있게 되어 공격자의 명령에 의해 동작하게 된다.
공격자는 코드 주입 공격을 통해 원격에서 공격 대상 시스템에 대한 루트(root) 권한을 획득하고 필요한 정보를 빼어 내거나, DDoS 공격을 위한 거점으로 활용할 수 있다.
또한, 코드 주입 공격은 공격 대상 시스템 사용자가 인지하지 못하는 경우가 대부분이므로 매우 위험하다고 할 수 있다. OS 및 응용프로그램 제작사들은 취약점이 발견되었을 때 patch를 통해 같은 방법으로는 다시는 공격하지 못하도록 할 수 있다.
코드 주입 공격은 소프트웨어의 결점이 없어지지 않는 한 존재하는 공격 방법이다. 하지만, 기본적으로 소프트웨어의 버그 또는 취약점은 없어 질 수가 없다.
본 발명의 일 측에 따른 코드 주입 공격을 감지하는 장치는,
프로그램 카운터가 지시하는 주소에 대응하는 페이지의 갱신 유무를갱신을 확인하는 갱신확인부와, 상기 프로그램 카운터가 지시하는 주소가 입/출력 함수에 의해 사용되었는지 여부를 확인하는 외부 입출력 확인부 및 상기 페이지의 갱신 유무 및페이지가 갱신되고, 상기 프로그램 카운터가 지시하는 주소가 상기 입/출력 타겟 테이블에 존재하는지 여부에 따라함수에 의해 사용되었으면 코드 주입 공격을공격으로 감지하는 코드 주입 감지부를 포함한다.
이때, 상기 갱신 확인부는, 상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 더티 비트(dirty bit)가 1이면 상기 주소에 대응하는 페이지가 갱신되었다고 판단할 수 있다.
이때, 상기 입/출력 함수에 의한 사용된 타겟 주소들을 저장하는 입/출력 타겟 테이블 및 시스템 콜 핸들러(system call handler)를 모니터링 해서 상기 입/출력 함수에 의한 호출이면 타겟 주소를 상기 입/출력 타겟 테이블에 저장하는 입/출력 모니터링부를 더 포함하고, 상기 외부 입출력 확인부는, 상기 프로그램 카운터가 지시하는 상기 주소가 상기 입/출력 타겟 테이블에 존재하는지 여부를 확인해서 상기 입/출력 함수에 의해 사용되었는지 여부를존재하는지를 확인할 수 있다.
이때, 상기 코드 주입 감지부는, 상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단할 수 있다.
이때, 상기 코드 주입 감지부는, 상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소에 대응하는 페이지의 모드가 사용자 모드이고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단할 수 있다.
이때, 상기 주소에 대응하는 페이지의 모드는, 상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 사용모드 정보를 통해 확인할 수 있다.
이때, 상기 버퍼 미스는, 상기 주소가 변환 색인 버퍼에 존재하지 않을 때 발생하는 미스이다.
본 발명의 일 측에 따른 코드 주입 공격을 감지하는 방법은, 프로그램 카운터가 지시하는 주소에 대응하는 페이지의 갱신 유무를갱신을 확인하는 단계와, 상기 프로그램 카운터가 지시하는 주소가 입/출력 타겟 테이블에 존재하는지 여부를 확인하는 단계; 및
상기 페이지의 갱신 유무 및 상기 프로그램 카운터가 지시하는 주소가 입/출력 함수에 의해 사용되었는지 여부에 따라확인하는 단계 및 상기 페이지가 갱신되고, 상기 주소가 입/출력 함수에 의해 사용되었으면 코드 주입 공격을공격으로 감지하는 단계를 포함한다.
이때, 상기 갱신 유무를갱신을 확인하는 단계는, 상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 더티 비트(dirty bit)가 1이면 상기 주소에 대응하는 페이지가 갱신되었다고 판단할 수 있다.
이때, 시스템 콜 핸들러(system call handler)를 모니터링 해서 상기 입/출력 함수에 의한 호출이면 타겟 주소를 입/출력 타겟 테이블에 저장하는 단계를 더 포함하고, 상기 입/출력 함수에 의해 사용되었는지 여부를사용되었는지를 확인하는 단계는, 상기 프로그램 카운터가 지시하는 상기 주소가 상기 입/출력 타겟 테이블에 존재하는지 여부를 확인해서 상기 입/출력 함수에 의해 사용되었는지 여부를존재하는지를 확인할 수 있다.
이때, 상기 코드 주입 공격을 감지하는 단계는, 상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단할 수 있다.
이때, 상기 코드 주입 공격을 감지하는 단계는, 상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소에 대응하는 페이지의 모드가 사용자 모드이고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단할 수 있다.
이때, 상기 주소에 대응하는 페이지의 모드는, 상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 사용모드 정보를 통해 확인할 수 있다.
이때, 상기 버퍼 미스는, 상기 주소가 변환 색인 버퍼에 존재하지 않을 때 발생하는 미스이다.
코드 주입 공격에 의해 주입된 악성 코드가 실행될 때의 발생하는 특징을 분석해서, 주소의 버퍼 미스가 감지되고, 주소에 대응하는 페이지가 갱신되었고, 주소에 대응하는 페이지의 모드가 사용자 모드이고, 주소가 입/출력 타겟 테이블에 존재하면 코드 주입 공격으로 감지하는 장치 및 방법에 관한 것으로, 코드 주입 공격이 실행되기 전에 감지할 수 있다. 또한 코드 주입 공격을 방지하기 위해 소프트웨어의 취약점을 보안 패치하지 않아도, 신규의 코드 주입 공격을 차단할 수 있다.
도 1은 본 발명의 일 실시 예에 따라 코드 주입 공격을 감지하는 장치의 구성을 도시한 도면 및,
도 2는 본 발명의 일 실시 예에 따라 코드 주입 공격을 감지하는 과정을 도시한 흐름도이다.
이하, 제안되는 실시 예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 제안되는 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
제안되는 실시 예는 악의적인 의도를 가진 공격자가 컴퓨터 시스템에서 운영체제 또는 응용프로그램의 취약점을 이용하여 자신이 만든 코드(code)를 현재 수행 중인 프로세스에 삽입하고 강제로 실행 시킬 때 발생하는 특징을 감지해서 코드 주입 공격을 감지하는 장치 및 방법에 관한 것이다.
도 1은 본 발명의 일 실시 예에 따라 코드 주입 공격을 감지하는 장치의 구성을 도시한 도면이다. 이하 설명에서 코드 주입 공격을 감지하는 장치인 공격 감지 장치는 개인용 컴퓨터와 같은 컴퓨터 시스템에 포함되는 장치 일수도 있고, 셀룰라 전화기(cellular phone), 개인휴대통신 전화기(PCS: Personal Communication system), 복합무선단말기(PDA: Personal Data Assistant), IMT2000(international mobile communication-2000) 단말기, 4G(OFDM: Orthogonal Frequency Division Multiplexing)단말기 등과 같은 휴대용 단말기에 포함되는 장치 일 수 있다.
도 1을 참조하면, 공격 감지 장치(100)는 버퍼 관리부(101), 갱신 확인부(102), 모드 확인부(103), 외부 입출력 확인부(104), 입/출력 모니터링부(105), 입/출력 타겟 테이블(106) 및 코드 주입 감지부(107)를 포함한다.
버퍼 관리부(101)는 프로그램 카운터(Program Counter)가 지시하는 주소가 변환 색인 버퍼(TLB: Translation Lookaside Buffer)에 존재하지 않을 때 발생하는 버퍼 미스를 감지한다.
버퍼 관리부(101)는 버퍼 미스를 감지하면, 버퍼 미스를 감지했음을 갱신 확인부(102), 모드 확인부(103), 외부 입출력 확인부(104) 및 코드 주입 감지부(107)로 알린다.
갱신 확인부(102)는 페이지 테이블(Page Table)(110)에서 주소에 대응하는 페이지의 갱신을 확인한다. 갱신 확인부(102)는 갱신확인을 주소에 대응하는 페이지의 페이지 테이블 요소(PTE)에 기재된 더티 비트(dirty bit)를 이용해서 확인한다. 더티 비트(dirty bit)는 페이지의 내용이 변경되면 1로 기록되는 정보로서, 커널 모드에서 1로 변경되었더라도 사용자 모드로 전환될 때 0으로 리셋된다. 즉, 갱신 확인부(102)는 더티 비트가 1인지 확인한다.
모드 확인부(103)는 페이지 테이블(Page Table) (110)에서 주소에 대응하는 페이지의 페이지 테이블 요소(PTE)에 기재된 사용모드 정보를 확인한다. 사용모드의 종류에는 커널 모드와 사용자 모드(user mode)가 존재한다. 코드 주입 공격은 사용자 모드에서 시작된다. 즉, 사용자 모드 확인부(103)는 페이지 테이블(110)에서 주소에 대응하는 페이지가 사용자 모드인지 확인한다.
입/출력 모니터링부(105)는 시스템 콜 핸들러(system call handler)를 모니터링 해서 입/출력 함수에 의한 호출이면 타겟 주소를 입/출력 타겟 테이블(106)에 저장한다. 입/출력 모니터링부(105)에서 시스템 콜 핸들러를 모니터링 해서 입/출력 함수에 의해 사용된 타겟 주소를 저장하는 이유는 공격자가 사용자 모드에서 공격 코드를 메모리에 주입하기 위해서는 외부 입/출력 함수를 사용해야만 하기 때문이다.
입/출력 타겟 테이블(106)는 입/출력 모니터링부(105)의 제어에 따라 입/출력 함수에 의해 사용된 주소들을 저장한다.
외부 입출력 확인부(104)는 프로그램 카운터(Program Counter)가 지시하는 주소가 입/출력 타겟 테이블(106)에 존재하는지 확인한다. 외부 입출력 확인부(104)는 입/출력 타겟 테이블(106)에 주소가 존재하면 외부 입력을 통해 주소에 대응하는 페이지가 변경되었다고 판단한다.
코드 주입 감지부(107)는 버퍼 미스가 감지되고, 주소의 페이지가 갱신되었고, 주소의 페이지가 사용자 모드이고, 주소가 입출력 타겟 테이블에 존재하면, 코드 주입 공격이 발생했다고 판단한다.
한편, 코드 주입 감지부(107)는 버퍼 미스가 감지되고, 주소의 페이지가 갱신되었으면 코드 주입 공격이 발생했다고 판단할 수도 있다.
그리고, 코드 주입 감지부(107)는 버퍼 미스가 감지되고, 주소의 페이지가 갱신되었고, 주소의 페이지가 사용자 모드이면 코드 주입 공격이 발생했다고 판단할 수도 있다.
그리고, 코드 주입 감지부(107)는 버퍼 미스가 감지되고, 주소의 페이지가 갱신되었고, 주소가 입출력 타겟 테이블에 존재하면, 코드 주입 공격이 발생했다고 판단할 수도 있다.
이하, 상기와 같이 구성된 코드 주입 공격을 감지하는 방법을 아래에서 도면을 참조하여 설명한다.
도 2는 본 발명의 일 실시 예에 따라 코드 주입 공격을 감지하는 과정을 도시한 흐름도이다.
도 2를 참조하면 공격 감지 장치(100)는 210단계에서 프로그램 카운터(Program Counter)가 지시하는 주소가 변환 색인 버퍼에 존재하지 않을 때 발생하는 버퍼 미스의 발생을 감지한다.
210단계의 확인결과 버퍼 미스가 감지되면, 공격 감지 장치(100)는 212단계에서 페이지 테이블에서 주소의 페이지가 갱신을 확인한다. 갱신 확인은 주소에 대응하는 페이지의 페이지 테이블 요소(PTE)가 더티 비트(dirty bit) = 1을 만족하는지 확인해서 더티비트가 1이면 갱신되었다고 판단한다.
212단계의 확인결과 주소의 페이지가 갱신 되었으면, 공격 감지 장치(100)는 214단계에서 페이지 테이블에서 주소에 대응하는 페이지의 모드를 확인해서 사용자 모드인지 확인한다. 모드 확인은 주소에 대응하는 페이지의 페이지 테이블 요소(PTE)의 사용모드 정보를 통해 확인할 수 있다.
214단계의 확인결과 주소의 페이지가 사용자 모드이면, 공격 감지 장치(100)는 216단계에서 주소가 입출력 타겟 테이블에 존재하는지 확인한다. 주소가 입출력 타겟 테이블에 존재한다는 것은 주소가 외부 입출력에 사용되었다는 의미이다. 공격자는 사용자 모드에서 공격 코드를 메모리에 주입하기 위해서 외부 입/출력 함수를 사용해야만 한다. 입/출력 타겟 테이블은 입/출력 함수에 의해 사용된 타겟 주소들을 저장한다.
216단계의 확인결과 주소가 입출력 타겟 테이블에 존재하면, 공격 감지 장치(100)는 218단계에서 코드 주입 공격으로 감지한다.
한편, 210단계의 확인결과 버퍼 미스가 감지되지 않거나, 212단계의 확인결과 갱신 되지 않았거나, 214단계의 확인결과 주소에 대응하는 페이지가 커널 모드이거나 216단계의 확인결과 주소가 입출력 타겟 테이블에 존재하지 않으면, 공격 감지 장치(100)는 코드 주입 공격이 아니라고 판단하고 210단계로 돌아가 일련의 과정을 반복한다.
상기한 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100; 공격 감지 장치
101; 버퍼 관리부
102; 갱신 확인부
103; 모드 확인부
104; 외부 입출력 확인부
105; 입/출력 모니터링부
106; 입/출력 타겟 테이블
107; 코드 주입 감지부

Claims (14)

  1. 프로그램 카운터가 지시하는 주소에 대응하는 페이지의 갱신을 확인하는 갱신확인부;
    상기 프로그램 카운터가 지시하는 주소가 입/출력 함수에 의해 사용되었는지 확인하는 외부 입출력 확인부; 및
    상기 페이지가 갱신되고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 코드 주입 공격으로 감지하는 코드 주입 감지부를 포함하는,
    코드 주입 공격을 감지하는 장치.
  2. 제1항에 있어서,
    상기 갱신 확인부는,
    상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 더티 비트(dirty bit)가 1이면 상기 주소에 대응하는 페이지가 갱신되었다고 판단하는
    코드 주입 공격을 감지하는 장치.
  3. 제1항에 있어서,
    상기 입/출력 함수에 의한 사용된 타겟 주소들을 저장하는 입/출력 타겟 테이블; 및
    시스템 콜 핸들러(system call handler)를 모니터링 해서 상기 입/출력 함수에 의한 호출이면 타겟 주소를 상기 입/출력 타겟 테이블에 저장하는 입/출력 모니터링부를 더 포함하고,
    상기 외부 입출력 확인부는,
    상기 프로그램 카운터가 지시하는 상기 주소가 상기 입/출력 타겟 테이블에 존재하는지를 확인하는
    코드 주입 공격을 감지하는 장치.
  4. 제1항에 있어서,
    상기 코드 주입 감지부는,
    상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단하는
    코드 주입 공격을 감지하는 장치.
  5. 제1항에 있어서,
    상기 코드 주입 감지부는,
    상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소에 대응하는 페이지의 모드가 사용자 모드이고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단하는
    코드 주입 공격을 감지하는 장치.
  6. 제5항에 있어서,
    상기 주소에 대응하는 페이지의 모드는,
    상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 사용모드 정보를 통해 확인하는
    코드 주입 공격을 감지하는 장치.
  7. 제4항 또는 제5항에 있어서,
    상기 버퍼 미스는,
    상기 주소가 변환 색인 버퍼에 존재하지 않을 때 발생하는 미스인
    코드 주입 공격을 감지하는 장치.
  8. 프로그램 카운터가 지시하는 주소에 대응하는 페이지의 갱신을 확인하는 단계;
    상기 프로그램 카운터가 지시하는 주소가 입/출력 함수에 의해 사용되었는지 확인하는 단계; 및
    상기 페이지가 갱신되고, 상기 주소가 입/출력 함수에 의해 사용되었으면 코드 주입 공격으로 감지하는 단계를 포함하는,
    코드 주입 공격을 감지하는 방법.
  9. 제8항에 있어서,
    상기 갱신을 확인하는 단계는,
    상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 더티 비트(dirty bit)가 1이면 상기 주소에 대응하는 페이지가 갱신되었다고 판단하는
    코드 주입 공격을 감지하는 방법.
  10. 제8항에 있어서,
    시스템 콜 핸들러(system call handler)를 모니터링 해서 상기 입/출력 함수에 의한 호출이면 타겟 주소를 입/출력 타겟 테이블에 저장하는 단계를 더 포함하고,
    상기 입/출력 함수에 의해 사용되었는지를 확인하는 단계는,
    상기 프로그램 카운터가 지시하는 상기 주소가 상기 입/출력 타겟 테이블에 존재하는지를 확인하는
    코드 주입 공격을 감지하는 방법.
  11. 제8항에 있어서,
    상기 코드 주입 공격을 감지하는 단계는,
    상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단하는
    코드 주입 공격을 감지하는 방법.
  12. 제8항에 있어서,
    상기 코드 주입 공격을 감지하는 단계는,
    상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소에 대응하는 페이지의 모드가 사용자 모드이고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단하는
    코드 주입 공격을 감지하는 방법.
  13. 제12항에 있어서,
    상기 주소에 대응하는 페이지의 모드는,
    상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 사용모드 정보를 통해 확인하는
    코드 주입 공격을 감지하는 방법.
  14. 제11항 또는 제12항에 있어서,
    상기 버퍼 미스는,
    상기 주소가 변환 색인 버퍼에 존재하지 않을 때 발생하는 미스인
    코드 주입 공격을 감지하는 방법.
KR1020100003856A 2010-01-15 2010-01-15 코드 주입 공격을 감지하는 장치 및 방법 KR101663013B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100003856A KR101663013B1 (ko) 2010-01-15 2010-01-15 코드 주입 공격을 감지하는 장치 및 방법
US12/885,672 US8615806B2 (en) 2010-01-15 2010-09-20 Apparatus and method for detecting a code injection attack

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100003856A KR101663013B1 (ko) 2010-01-15 2010-01-15 코드 주입 공격을 감지하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110083884A KR20110083884A (ko) 2011-07-21
KR101663013B1 true KR101663013B1 (ko) 2016-10-06

Family

ID=44278524

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100003856A KR101663013B1 (ko) 2010-01-15 2010-01-15 코드 주입 공격을 감지하는 장치 및 방법

Country Status (2)

Country Link
US (1) US8615806B2 (ko)
KR (1) KR101663013B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200054752A (ko) * 2018-11-12 2020-05-20 주식회사 안랩 메시지 모니터링 장치 및 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012154664A2 (en) * 2011-05-06 2012-11-15 University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for detecting injected machine code
US9323923B2 (en) 2012-06-19 2016-04-26 Deja Vu Security, Llc Code repository intrusion detection
US10198572B2 (en) * 2013-09-17 2019-02-05 Microsoft Technology Licensing, Llc Virtual machine manager facilitated selective code integrity enforcement
KR101477050B1 (ko) * 2014-05-28 2015-01-08 충남대학교산학협력단 메모리 덤프 기법을 이용한 어플리케이션의 실행코드 추출 방법
US9779240B2 (en) * 2015-01-30 2017-10-03 Vmware, Inc. System and method for hypervisor-based security
KR102410692B1 (ko) * 2015-03-30 2022-06-17 삼성전자주식회사 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템
US10311229B1 (en) 2015-05-18 2019-06-04 Amazon Technologies, Inc. Mitigating timing side-channel attacks by obscuring alternatives in code
US10868665B1 (en) * 2015-05-18 2020-12-15 Amazon Technologies, Inc. Mitigating timing side-channel attacks by obscuring accesses to sensitive data
US10255434B2 (en) 2015-09-17 2019-04-09 Qualcomm Incorporated Detecting software attacks on processes in computing devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014667A1 (en) * 2001-07-16 2003-01-16 Andrei Kolichtchak Buffer overflow attack detection and suppression
KR100456512B1 (ko) * 2002-05-06 2004-11-10 한국전자통신연구원 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법
NO20050564D0 (no) * 2005-02-02 2005-02-02 Tore Lysemose Hansen Programmonitor for a identifisere uautorisert inntrenging i datasystemer
US7444331B1 (en) * 2005-03-02 2008-10-28 Symantec Corporation Detecting code injection attacks against databases
US7558796B1 (en) * 2005-05-19 2009-07-07 Symantec Corporation Determining origins of queries for a database intrusion detection system
US20090144561A1 (en) * 2005-07-11 2009-06-04 Davidson Jack W Method and System for Software Protection Using Binary Encoding
US20070083770A1 (en) * 2005-09-17 2007-04-12 Technology Group Northwest Inc. System and method for foiling code-injection attacks in a computing device
KR100786725B1 (ko) * 2005-11-08 2007-12-21 한국정보보호진흥원 악성코드 분석 시스템 및 방법
KR100876637B1 (ko) * 2006-11-23 2009-01-09 한국전자통신연구원 Linux 운영체제에서 소프트웨어 공격 탐지 장치 및 방법
US8141163B2 (en) * 2007-07-31 2012-03-20 Vmware, Inc. Malicious code detection
KR100938672B1 (ko) 2007-11-20 2010-01-25 한국전자통신연구원 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법
US8613096B2 (en) * 2007-11-30 2013-12-17 Microsoft Corporation Automatic data patch generation for unknown vulnerabilities
US8387139B2 (en) * 2008-02-04 2013-02-26 Microsoft Corporation Thread scanning and patching to disable injected malware threats
KR100968120B1 (ko) * 2008-03-10 2010-07-06 주식회사 안철수연구소 코드 변형 감지 시스템 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200054752A (ko) * 2018-11-12 2020-05-20 주식회사 안랩 메시지 모니터링 장치 및 방법
KR102146882B1 (ko) * 2018-11-12 2020-08-21 주식회사 안랩 메시지 모니터링 장치 및 방법

Also Published As

Publication number Publication date
US20110179490A1 (en) 2011-07-21
US8615806B2 (en) 2013-12-24
KR20110083884A (ko) 2011-07-21

Similar Documents

Publication Publication Date Title
KR101663013B1 (ko) 코드 주입 공격을 감지하는 장치 및 방법
RU2522019C1 (ru) Система и способ обнаружения угроз в коде, исполняемом виртуальной машиной
EP3103056B1 (en) Methods and apparatus for protecting operating system data
RU2646352C2 (ru) Система и способ для применения индикатора репутации для облегчения сканирования на наличие вредоносных программ
US7779062B2 (en) System for preventing keystroke logging software from accessing or identifying keystrokes
US9330259B2 (en) Malware discovery method and system
US8195953B1 (en) Computer program with built-in malware protection
US8719924B1 (en) Method and apparatus for detecting harmful software
US20150058987A1 (en) Detecting File Encrypting Malware
US9588829B2 (en) Security method and apparatus directed at removable storage devices
US9183392B2 (en) Anti-malware tool for mobile apparatus
David et al. Cloaker: Hardware supported rootkit concealment
CN107330328B (zh) 防御病毒攻击的方法、装置及服务器
JP2009520293A (ja) コンピュータにおける悪意のあるソフトウェアの検出
KR101756692B1 (ko) 다이나믹 보안모듈 단말장치 및 그 구동방법
KR101964148B1 (ko) 기계 학습 기반으로 이상 행위를 분석하는 유무선 공유기 및 그 방법
JP2010262609A (ja) 効率的なマルウェアの動的解析手法
US9959406B2 (en) System and method for zero-day privilege escalation malware detection
Dixon et al. On rootkit and malware detection in smartphones
KR20110131627A (ko) 악성 코드 진단 및 복구 장치, 그리고 이를 위한 단말 장치
US8640242B2 (en) Preventing and detecting print-provider startup malware
JP6591832B2 (ja) ソフトウェア改ざん検知システム、及びネットワークセキュリティシステム
JP6084556B2 (ja) バイト列抽出装置、バイト列抽出方法、および、バイト列抽出プログラム
WO2014004821A1 (en) Preventing attacks on devices with multiple cpus
KR101410289B1 (ko) 악성코드의 원격지 접속 서버 추적 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190814

Year of fee payment: 4