DOI QR코드

DOI QR Code

A Methodology for Identifying SendMessages in IoT Companion Apps for Vulnerability Analysis of IoT Devices

IoT 장치 취약점 분석을 위한 IoT Companion App 기반 SendMessage 식별 방법론

  • Received : 2024.10.31
  • Accepted : 2025.01.17
  • Published : 2025.02.28

Abstract

With the advancement of Internet of Things (IoT) technology, a wide variety of IoT devices have become integral parts of our daily lives; however, threats arising from security vulnerabilities have increased correspondingly. Security weaknesses in companion apps that interact with IoT devices can lead to severe consequences such as personal information leakage and service disruptions. Existing IoT security research has struggled to effectively identify the SendMessage function-which transmits data from companion apps to IoT devices-due to limitations caused by app obfuscation. This study proposes a novel methodology that accurately identifies the SendMessage function even in obfuscated environments through static and dynamic analysis. The proposed approach enhances the detection rate and accuracy of the SendMessage function, and experimental results demonstrate superior performance compared to existing tools. This research aims to contribute to the proactive detection and prevention of security vulnerabilities in IoT devices.

사물인터넷(IoT) 기술의 발전으로 다양한 IoT 장치들이 우리의 일상에 자리 잡았으나, 보안 취약점으로 인한 위협도 함께 증가하고 있다. IoT 장치와 상호작용하는 컴패니언 앱의 보안 취약점은 개인 정보 유출 및 서비스 마비와 같은 심각한 결과를 초래할 수 있다. 기존의 IoT 보안 연구는 난독화된 앱의 한계로 인해 컴패니언 앱에서 IoT 장치로 데이터를 전송하는 SendMessage를 효과적으로 식별하지 못하는 문제를 겪었다. 본 연구는 정적 및 동적 분석을 통해 난독화된 환경에서도 SendMessage 함수를 정확히 식별할 수 있는 새로운 방법론을 제안한다. 제안된 방법론은 SendMessage 함수의 탐지율 및 정확도를 높였으며, 실험 결과 기존 도구 대비 우수한 성능을 입증하였다. 본 연구는 IoT 장치의 보안 취약점을 선제적으로 탐지하고 예방하는 데 기여하고자 한다.

Keywords

I. 서론

사물인터넷(Internet of Things, IoT)은 다양한 기기들이 네트워크를 통해 데이터를 교환하며 인간, 기계, 사물을 연결하는 시스템이다. IoT는 스마트홈, 헬스케어, 산업 자동화 등 다양한 분야에서 활용되고 있다[1][2]. IoT 시장은 빠른 성장을 기록하고 있으며, 국내 시장은 연평균 7.9% 성장률로 2025년 38조 1,709억 원에 이를 것으로 전망된다[3]. 글로벌 시장 또한 2024년 약 1.17조 달러에서 2029년 약 2.37조 달러로 확대될 것으로 예상된다[4][5]. 그러나 IoT 시장의 발전과 동시에 보안 위협도 급증하고 있다. [6][7]에 따르면 2023년 동안 IoT 기반 DDoS 공격은 다섯 배 증가하였으며, IoT 악성코드 공격은 400% 증가하였다.

IoT 장치의 보안 취약점은 개인 정보 유출이나 서비스 마비와 같은 심각한 문제를 초래할 수 있다. 실제로, 지난 2023년 중국 해커들이 국내 가정용 IP 카메라를 해킹하여 사생활 영상을 실시간으로 유출하고 카메라를 조작해 사생활을 침해하는 사건이 발생했다[8]. 이러한 이슈들이 발생했음에도 불구하고 IoT 홈 CCTV의 보안 인증 취득 실태는 단 1건에 불과하며 매우 저조한 상황이다. 현재 많은 IoT 장치들이 보안 인증 없이 배포되면서, 보안 위협에 직접적으로 노출되고 있다[9]. 기업들의 인증 취득 참여를 활성화하고 사용자들의 보안 인식을 개선하는 것이 중요하다. 그러나 그 이전에 IoT 장치에 내재된 취약점을 사전에 분석하고 탐지하여 예방하는 것 또한 필수적이다.

IoT 장치의 취약점을 탐지하는 주요 기법 중 하나는 퍼징(Fuzzing)이다. 퍼징은 무작위 혹은 변이된 입력값을 프로그램에 주입하여 시스템의 이상 작동이나 충돌을 유발하고, 이를 통해 보안 취약점을 식별하는 테스트 기법이다. 이 기법은 시스템의 안정성과 보안성을 평가하는데 매우 효과적이며 소프트웨어 개발 및 테스트 과정에서 널리 활용되고 있다. 퍼징은 크게 화이트박스 퍼징과 블랙박스 퍼징으로 나뉜다. 화이트박스 퍼징은 장치의 소스코드와 내부 구조를 활용해 분석하지만, 펌웨어가 암호화되었거나 접근이 제한적인 경우에는 한계가 존재한다[10]. 블랙박스 퍼징은 장치의 내부 구조에 대한 정보 없이 외부 인터페이스를 대상으로 테스트를 수행하는 방식으로, 장치와의 상호작용을 통해 취약점을 탐지한다. 그러나 이 방식은 암호화된 통신 데이터를 처리하거나 유효한 입력값을 생성하는 데 한계가 있다[11][12].

이러한 문제를 해결하기 위해 컴패니언 앱(Companion App)을 활용한 퍼징 연구가 등장했다. 컴패니언 앱은 IoT 장치와 상호작용하는 스마트폰 애플리케이션으로 IoT 장치와 데이터를 교환한다. IoTFuzzer[10]는 앱의 UI(User Interface)에서 네트워크 관련 메서드에 연결되는 경로를 탐색하여, 해당 경로를 따라 사용자 입력을 처리하는 첫 번째 함수를 퍼징 트리거(Fuzzing Trigger)로 식별하며, 해당 함수의 파라미터 값을 변조하여 테스트 케이스를 생성한다. 그러나 IoTFuzzer는 앱 내부에서 수행되는 입력 검증 로직으로 인해 변이된 입력값이 필터링되는 한계를 가진다. 이를 개선하기 위해 DIANE[13]은 앱 내부의 입력값 검증 로직에 제약받지 않으며, IoT 장치가 요구하는 형식으로 데이터를 변환해 주는 함수 이전의 최적의 지점을 퍼징 트리거로 식별하는 방법론을 제안하였다. DIANE[13]은 IoT 장치에 메시지를 보내는 함수인 SendMessage를 먼저 식별한 후, 전송된 데이터를 변환하는 함수를 추적하여 가장 상위 계층에 위치한 함수를 퍼징 트리거로 식별한다. 그러나 DIANE 또한 난독화된 환경에서는 SendMessage 식별에 어려움을 겪는다.

SendMessage 함수는 IoT 장치로 네트워크 트래픽을 직접 트리거하는 핵심 함수로, 이를식별하지 못하면 장치의 취약점 분석 결과가 부정확하거나 불완전해질 가능성이 크다. 난독화된 앱 환경에서는 클래스명, 메서드명, 패키지명이 변경되고, API 호출이 네이티브 코드로 은닉되어 기존 정적 분석 방법론으로는 SendMessage 함수를 식별하는 데 어려움이 있다. 따라서, 실행 시점에서 동적 분석을 병행하여 함수 호출 흐름과 네트워크 요청 간의 관계를 실시간으로 분석하는 복합적인 접근이 필요하다.

