KR20130020032A - 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법 - Google Patents

해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법 Download PDF

Info

Publication number
KR20130020032A
KR20130020032A KR1020110082390A KR20110082390A KR20130020032A KR 20130020032 A KR20130020032 A KR 20130020032A KR 1020110082390 A KR1020110082390 A KR 1020110082390A KR 20110082390 A KR20110082390 A KR 20110082390A KR 20130020032 A KR20130020032 A KR 20130020032A
Authority
KR
South Korea
Prior art keywords
communication terminal
hacking
verification function
support server
execution code
Prior art date
Application number
KR1020110082390A
Other languages
English (en)
Other versions
KR101272027B1 (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 KR1020110082390A priority Critical patent/KR101272027B1/ko
Publication of KR20130020032A publication Critical patent/KR20130020032A/ko
Application granted granted Critical
Publication of KR101272027B1 publication Critical patent/KR101272027B1/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
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법에 관한 것이다. 본 발명에 따른 해킹 방지 시스템의 제어방법은, 특정 어플리케이션을 실행하는 통신 단말기가 상기 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 해킹 방지 지원 서버에 전송하는 단계와; 상기 해킹 방지 지원 서버가 상기 통신 단말기로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기로 전송하고 상기 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 저장하는 단계와; 상기 통신 단말기가 상기 해킹 방지 지원 서버로부터 수신되는 동적 실행 코드를 실행시키고, 그 실행에 기초하여 산출한 동적 실행 코드 결과값을 상기 해킹 방지 지원 서버에 전송하는 단계와; 상기 해킹 방지 지원 서버가 상기 저장된 동적 실행 코드 결과값과 상기 통신 단말기로부터 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 단계를 포함하는 것을 특징으로 한다.

Description

해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법{SYSTEM FOR HACKING PREVENTION AND CONTROL METHOD THEREOF, SERVER FOR SUPPORTING HACKING PREVENTION COMPRISED IN THE SYSTEM AND CONTROL METHOD THEREOF}
본 발명은 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법에 관한 것으로, 보다 상세하게는 소정의 통신 단말기 상에서 구동되는 어플리케이션에 대해서 해킹이 이루어지는 것을 방지하고 더 나아가 이를 검출할 수 있도록 구성된 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법에 관한 것이다.
현대 사회는 전자분야의 발전으로 인해 다양한 기기들이 전자화, 디지털화 되고 있고, 이에 따라 소프트웨어 프로그램에 의해 동작되는 기기들이 늘어나고 있다.
그 중 대표적인 것이 컴퓨터이다. 컴퓨터에는 OS(OPERATION SYSTEM)이 설치되어 있고, 각종 어플리케이션은 별도의 소프트웨어로 컴퓨터에 설치되어 동작될 수 있다.
이러한 컴퓨터는 비단 데스크톱과 같은 개인용 컴퓨터(Personal Computer) 뿐만 아니라 스마트폰과 같은 통신 단말기도 해당된다.
그런데, 이처럼 소프트웨어에 의해 프로그래밍된 어플리케이션들이 이용됨에 따라 가장 크게 문제가 되는 것은 해당 어플리케이션의 해킹이다.
일반적으로 해킹은 컴퓨터 네트워크의 취약한 보안망에 불법적으로 접근하거나 정보 시스템 또는 특정 단말기 상의 동작에 유해한 영향을 끼치는 제반 행위를 일컫는 것으로서, 결국 어플리케이션의 프로그램 코드를 임의로 조작하여 해당 어플리케이션을 개발한 개발자가 의도하지 않은 형태로 어플리케이션이 동작하도록 하는 것을 말한다.
예를 들어 통신 단말기에 특정 서버와의 통신에 따른 인증 과정을 거친 경우에만 특정 기능이 수행되는 어플리케이션이 설치되어 있는 경우, 해킹에 의해서 인증 과정을 회피하여 해당 특정 기능이 수행되도록 할 수도 있는 것이다.
이처럼 해킹의 문제는 서비스 제공, 사용자 인증, 과금 등 통신 시스템 전반에 있어서 큰 영향을 미치는 것으로서 결코 무시하거나 간과할 수 없는 중요한 문제에 해당한다.
그러나 종래의 해킹 방지를 위한 방법을 살펴보면 어플리케이션의 코드를 해커들이 쉽게 추적하지 못하도록 어렵게 만드는 수준에 머물러 있어서, 해킹을 효과적으로 방지하는데는 실패해왔다.
공개 특허 2001-0103201
본 발명은 상기한 종래의 문제점을 해결하기 위해 안출된 것으로서, 그 목적은 특정 단말기 상에서의 해킹이 쉽게 이루어지지 않도록 하고 더 나아가 그 해킹 상태를 외부의 서버에서 쉽게 확인할 수 있도록 하는 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법을 제공하는 것이다.
상기한 목적을 달성하기 위해 본 발명에 따른 해킹 방지 시스템의 제어방법은, 특정 어플리케이션을 실행하는 통신 단말기가 상기 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 해킹 방지 지원 서버에 전송하는 단계와; 상기 해킹 방지 지원 서버가 상기 통신 단말기로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기로 전송하고 상기 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 저장하는 단계와; 상기 통신 단말기가 상기 해킹 방지 지원 서버로부터 수신되는 동적 실행 코드를 실행시키고, 그 실행에 기초하여 산출한 동적 실행 코드 결과값을 상기 해킹 방지 지원 서버에 전송하는 단계와; 상기 해킹 방지 지원 서버가 상기 저장된 동적 실행 코드 결과값과 상기 통신 단말기로부터 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 단계를 포함하여 이루어진다.
또, 상기한 목적을 달성하기 위해 본 발명에 따른 해킹 방지 시스템은, 특정 어플리케이션을 실행하고 상기 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 해킹 방지 지원 서버에 전송하고, 상기 해킹 방지 지원 서버로부터 수신되는 동적 실행 코드를 실행시키고, 그 실행에 기초하여 산출한 동적 실행 코드 결과값을 상기 해킹 방지 지원 서버에 전송하는 통신 단말기와; 상기 통신 단말기로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기로 전송하고 상기 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 저장하고, 상기 저장된 동적 실행 코드 결과값과 상기 통신 단말기로부터 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 해킹 방지 지원 서버를 포함하여 구성된다.
또, 상기한 목적을 달성하기 위해 본 발명에 따른 해킹 방지 지원 서버의 제어방법은, 특정 어플리케이션을 실행하는 통신 단말기로부터 상기 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 수신하는 단계와; 상기 통신 단말기의 검증 펑션 요청 신호이 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기로 전송하는 단계와; 상기 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 저장하는 단계와; 상기 동적 실행 코드의 상기 통신 단말기에서의 실행에 따른 동적 실행 코드 결과값을 상기 통신 단말기로부터 수신하는 단계와; 상기 저장된 동적 실행 코드 결과값과 상기 통신 단말기로부터 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 단계를 포함하여 이루어진다.
또, 상기한 목적을 달성하기 위해 본 발명에 따른 해킹 방지 지원 서버는, 저장부와; 특정 어플리케이션을 실행하는 통신 단말기로부터 상기 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 수신하는 요청 수신부와; 상기 통신 단말기로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기로 전송하고 상기 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 상기 저장부에 저장하는 요청 처리부와; 상기 요청 처리부에서 추출 또는 생성된 동적 실행 코드를 포함하는 검증 펑션 정보를 상기 통신 단말기에 전송하는 전송부와; 상기 동적 실행 코드의 상기 통신 단말기에서의 실행에 따른 동적 실행 코드 결과값을 상기 통신 단말기로부터 수신하는 데이터 수신부와; 상기 저장부에 저장된 동적 실행 코드 결과값과 상기 데이터 수신부에 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 해킹 여부 판단부를 포함하여 구성된다.
이상 설명한 바와 같이 본 발명에 따르면, 해커들이 단말기 상에서 특정 어플리케이션의 실행 코드를 추적하면서 특정 코드의 내용을 변경하더라도 다음 번 해당 어플리케이션의 실행 순서는 달라질 수 있어서 해킹이 이루어지지 않은 플로어를 따라 정상적인 실행이 이루어질 수 있다.
또한 해킹이 이루어진 경우 이를 검출하여 해당 어플리케이션이 정상동작하지 못하도록 하는(예를 들어 죽이는) 쓰레드 또는 프로세스의 종류가 매번 변할 뿐만 아니라 해커가 해당 쓰레드 또는 프로세스를 검출해내기가 용이하지 않으므로, 실제 해킹이 이루어졌을 때 해당 어플리케이션의 동작을 차단할 수 있다.
특히 실제 특정 어플리케이션의 실행과는 무관한 복수 개의 쓰레드나 프로세스 또는 검증 펑션 등을 메모리 등에 상주시키거나 이러한 실행 코드를 어플리케이션에 포함되도록 하는 경우 상술한 해킹 방지 효과를 극대화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 해킹 방지 시스템의 개략 구성도이고,
도 2는 도 1의 해킹 방지 지원 서버의 기능 블록도이고,
도 3 내지 도 5는 본 발명의 일 실시예에 따른 해킹 방지 시스템의 제어 및 신호 흐름도이다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.
본 발명의 일 실시예에 따른 해킹 방지 시스템은 도 1에 도시된 바와 같이 통신 단말기(200), 해킹 방지 지원 서버(100)를 포함하여 구성되고, 추가적으로 서비스 제공 서버(300)가 더 포함될 수 있다.
상술한 구성요소에 대해 개략적으로 살펴보면 통신 단말기(200)는 각 사용자가 사용하는 단말기로서 본 실시예에 따라 특정 어플리케이션에 대한 해킹이 방지되는 장치에 해당하는 것이고, 해킹 방지 지원 서버(100)는 통신 단말기(200)에서의 해킹이 발생되지 않도록 각종 처리 과정을 수행하는 서버에 해당하고, 서비스 제공 서버(300)는 통신 단말기(200)에 소정의 서비스(예를 들어 통신 서비스, 또는 파일 제공 서비스, 정보 제공 서비스, 온라인 게임 서비스 등)를 제공하는 서버에 해당한다.
이하 각 장치들의 기능에 대해 보다 구체적으로 설명한다.
통신 단말기(200)는 개인용 컴퓨터는 물론이고, PDA(Personal Digital Assistants), 휴대폰, 스마트 폰 등 네트워크 통신이 가능한 모든 통신 장치를 의미한다.
통신 단말기(200)는 다양한 어플리케이션을 실행할 수 있는데, 특히 본 실시예에서는 해킹 방지 대상이 되는 어플리케이션을 '특정 어플리케이션'이라 지칭하기로 한다.
통신 단말기(200)는 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 해킹 방지 지원 서버(100)에 전송하고, 해킹 방지 지원 서버(100)로부터 수신되는 동적 실행 코드를 실행시키고, 그 실행에 기초하여 산출한 동적 실행 코드 결과값을 해킹 방지 지원 서버(100)에 전송하는 기능을 수행한다.
통신 단말기(200)는 수신된 동적 실행 코드를 자체 알고리즘의 순서에 따라 실행시킬 수도 있지만 해킹 방지 지원 서버(100)로부터 수신되는 순서에 따라 동적 실행 코드를 실행시킬 수도 있다.
예를 들어 통신 단말기(200)는 해킹 방지 지원 서버(100)로부터 검증 펑션 목록 및 검증 펑션 실행 순서와 동적 실행 코드를 모두 포함하는 검증 펑션 정보를 수신할 수 있고, 검증 펑션 목록과 검증 펑션 실행 순서에 따라 동적 실행 코드를 실행시키고, 그 실행에 기초하여 산출한 검증 펑션 결과값을 동적 실행 코드 결과값의 일 예로써 해킹 방지 지원 서버(100)에 전송하는 기능을 수행한다.
예를 들어 동적 실행 코드에 다수 개의 검증 펑션(예를 들어 실행 함수)이 포함되어 있는 경우, 통신 단말기(200)는 해킹 방지 지원 서버(100)로부터 수신된 검증 펑션 정보에 따라 그 중 몇 개의 검증 펑션을 수행할 수 있는 것이다.
일 예로, 동적 실행 코드에 1~100번 검증 펑션이 포함되어 있고, 검증 펑션 정보의 검증 펑션 목록과 그 실행 순서가 "3,37,11,21,85,57" 인 경우, 통신 단말기(200)는 동적 실행 코드에 포함된 검증 펑션 중에서 3번, 37, 11번, 21번, 85번, 57번 검증 펑션을 순서대로 실행하는 것이다.
이때, 검증 펑션이라는 것은 특정 어플리케이션이 해킹되었는지 여부, 즉, 실행 코드가 변경되었는지 여부를 확인하기 위해 수행되는 것으로서, 예를 들어 특정 어플리케이션 프로그램 코드에 대해 해쉬(hash)처리하는 해쉬 함수를 포함할 수 있다.
여기서 소정의 프로그램 코드에 대해 해쉬 처리를 수행하여 산출되는 값은 해당 프로그램 코드의 작은 변화(즉, 해킹이 이루어짐에 따라 발생하는 변화)도 검출해내는데 유용하게 이용될 수 있다.
이처럼 통신 단말기(200)는 동적으로 해킹 방지 지원 서버(100)로부터 수신되는 정보를 기초로 특정 어플리케이션이 변조되었는지 여부를 확인하기 위한 검증 펑션을 실행하고, 그에 따라 산출되는 결과값을 해킹 방지 지원 서버(100)에 전송한다.
한편, 통신 단말기(200)는 해킹 방지 지원 서버(100)로부터 수신되는 소정의 인증 토큰에 대해 기 수신된 검증 펑션 정보에 기초하여 적어도 하나의 검증 펑션을 수행하고, 그에 따라 산출되는 인증 토큰 가공값을 서비스 제공 서버(300)에 전송하는 기능도 수행한다. 물론 수행되는 검증 펑션이 인증 토큰 값을 그대로 반환하는 함수인 경우에는 인증 토큰 가공값은 인증 토큰 값과 동일할 수도 있다.
이처럼 수신된 인증 토큰을 인자로 하여 변환시키는 통신 단말기(200) 상의 펑션의 종류 및 순서는 해킹 방지 지원 서버(100)로부터 수신된 검증 펑션 정보에 기초할 수 있고, 그 펑션은 앞서 설명한 해킹 방지 지원 서버(100)로부터 수신되는 동적 실행 코드에 포함된 것이거나 또는 통신 단말기(200) 자체에 기 포함된 것일 수도 있다.
한편, 통신 단말기(200)는 해킹 방지 지원 서버(100)로부터 수신된 토큰 저 장 위치 정보에 기초한 특정 저장 영역에 기 수신된 인증 토큰을 저장하고, 해킹 방지 지원 서버(100)로부터 수신된 실행 대상 프로세스 목록에 기초하여 복수 개의 쓰레드(또는 프로세스)를 실행시킨다. 이때, 통신 단말기(200)에서 실행되는 복수 개의 쓰레드 중 적어도 어느 하나는 특정 저장 영역에 저장된 데이터를 읽어 그 저장된 데이터의 유효성 여부를 판단하고, 판단결과 유효성이 인정되지 않는 경우 해당 특정 어플리케이션의 실행이 멈추도록 하는 소프트웨어적 펑션을 수행하는 것이다. 실행되는 쓰레드에 대응되는 프로그램 코드 역시 해킹 방지 지원 서버(100)로부터 수신되는 동적 실행 코드에 포함된 것이거나 또는 통신 단말기(200) 자체에 기 포함된 것일 수도 있다.
여기서 인증 토큰이 저장되는 특정 저장 영역은 예를 들어 메모리의 특정 위치에 해당할 수도 있고, 또는 파일 시스템상의 특정 경로의 특정 파일에 매칭된 저장 영역에 해당할 수도 있다.
즉, 인증 토큰이 특정 저장 영역에 저장된 상태에서, 실행되는 복수 개의 쓰레드 중 적어도 어느 하나가 해당 특정 저장 영역에 저장된 데이터(즉, 인증 토큰에 해당할 수 있음)를 읽어 그 저장된 데이터의 유효성(즉, 인증 토큰의 유효성)을 판단하는 것이다. 여기서 인증 토큰의 유효성 판단은 예를 들어 CRC 체크나, PKI 기반의 인증서에 대한 유효성 검증 방식 등 다양한 방식에 의해 이루어질 수 있다.
그리고 인증 토큰에 대해 유효성이 인정되지 않는 경우에 수행하게 되는 해당 특정 어플리케이션의 실행이 멈추도록 하는 소프트웨어적 펑션은 특정 어플리케이션을 대상으로 하는 종료 코드를 실행하는 펑션, 또는 통신 단말기(200) 자원 할당과 관련한 에러 또는 에러 방지 동작이 실행되도록 하는 펑션, 또는 무의미한 무한루프가 실행되도록 하는 펑션 등에 해당할 수 있다.
여기서 종료 코드를 실행하는 펑션은 예를 들어 특정 어플리케이션을 제거하는 kill 명령어 또는 특정 어플리케이션의 종료를 의미하는 Exit 명령어를 포함하는 것일 수 있고, 통신 단말기(200) 자원 할당과 관련한 에러 또는 에러 방지 동작이 실행되도록 하는 펑션은 예를 들어 메모리 할당과 메모리 카피를 반복적으로 수행함으로써 메모리 관련 에러가 발생하도록 하거나 또는 그러한 메모리 관련 에러를 OS 차원에서 방지하는 동작(예를 들어 메모리 할당 및 카피를 반복 수행하는 프로세스 즉, 특정 어플리케이션을 제거함)이 수행되도록 하는 기능을 포함하는 것일 수 있으며, 무의미한 무한루프가 실행되도록 하는 펑션은 예를 들어 while 구문과 같이 무한루프가 일어나도록 하는 기능을 포함하는 것일 수 있다.
상술한 종료 코드를 실행하는 펑션 이외에 통신 단말기(200) 자원 할당과 관련한 에러 또는 에러 방지 동작이 실행되도록 하는 펑션 또는 무의미한 무한루프가 실행되도록 하는 펑션은 결국 특정 어플리케이션이 해커가 의도한대로 동작하지 못하도록(예를 들어 특정 어플리케이션이 에러 발생 또는 OS차원의 에러 처리에 의해 죽도록 하거나, 자원 할당을 받는 시간을 줄여 해당 특정 어플리케이션 전체 동작이 지연되도록) 하면서도 이러한 펑션은 해커에 의해 쉽게 발견되지 않는 것이어서 해킹 과정을 어렵게 할 수 있다.
즉, 해커들은 이처럼 특정 어플리케이션의 해킹 여부를 검출하여 죽이는 쓰레드에 해당하는 코드를 찾으려고 하겠지만, 상술한 바와 같이 프로그램의 종료 코드를 사용하지 않는 우회적인 쓰레드를 이용하는 경우에는 특정 어플리케이션의 해킹 여부를 검출하고 그 해킹된 특정 어플리케이션의 실행을 방해하는 쓰레드에 해당하는 프로그램 코드를 쉽게 확인할 수 없는 것이다.
더욱이 이러한 쓰레드의 프로그램 코드 그 자체가 해킹 방지 지원 서버(100)로부터 실시간 수신되는 동적 실행 코드에 포함되어 있는 경우에는 해커들은 해당 쓰레드에 해당하는 코드를 특정 어플리케이션의 분석을 통해서는 찾을 수 없어서 해킹 자체가 원천적으로 불가능하게 되는 것이다.
게다가 인증 토큰이 저장되는 특정 저장 영역 위치도 해킹 방지 지원 서버(100)에 의해 매번 변할 수 있는 것이므로 해커가 어떤 프로그램 코드가 특정 어플리케이션의 해킹 여부를 확인하는 쓰레드에 해당하는 코드인지를 발견해내는 것도 쉽지 않다.
또한, 해킹 방지 지원 서버(100)로부터 수신된 실행 대상 프로세스 목록에 기초하여 실행시킨 복수 개의 쓰레드(또는 프로세스) 중 일부는 특정 어플리케이션의 주요 기능과는 전혀 상관없고 단지 해커를 속이기 위한 fake 동작을 수행하는 것들이다.
한편, 서비스 제공 서버(300)는 앞서 설명한 바와 같이 통신 단말기(200)가 전송하는 인증 토큰 가공값을 수신하고, 그 수신된 인증 토큰 가공값을 포함하는 검증 요청 신호를 해킹 방지 지원 서버(100)에 전송한다.
그리고 해킹 방지 지원 서버(100)로부터 해당 인증 토큰 가공값을 기초로 한 검증 결과를 수신하고, 그 검증 결과에 따라 통신 단말기(200)에 각종 서비스를 제공할지 여부를 판단하게 된다.
즉, 해킹 방지 지원 서버(100)로부터 수신되는 검증 결과는 또 하나의 인증 결과에 해당하는 것이고, 서비스 제공 서버(300)는 인증 결과에 따라 통신 단말기(200)상에서 구동되는 특정 어플리케이션이 해킹되지 않았다고 판단하는 경우에만 해당 통신 단말기(200)의 요청에 따른 각종 서비스(예를 들어 통신 서비스)를 제공할 수 있는 것이다.
한편, 해킹 방지 지원 서버(100)는 통신 단말기(200)로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기(200)로 전송하고 그 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 저장하며, 해당 저장된 동적 실행 코드 결과값과 통신 단말기(200)로부터 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 통신 단말기(200)에 포함된 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 기능을 수행한다.
구체적인 일 예로써, 해킹 방지 지원 서버(100)는 통신 단말기(200)의 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 검증 펑션 목록과 검증 펑션 실행 순서를 결정함과 아울러 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하고, 그 결정된 검증 펑션 목록 및 검증 펑션 실행 순서와 앞서 추출 또는 생성된 동적 실행 코드를 모두 포함하는 검증 펑션 정보를 통신 단말기(200)에 전송하는 기능을 수행한다.
또한 해킹 방지 지원 서버(100)는 검증 펑션 목록과 검증 펑션 실행 순서에 기초하여 동적 실행 코드를 실행시키는 방식으로 특정 어플리케이션과 관련된 프로그램 코드에 대한 적어도 하나의 검증 펑션을 수행하고, 해당 검증 펑션의 수행에 따라 산출한 검증 펑션 결과값을 저장하고, 그 저장된 검증 펑션 결과값과 상술한 바와 같이 통신 단말기(200)로부터 수신되는 검증 펑션 결과값을 비교하여 그 비교결과 일치하는 경우 통신 단말기(200)에 포함된 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 것이다.
이러한 해킹 방지 지원 서버(100)의 구체적인 기능에 대해서 도 2의 기능 블록을 참조하여 설명하면 다음과 같다.
동 도면에 도시된 바와 같이 해킹 방지 지원 서버(100)는 저장부(150), 요청 수신부(110), 요청 처리부(120), 전송부(130), 데이터 수신부(140), 해킹 여부 판단부(160), 토큰 생성부(170)를 포함하여 구성될 수 있다.
여기서 저장부(150)에는 해킹 방지 지원 서버(100)의 기능 수행 중 발생하는 임시 데이터가 저장될 수 있고, 해킹 방지 지원 서버(100)의 기능 수행을 위해 필요한 정보들이 미리 저장된다.
요청 수신부(110)는 통신 단말기(200)로부터 각종 요청 신호를 수신하는 기능을 수행하는 것으로서, 특히 통신 단말기(200)로부터 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 수신하는 기능과, 소정의 인증 토큰에 대해 통신 단말기(200)에서 생성된 인증 토큰 가공값을 포함하는 검증 요청 신호를 서비스 제공 서버(300)로부터 수신하는 기능을 수행한다.
요청 처리부(120)는 통신 단말기(200)로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 통신 단말기(200)로 전송하고 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 저장부(150)에 저장하는 기능을 수행한다.
여기서 기 설정된 알고리즘은 예를 들어 랜덤 방식을 이용하는 알고리즘일 수도 있다.
특히, 요청 처리부(120)는 기 설정된 알고리즘에 따라 검증 펑션 목록과 검증 펑션 실행 순서를 결정할 수 있는데, 예를 들어 요청 처리부(120)는 통신 단말기(200)로부터의 요청이 있을 때마다 랜덤 방식에 따른 검증 펑션 목록과 그 실행 순서를 결정할 수도 있고, 또는 하루에 한번 꼴로 검증 펑션 목록과 그 실행 순서가 변경되도록 할 수도 있다.
또한, 요청 처리부(120)는 통신 단말기(200)의 요청에 따라 통신 단말기(200)상에서 실행될 적어도 하나의 프로세스 목록을 포함하는 실행 대상 프로세스 목록과 토큰 저장 위치(검증대상이 되는 토큰이 통신 단말기(200)상에 저장되는 위치에 해당)를 생성하는 기능을 수행한다.
여기서 실행 대상 프로세스는 특정 어플리케이션의 실행과 별도로 실행되는 독립 프로세스일 수도 있고, 또는 특정 어플리케이션의 실행과 연계하여 실행되는 일종의 쓰레드에 해당할 수도 있는데, 실행 대상 프로세스의 프로그램 코드는 앞서 생성한 동적 실행 코드에 포함되어 있을 수도 있다.
전송부(130)는 각종 데이터 또는 정보를 통신 단말기(200) 또는 서비스 제공 서버(300)에 전송하는 기능을 수행한다.
특히 전송부(130)는 요청 처리부(120)에서 결정된 검증 펑션 목록 및 검증 펑션 실행 순서와 추출 또는 생성된 동적 실행 코드를 모두 포함하는 검증 펑션 정보를 통신 단말기(200)에 전송하고, 후술하는 토큰 생성부(170)에 의해 생성된 인증 토큰을 통신 단말기(200)에 전송하며, 해킹 여부 판단부(160)에서 생성한 검증 결과를 서비스 제공 서버(300)에 전송하는 기능을 수행한다.
데이터 수신부(140)는 통신 단말기(200)로부터 검증 펑션 결과값을 수신하는 기능을 수행하는데, 여기서 데이터 수신부(140)가 통신 단말기(200)로부터 수신하는 검증 펑션 결과값은 해당 통신 단말기(200)가 검증 펑션 정보에 포함된 검증 펑션 목록과 검증 펑션 실행 순서를 기초로 동적 실행 코드를 실행시키는 방식으로 특정 어플리케이션과 관련된 프로그램 코드에 대한 적어도 하나의 검증 펑션을 수행하여 산출한 값에 해당한다.
해킹 여부 판단부(160)는 저장부(150)에 저장된 검증 펑션 결과값과 데이터 수신부(140)에 수신된 검증 펑션 결과값을 비교하고, 그 비교 결과에 따라 통신 단말기(200)에 포함된 특정 어플리케이션에 대해 해킹이 이루어졌는지 여부를 판단한다. 예를 들어 비교 결과 일치하는 경우 해킹 여부 판단부(160)는 통신 단말기(200)에 포함된 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단한다.
또한, 해킹 여부 판단부(160)는 서비스 제공 서버(300)로부터 수신된 인증 토큰 가공값과 저장부(150)에 저장된 인증 토큰 가공값을 비교하고, 비교결과에 따른 검증 결과를 생성하는 기능도 수행한다.
토큰 생성부(170)는 해킹 여부 판단부(160)에 의해 통신 단말기(200)에 포함된 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단되는 경우, 소정의 인증 토큰을 생성하고 통신 단말기(200)에 기 전송한 검증 펑션 목록과 검증 펑션 실행 순서를 기초로 인증 토큰에 대해 적어도 하나의 검증 펑션을 수행하고 그 수행결과에 따라 산출한 인증 토큰 가공값을 저장부(150)에 저장하는 기능을 수행한다.
이하에서는 본 발명의 일 실시예에 따른 해킹 방지 시스템의 전체적인 제어 흐름을 도 3 내지 도 5를 참조하여 설명한다.
우선 도 3을 참조하여 해킹 방지 지원 서버(100)에서 통신 단말기(200)의 특정 어플리케이션의 해킹 여부를 판단하는 과정을 설명한다. 본 실시예를 설명함에 있어서 통신 단말기(200)가 해킹 방지 지원 서버(100)와 통신하여 각종 요청 신호 또는 소정의 결과값을 전송하거나 서비스 제공 서버(300)와 통신하는 모든 기능은 특정 어플리케이션의 구동 및 실행에 따라 이루어지는 것으로 가정한다. 이때 해킹 방지 지원 서버(100)로부터 수시된 동적 실행 코드는 특정 어플리케이션의 일부(모듈)로써 동작하는 것을 일 예로 한다. 따라서 통신 단말기(200)가 해킹 방지를 위해 수행하는 일련의 처리 과정(예를 들어 특정 어플리케이션 코드에 대한 해쉬값 등을 산출하거나, 인증 토큰을 저장/유효성 검증을 하고 인증 토큰 가공값을 산출 및 전송하는 과정 등)은 동적 실행 코드가 특정 어플리케이션의 한 모듈로써 수행됨에 따라 이루어지는 것이다.
우선, 통신 단말기(200)(예를 들어 통신 단말기(200)에서 실행되는 특정 어플리케이션)는 해킹 방지 지원 서버(100)에 검증 펑션 요청 신호를 전송하는데, 이 요청 신호에는 특정 어플리케이션 정보가 포함된다(단계 S1).
해킹 방지 지원 서버(100)는 통신 단말기(200)의 요청을 수신하면 동적 실행 코드를 추출하고(단계 S3), 동적 실행 코드 실행하여 결과값을 저장한다(단계 S5).
여기서 해킹 방지 지원 서버(100)가 산출하는 동적 실행 코드 결과값은 특정 어플리케이션 코드의 해킹 여부를 확인하기 위한 것이므로, 당연히 특정 어플리케이션 코드의 적어도 일부를 하나의 인자로 하는 결과값에 해당한다. 예를 들어 특정 어플리케이션의 동작에 필요한 주요 코드들에 대한 해쉬값 산출 과정이 동적 실행 코드를 실행함에 따라 이루어질 수 있다.
이어서 해킹 방지 지원 서버(100)는 생성 또는 추출한 동적 실행 코드를 통신 단말기(200)에 전송한다(단계 S7).
통신 단말기(200)는 수신된 동적 실행 코드를 실행하여 동적 실행 코드 결과값을 산출한다(단계 S9). 예를 들어, 통신 단말기(200)는 동적 실행 코드를 실행하여 특정 어플리케이션의 코드에 대한 결과값을 산출하는 것이다.
통신 단말기(200)는 산출된 검증 펑션 결과값을 해킹 방지 지원 서버(100)에 전송한다(단계 S11).
이에 해킹 방지 지원 서버(100)는 수신된 동적 실행 코드 결과값과 자체적으로 산출하여 기 저장한 동적 실행 코드 결과값을 비교하고(단계 S13), 비교결과 일치하는 경우 인증 토큰을 생성하여(단계 S17) 통신 단말기(200)에 전송한다(단계 S19). 여기서 인증 토큰 역시 동적 실행 코드에 포함된 일부 펑션의 실행에 의해 생성될 수도 있다.
통신 단말기(200)는 해킹 방지 지원 서버(100)로부터 수신되는 인증 토큰을 저장하는데(단계 S21), 이때 해킹 방지 지원 서버(100)로부터 수신된 토큰 저장 위치 정보에 따른 특정 저장 영역에 해당 인증 토큰을 저장할 수 있다. 인증 토큰이 저장되는 특정 저장 영역은 후술하는 바와 같이 이를 검증하는 쓰레드가 접근하도록 예약(또는 코딩)되어 있는 영역에 해당한다.
이러한 인증 토큰은 후술하는 바와 같이 서비스 제공 서버(300)와 통신할 때 필요한 정보이다.
한편, 해킹 방지 서버는 인증 토큰을 이용한 가공값 즉, 인증 토큰 가공값을 생성 및 저장할 수 있는데(단계 S23), 인증 토큰 가공값을 산출하는데는 앞서 통신 단말기(200)에 전송한 동적 실행 코드가 이용될 수 있다.
이하에서는 도 4를 참조하여 인증 토큰을 수신한 통신 단말기(200) 상에서 이루어지는 과정을 설명한다.
통신 단말기(200)는 인증 토큰이 수신된 경우 크게 두 가지 기능을 수행하는데, 하나는 해당 인증 토큰의 유효성을 검사하는 기능이고, 다른 하나는 실제 필요한 서비스의 제공을 받기 위해 서비스 제공 서버(300)에 접속하는 기능이다. 각각의 기능에 대해서 설명하면 다음과 같다.
통신 단말기(200)는 해킹 방지 지원 서버(100)로부터 수신한 인증 토큰을 특정 저장 영역(즉, 수신한 토큰 저장 위치 정보에 따른 저장 영역)에 저장하고(단계 S31), 또한 적어도 하나의 쓰레드를 실행시킨다(단계 S33). 이렇게 적어도 하나의 쓰레드를 실행시키는 것 역시 이미 동적 실행 코드에 포함된 내용대로 수행되는 것일 수 있다.
이때 해커를 속이기 위한 적어도 하나의 페이크(fake) 쓰레드가 함께 실행될 수 있고, 또한 실행되는 쓰레드 중 적어도 어느 하나는 인증 토큰의 유효성을 검증하는 검증용 쓰레드에 해당한다.
이러한 검증용 쓰레드는 특정 저장 영역에 저장되어 있는 인증 토큰을 읽고, 해당 인증 토큰의 유효성을 판별한다(단계 S35). 판별결과 그 유효성이 인정되지 않는 경우에는(단계 S37) 해당 검증용 쓰레드는 현재 실행중인 특정 어플리케이션을 강제 종료 시킨다(단계 S39).
특정 어플리케이션이 강제 종료 방법은 상술한 방법과 같이 직접 kill 명령어 또는 exit 코드를 실행시키거나, 무한 루프로 빠지도록 하여 특정 어플리케이션의 기능이 수행되지 못하도록 하거나, 또는 메모리와 같은 자원 할당에 큰 부하를 발생시켜 OS에 의해 해당 특정 어플리케이션이 강제 종료되도록 하거나, 더 나아가 통신 단말기(200) 전체가 리부팅 되도록 하는 등 다양한 방법이 이용될 수 있다.
이에 따라 특정 어플리케이션이 해킹이 이루어진 경우에는 해커가 원하는 특정 어플리케이션의 기능이 제대로 동작하지 않도록 할 수 있다.
한편, 인증 토큰에 대한 유효성이 인정되는 경우에는 주기적으로 해당 인증 토큰에 대한 유효성을 다시 검증하는 과정이 수행될 수도 있고, 또는 인증 토큰을 이용하여 서비스 제공 서버(300)의 소정 서비스를 이용하는 과정이 수행될 수도 있다.
한편, 통신 단말기(200)는 상술한 바와 같이 인증 토큰의 유효성이 인정되거나 또는 인증 토큰의 유효성과는 별도로 인증 토큰을 이용하여 인증 토큰 가공값을 생성할 수 있다(단계 S41).
여기서 인증 토큰 가공값을 산출하는 것도, 해킹 방지 지원 서버(100)로부터 기 수신한 동적 실행 코드에 의해 이루어질 수 있다.
통신 단말기(200)는 생성한 인증 토큰 가공값을 서비스 제공 서버(300)에 전송하면서 소정의 서비스 제공 또는 이용을 요청할 수 있다(단계 S43).
서비스 제공 서버(300)를 이용하는 과정은 도 5를 참조하여 설명한다.
통신 단말기(200)는 인증 토큰 가공값을 포함하는 서비스 요청 신호를 서비스 제공 서버(300)에 전송한다(단계 S51).
그러면 서비스 제공 서버(300)는 수신된 인증 토큰 가공값을 포함하는 검증 요청 신호를 해킹 방지 지원 서버(100)에 전송한다(단계 S53).
해킹 방지 지원 서버(100)는 기 생성하여 저장한 인증 토큰 가공값과 서비스 제공 서버(300)로부터 수신되는 인증 토큰 가공값의 일치 여부를 판단하고(단계 S55), 그 검증 결과를 서비스 제공 서버(300)에 전송한다(단계 S57).
서비스 제공 서버(300)는 해킹 방지 지원 서버(100)로부터 수신되는 검증 결과에 따라 정상 인증이 이루어진 경우에는(단계 S59) 통신 단말기(200)의 요청에 따른 서비스를 제공하고(단계 S63), 정상 인증이 이루어지지 않은 경우에는 에러처리를 수행한다(단계 S61).
이에 따라 서비스 제공 서버(300)는 통신 단말기(200)의 특정 어플리케이션이 해킹이 이루어지지 않은 경우에 한하여 해당 통신 단말기(200)의 요청에 따른 서비스를 제공할 수 있게 된다.
한편, 본 발명은 상기한 특정 실시예에 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위 내에서 여러 가지로 변형 및 수정하여 실시할 수 있는 것이다. 이러한 변형 및 수정이 첨부되는 특허청구범위에 속한다면 본 발명에 포함된다는 것은 자명할 것이다.
100 : 해킹 방지 지원 서버 200 : 통신 단말기
300 : 서비스 제공 서버 110 : 요청 수신부
120 : 요청 처리부 130 : 전송부
140 : 데이터 수신부 150 : 저장부
160 : 해킹 여부 판단부 170 : 토큰 생성부

Claims (10)

  1. (a) 특정 어플리케이션을 실행하는 통신 단말기가 상기 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 해킹 방지 지원 서버에 전송하는 단계와;
    (b) 상기 해킹 방지 지원 서버가 상기 통신 단말기로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기로 전송하고 상기 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 저장하는 단계와;
    (c) 상기 통신 단말기가 상기 해킹 방지 지원 서버로부터 수신되는 동적 실행 코드를 실행시키고, 그 실행에 기초하여 산출한 동적 실행 코드 결과값을 상기 해킹 방지 지원 서버에 전송하는 단계와;
    (d) 상기 해킹 방지 지원 서버가 상기 저장된 동적 실행 코드 결과값과 상기 통신 단말기로부터 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 단계를 포함하는 것을 특징으로 하는 해킹 방지 시스템의 제어방법.
  2. 제1항에 있어서,
    상기 (b) 단계는, 상기 해킹 방지 지원 서버가 상기 통신 단말기로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 검증 펑션 목록과 검증 펑션 실행 순서를 결정하고 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하는 단계와; 상기 해킹 방지 지원 서버가 상기 결정된 검증 펑션 목록 및 검증 펑션 실행 순서와 상기 추출 또는 생성된 동적 실행 코드를 모두 포함하는 검증 펑션 정보를 상기 통신 단말기에 전송하는 단계와; 상기 해킹 방지 지원 서버가 상기 검증 펑션 목록과 상기 검증 펑션 실행 순서에 기초하여 상기 동적 실행 코드를 실행시키는 방식으로 상기 특정 어플리케이션과 관련된 프로그램 코드에 대한 적어도 하나의 검증 펑션을 수행하고, 해당 검증 펑션의 수행에 따라 산출한 검증 펑션 결과값을 저장하는 단계를 포함하고,
    상기 (c) 단계는, 상기 통신 단말기가 상기 해킹 방지 지원 서버로부터 수신되는 검증 펑션 목록과 상기 검증 펑션 실행 순서에 따라 상기 해킹 방지 지원 서버로부터 수신되는 동적 실행 코드를 실행시키고, 그 실행에 기초하여 산출한 검증 펑션 결과값을 상기 해킹 방지 지원 서버에 전송하는 단계를 포함하는 것을 특징으로 하는 해킹 방지 시스템의 제어방법.
  3. 제1항 또는 제2항에 있어서,
    상기 해킹 방지 지원 서버가 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 경우 소정의 인증 토큰을 생성하여 상기 통신 단말기에 전송하고, 상기 검증 펑션 목록과 검증 펑션 실행 순서를 기초하여 상기 동적 실행 코드를 실행시키는 방식으로 상기 인증 토큰에 대해 적어도 하나의 검증 펑션을 수행하여 산출한 인증 토큰 가공값을 저장하는 단계와;
    상기 통신 단말기가 상기 해킹 방지 지원 서버로부터 수신된 동적 실행 코드를 상기 검증 펑션 정보를 기초로 실행하여 상기 해킹 방지 지원 서버로부터 수신된 인증 토큰에 대한 인증 토큰 가공값을 생성하고, 상기 생성된 인증 토큰 가공값을 소정의 서비스를 제공하는 서비스 제공 서버에 전송하는 단계와;
    상기 서비스 제공 서버가 상기 통신 단말기로부터 수신된 인증 토큰 가공값을 상기 해킹 방지 지원 서버에 전송하며 검증을 요청하는 단계와;
    상기 해킹 방지 지원 서버가 상기 서비스 제공 서버로부터 수신된 인증 토큰 가공값과 상기 저장된 인증 토큰 가공값을 비교하고, 비교결과에 따른 검증 결과를 상기 서비스 제공 서버에 전송하는 단계를 더 포함하는 것을 특징으로 하는 해킹 방지 시스템의 제어방법.
  4. 제1항 또는 제2항에 있어서,
    상기 통신 단말기의 요청이 있는 경우 상기 해킹 방지 지원 서버가 실행 대상 프로세스 목록과 토큰 저장 위치 정보를 생성하여 상기 통신 단말기에 전송하는 단계와;
    상기 통신 단말기가 상기 해킹 방지 지원 서버로부터 수신된 토큰 저장 위치 정보에 기초한 특정 저장 영역에 상기 수신된 인증 토큰을 저장하고, 상기 해킹 방지 지원 서버로부터 수신된 실행 대상 프로세스 목록에 따라 상기 해킹 방지 지원 서버로부터 수신된 동적 실행 코드를 이용하여 복수 개의 프로세스를 실행시키는 단계를 더 포함하여 구성되고,
    상기 통신 단말기에서 실행되는 복수 개의 프로세스 중 적어도 어느 하나는 상기 특정 저장 영역에 저장된 데이터를 읽어 그 저장된 데이터의 유효성 여부를 판단하고, 판단결과 유효성이 인정되지 않는 경우 상기 특정 어플리케이션의 실행이 멈추도록 하는 소프트웨어적 펑션을 수행하는 것을 특징으로 하는 해킹 방지 시스템의 제어방법.
  5. 특정 어플리케이션을 실행하고 상기 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 해킹 방지 지원 서버에 전송하고, 상기 해킹 방지 지원 서버로부터 수신되는 동적 실행 코드를 실행시키고, 그 실행에 기초하여 산출한 동적 실행 코드 결과값을 상기 해킹 방지 지원 서버에 전송하는 통신 단말기와;
    상기 통신 단말기로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기로 전송하고 상기 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 저장하고, 상기 저장된 동적 실행 코드 결과값과 상기 통신 단말기로부터 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 해킹 방지 지원 서버를 포함하는 것을 특징으로 하는 해킹 방지 시스템.
  6. 제5항에 있어서,
    상기 해킹 방지 지원 서버는 상기 통신 단말기로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 검증 펑션 목록과 검증 펑션 실행 순서를 결정함과 아울러 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하고, 상기 결정된 검증 펑션 목록 및 검증 펑션 실행 순서와 상기 추출 또는 생성된 동적 실행 코드를 모두 포함하는 검증 펑션 정보를 상기 통신 단말기에 전송하며, 상기 검증 펑션 목록과 상기 검증 펑션 실행 순서에 기초하여 상기 동적 실행 코드를 실행시키는 방식으로 상기 특정 어플리케이션과 관련된 프로그램 코드에 대한 적어도 하나의 검증 펑션을 수행하고, 해당 검증 펑션의 수행에 따라 산출한 검증 펑션 결과값을 저장하고,
    상기 통신 단말기는 상기 해킹 방지 지원 서버로부터 수신되는 검증 펑션 목록과 상기 검증 펑션 실행 순서에 따라 상기 해킹 방지 지원 서버로부터 수신되는 동적 실행 코드를 실행시키고, 그 실행에 기초하여 산출한 검증 펑션 결과값을 상기 해킹 방지 지원 서버에 전송하는 것을 특징으로 하는 해킹 방지 시스템.
  7. 제5항 또는 제6항에 있어서,
    상기 통신 단말기는 상기 해킹 방지 지원 서버로부터 수신된 동적 실행 코드를 상기 검증 펑션 정보를 기초로 실행하여 상기 해킹 방지 지원 서버로부터 수신된 인증 토큰에 대한 인증 토큰 가공값을 생성하고, 상기 생성된 인증 토큰 가공값을 소정의 서비스를 제공하는 서비스 제공 서버에 전송하고,
    상기 서비스 제공 서버가 상기 통신 단말기로부터 수신된 인증 토큰 가공값을 상기 해킹 방지 지원 서버에 전송하며 검증을 요청하고,
    상기 해킹 방지 지원 서버는 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 경우 소정의 인증 토큰을 생성하여 상기 통신 단말기에 전송하고, 상기 검증 펑션 목록과 검증 펑션 실행 순서를 기초하여 상기 동적 실행 코드를 실행시키는 방식으로 상기 인증 토큰에 대해 적어도 하나의 검증 펑션을 수행하여 산출한 인증 토큰 가공값을 저장하며, 상기 서비스 제공 서버로부터 수신된 인증 토큰 가공값과 상기 저장된 인증 토큰 가공값을 비교하고, 비교결과에 따른 검증 결과를 상기 서비스 제공 서버에 전송하는 것을 특징으로 하는 해킹 방지 시스템.
  8. 제5항 또는 제6항에 있어서,
    상기 통신 단말기의 요청이 있는 경우 상기 해킹 방지 지원 서버는 실행 대상 프로세스 목록과 토큰 저장 위치 정보를 생성하여 상기 통신 단말기에 전송하고,
    상기 통신 단말기는 상기 해킹 방지 지원 서버로부터 수신된 토큰 저장 위치 정보에 기초한 특정 저장 영역에 상기 수신된 인증 토큰을 저장하고, 상기 해킹 방지 지원 서버로부터 수신된 실행 대상 프로세스 목록에 따라 상기 해킹 방지 지원 서버로부터 수신된 동적 실행 코드를 이용하여 복수 개의 프로세스를 실행시키며,
    상기 통신 단말기에서 실행되는 복수 개의 프로세스 중 적어도 어느 하나는 상기 특정 저장 영역에 저장된 데이터를 읽어 그 저장된 데이터의 유효성 여부를 판단하고, 판단결과 유효성이 인정되지 않는 경우 상기 특정 어플리케이션의 실행이 멈추도록 하는 소프트웨어적 펑션을 수행하는 것을 특징으로 하는 해킹 방지 시스템.
  9. (a) 특정 어플리케이션을 실행하는 통신 단말기로부터 상기 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 수신하는 단계와;
    (b) 상기 통신 단말기의 검증 펑션 요청 신호이 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기로 전송하는 단계와;
    (c) 상기 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 저장하는 단계와;
    (d) 상기 동적 실행 코드의 상기 통신 단말기에서의 실행에 따른 동적 실행 코드 결과값을 상기 통신 단말기로부터 수신하는 단계와;
    (e) 상기 (c) 단계에서 저장된 동적 실행 코드 결과값과 상기 (d) 단계에서 상기 통신 단말기로부터 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 단계를 포함하는 것을 특징으로 하는 해킹 방지 지원 서버의 제어방법.
  10. 저장부와;
    특정 어플리케이션을 실행하는 통신 단말기로부터 상기 특정 어플리케이션 정보를 포함하는 검증 펑션 요청 신호를 수신하는 요청 수신부와;
    상기 통신 단말기로부터 검증 펑션 요청 신호가 수신되면 기 설정된 알고리즘에 따라 동적 실행 코드를 추출 또는 생성하여 상기 통신 단말기로 전송하고 상기 동적 실행 코드의 실행에 기초하여 산출한 동적 실행 코드 결과값을 상기 저장부에 저장하는 요청 처리부와;
    상기 요청 처리부에서 추출 또는 생성된 동적 실행 코드를 포함하는 검증 펑션 정보를 상기 통신 단말기에 전송하는 전송부와;
    상기 동적 실행 코드의 상기 통신 단말기에서의 실행에 따른 동적 실행 코드 결과값을 상기 통신 단말기로부터 수신하는 데이터 수신부와;
    상기 저장부에 저장된 동적 실행 코드 결과값과 상기 데이터 수신부에 수신된 동적 실행 코드 결과값을 비교하고, 비교결과 일치하는 경우 상기 통신 단말기에 포함된 상기 특정 어플리케이션에 대해 해킹이 이루어지지 않았다고 판단하는 해킹 여부 판단부를 포함하는 것을 특징으로 하는 해킹 방지 지원 서버.
KR1020110082390A 2011-08-18 2011-08-18 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법 KR101272027B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110082390A KR101272027B1 (ko) 2011-08-18 2011-08-18 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110082390A KR101272027B1 (ko) 2011-08-18 2011-08-18 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법

Publications (2)

Publication Number Publication Date
KR20130020032A true KR20130020032A (ko) 2013-02-27
KR101272027B1 KR101272027B1 (ko) 2013-06-07

Family

ID=47898040

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110082390A KR101272027B1 (ko) 2011-08-18 2011-08-18 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법

Country Status (1)

Country Link
KR (1) KR101272027B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102633162B1 (ko) * 2015-10-30 2024-02-05 한국전자통신연구원 클라우드 환경에서의 3방향 인증 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010103201A (ko) * 2000-05-06 2001-11-23 조용학 해킹 및 바이러스의 침투방지 시스템
JP2004282295A (ja) * 2003-03-14 2004-10-07 Sangaku Renkei Kiko Kyushu:Kk ワンタイムidの生成方法、認証方法、認証システム、サーバ、クライアントおよびプログラム
KR101615542B1 (ko) * 2009-06-10 2016-04-26 삼성전자주식회사 무선 식별 시스템 및 그의 인증 방법

Also Published As

Publication number Publication date
KR101272027B1 (ko) 2013-06-07

Similar Documents

Publication Publication Date Title
US11637824B2 (en) Multi-factor authentication devices
KR101756692B1 (ko) 다이나믹 보안모듈 단말장치 및 그 구동방법
KR20150036104A (ko) 로그인 검증의 방법, 클라이언트, 서버 및 시스템
CN104199654A (zh) 开放平台的调用方法及装置
EP3293656A1 (en) Method for controlling access to a trusted application in a terminal
CN104199657A (zh) 开放平台的调用方法及装置
CN111460410A (zh) 服务器登录方法、装置、系统与计算机可读存储介质
CN114422139B (zh) Api网关请求安全验证方法、装置、电子设备及计算机可读介质
CN109842616B (zh) 账号绑定方法、装置及服务器
KR101272027B1 (ko) 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법
CN114257451B (zh) 验证界面更换方法、装置、存储介质及计算机设备
KR101272026B1 (ko) 해킹 방지 시스템 및 그 제어방법과, 그 시스템에 포함되는 해킹 방지 지원 서버 및 그 제어방법
KR101334771B1 (ko) 고유식별자 기반 인증 관제 시스템 및 방법
KR102201218B1 (ko) 모바일 단말의 보안 엔진의 접근 제어 시스템 및 방법
KR20140106940A (ko) 모바일 단말용 애플리케이션 검증 장치
Ham et al. DroidVulMon--Android Based Mobile Device Vulnerability Analysis and Monitoring System
KR100906850B1 (ko) 사용자 컴퓨터와 서버 사이의 통신에 있어서 상기 사용자 프로그램의 정상작동을 확인하기 위한 방법
US20210044589A1 (en) Access control
KR102534012B1 (ko) 컨텐츠 제공자의 보안등급을 인증하는 시스템 및 그 방법
US11941442B1 (en) Operating system based on dual system paradigm
EP4044053A1 (en) Program verification method and device, platform, user terminal, and online service system
CN106485139A (zh) 一种应用程序的安全验证方法
KR101292589B1 (ko) 어플리케이션 보안 시스템 및 방법, 이를 위한 통신 단말기
CN110597557A (zh) 一种系统信息获取方法、终端及介质
CN117176371A (zh) 应用登录方法、装置、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee