DEEP DIVE REPORT

HAR와 소스맵으로 웹 애플리케이션 공격면을 점검하는 실전 가이드

SecurityDesk
2026.08.27 조회 1

개요

개요 인포그래픽
unhar는 HAR 파일에서 JavaScript와 HTML을 추출하고, 원래 URL 폴더 구조를 보존한 뒤 소스맵을 검색하여 beautify/unminify 처리를 수행한다(unhar 프로젝트 문서, unhar 기능 소개 기사). sourcemapper는 webpack 또는 유사 도구로 생성된 소스맵을 파싱해 원본 JavaScript 파일을 추출하고, 소스맵 내 파일 경로 기반으로 소스 트리를 재구성한다(sourcemapper 프로젝트 문서).

소스맵은 minified JavaScript의 디버깅을 돕기 위해 사용된다. Pulse Security 기사는 다운로드한 소스맵 파일로부터 원본 소스 코드 트리를 복원하는 과정을 살펴본다. 이 두 흐름을 연결하면, 실제 트래픽에 나온 리소스를 원본 소스 수준까지 되돌려 볼 수 있는 점검 경로가 형성된다.

적용 환경·전제조건

해당 절차가 성립하려면 몇 가지 전제가 필요하다.

  • 소스맵을 추가로 가져오거나 활용할 때는 소스맵이 외부에서 열릴 수 있어야 한다. 소스맵 기반 복원은 해당 소스맵 파일을 확보하고 접근할 수 있는 경우에만 가능하다.
  • unhar의 파일 저장 규칙도 전제에 포함된다. 경로 단위가 기존 디렉터리와 충돌하면 해당 파일은 디렉터리 안에 index.html로 저장된다.

기술 절차·판단 근거

추출과 복원은 다음 순서로 연결된다.

  • HAR 파일에서 리소스 추출. unhar를 실행하면 HAR 파일의 JavaScript와 HTML이 원래 URL 폴더 구조를 따르는 파일 형태로 나온다. 기본 실행은 python3 unhar.py site.har --output folder 형식이며, --no-srcmap으로 소스맵 검색을, --no-beautify로 beautify/deobfuscation을 건너뛸 수 있다. 두 옵션을 함께 사용하면 후처리 없는 추출을 수행할 수 있다.
  • 소스맵 기반 원본 복원. sourcemapper는 webpack 또는 유사 도구로 생성된 소스맵을 파싱해 원본 JavaScript 파일을 추출하고, 소스맵 내 파일 경로 기반으로 소스 트리를 재구성한다.
  • 구조 파악. 소스맵 내 파일 경로 정보를 분석하면 개발 단계의 파일 배치와 코드 구조를 추론할 수 있다. 이 추론은 소스맵이 외부에서 접근 가능할 때 성립한다.

이 흐름의 판단 근거는, 실제 트래픽에 노출된 리소스가 원본 소스 수준까지 되돌려져 개발 환경의 구조를 드러낼 수 있다는 점이다. 다만 그 결과는 소스맵이 존재하고 접근 가능하다는 전제에 달려 있다.

운영상 영향

해당 절차는 점검 범위를 넓힌다.

  • 프로덕션에서 실제로 로드되는 리소스를 확인. minified 상태만 봐도 공격 표면의 한 부분이지만, 소스맵 복원이 가능하면 원본 구조까지 읽을 수 있다.
  • 코드 구조의 가시성 확보. 소스맵의 파일 경로를 바탕으로 원본 JavaScript 소스 트리를 재구성할 수 있어, 소스맵이 존재하는 환경에서는 개발 단계의 구조를 살펴볼 수 있다.
  • 추출·후처리 단계 조절. --no-srcmap은 소스맵 가져오기를, --no-beautify는 beautify/deobfuscation을 건너뛰므로, 점검 목적에 맞춰 추출과 후처리 단계를 조절할 수 있다.

이 영향은 모두 조건부이다. 소스맵이 없거나 접근이 차단된 환경에서는 복원 범위가 축소되고, 결과적으로 공격면 점검의 해상도도 낮아진다.

탐지·대응

  • 소스맵이 외부에서 열릴 수 있는지가 핵심 확인 포인트다. 해당 소스맵 파일을 확보하고 접근할 수 있는 경우에만 원본 소스 트리 복원이 가능하다는 점이 점검의 전제다.
  • 추출·후처리 단계 조절. --no-srcmap, --no-beautify 옵션을 사용해 소스맵 가져오기와 beautify/deobfuscation 단계를 조절할 수 있다.
  • 경로 충돌 시 저장되는 index.html 파일 확인. 경로 단위가 기존 디렉터리와 충돌하면 해당 파일은 그 디렉터리 안에 index.html로 저장된다는 동작에 따라, 생성된 파일 구조를 확인한다.

한계 및 참고자료

해당 절차에는 확인이 필요한 지점이 있다.

  • unhar의 파일 저장 규칙은 디렉터리 충돌 상황을 전제로 한다. 이 규칙이 모든 파일에 동일하게 적용되는지, 예외가 존재하는지는 확인이 필요하다.

해당 절차를 실제 환경에 적용할 때는, 자원의 접근성과 소스맵의 존재 여부를 먼저 확인한 뒤 추출과 복원을 진행하는 것이 합리적이다.

참고자료

함께 읽으면 좋은 글

본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

로그인

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

IT 도구 서랍

→ Unix: 2025-01-15T09:30:00
→ 날짜: 1736934600

→ ASCII: ABC
→ 문자: 65 66 67

ASCII 코드표 — 클릭하면 입력란에 추가

DecHex약어설명
DecHex문자
DecHex문자

→ 유니코드: 홍길동
→ 문자: \ud64d\uae38\ub3d9