본 연구에서는 정적 분석과 동적 분석을 결합한 새로운 방법론을 제안함으로써 이러한 한계를 극복하고 IoT 장치의 보안성을 강화하고자 한다. 실험 결과, DIANE은 7개의 SendMessage 함수를 탐지한 반면, 제안된 기법은 9개의 SendMessage를 탐지하여 약 29% 더 높은 탐지율을 기록하였다. 탐지된 후보군의 수는 DIANE 대비약 91% 감소하여 분석 효율성을 증명하였다. 이러한 성과는 복잡한 분석 방법론 채택이 IoT 장치의 보안 취약점 탐지 정확도와 포괄성을 높이는 데 필수적임을 보여준다.

본 논문의 기여도는 아래와 같다.

• 난독화 환경에서 정적 분석과 동적 분석을 상황에 맞게 선택적으로 적용하며 IoT 장치의 SendMessage 함수를 효과적으로 탐지할 수 있는 기법을 제안하였다.

• 정적 및 동적 호출 그래프를 결합하여 분석 정확도를 높이고, 네트워크 패킷 전송을 유발하는 함수를 더 정확히 식별할 수 있는 방법론을 개발하였다.

• 자체 구현 앱과 상용 IoT 앱 5개를 대상으로 실험을 진행하여 제안된 기법의 우수성을 입증하였다.

본 논문의 구성은 다음과 같다. 1장의 서론에 이어 2장에서는 배경지식 및 관련 연구를 서술하고, 3장에서는 방법론에 대해 상세히 다룬다. 4장에서는 실험 및 평가 결과를 다루며, 5장에서는 논의를 진행한다. 마지막으로 6장에서는 결론 및 향후 연구 방향을 제시하며 본 논문을 마무리한다.

II. 배경지식 및 관련 연구

2.1 스마트홈 네트워크와 컴패니언 앱

인터넷 접속이 가능한 IoT 장치 중 76.3%는 장치에서 수집된 컴패니언 앱을 통해 장치를 제어하고 데이터를 전송하는 것으로 나타났다[14]. 스마트홈 네트워크는 클라우드, 라우터, 컴패니언 앱 그리고 스마트홈 기기들로 구성된다. 네트워크의 중심에는 라우터가 위치하며 네트워크의 허브 역할을 한다. 컴패니언 앱은 사용자 단말기 디바이스에 설치된 소프트웨어로 라우터를 통해 스마트홈 장치들을 제어한다. 라우터는 스마트홈과 다양한 스마트홈 장치들 간의 데이터 통신을 중계하며 클라우드와 연결되어 데이터를 저장하고 원격 접근을 가능하게 한다. 이러한 구성 요소들은 라우터를 중심으로 연결되며, 사용자는 컴패니언 앱을 통해 장치를 제어하고 모니터링할 수 있다. 컴패니언 앱을 이용한 통신은 IoT 장치 간의 원활한 연결과 데이터 처리를 가능하게 한다.

스마트홈 네트워크 통신은 크게 제조업체에서 제공하는 앱과 IoT 장치 간의 통신와 클라우드 통신으로 나눌 수 있다. IoT 장치 간 통신(App-to-Device)은 주로 Wi-Fi, Bluetooth와 같은 프로토콜을 사용하여 직접 통신(Direct Communication)으로 이루어진다. 이러한 통신 방식은 각 장치의 기능 제어 및 상태 모니터링을 가능하게 하며, 사용자와 장치 간의 실시간 상호작용을 할 수 있다. 클라우드 통신은 암호화된 채널을 통해 데이터를 안전하게 전송하여 스마트홈 장치와 클라우드 서버 간의 통신을 지원한다. 제안 기법은 로컬 네트워크로 앱과 장치 간의 직접 통신만을 고려한다. Fig. 1.은 스마트홈 네트워크 아키텍처이며, 그림 내의 (1)은 앱과 장치간 직접 통신 환경, (2)는 클라우드 통신 환경을 나타낸다.

JBBHCB_2025_v35n1_119_3_f0001.png 이미지

Fig. 1. Smart Home Network Architecture

2.2 애플리케이션 보호 기법

앱(Application, App) 보호 기법은 코드와 데이터 구조를 의도적으로 변경하여 보안 수준을 높이고, 배포된 앱의 소스 코드를 보호하는 기술이다. 주로 소프트웨어의 역공학을 방지하고 불법 복제 및 악성 행위를 차단하기 위해 사용된다. 보호 기법으로는 식별자 변환, 문자열 암호화, API 은닉, Native 라이브러리 암호화, 제어 흐름 변환 등이 있으며, 각 기법들에 대해 Table 1.에 정리하였다. 현재 대부분의 앱은 이러한 난독화 기법을 적용하여 배포되고 있으며, 이로 인해 분석 잡업의 복잡성과 난이도가 크게 증가하고 있다.

Table 1. Application Protection Techniques

JBBHCB_2025_v35n1_119_4_t0001.png 이미지

2.3 Send Message

본 논문에서 언급되는 SendMessage 함수는 IoT 컴패니언 앱에서 IoT 장치로 데이터를 전송하는 핵심 메서드이다. SendMessage 함수는 앱의 주요 기능과 Android 프레임워크, 네이티브 라이브러리(JNI) 및 네트워크 통신 모듈과 같은 외부 컴포넌트 사이에 위치한 경계함수(boundary function)로 간주되며, 호출 시 네트워크 트래픽을 생성한다. 이러한 함수는 앱의 내부 로직과 외부 네트워크 통신 간의 경계에서 동작하며, IoT 장치와의 데이터 송수신을 위한 중요한 역할을 한다.

IoT 장치와 통신하기 위해 컴패니언 앱은 다양한 형태의 프로토콜과 데이터 구조를 사용한다. IoT 장치는 특정한 형식의 데이터만 수용하며, 이를 위해 컴패니언 앱은 데이터를 적절한 형식으로 변환하거나 네트워크에 적합한 구조로 직렬화하는 작업을 수행한다. 따라서 SendMessage 함수는 데이터 전송과 관련된 입력 데이터를 처리하고, 이를 네트워크를 통해 IoT 장치로 전송하는 구조로 설계된다.

Fig. 2.는 카메라 장치의 팬, 틸트, 줌(PTZ) 제어 명령을 전송하는 일반적인 SendMessage 함수의 구조를 보여주는 코드이다. 이 코드는 HTTP 프로토콜을 통해 직렬화된 데이터를 네트워크로 전송하여 IoT 장치의 특정 동작을 수행하도록 명령하는 방식으로 설계되었다. 해당 코드에서 SendMessage 함수는 카메라 장치의 ID와 명령어, 그리고 제어 데이터를 입력으로 받아 HTTP 프로토콜을 통해 이를 IoT 장치로 전송한다. prepareControlData 함수는 팬, 틸트, 줌 값을 기반으로 데이터를 직렬화하며, 직렬화된 데이터는 OutputStream을 통해 HTTP POST 요청의 바디로 전송된다. 이와 같은 구조는 IoT 장치와의 통신에서 일반적으로 사용되며, 장치의 동작을 제어하기 위해 활용된다. SendMessage 함수는 데이터를 변환하고, 네트워크 요청을 구성하여 IoT 장치와 상호작용하는 과정을 중앙에서 조율하며, IoT 장치의 동작을 효율적으로 제어하는 데 중요한 역할을 수행한다.

JBBHCB_2025_v35n1_119_4_f0001.png 이미지

Fig. 2. Message Transmission Code for IoT Camera Control

2.4 정적 분석 도구 FlowDroid

