GitHub의 AI 보안 에이전트가 본격적으로 취약점을 파헤치기 시작했다. 9월 28일 GitHub Security Lab은 공식 블로그를 통해 오픈소스 AI 보안 에이전트로 안드로이드 앱을 감사한 연구진이 취약점 24건을 발견·신고했다고 밝혔다. 이미 공개된 고위험 사례 2건도 포함돼 있다. 하나는 임의의 앱이 사용자의 정확한 위치를 추적할 수 있는 것이고, 다른 하나는 위키피디아 앱 계정을 통째로 탈취할 수 있는 것이다.
이 도구는 seclab-taskflow-agent라 불리며, 감사 태스크플로인 seclab-taskflows 역시 완전 오픈소스다. 발상은 코드베이스 전체를 대형 모델에 던져 운에 맡기는 것이 아니라, YAML 프롬프트로 감사를 점진적 단계로 쪼개 '어떻게 감사할지'를 재사용 가능한 태스크플로로 패키징하는 것이다. 안드로이드용으로는 전용 태스크플로 2종이 추가됐다. gather_mobile_entry_point_info는 공격자가 조종 가능한 데이터가 유입될 수 있는 코드 진입점을 찾아내고 모바일·비모바일 공격 표면을 분리한다. classify_application_local은 진입점 유형별로 확인해야 할 대표적인 취약점 클래스를 나열한다. 예컨대 intent 기반 진입점을 발견하면 confused deputy(혼동된 대리인), 안전하지 않은 브로드캐스트 같은 모바일 특유 문제를 점검하도록 모델에 상기시킨다.
실행도 간단하다. seclab-taskflows 저장소에서 Codespace를 열고 대상 저장소에 ./scripts/audit/run_mobile.sh을 실행하면 된다. 중규모 저장소는 1~2시간이면 결과가 나오고 SQLite 데이터베이스에 기록된다. has_vulnerability 열에 체크된 행을 보면 된다. 진입 장벽은 두 가지다. GitHub Copilot 라이선스가 필요하다는 점, 그리고 감사 과정에서 premium 모델 요청을 대량으로 소모해 토큰 비용이 만만치 않다는 점이다.
이미 공개된 고위험 사례 2건
첫 번째는 OsmAnd, 다운로드 1천만 건이 넘는 오픈소스 내비게이션 앱이다. MapActivity가 exported(외부 공개) 상태라 어떤 앱에서든 intent를 보낼 수 있는데, 설정 가져오기 처리부가 silent_import, replace 같은 intent extras를 그대로 신뢰한다. 즉 권한이 전혀 없는 악성 앱이 OsmAnd 설정을 몰래 바꿔 지도 타일 URL을 공격자 도메인으로 바꿔치기할 수 있다. 사용자가 지도 타일을 불러올 때마다 그 정확한 좌표가 공격자 서버로 전송된다. 사실상 실시간 위치 유출이다. 같은 취약점으로 사용자가 이용한 모든 경로의 출발지와 목적지도 탈취할 수 있으며 사용자는 전혀 눈치채지 못한다.
두 번째는 위키피디아 안드로이드 앱으로, 로직 버그 2개를 연결해 계정 탈취로 이어진다. 앱은 wikipedia:// 딥링크를 등록하고 있는데 호스트명 파서가 도메인 접미사만 검사하기 때문에 evil-wikipedia.org 같은 도메인도 검증을 통과해 사용자를 공격자 페이지로 유도할 수 있다. 여기에 쿠키 매니저의 도메인 검사 역시 접미사 비교만 수행하므로 공격자 페이지가 위키피디아의 장기 세션 쿠키를 가져갈 수 있다. 쿠키 하나가 모든 Wikimedia 프로젝트에서 통용돼 사용자 이름과 장기 토큰이 함께 유출된다.
LLM은 취약점을 찾을 수 있지만 심각도는 판단하지 못한다
블로그는 이 방법의 단점도 솔직히 인정했다. LLM은 취약점 발견에는 능숙해서 사람이 놓치기 쉬운 로직 버그까지 찾아내지만, 심각도 추정은 서툴다. 영향이 작은 저위험 문제를 자주 보고하고, 외부 저장소로 제한된 경로 탐색 같은 '완화 요인이 있는' 케이스도 오판하기 쉽다. 모든 탐지 결과는 모바일 보안을 이해하는 연구원의 검토가 여전히 필요하고, 심각한 케이스에서는 모델이 실제로 PoC를 구축해 악용 가능성을 확인해야 한다.
여기서 의미는 '24'라는 숫자가 아니라 감사 방법론이 처음으로 오픈소스화되고 재현 가능한 파이프라인이 됐다는 점이다. Security Lab은 앞서 C/C++용 AI 퍼징 태스크플로를 오픈소스화했고(저장소 주소만 지정하면 자동으로 취약점을 발굴), 이번에는 모바일 공백을 메웠다. 일반 개발자에게 실용적 가치는 명확하다. 보안팀 순서를 기다릴 필요 없이 자신의 저장소에 실행하면 실제 문제들을 먼저 쓸어낼 수 있다.