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 분석 내장