FlowDroid[22]는 안드로이드 애플리케이션의 정적 분석을 수행하는 도구로, 데이터의 소스에서 싱크로의 흐름을 추적하여 보안 취약점을 식별하는 데 사용되는 도구이다. 이 도구는 코드 내 데이터 흐름 분석에 있어 컨텍스트-감도(Context-sensitive), 필드-감도(Field-sensitive), 객체-감도(Object-sensitive), 그리고 생명주기-감도(Lifecycle-aware)를 지원하여 높은 정밀도를 제공한다. FlowDroid는 애플리케이션에서 보안 취약점을 탐지하는 데 중요한 역할을 하지만, 난독화된 환경에서는 소스와 싱크 간 흐름을 정확히 분석하지 못해 한계가 존재한다. 리플렉션(Reflection)을 사용하는 경우, 리플렉션 호출의 인자가 상수 문자열일 경우에만 이를 처리할 수 있으며 동적 리플렉션 호출이나 난독화된 코드에서는 정확한 데이터 흐름 추적이 어렵다. 이로 인해 난독화가 적용된 IoT 컴패니언 앱의 데이터 흐름 분석에서는 충분히 성능을 발휘하지 못한다.

난독화된 앱은 클래스명, 메서드명, 패키지명 등을 의도적으로 변환하거나 API 호출 경로를 숨겨 FlowDroid의 데이터 흐름 추적을 방해한다. FlowDroid[22]는 도구 내 sourcesink 설정 파일을 활용해 APK 파일을 정적으로 분석하여 애플리케이션 내 네트워크 관련 함수를 식별할 수 있다. 본 연구에서는 이러한 FlowDroid의 기능을 기반으로 SendMessage 함수의 후보군과 비교 실험을 진행하였다.

2.5 IoT 장치 블랙박스 퍼징 연구

IoT 장치의 보안 취약점을 찾아내기 위해 다양한 블랙박스 퍼징 기법이 개발되어 왔다. 본 섹션에서는 대표적인 연구인 Snipuzz[11], FIoTFuzzer[12], IoTFuzzer[10], DIANE[13], 그리고 최신 연구인 RIoTFuzzer[23]를 소개하고, 이들 방법론의 특징과 한계를 논의한다. 이를 통해 본 논문이 해결하고자 하는 문제를 제시한다.

기존의 블랙박스 퍼저들은 주로 두 가지 큰 한계에 직면한다. 첫째, 장치 내부의 실행 정보를 얻지 못해 효과적인 테스트 방법을 찾기 어렵다. 둘째, IoT 장치들이 사용하는 다양한 비표준 통신 메시지 형식으로 인해 기존의 문법 기반 퍼징 방법을 적용하기 어렵다. 이러한 문제를 해결하기 위해 Snipuzz[11]가 제안되었다. Snipuzz는 IoT 장치와 통신하면서 장치의 응답을 바탕으로 메시지 조각(Snippets)을 추출하여 테스트 메시지를 변형하는 자동 블랙박스 퍼저이다. Snipuzz는 메시지 조각과 펌웨어 실행 경로 사이의 관계를 추론하여 입력 데이터의 구조를 분석한다. 이를 통해 문법 규칙 없이 입력 데이터의 테스트 케이스를 생성할 수 있으며, 20개의 IoT 장치에서 5개의 제로데이 취약점을 발견하였다. 그러나 Snipuzz는 메시지 조각을 분류하는 기준이 지나치게 엄격하여 퍼징 효율성을 저하시킬뿐만 아니라 실행 경로에 도달하지 못하는 한계를 가진다.

이러한 Snipuzz의 한계를 극복하기 위해 FIoTFuzzer[12]가 제안되었다. FIoTFuzzer는 네트워크 프로토콜과 데이터 형식을 식별하고 이를 바탕으로 메시지 조각을 변이하여 새로운 테스트 케이스를 생성한다. 또한, 응답을 계층적으로 군집화하여 Snipuzz에서 메시지 조각이 과도하게 분류되는 문제를 해결하였다. FIoTFuzzer는 12개의 IoT 장치에서 9개의 취약점을 발견하였으나, 특정 필드(MAC 주소, IP 주소, 타임스탬프 등)를 처리하지 못하는 문제가 있다.

이와 더불어, 컴패니언 앱을 이용하여 IoT 장치에 유효한 입력 형태를 가진 메시지를생성하는 연구들이 등장하였다. 컴패니언 앱은 IoT 장치를 제어하거나 상태를 모니터링하기 위해 설계된 스마트폰 애플리케이션으로, IoT 장치와 데이터를 교환하는 주요 인터페이스 역할을 한다. IoT 장치 내부 정보에 직접 접근하기 어려운 환경에서, 컴패니언 앱은 장치와의 상호작용을 분석할 수 있는 효과적인 대안으로 주목받고 있다. 또한, 앱 실행 시 생성되는 네트워크 트래픽은 IoT 장치와의 상호작용 정보를 포함하고 있어 이를 분석하면 보안 취약점을 탐지할 수 있다. 그리고 UI 이벤트를 기반으로 네트워크 요청을 유발하는 테스트를 수행할 수 있어, 블랙박스 퍼징 기법과 결합한 효과적인 분석을 가능하게 한다.

이러한 접근 방식은 IoTFuzzer[10]와 같은 연구에서도 잘 드러난다. IoTFuzzer는 컴패니언 앱의 UI에서 네트워크 요청을 트리거하는 요소를 분석하여 퍼징 입력을 생성한다. 그러나 IoTFuzzer는 앱 내부에서 수행되는 입력 검증 로직으로 인해 변이된 입력이 IoT 장치에 전달되지 못하는 한계를 가진다. 이를 개선하기 위해 DIANE[13]이 제안되었다. DIANE은 앱 내부에서 네트워크 요청을 트리거하는 최적의 지점을 식별하여 더 정밀한 테스트를 가능하게 한다. 그러나 DIANE 역시 정적 분석에 의존하여 네트워크 관련 메서드를 식별하기 때문에, 난독화된 앱 환경에서 SendMessage와 같은 핵심 메서드를 정확히 식별하는 데 어려움을 겪는다.

RIoTFuzzer[23]는 컴패니언 앱을 활용하여 IoT 장치의 경계 함수(Boundary Function)를 식별하고 퍼징을 수행한다. 이 기법은 정적 분석을 통해 JavaScript 인터페이스 메서드를 식별하고, 호출 그래프를 생성하여 잠재적인 경계 함수를 추출한 뒤, 동적 분석으로 실행 시점의 호출 정보를 수집하여 이를 보완하는 하이브리드 접근 방식을 사용한다. 그러나 RIoTFuzzer도 정적 분석을 기반으로 메서드를 먼저 추출하기 때문에, 난독화된 환경에서는 한계가 존재한다. 클래스명, 메서드명, 패키지명이 난독화되거나 API 호출 흐름이 은닉된 경우, 정확한 경계 함수 식별이 어려울 수 있다.

기존 연구들은 IoT 장치의 보안 취약점을 탐지하는 데 중요한 기여를 했지만, 난독화된 환경에서 SendMessage와 같은 핵심 메서드 식별에 여전히 한계를 보인다.

따라서 본 논문은 이러한 한계를 극복하기 위해 DIANE을 확장하고, 정적 분석과 동적 분석을 결합하여 난독화 수준에 따라 분석 방법을 선택적으로 적용하는 새로운 접근 방식을 제안한다. 이를 통해 SendMessage를 효과적으로 식별하고, IoT 장치의 보안 취약점을 보다 정밀하게 탐지할 수 있다.

