Search

PDF 구조

카테고리
[이론] 악성코드 분석
상태
완료
게시일
2024/07/21
태그
PDF

PDF?

PDF (Portable Document Format) : 이동 가능 문서 형식, 어도비 시스템즈에서 개발
전자 문서 형식으로 일반문서 및 문자, 도형, 그림, 글꼴을 포함할 수 있음

PDF 포맷 구조

PDF 버전 별 Acrobat 버전
Acrobat 6 버전의 경우 모든 버전은 PDF 1.0 으로 되돌릴 수 있음
Acrobat 4 버전의 경우 최신 PDF 버전 1.5를 여는데 문제가 발생할 수도 있음
Acrobat : PDF 파일을 열고, 보고, 인쇄하는 데 사용되는 소프트웨어
일반적인 PDF 파일 구조
PDF 포맷 구조
Objects, Keywords, Data

Objects

Keywords

PDF의 동작 및 요소
/OpenAction :PDF 문서가 열릴 때 자동으로 수행될 작업 지정
/AA (Additional Actions) : 특정 이벤트(예: 페이지 열기, 닫기 등)에 대한 추가 동작 지정
/JavaScript : JavaScript 액션을 정의
/JS : JavaScript 코드 스트림
/Names : PDF 문서 내에서 네임 트리(name tree)를 정의
/EmbeddedFile : PDF 문서에 첨부된 파일
/URI : PDF 문서 내에서 외부 웹 주소(URI)를 링크로 포함할 때 사용
/SubmitForm : DF 양식 데이터를 서버로 전송할 때 사용
/Launch : PDF 문서에서 외부 응용 프로그램을 실행하거나 특정 파일을 여는 데 사용
name tree?
이름과 객체의 매핑을 유지하는 데이터 구조로, 북마크, 주석, 파일 첨부 등 다양한 요소를 식별하고 참조할 수 있게함

Data

PDF는 여러 가지 방법으로 데이터를 인코딩 할 수 있음
5 0 obj <</Length 48>> stream Hello World endstream endobj
Plain Text
복사
Filters
/Filter 태그를 추가하면 데이터가 인코딩 됨
5 0 obj <</Length 60 /Filter /ASCIIHexDecode>> stream 48656c6c6f20576f726c6421111111111111 endstream endobj
Plain Text
복사
CyberChef 확인 -Stacked Filters
필터는 누적할 수 있으며 역순으로 디코딩 됨
5 0 obj <</Length 60 /Filter [/ASCIIHexDecode /LZWDecode]>> stream J..)6T`?p&<!J9%_[umg"B7Z endstream endobj
Plain Text
복사

PDF 파일 분석

PDF 악성 파일 분석방법

의심스러운 키워드 찾기
OpenAction, AA 찾기
JavaScript, JS 찾기
인코딩 된 데이터 찾기
익스플로잇을 찾기 위한 Yara 규칙

분석 도구

pdfid : PDF 객체 유형 및 필터를 식별
pdf-parser : PDF 에서 데이터 구문 분석, 검색 및 추출
peepdf : 여러 도구를 하나로 결합 / 의심스러운 오브젝트 찾기 / JavaScript 분석 내장