익스텐션을 분석하기 위한 제약 조건 기준과 카테고리화
Chrome extension은 특정 환경에서만 실행되도록 설계된 경우가 많다. 악성 익스텐션의 경우 일반적인 환경에서는 정상적으로 보이지만, 특정 제약 조건이 충족되었을 때만 악성 기능을 수행하는 경우가 있다. 다음은 익스텐션의 실행을 결정하는 제약 조건을 기준으로 익스텐션을 카테고리화하고, 이를 분석하는 방법을 정리해보려 한다.
합리적인 카테고리화를 위해서, 익스텐션의 동작을 결정하는 웹 페이지의 상태(status) 기반 제약 조건을 중심으로 카테고리화하면, 익스텐션이 어떤 요소를 감지하고 실행되는지 분석할 수 있을 것이다.
웹 페이지 상태 기반 익스텐션 카테고리화
본인은 웹 페이지 상태를 6가지로 구분하고, 각 항목 별 Chrome Web Store에서 대표적인 예시가 되는 익스텐션 몇 가지를 찾아 매칭해보았다. 이러한 분석을 통해 익스텐션이 어떻게 실행 되는지, 악성 여부를 어떻게 탐지 할 수 있는지 연구할 수 있다.
1. 텍스트 입력 필드 기반
- 실행 조건: 텍스트 박스가 있을 때 실행된다.
- Examples: Grammarly, Google Translate
2. 미디어 콘텐츠 기반
- 실행 조건: 동영상, 오디오가 있을 때 실행된다.
- Examples: Adblock for YouTube, Picture-in-Picture
3. 버튼 클릭 기반
- 실행 조건: 특정 버튼을 클릭하면 실행된다.
- Examples: Google Keep 익스텐션, 1Password
4. 페이지 요소 변경 감지 기반
- 실행 조건: 웹 사이트의 DOM이 변경될 때 실행된다.
- Examples: Auto Refresh Plus, Web Scrapers
5. 마우스 / 키보드 이벤트 기반
- 실행 조건: 사용자가 특정 행동(마우스 이동, 키 입력)을 하면 실행된다.
- Examples: Dark Reader, Volume Booster
6. 페이지 로딩 상태 기반
- 실행 조건: 웹 사이트가 특정 상태일 때 실행된다.
- Examples: SEO 분석 익스텐션, 가격 추적기