KR20070102294A - 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지방법 - Google Patents

클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지방법 Download PDF

Info

Publication number
KR20070102294A
KR20070102294A KR1020060034251A KR20060034251A KR20070102294A KR 20070102294 A KR20070102294 A KR 20070102294A KR 1020060034251 A KR1020060034251 A KR 1020060034251A KR 20060034251 A KR20060034251 A KR 20060034251A KR 20070102294 A KR20070102294 A KR 20070102294A
Authority
KR
South Korea
Prior art keywords
client
server
check
detection module
tamperproof
Prior art date
Application number
KR1020060034251A
Other languages
English (en)
Other versions
KR100804189B1 (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 KR1020060034251A priority Critical patent/KR100804189B1/ko
Publication of KR20070102294A publication Critical patent/KR20070102294A/ko
Application granted granted Critical
Publication of KR100804189B1 publication Critical patent/KR100804189B1/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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 클라이언트-서버 환경 하에서 클라이언트 소프트웨어 변조 방지 방법을 제시한다. 본 발명의 방법은 로그인하는 단계; 서버가 다수의 클라이언트 변조감지모듈 중 하나를 임의로 선택하여 클라이언트에게 제공하는 단계; 클라이언트가 변조감지모듈을 받아 저장하는 단계; 서버가 검사요구메시지에 다수의 검사요건 중 선택된 검사요건과, 임의의 난수를 담아 클라이언트에 검사를 요구하는 단계; 클라이언트가 서버의 검사 요구를 받으면, 클라이언트 변조감지모듈n의 엔트리 함수를 호출하는 단계; 클라이언트 변조감지모듈n이 지정된 검사요건을 순서대로 실행하고, 그 결과를 내장된 블랙박스 함수(Bn)의 인수로 주어 실행하는 단계; 클라이언트 변조감지모듈n이 결과값을 중심으로 검사응답메시지를 구성하여 자신을 호출한 클라이언트에게 반환하는 단계; 클라이언트가 검사응답메시지를 서버로 전송하는 단계; 및 서버가 검사응답메시지를 수신하면, 그 내용을 검사해 해당 클라이언트 내부의 변조 여부를 확인하는 단계로 구성된다. 따라서 본 발명은 서버에 접속한 클라이언트 프로그램의 변조 여부를 탐지하고, 변조가 일어난 경우 서버 이용을 거부함으로서 클라이언트 프로그램의 무결성을 보장할 수 있다.
클라이언트-서버, 무결성, 소프트웨어 변조, 침해, 공격, 변조감지

Description

클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지 방법{Software Tamperproof Method For Client-Server}
도 1은 종래의 악의적 프로그램으로부터의 방어 개념을 도시한 도면,
도 2는 일반적인 복사방지기술의 얼개를 도시한 도면,
도 3은 일반적인 복사방지기술에서 고유성복제공격 개념을 도시한 도면,
도 4는 일반적인 복사방지기술에서 검사루틴 무력화 공격 개념을 도시한 도면,
도 5는 핑거프린팅 변조방지 기법을 도시한 도면,
도 6은 프로그램 즉석생성 방식의 프로그램 변조방지 및 확인 기법을 도시한 도면,
도 7은 본 발명에 따른 TTP기반의 변조방지 기법을 도시한 개념도,
도 8은 본 발명이 적용될 수 있는 클라이언트- 서버 시스템의 구성을 도시한 도면,
도 9는 본 발명에 따른 클라이언트 소프트웨어 변조방지 방법의 전체 흐름도,
도 10은 본 발명에 따른 클라이언트 소프트웨어 변조방지 방법의 검사 요소,
도 11은 본 발명에 따른 클라이언트 소프트웨어 변조방지 방법에서 공격유형 분석의 제1 예,
도 12는 본 발명에 따른 클라이언트 소프트웨어 변조방지 방법에서 공격유형분석의 제2 예,
도 13은 본 발명에 따른 클라이언트 소프트웨어 변조방지 방법에서 공격유형분석의 제3 예.
*도면의 주요부분에 대한 부호의 설명
70: 신뢰할 수 있는 서버 71: 신뢰할 수 있는 서버 프로그램
80: 악의적인 호스트 81: 실행중인 선량한 프로그램
85: OS 86: 디버거
87: 프로그래밍 도구들 102: 네트워크
110: 사용자 112: 클라이언트
114: 변조감지모듈 120: 서버
본 발명은 소프트웨어 변조방지(tamperproof) 기술에 관한 것으로, 특히 클라이언트-서버(Client-Server; CS) 기반 환경에서 능동적인 변조방지 능력을 제공하는 클라이언트 소프트웨어 변조방지 방법에 관한 것이다.
최근들어, 컴퓨터 기술의 발달로 현대인들은 언제 어디서나 컴퓨터 소프트웨어를 이용하는 유비쿼터스 컴퓨팅 시대를 살아가고 있다.
그런데 이와 같이 일상생활 전반에 걸쳐 컴퓨터 이용이 폭발적으로 늘어나고 정보통신산업이 급속히 팽창함에 따라, 이러한 정보통신산업을 뒷받침하는 소프트웨어를 불법적인 권리침해로부터 보호하는 것이 중요한 과제로 대두되고 있다.
통상, 컴퓨터 보안 기술에서 침해유형은 "악의적 프로그램의 공격(malicious program attack)"과, "악의적 호스트의 공격(malicious host attack)"으로 분류된다.
대부분의 기존 컴퓨터 보안 기술에 적용되는 "악의적 프로그램 공격"은 공격자가 악의적인 의도로 만들어진 프로그램 및 데이터를 이용해 선량한 호스트 컴퓨터의 제어권을 탈취하는 것을 목표로 하며, 이와 같은 목표를 달성하면 이 제어권을 이용해 호스트 내에 저장된 프로그램 및 데이터 등을 훔칠 수 있다.
이러한 "악의적 프로그램 공격"의 일반적인 진행과정은 무해한 프로그램으로 위장하여 외부에서 제공된 악의적 프로그램을 표적 호스트 컴퓨터의 사용자가 실행시키면, 악의적 프로그램은 해당 사용자의 권한을 이용해 호스트 컴퓨터의 OS, 파일시스템, 실행중인 다른 프로그램 등에 공격하는 것이다.
도 1은 이와 같은 "악의적 프로그램 공격"으로부터 선량한 호스트 컴퓨터의 제어권을 방어하기 위한 일반적인 기법을 도시한 것이다. 도 1에서는 외부에서 제공된 프로그램(1)을, 실행 프로그램이 호스트 컴퓨터의 제어권을 탈취하지 못하도록 실행 권한을 면밀히 제한하거나, 프로그램을 실행하기 전에 검사하는 기능을 갖춘 "모래상자(Sandbox)"(2)라고 불리는 특별한 환경에서 실행하게 된다. 여기에 설명된 모래상자(2)를 이용한 "악의적 프로그램 공격"에 대한 방어는 선마이크로시스 템즈의 "Java Security Architecture" 에 개시되어 있다.
한편, "악의적 호스트 공격"은 악의적인 공격자가 프로그램이 실행될 컴퓨터의 제어권 및 모든 기능을 장악한 상태에서 정상적인 프로그램을 실행하거나 분석하여 프로그램에 포함된 지적재산권을 침해하려고 시도하는 것이다. "악의적 호스트 공격"의 일반적인 진행과정은 공격자가 잘 준비된 호스트 컴퓨터와 적절한 소프트웨어 개발 및 분석 도구를 동원해 정상적인 프로그램을 분석하여 프로그램에 포함된 지적재산권(소프트웨어 소스코드, 알고리즘, 컨텐츠 등)을 훔치는 것이다.
이와 같은 "악의적 호스트 공격"에 대한 방어는 통상 소프트웨어 권리침해로부터 소프트웨어를 지키는 기술로서, 불법복제방지, 역공학, 소프트웨어 변조, 디지털 컨텐츠 보호 등이 해당된다. 이 중 불법복제를 막기 위한 수단인 복사방지(copy protection) 기술이 1980년대에, 그리고 2000년 이후 디지털 컨텐츠 보호를 위한 DRM 기술이 주목을 받고 있음을 제외하고는 지금까지 전반적으로 연구개발이 부진하였다.
복사방지와 DRM은 보호의 대상이 소프트웨어와 디지털 컨텐츠라는 차이가 있지만 근본적으로 불법복제에 대한 방어수단이라는 점에서는 동일하고, 악의적인 호스트로부터의 방어의 경우, 방어자는 능동적인 대응수단을 사용할 수 없으므로, 일반적으로 악의적 프로그램 방어보다 어려운 것으로 알려져 있다.
이와 같은 "악의적 호스트로부터의 방어"에 따르는 난점을 기존의 복사방지 기술을 예로 들어 살펴보면 다음과 같다.
도 2는 전형적인 복사방지기술의 구성요소와 동작원리를 도시한 것이다.
전형적 복사방지 기술은 크게 보아 두 가지 구성요소로 성립된다. 복사방지기술은 우선 한 컴퓨터 시스템의 특정 부분에 복제하기 힘든 고유성(uniqueness)을 부여한다. 이러한 고유성에는 레이저 광선 등으로 상처를 낸 비정상 섹터를 가진 플로피디스크(4b)나 병렬포트 등에 꽂아 사용하는 하드웨어 보안장치(hardware security device; HSD)(4a) 등이 일반적으로 사용된다.
그리고 그러한 고유성의 존재여부를 검사하는 검사루틴(3a)을 복사방지하려는 프로그램(3) 내부에 포함시킨다. 만약 검사루틴(3a)이 고유성의 존재를 발견할 수 없거나, 고유성이 위조된 것임을 알아내면 프로그램(3)은 실행이 중단되거나 파괴된다.
도 3은 복사방지를 무력화하기 위해 시스템의 고유성을 복제하는 일반적인 수법을 도시한 도면이다. 도 3을 참조하면, 공격자는 에뮬레이터 등을 이용해 하드웨어 보안장치(4a')가 있는 것처럼 실행중인 프로그램(3)의 검사루틴(3a)을 속이거나 특별한 플로피 디스크 컨트롤러(Floppy Disk Controller; FDC) 등을 이용해 특별 섹터(4b')를 복제한다.
도 4는 복사방지를 무력화하기 위해 프로그램에 포함된 검사루틴을 제거하거나 무력화하는 수법을 도시한 도면이다. 도 4를 참조하면, 공격자는 디버거나 에뮬레이터, 인서킷 에뮬레이터, 디스어셈블러 같은 소프트웨어 개발 도구를 이용하여 실행중인 프로그램(3) 내부에 포함된 검사루틴(3a)의 위치를 찾아내 그 기능을 무력화하거나 제거하게 된다.
이와 같이 복사방지에 대한 공격자는 고유성과 검사루틴 중 어느 한 쪽을 무 력화함으로서 복사방지를 제거할 수 있다. 이때 공격자는 둘 중 상대적으로 쉬운 쪽을 선택할 수 있기 때문에, 통상 고유성과 검사루틴이라는 두 구성요소를 무력화하는데 드는 노력이 균형을 이룰 때 복사방지의 방어능력이 극대화된다. 이와 같은 복사방지 기법은 제이 알 고슬러 저술의 "Software Protection: Myth or Reality" (1985년도 CRYPTO 학회 프로시딩 제140쪽에서 157쪽에 수록)에 상술되어 있다.
한편, 전술한 복사방지에 대한 공격 사례에서 검사루틴 무력화는 대상 프로그램에 포함되어 있는 검사루틴 부분을 수정하거나 제거하는 방법으로 이루어진다. 따라서 대상 프로그램 자체를 수정할 수 없도록 할 수 있는 방법이 존재한다면 매우 유용할 것이다.
지금까지 알려진 소프트웨어 변조 방지 기술은 크게 보아 세 가지 유형이 있다. 첫째, 핑거프린팅(fingerprinting)으로서, 프로그램이 변조되었는지를 해쉬 함수로 확인한다. 둘째, 프로그램(결과) 검사로서, 프로그램이 생성하는 중간결과값을 통해 확인하는 것이고, 셋째는 실행파일 즉석생성(excutable on the fly)으로서 실행파일을 그때 그때 생성하는 것이다.
도 5는 일반적인 핑거프린팅 기법에 의한 소프트웨어 변조방지 방식을 도시한 도면이다.
도 5를 참조하면, 핑거프린팅 기법에서는 프로그램 곳곳에 코드 세그먼트(5) 일부분의 체크섬(6)을 검사하는 루틴을 심어 변조여부를 확인한다. 적대적인 공격자가 검사루틴을 쉽게 제거하지 못하도록 충분히 많은 체크섬 확인 루틴을 심어야 하며, 각각의 체크섬(6)이 동료 체크섬을 상호 보호할 수 있도록 주의 깊게 중첩되 는 형태로 배치할 필요가 있다.
도 6a 및 6b는 일반적인 실행파일 즉석생성 방식의 소프트웨어 변조방지 기법을 도시한 도면이다. 도 6a는 부분프로그램 생성기(7)가 비밀키와 라이브러리(엔트리 부분프로그램, 베이시스 부분프로그램, 프롤로그 부분프로그램)를 이용하여 부분프로그램(8)을 생성하는 과정이고, 도 6b는 생성된 부분프로그램을 실행하는 과정(61~65)이다.
도 6a 및 6b를 참조하면, 실행파일 즉석생성 기법은 프로그램 전체를 암호키로 암호화한 후 한번에 한 세그먼트만 복호해가면서 실행하게 된다. 해당 세그먼트의 실행 끝에서 프로그램 실행의 중간값이 키와 합쳐져 다음 세그먼트의 선택과 해독에 사용되며, 실행이 끝난 현재 세그먼트는 도로 암호화된다. 실행파일 즉석생성 방식의 변조방지 기법은 데이비드 오크스미스 외가 취득한 미국 특허 5,892,899에 상술되어 있다.
그런데 이러한 종래의 소프트웨어 변조 방지 방법은 클라이언트 소프트웨어 자체에 내장된 수동적인 변조방지 기술로서, 악의적인 호스트 공격으로부터 보호하는데 한계가 있다.
따라서 본 발명의 제1 목적은 컴퓨터 네트워크 상에 구축된 클라이언트-서버 환경에서 능동적인 클라이언트 변조 방지방법을 제공하는 데 있다.
본 발명의 제2 목적은 상기 제1 목적에 부가하여 소프트웨어적으로 구현 가능한 클라이언트 변조 방지방법을 제공하는데 있다.
본 발명의 제3 목적은 상기 제1 목적에 부가하여 기존 클라이언트-서버 환경의 요구조건에 따라, 변조감지 유형, 주기, 차단 정책을 유연하게 조절할 수 있는 클라이언트 변조 방지방법을 제공하는데 있다.
본 발명의 제4 목적은 상기 제1 목적에 부가하여 클라이언트 측에서 감지 가부를 알 수 없는 클라이언트 변조 방지 방법을 제공하는데 있다.
본 발명의 제5 목적은 공격자의 수단에 대해 강한 저항성(resilience)과 높은 기민성(agility)을 가짐으로서 공격자에게 높은 비용을 강요하는 클라이언트 변조 방지 방법을 제공하는 데 있다. 여기서, 저항성이라 함은 공격자가 변조 방지 시스템을 무력화하기 위한 자동화된 분석 수단을 만들어내기 어려움을 의미한다. 기민성은 방어자가 변조 방지 루틴의 얼개를 짧은 시간 마다 주기적으로 변경함으로서 공격자가 개별 변조 방지 루틴을 분석하여 무력화 수단을 만들어내기 힘들도록 하는 특성을 말한다. 이와 같은 성질은 "악의적 호스트 공격"에 대항하기 힘든 수동방어기법들을 강화하는데 매우 중요하다.
상기와 같은 목적들을 달성하기 위하여 본 발명은, 서버에 다수의 클라이언트가 네트워크를 통해 연결된 클라이언트 - 서버 환경에 있어서, 클라이언트가 서버에 로그인 하는 단계; 상기 서버가 다수의 클라이언트 변조감지모듈 중 하나를 임의로 선택하여 상기 클라이언트에게 제공하는 단계; 상기 클라이언트가 변조감지모듈을 받아 저장하는 단계; 상기 서버가 검사요구메시지(CheckReq)에 다수의 검사요건 중 선택된 검사요건({C1, C2, …, Cn})과, 임의의 난수(S)를 담아 상기 클라 이언트에 검사를 요구하는 단계; 상기 클라이언트가 상기 서버의 검사 요구를 받으면, 상기 검사요구메시지에 포함된 인수를 담아 상기 클라이언트 변조감지모듈n의 엔트리 함수를 호출하는 단계; 상기 클라이언트 변조감지모듈n이 지정된 검사요건을 순서대로 실행하고, 그 결과를 내장된 블랙박스 함수(Bn)의 인수로 주어 실행하는 단계; 상기 클라이언트 변조감지모듈n이 결과값을 중심으로 검사응답메시지 (CheckRes)를 구성하여 자신을 호출한 상기 클라이언트에게 반환하는 단계; 상기 클라이언트가 상기 검사응답메시지(CheckRes)를 상기 서버에게 전송하는 단계; 및 상기 서버가 상기 검사응답메시지(CheckRes)를 수신하면, 그 내용을 검사해 해당 클라이언트 내부의 변조 여부를 확인하는 단계를 구비한 것을 특징으로 한다.
여기서, 상기 변조감지모듈은 a) 클라이언트의 데이터 세그먼트 중 서버와 그 값이 동기된 상태로 공유되는 데이터들이나 (b) 클라이언트 코드의 특정 함수가 반환하는 리턴값이나 c) 임의의 코드 세그먼트 부분을 읽어 충돌회피해쉬함수로 만든 확인값(checksum)을 단독, 혹은 중첩으로 사용한 것의 어느 하나 이상을 입력으로 삼은 블랙박스 함수인 것이고, 검사요건은 a) 클라이언트 코드/데이터 세그먼트의 특정 주소범위를 읽거나, b) 클라이언트 주 코드 상의 특정 함수를 호출하는 동작 중 어느 하나인 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.
도 7은 본 발명에 따른 TTP기반의 변조방지 기법을 도시한 개념도이다.
통상, 악의적인 호스트의 공격에 있어서는 선량한 프로그램(81)이 공격자가 장악하고 있는 악의적인 호스트의 제어권을 전혀 벗어날 수 없기 때문에 혼란화(obfusfication)같은 수동적인 방어수단에 의존할 수밖에 없었다.
하지만 본 발명은 도 7에 도시된 바와 같이 공격자가 장악하고 있는 악의적인 호스트(80)의 범위 밖에 신뢰할 수 있는 제3자(Trusted Third Party; TTP)(70)가 실행중인 프로그램(71)의 검사를 돕는 조력자로서 존재한다. 이 TTP(70)는 서버로서, 이 프로그램(81)을 동작할 수 있게 하는 근본적인 기능의 일부이기 때문에 공격자는 TTP(70)의 요구를 무시하거나 단순히 제거할 수 없다. 따라서 악의적인 호스트(80)에서 실행되는 프로그램(81)도 TTP(70)의 도움을 받아 능동적인 방어수단을 적용하는 것이 가능하다. 도 7에서 악의적인 호스트(80)는 디버거나 에뮬레이터(86), 각종 프로그래밍도구(87), OS(85)를 이용하여 실행중인 선량한 프로그램(81)을 공격하게 된다.
도 8은 본 발명이 적용되기에 적합한 클라이언트- 서버 시스템을 도시한 구성 블럭도이고, 도 9는 본 발명에 따른 클라이언트 소프트웨어 변조방지 방법의 전체 흐름도이다.
본 발명에 따른 소프트웨어 변조 방지방법을 적용하기 위한 시스템은 도 8에 도시된 바와 같이, 신뢰할 수 있는 제3자로서의 서버(120)와, 다수의 사용자(예컨대, PC 등)(110)에서 각각 실행되는 다수의 클라이언트들(112)로 구성되고, 각 클라이언트(112)는 서버(120)와 네트워크(102)를 통해 연결되어 클라이언트-서버 환경에서만 의미있는 동작(예컨대, 게임 실행 등)이 이루어지도록 되어 있다. 이때 클라이언트(112)가 실행되는 사용자(110)는 클라이언트 소프트웨어를 변조하려는 악의적인 호스트일 수도 있으며, 본 발명에 따라 서버(120)로부터 다운로드된 클라이언트 변조 감지모듈(114)이 실행되고 있다.
도 8 및 도 9를 참조하면, 먼저 사용자(110)는 서버(120)에 접속하여 다운로드받거나 구매한 클라이언트 소프트웨어(112)를 제공받아 설치하여 실행한다.
클라이언트(112)는 네트워크(102)를 통해 서버(120)에 로그인을 요구하고, 서버(120)는 로그인 정보를 검사한 후 승인여부를 결정한다(S1,S2).
서버(120)는 다수 존재하며 지금까지 제공된 적이 없는 클라이언트 변조감지모듈 중 하나("MorphDetector" N번)를 임의로 선택하여 클라이언트(112)에게 제공한다(S3,S4). 클라이언트(112)는 변조감지모듈(114)을 받아 저장한다(S5,S6).
이후 서버(120)가 서비스를 제공하는 도중 클라이언트(112)의 무결성을 검사하고 싶은 시점에 검사요구메시지 "CheckReq"에 다수의 검사요건 중 선택된 검사요건 "{C1, C2, …, Cn}"과 임의의 난수 "S"을 담아 클라이언트(112)에게 전송한다(S7).
클라이언트(112)는 서버(120)의 검사 요구를 받으면, 메시지에 포함된 인수를 담아 앞서 단계 S6에서 다운로드받아 설치된 변조감지모듈n의 엔트리 함수를 호출한다(S8).
변조감지모듈n(114)은 지정된 검사요건을 순서대로 실행한다(S9,S10). 이때, 검사요건은 a)클라이언트 코드/데이터 세그먼트의 특정 주소범위를 읽거나, b)클라이언트 주 코드 상의 특정 함수를 호출하는 동작으로 이루어진다.
이어 변조감지모듈n(114)은 단계 S10에서 얻은 결과를 내장된 블랙박스 함수Bn의 인수로 주어 실행한다(S11).
변조감지모듈n(114)은 난수 S와 모듈 자체의 내장된 흐름에 맞추어 변조감지모듈(114)에 의한 검사요건 실행단계(S9,S10)와 블랙박스 함수의 인수실행 단계(S11)를 일정 회 반복한다(S12).
이어 변조감지모듈n(114)은 S11 단계에서 얻어진 결과값을 중심으로 검사응답메시지 "CheckRes"를 구성하여 자신을 호출한 클라이언트(114)에게 반환한다(S13).
그리고 클라이언트(112)는 검사응답메시지(CheckRes)를 서버(120)에게 전송한다(S14).
서버(120)는 검사응답메시지(CheckRes)를 수신하면, 그 내용을 검사해 클라이언트(112) 내부의 변조 여부를 확인한다(S15,S16).
그리고 서버(120)는 변조여부가 확인되면, 적절한 대응조치(서비스 중단 등)를 취한다(S17).
이후 서버(120)는 적절한 주기 마다 검사요구메시지(CheckReq)를 클라이언트(112)측으로 보내어 재검사를 시행하고, 서버(120)는 적절한 주기마다 변조감지모듈을 변경한다(S18,S19).
도 10은 본 발명에 따른 변조감지모듈에서 검사하는 클라이언트의 내부정보의 예를 도시한 도면이다.
도 10을 참조하면, 본 발명에 따른 변조감지모듈(114)은 클라이언트의 메모 리에 있는 클라이언트의 데이터 세그먼트(112a) 중 서버(120)와 그 값이 동기된 상태로 공유되는 데이터들(112d)과, 클라이언트 코드 세그먼트(112b)의 특정 함수가 반환하는 리턴값, 및 임의의 코드 세그먼트 부분을 읽어 충돌회피 해쉬함수(collision-resistance hash function)로 만든 확인값(checksum)(112c)을 단독, 혹은 중첩으로 사용한 것을 입력으로 삼은 블랙박스 함수로 설명할 수 있다.
도 11은 공격자가 본 발명에 따른 변조감지모듈을 분석하는 방법으로 공격을 시도할 경우의 시나리오를 도시한 도면이다.
도 11을 참조하면, 변조감지모듈(114)을 분석하는 공격은 공격자가 이미 서버(120)측이 제공한 클라이언트를 분석 수정한 상태이고, 서버(120)에서 제공하는 변조감지모듈(114)을 즉시 무력화하기 위해 변조감지모듈 실행을 에뮬레이션하는 에뮬레이터를 이용한다(S21).
또한 변조되지 않은 클라이언트의 메모리를 덤프한 실행 이미지 파일을 갖고 코드 세그먼트에 대한 주소읽기 요구에 대응한다(S25,S26).
그러나 이때 이러한 에뮬레이터는 변조된 클라이언트의 데이터 세그먼트 내의 주소들과 변조되지 않은 클라이언트의 데이터 세그먼트 내 주소들을 자동적으로 1:1 변환하는 변환 테이블을 자동으로 만들기 어렵다는 한계를 갖는다(S22~S24,S27).
이러한 변환 테이블은 변조되지 않은 클라이언트의 컴파일 과정에서 만들어지는 심볼 테이블을 언제나 확보하고 있지 않는 이상, 자동으로 생성해 내기 어렵기 때문에 이러한 유형의 공격은 실패하게 된다. 도 11에서 단계 S21 내지 단계 S27을 제외한 나머지 절차들은 도 10에 도시된 동일한 참조번호의 동작과 유사하므로 더 이상의 설명은 생략한다.
도 12는 공격자가 클라이언트를 변조하는 대신 클라이언트와 서버 사이에서 오가는 메시지를 가로채어 변조하거나, 한쪽이 보내지 않은 메시지를 끼워 넣는 방법으로 "가로채기"(Men in the middle) 공격을 시도할 경우를 도시한 도면이다.
도 12를 참조하면, 가로채기 공격에서 공격자는 클라이언트(112)를 전혀 수정하지 않았기 때문에 변조감지 모듈(114)의 감지를 피해갈 수 있다.
그러나 이때 공격자는 자신이 끼워 넣거나 변조한 메시지로 인해 발생하는 클라이언트(112)와 서버(120) 간의 내적 데이터 불일치(inconsistency) 문제를 겪게 되며, 이는 변조감지모듈(114)이 검사하는 동기된 변수 검사(112d)에 의해 탐지될 수 있다. 도 12에서 단계 S31 내지 단계 S37을 제외한 나머지 절차들은 도 10에 도시된 동일한 참조번호의 동작과 유사하므로 더 이상의 설명은 생략한다.
도 13은 도 11에 도시된 변조감지모듈을 분석하는 공격과 도 12에 도시된 가로채기 공격을 절충한 형태의 공격을 도시한 도면이다.
도 13을 참조하면, 공격자는 서버(120)측이 제공한 클라이언트를 분석 수정한 상태에서 서버(120)에서 제공하는 변조감지모듈(114)을 즉시 무력화하기 위해 변조감지모듈 실행을 에뮬레이션함과 아울러 불법적인 후크를 통해 가로채기방식으로 명령(S33)을 메시지 송신큐(S33a)를 통해 서버(120)로 전송한 후 서버(120)의 명령처리결과(S35)를 메시지 수신큐(S37a)를 통해 수신하여 클라이언트에 명령처리를 반영한다(S37). 도 13에서 단계 S21 내지 단계 S27은 도 12의 해당 단계들과 유 사하고, 단계 S33 내지 단계 S37은 도 13의 해당 단계들과 유사하며, 나머지 절차들은 도 10에 도시된 동일한 참조번호의 동작과 유사하므로 더 이상의 설명은 생략한다.
그런데 도 13과 같은 절충형태의 경우에도 공격자에게는 도 12에서 지적한 것과 같은 클라이언트-서버 불일치 문제가 발생하므로, 클라이언트 소프트웨어의 변조가 변조감지모듈에 의해 감지될 수 밖에 없다.
이상에서 설명한 바와 같이, 본 발명에 따르면 신뢰할 수 있는 제3자인 서버에 의해 다수의 클라이언트 변조 감지모듈 중 하나를 임의로 클라이언트측에 전송한 후, 서버가 제공하는 변수에 따라 클라이언트의 변조 여부를 감지하도록 함으로써 악의적인 호스트에서 실행되는 클라이언트 프로그램도 능동적인 방어수단을 적용하는 것이 가능한 효과가 있다.

