PDF 헤더 분석

PDF 파일 보안 분석 시 주요 검사 요소

정보 보안 포렌식 관점에서 PDF 파일을 분석할 때 주의해야 할 주요 요소는 다음과 같습니다. 이러한 요소들은 악성 PDF 파일을 식별하고 분석하는 데 중요한 단서를 제공합니다.

주요 요소

  1. JavaScript 관련 키워드:

    • /JS, /JavaScript, /AA, /OpenAction

    • PDF 파일 내의 JavaScript는 자동 실행될 수 있는 악성 스크립트를 포함할 가능성이 있습니다.

    • 악성 PDF는 주로 JavaScript를 사용하여 취약점을 공격합니다.

  2. 임베디드 파일:

    • /EmbeddedFile, /Launch

    • PDF에 임베디드된 파일은 실행 가능한 악성 파일일 수 있습니다.

    • /Launch 키워드는 PDF 파일이 특정 프로그램을 실행하도록 할 수 있습니다.

  3. 암호화:

    • /Encrypt

    • PDF가 암호화된 경우, 파일 내부의 내용을 분석하기 어렵게 만듭니다. 이는 정당한 이유가 있을 수 있지만, 악의적인 목적으로 숨기려는 의도일 수 있습니다.

  4. 폼 및 멀티미디어:

    • /AcroForm, /RichMedia, /JBIG2Decode, /XFA

    • 폼 및 멀티미디어 요소는 악성 코드 또는 악의적인 활동을 숨기기 위한 수단으로 사용될 수 있습니다. 특히 /XFA는 PDF의 동적 폼을 정의하는 데 사용되며, 복잡한 상호작용을 포함할 수 있습니다.

  5. 스트림 및 객체:

    • obj, endobj, stream, endstream

    • 스트림과 객체의 수가 비정상적으로 많은 경우, 이는 PDF 파일 내에 숨겨진 데이터 또는 코드가 많이 포함되었음을 나타낼 수 있습니다.

  6. 페이지 수:

    • /Page

    • 페이지 수는 PDF의 크기와 내용을 대략적으로 파악할 수 있게 해줍니다. 비정상적으로 많은 페이지는 주의가 필요합니다.

  7. 기타 구조적 요소:

    • xref, trailer, startxref

    • 이러한 요소들은 PDF 파일 구조의 무결성을 확인하는 데 중요합니다. 손상되거나 비정상적인 구조는 악성 PDF의 징후일 수 있습니다.

주요 키워드 설명 및 분석

/JS               : 0
/JavaScript       : 0
/AA               : 0
/OpenAction       : 0
  • JavaScript 관련 키워드: 이 키워드들이 발견되면, 스크립트 코드가 자동 실행될 가능성이 있으므로 주의가 필요합니다. 이 예에서는 모두 0이지만, 만약 값이 존재한다면 그 스크립트 내용을 분석해야 합니다.

/EmbeddedFile     : 0
/Launch           : 1
  • 임베디드 파일 및 실행: /Launch 키워드가 1로 되어 있는 것은 이 PDF가 특정 프로그램을 실행하려 한다는 것을 의미할 수 있습니다. 이는 잠재적으로 위험하므로 실행하려는 프로그램이 무엇인지 분석해야 합니다.

/Encrypt          : 0
  • 암호화: 이 키워드가 존재하면, PDF의 일부 또는 전체 내용이 암호화되었음을 나타냅니다. 분석이 어려울 수 있으며, 암호화를 해제해야 전체 내용을 확인할 수 있습니다.

/AcroForm         : 0
/RichMedia        : 0
/JBIG2Decode      : 0
/XFA              : 0
  • 폼 및 멀티미디어: 폼 및 멀티미디어 요소가 없지만, 만약 존재한다면 폼의 내용 및 멀티미디어 객체를 면밀히 분석해야 합니다.

obj            1536
endobj          767
stream          672
endstream       336
/Page            14
xref              2
trailer           1
startxref         1
  • 스트림 및 객체: 많은 수의 객체와 스트림은 숨겨진 데이터나 코드가 있을 가능성을 시사할 수 있습니다. 스트림과 객체의 수가 일치하지 않으면, 비정상적인 파일 구조를 나타낼 수 있습니다.

요약

포렌식 분석 시 다음과 같은 단계를 따를 수 있습니다:

  1. JavaScript 코드 분석: /JS, /JavaScript와 관련된 코드가 있는지 확인하고, 있다면 그 내용을 분석합니다.

  2. 임베디드 파일 및 실행 분석: /EmbeddedFile, /Launch 키워드를 확인하여 실행하려는 프로그램이 무엇인지 분석합니다.

  3. 암호화 확인: /Encrypt 키워드를 확인하여 파일의 암호화 여부를 확인하고, 필요한 경우 암호를 해제합니다.

  4. 폼 및 멀티미디어 분석: /AcroForm, /RichMedia, /JBIG2Decode, /XFA 키워드를 확인하여, 이들이 포함된 경우 내용을 분석합니다.

  5. 객체 및 스트림 분석: 객체와 스트림의 수가 비정상적으로 많은지 확인하고, 숨겨진 데이터나 코드를 탐지합니다.

  6. 구조적 무결성 확인: xref, trailer, startxref 키워드를 통해 PDF 파일 구조의 무결성을 확인합니다.

이를 통해 악성 PDF 파일을 식별하고, 필요 시 추가 분석을 통해 악성 행위를 탐지할 수 있습니다.

참고 레퍼런스

Last updated