PDF 헤더 분석
주요 요소
JavaScript 관련 키워드:
/JS
,/JavaScript
,/AA
,/OpenAction
PDF 파일 내의 JavaScript는 자동 실행될 수 있는 악성 스크립트를 포함할 가능성이 있습니다.
악성 PDF는 주로 JavaScript를 사용하여 취약점을 공격합니다.
임베디드 파일:
/EmbeddedFile
,/Launch
PDF에 임베디드된 파일은 실행 가능한 악성 파일일 수 있습니다.
/Launch
키워드는 PDF 파일이 특정 프로그램을 실행하도록 할 수 있습니다.
암호화:
/Encrypt
PDF가 암호화된 경우, 파일 내부의 내용을 분석하기 어렵게 만듭니다. 이는 정당한 이유가 있을 수 있지만, 악의적인 목적으로 숨기려는 의도일 수 있습니다.
폼 및 멀티미디어:
/AcroForm
,/RichMedia
,/JBIG2Decode
,/XFA
폼 및 멀티미디어 요소는 악성 코드 또는 악의적인 활동을 숨기기 위한 수단으로 사용될 수 있습니다. 특히
/XFA
는 PDF의 동적 폼을 정의하는 데 사용되며, 복잡한 상호작용을 포함할 수 있습니다.
스트림 및 객체:
obj
,endobj
,stream
,endstream
스트림과 객체의 수가 비정상적으로 많은 경우, 이는 PDF 파일 내에 숨겨진 데이터 또는 코드가 많이 포함되었음을 나타낼 수 있습니다.
페이지 수:
/Page
페이지 수는 PDF의 크기와 내용을 대략적으로 파악할 수 있게 해줍니다. 비정상적으로 많은 페이지는 주의가 필요합니다.
기타 구조적 요소:
xref
,trailer
,startxref
이러한 요소들은 PDF 파일 구조의 무결성을 확인하는 데 중요합니다. 손상되거나 비정상적인 구조는 악성 PDF의 징후일 수 있습니다.
주요 키워드 설명 및 분석
JavaScript 관련 키워드: 이 키워드들이 발견되면, 스크립트 코드가 자동 실행될 가능성이 있으므로 주의가 필요합니다. 이 예에서는 모두 0이지만, 만약 값이 존재한다면 그 스크립트 내용을 분석해야 합니다.
임베디드 파일 및 실행:
/Launch
키워드가 1로 되어 있는 것은 이 PDF가 특정 프로그램을 실행하려 한다는 것을 의미할 수 있습니다. 이는 잠재적으로 위험하므로 실행하려는 프로그램이 무엇인지 분석해야 합니다.
암호화: 이 키워드가 존재하면, PDF의 일부 또는 전체 내용이 암호화되었음을 나타냅니다. 분석이 어려울 수 있으며, 암호화를 해제해야 전체 내용을 확인할 수 있습니다.
폼 및 멀티미디어: 폼 및 멀티미디어 요소가 없지만, 만약 존재한다면 폼의 내용 및 멀티미디어 객체를 면밀히 분석해야 합니다.
스트림 및 객체: 많은 수의 객체와 스트림은 숨겨진 데이터나 코드가 있을 가능성을 시사할 수 있습니다. 스트림과 객체의 수가 일치하지 않으면, 비정상적인 파일 구조를 나타낼 수 있습니다.
요약
포렌식 분석 시 다음과 같은 단계를 따를 수 있습니다:
JavaScript 코드 분석:
/JS
,/JavaScript
와 관련된 코드가 있는지 확인하고, 있다면 그 내용을 분석합니다.임베디드 파일 및 실행 분석:
/EmbeddedFile
,/Launch
키워드를 확인하여 실행하려는 프로그램이 무엇인지 분석합니다.암호화 확인:
/Encrypt
키워드를 확인하여 파일의 암호화 여부를 확인하고, 필요한 경우 암호를 해제합니다.폼 및 멀티미디어 분석:
/AcroForm
,/RichMedia
,/JBIG2Decode
,/XFA
키워드를 확인하여, 이들이 포함된 경우 내용을 분석합니다.객체 및 스트림 분석: 객체와 스트림의 수가 비정상적으로 많은지 확인하고, 숨겨진 데이터나 코드를 탐지합니다.
구조적 무결성 확인:
xref
,trailer
,startxref
키워드를 통해 PDF 파일 구조의 무결성을 확인합니다.
이를 통해 악성 PDF 파일을 식별하고, 필요 시 추가 분석을 통해 악성 행위를 탐지할 수 있습니다.
참고 레퍼런스
Last updated