III. 방법론

3.1 Overview

전체적인 시스템 구성은 Fig. 3.과 같이 세 단계로 구성된다.

JBBHCB_2025_v35n1_119_6_f0001.png 이미지

Fig. 3. System Overview

① Target Activity 식별 단계: 앱 UI 테스트 자동화 도구를 사용하여 특정 이벤트 실행 시 네트워크 패킷 전송을 유발하는 Activity를 Target Activity로 식별한다.

② SendMessage 후보군 식별 단계

⒜ 정적 분석 단계 : ①에서 식별한 Target Activity를 기반으로 모든 메서드 리스트를 추출하고, 호출 관계를 분석하여 정적 호출 그래프를 생성한다. 이후 해당 그래프 내의 말단에 위치한 노드를 SendMessage 후보군으로 식별한다.

⒝ 동적 분석 단계 : ①에서 식별된 Target Activity 정보를 통해 UI 이벤트를 발생시켜 실시간 함수 호출 흐름을 추적하고 동적 호출 그래프를 생성한다. 이후 해당 그래프 내의 말단에 위치한 노드를 SendMessage 후보군으로 식별한다.

③ SendMessage 식별 단계: 정적 및 동적 분석을 통해 식별된 SendMessage 후보군을 Frida[18] 도구로 앱에 후킹(hooking)하고 Tcpdump[16]을 통해 네트워크 패킷 전송 여부를 확인하여 최종적으로 SendMessage 함수로 식별한다.

3.2 Target Activity 식별 단계

컴패니언 앱에서 네트워크 활동을 유발할 가능성이 높은 Target Activity를 식별하기 위해, DroidBot[15]을 사용하여 다양한 UI 이벤트를 자동으로 수행하고, 발생하는 모든 상호작용을 모니터링하고 기록한다. DroidBot은 Android 애플리케이션의 UI 테스트 자동화 도구로, 터치, 스크롤, 입력 등 다양한 상호작용을 자동화하여 수행하면서 이벤트 발생 시점과 관련된 데이터를 수집한다.

동시에 앱과 IoT 장치 간의 데이터 전송을 실시간으로 파악하기 위해 네트워크 트래픽을 모니터링한다. Tcpdump[16]를 통해 네트워크 트래픽을 캡처하여 네트워크 트래픽이 발생한 시점의 Activity를 Target Activity로 분류한다.

3.3 SendMessage 후보군 식별 단계

본 연구에서는 앱의 난독화 수준에 따라 정적 및 동적 분석을 선택적으로 적용하여 SendMessage 후보군을 효율적으로 식별하고자 한다. 난독화 수준이 낮아 코드 흐름을 쉽게 파악할 수 있는 경우에는 정적 분석과 동적 분석을 병행하여 더욱 포괄적인 분석을 수행한다. 그러나 난독화가 심해 정적 분석이 어려운 경우에는 동적 분석만을 수행함으로써, 분석 과정의 효율성을 유지하고 최적화된 결과를 도출할 수 있도록 한다. 따라서 본 단계에서는 이러한 선택적 접근 방식에 따라 정적 분석 단계와 동적 분석 단계를 각각 구체적으로 다루며, 각 방법을 통해 SendMessage 후보군을 탐지하는 과정과 그 세부 절차를 설명한다.

3.3.1 정적 분석 단계

기존 연구 DIANE[13]은 네트워크 관련 메서드명으로만 SendMessage 후보군을 식별했기 때문에, 메서드명이나 패키지명이 난독화된 경우 적절한 후보군을 탐지하지 못하는 한계가 있었다. 이는 메서드명에 과도하게 의존한 접근 방식이 난독화된 환경에서 효과적으로 작동하지 못함을 보여준다. 반면, 제안 기법은 난독화 수준을 기반으로 정적 분석의 적용 가능성을 평가하고, 3.2 Target Activity 단계에서 네트워크 요청이 발생한 Activity를 먼저 식별한 뒤, 해당 Activity 내부의 모든 메서드를 탐색하고 호출 관계를 기반으로 분석한다. 정적 분석의 적용 가능성은 네트워크 관련 메서드명 및 패키지명이 난독화되지 않거나, 호출 관계가 명확히 식별 가능한 환경을 기준으로 정의된다. 낮은 난독화 수준의 경우, Target Activity 기반의 호출그래프(Call Graph) 생성이 효과적으로 수행되며, 난독화된 환경에서도 호출 관계를 활용하여 SendMessage후보군을 효과적으로 탐지할 수 있다.

본 단계에서는 Soot 프레임워크인 pysoot[17]를 활용하여 APK 파일을 디컴파일하고, 모든 클래스와 메서드를 로드한 뒤, Target Activity와 연결된 메서드 호출 관계를 탐색한다. 이 과정에서 정적 호출 그래프를 생성하여 함수 간의 호출 경로를 시각적으로 표현한다. 호출 그래프는 코드의 구조적 흐름을 기반으로 SendMessage 후보군을 정밀하게 식별하는 데 활용된다. 호출 그래프의 말단에 위치한 함수는 IoT 장치로 데이터를 전송할 가능성이 높은 함수로 간주되며, 이를 SendMessage 후보군으로 분류한다. 기존 연구와 달리, 제안 기법은 메서드명이나 패키지명의 난독화로 인해 후보군이 누락되는 문제를 최소화하기 위해 호출 관계를 중심으로 분석한다.

3.3.1.1 난독화 수준 평가 및 분석 선택 기준

본 연구에서는 IoT 컴패니언 앱의 난독화 수준을평가하여 적합한 분석 방법을 선택적으로 적용하는 기법을 제안한다. 난독화 수준은 코드가 독성, API 호출 흐름의 가시성, 보호 기법 적용 여부를 기준으로 평가되며, 정적 분석 가능성을 확인하기 위해 Jadx 디컴파일러와 Soot 도구를 사용하였다.

첫 번째 기준은 코드 가독성이다. 이는 클래스명, 메서드명, 패키지명이 난독화되지 않고 명확히 표시되어 있는지를 평가하는 요소로, 코드 구조가 의미있는 수준으로 해석 가능한지를 판단한다. 이를 위해 Jadx 디컴파일러를 사용하여 APK 파일을 디컴파일하고, 난독화 수준이 낮아 호출 그래프(Call Graph) 생성이 용이한 경우 정적 분석을 적용하였다. 그러나 난독화 수준이 높은 경우에는 식별자가 무작위 문자로 변환되거나, 의미 파악이 어렵게 변경되어 호출 관계를 추적하기 어려워진다.

두 번째 기준인 API 호출 흐름의 가시성은 네트워크 트래픽을 유발하는 API 호출의 노출 여부를 평가한다. 난독화 수준이 낮으면 정적 분석으로 호출 관계를 쉽게 추적할 수 있지만, 네이티브 코드로 은닉되거나 복잡하게 변형된 경우에는 정적 분석만으로는 한계가 있다. pysoot[17]를 통해 호출 그래프를 생성하려 했으나, 코드 로드 실패나 호출 흐름 해석이 불가능한 경우 정적 분석이 제한적이라는 판단을 내렸다.

세 번째 기준은 보호 기법 적용 여부이다. 난독화 수준이 낮은 경우 보호 기법이 제한적으로 적용되어 정적 분석이 유용하지만, 난독화와 암호화 기법이 광범위하게 적용된 경우에는 동적 분석이 필요하다.

