KR101944010B1 - 애플리케이션의 변조 감지 방법 및 장치 - Google Patents

애플리케이션의 변조 감지 방법 및 장치 Download PDF

Info

Publication number
KR101944010B1
KR101944010B1 KR1020120019115A KR20120019115A KR101944010B1 KR 101944010 B1 KR101944010 B1 KR 101944010B1 KR 1020120019115 A KR1020120019115 A KR 1020120019115A KR 20120019115 A KR20120019115 A KR 20120019115A KR 101944010 B1 KR101944010 B1 KR 101944010B1
Authority
KR
South Korea
Prior art keywords
application
executable code
execution
package
code
Prior art date
Application number
KR1020120019115A
Other languages
English (en)
Other versions
KR20130101657A (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 KR1020120019115A priority Critical patent/KR101944010B1/ko
Priority to US13/767,294 priority patent/US9245109B2/en
Publication of KR20130101657A publication Critical patent/KR20130101657A/ko
Application granted granted Critical
Publication of KR101944010B1 publication Critical patent/KR101944010B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

본 발명은 애플리케이션의 변조 감지 방법 및 장치에 관한 것으로, 본 발명의 일 실시 예에 따르는 애플리케이션의 변조 감지 방법은, 애플리케이션의 패키지를 획득하는 단계, 상기 획득한 애플리케이션의 패키지로부터 제1 실행 코드를 추출하여 설치하는 설치 단계, 상기 제1 실행코드가 설치된 이후, 애플리케이션의 실행 명령을 수신하면, 상기 애플리케이션의 패키지로부터 제2 실행 코드를 추출하는 추출 단계 및 상기 제1 실행 코드와 상기 제2 실행 코드가 일치하지 않으면, 미리 설정된 동작을 수행하는 처리 단계를 포함할 수 있다. 본 발명의 일 실시 예에 따르면 애플리케이션 설치 이후에 실행 코드의 변조를 감지하고 적절히 처리할 수 있는 애플리케이션 변조 감지 장치 및 방법을 제공할 수 있는 효과가 있다.

Description

애플리케이션의 변조 감지 방법 및 장치{METHOD AND APPARATUS FOR DETECTING TAMPERED APPLICATION}
본 발명은 애플리케이션의 변조(Tampering) 감지 방법 및 장치에 관한 것으로, 더욱 상세하게는 애플리케이션이 설치된 이후 변조된 것을 감지하는 방법 및 장치에 관한 것이다.
최근 이른바 스마트폰이 널리 보급되면서, 스마트폰에서 각종 애플리케이션의 활용도 크게 늘어났다. 스마트폰 기타 단말에서 애플리케이션은 사용자 또는 장치 제공자에 의해 설치될 수 있으며, 설치된 애플리케이션은 이후에 사용자의 실행 명령이나 기타 환경에 따라 실행될 수 있다.
도 1은 안드로이드 운영 체제를 이용하는 단말에서 애플리케이션이 설치되고 실행되는 과정을 나타낸다. 먼저 단계 140에서 MediaHub.apk(105) 패키지가 설치된다. 안드로이드 운영 체제의 서명 검증 모듈(110)은 MediaHub.apk(105) 패키지의 서명을 검증한다. 서명을 검증한 뒤 단계 150에서 단말은 해당 애플리케이션 패키지로부터 추출한 최적화된 실행코드(115)를 저장한다. 이때 최적화된 실행 코드는 odex 포맷으로 구성될 수 있다.
이후 단계 160에서 사용자(120)는 Media Hub 애플리케이션(125)에 대한 실행 명령을 입력한다. 단계 170에서 Media Hub 애플리케이션(125) 실행 명령이 안드로이드의 dalvik 가상 머신(130)으로 전달된다. 단계 180에서 dalvik 가상 머신(130)은 Media Hub 애플리케이션(125)을 실행시키기 위해 안드로이드의 dalvik 가상 머신(130)이 odex 포맷의 실행코드(115)를 로드한다. 이와 같은 방법으로 사용자는 애플리케이션을 설치하고 이후 실행시킬 수 있다.
스마트폰의 애플리케이션들은 사용자에게 편리한 기능을 제공한다. 하지만 악의적으로 변조된 애플리케이션은 스마트폰 사용자의 정보를 유출하는 등 사용자에게 피해를 줄 수도 있다. 또한, 음악, 영상이나 이북(e-book) 등의 콘텐츠를 제공하는 애플리케이션은 저작권 보호를 위해 DRM(Digital Rights Management)을 활용한다. 악의적으로 변조된 애플리케이션은 DRM과 같은 저작권 보호 기능을 무력화시킬 수도 있다.
스마트폰에서 변조된 애플리케이션의 실행을 막기 위해 안드로이드 운영 체제는 애플리케이션을 설치할 때 서명 검증 과정을 거친다. 하지만, 애플리케이션이 설치된 후 실행 코드(115)가 변조된 경우 이를 감지하거나 변조된 실행 코드의 실행을 막을 수 없는 문제가 있다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로 애플리케이션 설치 이후에 실행 코드의 변조를 감지하고 적절히 처리할 수 있는 애플리케이션 변조 감지 장치 및 방법을 제공하는데 그 목적이 있다.
상술한 과제를 달성하기 위하여, 본 발명의 일 실시 예에 따르는 애플리케이션의 변조 감지 방법은, 애플리케이션의 패키지를 획득하는 단계, 상기 획득한 애플리케이션의 패키지로부터 제1 실행 코드를 추출하여 설치하는 설치 단계, 상기 제1 실행코드가 설치된 이후, 애플리케이션의 실행 명령을 수신하면, 상기 애플리케이션의 패키지로부터 제2 실행 코드를 추출하는 추출 단계 및 상기 제1 실행 코드와 상기 제2 실행 코드가 일치하지 않으면, 미리 설정된 동작을 수행하는 처리 단계를 포함할 수 있다.
상술한 과제를 달성하기 위하여, 본 발명의 일 실시 예에 따르는 애플리케이션의 변조 감지 장치는, 애플리케이션의 패키지를 저장하는 저장부 및 상기 저장된 애플리케이션의 패키지로부터 제1 실행 코드를 추출하여 설치하고, 상기 제1 실행코드가 설치된 이후, 애플리케이션의 실행 명령을 수신하면, 상기 애플리케이션의 패키지로부터 제2 실행 코드를 추출하고, 상기 제1 실행 코드와 상기 제2 실행 코드가 일치하지 않으면, 미리 설정된 동작을 수행하는 제어부를 포함할 수 있다.
본 발명의 일 실시 예에 따르면 애플리케이션 설치 이후에 실행 코드의 변조를 감지하고 적절히 처리할 수 있는 애플리케이션 변조 감지 장치 및 방법을 제공할 수 있는 효과가 있다.
도 1은 안드로이드 운영 체제를 이용하는 단말에서 애플리케이션이 설치되고 실행되는 과정을 나타낸다.
도 2는 애플리케이션의 변조 공격 패턴을 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따르는 애플리케이션 변조 감지 장치(300)의 블록구성도이다.
도 4는 본 발명의 일 실시 예에 따르는 단말에서 애플리케이션 변조를 감지하는 과정을 나타낸다.
도 5는 본 발명의 다른 실시 예에 따르는 단말에서 애플리케이션 변조를 감지하는 과정을 나타낸다.
도 6은 본 발명의 일 실시 예에 따르는 애플리케이션 변조 감지 과정의 순서도이다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
이하, 본 발명의 실시 예들에 의하여 애플리케이션 변조 감지 장치 및 방법을 설명하기 위한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.
본 발명의 본격적인 설명에 앞서 애플리케이션 변조 공격의 패턴을 살펴본다.
도 2는 애플리케이션의 변조 공격 패턴을 나타낸 도면이다.
도 2를 참조하면 도 1의 경우와 마찬가지로 단계 140에서 정상적인 MediaHub.apk 패키지(105)가 설치된다. 패키지(105)의 설치 시에 서명 검증 과정이 수행된다. 이후 단계 150에서 단말은 패키지(105)에서 최적화된 실행 코드(115)를 추출한다. 이후 단계 155에서 공격자(112)는 설치된 실행 코드(115)를 변조한다. 원래의 실행 코드(115)는 공격자의 변조 공격에 따라 변조된 실행 코드(117)로 변환된다. 이후 사용자(120)는 단계 160에서 해당 애플리케이션(125)을 실행하고 단계 170에서 dalvik 가상 머신(130)이 실행된다. Dalvik 가상 머신(130)은 실행 코드가 변조됐음을 감지하지 못하고 단계 180에서 변조된 실행 코드(117)를 로드하고 그대로 실행한다.
이와 같이 패키지가 설치된 이후 실행 코드를 변조하는 공격을 감지하거나 방지할 수 있는 방법이 현재는 알려져 있지 않다.
도 3은 본 발명의 일 실시 예에 따르는 애플리케이션 변조 감지 장치(300)의 블록구성도이다.
도 3을 참조하면, 본 발명의 일 실시 예에 따르는 애플리케이션 변조 감지 장치(300)는 통신부(310), 오디오처리부(320), 표시부(330), 입력부(340), 저장부(350) 및 제어부(360) 를 포함한다.
통신부(310)는 애플리케이션 변조 감지 장치(300)의 무선 통신 또는 유선 통신을 위한 해당 데이터의 송수신 기능을 수행한다. 통신부(310)는 예를 들어 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF송신기와, 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF수신기 등으로 구성될 수 있다. 또한, 통신부(310)는 무선 채널을 통해 데이터를 수신하여 제어부(360)로 출력하고, 제어부(360)로부터 출력된 데이터를 무선 채널을 통해 전송할 수 있다.
특히 본 발명의 일 실시 예에 따르는 통신부(310)는 애플리케이션 패키지 파일을 송수신하거나, 애플리케이션 실행에 필요한 데이터를 송수신할 수 있다. 또한 영상/음성 또는 데이터 송수신이 불필요한 경우에는 통신부가 생략될 수도 있다.
오디오처리부(320)는 디지털 오디오 신호를 오디오 코덱을 통해 아날로그 오디오 신호로 변환하여 스피커(SPK)를 통해 재생하고, 마이크(MIC)로부터 입력되는 아날로그 오디오 신호를 오디오 코덱을 통해 디지털 오디오 신호로 변환한다. 오디오처리부(320)는 코덱(CODEC)으로 구성될 수 있으며, 코덱은 패킷 데이터 등을 처리하는 데이터 코덱과 음성 등의 오디오 신호를 처리하는 오디오 코덱으로 구성될 수 있다. 오디오에 대한 별도의 처리가 필요하지 않은 경우 오디오처리부(320)는 생략될 수 있다.
표시부(330)는 애플리케이션 변조 감지 장치(300)의 메뉴, 입력된 데이터, 기능 설정 정보 및 기타 다양한 정보를 사용자에게 시각적으로 제공한다. 표시부(330)는 애플리케이션 변조 감지 장치(300)의 부팅 화면, 대기 화면, 메뉴 화면, 통화 화면, 기타 어플리케이션 화면을 출력하는 기능을 수행한다. 또한 애플리케이션 변조 감지 장치(300)가 영상 통화를 지원하는 경우 표시부(330)는 영상 통화 상대방으로부터 수신한 영상을 표시할 수 있다.
표시부(330)는 액정표시장치(LCD, Liquid Crystal Display), 유기 발광 다이오드(OLED, Organic Light Emitting Diodes), 능동형 유기 발광 다이오드(AMOLED, Active Matrix Organic Light Emitting Diodes) 등으로 형성될 수 있다.
입력부(340)는 사용자의 제어 입력을 수신하여 제어부(360)로 전달한다. 입력부(340)는 터치센서 및/또는 키패드의 형태로 구현될 수 있다.
터치센서는 사용자의 터치 입력을 감지한다. 터치센서는 정전용량 방식(capacitive overlay), 압력식 저항막 방식(resistive overlay), 적외선 감지 방식(infrared beam) 등의 터치 감지 센서로 구성되거나, 압력 감지 센서(pressure sensor)로 구성될 수도 있다. 상기 센서들 이외에도 물체의 접촉 또는 압력을 감지할 수 있는 모든 종류의 센서 기기가 본 발명의 터치센서로 구성될 수 있다. 터치센서는 사용자의 터치 입력을 감지하고, 감지 신호를 발생시켜 제어부(360)로 전송한다. 상기 감지 신호에는 사용자가 터치를 입력한 좌표 데이터가 포함된다. 사용자가 터치 위치 이동 동작을 입력한 경우에 터치센서는 터치 위치 이동 경로의 좌표 데이터를 포함한 감지 신호를 발생시켜 제어부(360)로 전송한다.
키패드는 애플리케이션 변조 감지 장치(300)를 제어하기 위한 사용자의 키 조작을 입력받고 입력 신호를 생성하여 제어부(360)에 전달한다. 키패드는 숫자 키, 방향키를 포함할 수 있으며, 애플리케이션 변조 감지 장치(300)의 일면에 소정의 기능키로 형성될 수 있다.
입력부(340)는 실시 예에 따라 터치 센서만을 포함하거나 키패드만을 포함할 수도 있고, 별도의 제어 입력이 불필요한 경우 생략될 수도 있다.
저장부(350)는 휴대 단말기(100)의 동작에 필요한 프로그램 및 데이터를 저장한다. 저장부(350)는 프로그램 영역과 데이터 영역으로 구분될 수 있다. 프로그램 영역은 애플리케이션 변조 감지 장치(300)의 전반적인 동작을 제어하는 프로그램 및 애플리케이션 변조 감지 장치(300)를 부팅시키는 운영체제(OS, Operating System), 멀티미디어 컨텐츠 재생 등에 필요한 응용 프로그램, 애플리케이션 변조 감지 장치(300)의 기타 옵션 기능, 예컨대, 카메라 기능, 소리 재생 기능, 이미지 또는 동영상 재생 기능에 필요한 응용 프로그램 등을 저장할 수 있다. 데이터 영역은 애플리케이션 변조 감지 장치(300)의 사용에 따라 발생하는 데이터가 저장되는 영역으로서, 이미지, 동영상, 폰 북, 오디오 데이터 등을 저장할 수 있다. 특히 저장부(350)는 애플리케이션의 패키지 파일 및 최적화된 실행 코드를 저장할 수 있다.
제어부(360)는 애플리케이션 변조 감지 장치(300)의 각 구성 요소에 대한 전반적인 동작을 제어한다.
특히 제어부(360)는 도 4 내지 도 6을 참조하여 후술하는 바와 같이 애플리케이션 실행 명령을 수신하면 해당 애플리케이션의 패키지 파일로부터 실행 코드를 추출하고, 원래 저장부(350)에 저장돼 있던 실행코드와 비교할 수 있다. 비교 결과 저장부(350)에 저장돼 있던 실행 코드가 패키지 파일로부터 다시 추출한 실행 코드와 상이한 경우 해당 애플리케이션의 실행을 막거나 애플리케이션이 변조됐음을 지시하는 기록을 남기는 등 적절한 동작을 수행할 수 있다. 상세한 사항은 도 4 내지 도 6을 참조하여 후술한다.
도 4는 본 발명의 일 실시 예에 따르는 단말에서 애플리케이션 변조를 감지하는 과정을 나타낸다.
먼저 단계 140에서 MediaHub.apk 패키지(105)가 설치된다. 안드로이드 운영 체제의 서명 검증 모듈(110)은 MediaHub.apk 패키지(105)의 서명을 검증한다. 서명을 검증한 뒤 단계 150에서 단말은 해당 애플리케이션 패키지로부터 추출한 최적화된 실행코드(115)를 저장한다. 이때 최적화된 실행 코드는 odex 포맷으로 구성될 수 있다. 실행 코드(115)가 저장된 후 단계 155에서 공격자(112)는 실행 코드(115)를 변조하여 변조된 실행 코드(117)를 생성한다.
이후 단계 160에서 사용자(120)는 Media Hub 애플리케이션(125)에 대한 실행 명령을 입력한다. 단계 170에서 Media Hub 애플리케이션(125) 실행 명령이 안드로이드의 dalvik 가상 머신(130)으로 전달된다. 단계 180에서 dalvik 가상 머신(130)은 Media Hub 애플리케이션(125)을 실행시키기 위해 안드로이드의 dalvik 가상 머신(130)이 odex 포맷의 실행코드(117)를 로드한다.
다만, 본 발명의 일 실시 예에 따르면, Media Hub 애플리케이션(125)에 대한 실행 명령이 입력되면, 단계 410에서 변조 감지기(405)가 원본 패키지 파일(105)을 읽어와서 서명을 검증한다. 이 때 서명이 유효하지 않다면 패키지 파일(105)이 유효하지 않은 것이므로, 애플리케이션의 실행이 중단될 수 있다. 서명이 유효한 경우 단계 420에서 변조 감지기(405)는 MediaHub.apk 패키지(105)로부터 새로이 실행 코드(119)를 추출한다. 이후 단계 430에서 변조 감지기(405)는 새로 생성된 실행 코드(119)와 변조된 실행 코드(117)를 비교한다. 이 경우는 실행 코드가 변조됐으므로, 단계 440에서 변조 감지기(405)는 해당 애플리케이션의 실행 코드가 변조됐음을 안드로이드 운영 체제에게 통지할 수 있다. 다른 실시 예에 따르면, 변조 감지기(405)가 실행 코드의 변조를 감지하면 해당 애플리케이션의 실행을 막거나 해당 애플리케이션이 변조됐음을 지시하는 기록을 저장할 수도 있다. 이렇게 남겨진 기록은 추후 단말(300)의 문제 원인을 규명하는 데 도움이 될 수 있을 것이다. 또한, 변조 감지기(405)가 실행 코드의 변조를 감지하면 해당 애플리케이션의 실행을 위한 하부 기능을 제한할 수도 있다. 예를 들어 변조 감지기(405)가 동영상 재생 애플리케이션이 변조됐음을 감지한 경우 그 애플리케이션의 실행을 위해 필요한 코덱 모듈의 기능을 제한할 수도 있다. 이를 통해 실질적으로 변조된 해당 애플리케이션의 실행을 방지할 수 있다.
본 실시 예와는 달리 변조 감지기(405)가 판단한 결과 원래 저장돼 있던 실행 코드와 새로 추출해 낸 실행 코드가 동일한 경우라면 변조 감지기(405)는 별도의 동작을 수행할 필요가 없고, Media Hub 애플리케이션(125)이 문제없이 수행될 것이다.
도 4의 실시 예에서 사용자(120)와 공격자(112)는 다른 사람일 수도 있지만 일반적으로는 같은 사람이 될 수 있다. 즉, 해당 단말(300)에 사용자(120) 외의 다른 사람이 접근하기는 어려우므로, 사용자(120)가 의도적으로 애플리케이션의 실행 코드를 변조하는 경우가 일반적일 것이다.
이와 같이 애플리케이션 변조 감지 장치(300)가 애플리케이션 실행 코드의 변조를 감지하여 변조된 실행 코드의 실행을 막거나, 하부 기능을 제한하는 경우 단말의 문제를 미연에 방지하고 사용자가 저작권 제한 기능 기타 제한 사항을 우회하여 애플리케이션을 실행시키는 것을 방지할 수 있다. 또한, 다른 실시 예에 따라 애플리케이션 변조 감지 장치(300)가 애플리케이션 실행 코드의 변조를 감지하여 이에 관한 기록을 저장하는 경우 추후 단말에 발생한 문제의 원인을 규명하는 데 도움이 될 것이다.
도 5는 본 발명의 다른 실시 예에 따르는 단말에서 애플리케이션 변조를 감지하는 과정을 나타낸다. 도 4의 경우 안드로이드 운영체제에 한정지었으나 도 5와 같이 일반적인 경우에도 본 발명이 적용될 수 있다.
먼저 단계 540에서 서명된 객체(애플리케이션) 패키지(505)가 설치된다. 시스템의 서명 검증 모듈(510)은 해당 객체 패키지(505)의 서명을 검증한다. 서명을 검증한 뒤 단계 550에서 단말은 해당 애플리케이션 패키지로부터 추출한 최적화된 실행코드(객체)(515)를 저장한다. 실행 코드(515)가 저장된 후 단계 555에서 공격자(512)는 실행 코드(515)를 변조하여 변조된 실행 코드(객체)(517)를 생성한다.
이후 단계 560에서 사용자(520)는 설치된 애플리케이션 실행 명령을 입력한다. 애플리케이션 실행 명령은 운영 체제(또는 시스템)로 전달된다. 단계 580에서 운영 체제는 해당 애플리케이션을 실행시키기 위해 실행코드(117)를 로드한다.
다만, 본 실시 예에 따르면, 애플리케이션에 대한 실행 명령이 입력되면, 단계 590에서 변조 감지기(405)가 해당 애플리케이션의 원본 패키지 파일(서명된 객체)(505)을 읽어와서 서명을 검증한다. 이 때 서명이 유효하지 않다면 패키지 파일(505)이 유효하지 않은 것이므로, 애플리케이션의 실행이 중단될 수 있다. 서명이 유효한 경우 단계 592에서 변조 감지기(405)는 원본 패키지(505)로부터 새로이 최적화된 실행 코드(객체)(519)를 추출한다. 이후 단계 594에서 변조 감지기(405)는 새로 생성된 실행 코드(519)와 변조된 실행 코드(517)를 비교한다. 이 경우는 실행 코드가 변조됐으므로, 단계 596에서 변조 감지기(405)는 해당 애플리케이션의 실행 코드가 변조됐음을 시스템에게 통지할 수 있다. 다른 실시 예에 따르면, 변조 감지기(405)가 실행 코드의 변조를 감지하면 해당 애플리케이션의 실행을 막거나 해당 애플리케이션이 변조됐음을 지시하는 기록을 저장할 수도 있다. 이렇게 남겨진 기록은 추후 단말(300)의 문제 원인을 규명하는 데 도움이 될 수 있을 것이다. 또한, 변조 감지기(405)가 실행 코드의 변조를 감지하면 해당 애플리케이션의 실행을 위한 하부 기능을 제한할 수도 있다. 예를 들어 변조 감지기(405)가 동영상 재생 애플리케이션이 변조됐음을 감지한 경우 그 애플리케이션의 실행을 위해 필요한 코덱 모듈의 기능을 제한할 수도 있다. 이를 통해 실질적으로 변조된 해당 애플리케이션의 실행을 방지할 수 있다.
본 실시 예와는 달리 변조 감지기(405)가 판단한 결과 원래 저장돼 있던 실행 코드와 새로 추출해 낸 실행 코드가 동일한 경우라면 변조 감지기(405)는 별도의 동작을 수행할 필요가 없고, 애플리케이션이 문제없이 수행될 것이다.
도 5의 실시 예에서 사용자(520)와 공격자(512)는 다른 사람일 수도 있지만 일반적으로는 같은 사람이 될 수 있다. 즉, 해당 단말(300)에 사용자(520) 외의 다른 사람이 접근하기는 어려우므로, 사용자(520)가 의도적으로 애플리케이션의 실행 코드를 변조하는 경우가 일반적일 것이다.
이와 같이 애플리케이션 변조 감지 장치(300)가 애플리케이션 실행 코드의 변조를 감지하여 변조된 실행 코드의 실행을 막거나, 하부 기능을 제한하는 경우 단말의 문제를 미연에 방지하고 사용자가 저작권 제한 기능 기타 제한 사항을 우회하여 애플리케이션을 실행시키는 것을 방지할 수 있다. 또한, 다른 실시 예에 따라 애플리케이션 변조 감지 장치(300)가 애플리케이션 실행 코드의 변조를 감지하여 이에 관한 기록을 저장하는 경우 추후 단말에 발생한 문제의 원인을 규명하는 데 도움이 될 것이다.
도 6은 본 발명의 일 실시 예에 따르는 애플리케이션 변조 감지 과정의 순서도이다.
단계 610 이전에 애플리케이션 패키지를 다운로드 받거나 다른 방식에 따라 획득한 후 설치하였다고 가정한다. 이 때 제1 실행 코드가 저장된다.
단계 610에서 제어부(360)는 애플리케이션 실행 입력이 수신되는지 판단한다. 애플리케이션 실행 입력이 수신되지 않으면 제어부(360)는 애플리케이션 실행 입력이 수신될 때까지 단계 610을 반복한다. 애플리케이션 실행 입력이 수신되면 과정은 단계 620으로 진행한다. 단계 620에서 제어부(360)는 런타임에, 즉 애플리케이션 실행 입력이 수신된 이후에 패키지로부터 제2 실행 코드를 추출한다. 이 때 서명의 검증이 함께 수행될 수 있다. 단계 630에서 제어부(360)는 제2 실행 코드와 패키지의 설치 시에 저장된 제1 실행 코드가 동일한지 여부를 식별한다. 두 실행 코드가 상이한 경우 과정은 단계 640으로 진행하여 애플리케이션 변조 사실을 운영 체제 기타 시스템에 통지할 수 있다. 두 실행 코드가 동일한 경우 별도의 특별한 과정 수행 없이 종래의 방식에 따라 애플리케이션을 실행한다.
애플리케이션의 서명이 유효하지 않거나, 새로이 추출한 실행 코드와 실행 입력 이전에 저장돼 있던 애플리케이션의 실행 코드가 상이한 경우 제어부(360)는 미리 설정된 동작을 수행한다. 애플리케이션의 서명이 유효하지 않은 경우의 제어부(360)의 동작과 실행 코드가 상이한 경우의 제어부(360)의 동작은 서로 달리 설정될 수도 있고, 서로 동일하게 설정될 수도 있다.
애플리케이션의 서명이 유효하지 않은 경우 실제로 변조에 의해 애플리케이션 동작이 어려울 수 있으므로, 애플리케이션의 실행을 중단시킬 수 있다. 다른 예에 따르면, 애플리케이션의 서명이 유효하지 않은 경우 해당 애플리케이션의 서명이 유효하지 않음을 지시하는 기록을 저장할 수도 있다.
실행 입력에 따라 새로이 추출된 실행 코드와 실행 입력 이전에 저장돼 있던 실행 코드가 상이한 경우 제어부(360)는 애플리케이션의 실행 코드가 변조됐다고 판단한다. 이 경우 제어부(360)는 해당 애플리케이션의 실행 코드가 변조됐음을 지시하는 기록을 저장하거나 해당 애플리케이션의 실행 코드가 변조됐음을 운영 체제 기타 시스템에 통지할 수 있다. 다른 실시 예에 따르면 제어부(360)는 해당 애플리케이션의 실행을 막거나 해당 애플리케이션을 실행하는 데 필요한 세부 기능의 제공을 막을 수 있다. 예를 들어 동영상 재생 애플리케이션이 변조된 경우 제어부(360)는 동영상 코덱 기능의 제공을 막을 수 있다.
상기와 같이 런타임에 애플리케이션 실행 코드를 새로 추출하여 비교하는 과정을 통해 애플리케이션 설치 이후에 실행 코드가 변조된 경우를 쉽게 감지할 수 있다. 또한 애플리케이션 실행 코드가 변조된 경우 그 애플리케이션의 실행을 막거나 애플리케이션이 변조됐음을 지시하는 기록을 저장하여 변조된 애플리케이션 실행 코드로 인한 폐해를 방지하거나 감소시킬 수 있다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (12)

  1. 애플리케이션의 변조 감지 방법에 있어서,
    가상 머신 또는 운영 체제 중 적어도 하나에 의해 실행되는 실행 코드를 포함하는 애플리케이션의 패키지를 획득하는 단계;
    상기 획득한 애플리케이션의 패키지로부터 실행 코드를 추출하여 설치하는 설치 단계;
    상기 추출된 실행코드가 설치된 이후, 애플리케이션의 실행 명령을 수신하면, 상기 애플리케이션의 패키지로부터 실행 코드를 재 추출하는 재 추출 단계; 및
    상기 설치된 실행 코드와 상기 재 추출된 실행 코드가 일치하지 않으면, 미리 설정된 동작을 수행하는 처리 단계를 포함하는 애플리케이션 변조 감지 방법.
  2. 제1항에 있어서,
    상기 재 추출 단계 이전에,
    상기 추출된 실행코드가 설치된 이후, 애플리케이션의 실행 명령을 수신하면, 상기 애플리케이션의 패키지의 서명을 검증하는 단계; 및
    상기 애플리케이션의 패키지의 서명이 유효하지 않은 경우 상기 애플리케이션이 변조됐음을 지시하는 기록을 저장하는 단계를 더 포함하는 애플리케이션 변조 감지 방법.
  3. 제1항에 있어서,
    상기 처리 단계는, 상기 애플리케이션이 변조됐음을 지시하는 기록을 저장하는 단계를 포함하는 애플리케이션 변조 감지 방법.
  4. 제1항에 있어서,
    상기 처리 단계는, 상기 애플리케이션이 실행되지 않도록 실행을 중단시키는 단계를 포함하는 애플리케이션 변조 감지 방법.
  5. 제1항에 있어서,
    상기 처리 단계는, 상기 애플리케이션이 활용하는 기능을 상기 애플리케이션에 제공하지 않도록 제어하는 단계를 포함하는 애플리케이션 변조 감지 방법.
  6. 제1항에 있어서,
    상기 처리 단계는, 상기 애플리케이션이 변조됐음을 운영 체제에 통지하는 단계를 포함하는 애플리케이션 변조 감지 방법.
  7. 애플리케이션의 변조 감지 장치에 있어서,
    가상 머신 또는 운영 체제 중 적어도 하나에 의해 실행되는 실행 코드를 포함하는 애플리케이션의 패키지를 저장하는 저장부; 및
    상기 저장된 애플리케이션의 패키지로부터 실행 코드를 추출하여 설치하고, 상기 추출된 실행코드가 설치된 이후, 애플리케이션의 실행 명령을 수신하면, 상기 애플리케이션의 패키지로부터 실행 코드를 재 추출하고, 상기 설치된 실행 코드와 상기 재 추출된 실행 코드가 일치하지 않으면, 미리 설정된 동작을 수행하는 제어부를 포함하는 애플리케이션 변조 감지 장치.
  8. 제7항에 있어서,
    상기 제어부는
    애플리케이션의 패키지로부터 실행 코드를 재 추출하기 이전에,
    상기 추출된 실행코드가 설치된 이후, 애플리케이션의 실행 명령을 수신하면, 상기 애플리케이션의 패키지의 서명을 검증하고,
    상기 애플리케이션의 패키지의 서명이 유효하지 않은 경우 상기 애플리케이션이 변조됐음을 지시하는 기록을 저장하는 것을 특징으로 하는 애플리케이션 변조 감지 장치.
  9. 제7항에 있어서,
    상기 제어부는, 상기 설치된 실행 코드와 상기 재 추출된 실행 코드가 일치하지 않으면, 상기 애플리케이션이 변조됐음을 지시하는 기록을 저장하는 것을 특징으로 하는 애플리케이션 변조 감지 장치.
  10. 제7항에 있어서,
    상기 제어부는, 상기 설치된 실행 코드와 상기 재 추출된 실행 코드가 일치하지 않으면, 상기 애플리케이션이 실행되지 않도록 실행을 중단시키는 것을 특징으로 하는 애플리케이션 변조 감지 장치.
  11. 제7항에 있어서,
    상기 제어부는, 상기 설치된 실행 코드와 상기 재 추출된 실행 코드가 일치하지 않으면, 상기 애플리케이션이 활용하는 기능을 상기 애플리케이션에 제공하지 않도록 제어하는 것을 특징으로 하는 애플리케이션 변조 감지 장치.
  12. 제7항에 있어서,
    상기 제어부는, 상기 설치된 실행 코드와 상기 재 추출된 실행 코드가 일치하지 않으면, 상기 애플리케이션이 변조됐음을 운영 체제에 통지하는 것을 특징으로 하는 애플리케이션 변조 감지 장치.
KR1020120019115A 2012-02-24 2012-02-24 애플리케이션의 변조 감지 방법 및 장치 KR101944010B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120019115A KR101944010B1 (ko) 2012-02-24 2012-02-24 애플리케이션의 변조 감지 방법 및 장치
US13/767,294 US9245109B2 (en) 2012-02-24 2013-02-14 Method and apparatus for detecting tampered application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120019115A KR101944010B1 (ko) 2012-02-24 2012-02-24 애플리케이션의 변조 감지 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20130101657A KR20130101657A (ko) 2013-09-16
KR101944010B1 true KR101944010B1 (ko) 2019-01-30

Family

ID=49004806

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120019115A KR101944010B1 (ko) 2012-02-24 2012-02-24 애플리케이션의 변조 감지 방법 및 장치

Country Status (2)

Country Link
US (1) US9245109B2 (ko)
KR (1) KR101944010B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101350390B1 (ko) * 2013-08-14 2014-01-16 숭실대학교산학협력단 코드 난독화 장치 및 그 방법
US9659156B1 (en) * 2014-03-20 2017-05-23 Symantec Corporation Systems and methods for protecting virtual machine program code
KR101477050B1 (ko) * 2014-05-28 2015-01-08 충남대학교산학협력단 메모리 덤프 기법을 이용한 어플리케이션의 실행코드 추출 방법
KR101799366B1 (ko) 2015-03-13 2017-11-22 주식회사 에버스핀 다이나믹 보안모듈 서버장치 및 그 구동방법
KR101673772B1 (ko) * 2015-05-29 2016-11-07 현대자동차주식회사 전자식 유압 브레이크 장치 및 그 제어 방법
KR101666176B1 (ko) * 2015-06-25 2016-10-14 한국전자통신연구원 안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법
CN105117641B (zh) * 2015-08-20 2018-04-27 上海斐讯数据通信技术有限公司 一种防止截获系统接口的系统及方法
CN109725907A (zh) * 2019-01-03 2019-05-07 百度在线网络技术(北京)有限公司 预置应用的安装方法、装置、设备及计算机可读介质
CN109815650B (zh) * 2019-01-18 2022-06-24 深圳智游网安科技有限公司 基于iOS调用framework的方法、装置及介质
CN110362990A (zh) * 2019-05-31 2019-10-22 口碑(上海)信息技术有限公司 应用安装的安全处理方法、装置及系统
CN111353148B (zh) * 2020-02-07 2022-10-14 贝壳技术有限公司 一种确定应用程序是否被重打包的方法及设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1333350A1 (en) * 2002-01-30 2003-08-06 STMicroelectronics Limited Memory security device
JP3866597B2 (ja) * 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法
US7346780B2 (en) * 2002-04-03 2008-03-18 Microsoft Corporation Integrity ordainment and ascertainment of computer-executable instructions
TWI222818B (en) * 2003-01-30 2004-10-21 Jiun-Feng Li Software protection method and device
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
KR20060005529A (ko) * 2004-07-13 2006-01-18 엘지엔시스(주) 하드 디스크의 일련번호를 이용한 프로그램의 실행 제어방법
US7552342B1 (en) * 2005-02-16 2009-06-23 Rennie Glen Software, Llc Method and system for increasing the tamper resistance of a software application
GB0516471D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Protected software identifiers for improving security in a computing device
US8818897B1 (en) * 2005-12-15 2014-08-26 Rockstar Consortium Us Lp System and method for validation and enforcement of application security
US8869142B2 (en) * 2006-01-27 2014-10-21 Microsoft Corporation Secure content publishing and distribution
KR100849334B1 (ko) * 2006-10-31 2008-07-29 삼성전자주식회사 이동 단말의 불법 사용을 방지하기 위한 방법 및 장치
US7841010B2 (en) * 2007-01-08 2010-11-23 Apple Inc. Software or other information integrity verification using variable block length and selection
US8671459B2 (en) * 2007-02-23 2014-03-11 Malcolm H. Nooning, III Prevention of software piracy using unique internal intelligence with every software application copy
US20080235802A1 (en) * 2007-03-21 2008-09-25 Microsoft Corporation Software Tamper Resistance Via Integrity-Checking Expressions
US9275401B2 (en) * 2007-09-06 2016-03-01 Adobe Systems Incorporated Tamper resistant video rendering
WO2010093071A1 (ko) * 2009-02-12 2010-08-19 주식회사 안철수연구소 인터넷 사이트 보안 시스템 및 그 방법
US9213826B2 (en) * 2009-11-13 2015-12-15 Irdeto B.V. System and method to protect Java bytecode code against static and dynamic attacks within hostile execution environments
US8850526B2 (en) * 2010-06-23 2014-09-30 K7 Computing Private Limited Online protection of information and resources
US9792429B2 (en) * 2010-10-06 2017-10-17 Red Hat, Inc. Detection of malicious software packages
KR101751227B1 (ko) * 2011-04-25 2017-06-29 삼성전자주식회사 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법
US8806643B2 (en) * 2012-01-25 2014-08-12 Symantec Corporation Identifying trojanized applications for mobile environments

Also Published As

Publication number Publication date
KR20130101657A (ko) 2013-09-16
US9245109B2 (en) 2016-01-26
US20130227688A1 (en) 2013-08-29

Similar Documents

Publication Publication Date Title
KR101944010B1 (ko) 애플리케이션의 변조 감지 방법 및 장치
Brocker et al. {iSeeYou}: Disabling the {MacBook} webcam indicator {LED}
US20160142437A1 (en) Method and system for preventing injection-type attacks in a web based operating system
US20130031631A1 (en) Detection of unauthorized device access or modifications
US9584476B2 (en) Safety protection method, firewall, terminal device and computer-readable storage medium
US10176327B2 (en) Method and device for preventing application in an operating system from being uninstalled
KR102125923B1 (ko) 전자 장치의 운영체제 업그레이드 방법 및 장치
KR20170105353A (ko) 전자장치 및 그 제어방법
CN109558734B (zh) 一种堆栈安全性的检测方法及装置、移动设备
KR20140044991A (ko) 사용자 디바이스에서 어플리케이션 관리 방법 및 장치
KR102291719B1 (ko) 애플리케이션 보호 방법 및 장치
US11762983B2 (en) Payment application isolation method and apparatus, and terminal
US9563747B2 (en) Method for providing DRM service and electronic device thereof
US20220335107A1 (en) Method for Processing Application Program and Related Product
CN111199039A (zh) 应用程序的安全性校验方法、装置及终端设备
EP3021252A1 (en) Method and apparatus for preventing injection-type attack in web-based operating system
US9684790B2 (en) Application processing apparatus and method for mobile terminal
US9680853B2 (en) Apparatus and method for preventing malicious code in electronic device
KR102516345B1 (ko) 데이터 변조 판단 방법 및 이를 지원하는 전자 장치
CN113747244A (zh) 多媒体数据的保护方法、终端设备及服务器
US9043871B2 (en) Method for operating invisible system services on android platform
CN108959938B (zh) 检测漏洞利用的方法、装置、存储介质及设备
EP3523745B1 (en) Electronic device, method for controlling thereof and computer-readable recording medium
CN112905260A (zh) 一种应用启动方法、装置、电子设备及存储介质
KR102018960B1 (ko) 이중 패킹을 이용한 코드 난독화

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