KR101640033B1 - Privacy information leak Detecting method using monitoring communication between android processes - Google Patents

Privacy information leak Detecting method using monitoring communication between android processes Download PDF

Info

Publication number
KR101640033B1
KR101640033B1 KR1020140193609A KR20140193609A KR101640033B1 KR 101640033 B1 KR101640033 B1 KR 101640033B1 KR 1020140193609 A KR1020140193609 A KR 1020140193609A KR 20140193609 A KR20140193609 A KR 20140193609A KR 101640033 B1 KR101640033 B1 KR 101640033B1
Authority
KR
South Korea
Prior art keywords
application
binder
function
personal information
ipc message
Prior art date
Application number
KR1020140193609A
Other languages
Korean (ko)
Other versions
KR20160082016A (en
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 KR1020140193609A priority Critical patent/KR101640033B1/en
Publication of KR20160082016A publication Critical patent/KR20160082016A/en
Application granted granted Critical
Publication of KR101640033B1 publication Critical patent/KR101640033B1/en

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 프로세스간 통신 모니터링 방법에 관한 것으로, 바인더 IPC 메시지를 독출하는 단계, 및 상기 바인더 IPC 메시지로부터 제 1 애플리케이션이 제 2 애플리케이션에 요구한 기능을 확인하는 단계를 포함하고, 상기 바인더 IPC 메시지는 커널 영역에서 독출되는 것을 특징으로 함으로써, 임의의 앱으로부터 개인정보가 유출되는 것을 탐지하고, 이를 경고할 수 있다.The present invention relates to a method for inter-process communication monitoring, the method comprising: reading a binder IPC message; and verifying a function requested by a first application from a second application from the binder IPC message, Is read out from the kernel area, it is possible to detect that personal information is leaked from an arbitrary app and warn it.

Description

안드로이드 프로세스간 통신 모니터링을 이용한 개인정보 유출 탐지 기법 {Privacy information leak Detecting method using monitoring communication between android processes}[0001] The present invention relates to a privacy information leak detection method using communication monitoring between processes of an Android process,

본 발명은 프로세스간 통신 모니터링 방법에 관한 것으로서, 바인더 IPC 메시지에 대한 모니터링을 이용하여 개인정보 유출을 탐지하는 방법에 관한 것이다.The present invention relates to an inter-process communication monitoring method, and more particularly, to a method for detecting personal information leakage using monitoring of a binder IPC message.

프로세스간 통신을 모니터링하기 위한 연구가 활발히 진행중에 있다. 이와 관련된 종래의 기술은 다음과 같다.Research is underway to monitor interprocess communication. Conventional techniques related to this are as follows.

첫 번째는 ‘Quire’ 제목의 논문으로 안드로이드 보안모델의 취약점을 이용하여 일종의 권한 상승 공격과 유사한 결과를 발생시키는 ‘Confused Deputy Attack’을 방지하기 위한 기술이다. 개인 정보를 요청하는 앱 및 프로세스의 권한을 체인 형태로 관리하여 개인 정보를 제공하는 앱에서 요청하는 앱 및 프로세스들의 권한이 존재하는 체인을 확인한 후, 요청 권한이 없을 경우, 정보 제공을 금지시키는 방법이다. 그러나 이 기법은 Confused Defuty 공격에 대해서만 유효할 뿐, 여러 종류의 악성코드의 행위 분석 및 모니터링은 불가능하다.The first is a paper titled 'Quire' to prevent 'Confused Deputy Attack' which is similar to a privilege elevation attack using vulnerabilities of Android security model. A method of managing the rights of apps and processes requesting personal information in the form of a chain and checking the chain in which apps and processes that request personal information are present in the app providing personal information and then prohibiting the provision of information when there is no request permission to be. However, this technique is only valid for Confused Defuty attacks, and it is impossible to analyze and monitor the behavior of various types of malicious code.

두 번째는 ‘Aurasium’ 제목의 논문으로 유저 레벨에서 일종의 샌드박스 형태로 동작하게 하여 앱의 각종 행위를 모니터링 하고 내부 정책으로 악성 행위를 방어하는 기법이다. 그러나 이 기법이 동작하려면 결국 기존 앱을 재패키징 해야 하는데, 현재 기술력 상 재 패키징 확률이 100%가 아니기 때문에 기법 적용을 못 할 수 있다.The second is a thesis titled 'Aurasium' which is a kind of sandbox-type operation at the user level to monitor various behaviors of the app and to prevent malicious behavior by internal policies. However, in order for this technique to work, it is necessary to repackage existing apps. However, since the probability of repacking is not 100% at present, the technique may not be applied.

세 번째는 ‘TaintDroid’ 제목의 논문으로 개인 정보 유출을 모니터링 하기 위한 기법이다. 플랫폼의 다양한 부분을 변경하여 개인정보의 근원인 Taint Source부터 개인정보 유출지인 Taint Sync 까지의 흐름을 추적하는 기술이다. 그러나 이를 적용하기 위해서는 플랫폼 전반과 커널의 소스코드를 수정하고, 다시 빌드를 해야 하므로, 실제 적용하기는 힘들다.The third is a technique for monitoring personal information leakage with the title of 'TaintDroid'. It is a technology that tracks the flow from Taint Source, which is the source of personal information, to Taint Sync, which is a personal information outlet, by changing various parts of the platform. However, in order to apply it, it is difficult to actually apply it because the source code of the platform and the kernel must be modified and rebuilt.

본 발명과 관련된 선행기술로는 '무선 액세스 포인트 장치 및 그를 이용한 네트워크 트래픽침입탐지 및 차단방법(한국공개특허: 10-2007-0054067)' 등이 있다.The prior art related to the present invention includes a wireless access point device and a network traffic intrusion detection and blocking method using the same (Korean Patent Laid-Open Publication No. 10-2007-0054067).

본 발명이 해결하고자 하는 과제는 바인더 IPC 메시지에 대한 모니터링을 이용하여 개인정보 유출을 탐지하는 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention provides a method for detecting personal information leakage using monitoring of a binder IPC message.

본 발명은 상기 과제를 해결하기 위하여, 프로세스간 통신 모니터링 방법에 있어서, 바인더 IPC 메시지를 독출하는 단계; 및 상기 바인더 IPC 메시지로부터 제 1 애플리케이션이 제 2 애플리케이션에 요구한 기능을 확인하는 단계; 상기 바인더 IPC 메시지는 커널 영역에서 독출되는 것을 특징으로 하는 방법을 제공한다.According to another aspect of the present invention, there is provided an inter-process communication monitoring method comprising: reading a binder IPC message; And confirming a function requested by the first application from the binder IPC message to the second application; And the binder IPC message is read from the kernel area.

본 발명의 다른 실시예에 의하면, 상기 바인더 IPC 메시지를 독출하는 단계는, 커널 프로브를 이용하여 상기 제 1 애플리케이션의 바인더 드라이버에 대한 시스템 콜을 독출함으로써 수행되는 것을 특징으로 하는 방법일 수 있다.According to another embodiment of the present invention, the step of reading the binder IPC message may be performed by reading a system call for the binder driver of the first application using a kernel probe.

본 발명의 다른 실시예에 의하면, 상기 바인더 IPC 메시지를 독출하는 단계는, 상기 제 1 애플리케이션의 시스템 콜을 분석하여 바인더 IPC와 관련된 시스템 콜을 분류하여 독출하는 것을 특징으로 하는 방법일 수 있다.According to another embodiment of the present invention, the step of reading the binder IPC message may be a method of analyzing the system call of the first application and classifying and reading the system call related to the binder IPC .

본 발명의 다른 실시예에 의하면, 상기 제 1 애플리케이션이 제 2 애플리케이션에 요구한 기능을 확인하는 단계는, 상기 바인더 IPC 메시지에 포함된 서비스 클라이언트에 연결된 서비스, 해당 서비스에 있는 기능, 바인더 IPC를 송신한 프로세스, 및 해당 서비스를 사용하기 위한 매개 변수를 분석하여 수행되는 것을 특징으로 하는 방법일 수 있다.According to another embodiment of the present invention, the step of confirming the function requested by the first application to the second application may include transmitting a service connected to the service client included in the binder IPC message, a function in the service, A process, and a parameter for using the service.

본 발명의 다른 실시예에 의하면, 상기 요구한 기능에 개인정보가 포함된 경우, 상기 제 1 애플리케이션이 외부 네트워크와 소켓을 여는 시스템 콜을 독출하여, 상기 제 1 애플리케이션이 외부 네트워크에 상기 개인정보를 유출하는 지를 확인하는 단계를 더 포함하는 방법일 수 있다.According to another embodiment of the present invention, when the requested function includes personal information, the first application reads a system call for opening an external network and a socket, and the first application transmits the personal information to the external network And confirming whether or not the liquid is discharged.

본 발명의 다른 실시예에 의하면, 상기 확인된 기능이 상기 제 1 애플리케이션으로부터 선언된 기능인지를 확인하는 단계를 더 포함하고, 상기 제 1 애플리케이션이 요구하는 기능들이 상기 제 1 애플리케이션으로부터 선언된 기능에 포함되는 경우, 상기 제 1 애플리케이션이 상기 제 1 애플리케이션으로부터 선언된 기능을 모두 요구하지 않더라도 상기 제 1 애플리케이션은 악성 애플리케이션이 아닌 것으로 확인하는 것을 특징으로 하는 방법일 수 있다.According to another embodiment of the present invention, the method further includes confirming whether the verified function is a function declared from the first application, and the functions requested by the first application include a function declared from the first application And if so, determining that the first application is not a malicious application, even if the first application does not require all of the functions declared from the first application.

본 발명에 따르면, 커널 기반의 모니터링 기법으로, 임의의 앱으로부터 개인정보가 유출되는 것을 탐지하고, 이를 경고할 수 있다. 또한, 악성 앱의 개인정보 유출을 탐지하고 알림으로써, 사용자들의 안드로이드에 대한 신뢰 회복할 수 있다.According to the present invention, a kernel-based monitoring technique can detect the leakage of personal information from an arbitrary app and warn it. In addition, by detecting and notifying the leakage of personal information of malicious apps, users can restore confidence in Android.

도 1은 본 발명의 일 실시예에 따른 프로세스간 통신 모니터링 방법의 흐름도이다.
도 2 내지 3은 본 발명의 다른 실시예에 따른 프로세스간 통신 모니터링 방법의 흐름도이다.
도 4 내지 5는 프로세스간 바인더 IPC를 수행하는 과정을 도시한 것이다.
도 6은 개인정보 유출여부를 확인하는데 이용되는 인자들을 나타낸 것이다.
도 7 내지 8은 현재 기기의 위치를 유출하려는 것을 탐지하는 예를 나타낸 것이다.
1 is a flowchart of a method for monitoring an inter-process communication according to an embodiment of the present invention.
2 to 3 are flowcharts of a method for monitoring inter-process communication according to another embodiment of the present invention.
FIGS. 4 to 5 illustrate the process of performing inter-process binder IPC.
FIG. 6 shows the factors used to check whether personal information is leaked.
FIGS. 7 to 8 illustrate an example of detecting that the current position of the device is to be leaked.

본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명이 해결하고자 하는 과제의 해결 방안의 개요 또는 기술적 사상의 핵심을 우선 제시한다.Prior to the description of the concrete contents of the present invention, for the sake of understanding, the outline of the solution of the problem to be solved by the present invention or the core of the technical idea will be given first.

본 발명의 일 실시예에 따른 프로세스간 통신 모니터링 방법은, 바인더 IPC 메시지를 독출하는 단계, 및 상기 바인더 IPC 메시지로부터 제 1 애플리케이션이 제 2 애플리케이션에 요구한 기능을 확인하는 단계를 포함하고, 상기 바인더 IPC 메시지는 커널 영역에서 독출되는 것을 특징으로 한다.The method for inter-process communication monitoring according to an embodiment of the present invention includes the steps of reading a binder IPC message and confirming a function requested by the first application from the binder IPC message to the second application, And the binder IPC message is read out from the kernel area.

이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 실시 예를 상세히 설명한다. 그러나 이들 실시예는 본 발명을 보다 구체적으로 설명하기 위한 것으로, 본 발명의 범위가 이에 의하여 제한되지 않는다는 것은 당업계의 통상의 지식을 가진 자에게 자명할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. It will be apparent to those skilled in the art, however, that these examples are provided to further illustrate the present invention, and the scope of the present invention is not limited thereto.

본 발명이 해결하고자 하는 과제의 해결 방안을 명확하게 하기 위한 발명의 구성을 본 발명의 바람직한 실시예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 아울러 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 본 발명과 관련된 공지 기능 또는 구성에 대한 구체적인 설명 그리고 그 이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.
BRIEF DESCRIPTION OF THE DRAWINGS The above and other features and advantages of the present invention will become more apparent by describing in detail preferred embodiments thereof with reference to the attached drawings in which: It is possible to quote the above. In the following detailed description of the principles of operation of the preferred embodiments of the present invention, it is to be understood that the present invention is not limited to the details of the known functions and configurations, and other matters may be unnecessarily obscured by the present invention. A detailed description thereof will be omitted.

도 1은 본 발명의 일 실시예에 따른 프로세스간 통신 모니터링 방법의 흐름도이다.1 is a flowchart of a method for monitoring an inter-process communication according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 프로세스간 통신 모니터링 방법을 구현하기 위하여, 바인더 IPC의 메시지를 모니터링하여 특정 애플리케이션이 어떤 서비스 및 기능을 요구하는지를 확인한다.In order to implement an inter-process communication monitoring method according to an exemplary embodiment of the present invention, a message of a binder IPC is monitored to determine which services and functions a specific application requires.

본 발명의 실시예에 따른 프로세스간 통신 모니터링 방법이 구현되는 환경은 도 4와 같다. 사용자 영역(440)의 제 1 애플리케이션(410)과 제 2 애플리케이션(420)이 커널영역(450)의 바인더 드라이버(430)를 통해 바인더 IPC 통신을 수행하는 환경으로, 제 1 애플리케이션(410)의 시스템 콜(460)을 분석하여 제 1 애플리케이션(410)이 제 2 애플리케이션(420)에 요구하는 기능을 모니터링할 수 있다.The environment in which the inter-process communication monitoring method according to the embodiment of the present invention is implemented is shown in FIG. An environment in which the first application 410 and the second application 420 of the user area 440 perform the binder IPC communication through the binder driver 430 of the kernel area 450, The call 460 may be analyzed to monitor the functionality that the first application 410 requests the second application 420.

프로세스간 통신 중 바인더(Binder) IPC(Inter-Process Communication)는 모든 프로세스가 공유하는 커널 메모리에 요청할 내용과 응답받을 내용을 기록하고, 각 프로세스가 그 메모리 주소를 참조하는 형식으로 메모리 복사 오버헤드를 최소화하는 통신 방법이다. 안드로이드에서 프로세스간 통신에 사용되는 기법이다.Inter-Process Communication (Binder) Interprocess Communication (IPC) records the contents of the request and the response to the kernel memory shared by all processes, and the memory copy overhead in the form that each process refers to the memory address It is a communication method to minimize. It is a technique used for interprocess communication in Android.

안드로이드에서 바인더(Binder)는 각각 독립된 프로세서들을 연결해 주는 역할을 한다. 리눅스에서 시스템의 기능을 이용하기 위해서 시스템 콜(System Call)을 사용하여 시스템에서 제공하는 프로세서, 파일 시스템 기능을 이용하도록 제공하고 있다. 하지만 안드로이드에서는 각 독립적으로 운영되는 프로세스, 특히 서비스의 기능을 이용할 수 있도록 제공하는 것이 바인더의 핵심이다.In Android, binders are used to connect independent processors. In order to take advantage of system functions in Linux, system calls are used to make use of the processor and file system functions provided by the system. However, in Android, it is at the core of the binder to be able to take advantage of the functions of each independently operated process, especially the service.

바인더 통신이 이루어지기 위해서는, 각 프로세스가 매핑한 메모리 주소와 커널에서 매핑한 메모리 주소를 변환시켜 줄 수 있어야 있어야하므로, 이를 위하여 커널 영역에 바인더 드라이버(Binder Driver)가 존재한다. 상기 바인더 드라이버가 커널 영역에 존재하기 때문에 사용자 모드에서 동작하는 애플리케이션은 리눅스에서 제공하는 시스템 콜을 호출하여 통신을 수행할 수 있다.In order to perform the Binder communication, it is necessary to be able to convert the memory address mapped by each process and the memory address mapped in the kernel. Therefore, a binder driver exists in the kernel area for this purpose. Since the binder driver exists in the kernel area, an application operating in the user mode can perform communication by calling a system call provided by Linux.

110 단계는 바인더 IPC 메시지를 독출하는 단계이다.Step 110 is a step of reading the binder IPC message.

보다 구체적으로, 필요한 정보를 확인하기 위하여, 바인더 IPC 메시지를 독출한다. 상기 바인더 IPC 메시지를 커널 영역에서 독출함으로써 사용자 영역에 영향을 주지 않으면서 필요한 정보를 독출한다. 상기 바인더 IPC 메시지는 제 1 애플리케이션이 제 2 애플리케이션과 통신을 수행하기 위해 이용하는 메시지로, 상기 바인더 IPC 메시지를 모니터링함으로써 제 1 애플리케이션이 제 2 애플리케이션에 요구하는 기능을 알 수 있다.More specifically, in order to confirm necessary information, a binder IPC message is read out. By reading the binder IPC message from the kernel area, necessary information is read without affecting the user area. The binder IPC message is a message used by the first application to perform communication with the second application. By monitoring the binder IPC message, the first application can know the function requested by the second application.

상기 바인더 IPC 메시지를 독출하기 위하여, 커널 프로브를 이용하여 제 1 애플리케이션의 바인더 드라이버에 대한 시스템 콜을 독출할 수 있다. 커널은 다른 애플리케이션과 달리 디버깅하기 쉽지 않다. 커널을 수정하고 다시 빌드하여 사용하는 경우, 빌드하는데 엄청난 시간이 소요된다. 이를 해결하기 위하여, 동적 프로브(Dynamic probe)를 이용한다. 동적 프로브는 커널을 다시 빌드하지 않고 동적으로 디버깅하는 방법으로, 커널 루틴에 원하는 코드를 디버깅하거나 패치하는 작업도 가능하다. 어떤 특정 함수가 실행될 때 특정로그를 남기거나 함수를 수정할 수도 있다. 동적 프로브에는 커널프로브(Kprobe), 점퍼프로브(Jprobe), 또는 리턴프로브(Kreprobe) 등이 있다. 커널 프로브(Kprobes(Kernel Dynamic Probes))는 동적 프로브로 커널에 특정 가상의 인스트럭션을 삽입한다. 커널 프로브는 리눅스 커널의 디버깅 메커니즘으로 리눅스 커널 내부의 이벤트 등을 모니터링 할 수 있다. 주로 커널 내부에서 수행되는 함수를 후킹(hooking) 하는데 사용되며, 커널 프로브를 이용하여 제 1 애플리케이션의 바인더 드라이버에 대한 시스템 콜을 독출할 수 있다. 제 1 애플리케이션은 리눅스에서 제공하는 ioctl() 시스템 콜을 호출할 수 있다. 시스템 콜들은 기존 커널 소스코드와 함께 컴파일되어, 커널 심볼이 존재하는 함수이기 때문에 ‘/proc/kallsyms’에서 심볼 정보를 추출할 수 있고, 추출한 심볼 정보를 기반으로 커널 프로브(Kprobes)로 시스템 콜을 모니터링하는 모듈을 작성할 수 있다.In order to read the binder IPC message, a system call to the binder driver of the first application can be read using a kernel probe. Unlike other applications, the kernel is not easy to debug. If you modify and rebuild the kernel, it will take a lot of time to build. To solve this problem, a dynamic probe is used. A dynamic probe is a way of dynamically debugging a kernel without rebuilding it, and it is also possible to debug or patch the desired code in a kernel routine. You can also leave a specific log or modify the function when a particular function is executed. Dynamic probes include a kernel probe (Kprobe), a jumper probe (Jprobe), or a return probe (Kreprobe). Kprobes (Kernel Dynamic Probes) are dynamic probes that insert specific virtual instructions into the kernel. The kernel probe is a debugging mechanism of the Linux kernel that can monitor events within the Linux kernel. It is mainly used for hooking functions performed in the kernel, and system calls for the binder driver of the first application can be read using the kernel probe. The first application can call the ioctl () system call provided by Linux. Because system calls are compiled with the existing kernel source code, the symbol information can be extracted from '/ proc / kallsyms' because the kernel symbol exists, and system calls can be made with the kernel probe (Kprobes) based on the extracted symbol information You can create a module to monitor.

상기 바인더 IPC 메시지를 독출하는 단계는 상기 제 1 애플리케이션의 시스템 콜을 분석하여 바인더 IPC와 관련된 시스템 콜을 분류하여 독출할 수 있다. 안드로이드 플랫폼에서 ioctl()은 바인더 외에도 다른 용도로도 호출되기 때문에, 분석량을 줄이기 위해선 분석에 필요한 호출만 뽑아내야한다. 우선, 바인더 ioctl()의 인자를 분석한 후 이를 이용하여 바인더 IPC와 관련된 시스템 콜을 분류하여 독출한다. 바인더 ioctl() 메시지 구조는 하기와 같다.
The step of reading the binder IPC message may analyze the system call of the first application and classify and read the system call related to the binder IPC. On the Android platform, ioctl () is called for other uses besides binders, so to reduce analytics you need to extract only the calls that are needed for the analysis. First, after analyzing the arguments of the binder ioctl (), the system call related to the binder IPC is classified and read out. The binder ioctl () message structure is as follows.

ioctl(“/dev/binder”, BINDER_WRITE_READ, struct binder_write_read)
ioctl ("/ dev / binder", BINDER_WRITE_READ, struct binder_write_read)

바인더의 ioctl()은 “/dev/binder”를 첫 번째 인자로, BINDER_WRITE_READ를 두 번째 인자로 받도록 되어있다. 이를 이용하여 바인더 IPC를 위한 ioctl()을 걸러 낼 수 있다. 바인더에서 세 번째 인자 ‘arg’는 binder_write_read 구조체로, 바인더 프로토콜에 따라서 내용이 변한다. 바인더 프로토콜은 데이터 전송 방향에 따라 도 5와 같이 사용된다. 도 5를 참조하면, 바인더 IPC 프로토콜 BC_TRANSACTION 프로토콜이 호출될 경우만 확인해도 프로세스 A가 프로세스 B에게 어떤 기능을 요구했는지 확인할 수 있으므로, 분석할 내용을 더 줄일 수 있다.The binder's ioctl () is supposed to take "/ dev / binder" as the first argument and BINDER_WRITE_READ as the second argument. You can use this to filter ioctl () for binder IPCs. The third argument 'arg' in the binder is the binder_write_read structure, whose content changes according to the binder protocol. The binder protocol is used as shown in FIG. 5 according to the data transfer direction. Referring to FIG. 5, it is possible to confirm that the process A requests the process B to the process B even if the binding process is invoked only when the BC_TRANSACTION protocol of the binder IPC protocol is called.

120 단계는 상기 바인더 IPC 메시지로부터 제 1 애플리케이션이 제 2 애플리케이션에 요구한 기능을 확인하는 단계이다.Step 120 is a step of confirming a function requested by the first application to the second application from the binder IPC message.

보다 구체적으로, 바인더 IPC 메시지에 포함된 정보를 분석하여 제 1 애플리케이션이 제 2 애플리케이션에 어떠한 기능을 요구하는지를 확인한다. 제 1 애플리케이션의 제 2 애플리케이션에 대해 요구한 기능을 확인하기 위하여, 상기 바인더 IPC 메시지에 포함된 서비스 클라이언트에 연결된 서비스, 해당 서비스에 있는 기능, 바인더 IPC를 송신한 프로세스, 및 해당 서비스를 사용하기 위한 매개 변수를 분석할 수 있다.More specifically, the information contained in the binder IPC message is analyzed to determine what function the first application requires for the second application. In order to confirm the requested function for the second application of the first application, a service connected to the service client included in the binder IPC message, a function in the service, a process of transmitting the binder IPC, You can analyze the parameters.

110 단계에서 BC_TRANSACTION 프로토콜을 호출하는 ioctl()이 추출되고, 추출된 ioctl()의 3번째 인자인 binder_write_read 구조체는 도 6과 같다. binder_transaction_data 구조체에서 handle, code, sender_pid, data 이 4개의 인자(410)를 분석한다. 상기 각 인자의 기능은 다음 표 1과 같다.The ioctl () calling the BC_TRANSACTION protocol is extracted in step 110, and the binder_write_read structure, which is the third argument of the extracted ioctl (), is shown in FIG. In the binder_transaction_data structure, handle, code, sender_pid, and data are analyzed as four factors (410). The functions of the above factors are shown in Table 1 below.

변수명Variable name 기능function handlehandle 서비스 클라이언트에 연결된 서비스 구별Identifying Services Connected to Service Clients codecode 해당 서비스에 있는 기능 구별Distinguishing features in the service sender_pidsender_pid 바인더 IPC를 송신한 프로세스 확인Identify the process that sent the binder IPC datadata 해당 서비스를 사용하기 위한 매개 변수Parameters for using this service

상기 4개의 인자를 분석함으로써 제 1 애플리케이션이 제 2 애플리케이션에 요구하는 기능을 확인할 수 있다.
By analyzing the four factors, it is possible to confirm the function requested by the first application to the second application.

도 2 내지 3은 본 발명의 다른 실시예에 따른 프로세스간 통신 모니터링 방법의 흐름도이다.2 to 3 are flowcharts of a method for monitoring inter-process communication according to another embodiment of the present invention.

210 단계는 120 단계에서 확인된 제 1 애플리케이션이 요구한 기능에 개인정보가 포함된 경우, 상기 제 1 애플리케이션이 외부 네트워크와 소켓을 여는 시스템 콜을 독출하여, 상기 제 1 애플리케이션이 외부 네트워크에 상기 개인정보를 유출하는 지를 확인하는 단계이다.In step 210, when the function requested by the first application identified in step 120 includes the personal information, the first application reads a system call for opening the socket with the external network, And confirms whether information is leaked.

보다 구체적으로, 제 1 애플리케이션이 제 2 애플리케이션에 요구한 기능에 개인정보가 포함되는지 여부를 통해 개인정보가 유출되는지를 모니터링할 수 있다. 제 1 애플리케이션이 정당한 권한을 가지고 개인정보를 요구하였는지 아니면 개인정보를 외부로 유출하기 위해 개인정보를 요구하였는지를 확인하기 위하여, 제 1 애플리케이션이 외부 네트워크와 소켓을 여는 시스템 콜을 하였는지를 확인할 수 있다. 개인정보를 요구하고 외부 네트워크와 소켓을 여는 경우 개인정보를 유출하려는 것으로 판단할 수 있다.More specifically, the first application can monitor whether personal information is leaked through whether the personal information is included in the function requested by the second application. The first application can confirm whether the first application has made a system call to open the socket with the external network in order to confirm whether the first application has requested the personal information with proper authority or requested the personal information to leak the personal information to the outside. If you ask for personal information and open an external network and socket, you may decide to leak personal information.

바인더 IPC를 통하여 개인정보를 수집한 악성 애플리케이션이 외부 네트워크로 수집한 정보를 유출시키기 위해선 Connect() 시스템 콜을 활용하여 외부 네트워크와 소켓을 열어야 한다. 그러나 Conncet() 시스템 콜은 외부 네트워크 통신(TCP/IP) 뿐만 아니라 내부 프로세스끼리의 통신(IPC), 커널 수준과 사용자 수준의 통신(NETLINK)에도 쓰일 수 있기 때문에 이 역시 필터링을 할 필요가 있다. Connect() 시스템 콜의 매개변수인 sockaddr 구조체는 수많은 소켓 주소 체계를 호환하여 사용하기 위한 범용 구조체로, 각 용도에 따라 포함되는 데이터나 크기가 달라진다. 외부와의 연결에 필요한 sockaddr 구조체는 sockaddr_in 구조체로 16 Byte이기 때문에 이 크기를 활용하여 외부와 연결하는 Connect() 만을 모니터링 할 수 있다.A malicious application that collects personal information through a binder IPC should open an external network and socket using the Connect () system call in order to leak information collected on the external network. However, the Conncet () system call needs to be filtered as well, because it can be used not only for external network communication (TCP / IP) but also for communication between internal processes (IPC), kernel level and user level communication (NETLINK). The sockaddr structure, which is a parameter of the Connect () system call, is a general-purpose structure for compatibility with a number of socket address systems. The sockaddr structure required for connection to the outside is 16 bytes in sockaddr_in structure. Therefore, it is possible to monitor only Connect () connecting to the outside using this size.

이하, 개인 정보(위치 정보) 유출 탐지하는 예로써 어떤 애플리케이션 com.example.sms_puller가 LocationManager를 이용해 현재 기기의 위치를 유출하려는 것을 탐지하는 것을 이용하여 자세히 설명하도록 한다. 도 7은 하나의 예시로 작성한 프로그램의 소스코드이다. 위치 정보를 현재 위치로 갱신하기 위하여 requestLocationUpdate API를 호출한다. 본 발명의 실시예에 따른 프로세스간 통신 모니터링 방법이 적용된 기기에서는 이러한 개인정보에 관련된 연산이 일어날 경우, 바인더 IPC 모니터링에 의하여 도 8과 같은 로그를 출력한다. LoacationManager 인터페이스의 RPC Code 1은 requestLoacationUpdates 이므로, 특정 애플리케이션 com.example.sms_puller가 기기 위치 연산을 호출한 것을 탐지했다는 결과를 알 수 있다. 특정 애플리케이션이 개인 정보에 접근한 것만으로는 개인정보가 외부로 유출된다고 보기는 어렵다. 그러나 Binder IPC 모니터링에 특정 애플리케이션이 개인정보에 접근한 상태에서 Connect() 모니터링에서 외부 네트워크와 소켓 통신을 확인할 경우, 개인 정보가 외부 네트워크로 유출될 가능성이 높다고 판단한다. 기기 위치 정보뿐만 아니라, 주소록, IMEI, SMS 등의 민감한 정보의 유출 탐지에도 활용이 가능하다.Hereinafter, an example of detecting the leakage of personal information (location information) will be described in detail using an application com.example.sms_puller detecting that the location of the current device is to be leaked using the LocationManager. 7 is a source code of a program created by one example. Call the requestLocationUpdate API to update the location information to the current location. In an apparatus to which an inter-process communication monitoring method according to an embodiment of the present invention is applied, when an operation related to such personal information occurs, a log as shown in FIG. 8 is output by monitoring the binder IPC. The RPC Code 1 of the LoacationManager interface is requestLoacationUpdates, so you can see the result that a particular application com.example.sms_puller detected that it called the device location operation. It is difficult to say that personal information is leaked to the outside only when a specific application accesses personal information. However, when a specific application accesses personal information for Binder IPC monitoring, it is highly likely that personal information will be leaked to the external network when confirming external network and socket communication in Connect () monitoring. It can be used not only for device location information, but also for leakage detection of sensitive information such as address book, IMEI, and SMS.

310 단계는 상기 확인된 기능이 상기 제 1 애플리케이션으로부터 선언된 기능인지를 확인하는 단계이다.Step 310 is a step of checking whether the verified function is a function declared by the first application.

보다 구체적으로, 110 단계 및 120 단계를 통해 제 1 애플리케이션이 요구하는 기능들을 모니터링함으로써 제 1 애플리케이션이 악성 애플리케이션인지를 확인할 수 있다. 악성 애플리케이션이 아닌 경우에도, 애플리케이션이 선언한 기능과 다르게 기능을 요구하는 경우, 악성 애플리케이션으로 판단될 수 있다. 이러한 문제점을 해결하기 위하여, 제 1 애플리케이션이 요구하는 기능들을 모니터링하고, 모니터링되는 제 1 애플리케이션의 요구 기능을 확인하여, 제 1 애플리케이션이 악성 애플리케이션인지를 확인할 수 있다. More specifically, by monitoring the functions required by the first application through steps 110 and 120, it can be determined whether the first application is a malicious application. Even if it is not a malicious application, it may be judged to be a malicious application if it requires a function different from the function declared by the application. In order to solve this problem, it is possible to monitor the functions required by the first application and check the requested functions of the first application to be monitored to confirm that the first application is a malicious application.

상기 제 1 애플리케이션이 요구하는 기능들이 상기 제 1 애플리케이션으로부터 선언된 기능에 포함되는 경우, 상기 제 1 애플리케이션이 상기 제 1 애플리케이션으로부터 선언된 기능을 모두 요구하지 않더라도 상기 제 1 애플리케이션은 악성 애플리케이션이 아닌 것으로 확인할 수 있다.
If the functions requested by the first application are included in the function declared from the first application, the first application is not a malicious application even though the first application does not require all of the functions declared from the first application Can be confirmed.

본 발명의 실시예에 따른 프로세스간 통신 모니터링 방법은 프로세스간 통신 모니터링 장치에 의해 구현될 수 있다. 프로세스간 통신 모니터링 장치는 메시지 등을 송수신하는 하나 이상의 통신부, 정보를 독출하고 처리하는 하나 이상의 처리부, 및 통신부에서 수신하거나 처리부에서 처리된 정보를 저장하는 하나 이상의 저장부로 구성될 수 있다. 프로세스간 통신 모니터링 장치는 사용자 단말이거나 별도의 장치일 수 있다. 프로세스간 통신 모니터링 장치에서 수행되는 과정에 대한 상세한 설명은 도 1 내지 도 3의 프로세스간 통신 모니터링 방법에 대한 상세한 설명에 대응하는바, 도 1 내지 도 3의 프로세스간 통신 모니터링 방법에 대한 상세한 설명으로 대신한다.An inter-process communication monitoring method according to an embodiment of the present invention may be implemented by an inter-process communication monitoring apparatus. The inter-process communication monitoring apparatus may include at least one communication unit for transmitting and receiving a message, at least one processing unit for reading and processing information, and at least one storage unit for receiving information processed by the communication unit or storing information processed at the processing unit. The inter-process communication monitoring device may be a user terminal or a separate device. The detailed description of the process performed by the inter-process communication monitoring apparatus corresponds to the detailed description of the inter-process communication monitoring method of FIGS. 1 to 3, and is a detailed description of the inter-process communication monitoring method of FIGS. 1 to 3 Instead.

본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments of the present invention may be implemented in the form of program instructions that can be executed on various computer means and recorded on a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and specific embodiments and drawings. However, it should be understood that the present invention is not limited to the above- And various modifications and changes may be made thereto by those skilled in the art to which the present invention pertains.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

Claims (6)

프로세스간 통신 모니터링 방법에 있어서,
바인더 IPC 메시지를 독출하는 단계; 및
상기 바인더 IPC 메시지로부터 제 1 애플리케이션이 제 2 애플리케이션에 요구한 기능을 확인하는 단계를 포함하고,
상기 바인더 IPC 메시지는 커널 영역에서 독출되며,
상기 제 1 애플리케이션이 제 2 애플리케이션에 요구한 기능을 확인하는 단계는,
상기 바인더 IPC 메시지에 포함된 서비스 클라이언트에 연결된 서비스, 해당 서비스에 있는 기능, 바인더 IPC를 송신한 프로세스, 및 해당 서비스를 사용하기 위한 매개 변수를 분석하여 수행되는 것을 특징으로 하는 방법.
A method for inter-process communication monitoring,
Reading a binder IPC message; And
And confirming a function requested by the first application to the second application from the binder IPC message,
The binder IPC message is read from the kernel area,
Wherein the step of confirming the function requested by the first application to the second application comprises:
And analyzing a service connected to the service client included in the binder IPC message, a function in the service, a process of transmitting the binder IPC, and parameters for using the service.
제 1 항에 있어서,
상기 바인더 IPC 메시지를 독출하는 단계는,
커널 프로브를 이용하여 상기 제 1 애플리케이션의 바인더 드라이버에 대한 시스템 콜을 독출함으로써 수행되는 것을 특징으로 하는 방법.
The method according to claim 1,
Wherein reading the binder IPC message comprises:
And reading the system call for the binder driver of the first application using a kernel probe.
제 1 항에 있어서,
상기 바인더 IPC 메시지를 독출하는 단계는,
상기 제 1 애플리케이션의 시스템 콜을 분석하여 바인더 IPC와 관련된 시스템 콜을 분류하여 독출하는 것을 특징으로 하는 방법.
The method according to claim 1,
Wherein reading the binder IPC message comprises:
Wherein the system call of the first application is analyzed to classify and read the system call related to the binder IPC.
삭제delete 제 1 항에 있어서,
상기 요구한 기능에 개인정보가 포함된 경우, 상기 제 1 애플리케이션이 외부 네트워크와 소켓을 여는 시스템 콜을 독출하여, 상기 제 1 애플리케이션이 외부 네트워크에 상기 개인정보를 유출하는 지를 확인하는 단계를 더 포함하는 방법.
The method according to claim 1,
If the requested function includes personal information, reading the system call for opening the socket with the external network, and confirming whether the first application is to leak the personal information to the external network How to.
제 1 항에 있어서,
상기 확인된 기능이 상기 제 1 애플리케이션으로부터 선언된 기능인지를 확인하는 단계를 더 포함하고,
상기 제 1 애플리케이션이 요구하는 기능들이 상기 제 1 애플리케이션으로부터 선언된 기능에 포함되는 경우, 상기 제 1 애플리케이션이 상기 제 1 애플리케이션으로부터 선언된 기능을 모두 요구하지 않더라도 상기 제 1 애플리케이션은 악성 애플리케이션이 아닌 것으로 확인하는 것을 특징으로 하는 방법.
The method according to claim 1,
Further comprising confirming whether the identified function is a function declared from the first application,
If the functions requested by the first application are included in the function declared from the first application, the first application is not a malicious application even though the first application does not require all of the functions declared from the first application ≪ / RTI >
KR1020140193609A 2014-12-30 2014-12-30 Privacy information leak Detecting method using monitoring communication between android processes KR101640033B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140193609A KR101640033B1 (en) 2014-12-30 2014-12-30 Privacy information leak Detecting method using monitoring communication between android processes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140193609A KR101640033B1 (en) 2014-12-30 2014-12-30 Privacy information leak Detecting method using monitoring communication between android processes

Publications (2)

Publication Number Publication Date
KR20160082016A KR20160082016A (en) 2016-07-08
KR101640033B1 true KR101640033B1 (en) 2016-07-15

Family

ID=56504042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140193609A KR101640033B1 (en) 2014-12-30 2014-12-30 Privacy information leak Detecting method using monitoring communication between android processes

Country Status (1)

Country Link
KR (1) KR101640033B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102232171B1 (en) 2019-04-12 2021-03-26 주식회사 안랩 Security management apparatus and method for managing security of electronic apparatus using security management apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100799302B1 (en) 2006-06-21 2008-01-29 한국전자통신연구원 A system and method for detection of a hidden process using system event
KR101003510B1 (en) 2009-01-20 2010-12-29 한남대학교 산학협력단 System for Detection and Prevent of Recrudescence of Mal-Process
KR101431192B1 (en) 2013-03-28 2014-08-19 한신대학교 산학협력단 Method for Rooting Attack Events Detection on Mobile Device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100799302B1 (en) 2006-06-21 2008-01-29 한국전자통신연구원 A system and method for detection of a hidden process using system event
KR101003510B1 (en) 2009-01-20 2010-12-29 한남대학교 산학협력단 System for Detection and Prevent of Recrudescence of Mal-Process
KR101431192B1 (en) 2013-03-28 2014-08-19 한신대학교 산학협력단 Method for Rooting Attack Events Detection on Mobile Device

Also Published As

Publication number Publication date
KR20160082016A (en) 2016-07-08

Similar Documents

Publication Publication Date Title
Gibler et al. Androidleaks: Automatically detecting potential privacy leaks in android applications on a large scale
US9141801B2 (en) Apparatus and method for analyzing permission of application for mobile devices and detecting risk
CN103559446B (en) Dynamic virus detection method and device for equipment based on Android system
US20160378989A1 (en) Apparatus and method for monitoring android platform-based application
CN107004088B (en) Determining device, determining method and recording medium
KR101266037B1 (en) Method and apparatus for treating malicious action in mobile terminal
KR101565590B1 (en) A system for expanding the security kernel with system for privilege flow prevention based on white list
US20130179991A1 (en) Systems and methods for enforcing security in mobile computing
CN104834862A (en) Overall static analysis system for Android authority-escalated attack
CN109831351B (en) Link tracking method, device, terminal and storage medium
CN103065092A (en) Method for intercepting operating of suspicious programs
US20220046051A1 (en) Techniques for protecting applications from unsecure network exposure
US12026256B2 (en) Context-based analysis of applications
CN103746992B (en) Based on reverse intruding detection system and method thereof
CN103793649A (en) Method and device for cloud-based safety scanning of files
CN110612731A (en) System and method for enforcing data loss prevention policies
CN109729050B (en) Network access monitoring method and device
CN114021115A (en) Malicious application detection method and device, storage medium and processor
Chester et al. M-perm: A lightweight detector for android permission gaps
CN105956461A (en) Method and terminal for intercepting driver loading
KR101640033B1 (en) Privacy information leak Detecting method using monitoring communication between android processes
CN117032894A (en) Container security state detection method and device, electronic equipment and storage medium
CN108270730A (en) A kind of application layer detection method, device and electronic equipment for extending fire wall
CN116956272A (en) Authority calling monitoring method and device and electronic equipment
KR101053470B1 (en) Apparatus and method to prevent harmful traffic control and hacking

Legal Events

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

Payment date: 20190708

Year of fee payment: 4

R401 Registration of restoration