본 기준에 따라, 난독화 수준이 낮은 경우 정적 분석과 동적 분석을 병행하여 정확도를 높이고, 난독화 수준이 높은 경우 동적 분석만을 수행하여 실시간으로 함수 호출 흐름을 추적하였다. 이를 통해 네트워크 트래픽을 유발하는 SendMessage 후보군을 효과적으로 식별하였다.

3.3.2 동적 분석 단계

동적 분석 단계에서는 Target Activity에서 다양한 UI 이벤트를 발생시키고, 이에 따라 호출되는 함수들의 흐름을 Frida[18]를 통해 실시간으로 추적하여 동적 호출 그래프를 생성한다. 본 단계에서는 DroidBot[15]을 사용하여 앱의 UI 이벤트를 자동화하고, Monkeyrunner[19]와 RERAN[20]을 통해 특정 이벤트를 반복적으로 재현하여 UI 이벤트가 일관되게 재생되도록 한다. 이를 통해 특정 이벤트 발생 시 호출되는 메소드를 실시간으로 확인할 수 있으며, 이를 통해 정적 분석에서 포착되지 않은 실행 흐름을 보완한다.

동적 호출 그래프는 이벤트가 발생할 때의 실제 호출 관계를 반영하여 생성되며, 정적 분석에서 식별된 후보군 외에도 추가적인 SendMessage 후보군을 포괄적으로 식별할 수 있다. 각 함수 호출 시 수집된 스택 정보를 바탕으로 호출 흐름을 기록하고, 이를 동적 호출 그래프에 반영하여 네트워크 트래픽을 유발할 가능성이 높은 메소드를 선별한다. 그래프의 말단에 위치한 함수들을 SendMessage 후보군으로 식별한다.

3.4 SendMessage 식별 단계

정적 및 동적 분석 결과로 도출된 후보군 중, 실제로 네트워크 요청을 유발하는 함수를 최종적으로 검증하기 위해, Frida를 사용하여 각 함수들을 후킹하고 동시에 Tcpdump로 네트워크 모니터링을 수행한다. Frida는 메소드 후킹을 통해 각 함수 호출 시 발생하는 네트워크 트래픽을 실시간으로 추적할 수 있게 해주며, Tcpdump는 네트워크 인터페이스에서 발생하는 패킷을 캡처하여 이를 분석할 수 있도록 지원한다. 이를 통해 SendMessage 후보군 중 실제로 패킷 전송을 유발하는 함수를 SendMessage 함수로 최종 식별할 수 있다.

IV. 실험 및 평가

본 장에서는 제안된 방법론의 유효성과 효과를 검증하기 위해 수행한 실험과 평가 결과를 제시한다. 자체적으로 구현한 앱과 상용 IoT 앱 5개를 대상으로 제안된 기법을 적용하여 성능을 평가하였으며, 평가 과정에서 IoT 장치와의 통신에서 발생하는 다양한 상호작용과 데이터 흐름을 정밀 분석하였다. 이를 통해 제안된 기법이 보안 취약점을 효과적으로 탐지할 수 있음을 확인하였으며, 정량적 및 정성적 평가를 통해 정확도와 효율성을 입증하였다.

또한, 기존 블랙박스 퍼징 도구인 DIANE[13]과의 비교 실험을 수행하여 제안된 방법론이 퍼징 효율성과 탐지 성공률 측면에서 더 높은 성능과 정확도를 보임을 검토하였다. 상용 IoT 앱은 각기 다른 제조사의 장치들과 연동되도록 선정되었으며, 이를 통해 제안된 기법의 범용성과 다양한 IoT 환경에서의 적용 가능성을 확인할 수 있었다.

4.1 실험 환경 구축

본 연구에서는 IoT 장치와 컴패니언 앱 간의 네트워크 패킷을 효율적으로 수집하고 분석하기 위해 물리적 실험 환경을 구축하였다. 이는 IoT 장치와 컴패니언 앱의 통신 패킷을 실시간으로 모니터링하고, 보안 취약점을 분석할 수 있는 조건을 제공한다. 분석 서버는 AP(Access Point)로 설정하여 모든 장치와 앱이 동일한 네트워크에 연결되도록 구성하였다.

하드웨어 사양으로는 운영 체제 Ubuntu2 0.04, RAM 256GB, AMD 16-cores Ryzen Threadripper PRO CPU를 탑재한 고성능 서버를 사용하여 대용량 네트워크 데이터를 원활히 처리할 수 있게 하였다. 테스트 기기는 Nexus 5X(Android 8.1) 스마트폰으로, 실제 모바일 환경에서의 앱과 IoT 장치 간 통신을 재현하였다.

네트워크 구성은 IoT 장치와 앱 간의 통신을 실시간으로 감시하고 패킷을 수집할 수 있도록 설계되었다. 이를 통해 퍼징 과정에서 발생하는 다양한 네트워크 패킷을 분석하고, 패킷 전송 과정에서 발생할 수 있는 보안 취약점을 탐지할 수 있었다. 실험 환경의 구체적인 구성은 Fig. 4.에 나타나 있으며, 중앙의 분석 서버는 AP로서 네트워크 트래픽을 모니터링하고 패킷을 수집한다. Android 스마트폰은 컴패니언 앱이 설치된 장치로, IoT 장치와 실시간으로 상호작용하는 환경이다.

JBBHCB_2025_v35n1_119_9_f0001.png 이미지

Fig. 4. Experimental Environment Configuration

실험에 사용된 IoT 장치는 아마존(Amazon)과 알리익스프레스(AliExpress)에서 사용 빈도가 높은 제품을 기반으로 선정하였으며, 실제 환경과 유사한 네트워크 통신 상황을 재현하였다. 총 5개의 IoT 장치와 이들에 연동되는 5개의 컴패니언 앱을 실험 대상으로 선정하였다. 선정된 IoT 장치 목록과 실험에 사용된 컴패니언 앱을 정리하여Table 2.에 나타내었다. 선정된 실제 IoT 장치는 Fig. 5.와 같으며, 장치에 표시된 각 번호는 Table 2.에서의 Device ID를 의미한다.

JBBHCB_2025_v35n1_119_9_f0002.png 이미지

Fig. 5. Target Devices (Numbered Devices: 1~5)​​​​​​​

Table 2. IoT Device Companion App Information

JBBHCB_2025_v35n1_119_9_t0001.png 이미지

4.2 메모리 및 응답 시간 성능 비교 실험

제안된 기법과 DIANE의 성능 차이를 비교하기 위해, 각각 세 가지 IoT 장치(Device 1, Device 3, Device 5)에 대해 메모리 사용량과 이벤트 발생 후 네트워크 요청까지의 응답 시간을 측정하였다. 제안된 기법은 IoT 컴패니언 앱의 Target Activity에서 발생하는 UI 이벤트와 네트워크 트래픽을 동적으로 수집하고 분석하여 네트워크 요청을 트리거하는 SendMessage 후보군을 식별한다. 이를 위해 DroidBot[15]을 사용해 이벤트로 그를 수집하고 Tcpdump[16]로 네트워크 트래픽 데이터를 분석한다. 이러한 과정은 실시간성을 제공하는 장점이 있으나, 메모리 사용량 증가와 추가적인 응답 시간 요구와 같은 오버헤드가 발생할 가능성이 있다. 반면, DIANE은 정적 분석에 기반하여 네트워크 관련 메서드명을 필터링하는 단순한 방식으로 SendMessage 후보군을 탐지한다. DIANE의 분석 과정은 이벤트 발생 시점과 무관하게 전체 분석을 완료하는 데 걸리는 시간을 기준으로 측정하였다. 실험 결과, 제안된 기법과 DIANE의 메모리 사용량 및 응답 시간 성능 비교 결과는 Table 3.에 나타내었다.

