Others

PDF에 숨겨진 추적 코드가 포함되어 있는지 알 수 있습니까?

PDF에는 페이지에 표시되는 것보다 더 많은 내용이 포함될 수 있습니다. 포함된 JavaScript, 숨겨진 양식 필드, 원격 리소스 호출 및 사용자 정의 메타데이터를 모두 사용하여 문서가 열리는 시기, 문서가 열리는 위치, 독자가 문서로 무엇을 하는지 추적할 수 있습니다. PDF 보안 추적 메커니즘에 대한 스캔은 특히 알 수 없거나 신뢰할 수 없는 소스로부터 PDF를 수신할 때 비즈니스 실사의 표준 단계가 되고 있습니다. 문제는 추적 코드가 존재하는지 여부뿐만 아니라 민감한 문서를 열기 전에 이를 감지할 수 있는 도구가 있는지 여부입니다.

PDF의 추적 코드는 의도적인 코드와 양성의 두 가지 범주로 분류됩니다. 의도적 추적은 문서가 열릴 때 JavaScript를 사용하여 집에 전화를 걸어 문서를 연 사람의 IP 주소, 대략적인 위치 및 읽은 시간을 추적 서버로 보냅니다. 양성 추적에는 PDF 청구서에 포함된 읽음 확인이나 콘텐츠를 표시하기 전에 라이센스를 확인하는 디지털 권한 관리와 같은 기능이 포함됩니다. 두 유형 모두 유사한 기술 메커니즘을 사용하며 여기에 설명된 탐지 방법은 두 가지 모두에 적용됩니다.

WukongPDF의 PDF 개인 정보 보호 기능에는 처리하기 전에 문서에 포함된 스크립트가 있는지 검사하는 보안 검사 도구가 포함되어 있습니다. 낯선 사람이 보낸 PDF를 열기 전에 빠른 확인을 실행하면 대부분의 PDF 리더가 기본적으로 제공하지 않는 추적에 대한 보호 계층이 추가됩니다.

Can You Tell If a PDF Contains Hidden Tracking Code

PDF 추적 코드가 기술적으로 작동하는 방식

PDF 파일은 PDF 리더의 스크립팅 엔진 내에서 실행되는 JavaScript의 하위 집합인 Acrobat JavaScript API를 통해 JavaScript를 지원합니다. 문서 수준 스크립트는 PDF를 열 때, 페이지를 볼 때, 문서를 인쇄할 때 또는 닫을 때 자동으로 실행됩니다. 추적 스크립트는 일반적으로 DocOpen 이벤트에서 실행되고, HTTP 요청을 통해 독자의 IP 주소와 같은 JavaScript API를 통해 사용 가능한 정보를 수집하고, app.launchURL 또는 Net.HTTP.request 메서드를 사용하여 해당 데이터를 원격 서버로 보냅니다.

PDF JavaScript가 수집할 수 있는 데이터는 브라우저 JavaScript에 비해 제한적입니다. 사용자 컴퓨터의 파일에 액세스하거나, 브라우저 쿠키를 읽거나, 열려 있는 다른 문서와 상호 작용할 수 없습니다. 그러나 추적을 가능하게 하는 핵심 기능인 네트워크 요청을 할 수는 있습니다. JavaScript가 활성화된 Adobe Acrobat Reader에서 열린 PDF는 추적 스크립트를 자동으로 실행합니다. Acrobat JavaScript API를 지원하지 않는 브라우저 기반 뷰어에서 열린 PDF는 스크립트를 실행하지 않으며 추적 시도가 자동으로 실패합니다.

WukongPDF

PDF 보호를 사용해 보세요

설치가 필요하지 않습니다. 브라우저에서 직접 작동합니다.

시작하기 →

방법 1: Adobe Acrobat Pro에서 JavaScript 확인

추적 코드를 확인하는 가장 직접적인 방법은 PDF의 JavaScript 콘텐츠를 검사하는 것입니다. Adobe Acrobat Pro에서 PDF를 열고 편집 메뉴로 이동하여 기본 설정을 선택한 다음 JavaScript 카테고리를 클릭하세요. 리더에서 모든 JavaScript 실행을 전체적으로 비활성화하려면 Acrobat JavaScript 활성화를 선택 취소합니다. 이렇게 하면 파일을 열 때 추적 스크립트가 실행되지 않습니다. JavaScript를 비활성화하기 전에 스크립트를 실행하지 않고도 존재하는 스크립트를 검사할 수 있습니다.