Claims (5)

  1. 서버에 다수의 클라이언트가 네트워크를 통해 연결된 클라이언트 - 서버 환경에 있어서,
    클라이언트가 서버에 로그인 하는 단계;
    상기 서버가 다수의 클라이언트 변조감지모듈 중 하나를 임의로 선택하여 상기 클라이언트에 제공하는 단계;
    상기 클라이언트가 변조감지모듈을 받아 저장하는 단계;
    상기 서버가 검사요구메시지(CheckReq)에 다수의 검사요건 중 선택된 검사요건({C1, C2, …, Cn})과, 임의의 난수(S)를 담아 상기 클라이언트에 검사를 요구하는 단계;
    상기 클라이언트가 상기 서버의 검사 요구를 받으면, 상기 검사요구메시지에 포함된 인수를 담아 상기 클라이언트 변조감지모듈n의 엔트리 함수를 호출하는 단계;
    상기 클라이언트 변조감지모듈n이 지정된 검사요건을 순서대로 실행하고, 그 결과를 내장된 블랙박스 함수(Bn)의 인수로 주어 실행하는 단계;
    상기 클라이언트 변조감지모듈n이 결과값을 중심으로 검사응답메시지 (CheckRes)를 구성하여 자신을 호출한 상기 클라이언트에 반환하는 단계;
    상기 클라이언트가 상기 검사응답메시지(CheckRes)를 상기 서버로 전송하는 단계; 및
    상기 서버가 상기 검사응답메시지(CheckRes)를 수신하면, 그 내용을 검사해 해당 클라이언트 내부의 변조 여부를 확인하는 단계를 구비한 것을 특징으로 하는 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지 방법.
  2. 제1항에 있어서, 상기 변조감지모듈n은
    난수(S)와 모듈 자체의 내장된 흐름에 맞추어 변조감지모듈에 의한 검사요건실행과 블랙박스 함수의 인수실행 단계를 일정 회 반복하는 것을 특징으로 하는 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지 방법.
  3. 제1항에 있어서, 상기 변조감지모듈n은
    a) 상기 클라이언트의 데이터 세그먼트 중 상기 서버와 그 값이 동기된 상태로 공유되는 데이터들이나
    b) 상기 클라이언트 코드의 특정 함수가 반환하는 리턴값이나
    c) 임의의 코드 세그먼트 부분을 읽어 충돌회피 해쉬함수로 만든 확인값(checksum)을 단독, 혹은 중첩으로 사용한 것의 어느 하나 이상을 입력으로 하여 소프트웨어 변조를 감지하는 특징으로 하는 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지 방법.
  4. 제1항에 있어서, 상기 검사요건은
    a) 상기 클라이언트 코드/데이터 세그먼트의 특정 주소범위를 읽거나,
    b) 상기 클라이언트 주 코드 상의 특정 함수를 호출하는 동작 중 어느 하나인 것을 특징으로 하는 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지 방법.
  5. 제1항에 있어서, 상기 서버는
    소정 주기마다 검사요구메시지(CheckReq)를 상기 클라이언트로 보내어 재검사를 시행하고,
    소정 주기마다 다수의 변조감지모듈중 새로운 변조감지모듈을 선택하여 상기 클라이언트에 전송하는 것을 특징으로 하는 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지 방법.
