03. 브라우저 익스텐션 리버싱 빠른 루틴
브라우저 확장 프로그램 분석에서 가장 중요한 파일은 압축된 번들이 아니라 manifest.json이다. 승인된 확장 프로그램, 자기 소유 코드, CTF 샘플만 복사하고 실행한다. Chrome과 Edge의 Manifest V3에서는 background page 대신 service worker가 중심이 될 수 있으므로, 버전과 브라우저 차이를 먼저 기록한다.
권한에서 데이터 흐름으로
CRX를 직접 변형하기보다 테스트 사본을 설치하고, 필요하면 ZIP 컨테이너의 구조만 읽는다. 매니페스트에서 permissions, host_permissions, content_scripts, background.service_worker, externally_connectable, web_accessible_resources를 확인한다. tabs, cookies, webRequest 같은 권한은 위험의 증거가 아니라 가능한 데이터 흐름의 시작점이다.
Content script가 웹 페이지의 권한 있는 컨텍스트와 메시지를 주고받는다면 runtime.onMessage와 onMessageExternal의 송신자 검증, 요청 타입, 응답에 포함되는 비밀을 추적한다. 웹 페이지가 보낸 값을 background가 그대로 privileged API에 전달하는지가 수평 경계의 핵심이다. storage.local에 토큰이 있다는 사실도 저장 수명·암호화·동일 프로필 접근 조건과 함께 평가한다.
재현 가능한 관찰
DevTools의 service worker 검사기와 네트워크 패널로 이벤트를 관찰하고, 번들에서는 sourceMappingURL, manifest 파일명, fetch 호출, 메시지 문자열을 기준으로 진입점을 좁힌다. 소스맵이 있더라도 배포물과 정확히 대응하는지 확인한다. 분석 중 네트워크 요청은 테스트 도메인으로 제한하고, 실제 세션 쿠키나 제3자 데이터를 수집하지 않는다.
보고서에는 과도한 권한 목록보다 “어떤 입력이 어느 컴포넌트를 거쳐 어떤 데이터에 접근했는가”를 남긴다. 권한 최소화, 명시적 sender 검증, 메시지 스키마 검증, 민감 데이터의 짧은 보존 기간이 도구 선택보다 재현 가능한 개선이다.