스크립트를 검사하려면 Acrobat Pro에서 PDF를 열고 도구, JavaScript로 이동하고 드롭다운에서 문서 JavaScript를 선택하세요. 대화 상자에는 모든 문서 수준 스크립트가 이름별로 나열됩니다. 스크립트 이름을 선택하고 편집을 클릭하면 해당 소스 코드를 볼 수 있습니다. 외부 도메인을 가리키는 URL, app.launchURL 호출, Net.HTTP.request 호출, this.docOpened 또는 this.docClosed 이벤트에 대한 참조 등 추적을 나타내는 패턴을 찾으세요. 스크립트가 네트워크 요청을 하고 문서에 네트워크 액세스가 필요할 것으로 예상하지 않은 경우 이를 잠재적인 추적 코드로 처리하십시오.

문서 JavaScript 대화 상자에서 개별 스크립트를 삭제할 수 있습니다. 스크립트 이름을 선택하고 삭제를 클릭합니다. 의심스러운 스크립트를 모두 제거한 후 PDF를 새 파일 이름으로 저장하여 원본을 증거로 보존하세요. 정리된 PDF는 표시되는 모든 내용과 양식 기능을 유지하지만 제거된 스크립트를 더 이상 실행하지 않습니다.

방법 2: 텍스트 편집기로 PDF 내부 검사

Acrobat Pro가 필요하지 않은 심층 검사를 위해서는 PDF의 원시 내부 구조를 검사하십시오. PDF 파일은 사람이 읽을 수 있는 문자열과 키워드가 이진 데이터와 인터리브된 텍스트 기반 개체 형식을 사용합니다. VS Code, Notepad++, Sublime Text 등 대용량 파일을 처리할 수 있는 텍스트 편집기에서 PDF를 엽니다. /JavaScript 또는 /JS 문자열을 검색합니다. 이러한 키워드는 JavaScript 코드 개체의 시작을 표시합니다. 스크립트 소스 코드는 일반적으로 괄호 사이 또는 스트림과 최종 스트림 마커 사이에 키워드를 따릅니다.

또한 PDF에 포함된 하드코딩된 웹 주소를 찾으려면 /URI 또는 /URL을 검색하세요. 추적 스크립트에는 추적 서버의 URL이 포함될 수 있습니다. 문서를 열 때 수행할 작업을 지정하는 PDF 사전 키인 /AA 또는 /OpenAction을 검색합니다. JavaScript 개체를 가리키는 /OpenAction 항목은 문서를 열 때 추적 코드를 트리거하는 가장 일반적인 메커니즘입니다.

이 수동 검사 접근 방식을 사용하려면 PDF 구문에 어느 정도 익숙해야 하지만 자동화 도구가 놓칠 수 있는 추적 코드를 포착합니다. 이는 보안 연구원이 피싱 조사에서 의심스러운 PDF 첨부 파일을 분석하는 데 사용하는 것과 동일한 기술입니다. 추적 구조를 찾고 Acrobat Pro 없이 이를 무력화하려는 경우 --remove-restrictions 플래그가 있는 qpdf와 같은 도구를 사용하여 원시 PDF에서 관련 개체를 삭제할 수 있습니다. 하지만 이 접근 방식을 사용하려면 파일 구조가 손상되지 않도록 주의해야 합니다.

방법 3: 자동 PDF 보안 스캐너

여러 무료 및 상업용 도구는 PDF에서 추적 및 악성 코드 감지를 자동화합니다. DID-SIEM 및 유사한 보안 분석 도구는 PDF 구조를 구문 분석하고 JavaScript, 외부 URL, 실행 작업 및 내장된 파일이 포함된 개체에 플래그를 지정합니다. 온라인 PDF 보안 검사기는 파일 업로드를 수락하고 잠재적으로 추적 가능한 모든 요소가 나열된 보고서를 반환합니다. 외부 소스에서 받은 PDF를 정기적으로 확인하려면 자동화된 스캐너가 수동 검사보다 더 빠르고 철저합니다.

지표의미확인 방법
문서 자바스크립트PDF를 열거나 닫거나 인쇄할 때 실행되는 스크립트Acrobat: 편집, 환경 설정, JavaScript 패널
외부 리소스 호출PDF를 열면 원격 URL에서 이미지, 글꼴 또는 데이터가 로드됩니다.포함된 URL의 문서 속성을 확인하세요.
숨겨진 양식 필드추적 ID 또는 토큰으로 미리 채워지는 보이지 않는 필드양식 패널을 열고 숨겨진 필드 플래그를 찾습니다.
메타데이터 스크립트맞춤 추적 식별자가 포함된 XMP 메타데이터문서 속성 및 원시 XMP 데이터 보기