KR1020060034251A 2006-04-14 2006-04-14 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지방법 KR100804189B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060034251A KR100804189B1 (ko) 2006-04-14 2006-04-14 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060034251A KR100804189B1 (ko) 2006-04-14 2006-04-14 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지방법

Publications (2)

Publication Number Publication Date
KR20070102294A true KR20070102294A (ko) 2007-10-18
KR100804189B1 KR100804189B1 (ko) 2008-02-18

Family

ID=38817331

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060034251A KR100804189B1 (ko) 2006-04-14 2006-04-14 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지방법

Country Status (1)

Country Link
KR (1) KR100804189B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013100476A1 (ko) * 2011-12-30 2013-07-04 (주)네오위즈게임즈 클라이언트 단말, 감시 서버, 및 감시 영역 변조 방지 방법
KR101451323B1 (ko) * 2014-02-10 2014-10-16 주식회사 락인컴퍼니 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체
KR102176320B1 (ko) * 2020-03-02 2020-11-10 주식회사 이글루시큐리티 점검대상 운영체제 및 소프트웨어 입력보정 시스템 및 그 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030075018A (ko) * 2002-03-15 2003-09-22 주식회사 셈틀로미디어 변조 방지용 소프트웨어 파일 생성 장치와 그 소프트웨어파일의 자가 무결성 검증 방법 및 클라이언트-서버환경에서의 소프트웨어 파일의 자가 무결성 검증 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013100476A1 (ko) * 2011-12-30 2013-07-04 (주)네오위즈게임즈 클라이언트 단말, 감시 서버, 및 감시 영역 변조 방지 방법
KR101335326B1 (ko) * 2011-12-30 2013-12-02 (주)네오위즈게임즈 클라이언트 단말, 감시 서버, 및 감시 영역 변조 방지 방법
KR101451323B1 (ko) * 2014-02-10 2014-10-16 주식회사 락인컴퍼니 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체
KR102176320B1 (ko) * 2020-03-02 2020-11-10 주식회사 이글루시큐리티 점검대상 운영체제 및 소프트웨어 입력보정 시스템 및 그 방법

