CovAgent: AI 에이전트와 동적 계측으로 30% 커버리지 한계 돌파
초록
CovAgent는 안드로이드 앱의 UI 퍼징에 LLM 기반 에이전트를 결합해, Smali 코드와 컴포넌트 전이 그래프를 분석하고, 도달 불가능한 액티비티의 활성화 조건을 자동 추론한다. 추론된 조건을 만족시키는 Frida 동적 계측 스크립트를 생성·주입함으로써 기존 퍼징 도구(APE, Fastbot 등)의 활동 커버리지를 30% 이상 끌어올린다. 실험 결과, CovAgent‑Fastbot은 LLMDroid‑Fastbot 대비 101%~179% 높은 액티비티 커버리지를 달성했으며, Scenedroid 대비 3배 이상 액티비티 실행 성공률을 기록했다.
상세 분석
본 논문은 안드로이드 UI 테스트에서 흔히 관찰되는 “30% 커버리지 저주”를 극복하기 위해 두 단계의 에이전트 기반 프레임워크를 제안한다. 첫 번째 에이전트는 앱을 디컴파일하여 Smali 코드와 컴포넌트 전이 그래프(CTG)를 추출하고, 체인‑오브‑생각(CoT) 프롬프트와 Model‑Context Protocol(MCP) 인터페이스를 활용해 각 비도달 액티비티의 활성화 조건을 정형화한다. 여기서 활성화 조건이란 외부 서버 응답, 하드웨어 상태(SD 카드 연결), 환경 변수(위치, 사용 패턴) 등 실행 전 반드시 만족해야 하는 가드 로직을 의미한다. 기존 연구는 이러한 조건을 수작업으로 탐색했으나, CovAgent는 LLM이 코드 흐름을 역추적하고, 조건에 필요한 API 호출과 파라미터를 식별하도록 자동화한다.
두 번째 에이전트는 첫 번째 에이전트가 제공한 조건 정보를 바탕으로 Frida 기반 동적 계측 스크립트를 자동 생성한다. Frida는 런타임 메모리 내 메서드 구현을 후킹해, 가드 로직이 검사하는 값들을 인위적으로 조작하거나, 필요한 Intent‑Bundle를 직접 주입한다. 스크립트는 에뮬레이터에서 사전 검증을 거쳐 예외 메시지를 피드백으로 받아 재학습함으로써 안정성을 높인다. 이 접근법은 ADB 명령이 지원하지 않는 복합 데이터 구조와 디바이스 상태 변조를 가능하게 하여, 기존 퍼징 도구가 놓치는 경로를 효과적으로 열어준다.
실험 설계는 네 가지 연구 질문(RQ1‑RQ4)으로 구성된다. RQ1에서는 CovAgent‑APE가 평균 49.5%의 액티비티 커버리지를 달성해, 기존 APE의 17.7% 대비 2.8배 향상됨을 보였다. RQ2에서는 CovAgent‑Fastbot이 LLMDroid‑Fastbot(17.2%) 대비 34.6%로 101% 이상의 향상을 기록했다. RQ3에서는 동적 계측을 통한 액티비티 실행 성공률이 Scenedroid(15.8%)에 비해 54.8%로 3배 이상 우수했으며, RQ4에서는 활성화 조건 추론 정확도가 무작위 베이스를 크게 앞섰음이 입증되었다.
핵심 기여는 (1) 에이전트 기반 정적·동적 분석을 결합한 새로운 탐색 프레임워크, (2) 실험을 통한 커버리지 및 액티비티 실행 성공률의 실질적 향상, (3) 오픈소스 구현과 재현 가능한 데이터셋 제공이다. 한계점으로는 LLM의 추론 오류가 스크립트 생성에 영향을 미칠 수 있으며, 복잡한 멀티스레드 환경에서 계측 안정성이 떨어질 가능성이 있다. 향후 연구는 보다 정교한 프롬프트 설계와 멀티에이전트 협업, 그리고 실제 디바이스에서의 대규모 평가를 목표로 한다.
댓글 및 학술 토론
Loading comments...
의견 남기기