Chrome Extension Request Hooking 분석

Chrome Extension Request Hooking 분석

Chrome Extension Request Hooking 분석

Chrome Extension에서 네트워크 요청을 가로채는 구조와 내부 동작 원리 분석

1. 개요

Chrome Extension은 브라우저 내부에서 동작하며 네트워크 요청을 감시하고 수정할 수 있다.

Request Intercept Service Worker WebRequest Forensics

주요 사용 목적:

  • 트래픽 분석
  • 광고 차단
  • 보안 검사
  • 데이터 수집

2. 전체 구조

Web Page
   ↓
Chrome Browser
   ↓
Extension Service Worker
   ↓
WebRequest API
   ↓
Request Hooking
   ↓
Network Server

Extension이 Service Worker를 통해 요청을 가로채는 구조이다.

3. Extension 구성

파일역할
manifest.jsonExtension 설정
service_worker.js백그라운드 동작
content_script.js웹페이지 접근
popup.htmlUI

4. Manifest 설정

{
  "manifest_version": 3,
  "name": "Request Hook",
  "version": "1.0",
  "permissions": ["webRequest", "webRequestBlocking"],
  "host_permissions": [""],
  "background": {
    "service_worker": "service_worker.js"
  }
}

webRequest 권한이 핵심이다.

5. Request Hooking 코드

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    console.log(details.url);
    return { cancel: false };
  },
  { urls: [""] },
  ["blocking"]
);

모든 요청을 가로채고 로그를 출력한다.

6. Request 수정

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    details.requestHeaders.push({
      name: "X-Test",
      value: "Hooked"
    });
    return { requestHeaders: details.requestHeaders };
  },
  { urls: [""] },
  ["blocking", "requestHeaders"]
);

Header를 수정할 수 있다.

7. Service Worker 구조

Service Worker Start
    ↓
Event Listener 등록
    ↓
Request 발생
    ↓
Hooking 수행
    ↓
Request 전달

8. 내부 동작 흐름

Browser Network Stack
    ↓
Extension API
    ↓
Service Worker
    ↓
JavaScript Hook
    ↓
Network Continue

Chrome 내부 네트워크 스택에서 Extension이 개입한다.

9. Content Script Hooking

var originalFetch = window.fetch;

window.fetch = function() {
  console.log("fetch intercepted");
  return originalFetch.apply(this, arguments);
};

JavaScript 레벨에서도 Hooking 가능하다.

10. Request Hooking 종류

Hook 방식설명
webRequest네트워크 레벨
fetch HookJavaScript 레벨
XMLHttpRequest HookAJAX 감시
Service WorkerBackground 감시

11. 포렌식 관점 분석

  • Extension 내부 JS 분석
  • Service Worker 코드 확인
  • webRequest 권한 확인
  • 네트워크 로그 비교
  • 메모리 Hook 코드 탐색

12. 핵심 분석 포인트

  • manifest.json 권한
  • Service Worker 코드
  • webRequest 이벤트
  • fetch Hook 여부
  • Header 수정 로직

13. 정리

  • Chrome Extension은 네트워크 요청을 가로챌 수 있다
  • webRequest API가 핵심
  • Service Worker에서 Hook 수행
  • JavaScript

댓글

이 블로그의 인기 게시물

[Windows 분석] ShellExperienceHost.exe의 역할과 CPU 점유율 해결법 (엔지니어 가이드)

[Intel 보안 분석] jhi_service.exe의 정체와 인텔 관리 엔진(ME)의 역할