PDF 안전 검사
PDF를 놓으면 실행하지 않고 구조만 읽어서 결과를 바로 보여 줘요.
받은 PDF, 열어도 괜찮을까요
PDF는 글과 그림만 담는 문서처럼 보이지만, 안에 자바스크립트나 ‘문서를 열 때 자동으로 실행할 동작’, 다른 프로그램을 실행하라는 명령, 숨은 첨부 파일을 넣을 수 있어요. 대부분은 양식 계산이나 목차 이동처럼 정상적인 기능이지만, 피싱 메일로 오는 PDF는 이런 기능으로 가짜 로그인 페이지로 보내거나 악성 파일을 열게 만들기도 해요. 이 도구는 PDF를 뷰어로 열기 전에 브라우저 안에서 파일 구조만 읽어 이런 기능이 있는지 보여 줘요.
결과 읽는 법
- 위험 신호 — 자바스크립트, 외부 프로그램 실행(Launch)이 들어 있어요. 보낸 사람을 확실히 알고 그런 기능이 필요한 양식이 아니라면 열지 마세요. 일반 안내문·계약서에는 이런 기능이 필요 없어요.
- 주의 — 숨은 첨부 파일, 양식 내용을 어딘가로 보내는 기능, 다른 파일을 여는 동작, XFA 양식, IP 주소나 http 같은 눈여겨볼 링크가 있어요. 첨부 파일은 ‘PDF 첨부파일 꺼내기’로 이름과 종류를 확인하고, 실행 파일(.exe, .js, .vbs 등)이면 열지 마세요.
- 눈에 띄는 위험 없음 — 위 기능이 하나도 없어요. 그래도 본문 안의 링크를 누르기 전에는 주소를 확인하세요.
어떻게 검사하나요
pdf-lib(MIT)로 PDF 안의 객체를 하나씩 읽어 동작 종류(/S), 자바스크립트(/JS), 첨부 파일 정보(/EF), 자동 동작(/OpenAction, /AA), 양식(/AcroForm·/XFA), 링크 주소(/URI)를 찾아요. 압축된 자바스크립트는 풀어서 앞부분을 글자로만 보여 주고 절대 실행하지 않아요. 구조가 꼬여서 읽지 못한 경우에 대비해 원본 바이트에서 /JavaScript, /Launch 표시를 한 번 더 찾아요. 암호가 걸린 PDF도 구조는 읽을 수 있지만 자바스크립트 내용은 암호화돼 있어 보이지 않을 수 있어요.
한계
이 검사는 PDF의 위험한 기능을 찾는 것이지 백신이 아니에요. PDF 뷰어 프로그램의 보안 허점을 노리는 공격(글꼴·이미지 처리 오류 등)이나 새로 나온 수법은 찾지 못해요. 의심스러운 파일은 백신으로 검사하고, PDF 뷰어를 최신 버전으로 유지하고, 뷰어 설정에서 자바스크립트를 꺼 두면 더 안전해요. 파일은 서버로 보내지 않아요.
참고한 자료
자주 묻는 질문
자바스크립트가 있으면 무조건 위험한가요?
아니에요. 계산이 들어간 관공서·회사 양식에는 정상적인 자바스크립트가 흔해요. 보낸 곳을 확인할 수 없는데 자바스크립트가 있으면 열지 않는 게 안전해요.
링크 옆에 ‘퓨니코드’라고 나와요.
다른 나라 글자로 된 주소예요. 영어 글자와 비슷하게 생긴 글자로 유명 사이트 주소를 흉내 낸 피싱일 수 있으니 주소를 꼼꼼히 확인하세요.
검사 결과가 깨끗하면 안전한가요?
위험한 기능이 없다는 뜻이에요. 본문에 적힌 전화번호·계좌번호로 송금을 유도하는 사기는 파일 구조로는 알 수 없으니 내용도 의심해 보세요.
함께 쓰면 좋은 도구
- PDF 글꼴·링크 정보 보기 (글꼴 내장 확인)쓰인 글꼴 이름·종류·내장 여부·부분 내장·복사용 글자표(ToUnicode), 들어 있는 링크 주소와 링크 글자, 자바스크립트·첨부·입력란 포함 여부
- PDF 첨부파일 꺼내기·넣기PDF 안에 숨어 붙은 파일(엑셀·원본 데이터·XML 등) 목록 보기, 하나씩 또는 ZIP으로 저장, 새 파일 붙이기·모두 지우기
- 스미싱 문자 확인 도우미 (의심 문자 위험 신호)받은 문자를 붙여 넣으면 링크·앱 설치 유도·기관 사칭·택배·부고·청첩장·결제 승인·개인정보 요구 같은 위험 신호를 표시하고, 신고·확인 방법(118, 보호나라 채널)과 돈을 보냈을 때 할 일을 안내
- PDF 합치기 (여러 PDF를 하나로)여러 PDF를 순서대로 하나로, 파일마다 쪽 범위 지정
- PDF 나누기 (쪽 범위·N쪽마다 분할)쪽 범위별·N쪽마다·한 쪽씩 여러 파일로, ZIP으로 받기
- PDF 페이지 추출 (원하는 쪽만 새 PDF로)썸네일을 눌러 고르거나 쪽 범위를 적어 새 PDF로