KR102175784B1 - 모바일 어플리케이션의 취약점 자동 진단 장치 및 방법 - Google Patents

모바일 어플리케이션의 취약점 자동 진단 장치 및 방법 Download PDF

Info

Publication number
KR102175784B1
KR102175784B1 KR1020190148482A KR20190148482A KR102175784B1 KR 102175784 B1 KR102175784 B1 KR 102175784B1 KR 1020190148482 A KR1020190148482 A KR 1020190148482A KR 20190148482 A KR20190148482 A KR 20190148482A KR 102175784 B1 KR102175784 B1 KR 102175784B1
Authority
KR
South Korea
Prior art keywords
application
check
analysis unit
checked
dynamic analysis
Prior art date
Application number
KR1020190148482A
Other languages
English (en)
Other versions
KR20200080131A (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 주식회사 엠시큐어
Publication of KR20200080131A publication Critical patent/KR20200080131A/ko
Application granted granted Critical
Publication of KR102175784B1 publication Critical patent/KR102175784B1/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/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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 명세서는 모바일 어플리케이션의 취약점 점검을 보다 간편하게 할 수 있는 장치 및 방법을 개시한다. 본 명세서에 따른 모바일 어플리케이션 점검 장치는, 점검 대상 어플리케이션을 메모리에 저장시키는 실행파일 업로드부; 상기 점검 대상 어플리케이션의 자체 소스 코드를 통해 권한 설정 점검 또는 소스코드 난독화 점검을 수행하는 정적 분석부; 및 상기 점검 대상 어플리케이션이 실행되는 과정에서 위변조 차단 점검, 보안솔류션 점검, 디버깅 탐지/차단 점검 및 정보노출 점검 중 적어도 어느 하나를 수행하는 동적 분석부;를 포함할 수 있다.

Description

모바일 어플리케이션의 취약점 자동 진단 장치 및 방법{AUTOMATICALLY DIAGNOSIS APPARATUS AND METHOD FOR VULNERABILITIES OF MOBILE APPLICATION}
본 발명은 모바일 어플리케이션의 취약점을 진단하는 장치 및 방법에 관한 것이다.
모바일 디바이스가 널리 사용되면서, 다양한 종류의 모바일 어플리케이션이 제작되고 다양한 사람이 자신의 모바일 디바이스에 설치하여 사용하고 있다. 현대 사회에서 모바일 디바이스는 금융거래 등 다양한 일상 속에서 필수적으로 사용되며, 개인의 민감한 정보를 포함하고 있기도 하다. 따라서, 모바일 디바이스에 설치되는 모바일 어플리케이션은 개발 후 출시 전 여러 가지 해킹의 위협으로부터 어플리케이션을 보호하기 위해 취약점이 있는지, 어플리케이션 자체가 불필요한 정보를 요구하지 않는지 또는 과도한 권한이 필요한지 등 점검을 진행해야 한다.
종래에는 모바일 어플리케이션에 대한 전문가가 다양한 도구를 이용하여 점검 항목별 취약점 점검을 일일이 하기 때문에, 전문가의 많은 시간이 소요되는 단점이 있다. 따라서, 전문가의 시간을 아끼고, 일일이 점검하는 불편함을 제거하며, 사람의 실수를 방지할 수 있는 방법이 필요하다.
대한미국 등록특허공보 제10-1568224호
본 명세서는 모바일 어플리케이션의 취약점 점검을 보다 간편하게 할 수 있는 장치 및 방법을 제공하는 것을 목적으로 한다.
본 명세서는 상기 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 명세서에 따른 모바일 어플리케이션 점검 장치는, 점검 대상 어플리케이션을 메모리에 저장시키는 실행파일 업로드부; 상기 점검 대상 어플리케이션의 자체 소스 코드를 통해 권한 설정 점검 또는 소스코드 난독화 점검을 수행하는 정적 분석부; 및 상기 점검 대상 어플리케이션이 실행되는 과정에서 위변조 차단 점검, 보안솔류션 점검, 디버깅 탐지/차단 점검 및 정보노출 점검 중 적어도 어느 하나를 수행하는 동적 분석부;를 포함할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 정적 분석부는 상기 권한 설정 점검을 위해 점검 대상 어플리케이션이 요구하는 권한과 사용 함수를 비교하여 불필요하거나 과도한 권한이 설정되었는지 여부를 판단할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 정적 분석부는 상기 소스코드 난독화 점검을 위해 클래스 및 매소드 명칭이 약식 명칭으로 대체되었는지 여부를 통해 소스코드 난독화 여부를 판단할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 위변조 차단 점검을 위해 점검 대상 어플리케이션의 리소스 또는 소스코드를 수정하고, 수정된 점검 대상 어플리케이션의 정상 실행 여부를 통해 위변조 차단 여부를 판단할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 보안솔루션 점검을 위해 내부 저장소 내 보안솔루션들의 데이터베이스 구축 후 해당 보안 제품들이 실행되지 여부를 통해 보안솔루션의 사용 여부를 판단할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 디버깅 탐지/차단 점검을 위해 점검 대상 어플리케이션의 프로세서에 접근할 때 정상 작동 여부를 통해 디버깅 탐지/차단 여부를 판단할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 정보노출 점검을 위해 미리 설정된 문자열이 점검 대상 어플리케이션의 내부 저장소에서 검색되는지 여부를 통해 중요 정보가 노출되는지 여부를 판단할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 정보노출 점검을 위해 미리 설정된 문자열이 모바일 디바이스 내 구축된 VPN 서버를 통해 점검 대상 어플리케이션에서 송수신되는 패킷에서 검색되는지 여부를 통해 중요 정보가 노출되는지 여부를 판단할 수 있다.
본 명세서의 일 실시예에 따르면, 모바일 단말기와 데이터를 송수신하는 통신부;를 더 포함하고, 상기 동적 분석부는 상기 점검 대상 어플리케이션을 상기 통신부를 통해 연결된 모바일 단말기에서 실행시킬 수 있다.
이 경우, 영상을 출력하는 디스플레이부;를 더 포함하고, 상기 동적 분석부는, 상기 모바일 단말기에서 실행되는 점검 대상 어플리케이션의 실행 화면을 상기 디스플레이부에 출력하도록 제어할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 명세서에 따르면, 사람이 많은 시간을 들여서 일일이 다양한 도구를 활용하여 체크리스트를 통해 취약점 점검을 해야 하는 불편함 없이, 간편하게 비 전문가도 간단한 취약점 점검을 할 수 있는 장점이 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 명세서에 따른 모바일 어플리케이션 점검 장치의 구성을 개략적으로 도시한 블럭도이다.
도 2는 본 명세서의 일 실시예에 따른 권한 설정 점검의 흐름도이다.
도 3은 본 명세서의 일 실시예에 따른 소스코드 난독화 점검의 흐름도이다.
도 4는 본 명세서의 일 실시예에 따른 위변조 차단 점검의 흐름도이다.
도 5는 본 명세서의 일 실시예에 따른 보안솔루션 점검의 흐름도이다.
도 6은 본 명세서의 일 실시예에 따른 디버깅 탐지/차단 점검의 흐름도이다.
도 7은 본 명세서의 일 실시예에 따라 내부 저장소에 저장된 정보의 노출 점검 흐름도이다.
도 8은 본 명세서의 일 실시예에 따라 로그 내 정보의 노출 점검 흐름도이다.
도 9는 본 명세서의 일 실시예에 따라 네트워크 통신 구간에서 정보의 노출 점검 흐름도이다.
본 명세서에 개시된 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 명세서가 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 명세서의 개시가 완전하도록 하고, 본 명세서가 속하는 기술 분야의 통상의 기술자(이하 '당업자')에게 본 명세서의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 명세서의 권리 범위는 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 명세서의 권리 범위를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 명세서가 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
모바일 어플리케이션을 개발 후 출시 전 여러 가지 해킹의 위협으로부터 어플리케이션을 보호하기 위해 취약점 점검이 필요하다. 기존에는 사람이 일일이 다양한 도구를 활용하여 체크리스트를 통해 취약점 점검을 진행하므로 전문가가 많은 시간을 들여서 진행해야 하는 불편함이 있었다.
본 명세서 출원 당시, 안드로이드는 윈도우나 리눅스등을 통해 Android USB 케이블을 이용한 통신으로 취약점 점검 명령을 내리고 점검 결과 수집을 하고, iOS의 경우는 Mac에서만 USB 연결 및 통신이 원할한 관계로 Mac에서만 취약점 점검을 진행하게 된다. 또한, Mac의 경우에는 관리 수집 용도의 서버로 쓰기에는 OS 한계가 존재하기 때문에 취약점 점검을 별도의 PC로 진행하여 취약점 점검 명령이나 결과를 두 대의 PC에서 따로 관리하여야 하는 단점이 있다.
반면, 본 명세서에 따른 모바일 어플리케이션 점검 장치 및 방법은 안드로이드 단말기 또는 iOS 단말기와 직접 유선 연결할 필요 없이, 무선 연결된 상태에서 점검이 가능하다. 따라서, 하나의 모바일 어플리케이션 점검 장치 즉, 한대의 PC에서 네트워크 통신을 통해 안드로이드, iOS 두개의 운영체제에 단말기에 명령을 내리고 정보를 수집할 수 있는 장점이 있다. 나아가, 하나의 모바일 어플리케이션 점검 장치에서 안드로이드, iOS 구분없이 여러 대의 단말기를 동시에 취약점 점검 명령을 내리고 점검 이력을 관리 할 수 있는 장점이 있다.
도 1은 본 명세서에 따른 모바일 어플리케이션 점검 장치의 구성을 개략적으로 도시한 블럭도이다.
도 1을 참조하면, 본 명세서에 따른 모바일 어플리케이션 점검 장치는 실행파일 업로드부, 정적 검사부 및 동적 검사부를 포함할 수 있다. 또한, 상기 모바일 어플리케이션 점검 장치는 모바일 단말기와 데이터를 송수신하는 통신부(도면 `미도시) 또는 영상을 출력하는 디스플레이부(도면 미도시)를 더 포함할 수 있다. 상기 통신부는 모바일 단말기와 무선으로 데이터를 송수신할 수 있고, 어플리케이션이 저장된 서버와 유선으로 데이터를 송수신할 수도 있다.
상기 실행파일 업로드부는 점검 대상 어플리케이션을 메모리에 저장시킬 수 있다. 상기 점검 대상 어플리케이션은 모바일 단말기 또는 어플리케이션이 저장된 서버로부터 다운받을 수 있다. 안드로이드 운영체계의 경우 점검 대상 어플리케이션의 실행 파일은 APK 파일이고, iOS 운영체계의 경우 점검 대상 어플리케이션의 실행 파일은 IPA 파일이다.
어플리케이션의 점검은 정적 검사와 동적 검사로 구분될 수 있다. 정적 검사는 어플리케이션의 실행 파일 자체를 분석하여 취약점 유무를 판단하는 검사이다. 동적 검사는 어플리케이션을 모바일 단말기에 업로드시킨 후 실행과정에서 취약점 유무를 판단하는 검사이다. 상기 정적 분석부는 상기 점검 대상 어플리케이션의 자체 소스 코드를 통해 권한 설정 점검 또는 소스코드 난독화 점검을 수행할 수 있다. 상기 동적 분석부는 기 점검 대상 어플리케이션이 실행되는 과정에서 위변조 차단 점검, 보안솔류션 점검, 디버깅 탐지/차단 점검 및 정보노출 점검 중 적어도 어느 하나를 수행할 수 있다. 본 명세서에서는 정적 분석부에서 수행할 수 있는 사항에 대해서 먼저 설명하고, 동적 분석부에서 수행할 수 있는 사항에 대해서 순서대로 설명하겠다.
도 2는 본 명세서의 일 실시예에 따른 권한 설정 점검의 흐름도이다.
본 명세서의 일 실시예에 따르면, 상기 정적 분석부는 상기 권한 설정 점검을 위해 점검 대상 어플리케이션이 요구하는 권한과 사용 함수를 비교하여 불필요하거나 과도한 권한이 설정되었는지 여부를 판단할 수 있다.
도 2를 참조하면, APK 파일이 일 예로 도시된 것을 확인할 수 있다. 이해의 편의를 위해 안드로이드 운영 체계의 APK 파일을 예시로 설명하겠다. 상기 정적 분석부는 APK의 압축을 해제하고 내부의 AndroidMenifest.xml을 확인하여 권한(Permission) 항목들을 목록화할 수 있다. 또한, 상기 정적 분석부는 내부의 실행파일인 DEX파일에서 smali 코드 혹은 파일내의 사용함수를 직접 확인하여 권한(Permission)에서 사용되는 함수들이 실제로 존재하는지 여부를 비교할 수 있다. 만약 권한이 있지만 발견되지 않는 함수가 있다면, 상기 정적 분석부는 불필요하거나 과도한 권한이 설정된 것으로 판단할 수 있다.
도 3은 본 명세서의 일 실시예에 따른 소스코드 난독화 점검의 흐름도이다.
본 명세서의 일 실시예에 따르면, 상기 정적 분석부는 상기 소스코드 난독화 점검을 위해 클래스 및 매소드 명칭이 약식 명칭으로 대체되었는지 여부를 통해 소스코드 난독화 여부를 판단할 수 있다.
도 5를 참조하면, 상기 정적 분석부는 APK파일의 압축을 해제 후 DEX파일을 추출할 수 있다. 그리고 상기 정적 분석부는 해당 DEX파일의 smali 코드나 파일 포맷 분석하여 클래스, 메소드 명칭 및 변수들을 확인할 수 있다. 이때 상기 정적 분석부는 상기 결과 클래스, 메소드 명칭 및 변수들과 관련하여 a, b, c등과 같은 약식 명칭들이 다량 발견된다면 소스코드 난독화가 되어있다고 판단하고, 일반적인 정상 명칭이 발견되면 소스코드 난독화가 되어 있지 않은 것으로 판단할 수 있다. 상기 정적 분석부는 약식 명칭이 미리 설정된 개수 이상 또는 미리 설정된 비율 이상인지 여부에 따라 소스코드 난독화를 판단할 수 있다. 또한, 상기 정적 분석부는 미리 설정된 클래스 및 메소드 일반 명칭이 존재하는지 여부에 따라 소스코드 난독화를 판단할 수 있다.
상기 정적 분석부는 상기 권한 설정 점검 또는 소스코드 난독화 점검 중 어느 하나만을 수행할 수 있고, 상기 권한 설정 점검 및 소스코드 난독화 점검을 모두 수행할 수 있다. 또한, 상기 권한 설정 점검 및 소스코드 난독화 점검 과정에서 DEX 추출, Smali 변경, 파일 포맷 분석 과정이 일치하는바, 상기 정적 분석부는 상기 과정을 일회 수행하고 그 결과를 상기 권한 설정 점검 및 소스코드 난독화 점검에 각각 활용할 수 있다.
이하에서는, 상기 동적 분석부에서 수행할 수 있는 사항에 대해서 설명하도록 하겠다. 이 경우, 상기 동적 분석부는 상기 점검 대상 어플리케이션을 상기 통신부를 통해 연결된 모바일 단말기에서 실행시킬 수 있다.
도 4는 본 명세서의 일 실시예에 따른 위변조 차단 점검의 흐름도이다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 위변조 차단 점검을 위해 점검 대상 어플리케이션의 리소스 또는 소스코드를 수정하고, 수정된 점검 대상 어플리케이션의 정상 실행 여부를 통해 위변조 차단 여부를 판단할 수 있다.
안드로이드 운영 체계의 경우, APK 실행파일 내에 악성코드 등을 삽입하여 재 배포하는 등의 취약점이 알려져 있다. 도 4를 참조하면, 상기 동적 분석부는 APK 실행파일의 압축을 해제 후 내부의 리소스나 소스코드를 수정 후 재 압축할 수 있다. 이때 상기 동적 분석부는 미리 저장된 수정 프로세스에 의해서 특정 부분을 수정할 수 있다. 상기 미리 저장된 수정 프로세서는 미리 정해놓은 코드를 삽입하거나, 임의 한 줄을 변경하는 방식이 될 수 있다. 이후 상기 동적 분석부는 테스트키를 이용하여 서명 후 설치 및 실행이 정상적으로 작동하는지 확인할 수 있다. 상기 동적 분석부는 소스코드가 변형된 실행 파일이 정상적으로 실행되는 경우, 해당 점검 대상 어플리케이션은 위변조 차단에 취약한 것을 판단할 수 있다.
도 5는 본 명세서의 일 실시예에 따른 보안솔루션 점검의 흐름도이다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 보안솔루션 점검을 위해 내부 저장소 내 보안솔루션들의 데이터베이스 구축 후 해당 보안 제품들이 실행되지 여부를 통해 보안솔루션의 사용 여부를 판단할 수 있다.
도 5를 참조하면, 본 명세서의 일 실시예에 따른 동적 분석부는 내부 저장소 내 보안솔루션들의 데이터베이스 구축하고, 해당 보안 제품들이 실행되어 있는지 확인할 수 있다. 이때, 해당 보안 솔루션이 실행되지 않는 경우, 상기 동적 분석부는 당연히 보안 솔루션을 사용하지 않는 것으로 판단한다. 반면, 해당 보안 솔루션이 실행되는 경우, 상기 동적 분석부는 해당 보안 솔루션의 프로세스 제거 후 다시 실행되는지 여부를 확인할 수 있다. 이때, 해당 보안 솔루션이 다시 실행되지 않는 경우, 상기 동적 분석부는 당연히 보안 솔루션을 사용하지 않는 것으로 판단한다. 반면, 해당 보안 솔루션이 다시 실행되는 경우, 상기 동적 분석부는 점검 대상 어플리케이션이 보안솔루션의 사용하는 것을 판단할 수 있다.
도 6은 본 명세서의 일 실시예에 따른 디버깅 탐지/차단 점검의 흐름도이다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 디버깅 탐지/차단 점검을 위해 점검 대상 어플리케이션의 프로세서에 접근할 때 정상 작동 여부를 통해 디버깅 탐지/차단 여부를 판단할 수 있다.
도 6을 참조하면, 상기 동적 분석부는 점검 대상 어플리케이션을 모바일 디바이스에서 실행시킬 수 있다. 그리고 상기 동적 분석부는 실행중인 점검 대상 어플리케이션의 프로세스에 접근할 수 있다. 보다 구체적으로 상기 동적 분석부는 점검 대상 어플리케이션의 프로세스의 id(pid)를 확인하고, 메모리를 분헉하여 프로그램 상의 ptrace 기능을 이용해서 Attach를 진행할 수 있다. 이 때, 점검 대상 어플리케이션이 정상 작동된다면, 상기 동적 분석부는 점검 대상 어플리케이션이 디버깅 탐지/차단에 취약한 것을 판단할 수 있다. 반면, 점검 대상 어플리케이션이 종료된다면, 동적 분석부는 점검 대상 어플리케이션이 디버깅 탐지/차단이 가능한 것으로 판단할 수 있다. 정상 작동 종료된다면 차단되는 것으로 판단한다.
도 7은 본 명세서의 일 실시예에 따라 내부 저장소에 저장된 정보의 노출 점검 흐름도이다.
도 8은 본 명세서의 일 실시예에 따라 로그 내 정보의 노출 점검 흐름도이다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 정보노출 점검을 위해 미리 설정된 문자열이 점검 대상 어플리케이션의 내부 저장소에서 검색되는지 여부를 통해 중요 정보가 노출되는지 여부를 판단할 수 있다.
도 7을 참조하면, 상기 동적 분석부는 먼저 검색될 중요정보 문자열을 설정할 수 있다. 상기 문자열은 정규식 등으로 설정될 수도 있다. 안드로이드 운영 체계의 경우, 상기 동적 분석부는 실행파일의 소스코드가 저장된 DEX파일을 검색하여 소스코드내 중요정보를 검색할 수 있고, 안드로이드 리소스가 저장된 res 폴더, 저장정보를 포함하는 assets 폴더를 검색할 수 있다. iOS 운영 체계의 경우, 상기 동적 분석부는 설치 파일인 IPA내에 상기 중요정보로 설정된 문자열이 있는지 확인할 수 있다.
도 8을 참조하면, 상기 동적 분석부는, 동일하게, 먼저 검색될 중요정보 문자열을 설정할 수 있다. 안드로이드 운영 체계의 경우, 안드로이드 단말기의 로그는 logcat을 이용하여 볼 수 있다. 상기 동적 분석부는 해당 로그에서 점검 대상 어플리케이션을 실행하면서 종료 할 때까지 설정된 중요정보 문자열이 발견되는지 확인할 수 있다.
도 9는 본 명세서의 일 실시예에 따라 네트워크 통신 구간에서 정보의 노출 점검 흐름도이다.
본 명세서의 일 실시예에 따르면, 상기 동적 분석부는 상기 정보노출 점검을 위해 미리 설정된 문자열이 모바일 디바이스 내 구축된 VPN 서버를 통해 점검 대상 어플리케이션에서 송수신되는 패킷에서 검색되는지 여부를 통해 중요 정보가 노출되는지 여부를 판단할 수 있다.
VPN을 이용하면 해당 단말이 아닌 점검 대상 어플리케이션의 네트워크 통신을 정확히 구분하여 탐지할 수 있다. 따라서, 상기 동적 분석부는 점검 대상 어플리케이션이 설치된 모바일 단말기 내 VPN 서버를 구축할 수 있다. 그리고 상기 동적 분석부는 상기 점검 대상 어플리케이션이 단말기 내부의 VPN 서버를 통하여 접속하도록 할 수 있다. 이때, 상기 점검 대상 어플리케이션이 실행되면, 상기 동적 분석부는 송수신되는 패킷에서 설정된 중요정보 문자열이 검출되는지 여부를 확인할 수 있다. 추가적으로 상기 동적 분석부는 https나 SSL통신등 암호 통신 사용 여부를 확인할 수 있다.
한편, 상기 동적 분석부는 상기 모바일 단말기에서 실행되는 점검 대상 어플리케이션의 실행 화면을 상기 디스플레이부에 출력하도록 제어할 수 있다. 안드로이드 운영 체계의 경우, AM, PM등 명령어를 이용하여 점검 대상 어플리케이션의 화면을 상기 디스플레이부에 출력할 수 있다.
이상, 첨부된 도면을 참조로 하여 본 명세서의 실시예를 설명하였지만, 본 명세서가 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.

Claims (10)

  1. 점검 대상 어플리케이션을 메모리에 저장시키는 실행파일 업로드부;
    상기 점검 대상 어플리케이션의 APK파일의 압축을 해제 후 DEX 파일을 추출하고, 해당 DEX 파일의 smali 코드나 파일 포맷 분석 과정을 일회 수행하고, 그 결과를 이용하여 자체 소스 코드를 통해 권한 설정 점검 및 소스코드 난독화 점검을 수행하는 정적 분석부; 및
    상기 점검 대상 어플리케이션이 실행되는 과정에서 위변조 차단 점검, 보안솔루션 점검, 디버깅 탐지/차단 점검 및 정보노출 점검 중 적어도 어느 하나를 수행하는 동적 분석부;를 포함하는 모바일 어플리케이션 점검 장치로서,
    상기 정적 분석부는,
    상기 권한 설정 점검을 위해 점검 대상 어플리케이션이 요구하는 권한과 사용 함수를 비교하여 불필요하거나 과도한 권한이 설정되었는지 여부를 판단하고,
    상기 정적 분석부는, 상기 소스코드 난독화 점검을 위해 미리 설정된 클래스 및 메소드 일반 명칭이 존재하는지 여부 또는 약식 명칭이 미리 설정된 개수 이상 또는 미리 설정된 비율 이상인지 여부에 따라 소스코드 난독화를 판단하는 것을 특징으로 하는 모바일 어플리케이션 점검 장치.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    상기 동적 분석부는, 상기 위변조 차단 점검을 위해 점검 대상 어플리케이션의 리소스 또는 소스코드를 수정하고, 수정된 점검 대상 어플리케이션의 정상 실행 여부를 통해 위변조 차단 여부를 판단하는 모바일 어플리케이션 점검 장치.
  5. 청구항 1에 있어서,
    상기 동적 분석부는, 상기 보안솔루션 점검을 위해 내부 저장소 내 보안솔루션들의 데이터베이스 구축 후 해당 보안 제품들이 실행되지 여부를 통해 보안솔루션의 사용 여부를 판단하는 모바일 어플리케이션 점검 장치.
  6. 청구항 1에 있어서,
    상기 동적 분석부는, 상기 디버깅 탐지/차단 점검을 위해 점검 대상 어플리케이션의 프로세서에 접근할 때 정상 작동 여부를 통해 디버깅 탐지/차단 여부를 판단하는 모바일 어플리케이션 점검 장치.
  7. 청구항 1에 있어서,
    상기 동적 분석부는, 상기 정보노출 점검을 위해 미리 설정된 문자열이 점검 대상 어플리케이션의 내부 저장소에서 검색되는지 여부를 통해 중요 정보가 노출되는지 여부를 판단하는 모바일 어플리케이션 점검 장치.
  8. 청구항 1에 있어서,
    상기 동적 분석부는, 상기 정보노출 점검을 위해 미리 설정된 문자열이 모바일 디바이스 내 구축된 VPN 서버를 통해 점검 대상 어플리케이션에서 송수신되는 패킷에서 검색되는지 여부를 통해 중요 정보가 노출되는지 여부를 판단하는 모바일 어플리케이션 점검 장치.
  9. 청구항 1에 있엇서,
    모바일 단말기와 데이터를 송수신하는 통신부;를 더 포함하고,
    상기 동적 분석부는, 상기 점검 대상 어플리케이션을 상기 통신부를 통해 연결된 모바일 단말기에서 실행시키는 모바일 어플리케이션 점검 장치.
  10. 청구항 9에 있어서,
    영상을 출력하는 디스플레이부;를 더 포함하고,
    상기 동적 분석부는, 상기 모바일 단말기에서 실행되는 점검 대상 어플리케이션의 실행 화면을 상기 디스플레이부에 출력하도록 제어하는 모바일 어플리케이션 점검 장치.
KR1020190148482A 2018-12-26 2019-11-19 모바일 어플리케이션의 취약점 자동 진단 장치 및 방법 KR102175784B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180169815 2018-12-26
KR1020180169815 2018-12-26

Publications (2)

Publication Number Publication Date
KR20200080131A KR20200080131A (ko) 2020-07-06
KR102175784B1 true KR102175784B1 (ko) 2020-11-06

Family

ID=71571322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190148482A KR102175784B1 (ko) 2018-12-26 2019-11-19 모바일 어플리케이션의 취약점 자동 진단 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102175784B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101277517B1 (ko) * 2012-12-04 2013-06-21 주식회사 안랩 애플리케이션 위/변조 탐지장치 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110036154A (ko) * 2009-10-01 2011-04-07 엘지전자 주식회사 애플리케이션 스토리지 서버 및 그 운용 방법
KR20130051116A (ko) * 2011-11-09 2013-05-20 한국전자통신연구원 애플리케이션 보안성 점검 자동화 장치 및 방법
KR101401938B1 (ko) * 2012-10-09 2014-06-27 에스케이플래닛 주식회사 어플리케이션 테스트 지원 시스템 및 방법, 이를 지원하는 장치
KR101568224B1 (ko) 2014-12-26 2015-11-11 고려대학교 산학협력단 소프트웨어 취약점 분석방법 및 분석장치
KR101794016B1 (ko) * 2015-10-15 2017-11-08 주식회사 비디 분산 컴퓨팅 기반의 어플리케이션 객체 분석 방법, 이를 수행하는 어플리케이션 객체 분석 서버 및 이를 저장하는 기록매체

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101277517B1 (ko) * 2012-12-04 2013-06-21 주식회사 안랩 애플리케이션 위/변조 탐지장치 및 방법

Also Published As

Publication number Publication date
KR20200080131A (ko) 2020-07-06

Similar Documents

Publication Publication Date Title
US11068602B2 (en) Server and method for checking vulnerability of mobile application
US9386027B2 (en) Detection of pileup vulnerabilities in mobile operating systems
CN104182688A (zh) 基于动态激活及行为监测的Android恶意代码检测装置和方法
CN111611591B (zh) 一种固件漏洞的检测方法、装置、存储介质及电子设备
US20150229673A1 (en) Apparatus and method for diagnosing malicious applications
US20160142437A1 (en) Method and system for preventing injection-type attacks in a web based operating system
CN110929264B (zh) 漏洞检测方法、装置、电子设备及可读存储介质
CN108763951B (zh) 一种数据的保护方法及装置
CN110417718B (zh) 处理网站中的风险数据的方法、装置、设备及存储介质
US8813229B2 (en) Apparatus, system, and method for preventing infection by malicious code
US20160197950A1 (en) Detection system and method for statically detecting applications
JP6000465B2 (ja) プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法
US11609985B1 (en) Analyzing scripts to create and enforce security policies in dynamic development pipelines
EP4158555A1 (en) Undetectable sandbox for malware
KR101388053B1 (ko) 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법, 그리고 이를 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
CN105791250B (zh) 应用程序检测方法及装置
CN113158197A (zh) 一种基于主动iast的sql注入漏洞检测方法、系统
CN115168847A (zh) 应用补丁生成方法、装置、计算机设备及可读存储介质
KR20160090566A (ko) 유효마켓 데이터를 이용한 apk 악성코드 검사 장치 및 방법
KR102156340B1 (ko) 웹 페이지 공격 차단 방법 및 장치
KR102175784B1 (ko) 모바일 어플리케이션의 취약점 자동 진단 장치 및 방법
JP6018344B2 (ja) 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム
JP6258189B2 (ja) 特定装置、特定方法および特定プログラム
KR101382549B1 (ko) 모바일 환경에서 sns 콘텐츠의 사전 검증 방법
KR102145324B1 (ko) 라이브러리 인젝션을 통한 취약점 분석 방법 및 서버

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant