KR20210133353A - 프로그램 보안 적용방법 - Google Patents

프로그램 보안 적용방법 Download PDF

Info

Publication number
KR20210133353A
KR20210133353A KR1020200051623A KR20200051623A KR20210133353A KR 20210133353 A KR20210133353 A KR 20210133353A KR 1020200051623 A KR1020200051623 A KR 1020200051623A KR 20200051623 A KR20200051623 A KR 20200051623A KR 20210133353 A KR20210133353 A KR 20210133353A
Authority
KR
South Korea
Prior art keywords
code
server unit
security
information
program
Prior art date
Application number
KR1020200051623A
Other languages
English (en)
Other versions
KR102358101B1 (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 PCT/KR2020/095079 priority Critical patent/WO2021221266A1/ko
Priority to SG11202109561SA priority patent/SG11202109561SA/en
Priority to JP2021550107A priority patent/JP7215699B2/ja
Priority to US17/310,927 priority patent/US20220327205A1/en
Priority to CN202080016943.7A priority patent/CN115812290A/zh
Priority to KR1020200051623A priority patent/KR102358101B1/ko
Publication of KR20210133353A publication Critical patent/KR20210133353A/ko
Application granted granted Critical
Publication of KR102358101B1 publication Critical patent/KR102358101B1/ko
Priority to JP2023002571A priority patent/JP2023040214A/ja

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/52Monitoring 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/54Monitoring 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
    • 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/106Enforcing content protection by specific content processing
    • G06F21/1066Hiding content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/48Incremental compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • G06F2221/0748

Landscapes

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

Abstract

본 발명은 (a) 사용자 단말기가 파일을 서버부로 업로드하는 단계, (b) 서버부가 파일을 기반으로 앱정보를 추출하는 단계, (c) 앱정보에서 코드를 분석하여 원소스코드와 구동코드로 분리하는 단계, (d) 서버부가 원소스코드와 교체한 보안실행코드를 구동코드에 합치는 단계, (e) 서버부가 보안실행코드를 실행시키는 단계 및 (f) 서버부가 원소스코드를 실행시키는 단계를 포함하는 것을 특징으로 하는 프로그램 보안 적용방법을 제공한다.

Description

프로그램 보안 적용방법{A method for applying security program}
본 발명은 프로그램 보안 적용방법에 관한 것으로, 보다 상세하게는 프로그램의 디컴파일 및 컴파일 과정 없이 클래스를 추출하여 처리속도를 향상시키는 프로그램 보안 적용방법에 관한 것이다.
최근 전자분야의 발전으로 인해 다양한 하드웨어 기기들이 전자화, 디지털화되고 있고, 이에 따라 소프트웨어 프로그램에 의해 동작되는 하드웨어 기기들이 점차 늘어나고 있다.
그중 대표적인 것이 컴퓨터로, 컴퓨터에는 운영체제가 설치되어 있고, 각종 어플리케이션이 별도의 프로그램으로 컴퓨터에 설치되어 동작된다. 이러한 컴퓨터는 비단 데스크톱과 같은 개인용 컴퓨터뿐만 아니라 스마트폰과 같은 통신 단말기도 해당된다.
그러나, 이처럼 소프트웨어에 의해 프로그래밍된 어플리케이션들이 널리 이용됨에 따라 가장 크게 문제가 되는 것이 바로 프로그램 해킹이다.
일반적으로 해킹은 컴퓨터 네트워크의 취약한 보안망에 불법적으로 접근하여, 정보 시스템 또는 특정 단말기 상의 동작에 유해한 영향을 끼치는 제반 행위를 일컫는 것으로서, 결국 시스템 상에서 구동되고 있는 어플리케이션의 프로그램 코드를 임의로 조작하여, 어플리케이션이 개발자가 의도하지 않은 형태로 동작하도록 만드는 것을 말한다.
이런 프로그램 해킹의 일례로는, 인증되지 않은 다수의 사용자에게 어플리케이션을 배포하기 위하여 프로그램 코드를 무단 복사하거나, 어플리케이션해커가 원하는 기능을 수행하도록 프로그램 코드를 조작하는 것이 있다.
이와 같은 프로그램 해킹은 개발자의 저작권을 해치거나 어플리케이션이 실행되는 시스템 전반에 큰 약영향을 미치는 것으로서 결코 무시하거나 간과할 수 없는 중요한 문제로 부각되고 있다.
이에 따라 보안 전문가들은 프로그램 해킹을 방어할 수 있는 보안 솔루션을 개발하고 있다. 보안 솔루션의 일례로, 인증 서버에 접속하여 사용자 인증 절차를 수행하거나, 프로그램 코드의 무결성을 검증하는 등의 다양한 보안 솔루션이 개발되고 있다.
그리고, 프로그램 개발자들은 이런 보안 솔루션을 프로그램에 추가하여, 어플리케이션의 프로그램 코드를 해킹으로부터 보호하도록 하고 있다.
이를 위한 프로그램에 보안 솔루션 적용하는 기존 방법은, 개발자가 프로그램 개발 단계에서 프로그램 코드 중간 중간에 보안 솔루션 코드를 직접 추가하는 것이었다.
그러나, 이런 기존 방법에서는 프로그램 코드와 보안 솔루션 코드의 호환성 문제가 발생하였고, 프로그램 코드에 보안 솔루션 코드를 추가하는 과정에서 다양한 오류들이 발생하게 되었다. 그리고, 프로그램을 업데이트 하는 경우에 업데이트된 프로그램 코드와 보안 솔루션 코드 모두를 재확인해야하는 번거로움이 존재하였다.
(특허문헌 1) 등록특허공보 제10-1583545호(2016.01.04.)
(특허문헌 2) 등록특허공보 제10-1420383호(2014.07.10.)
상기와 같은 문제를 해결하기 위한 본 발명의 목적은 서버부가 사용자 단말기로부터 업로드된 파일에서 앱정보를 추출하고 추출된 앱정보로부터 추출한 구동코드에 보안실행코드를 합하여 실행시킨 후 검사하여 원소스코드를 실행시키는 프로그램 보안 적용방법을 제공하는 것이다.
본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 구성은 (a) 사용자 단말기가 파일을 서버부로 업로드하는 단계; (b) 상기 서버부가 상기 파일을 기반으로 앱정보를 추출하는 단계; (c) 상기 앱정보에서 코드를 분석하여 원소스코드와 구동코드로 분리하는 단계; (d) 상기 서버부가 상기 원소스코드와 교체한 보안실행코드를 상기 구동코드에 합치는 단계; (e) 사용자 클라이언트가 상기 보안실행코드를 실행시키는 단계; 및 (f) 상기 사용자 클라이언트가 상기 원소스코드를 실행시키는 단계;를 포함하는 것을 특징으로 하는 프로그램 보안 적용방법을 제공한다.
본 발명의 일실시예에 있어서, 상기 (c) 단계는, (c1) 상기 서버부가 상기 앱정보에서 상기 코드를 추출하는 단계; (c2) 상기 서버부가 상기 코드를 분석하는 단계; (c3) 상기 서버부가 상기 원소스코드와 상기 구동코드로 분리하는 단계;를 포함하는 것을 특징으로 할 수 있다.
본 발명의 일실시예에 있어서, 상기 (d) 단계는, (d1) 상기 서버부가 상기 원소스코드와 상기 보안실행코드를 교체하는 단계; 및 (d2) 상기 서버부가 상기 원소스코드와 상기 보안실행코드를 합치는 단계;를 포함하는 것을 특징으로 할 수 있다.
본 발명의 일실시예에 있어서, 상기 (d) 단계에서, 상기 보안실행코드와 교체된 상기 원소스코드는 난독화 및 암호화를 거쳐 보안처리되는 것을 특징으로 할 수 있다.
본 발명의 일실시예에 있어서, 상기 (e) 단계와 상기 (f) 단계 사이에, 상기 보안실행코드가 실행된 이후, 상기 사용자 단말기를 검사하는 단계; 및 상기 원소스코드 또는 보안실행코드를 복호화시키는 단계를 포함하는 것을 특징으로 할 수 있다.
본 발명의 일실시예에 있어서, 상기 (c) 단계에서, 상기 원소스코드는 사용자가 개발한 코드이고, 상기 구동코드는 상기 사용자가 개발하지 않은 코드인 것을 특징으로 할 수 있다.
본 발명의 일실시예에 있어서, 상기 (b) 단계에서, 상기 앱정보는 앱의 패키지명 정보, 어플리케이션 정보, 액티비티 정보, 서비스 정보 및 리스너 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 할 수 있다.
상기와 같은 구성에 따르는 본 발명의 효과는, 서버부가 앱정보로부터 원소스코드와 구동코드를 분리시킨 후 구동코드에 보안실행코드를 합쳐 실행시킴에 따라 종래기술보다 처리속도를 향상시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법을 나타낸 순서도이다.
도 2는 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법에서 사용자 단말기 상에 앱이 실행되는 것을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법에서 사용자 단말기가 서버부로 파일을 업로드하는 것을 예시적으로 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법에서 코드 및 앱을 보호하기 위한 과정을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법에서 코드 및 앱을 보호하기 위해 적용된 결과를 나타낸 도면이다.
이하에서는 첨부한 도면을 참조하여 본 발명을 설명하기로 한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시예로 한정되는 것은 아니다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결(접속, 접촉, 결합)"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 구비할 수 있다는 것을 의미한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하 첨부된 도면을 참고하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법을 나타낸 순서도이다.
본 발명의 일 실시예에 따른 프로그램 보안 적용방법은 (a) 사용자 단말기가 파일을 서버부로 업로드하는 단계(S100), (b) 서버부가 파일을 기반으로 앱정보를 추출하는 단계(S200), (c) 앱정보에서 코드를 분석하여 원소스코드 및 구동코드를 분리하는 단계(S300), (d) 상기 서버부가 원소스코드와 교체한 보안실행코드를 구동코드에 합치는 단계(S400), (e) 사용자 클라이언트가 보안실행코드를 실행시키는 단계(S500) 및 (f) 사용자 클라이언트가 원소스코드를 실행시키는 단계(S600)를 포함한다.
이때, 원소스코드는 클래스일 수 있으며, 본 발명에서는 하나의 구동코드를 예시적으로 설명하였으나, 구동코드 이외에 각기 다른 기능을 수행하는 다수의 코드를 포함할 수 있다.
종래기술에서는 원소스코드, 구동코드 및 다수의 코드 전체를 디컴파일링한 후 보안코드를 각각의 코드에 적용한 후 다시 컴파일링하므로 처리속도가 현저하게 느린 반면, 본 발명은 원소스코드 및 구동코드로 분리시킨 후 구동코드에만 보안실행코드를 적용하고, 별도의 디컴파일링을 수행하지 않으므로 종래기술보다 처리속도가 현저히 빠른 장점이 있다.
또한, 보안실행코드는 모바일 디바이스를 식별할 수 있는 식별정보를 추출할 수 있는 기능을 포함함에 따라 위협 대상자의 접속을 차단할 수도 있다.
아울러, 사용자 클라이언트는 모바일앱 시스템일 수 있다.
도 2는 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법에서 사용자 단말기 상에 앱이 실행되는 것을 나타낸 도면이다. 도 3은 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법에서 사용자 단말기가 서버부로 파일을 업로드하는 것을 예시적으로 나타낸 도면이다.
상기 (a) 단계는 서버부로 파일이 업로드되는 단계이다. 여기서, 파일은 접속정보를 포함할 수 있고, 접속정보는 사용자 단말기의 정보 및 사용자 단말기를 소지한 사용자의 정보 중 적어도 어느 하나를 포함할 수 있다.
도 2와 같이 사용자 단말기에서 보안을 적용하기 위한 앱을 실행시키고 도 3에 도시된 서버부의 화면에서 파일을 업로드한다.
각 디바이스를 식별하기 위해 사용되는 식별값을 포함하는 접속정보는 디바이스 내 또는 사용자의 서비스 아이디(ID) 등의 맥(MAC), 하드웨어 아이디(Hardware ID), 디바이스 아이디(device ID), 광고 아이디(ID), 체인(Chain), 앱 시스템에서 사용하는 사용자 식별 코드(예를 들어, 게임 아이디)와 같은 정보 중 하나를 이용하거나 다수의 조합을 이용하여 도출한다.
상기 (b) 단계에서, 앱정보는 앱의 패키지명 정보, 어플리케이션 정보, 액티비티 정보, 서비스 정보 및 리스너 정보 중 적어도 어느 하나를 포함한다.
액티비티 정보는 프로그램을 구성하는 컴포넌트이며, 프로그램이 제공되는 단위 서비스가 구현된 소스 코드이다.
구체적으로, 액티비티는 사용자에게 출력되는 화면을 생성 및 제어하도록 구성된 소스 코드로이며, 예시적으로 사용자 입력 화면, 게임 정보 출력 화면 등을 생성 및 제어하도록 작성된 소스 코드이다.
리스너는 네트워크를 이용하여 클라이언트에서 서버부로 연결하기 위한 네트워크 관리자로서, 이러한 리스너를 실행시켜야 클라이언트들이 접속할 수 있다.
구체적으로 리스너는 필요에 따라 여러 개가 동시에 구성되고 실행될 수 있으며, 각각의 리스너는 서비스 목록을 동적 또는 수동으로 등록할 수 있다.
기본 포트를 사용하는 리스너는 PMON으로부터 실행 중인 디스패처의 정보도 함께 등록하고 있다. 다만, 기본 포트를 사용하지 않는 리스너(로컬 리스너 설정을 변경한 다른 리스너)는 동적으로 서비스의 등록을 받을 수 없다.
서비스 정보는 컴퓨터 내에서, 특히 하드웨어에 가까운 낮은 레벨에서 다른 프로그램을 지원하는 프로그램 또는 루틴에 대한 정보이다.
도 4는 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법에서 코드 및 앱을 보호하기 위한 과정을 나타낸 도면이다.
상기 (c) 단계는, (c1) 서버부가 앱정보에서 코드를 추출하는 단계, (c2) 서버부가 코드를 분석하는 단계 및 (c3) 서버부가 원소스코드와 구동코드로 분리하는 단계를 포함한다.
이때, 상기 (c) 단계에서, 상기한 원소스코드는 사용자가 개발한 코드이고, 상기한 구동코드는 사용자가 개발하지 않은 코드이다.
도 4에 도시된 바와 같이 (c1) 단계에서는 코드 및 앱 보호를 위한 프로세스가 구동될 수 있으며, 상기한 과정에 의해 원소스코드, 구동코드 및 그 외의 다양한 코드를 추출할 수 있다.
상기 (c1) 단계에서, 코드는 전술한 원소스코드 및 구동코드를 포함할 수 있다. 추가적으로 상기 (c1) 단계에서는 앱정보인 앱의 패키지명 정보, 어플리케이션 정보, 액티비티 정보, 서비스 정보 및 리스너 정보 중 어느 하나로부터 코드를 추출한다. 이때, 코드는 기능별로 다양한 코드가 존재할 수 있다.
상기 (c2) 단계에서는 서버부가 상기 (c1) 단계에서 추출한 코드를 기반으로 분석한다.
상기 (c3) 단계에서는 서버부가 상기 (c2) 단계에서 원소스코드와 구동코드를 분리하게 된다.
본 발명은 상기 (c) 단계를 통해 종래기술에서 프로그램을 디컴파일하여 프로그램 코드를 생성한 후 보안코드를 입혀서 다시 프로그램 코드를 컴파일함에 따라 처리속도가 지연되는 문제점을 해소할 수 있다.
즉, 본 발명은 프로그램을 디컴파일 및 컴파일하는 과정 없이 클래스를 분리시킴에 따라 종래기술보다 획기적으로 빠른 처리속도를 가지는 장점이 있다.
다음, 상기 (d) 단계는, (d1) 서버부가 원소스코드와 보안실행코드를 교체하는 단계 및 (d2) 서버부가 원소스코드와 보안실행코드를 합치는 단계를 포함한다.
구체적으로 보안실행코드는 원소스코드가 위치했던 자리로 교체되고, 보안실행코드와 교체된 원소스코드는 난독화 및 암호화를 거쳐 보안처리되어 특정위치에 저장될 수 있다.
도 5는 본 발명의 일실시예에 따른 일 실시예에 따른 프로그램 보안 적용방법에서 코드 및 앱을 보호하기 위해 적용된 결과를 나타낸 도면이다.
상기 (e) 단계(S500)에서는 서버부가 보안실행코드를 실행시키는 단계로서, 원소스코드를 실행시키기 전에 사용자 단말기의 안전성을 먼저 검사한다.
상기한 (e) 단계를 거친 결과 화면이 도 5에 도시되어 있다.
이를 위한 본 발명은 상기 (e) 단계와 상기 (f) 단계 사이에, 보안실행코드가 실행된 이후, 사용자 단말기를 검사하는 단계 및 원소스코드 또는 보안실행코드를 복호화시키는 단계를 포함할 수 있다.
이때, 보안소스코드가 실행된 이후, 사용자 단말기를 검사하여 검사결과가 안전하다고 판단되면, 보안소스코드를 복호화 및 기타 작업을 거쳐 원소스코드화시킨다.
한편, 보안소스코드가 실행된 이후, 사용자 단말기를 검사하여 검사결과가 미안전하다고 판단되면, 종료하거나 상기 단계(S200)로 복귀할 수 있다.
마지막으로 상기 (f) 단계에서는, 사용자 단말기가 안전하다고 확인된 상태에서 서버부가 원소스코드를 실행시킨다.
상기한 바에 따른 본 발명은 기업의 핵심 기술 유출 방지와 해킹 및 불법 변조로부터 안전하게 지식재산권을 보호하는 어플리케이션 프로텍터로서, 모바일 디바이스(안드로이드/iOS)에서 구동되는 모든 어플리케이션에 적용 가능하며 이를 통해 모바일 어플리케이션을 위협하는 모든 해킹과 금전적 피해를 입을 수 있는 상황을 모두 차단하고 어플리케이션의 주요 자산을 보호한다.
본 발명은 어플리케이션 위협 탐지(application threat detection) 기술, 어플리케이션 보호(application protector) 기술, 안티 해킹 솔루션(anti hacking solution) 기술이 융합된 것으로서, 이러한 기술들은 단순히 더해진 것이 아닌 유기적 결합을 통해 기술의 중복과 충돌이 없이 각 기능들이 서로 간의 취약점을 보안해 효율적인 동작을 수행하며, SaaS방식을 이용하여 결제부터 보안 적용까지 한 번에 사용이 가능하다.
또한, 적용방식에 있어서 개발자의 별도의 작업이 필요 없이 SaaS 방식을 통하여 사용자의 편의성을 극대화 하였으며, 파일을 업로드하는 것만으로 소스코드 보호, 메모리 변조, 실시간 디버깅 등 해킹이 가능한 모든 행위를 차단하고 게임 엔진 보호, 가상머신 탐지, 리패키징 차단, 위/변조 방지 기능 등 모바일 어플리케이션에 필요한 모든 보안 기능을 제공한다.
상기한 바에 따른 본 발명은 기업의 핵심 기술 유출 방지와 해킹 및 불법 변조로부터 안전하게 지식재산권을 보호하는 어플리케이션 프로텍터로서, 모바일 디바이스(안드로이드/iOS)에서 구동되는 모든 어플리케이션에 적용 가능하며 이를 통해 모바일 어플리케이션을 위협하는 모든 해킹과 금전적 피해를 입을 수 있는 상황을 모두 차단하고 어플리케이션의 주요 자산을 보호한다.
본 발명은 어플리케이션 위협 탐지(application threat detection) 기술, 어플리케이션 보호(application protector) 기술, 안티 해킹 솔루션(anti hacking solution) 기술이 융합된 것으로서, 이러한 기술들은 단순히 더해진 것이 아닌 유기적 결합을 통해 기술의 중복과 충돌이 없이 각 기능들이 서로 간의 취약점을 보안해 효율적인 동작을 수행하며, SaaS방식을 이용하여 결제부터 보안 적용까지 한 번에 사용이 가능하다.
또한, 적용방식에 있어서 개발자의 별도의 작업이 필요 없이 SaaS 방식을 통하여 사용자의 편의성을 극대화 하였으며, 파일을 업로드하는 것만으로 소스코드 보호, 메모리 변조, 실시간 디버깅 등 해킹이 가능한 모든 행위를 차단하고 게임 엔진 보호, 가상머신 탐지, 리패키징 차단, 위/변조 방지 기능 등 모바일 어플리케이션에 필요한 모든 보안 기능을 제공한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (7)

  1. (a) 사용자 단말기가 파일을 서버부로 업로드하는 단계;
    (b) 상기 서버부가 상기 파일을 기반으로 앱정보를 추출하는 단계;
    (c) 상기 앱정보에서 코드를 분석하여 원소스코드와 구동코드로 분리하는 단계;
    (d) 상기 서버부가 상기 원소스코드와 교체한 보안실행코드를 상기 구동코드에 합치는 단계;
    (e) 사용자 클라이언트가 상기 보안실행코드를 실행시키는 단계; 및
    (f) 상기 사용자 클라이언트가 상기 원소스코드를 실행시키는 단계;를 포함하는 것을 특징으로 하는 프로그램 보안 적용방법.
  2. 제1 항에 있어서,
    상기 (c) 단계는,
    (c1) 상기 서버부가 상기 앱정보에서 상기 코드를 추출하는 단계;
    (c2) 상기 서버부가 상기 코드를 분석하는 단계;
    (c3) 상기 서버부가 상기 원소스코드와 상기 구동코드로 분리하는 단계;를 포함하는 것을 특징으로 하는 프로그램 보안 적용방법.
  3. 제1 항에 있어서,
    상기 (d) 단계는,
    (d1) 상기 서버부가 상기 원소스코드와 상기 보안실행코드를 교체하는 단계; 및
    (d2) 상기 서버부가 상기 원소스코드와 상기 보안실행코드를 합치는 단계;를 포함하는 것을 특징으로 하는 프로그램 보안 적용방법.
  4. 제3 항에 있어서,
    상기 (d) 단계에서,
    상기 보안실행코드와 교체된 상기 원소스코드는 난독화 및 암호화를 거쳐 보안처리되는 것을 특징으로 하는 프로그램 보안 적용방법.
  5. 제1 항에 있어서,
    상기 (e) 단계와 상기 (f) 단계 사이에,
    상기 보안실행코드가 실행된 이후, 상기 사용자 단말기를 검사하는 단계; 및
    상기 원소스코드 또는 보안실행코드를 복호화시키는 단계를 포함하는 것을 특징으로 하는 프로그램 보안 적용방법.
  6. 제1 항에 있어서,
    상기 (c) 단계에서,
    상기 원소스코드는 사용자가 개발한 코드이고,
    상기 구동코드는 상기 사용자가 개발하지 않은 코드인 것을 특징으로 하는 프로그램 보안 적용방법.
  7. 제1 항에 있어서,
    상기 (b) 단계에서,
    상기 앱정보는 앱의 패키지명 정보, 어플리케이션 정보, 액티비티 정보, 서비스 정보 및 리스너 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 프로그램 보안 적용방법.
KR1020200051623A 2020-04-28 2020-04-28 프로그램 보안 적용방법 KR102358101B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
PCT/KR2020/095079 WO2021221266A1 (ko) 2020-04-28 2020-04-28 위협 사용자의 접속차단방법 및 프로그램 보안 적용방법
SG11202109561SA SG11202109561SA (en) 2020-04-28 2020-04-28 Method of blocking access of threatening user and program security application method
JP2021550107A JP7215699B2 (ja) 2020-04-28 2020-04-28 脅威使用者の接続遮断方法およびプログラムセキュリティ適用方法
US17/310,927 US20220327205A1 (en) 2020-04-28 2020-04-28 Method of blocking access of threatening user and program security application method
CN202080016943.7A CN115812290A (zh) 2020-04-28 2020-04-28 威胁用户的访问阻止方法及程序安全适用方法
KR1020200051623A KR102358101B1 (ko) 2020-04-28 2020-04-28 프로그램 보안 적용방법
JP2023002571A JP2023040214A (ja) 2020-04-28 2023-01-11 脅威使用者の接続遮断方法およびプログラムセキュリティ適用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200051623A KR102358101B1 (ko) 2020-04-28 2020-04-28 프로그램 보안 적용방법

Publications (2)

Publication Number Publication Date
KR20210133353A true KR20210133353A (ko) 2021-11-08
KR102358101B1 KR102358101B1 (ko) 2022-02-08

Family

ID=78485738

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200051623A KR102358101B1 (ko) 2020-04-28 2020-04-28 프로그램 보안 적용방법

Country Status (1)

Country Link
KR (1) KR102358101B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102622866B1 (ko) * 2022-09-26 2024-01-09 (주)잉카엔트웍스 매크로봇 탐지 서비스 제공 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436536B1 (ko) * 2013-06-19 2014-09-01 숭실대학교산학협력단 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템
KR20160112904A (ko) * 2015-03-19 2016-09-28 단국대학교 산학협력단 안드로이드 어플리케이션의 역공학 방지 방법 및 이를 수행하는 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436536B1 (ko) * 2013-06-19 2014-09-01 숭실대학교산학협력단 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템
KR20160112904A (ko) * 2015-03-19 2016-09-28 단국대학교 산학협력단 안드로이드 어플리케이션의 역공학 방지 방법 및 이를 수행하는 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102622866B1 (ko) * 2022-09-26 2024-01-09 (주)잉카엔트웍스 매크로봇 탐지 서비스 제공 방법 및 시스템
WO2024071855A1 (ko) * 2022-09-26 2024-04-04 (주)잉카엔트웍스 매크로봇 탐지 서비스 제공 방법 및 시스템

Also Published As

Publication number Publication date
KR102358101B1 (ko) 2022-02-08

Similar Documents

Publication Publication Date Title
Jung et al. Repackaging attack on android banking applications and its countermeasures
KR101503785B1 (ko) 동적 라이브러리를 보호하는 방법 및 장치
US8099596B1 (en) System and method for malware protection using virtualization
US20200134178A1 (en) Efficient program deobfuscation through system api instrumentation
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
KR20140016897A (ko) 디바이스 상의 앱들의 보안화 및 관리
WO2008094808A1 (en) Binding digital rights code to software applications
Singh et al. Analysis of malicious behavior of android apps
Haupert et al. Honey, i shrunk your app security: The state of android app hardening
WO2022078366A1 (zh) 应用保护方法、装置、设备及介质
Lim et al. Structural analysis of packing schemes for extracting hidden codes in mobile malware
JP4664055B2 (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
Strackx et al. Salus: Kernel support for secure process compartments
CN103970574B (zh) office程序的运行方法及装置、计算机系统
CN106326733A (zh) 管理移动终端中应用的方法和装置
Suk et al. UnThemida: Commercial obfuscation technique analysis with a fully obfuscated program
KR102358101B1 (ko) 프로그램 보안 적용방법
KR101638257B1 (ko) 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치
Lee et al. Classification and analysis of security techniques for the user terminal area in the internet banking service
KR101436741B1 (ko) 프로그램 보안 솔루션 적용 방법 및 시스템
Msgna et al. Secure application execution in mobile devices
US20220327205A1 (en) Method of blocking access of threatening user and program security application method
Lee et al. Is your android app insecure? patching security functions with dynamic policy based on a java reflection technique
DONG et al. Sesoa: Security enhancement system with online authentication for android apk
KR102358099B1 (ko) 위협 사용자의 접속차단방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant