개요

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의 파일 저장 규칙은 디렉터리 충돌 상황을 전제로 한다. 이 규칙이 모든 파일에 동일하게 적용되는지, 예외가 존재하는지는 확인이 필요하다.
해당 절차를 실제 환경에 적용할 때는, 자원의 접근성과 소스맵의 존재 여부를 먼저 확인한 뒤 추출과 복원을 진행하는 것이 합리적이다.
참고자료
- Spix0r/unhar: Extract JS/HTML from HAR files · auto-fetch source maps
- sourcemapper: Extract JavaScript source trees from Sourcemap files
- Extracting JavaScript from Sourcemaps
- unhar | Extract JavaScript & HTML from HAR Files + Auto-Fetch Source Maps
함께 읽으면 좋은 글
- CVE-2026-77550: UniFi OS 인증 우회 취약점, 공식 권고 확인과 네트워크 접근 점검이 먼저
- 모바일 앱 XML 구성 파일 보안 점검: 하드코딩 비밀정보부터 권한·검증까지
- CVE-2026-21962 대응: Oracle HTTP Server와 WebLogic 프록시 플러그인 실제 악용 긴급 점검
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!