PDF는 가장 널리 사용되는 문서 형식 중 하나이지만, 그 내부에는 사용자도 모르게 실행되는 악성코드가 숨겨질 수 있는 구조적 취약성이 존재한다. 해커들은 이런 취약점을 활용해 PDF에 자바스크립트를 삽입하거나, 문서에 위장된 링크를 심거나, 자동 실행 명령어를 숨기는 방식으로 공격을 시도한다.
겉보기엔 평범한 문서처럼 보이는 PDF지만, 그 속엔 랜섬웨어, 백도어, 피싱 링크, 시스템 침투 명령이 포함되어 있을 수 있다. 이 글에서는 해커들이 실제로 사용하는 PDF 악성코드 은닉 방식 5가지를 상세히 분석하고, 사용자가 어떻게 이를 구별하고 방지할 수 있는지를 함께 안내한다.
✅ 1. PDF 내부에 자바스크립트 삽입 (JavaScript Injection)
PDF는 자바스크립트를 내부에 삽입할 수 있도록 설계돼 있다.
해커는 이 기능을 이용해 PDF가 열리는 순간 특정 스크립트를 실행시켜 파일 다운로드, 시스템 명령 실행, 악성코드 설치 등의 동작을 유도한다.
📌 공격 방식
- 문서 열기 → 자동으로 app.launchURL() 또는 this.exportDataObject() 등 실행
- 사용자 동작 없이 백그라운드에서 작동
- 보통 Adobe Reader 취약점을 함께 이용
✅ 예방 팁
- PDF 뷰어에서 JavaScript 실행 차단 설정
- VirusTotal, PDF Examiner로 사전 검사
- PDF는 브라우저에서 열지 않고 보안 뷰어 사용
✅ 2. 문서에 위장된 링크 삽입 (Phishing Link Injection)
해커는 PDF 안에 정상 링크처럼 보이는 가짜 링크를 삽입해 사용자 클릭을 유도한다.
링크를 클릭하면 가짜 로그인 페이지나 악성 파일 다운로드 페이지로 연결되며, 이로 인해 계정 탈취나 악성코드 감염이 일어난다.
📌 공격 방식
- “구글 로그인” 버튼 삽입 → 가짜 사이트 연결
- “PDF 파일 전체 보기” 등 추가 파일 열기 유도
- 사용자 직접 클릭 필요 → 사회공학 기법 포함
✅ 예방 팁
- 링크 클릭 전 마우스 올려서 URL 미리 확인
- PDF 내부 링크는 반드시 주소 확인 후 접속
- 기업/기관에서 온 문서라도 URL 신중하게 체크
✅ 3. 자동 실행 명령어(Launch Action) 삽입
PDF는 특정 상황에서 명령어를 자동 실행할 수 있는 기능을 제공한다.
이 기능은 원래 프레젠테이션용으로 설계된 기능이지만, 해커는 이를 악용해 시스템 명령을 실행하거나, 외부 프로그램을 호출할 수 있다.
📌 공격 방식
- Launch 액션을 통해 .exe 또는 .bat 파일 실행
- 사용자가 PDF를 열기만 해도 자동 실행
- 예전 Adobe Reader 버전에서 취약점 심각
✅ 예방 팁
- Adobe Reader 최신 버전 유지
- "첨부파일 자동 실행" 설정 해제
- PDF 열기 전에 구조 분석 툴(PDF Examiner) 사용
✅ 4. 악성 첨부파일(Embedded File) 포함
해커는 PDF 내부에 다른 파일을 첨부파일 형태로 삽입하고, 그 첨부파일을 열도록 유도한다.
이 방식은 사용자가 실제로 첨부파일을 클릭해야 감염되기 때문에 사회공학적 공격과 함께 사용된다.
📌 공격 방식
- “견적서 확인은 첨부파일을 클릭하세요”
- PDF 안에 .exe, .docm, .scr 등이 숨겨짐
- 일부 보안 뷰어는 첨부파일 존재 자체를 표시 안함
✅ 예방 팁
- PDF에 첨부파일이 있다면 절대 실행하지 말 것
- 안전한 뷰어(SumatraPDF 등)는 아예 첨부파일 열기 기능 없음
- PDF 열기 전 구조 분석 툴로 첨부 존재 여부 확인
✅ 5. 취약점(CVE)을 활용한 악성 PDF 제작
해커는 Adobe Reader, Foxit 등 주요 뷰어의 **보안 취약점(CVE)**을 분석한 후, 이를 기반으로 공격용 PDF를 제작한다.
사용자가 특정 버전의 뷰어를 사용 중이라면, PDF를 열기만 해도 악성 코드가 시스템에 설치된다.
📌 공격 방식
- 특정 버전에서만 작동하는 코드 삽입
- use-after-free, stack overflow 등 메모리 공격 방식 사용
- 악성 PDF는 탐지가 어려워 방심하기 쉽다
✅ 예방 팁
- PDF 뷰어 항상 최신 버전 유지
- 자동 업데이트 기능 반드시 활성화
- 구버전 Adobe Reader 사용자는 즉시 업그레이드
✅ 결론
PDF 파일은 단순한 문서처럼 보이지만, 그 안에는 생각보다 훨씬 복잡한 구조와 기능이 숨어 있다.
해커는 이 구조를 이용해 다양한 방식으로 악성코드를 숨기고, 사용자가 열기만 해도 시스템을 감염시킬 수 있다.
악성 PDF 공격 5대 방식 요약:
방식 | 설명 | 사용자 대응 |
JavaScript 삽입 | 열자마자 자동 실행 | JS 차단 설정 필수 |
링크 위장 | 피싱 사이트 유도 | 링크 미리보기 확인 |
자동 실행 명령어 | .exe 자동 실행 | 최신 뷰어 유지 |
첨부파일 삽입 | 사용자 클릭 유도 | 첨부 열지 말 것 |
취약점 활용 | 구버전 사용자 노림 | 항상 최신 버전 사용 |
보안은 결국 습관이다. PDF는 받자마자 열지 말고, 먼저 검사하고, 설정을 확인하고, 무엇보다 ‘의심하는 습관’을 갖는 것이 최고의 방어다.
문서는 문서일 뿐, 프로그램이 되어선 안 된다.