Table 3. Memory usage and response time performance comparison results​​​​​​​

JBBHCB_2025_v35n1_119_10_t0001.png 이미지

먼저, 메모리 사용량 측면에서 제안된 기법은 DIANE보다 평균적으로 35.8%에서 39.4%까지 더 많은 자원을 소모한 것으로 나타났다. 이는 제안된 기법이 DroidBot과 Tcpdump를 활용한 동적 분석 과정에서 추가적인 데이터 수집과 호출 그래프 생성 작업을 수행하면서 높은 메모리 자원이 요구되었기 때문이다. 특히, Device 5의 경우 메모리 사용량 증가율이 39.4%로 가장 높았으며, 이는 복잡한 네트워크 호출 흐름이 메모리 요구량을 증가시킨 주요 요인으로 해석된다.

응답 시간 측면에서는 제안된 기법이 DIANE보다 평균적으로 23.9%에서 28.7% 더 소요되었다. 이는 제안된 기법이 실시간으로 UI 이벤트 발생부터 네트워크 요청 트리거까지의 모든 과정을 추적하기 때문에 추가적인 시간이 요구된 결과로 보인다. Device 5의 응답 시간이 28.7%로 가장 크게 증가했으며, 이는 동적 호출 그래프 생성 과정과 네트워크 요청 추적의 높은 복잡성에서 비롯된 것으로 분석된다.

실험 결과는 제안된 기법이 DIANE에 비해 자원 사용 측면에서 더 높은 오버헤드를 가지는 것을 보여준다. 이는 제안된 기법이 정적 분석뿐 아니라 동적 분석까지 결합하여 네트워크 요청 탐지 과정을 보다 정밀하게 수행하기 때문이며, DIANE은 이러한 동적 과정을 포함하지 않기 때문에 오버헤드가 상대적으로 낮게 측정되었다. 그러나, 제안된 기법은 이후 실험에서 DIANE보다 더 많은 SendMessage 후보군을 탐지하는 데 성공했다. 이는 오버헤드가 증가하더라도 동적 분석이 IoT 환경에서 네트워크 요청 탐지의 정확성과 포괄성을 크게 향상시킬 수 있음을 입증한다. 따라서 본 연구는 메모리 사용량과 응답 시간 증가를 보완하기 위한 추가적인 최적화를 통해 제안된 기법의 효율성을 더욱 강화할 가능성을 제시한다.

4.3 Candidate SendMessage 식별 비교 실험

본 실험에서는 정답지가 명확한 테스트 앱을 구축하여 제안된 동적 분석 방법론의 효과를 검증하였다. 실험에 사용된 상용 IoT 앱은네트워크 요청 및 호출 흐름이 복잡하게 구성되어 있어 정확한 정답을 파악하기 어렵다. 따라서 네트워크 요청 모듈과 호출 흐름이 명확히 정의된 테스트 앱을 제작하여 제안된 방법론의 성능을 체계적으로 평가하였다. 테스트 앱은 다양한 네트워크 요청 시나리오를 포함하도록 설계되었으며, 난독화 환경(Proguard[21])을 적용하여 현실적인 테스트 조건을 재현하였다. 제안된 동적 분석 방법론이 SendMessage 후보군 함수를 얼마나 효과적으로 식별할 수 있는지와 난독화된 환경에서의 탐지 성능 우수성을 확인하고자 하였다. Fig.6.은 테스트 앱의 UI 구조와 각 UI의 클릭 이벤트에 따라 호출되는 함수 경로를 시각적으로 나타낸다.

JBBHCB_2025_v35n1_119_11_f0001.png 이미지

Fig. 6. UI and Function Call path of Test App​​​​​​​

테스트 앱은 네트워크 트래픽을 유발하는 세 가지 주요 모듈(Network Module, Native Module, Firebase Module)로 구성된다. 실험에서는 테스트 앱 실행 시 UI 이벤트를 통해 발생하는 함수 호출을 실시간으로 추적하여 동적 호출 그래프를 생성하였다. 생성된 호출 그래프를 기반으로, 호출 경로의 가장 말단에 위치한 함수를 SendMessage 후보군으로 식별하였다. 이를 통해 네트워크 패킷을 트리거할 가능성이 높은 함수를 효과적으로 분석하였다.

실험 결과, 제안된 방법론은7개의Candidate SendMessage를 정확히 식별하며 100%의 커버리지를 달성하였다. 반면, DIANE은 1개의 network_method()를 탐지하며 14.2%의 커버리지를 기록하였다. DIANE은 네트워크 관련 메서드명에 의존한 필터링 방식을 사용하여 단순한 호출 경로에서만 유효성을 보였으나, 복잡한 함수 호출 구조와 난독화 환경에서는 탐지 성능이 제한되었다. FlowDroid[22]의 경우, SourceSink 파일의 기본 설정을 그대로 사용한 상태에서 실행되었으며, Candidate SendMessage를 전혀 탐지하지 못하였다. 이는 난독화된 환경에서 FlowDroid의 소스와 싱크 간 불일치로 인해 호출 경로를 효과적으로 탐지하지 못한 한계를 보여준다. 제안된 방법론은 정적 호출 그래프와 동적 호출 그래프를 결합하여 복잡한 호출 경로에서도 높은 탐지 성능을 보였으며, 다양한 모듈(Network, Native, Firebase)에서 SendMessage 후보군을 성공적으로 탐지하였다.

이는 난독화된 환경에서도 제안된 방법론이 기존 연구들에 비해 뛰어난 신뢰성과 커버리지를 제공함을 입증한다. 실험 결과는 Table 4.와 Fig. 7.에 정리하였으며, 제안된 방법론이 DIANE과 FlowDroid 대비 SendMessage 식별 능력에서 확연히 우수함을 보여준다.

Table 4. Comparison of Candidate SendMessage Function Identification Results in Test App​​​​​​​

JBBHCB_2025_v35n1_119_11_t0001.png 이미지

JBBHCB_2025_v35n1_119_11_f0002.png 이미지

Fig. 7. Comparison of Candidate SendMessage Identification Results Among the Proposed Methodology, DIANE, and FlowDroid​​​​​​​

따라서, 본 실험을 통해 제안된 동적 분석 방법론이 다양한 네트워크 모듈과 난독화된 환경에서 Candidate SendMessage를 효과적으로 탐지할 수 있음을 확인하였으며, IoT 환경의 보안 취약점 분석에 있어 실질적인 강점을 제공함을 입증하였다.

4.4 SendMessage 식별 비교 실험

본 실험에서는 DIANE과 제안된 방법론을 비교하여 5개의 상용 IoT 컴패니언 앱에서 SendMessage 함수 식별 성능을 평가하였다. 실험 결과, 각 디바이스에서 DIANE과 제안된 방법론 간의 탐지 성능 차이가 확인되었으며, 특정 디바이스에서는 두 방법론의 접근 방식 차이로 인해 식별된 SendMessage 후보군 및 최종 SendMessage의 수에서 차이가 발생하였다. 실험 결과는 Table 5에 나타내었으며, 각 장치별로 DIANE과 제안 기법의 True SendMessage Ratio를 비교하여 나타내었다.

