KR101566409B1 - 프로그램 데이터 공격 검출방법 - Google Patents
프로그램 데이터 공격 검출방법 Download PDFInfo
- Publication number
- KR101566409B1 KR101566409B1 KR1020090032323A KR20090032323A KR101566409B1 KR 101566409 B1 KR101566409 B1 KR 101566409B1 KR 1020090032323 A KR1020090032323 A KR 1020090032323A KR 20090032323 A KR20090032323 A KR 20090032323A KR 101566409 B1 KR101566409 B1 KR 101566409B1
- Authority
- KR
- South Korea
- Prior art keywords
- program data
- path
- attack
- loop
- additional
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
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)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 본 발명은 해커(Hacker)에 의한 공격으로 중앙연산처리장치 내부의 정보를 파괴하거나 프로그램 메모리에 저장된 내용을 변경시키는 공격을 검출하는 프로그램 데이터 공격 검출방법을 개시한다. 상기 프로그램 데이터 공격 검출방법은, 고객 정보를 내장하는 임베디드 시스템(Embedded system)에서, 내장된 프로그램 데이터를 이용하여 알고리즘을 수행할 때 상기 프로그램 데이터에 대한 외부공격을 검출하는 것으로, 초기화단계 및 비교단계를 구비한다. 상기 초기화단계는 상기 프로그램 데이터 공격을 검출할 것을 지시하는 검출지시신호에 응답하여, 상기 알고리즘을 구성하는 임의의 함수)에 대한 연산결과를 저장하는 연산레지스터를 초기화시킨다. 상기 비교단계는 상기 연산레지스터에 저장된 연산결과와 상기 프로그램 데이터에 포함된 기준값을 비교한다.
암호화 시스템, 프로그램 데이터, 프로그램 데이터 공격,
Description
본 발명은 해커(Hacker)에 의한 공격을 검출하는 방법에 관한 것으로, 특히 중앙연산처리장치 내부의 정보를 파괴하거나 프로그램 메모리에 저장된 내용을 변경시키는 공격을 검출하는 방법에 관한 것이다.
고객의 정보를 내장하고 있는 디바이스(device), 스마트카드(smart card) 및 모바일(mobile) 통신용 제품에서는 암호화 알고리즘을 이용하여 해킹(hacking)을 방지하고자 하며, 중앙연산처리장치 자체의 보안 강화기능도 증가하고 있다. 이를 반영하여 중앙연산처리장치의 개발 업체는 중앙연산처리장치의 내부에 유니폼 브랜치 타이밍(uniform branch timing), 패리티 체크 용 레지스터나 메모리(parity check accessing register or memory) 등의 해킹 방지를 위한 장치를 비용의 증가를 감수하면서까지 도입하고 있다.
고객 정보를 내장하는 임베디드 시스템(Embedded system) 분야, 특히 신용카드 등의 전자화폐(electronic money) 및 전자여권(e-passport) 등에 탑재되는 MCU(Micro Processor Unit)는, 고객의 정보를 직접 해킹하는 방식 및 MCU에 오동작 프로그램 코드(Program Code)를 패치(Fetch)하도록 유도하여 간접적으로 정보를 발췌하는 것과 같은 다양한 방식의 해킹기법들로부터 공격을 받고 있다. 다양한 해킹방지 기술은 각 제품 개발사마다 존재하고 있는데, 공개적으로 많이 사용되고 있는 기술로는 빛 검출기(Light detector), 내부격리제거검출기(Inner Insulation removal detector) 및 능동보호막제거검출기(Active shield removal detector) 등이 있다. 이들 모두는 공격자의 침입을 감지하여 시스템 보호를 위한 칩 불능 상태 혹은 긴급호출루틴(emergency call routine)이 호출되도록 처리하고 있다.
그러나, 공격검출기술에도 한계가 있어 특수한 환경 하에서 감지가 되지 않는 경우가 발생함은 물론, 계속적인 공격에 무용지물이 되는 경우도 있다. 예를 들면, 해커는 시스템으로부터 입출력되는 신호라인을 프루브(probe)하여 신호라인을 통해 송수신되는 신호의 값을 읽어내고, 이를 이용하여 시스템 내부의 정보를 유출시키는 해킹 방식을 사용한다. 일정한 경우 해커는 레이저 공격(Laser attack)을 통해 시스템의 많은 지점에서 글리치 어택(Glitch attack) 혹은 파워공격(Power attack)을 통해 프로그램 데이터를 변경할 수 있다.
이러한 방식을 통해 해커는 프로그램 메모리에 저장된 데이터를 인식할 수 있을 뿐만 아니라 일정한 전기신호를 이용하여 프로그램 메모리에 저장된 데이터를 변경시키는 것도 가능하게 되었다.
본 발명이 해결하고자 하는 기술적과제는, 중앙연산처리장치에 페치(fetch)되는 프로그램 데이터의 무결성(innocent)에 대한 검사를 수행하여 해커의 공격 여부를 검출할 수 있는 프로그램 데이터 공격 검출방법을 제공하는데 있다.
상기 기술적과제를 이루기 위한 본 발명에 따른 프로그램 데이터 공격 검출방법은, 고객 정보를 내장하는 임베디드 시스템(Embedded system)에서, 내장된 프로그램 데이터를 이용하여 알고리즘을 수행할 때 상기 프로그램 데이터에 대한 외부공격을 검출하는 것으로, 초기화단계 및 비교단계를 구비한다. 상기 초기화단계는 상기 프로그램 데이터 공격을 검출할 것을 지시하는 검출지시신호에 응답하여, 상기 알고리즘을 구성하는 임의의 함수)에 대한 연산결과를 저장하는 연산레지스터를 초기화시킨다. 상기 비교단계는 상기 연산레지스터에 저장된 연산결과와 상기 프로그램 데이터에 포함된 기준값을 비교한다. 여기서 상기 기준값은 상기 프로그램 데이터가 외부로부터 공격을 받지 않았을 때 예상되는 연산결과 값이다.
상기 프로그램 데이터 공격 검출방법은 상기 함수에 대한 연산을 수행하는 메인연산경로인 초기화단계 및 상기 비교단계 사이에 새로운 추가연산경로가 포함되어 있는 가를 판단하는 추가연산경로판단단계를 더 구비하여, 상기 추가연산경로가 없는 경우에는 상기 초기화단계 및 상기 비교단계를 수행하고, 추가연산경로가 있는 경우에는 추가연산경로에 따라 적절한 보상을 수행한다. 상기 추가연산경로의 예로는, 인터럽트(interrupt), 익셉션(exception), 서브루틴 콜(subroutine call), 조건문(condition) 및 루프(loop)가 있다.
본 발명은 외부의 공격에 의한 프로그램 데이터의 변형을 효과적으로 검출할 수 있을 뿐만 아니라, 프로그램 메모리 및 버스에 대한 공격도 효과적으로 검출할 수 있는 장점이 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 예시적인 실시예를 설명하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
본 발명의 핵심 아이디어는, 임의의 알고리즘에 포함된 함수의 연산에 사용되는 데이터가 외부의 공격에 의해 변경되는 경우, 변경된 데이터를 이용하여 함수를 수행했을 때의 연산결과 값과 변경되지 않은 무결성의 데이터를 이용하여 수행한 연산결과를 서로 다르다는 것을 이용하자는 것이다.
도 1은 본 발명에 따른 프로그램 데이터 공격 검출방법의 신호흐름도이다.
도 1을 참조하면, 본 발명에 따른 프로그램 데이터 공격 검출방법(100)은, 고객 정보를 내장하는 임베디드 시스템(Embedded system)에서, 내장된 프로그램 데 이터를 이용하여 알고리즘을 수행할 때 상기 프로그램 데이터에 대한 외부공격을 검출하는 것으로, 검출지시단계(110), 초기화단계(120), 추가연산경로판단단계(130), 보정값 반영단계(140) 및 비교단계(150)를 구비한다.
검출지시단계(110)는 외부로부터의 프로그램 데이터 공격 여부를 검출할 것을 지시하는 것으로, 상기 지시에 따라 검출지시 레지스터(SR_EC)에 저장된 검출지시신호(SR_EC)가 활성화된다. 초기화단계(120)는 활성화된 검출지시신호(SR_EC)에 응답하여, 수행하고자 하는 알고리즘에 포함된 임의의 함수(function)에 대한 연산결과를 저장하는 연산레지스터를 초기화시킨다. 추가연산경로판단단계(130)는 함수에 대한 연산을 수행하는 메인연산경로에 새로운 추가연산경로가 포함되어 있는 가를 판단한다. 추가연산경로가 포함되어 있지 않은 경우에는 메인연산경로인 초기화단계(120) 및 판단단계(150)를 그대로 수행하지만, 추가연산경로가 포함되어 있는 경우에는 초기화단계(120) 및 상기 비교단계(140) 사이에 보정값 반영단계(140)를 추가한다. 비교단계(150)는 연산레지스터에 저장된 연산결과와 프로그램 데이터에 포함된 기준값을 비교한다.
기준값은 프로그램 데이터가 외부로부터 공격을 받지 않았을 때 예상되는 연산결과 값이다. 추가연산경로로는, 인터럽트(interrupt), 익셉션(exception), 서브루틴 콜(subroutine call), 조건문(condition) 및 루프(loop) 등을 예로 들 수 있다.
비교단계(150)에서의 비교 결과 연산결과와 기준값이 동일한 경우에는 해커의 공격이 없다는 경우이므로 이 후의 연산을 계속수행하게 되지만, 동일하지 않은 경우에는 이 후의 연산을 수행하지 않고 시스템에 이 사실을 경고하고 연산을 중지시키도록 할 수 있다. 해커의 공격이 있어 프로그램 데이터가 변경되었다고 판단된 경우에 대한 후속 처리는 다양하지만 여기서는 나열하지는 않을 것이다.
먼저 임베디드 시스템의 내부구조를 설명함으로써 본 발명의 핵심 아이디어를 설명한다.
도 2는 외부공격에 의한 프로그램 데이터의 파괴 또는 변경을 설명한다.
도 2를 참조하면, 사용자 또는 고객에 대한 정보를 내장하는 임베디드 시스템은 크게 중앙연산처리장치(CPU), 프로그램이 저장된 프로그램 메모리(PROGRAM MEMORY) 및 연산의 결과 등을 임시로 저장하는 데이터 메모리(DATA MEMORY)를 구비한다. 중앙연산처리장치(CPU)는 프로그램 메모리에 저장된 프로그램 데이터를 페치(fetch)하여 일정한 알고리즘을 수행하고, 알고리즘을 수행하면서 얻어진 연산의 중간결과 또는 최종 결과를 데이터 메모리에 저장한다. 해커는 프로그램 메모리 또는 프로그램 메모리가 전달되는 경로를 여러 가지 다양한 방법으로 공격하여 프로그램 메모리에 저장된 데이터를 파괴하거나 변경시킨다.
해커의 공격에 의해 프로그램 데이터가 변경되는 경우 해당 알고리즘의 연산결과는, 임베디드 시스템이 정상적으로 사용되었을 때의 연산결과와 다르게 될 것이다. 해커는 변경된 프로그램 데이터에 의해 다르게 된 연산결과를 이용하여 내부의 프로그램 데이터를 인식하고 이를 추출해 내거나 변경시키는 것이다. 본 발명의 핵심 아이디어는 해커의 공격으로 내부에 저장된 프로그램 데이터가 변경되었는가를 함수를 수행하는 도중 검출한다는 것이다.
도 3은 본 발명에 따른 프로그램 데이터 공격이 없을 경우의 예를 나타낸다.
도 3을 참조하면, 중앙연산처리장치(미도시)는 프로그램 데이터(PD)로부터 검출지시신호(SR_EC)를 활성화시키라는 명령(SET_SR), 데이터 1234, 데이터 5678, 데이터 ABCD, 비교지시신호(CMP_CS) 및 기준값(1479)을 순서대로 페치(fetch)한다. 내부 레지스터(IRL)는 시스템의 동작을 제어하는 클럭신호에 따라 프로그램 데이터(PD)로부터 출력되는 신호를 저장하여 중앙연산처리장치가 언제든지 사용할 수 있도록 한다. 연산의 결과는 연산레지스터(CS)에 순차적으로 저장된다. 내부 레지스터(IRL)에 저장된 비교지시신호(CMP_CS)에 따라 프로그램 데이터(PD)로부터 출력된 기준값(1479)과 연산레지스터(CS)에 저장된 연산결과(1479)를 비교한다. 도 3을 참조하면, 기준값과 연산결과가 1479로 동일한 값을 가지고 있으므로, 현재까지는 해커의 공격이 없거나 해커의 공격으로 인해 프로그램 데이터의 변경 또는 파괴가 발생하지 않았다고 판단할 수 있다.
검출지시신호(SR_EC)가 활성화되면, 연산결과가 연산레지스터(CS)에 저장되는 순간부터 내부비교신호(CS_EN)가 활성화된다. 내부비교신호(CS_EN)가 활성화된 상태에서, 비교지시신호(CMP_CS)에 따라 프로그램 데이터(PD)로부터 출력된 기준값(1479)과 연산레지스터(CS)에 저장된 연산결과(1479)를 비교하게 되는데, 기준값과 연산결과가 동일하지 않다고 판단되는 경우에는 내부에러신호(CS_ERR)를 활성화시킨다.
알고리즘을 구성하는 함수를 연산할 때, 하나의 메인연산경로에 대한 연산만 수행하는 경우뿐만 아니라 추가연산경로가 존재하는 경우에도 본 발명은 적응적으 로 동작할 수 있다. 이하에서는 본원발명에 따른 프로그램 데이터 공격 검출방법이, 메인연산경로에 부가되는 추가연산경로의 존재 여부를 판단하고 판단결과에 따라 적절하게 대응하는 것에 대하여 설명한다.
상술한 바와 같이 추가연산경로의 예로는, 인터럽트(interrupt), 익셉션(exception), 서브루틴 콜(subroutine call), 조건문(condition) 및 루프(loop)가 있다. 여기서 루프는, 메인연산경로에 부가되는 연산경로는 아니지만, 한 번의 연산이 아니고 복수 개의 연산을 연속하여 수행한다는 의미에서 추가연산경로에 포함시켰다.
도 4는 함수를 수행하는 도중 인터럽트 또는 익셉션이 발생하였을 경우를 나타낸다.
도면의 수직 방향의 화살표는 함수의 연산을 수행하는 흐름을 나타내며, 수평방향의 화살표는 프로그램 데이터를 의미하며, 후술하는 도면에도 동일하게 적용된다.
도 4를 참조하면, 검출지시신호(SR_EC)에 따라 함수의 연산을 수행하는 도중 인터럽트(interrupt) 또는 익셉션(exception)이 발생한 경우, 메인연산경로(1)에 의한 연산결과에 인터럽트 또는 익셉션 후 수행한 추가연산경로(2)를 수행한 경우의 연산결과가 더해지게 될 것이다. 따라서 메인경로연산(1) 만을 수행하였을 때의 연산결과와 추가연산경로(2)를 추가로 수행하였을 때의 연산결과는 다르게 될 것이 분명하다.
이러한 경우 중앙연산처리장치는, 인터럽트 또는 익셉션 후 수행된 연산결과 를 메인연산경로에 포함시키지 않음으로서 해결할 수 있다. 특히 대부분의 중앙연산처리장치는 인터럽트나 익셉션이 발생한 지점과 복귀(return)하는 시점을 내부 신호를 이용하여 감지할 수 있으므로, 특별한 강구 수단 없이도 추가연산경로로부터 얻어진 연산결과를 무시할 수 있다.
도 5는 함수를 수행하는 메인연산경로에 서브루틴 콜이 포함되어 있는 경우를 나타낸다.
도 5에 도시된 것과 같이 검출지시신호(SR_EC)에 따라 함수의 연산을 수행하는 도중 서브루틴 콜이 발생한 경우도 도 4의 설명에서와 동일하게 처리 할 수 도 있다. 그러나 추가된 서브루틴 콜을 수행함으로써 구한 연산결과를 최종 연산결과에 반영함으로써 기준값과 비교할 때 혼동이 발생하지 않을 수 있다. 함수에 대한 연산과정은 중앙연산처리장치에서 인식할 수 있는 것이므로, 메인연산경로 뿐만 아니라 서브루틴 콜에 의한 추가연산경로에 의한 연산결과를 예측하는 것도 불가능 한 것은 아니므로, 상기와 같이 연산결과 값을 보정시키는 것은 어려운 일이 아니다.
예를 들면, 메인연산경로(1)에서는 도 3에 도시된 바와 같이 1234, 5678, ABCD의 데이터가 처리되고 추가연산경로(2)에서는 1234, 5689, ABCD의 데이터가 처리된다고 가정하자. 메인연산경로(1)에서 처리되는 데이터 5678과 추가연산경로(2)에서 처리되는 데이터 5689는 서로 다른 값이므로 이를 보완하여야 한다. 이 때, 그 차이 값인 FFEF를 추가연산경로(2)인 서브루틴 콜 경로에 보완시키면 된다.
그 차이 값을 보완하는 것은 이 분야의 일반적인 기술자에게는 용이한 수준 의 기술이므로 자세한 것은 여기서 설명하지 않는다.
메인연산경로(1)에 조건문(condition statement)에 의한 추가연산경로가 존재하는 경우에 대해 설명한다.
도 6은 함수를 수행하는 메인연산경로에 조건문이 포함되어 있는 경우 중 하나의 경로에만 검출지시신호(SR_EC)가 포함되는 경우를 나타낸다.
도 7은 함수를 수행하는 메인연산경로에 조건문이 포함되어 있는 경우 중 두개의 경로 모두에 검출지시신호(SR_EC)가 포함되는 경우를 나타낸다.
도 6에서와 같이 추가연산경로(2)에만 검출지시신호(SR_EC)가 활성화된 경우에는, 메인연산경로(1)에 대해서는 기준값 및 연산결과를 비교하지 않고, 추가연산경로(2)에 대해서만 기준값 및 연산결과를 비교하면 된다.
도 7에서와 같이 메인연산경로(1) 및 추가연산경로(2)에 검출지시신호(SR_EC)가 활성화된 경우에는 조건문에 따라 메인연산경로(1) 또는 추가연산경로(2) 중 하나의 연산경로에 대해서만 기준값 및 연산결과를 비교하면 된다. 추가연산경로(2)에 대해 기준값 및 연산결과를 비교할 때는 도 5에 도시된 서브루틴 콜의 경우와 마찬가지로 일정한 보정값을 추가연산경로(2)에 보완함으로써 비교단계(150)에서의 비교결과를 판단하는데 문제가 발생하지 않도록 할 수 있다.
도 8은 함수를 수행하는 메인연산경로에 반복 회수가 고정되어 있는 루프가 포함되어 있는 경우를 나타낸다.
도 8에 도시된 바와 같이 메인연산경로에 반복 회수가 고정되어 있는 루프는 단일 메인연산경로의 경우와 차이가 없으므로 다른 특별한 조치가 필요하지 않다.
도 9는 함수를 수행하는 메인연산경로에 반복 회수가 고정되어 있지 않은 루프가 포함되어 있고 검출지시신호(SR_EC)가 루프의 외부에 존재하는 경우를 나타낸다.
도 9에 도시된 바와 같이, 외부로부터 인가되는 변수에 의해서 루프의 회수가 결정되므로 고정이 되지 않는 경우에는 기준값을 할 수 없으므로 본 발명에서는 이러한 경우에는 프로그램 데이터 공격 검출을 하지 않는다.
도 10은 함수를 수행하는 메인연산경로에 반복 회수가 고정되어 있지 않은 루프가 포함되어 있고 검출지시신호(SR_EC)가 루프의 내부에 존재하는 경우를 나타낸다.
도 10에 도시된 바와 같이, 외부로부터 인가되는 변수에 의해서 루프의 회수가 결정되므로 고정이 되지 않는 경우라 할지라도, 검출지시신호(SR_EC)가 루프의 내부에 존재하는 경우에는, 각각의 루프를 수행할 때 마다 연산레지스터(CS)가 초기화되므로 단순 반복 작업에 불과하여 기준값을 설정할 수 있다.
상술한 바와 같이, 본 발명에 따른 프로그램 데이터 공격 검출방법은 도 9에 도시된 경우를 제외하고는 모든 경우에 적용할 수 있다. 또한 본 발명에 따른 프로그램 데이터 공격 검출방법은 외부 공격에 의한 프로그램 데이터의 변경뿐만 아니라, 프로그램 메모리 및 버스 상에서 전력(power) 또는 글리치(glitch)에 의해 잘못된 프로그램 데이터가 페치되는 것을 모두 감지할 수 있다.
이상에서는 본 발명에 대한 기술사상을 첨부 도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시 예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 이라면 누구나 본 발명의 기술적 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.
도 1은 본 발명에 따른 프로그램 데이터 공격 검출방법의 신호흐름도이다.
도 2는 외부공격에 의한 프로그램 데이터의 파괴 또는 변경을 설명한다.
도 3은 본 발명에 따른 프로그램 데이터 공격이 없을 경우의 예를 나타낸다.
도 4는 함수를 수행하는 도중 인터럽트 또는 익셉션이 발생하였을 경우를 나타낸다.
도 5는 함수를 수행하는 메인연산경로에 서브루틴 콜이 포함되어 있는 경우를 나타낸다.
도 6은 함수를 수행하는 메인연산경로에 조건문이 포함되어 있는 경우 중 하나의 경로에만 검출지시신호(SR_EC)가 포함되는 경우를 나타낸다.
도 7은 함수를 수행하는 메인연산경로에 조건문이 포함되어 있는 경우 중 두개의 경로 모두에 검출지시신호(SR_EC)가 포함되는 경우를 나타낸다.
도 8은 함수를 수행하는 메인연산경로에 반복 회수가 고정되어 있는 루프가 포함되어 있는 경우를 나타낸다.
도 9는 함수를 수행하는 메인연산경로에 반복 회수가 고정되어 있지 않은 루프가 포함되어 있고 검출지시신호(SR_EC)가 루프의 외부에 존재하는 경우를 나타낸다.
도 10은 함수를 수행하는 메인연산경로에 반복 회수가 고정되어 있지 않은 루프가 포함되어 있고 검출지시신호(SR_EC)가 루프의 내부에 존재하는 경우를 나타낸다.
Claims (10)
- 삭제
- 삭제
- 삭제
- 고객 정보를 내장하는 임베디드 시스템(Embedded system)에서, 내장된 프로그램 데이터를 이용하여 알고리즘을 수행할 때 상기 프로그램 데이터에 대한 외부공격을 검출하는 프로그램 데이터 공격 검출방법에 있어서,상기 프로그램 데이터 공격을 검출할 것을 지시하는 검출지시신호(SR_EC)에 응답하여, 상기 알고리즘을 구성하는 임의의 함수(function)에 대한 연산결과를 저장하는 연산레지스터를 초기화시키는 초기화 단계(120); 및상기 연산레지스터에 저장된 연산결과와 상기 프로그램 데이터에 포함된 기준값을 비교하는 비교단계(140)를 구비하며, 상기 기준값은 상기 프로그램 데이터가 외부로부터 공격을 받지 않았을 때 예상되는 연산결과 값이며,상기 함수에 대한 연산을 수행하는 메인연산경로인 초기화단계(120) 및 상기 비교단계(140) 사이에 새로운 추가연산경로가 포함되어 있는 가를 판단하는 추가연산경로판단단계(130)를 더 구비하며,상기 추가연산경로가 없는 경우에는 상기 초기화단계(120) 및 상기 비교단계(140)를 수행하며,상기 추가연산경로는,인터럽트(interrupt), 익셉션(exception), 서브루틴 콜(subroutine call), 조건문(condition) 및 루프(loop) 중 하나이며,상기 추가연산경로로서 상기 인터럽트가 존재하는 경우, 상기 비교단계(140)를 수행하지 않는 프로그램 데이터 공격 검출방법.
- 제4항에 있어서,상기 추가연산경로로서 상기 익셉션이 존재하는 경우,익셉션 후 리턴 되는 연산구간에서의 연산결과는 메인연산경로 상에 포함된 연산결과에 반영시키지 않고 상기 비교단계(140)를 수행하는 프로그램 데이터 검출방법.
- 제4항에 있어서,상기 추가연산경로로서 상기 서브루틴 콜이 존재하는 경우,상기 메인연산경로 또는 상기 추가연산경로 중 하나의 연산경로에 보정값을 반영한 후(150) 상기 비교단계(140)를 수행하는 프로그램 데이터 공격 검출방법.
- 제3항에 있어서,상기 추가연산경로로서 상기 조건문이 존재하는 경우,상기 검출지시신호(SR_EC)가 존재하는 경로에 대해서 상기 비교단계(140)를 수행하는 프로그램 데이터 공격 검출방법.
- 제4항에 있어서,상기 추가연산경로로서 상기 루프가 존재하고 상기 루프 이전에 검출지시신호(SR_EC)가 인에이블 되고 상기 루프의 회수가 고정되어 있는 경우,상기 루프가 종료된 후 상기 비교단계(140)를 수행하는 프로그램 데이터 공격 검출방법.
- 제8항에 있어서,상기 루프의 회수가 외부로부터 입력되는 신호에 따라 결정되는 경우, 상기 비교단계(140)를 수행하지 않는 프로그램 데이터 공격 검출방법.
- 제4항에 있어서,상기 추가연산경로로서 상기 루프가 존재하고 상기 루프의 연산 중에 상기 검출지시신호(SR_EC)가 인에이블 되는 경우,적어도 하나의 루프에서 상기 비교단계(140)를 수행하는 프로그램 데이터 공격 검출방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090032323A KR101566409B1 (ko) | 2009-04-14 | 2009-04-14 | 프로그램 데이터 공격 검출방법 |
US12/758,163 US8474045B2 (en) | 2009-04-14 | 2010-04-12 | Method of detecting program attacks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090032323A KR101566409B1 (ko) | 2009-04-14 | 2009-04-14 | 프로그램 데이터 공격 검출방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100113810A KR20100113810A (ko) | 2010-10-22 |
KR101566409B1 true KR101566409B1 (ko) | 2015-11-05 |
Family
ID=42935404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090032323A KR101566409B1 (ko) | 2009-04-14 | 2009-04-14 | 프로그램 데이터 공격 검출방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8474045B2 (ko) |
KR (1) | KR101566409B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405899B2 (en) | 2012-06-06 | 2016-08-02 | Empire Technology Development Llc | Software protection mechanism |
CN114218034B (zh) * | 2021-11-03 | 2023-05-26 | 乾成理想(深圳)信息技术有限公司 | 在大数据场景下的在线办公安防处理方法及大数据服务器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008242915A (ja) * | 2007-03-28 | 2008-10-09 | Hitachi Ltd | 攻撃検出方法及び監査装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5224160A (en) * | 1987-02-23 | 1993-06-29 | Siemens Nixdorf Informationssysteme Ag | Process for securing and for checking the integrity of the secured programs |
US6842743B2 (en) * | 2000-12-01 | 2005-01-11 | Matsushita Electric Industrial Co., Ltd. | Transparent secure electronic credit card transaction protocol with content-based authentication |
JP4160736B2 (ja) | 2001-05-24 | 2008-10-08 | 京セラ株式会社 | チェックサム調整方法 |
JP4332134B2 (ja) | 2005-05-13 | 2009-09-16 | Tdk株式会社 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
KR101197556B1 (ko) | 2006-01-09 | 2012-11-09 | 삼성전자주식회사 | 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드 |
KR100800999B1 (ko) * | 2006-02-17 | 2008-02-11 | 삼성전자주식회사 | 프로그램의 실행흐름을 검사하는 방법 및 장치 |
WO2009152511A2 (en) * | 2008-06-13 | 2009-12-17 | Board Of Regents, The University Of Texas System | Control flow deviation detection for software security |
-
2009
- 2009-04-14 KR KR1020090032323A patent/KR101566409B1/ko active IP Right Grant
-
2010
- 2010-04-12 US US12/758,163 patent/US8474045B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008242915A (ja) * | 2007-03-28 | 2008-10-09 | Hitachi Ltd | 攻撃検出方法及び監査装置 |
Also Published As
Publication number | Publication date |
---|---|
US8474045B2 (en) | 2013-06-25 |
US20100263050A1 (en) | 2010-10-14 |
KR20100113810A (ko) | 2010-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI685739B (zh) | 處理故障注入攻擊的安全系統和方法 | |
CN109508536B (zh) | 一种篡改程序流攻击的检测方法和装置 | |
US7757098B2 (en) | Method and apparatus for verifying authenticity of initial boot code | |
US9977897B2 (en) | System and method for detecting stack pivot programming exploit | |
KR100945247B1 (ko) | 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치 | |
CN109643346B (zh) | 控制流完整性 | |
JP2017514260A (ja) | リターン指向プログラミング攻撃の透過的な検出及び抽出 | |
KR20150059564A (ko) | 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치 | |
WO2018063756A1 (en) | System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks | |
US20150220736A1 (en) | Continuous Memory Tamper Detection Through System Management Mode Integrity Verification | |
EP3198399A1 (en) | Detecting a change to system management mode bios code | |
US10223117B2 (en) | Execution flow protection in microcontrollers | |
CN109472172A (zh) | 用于防止来自存储器的未授权数据访问的方法 | |
CN113806745A (zh) | 响应于页表基址寄存器的变化而执行验证检查 | |
KR101566409B1 (ko) | 프로그램 데이터 공격 검출방법 | |
Pashrashid et al. | Fast, robust and accurate detection of cache-based spectre attack phases | |
US8495734B2 (en) | Method and device for detecting an erroneous jump during program execution | |
US20090125728A1 (en) | Security method of system by encoding instructions | |
US20230273998A1 (en) | System for detecting malwares in a resources constrained device | |
EP3767507A1 (en) | Data processing method against ransomware, program for executing same, and computer-readable recording medium with program recorded thereon | |
Jeong et al. | Neural network stealing via meltdown | |
US10781609B2 (en) | Electronic door opening/closing apparatus and electronic door opening/closing detection method, apparatus and device | |
Ott et al. | Continuous authentication of embedded software | |
EP2078275A2 (en) | Security for physically unsecured software elements | |
JP2008287449A (ja) | データプロセッサ |
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 | ||
FPAY | Annual fee payment |
Payment date: 20180927 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190930 Year of fee payment: 5 |