KR101320680B1 - 소프트웨어의 무결성 검사 장치 및 방법 - Google Patents

소프트웨어의 무결성 검사 장치 및 방법 Download PDF

Info

Publication number
KR101320680B1
KR101320680B1 KR1020110110172A KR20110110172A KR101320680B1 KR 101320680 B1 KR101320680 B1 KR 101320680B1 KR 1020110110172 A KR1020110110172 A KR 1020110110172A KR 20110110172 A KR20110110172 A KR 20110110172A KR 101320680 B1 KR101320680 B1 KR 101320680B1
Authority
KR
South Korea
Prior art keywords
program
integrity
unique code
user terminal
integrity check
Prior art date
Application number
KR1020110110172A
Other languages
English (en)
Other versions
KR20130045759A (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 KR1020110110172A priority Critical patent/KR101320680B1/ko
Publication of KR20130045759A publication Critical patent/KR20130045759A/ko
Application granted granted Critical
Publication of KR101320680B1 publication Critical patent/KR101320680B1/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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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/562Static detection
    • G06F21/565Static detection by checking file integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

해시를 이용한 소프트웨어 무결성 검사 장치 및 방법에 관한 것으로 프로그램이 실행되면, 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 상기 프로그램 파일의 고유 코드를 생성하는 단계; 상기 생성된 고유 코드를 무결성 검사 서버로 전송하여 무결성 검사 결과를 수신하는 단계; 및 상기 수신되는 무결성 검사 결과에 따라 무결성이 입증된 경우에 프로그램을 실행하는 단계;를 포함하는 사용자 단말에서 수행되는 무결성 검사방법에 의해 PC에 설치되는 각종 소프트웨어가 바이러스 또는 해킹툴에 의하여 변형될 경우, 이를 프로그램 실행 전에 발견하는 것이 용이하여 안정적인 PC환경을 제공할 수 있다.

Description

소프트웨어의 무결성 검사 장치 및 방법{METHOD AND APPARATUS FOR INTEGRITY CHECK OF SOFTWARE}
본 발명은 소프트웨어의 무결성 검사에 관한 것으로, 특히 해시를 이용한 소프트웨어 무결성 검사 장치 및 방법에 관한 것이다.
소프트웨어(software)는 PC에 설치된 실행 파일, 동적 연결 파일, 데이터 파일로 구성된다. 일반적으로 실행 파일, 동적 연결 파일, 데이터 파일은 확장자에 의해 구분가능하고, 상세하게 실행 파일은 확장자가 EXE, COM이고, 동적 연결 파일은 DLL, OCX이고, 데이터 파일은 DAT, INT, TXT등이다.
사용자가 실행 파일을 실행시키면, 해당 소프트웨어 실행에 필요한 동적 연결 파일이나 데이터 파일을 참조하여 작동을 한다. 이때 만일 실행 파일 또는 동적 연결 파일이 바이러스 혹은 해킹툴에 의해 변조된 경우라면, 해당 소프트웨어 실행과 동시에 변조된 파일은 사용자가 의도하지 않은 내용의 작업을 수행하게된다. 사용자는 기존에 사용해왔던 정상적인 프로그램을 사용한다고 생각하기 때문에 감염 여부 혹은 변조 여부를 인지하기는 거의 불가능하다.
기존 방식은 바이러스백신(anti virus) 엔진을 이용하여 단순히 해킹 툴의 패턴을 추가하고 주기적으로 프로세스들을 검사하여 등록된 해킹 패턴과 일치한 프로그램이 있으면 강제 종료시킨다. 그러나, 이러한 기존의 보안 방법은 계속 쏟아져 나오는 수많은 새로운 해킹 툴 들을 모두 패턴에 추가하여야 하는 문제가 있고, 기존의 해킹툴도 다시 컴파일을 하거나 실행파일을 압축하면 프로그램의 패턴이 변형되기 때문에 더 이상 파일의 무결성 검출이 어렵다는 문제점이 있다.
한편, 국내공개특허 2004-0096264호에는 컨텐츠 제공자의 인증서를 얻을 수 있는 주소가 포함된 헤더부와 암호화된 컨텐츠부를 패키지화하고, 무결성을 보장하기위해 해더부와 컨텐츠부를 해시 부호화하여 전자서명이 이루어진 기술이 개시되어 있다.
본 발명은 소프트웨어의 변조 여부를 보다 정확히 감지하는 무결성 검사 장치 및 방법을 제공하는 것을 목적으로 한다.
상기 기술적 과제는 프로그램이 실행되면, 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 상기 프로그램 파일의 고유 코드를 생성하는 단계; 상기 생성된 고유 코드를 무결성 검사 서버로 전송하여 무결성 검사 결과를 수신하는 단계; 및 상기 수신되는 무결성 검사 결과에 따라 무결성이 입증된 경우에 프로그램을 실행하는 단계;를 포함하는 사용자 단말에서 수행되는 무결성 검사방법에 의해 달성된다.
또한, 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 프로그램 파일의 고유 코드를 생성하여 저장하는 단계; 사용자 단말로부터 프로그램 파일에 대한 무결성 검사 요청과 함께 사용자 단말에서 생성된 고유 코드가 수신되면, 상기 수신된 고유 코드와 상기 저장된 고유 코드를 비교하여 일치 여부에 따라 무결성을 검사하는 단계; 및 상기 검사 결과를 사용자 단말로 전송하는 단계;를 포함하는 무결성 검사 서버에서 수행되는 무결성 검사 방법에 의해서도 달성된다.
한편, 무결성 검사 서버와 데이터 통신을 수행하는 통신부; 프로그램 실행 요청이 입력되면, 프로그램의 실행파일 및 동적 연결 파일이 메모리에 로딩되기 이전에 실행 요청 입력 신호를 후킹(Hooking)하는 후킹부; 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 상기 후킹부에서 후킹된 프로그램 파일의 고유 코드를 생성하는 암호화부; 및 상기 암호화부에서 생성된 고유 코드를 상기 통신부를 통해 무결성 검사 서버로 전송하고, 상기 통신부를 통해 수신되는 무결성 검사 결과에 따라 무결성이 입증된 경우에 프로그램을 실행을 요청하는 무결성 검사부;를 포함하는 사용자 단말에 구비되는 무결성 검사 장치에 의해서도 달성된다.
또한, 사용자 단말과 통신을 수행하는 통신부; 프로그램 파일의 고유 코드를 저장하는 저장부; 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 프로그램 파일의 고유 코드를 생성하여 상기 저장부에 저장하는 암호화부; 및 상기 통신부를 통해 사용자 단말로부터 프로그램 파일에 대한 무결성 검사 요청과 함께 사용자 단말에서 생성된 고유 코드가 수신되면, 상기 수신된 고유 코드와 상기 저장부에 저장된 고유 코드를 비교하여 일치 여부에 따라 무결성을 검사하고, 상기 통신부를 통해 무결성 검사결과를 사용자 단말로 전송하는 코드 비교부;를 포함하는 무결성 검사 서버에 구비되는 무결성 검사 장치에 의해서도 달성된다.
본 발명에 따르면 PC에 설치되는 각종 소프트웨어가 바이러스 또는 해킹툴에 의하여 변형될 경우, 이를 프로그램 실행 전에 발견하는 것이 용이하여 안정적인 PC환경을 제공할 수 있다.
뿐만 아니라, 프로그램 파일의 손상 및 이상이 감지될 경우 손상된 프로그램 파일을 신속하게 정상 파일로 대체하여 실행하는 것이 가능하다.
도 1은 일 실시예에 따른 사용자 단말에 구비되는 무결성 검사 장치의 개략적인 블록도이다.
도 2는 일 실시예에 따른 배열이 변경된 암호화 테이블의 설명을 위한 참조도이다.
도 3 은 일 실시예에 따른 무결성 검사 서버에 구비되는 무결성 검사 장치의 블록도이다.
도 4 는 일 실시예에 따른 사용자 단말에서 수행되는 무결성 검사방법의 흐름도이다.
도 5 는 일 실시예에 따른 무결성 검사 서버에서 수행되는 무결성 검사방법의 흐름도이다.
전술한, 그리고 추가적인 본 발명의 양상들은 첨부될 도면을 참조하여 설명되는 바람직한 실시예들을 통하여 더욱 명백해질 것이다. 이하에서는 본 발명을 이러한 실시예를 통해 이 기술분야에서 통상의 지식을 가진 자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 사용자 단말에 구비되는 무결성 검사 장치의 개략적인 블록도이다.
도 1 에 도시된 바와 같이 일 실시예에 따른 무결성 검사 장치는 통신부(10), 후킹부(12), 암호화부(14), 및 무결성 검사부(16)를 포함한다.
통신부(10)는 TCP/IP와 같은 프로토콜을 이용하여 무결성 검사 서버와 데이터 통신을 수행하는 통신모듈로 구현된다. 그러나 이에 한정되지 않고 원거리의 서버와 데이터 전송을 수행할 수 있는 모든 규약의 통신 모듈을 포괄하도록 해석된다.
후킹부(12)는 프로그램의 실행 요청이 입력되면, 프로그램의 실행파일 및 동적 연결 파일이 메모리에 로딩되기 이전에 실행 요청 입력 신호를 후킹(Hooking)한다. 일 예로 후킹부(12)는 실행 요청된 프로그램이 사용하는 API(Application Programming Interface)를 후킹(Hooking)할 수 있다. API 후킹이란 프로그램이 사용하는 명령을 중간에 가로채어 사용된 명령어나 파라메터를 보거나 조작하는 기술을 말한다. 즉, 후술할 암호화부(14) 및 무결성 검사부(16)의 동작은 후킹 루틴에포함된 것일 수 있다.
실행 프로그램 또는 응용 애플리케이션이라 불리는 EXE 파일 말고도 프로그램 실행을 위한 동적 링크 라이브러리라는 DLL파일도 프로그램 실행시에 같이 물려 메모리상에 로드된다. 이러한 EXE 파일과 관련 DLL 파일들이 메모리 상에 로드되면서 비로소 프로그램이 사용가능하게 되고, 이렇게 로드된 하나의 EXE와 여러 개의 관련 DLL들이 하나의 프로세스(process)를 구성한다. 즉, 본 발명에 따른 무결성 검사 장치는 실행 액션에 의한 후킹 기술을 이용함으로써 실제 프로그램이 구동되기 이전에 프로그램 파일에 대한 무결성을 검사할 수 있다.
그러나 이에 한정되지 않고 후킹부(12)는 PC에 전원이 공급될 경우 즉, 부팅시, 혹은 새로운 프로그램 파일을 다운 로드 받을 경우에 무결성 검사를 수행하기 위해 후킹 신호를 발생시키도록 구현될 수도 있다. 일 예로 PC에 전원이 공급될 경우 후킹하여 PC를 이용하기 전에 PC에 설치된 각종 프로그램 파일에 대한 고유 코드가 무결성 검사 서버에 저장된 프로그램 파일의 고유 코드와 일치하는지를 검사한다. 그리고 모든 프로그램 파일의 고유 코드가 일치하는 경우에만 PC 사용을 허가하고 일치하지 않을 경우에는 PC사용을 제한하여 변조된 프로그램 파일이 구동되는 것을 미연에 방지할 수 있다.
암호화부(14)는 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 프로그램 파일의 고유 코드를 생성한다. 여기서 고유코드는 일정한 크기이고, 사람의 지문과 같은 식별 기능을 수행할 수 있다. 일 실시예에 있어서 암호화부(14)는 MD5(Message-Digest algorithm 5)를 이용하여 고유 코드를 생성한다. MD5는 임의의 길이의 메시지(variable-length message)를 입력받아, 32바이트(Byte)의 고정 길이의 고유 코드를 출력한다. 해시(hash) 암호화 기법의 일종인 MD5의 경우 암호화 테이블을 참조하여 고유코드를 출력한다.
일 양상에 따라 암호화부(14)가 프로그램 파일의 고유 코드를 생성하는 것은 프로그램의 실행 파일, 동적 연결 파일, 데이터 파일 중 적어도 하나의 고유 코드를 생성하는 것이다.
또 다른 양상에 따르면 암호화부(14)는 통신부(10)를 통해 무결성 검사 서버로부터 암호화 테이블의 배열 변경을 위한 기 설정된 규칙을 수신한다.
도 2는 일 실시예에 따른 배열이 변경된 암호화 테이블의 설명을 위한 참조도이다. 즉, 기존의 암호화 테이블 배열(a)을 임의로 변경하여 배열이 변경된 암호화 테이블(b)을 사용함으로써 해킹에 의한 내부 변조를 막을 수 있다.
여기서 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것일 수 있다. 기 설정된 규칙을 수신하는 것은 최초 프로그램을 다운로드할 때에 1회적으로 수행될 수도 있고, 특정 그룹에 속한 단말들에 이미 할당된 형태로 구현될 수도 있다. 혹은 암호화를 수행할 때마다 무결성 검사 서버로부터 수시로 수신받을 수도 있다.
무결성 검사부(16)는 암호화부(14)에서 생성된 고유 코드를 통신부(10)를 통해 무결성 검사 서버로 전송하고, 통신부(10)를 통해 무결성 검사 서버로부터 무결성 검사 결과를 수신한다. 그리고 프로그램 파일의 무결성이 입증된 경우에 프로그램을 실행을 요청한다.
반면, 무결성 검사부(16)는 무결성이 입증되지 않은 경우, 통신부(10)를 통해 무결성 검사 서버로 해당 프로그램의 최초 원본 파일을 요청한다. 그리고 수신된 최초 원본 파일에 대해 2차적으로 무결성 검사를 수행한다. 이때, 무결성 검사결과 역시 무결성이 없다고 인지된 경우에는 이를 외부로 출력하여 알리고, PC를 강제 종료함으로써 파일이 더 이상 변조되는 것을 막을 수 있다.
도 3 은 일 실시예에 따른 무결성 검사 서버에 구비되는 무결성 검사 장치의 블록도이다.
도 3에 도시된 바와 같이 무결성 검사 서버에 구비되는 무결성 검사 장치는통신부(30), 저장부(32), 암호화부(34), 및 코드 비교부(36)를 포함한다. 일 실시예에 있어서 무결성 검사 서버는 프로그램 개발사 혹은 기업 내부의 관리자 혹은 공인 인증 기관에서 운영하는 관리 서버일 수 있다.
통신부(30)는 사용자 단말과 통신을 수행하며, 전술한 사용자 단말의 통신부(10)와 대응되는 구성이다.
저장부(32)는 메모리와 같은 데이터 저장 장치로 구현된다. 일 실시예에 있어서 저장부(32)는 프로그램 파일 정보 혹은 프로그램 파일의 저장 위치와, 해당 프로그램 파일의 고유 코드를 저장한다. 추가적으로 프로그램 파일의 설치 크기나 원본 최종 변경일, 원본 버전 정보를 저장할 수도 있다.
암호화부(34)는 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 프로그램 파일의 고유 코드를 생성하여 저장부(32)에 저장한다. 암호화부(34)는 프로그램 파일이 생성된 후 배포되기 이전에 고유코드를 생성하여 저장함이 바람직하다.
일 실시예에 있어서 암호화부(34)는 MD5(Message-Digest algorithm 5)를 이용하여 고유 코드를 생성한다. 그리고 도 2를 참조하여 설명한 바와 같이 배열이 변경된 암호화 테이블을 참조하여 고유 코드를 생성한다. 여기서 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것일 수 있다. 그리고 기 설정된 규칙은 사용자 단말과 공유됨으로써 동일한 형태로 배열이 변경된 암호화 테이블을 참조하도록 구현된다.
코드 비교부(36)는 통신부(30)를 통해 사용자 단말로부터 프로그램 파일에 대한 무결성 검사 요청과 함께 사용자 단말에서 생성된 고유 코드가 수신되면, 수신된 고유 코드와 저장부(32)에 저장된 고유 코드를 비교하여 일치 여부에 따라 무결성을 검사한다. 그리고 통신부(30)를 통해 무결성 검사결과를 사용자 단말로 전송한다. 코드 비교부(36)는 고유 코드를 바이트 단위로 비교하여 일치 여부를 확인함으로써 일치하는 경우에 무결성이 있는 프로그램 파일이라고 판단할 수 있다.
도 4는 일 실시예에 따른 사용자 단말에서 수행되는 무결성 검사방법의 흐름도이다.
먼저, 사용자 단말은 무결성 검사 서버로부터 암호화 테이블의 배열 변경을 위한 기 설정된 규칙을 수신한다(400). 여기서 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것일 수 있다.
그리고 프로그램 실행 요청이 입력되면, 프로그램의 실행파일 및 동적 연결 파일이 메모리에 로딩되기 이전에 실행 요청 신호를 후킹(Hooking)한다(410). 여기서 일예로 후킹하는 단계는 실행 요청된 프로그램이 사용하는 API(Application Programming Interface)를 후킹(Hooking)하는 것이다.
그리고 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 상기 프로그램 파일의 고유 코드를 생성한다(420). 이때 고유 코드를 생성하는 단계는 MD5(Message-Digest algorithm 5)를 이용하여 고유 코드를 생성한다.
여기서 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것일 수 있다. 기 설정된 규칙을 수신하는 것은 최초 프로그램을 다운로드할 때에 1회적으로 수행될 수도 있고, 특정 그룹에 속한 단말들에 이미 할당된 형태로 구현될 수도 있다. 혹은 암호화를 수행할 때마다 무결성 검사 서버로부터 수시로 수신받을 수도 있다.
일 양상에 따라 프로그램 파일의 고유 코드를 생성하는 단계는 프로그램의 실행 파일, 동적 연결 파일, 데이터 파일 중 적어도 하나의 고유 코드를 생성한다.
그리고 생성된 고유 코드를 무결성 검사 서버로 전송하여 무결성 검사를 요청하고, 무결성 검사 결과를 수신한다(430).
이 후에 수신되는 무결성 검사 결과에 따라 무결성이 입증된 경우에(440) 프로그램을 실행한다(450). 즉, 프로그램 실행 전에 먼저 프로그램 파일에 대한 무결성을 검사하고 검사 결과에 따라 실행함으로써, 변조된 프로그램이 실행되는 것을 미연에 방지할 수 있다.
한편, 상기 수신되는 무결성 검사 결과에 따라 무결성이 입증되지 않은 경우에는 무결성 서버로 새로운 프로그램 파일의 전송을 요청한다(442).
그리고 전송 요청에 따라 수신되는 새로운 프로그램 파일에 대해서도 동일한 과정을 거쳐 2차적으로 무결성을 검사한다(444). 그리고 재검사 결과 무결성이 입증된 경우에(446) 프로그램을 실행한다. 반면, 재검사 결과 무결성이 입증되지 않으면 이를 관리자에게 보고하고(448), PC를 강제 종료함으로써 파일이 더 이상 변조되는 것을 막을 수 있다.
도 5 는 일 실시예에 따른 무결성 검사 서버에서 수행되는 무결성 검사방법의 흐름도이다.
먼저, 소프트웨어 개발회사에서 제작된 프로그램 파일의 배포 전에 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 프로그램 파일의 고유 코드를 생성하여 저장한다(500,510). 이때 MD5(Message-Digest algorithm 5)를 이용하여 고유 코드를 생성하는 것이 바람직하다. 여기서 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것일 수 있다. 그리고 기 설정된 규칙은 사용자 단말과 공유됨으로써 동일한 형태로 배열이 변경된 암호화 테이블을 참조하도록 구현된다.
이 후에, 사용자 단말로부터 프로그램 파일에 대한 무결성 검사 요청과 함께 사용자 단말에서 생성된 고유 코드가 수신되면(520), 수신된 고유 코드와 저장된 고유 코드를 비교하여 일치 여부에 따라 무결성을 검사한다(530). 이때 고유 코드를 바이트 단위로 비교하여 일치 여부를 확인함으로써 두 값이 완전히 일치하는 경우에 무결성이 있는 프로그램 파일이라고 판단할 수 있다.
그리고 무결성 검사 결과를 사용자 단말로 전송한다(540).
본 발명의 실시예에 따른 무결성 검사 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CDROM,자기 테이프, 하드 디스크, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이제까지 본 발명에 대하여 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 따라서 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허청구범위에 기재된 내용 및 그와 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
10, 30 : 통신부
12 : 후킹부
14, 34 : 암호화부
16 : 무결성 검사부
32 : 저장부
36 : 코드 비교부

Claims (17)

  1. 프로그램 실행 요청이 입력되면, 프로그램의 실행파일 및 동적 연결 파일이 메모리에 로딩되기 이전에 실행 요청 신호를 후킹(Hooking)하는 단계;
    프로그램이 실행되면, 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 상기 프로그램 파일의 고유 코드를 생성하는 단계;
    상기 생성된 고유 코드를 무결성 검사 서버로 전송하여 무결성 검사 결과를 수신하는 단계; 및
    상기 수신되는 무결성 검사 결과에 따라 무결성이 입증된 경우에 프로그램을 실행하는 단계;를 포함하는 사용자 단말에서 수행되는 무결성 검사방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 후킹하는 단계는 실행 요청된 프로그램이 사용하는 API(Application Programming Interface)를 후킹(Hooking)하는 것임을 특징으로 하는 사용자 단말에서 수행되는 무결성 검사방법.
  4. 제 1 항에 있어서,
    상기 고유 코드를 생성하는 단계는 MD5(Message-Digest algorithm 5)를 이용하여 고유 코드를 생성하는 사용자 단말에서 수행되는 무결성 검사방법.
  5. 제 1 항에 있어서,
    상기 수신하는 단계 이후에,
    상기 수신되는 무결성 검사 결과에 따라 무결성이 입증되지 않은 경우에는 무결성 서버로 새로운 프로그램 파일의 전송을 요청하는 단계; 및
    상기 전송 요청에 따라 수신되는 새로운 프로그램 파일을 실행하는 단계;를 더 포함하는 사용자 단말에서 수행되는 무결성 검사방법.
  6. 제 1 항에 있어서,
    상기 후킹(Hooking)하는 단계 이전에,
    암호화 테이블의 배열 변경을 위한 기 설정된 규칙을 수신하는 단계;를 더 포함하되,
    상기 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것임을 특징으로 하는 사용자 단말에서 수행되는 무결성 검사방법.
  7. 제 1 항에 있어서,
    상기 프로그램 파일의 고유 코드를 생성하는 단계는 프로그램의 실행 파일, 동적 연결 파일, 데이터 파일 중 적어도 하나의 고유 코드를 생성하는 사용자 단말에서 수행되는 무결성 검사방법.
  8. 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 프로그램 파일의 고유 코드를 생성하여 저장하는 단계;
    사용자 단말로부터 프로그램 파일에 대한 무결성 검사 요청과 함께 사용자 단말에서 생성된 고유 코드가 수신되면, 상기 수신된 고유 코드와 상기 저장된 고유 코드를 비교하여 일치 여부에 따라 무결성을 검사하는 단계; 및
    상기 검사 결과를 사용자 단말로 전송하는 단계;를 포함하는 무결성 검사 서버에서 수행되는 무결성 검사 방법.
  9. 제 8 항에 있어서,
    상기 저장하는 단계는 MD5(Message-Digest algorithm 5)를 이용하여 고유 코드를 생성하는 무결성 검사 서버에서 수행되는 무결성 검사 방법.
  10. 제 8 항 또는 제 9 항에 있어서,
    상기 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것임을 특징으로 하는 무결성 검사 서버에서 수행되는 무결성 검사 방법.
  11. 무결성 검사 서버와 데이터 통신을 수행하는 통신부;
    프로그램 실행 요청이 입력되면, 프로그램의 실행파일 및 동적 연결 파일이 메모리에 로딩되기 이전에 실행 요청 입력 신호를 후킹(Hooking)하는 후킹부;
    기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 상기 후킹부에서 후킹된 프로그램 파일의 고유 코드를 생성하는 암호화부; 및
    상기 암호화부에서 생성된 고유 코드를 상기 통신부를 통해 무결성 검사 서버로 전송하고, 상기 통신부를 통해 수신되는 무결성 검사 결과에 따라 무결성이 입증된 경우에 프로그램을 실행을 요청하는 무결성 검사부;를 포함하는 사용자 단말에 구비되는 무결성 검사 장치.
  12. 제 11항에 있어서,
    상기 암호화부는 상기 통신부를 통해 무결성 검사 서버로부터 암호화 테이블의 배열 변경을 위한 기 설정된 규칙을 수신하되, 상기 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것임을 특징으로 하는 사용자 단말에 구비되는 무결성 검사 장치.
  13. 제 11항 또는 제 12항에 있어서,
    상기 무결성 검사부는 무결성이 입증되지 않은 경우, 상기 통신부를 통해 무결성 검사 서버로 해당 프로그램의 최초 파일을 요청하는 사용자 단말에 구비되는 무결성 검사 장치.
  14. 제 11항 또는 제 12항에 있어서,
    상기 암호화부는 MD5(Message-Digest algorithm 5)를 이용하여 고유 코드를 생성하는 사용자 단말에 구비되는 무결성 검사 장치.
  15. 사용자 단말과 통신을 수행하는 통신부;
    프로그램 파일의 고유 코드를 저장하는 저장부;
    기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여 프로그램 파일의 고유 코드를 생성하여 상기 저장부에 저장하는 암호화부; 및
    상기 통신부를 통해 사용자 단말로부터 프로그램 파일에 대한 무결성 검사 요청과 함께 사용자 단말에서 생성된 고유 코드가 수신되면, 상기 수신된 고유 코드와 상기 저장부에 저장된 고유 코드를 비교하여 일치 여부에 따라 무결성을 검사하고, 상기 통신부를 통해 무결성 검사결과를 사용자 단말로 전송하는 코드 비교부;를 포함하는 무결성 검사 서버에 구비되는 무결성 검사 장치.
  16. 제 15 항에 있어서,
    상기 암호화부는 MD5(Message-Digest algorithm 5)를 이용하여 고유 코드를 생성하는 무결성 검사 서버에 구비되는 무결성 검사 장치.
  17. 제 15 항 또는 제 16 항에 있어서,
    상기 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것임을 특징으로 하는 무결성 검사 서버에 구비되는 무결성 검사 장치.
KR1020110110172A 2011-10-26 2011-10-26 소프트웨어의 무결성 검사 장치 및 방법 KR101320680B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110110172A KR101320680B1 (ko) 2011-10-26 2011-10-26 소프트웨어의 무결성 검사 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110110172A KR101320680B1 (ko) 2011-10-26 2011-10-26 소프트웨어의 무결성 검사 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130045759A KR20130045759A (ko) 2013-05-06
KR101320680B1 true KR101320680B1 (ko) 2013-11-21

Family

ID=48657707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110110172A KR101320680B1 (ko) 2011-10-26 2011-10-26 소프트웨어의 무결성 검사 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101320680B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101783159B1 (ko) * 2016-05-04 2017-10-23 남승리 컴퓨터 네트워크 상에서 파일 속으로의 침입 방지 장치 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101700413B1 (ko) * 2015-09-24 2017-02-13 주식회사 오앤파트너스 프로그램의 무결성 검사방법 및 그 시스템
KR101809018B1 (ko) 2016-04-20 2017-12-14 주식회사 이디엄 열 지향 레이아웃 파일의 생성 방법
WO2020013354A1 (ko) * 2018-07-10 2020-01-16 엘지전자 주식회사 차량용 방화벽의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060083850A (ko) * 2005-01-18 2006-07-21 마이크로소프트 코포레이션 부분적인 이미지 해시들을 이용하여 실행가능한 파일무결성을 검증하기 위한 시스템 및 방법
KR20100054940A (ko) * 2008-11-17 2010-05-26 포항공과대학교 산학협력단 임베디드 리눅스에서 서명 검증 방식을 이용한 악성 프로그램 차단 장치 및 방법
KR20110067417A (ko) * 2009-12-14 2011-06-22 삼성전자주식회사 데이터 암호화 방법 및 장치와 데이터 복호화 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060083850A (ko) * 2005-01-18 2006-07-21 마이크로소프트 코포레이션 부분적인 이미지 해시들을 이용하여 실행가능한 파일무결성을 검증하기 위한 시스템 및 방법
KR20100054940A (ko) * 2008-11-17 2010-05-26 포항공과대학교 산학협력단 임베디드 리눅스에서 서명 검증 방식을 이용한 악성 프로그램 차단 장치 및 방법
KR20110067417A (ko) * 2009-12-14 2011-06-22 삼성전자주식회사 데이터 암호화 방법 및 장치와 데이터 복호화 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101783159B1 (ko) * 2016-05-04 2017-10-23 남승리 컴퓨터 네트워크 상에서 파일 속으로의 침입 방지 장치 및 방법

Also Published As

Publication number Publication date
KR20130045759A (ko) 2013-05-06

Similar Documents

Publication Publication Date Title
US11258792B2 (en) Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium
KR102419574B1 (ko) 컴퓨터 애플리케이션에서 메모리 손상을 교정하기 위한 시스템 및 방법
US9792429B2 (en) Detection of malicious software packages
US10963543B2 (en) Secure communication between operating system and processes
EP2169582B1 (en) Method and apparatus for determining software trustworthiness
JP5460698B2 (ja) 安全なアプリケーションストリーミング
JP2017004521A (ja) インテグリティに基づき産業企業システムにおけるエンドポイントの通信を制御する方法および装置
NO337222B1 (no) Automatisk deteksjon og utbedring av sårbare filer
EP2946327A1 (en) Systems and methods for identifying and reporting application and file vulnerabilities
JP6385842B2 (ja) 情報処理端末、情報処理方法、及び情報処理システム
CN104573435A (zh) 用于终端权限管理的方法和终端
KR101320680B1 (ko) 소프트웨어의 무결성 검사 장치 및 방법
US11449602B1 (en) Systems and methods for generating trust binaries
JP4923925B2 (ja) チェックプログラム、監視装置および監視方法
US9965625B2 (en) Control system and authentication device
CN111224826B (zh) 基于分布式***的配置更新方法、设备、***及介质
CN109933351B (zh) 一种修复和升级Linux***的方法与装置
JP2018142078A (ja) 情報処理システム及び情報処理方法
US11928205B1 (en) Systems and methods for implementing cybersecurity using blockchain validation
US11822647B1 (en) Data structure for trust store
CN113157543B (zh) 一种可信度量方法及装置、服务器、计算机可读存储介质
JP2020004127A (ja) コンピュータ資産管理システムおよびコンピュータ資産管理方法
CN110677483B (zh) 信息处理***和可信安全管理***
US10637877B1 (en) Network computer security system
CN111008395B (zh) 一种u盘保护的方法和装置

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
FPAY Annual fee payment

Payment date: 20161008

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171010

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 6