Table 5. Comparison of SendMessage Function Identification Results​​​​​​​

JBBHCB_2025_v35n1_119_12_t0001.png 이미지

Device 1의 경우, DIANE과 제안된 방법론 모두 동일하게 3개의 SendMessage를 탐지하였다. 이 중 1개의 함수는 두 방법론에서 중복으로 식별되었으며, 나머지 2개의 함수는 각 방법론에서 독립적으로 탐지되었다. 제안된 방법론은 DIANE보다 더 많은 후보군을 탐지하며(423개 vs. 295개), 동적 분석을 결합하여 DIANE의 단순 필터링 방식을 보완할 수 있음을 보여주었다. 이는 정적 및 동적 분석간 상호보완 가능성을 확인할 수 있는 결과이다.

Device 2, 4에서는 DIANE이 SendMessage 후보군을 전혀 탐지하지 못한 반면, 제안된 방법론은 각각 2개와 1개의 SendMessage를 성공적으로 식별하였다. DIANE의 경우 네트워크 관련 메서드명에만 의존하는 단순 필터링 방식으로 인해 난독화된 환경에서는 탐지가 불가능했다. 반면, 제안된 방법론은 Target Activity를 기준으로 정적 호출 그래프를 생성하고, 동적 분석을 통해 추가적인 실행 흐름을 탐지함으로써 난독화된 환경에서도 SendMessage를 성공적으로 식별하였다. 이는 난독화 환경에서도 제안된 방법론이 신뢰성 있는 탐지 성능을 보였음을 입증한다.

Device 3의 실험 결과, DIANE은 3개의 SendMessage를 탐지한 반면, 제안된 방법론은 1개의 SendMessage만을 탐지하였다. 이는 DIANE의 단순 정적 분석 방식이 Device3에서 더 많은 SendMessage를 탐지할 수 있었던 주요 이유로 분석된다. DIANE은 네트워크 관련 메서드명을 기반으로 후보군을 식별하기 때문에, Kasa 앱이 네트워크 요청 수행 시 난독화되지 않은 메서드명과 패키지명을 사용한 점과 잘 매칭되었다. 이에 따라 DIANE은 더 많은 네트워크 관련 후보군을 포괄적으로 탐지할 수 있었지만, 실제 네트워크 요청을 트리거하지 않는 불필요한 후보군도 포함될 가능성이 높았다. 반면, 제안된 방법론은 Target Activity를 기준으로 정적 호출 그래프를 생성하고, 동적 분석을 통해 추가적인 네트워크 요청을 탐지하는 접근 방식을 취한다. 그러나 Kasa 앱의 네트워크 요청이 Target Activity와 직접적으로 연결되지 않고, 백그라운드 서비스나 워커 스레드에서 발생했을 가능성이 높다. 이로 인해 Target Activity 기반의 호출 그래프 분석에서는 네트워크 관련 호출 흐름을 탐지하기 어려웠다. 또한, 동적 분석 단계에서도 UI 이벤트 기반의 실행 흐름 탐지 방식이 백그라운드에서 발생하는 네트워크 요청을 충분히 보완하지 못했다. DIANE의 경우 단순 필터링 방식이 난독화되지 않은 네트워크 구조를 탐지하는 데 유리하게 작용한 반면, 제안된 방법론은 Activity와 호출 관계를 중심으로 분석함으로써 백그라운드에서 발생하는 네트워크 요청을 탐지하지 못하는 한계를 보였다.

이는 Kasa 앱의 네트워크 구조가 Target Activity와 독립적으로 동작하는 방식이었기 때문으로 분석된다. 이를 해결하기 위해서는 백그라운드 서비스와 워커 스레드에서 발생하는 네트워크 요청을 탐지할 수 있는 추가적인 분석 기법이 필요하다. 예를 들어, 서비스 및 워커 스레드의 호출 흐름을 추적하거나, 네트워크 트래픽 데이터를 실시간으로 모니터링하여 분석하는 방식을 결합할 수 있다. 이러한 개선이 이루어진다면, 제안된 방법론은 Device 3과 같은 비표준 네트워크 구조에서도 SendMessage를 효과적으로 탐지할 수 있을 것이다. 따라서, Device 3의 결과는 제안된 방법론이 DIANE에 비해 특정 네트워크 구조에서는 탐지 성능이 제한될 수 있음을 보여준다. 그러나 이러한 한계는 제안된 방법론이 난독화된 환경에서도 높은 신뢰성과 정밀성을 제공하며, 불필요한 후보군을 최소화할 수 있다는 강점과 상충되지 않는다. 제안된 방법론은 추가적인 분석 기법을 도입하여 백그라운드 요청 탐지 능력을 강화함으로써, 비표준 네트워크 구조에서도 성능을 향상시킬 수 있을 가능성을 보인다.

Device 5에서는 DIANE[13]이 1개의 SendMessage를 탐지한 데 반해, 제안된 방법론은 2개의 SendMessage를 탐지하였다. 이는 제안된 방법론이 정적 호출 그래프와 동적 분석을 결합하여 DIANE보다 더 넓은 범위의 호출 관계를 탐지할 수 있음을 보여준다.

True SendMessage Ratio(TSR)은 두 방법론의 성능 차이를 정량적으로 보여주는 지표로, 식별된 후보군 중 실제 SendMessage의 비율을 나타낸다. DIANE은 0.06%에 그쳤으나, 제안된 방법론은 0.92%로 약 15배 높은 참 탐지율을 기록하였다. 이는 DIANE이 난독화되지 않은 단순 네트워크 구조에서는 많은 후보군을 탐지했으나, 불필요한 후보군이 포함되어 식별 정확도가 낮아졌음을 의미한다. 그러나 제안 기법은 불필요한 후보군을 줄이고 네트워크 요청을 정확히 탐지할 수 있음을 보인다. 수식은 다음과 같다.

\(\begin{align}T S R(\%)=\left(\frac{\text { SendMessage 수 }}{\text { SendMessage Candidate 수 }}\right) \times 100\end{align}\)​​​​​​​

제안 기법은 DIANE의 한계를 극복하고, 난독화된 IoT 환경에서도 SendMessage 함수를 효과적으로 식별할 수 있는 신뢰성 있는 방법론임을 입증하였다. 백그라운드 서비스와 워커 스레드에서 발생하는 네트워크 요청을 처리하기 위한 추가적인 분석 기법을 결합한다면, 기존 한계를 극복하고 제안된 방법론의 성능은 더욱 향상될 가능성이 있다.

V. 논의

본 연구에서 제안된 방법론은 난독화된 IoT 컴패니언 앱 환경에서 기존 DIANE[13]에 비해 SendMessage 함수 탐지에서 높은 성능을 입증하였다. 실험 결과, DIANE이 탐지하지 못한 SendMessage 후보군을 추가로 식별하여 난독화 기법이 적용된 앱에서도 우수한 커버리지를 제공함을 확인하였다. 특히, 정적 분석과 동적 분석을 결합한 접근 방식을 통해 난독화 수준이 높은 환경에서도 SendMessage 탐지의 정확성과 포괄성을 크게 개선하였다. 이러한 결과는 IoT 장치의 보안 취약점을 탐지하는 데 있어 제안된 방법론이 실질적으로 기여할 가능성을 보여준다.

