KR101663013B1 - 코드 주입 공격을 감지하는 장치 및 방법 - Google Patents
코드 주입 공격을 감지하는 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2111—Location-sensitive, e.g. geographical location, GPS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1475—Passive attacks, e.g. eavesdropping or listening without modification of the traffic monitored
Abstract
코드 주입 공격을 감지하는 장치 및 방법이 개시된다. 본 발명의 일 측에 따른 코드 주입 공격을 감지하는 장치 및 방법은 주소에 대한 버퍼 미스를 감지하고, 주소에 대응하는 페이지가 갱신되었고, 주소에 대응하는 페이지의 모드가 사용자 모드이고, 주소의 페이지가 외부입력에 의해 삽입되었으면 코드 주입 공격으로 감지하는 것으로, 코드 주입 공격에 의해 주입된 악성 코드가 실행될 때의 발생하는 특징을 고려해서, 코드 주입 공격을 감지한다.
Description
기술분야는 악의적인 의도를 가진 공격자가 컴퓨터 시스템에서 운영체제 또는 응용프로그램의 취약점을 이용하여 자신이 만든 코드(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는 본 발명의 일 실시 예에 따라 코드 주입 공격을 감지하는 과정을 도시한 흐름도이다.
도 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; 코드 주입 감지부
101; 버퍼 관리부
102; 갱신 확인부
103; 모드 확인부
104; 외부 입출력 확인부
105; 입/출력 모니터링부
106; 입/출력 타겟 테이블
107; 코드 주입 감지부
Claims (14)
- 프로그램 카운터가 지시하는 주소에 대응하는 페이지의 갱신을 확인하는 갱신확인부;
상기 프로그램 카운터가 지시하는 주소가 입/출력 함수에 의해 사용되었는지 확인하는 외부 입출력 확인부; 및
상기 페이지가 갱신되고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 코드 주입 공격으로 감지하는 코드 주입 감지부를 포함하는,
코드 주입 공격을 감지하는 장치.
- 제1항에 있어서,
상기 갱신 확인부는,
상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 더티 비트(dirty bit)가 1이면 상기 주소에 대응하는 페이지가 갱신되었다고 판단하는
코드 주입 공격을 감지하는 장치.
- 제1항에 있어서,
상기 입/출력 함수에 의한 사용된 타겟 주소들을 저장하는 입/출력 타겟 테이블; 및
시스템 콜 핸들러(system call handler)를 모니터링 해서 상기 입/출력 함수에 의한 호출이면 타겟 주소를 상기 입/출력 타겟 테이블에 저장하는 입/출력 모니터링부를 더 포함하고,
상기 외부 입출력 확인부는,
상기 프로그램 카운터가 지시하는 상기 주소가 상기 입/출력 타겟 테이블에 존재하는지를 확인하는
코드 주입 공격을 감지하는 장치.
- 제1항에 있어서,
상기 코드 주입 감지부는,
상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단하는
코드 주입 공격을 감지하는 장치.
- 제1항에 있어서,
상기 코드 주입 감지부는,
상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소에 대응하는 페이지의 모드가 사용자 모드이고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단하는
코드 주입 공격을 감지하는 장치.
- 제5항에 있어서,
상기 주소에 대응하는 페이지의 모드는,
상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 사용모드 정보를 통해 확인하는
코드 주입 공격을 감지하는 장치.
- 제4항 또는 제5항에 있어서,
상기 버퍼 미스는,
상기 주소가 변환 색인 버퍼에 존재하지 않을 때 발생하는 미스인
코드 주입 공격을 감지하는 장치.
- 프로그램 카운터가 지시하는 주소에 대응하는 페이지의 갱신을 확인하는 단계;
상기 프로그램 카운터가 지시하는 주소가 입/출력 함수에 의해 사용되었는지 확인하는 단계; 및
상기 페이지가 갱신되고, 상기 주소가 입/출력 함수에 의해 사용되었으면 코드 주입 공격으로 감지하는 단계를 포함하는,
코드 주입 공격을 감지하는 방법.
- 제8항에 있어서,
상기 갱신을 확인하는 단계는,
상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 더티 비트(dirty bit)가 1이면 상기 주소에 대응하는 페이지가 갱신되었다고 판단하는
코드 주입 공격을 감지하는 방법.
- 제8항에 있어서,
시스템 콜 핸들러(system call handler)를 모니터링 해서 상기 입/출력 함수에 의한 호출이면 타겟 주소를 입/출력 타겟 테이블에 저장하는 단계를 더 포함하고,
상기 입/출력 함수에 의해 사용되었는지를 확인하는 단계는,
상기 프로그램 카운터가 지시하는 상기 주소가 상기 입/출력 타겟 테이블에 존재하는지를 확인하는
코드 주입 공격을 감지하는 방법.
- 제8항에 있어서,
상기 코드 주입 공격을 감지하는 단계는,
상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단하는
코드 주입 공격을 감지하는 방법.
- 제8항에 있어서,
상기 코드 주입 공격을 감지하는 단계는,
상기 주소의 버퍼 미스가 감지되고, 상기 주소에 대응하는 페이지가 갱신되었고, 상기 주소에 대응하는 페이지의 모드가 사용자 모드이고, 상기 주소가 상기 입/출력 함수에 의해 사용되었으면 상기 코드 주입 공격으로 판단하는
코드 주입 공격을 감지하는 방법.
- 제12항에 있어서,
상기 주소에 대응하는 페이지의 모드는,
상기 주소에 대응하는 페이지의 페이지 테이블 요소에 기재된 사용모드 정보를 통해 확인하는
코드 주입 공격을 감지하는 방법.
- 제11항 또는 제12항에 있어서,
상기 버퍼 미스는,
상기 주소가 변환 색인 버퍼에 존재하지 않을 때 발생하는 미스인
코드 주입 공격을 감지하는 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200054752A (ko) * | 2018-11-12 | 2020-05-20 | 주식회사 안랩 | 메시지 모니터링 장치 및 방법 |
Families Citing this family (9)
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)
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 | 주식회사 안철수연구소 | 코드 변형 감지 시스템 및 그 방법 |
-
2010
- 2010-01-15 KR KR1020100003856A patent/KR101663013B1/ko active IP Right Grant
- 2010-09-20 US US12/885,672 patent/US8615806B2/en not_active Expired - Fee Related
Cited By (2)
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 |