Also Published As

Publication number Publication date
KR100804189B1 (ko) 2008-02-18

Similar Documents

Publication Publication Date Title
Kolodenker et al. Paybreak: Defense against cryptographic ransomware
Dunn et al. Cloaking malware with the trusted platform module
US7634812B2 (en) Filter generation
US20120216242A1 (en) Systems and Methods for Enhanced Security in Wireless Communication
Nguyen et al. Cloud-based secure logger for medical devices
KR20050016202A (ko) 신뢰 환경으로부터의 신뢰성의 비신뢰 환경으로의 투영
KR101137128B1 (ko) 웜 봉쇄 방법
Böck et al. Towards more trustable log files for digital forensics by means of “trusted computing”
Sharma et al. Orchestration of APT malware evasive manoeuvers employed for eluding anti-virus and sandbox defense
Cappaert et al. Towards tamper resistant code encryption: Practice and experience
Cappaert Code obfuscation techniques for software protection
Zeng et al. Resilient user-side android application repackaging and tampering detection using cryptographically obfuscated logic bombs
KR20100054940A (ko) 임베디드 리눅스에서 서명 검증 방식을 이용한 악성 프로그램 차단 장치 및 방법
US10521613B1 (en) Adaptive standalone secure software
US7100205B2 (en) Secure attention instruction central processing unit and system architecture
Mohammadzad et al. Using rootkits hiding techniques to conceal honeypot functionality
Makhdoom et al. Detecting compromised IoT devices: Existing techniques, challenges, and a way forward
KR100804189B1 (ko) 클라이언트-서버 기반의 클라이언트 소프트웨어 변조방지방법
Masid et al. Application of the SAMA methodology to Ryuk malware
Crăciun et al. Malware in the SGX supply chain: Be careful when signing enclaves!
Jeong et al. MysteryChecker: Unpredictable attestation to detect repackaged malicious applications in Android
Lee et al. Classification and analysis of security techniques for the user terminal area in the internet banking service
Liu et al. Binary exploitation in industrial control systems: Past, present and future
Toffalini et al. Careful-packing: A practical and scalable anti-tampering software protection enforced by trusted computing
Zaharis et al. Live forensics framework for wireless sensor nodes using sandboxing

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: 20130205

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140211

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150210

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160122

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170117

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190124

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200107

Year of fee payment: 13