그러나, 본 연구는 제한된 수의 IoT 장치와 컴패니언 앱을 대상으로 수행되었으며, 난독화 기법의 복잡성이 더 높은 환경에서도 동일한 성능을 유지할 수 있는지에 대한 추가 검증이 필요하다. 또한, 메모리 사용량 및 응답 시간 증가와 같은 오버헤드가 관찰되었으며, 이는 IoT와 같이 리소스 제약이 있는 환경에서는 중요한 한계점으로 작용할 수 있다.

이를 보완하기 위해, 향후 연구에서는 다음과 같은 방안을 고려할 것이다. 첫째, 분석 과정에서 발생하는 메모리 사용량과 응답 시간을 줄이기 위한 최적화 기법을 개발하여 리소스 제약 환경에서도 효율적으로 동작할 수 있도록 개선할 계획이다. 둘째, DIANE과의 상호보완적 활용을 통해 난독화 수준과 환경에 따라 적절한 분석 전략을 적용하여 성능과 오버헤드 간의 균형을 강화할 예정이다.

향후 연구를 통해 제안된 방법론과 DIANE을 결합하여 다양한 난독화 환경에서 퍼징 실험을 수행하고, SendMessage 함수를 기반으로 IoT 장치와 컴패니언 앱 간 통신 흐름을 심층 분석하고자 한다.

VI. 결론

본 연구에서는 난독화된 IoT 컴패니언 앱에서 SendMessage 함수를 효과적으로 식별하기 위한 새로운 방법론을 제안하였다. 정적 분석과 동적 분석을 결합한 이 방법론은 DIANE에 비해 더 높은 정확도와 커버리지를 제공하며, 난독화된 환경에서도 SendMessage 탐지에 성공하였다. 실험 결과, DIANE이 탐지하지 못한 SendMessage 후보군을 추가로 식별하여 IoT 보안 취약점 탐지에 중요한 기여 가능성을 확인하였다.

제안된 방법론은 난독화 수준에 따라 정적 및 동적 분석을 선택적으로 수행하여 보안 분석의 효율성과 정확도를 높였다. 이를 통해 IoT 앱과 장치 간의 통신 흐름에 대한 이해를 심화하고 IoT 보안 연구의 범위를 확장하였다.

향후 연구에서는 SendMessage 함수를 기반으로 IoT 장치에서 블랙박스 퍼징을 수행하고, 제안된 방법론과 DIANE을 상호보완적으로 활용하여 다양한 환경에서 취약점 탐지 효율성을 높이는 동시에 오버헤드를 줄이기 위한 최적화를 진행할 계획이다.

References

  1. K. Rose, S. Eldridge, and L. Chapin, "The internet of things: An overview," The Internet Society (ISOC), vol. 80, pp. 1-50, 2015.
  2. M. A. Ezechina, K. K. Okwara, and C. A. U. Ugboaja, "The Internet of Things (IoT): A Scalable Approach to Connecting Everything," The International Journal of Engineering and Science, vol. 4, no. 1, pp. 9–12, 2015.
  3. "[Market Research] Domestic IoT Market Expected to Reach 38.17 Trillion Won by 2025," Digital Economy News, Jan. 11, 2022.
  4. IoT Analytics, "State of IoT Spring 2024: 10 emerging IoT trends driving market growth," https://iot-analytics.com/state-of-iot-10-emerging-iot-trends-driving-market-growth/, accessed May 2024.
  5. Mordor Intelligence, "IoT Market Size & Share Analysis - Growth Trends & Forecasts (2025 - 2030)," https://www.mordorintelligence.com/industry-reports/internet-of-things-iot-market, accessed May. 2024.
  6. Zscaler, "2023 ThreatLabz Report Indicates 400% Growth in IoT Malware Attacks," https://www.zscaler.com/blogs/security-research/2023-threatlabz-report-indicates-400-growth-iot-malware-attacks, accessed Jan. 2024.
  7. Electropages, "IoT security: Key findings from Nokia"s 2023 threat intelligence report," https://www.electropages.com/blog/2023/06/rising-security-threat-iot-cyberattacks-nokias-latest-report, accessed Jan. 2024.
  8. "Chinese Hacker Breaches Domestic IP Cameras... 4,500 Personal Videos Exposed on Telegram," Boan News, Dec. 30, 2023.
  9. "IoT Security Certification Status: Only One Home CCTV Certified... Why So Vulnerable?" Boan News, Jan. 23, 2024.
  10. J. Chen, W. Diao, Q. Zhao, C. Zuo, Z. Lin, X. Wang, and K. Zhang, "IoTFuzzer: Discovering memory corruptions in IoT through app-based fuzzing," Proceedings of the Network and Distributed System Security Symposium (NDSS), pp. 1-15, Feb. 2018.
  11. X. Feng, R. Sun, X. Zhu, M. Xue, S. Wen, D. Liu, S. Nepal, and Y. Xiang, "Snipuzz: Black-box fuzzing of IoT firmware via message snippet inference," Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security (CCS '21), pp. 337-350, Nov. 2021.
  12. Z. Xu, W. Huang, W. Fan, and Y. Cheng, "FIoTFuzzer: Response-based black-box fuzzing for IoT devices," Proceedings of the 2022 IEEE/ACIS 22nd International Conference on Computer and Information Science (ICIS), pp. 239–244, June 2022.
  13. N. Redini, A. Continella, D. Das, G. De Pasquale, N. Spahn, A. Machiry, A. Bianchi, C. Kruegel, and G. Vigna, "DIANE: Identifying fuzzing triggersin apps to generate under-constrained inputs for IoT devices," Proceedings of the 2021 IEEE Symposium on Security and Privacy (SP), pp. 484–500, May 2021.
  14. X. Wang, Y. Sun, S. Nanda, and X. Wang, "Looking from the mirror: Evaluating IoT device security through mobile companion apps," Proceedings of the 28th USENIX Security Symposium (USENIX Security '19), pp. 1151–1167, Aug. 2019.
  15. Y. Li, Z. Yang, Y. Guo, and X. Chen, "DroidBot: A lightweight UI-guided test input generator for Android," Proceedings of the 39th International Conference on Software Engineering Companion (ICSE-C '17), pp. 23–26, May 2017.
  16. Tcpdump and Libpcap, "Tcpdump and Libpcap official website," https://www.tcpdump.org/, accessed July. 2023.
  17. GitHub, "PySoot: A lifter from JAR/APK files to a Soot-like Python IR," https://github.com/angr/pysoot, accessed July 2023.
  18. Frida, "Frida," https://frida.re/, accessed Jan. 2024.
  19. Android Developers, "MonkeyRunner," https://developer.android.com/studio/test/monkeyrunner/index.html, accessed Jan. 2024.
  20. L. Gomez, I. Neamtiu, T. Azim, and T. Millstein, "RERAN: Timing- and touch-sensitive record and replay for Android," Proceedings of the 2013 International Conference on Software Engineering (ICSE '13), pp. 72–81, May 2013.
  21. Guardsquare, "ProGuard," https://www.guardsquare.com/proguard, accessed Jan. 2024.
  22. S. Arzt, S. Rasthofer, C. Fritz, E. Bodden, A. Bartel, J. Klein, Y. Le Traon, D. Octeau, and P. McDaniel, "FlowDroid: Precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps," Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '14), pp. 259–269, June 2014.
  23. K. Liu, M. Yang, Z. Ling, Y. Zhang, C. Lei, J. Luo, and X. Fu, "RIoTFuzzer: Companion app assisted remote fuzzing for detecting vulnerabilities in IoT devices," Proceedings of the 2024 ACM SIGSAC Conference on Computer and Communications Security (CCS '24), pp. 2341-2354, Dec. 2024