추적 코드를 발견한 경우 해야 할 일

받은 PDF에서 추적 코드를 찾았다고 해서 반드시 발신자가 악의적으로 행동하고 있다는 의미는 아닙니다. PDF 송장에는 일반적으로 송장이 열릴 때 보낸 사람에게 알리는 읽음 확인 스크립트가 포함되어 있습니다. 마케팅 자료에는 이메일 열기 추적 픽셀과 유사한 참여 추적이 포함될 수 있습니다. 문제는 추적이 공개되고 문서 유형에 적합한지 여부입니다. 청구서에 읽음 확인이 있어야 합니다. 협상 중에 전송된 계약서에 숨겨진 추적기가 문제가 있습니다.

추적 코드 없이 다른 사람과 문서를 공유해야 하는 경우 방법 1에 설명된 대로 JavaScript를 제거하고 깨끗한 복사본을 저장하세요. 추적 코드가 DRM 또는 라이센스 시행 시스템의 일부인 경우 이를 제거하면 문서 사용 약관에 위배될 수 있습니다. 법적으로 민감한 문서의 경우 포함된 코드를 제거하기 전에 조직의 법무팀 또는 보안 팀과 상의하세요. 추적 메커니즘은 계약상 보존해야 하는 규정 준수 또는 감사 추적 시스템의 일부일 수 있기 때문입니다.

PDF 추적 코드는 올바른 도구를 사용하여 감지할 수 있습니다. 익숙하지 않은 소스의 PDF를 열기 전에 빠른 JavaScript 검사를 실행하면 1분도 채 걸리지 않으며 대부분의 추적 메커니즘을 포착합니다. 이 확인을 표준 문서 처리 루틴의 일부로 만들면 자신도 모르게 독서 활동을 외부 당사자와 공유할 가능성이 줄어듭니다. 민감한 문서를 처리하는 조직의 경우 기본적으로 PDF 리더에서 JavaScript를 비활성화하고 신뢰할 수 있는 문서에 대해서만 활성화하는 정책은 문서별로 지속적인 검사 노력 없이도 강력한 기본 방어를 제공합니다.

조직의 모든 PDF 리더에서 JavaScript 비활성화

추적 코드를 위해 각 PDF를 개별적으로 검사하는 것은 가끔 사용하는 경우 실용적이지만 매일 수백 개의 외부 PDF를 받는 조직으로 확장되지는 않습니다. 보다 체계적인 접근 방식은 모든 장치의 리더 수준에서 JavaScript 실행을 비활성화하는 것입니다. Adobe Acrobat Reader에서 설정은 편집, 기본 설정, JavaScript 아래에 있습니다. 여기서 Acrobat JavaScript 활성화를 선택 취소하면 모든 스크립트 실행이 차단됩니다. 이 설정은 Windows의 그룹 정책, Mac의 구성 프로필, Acrobat Reader 기업 배포의 관리 기본 설정을 통해 배포할 수 있습니다.

JavaScript를 전역적으로 비활성화하면 기능에 영향을 미칩니다. 일부 PDF 양식은 필드 유효성 검사, 자동 계산 및 동적 양식 동작을 위해 JavaScript를 사용합니다. JavaScript가 비활성화되면 이러한 기능의 작동이 중지됩니다. 대화형 PDF 양식을 사용하는 조직의 경우 모든 외부 보낸 사람의 모든 PDF에서 JavaScript 실행으로 인한 보안 위험을 감수하는 대신 기본적으로 JavaScript를 비활성화하고 신뢰할 수 있는 내부 소스의 양식에 대해서만 활성화하는 접근 방식을 취해야 합니다. 추적 코드를 위한 PDF 보안 검사는 현대적인 문서 활용 능력입니다. 익숙하지 않은 소스의 PDF를 열거나 공유하기 전에 1분만 투자하여 JavaScript, 외부 URL 및 숨겨진 양식 필드를 확인하면 대부분의 PDF 사용자가 인식하지 못하는 미묘한 형태의 정보 유출을 방지할 수 있습니다. PDF 처리에 대한 보안을 고려한 접근 방식은 전문 소프트웨어나 고급 기술 지식 없이도 개인 정보 보호와 조직 정보 보안을 모두 보호합니다.

WukongPDF

PDF 보호를 사용해 보세요

설치가 필요하지 않습니다. 브라우저에서 직접 작동합니다.

시작하기 →