'PDF'에 해당되는 글 16건

  1. 2014.07.08 SnortDLP - an open source DLP solution utilizing snort
  2. 2013.10.24 PDFDot v0.23 : PDF 분석 및 시각화 도구
  3. 2013.09.30 ClamAV 0.98 has been released!
2014.07.08 19:08

SnortDLP - an open source DLP solution utilizing snort

Overview

SnortDLP a.k.a. "Pig Pen" is an open source data loss prevention project that utilizes Snort to detect the exfiltration of sensitive data.

Features

Web based application

  • Written in PHP and utilizes a MySQL backend for cross operating system portability
  • Administrative login to protect unauthorized access
  • Determines a unique fingerprint for
    • free text
    • individual documents
    • each document in a repository of sensitive documents
    • database tables (future)
  • Supports plain text documents (including doc, ppt, etc) and emails
  • Generates Perl-compatible regular expressions (PCREs) and automatically adds a custom snort rule for each document or file
  • Detects and alerts administrators through a Snort interface
  • Flagging and carving out zip/pdf files based on file headers
    • Office 2007 (docx, pptx, xlsx) support
    • PDF support

Future

  • Email integration


PIGPEN INSTALL GUIDE

Dependencies:
-libpcap-dev
-flex
-python -- version?
-pexpect for python (already installed on ubuntu I believe)
-tcpxtract 1.0.1
apt-get install libxml-libxml-perl
apt-get install libarchive-any-perl
libextractor -> apt-get install extract

Permissions:
-in /etc/sudoers
-- under: # User privilege specification
-- add: www-data ALL=NOPASSWD: /bin/mount, /bin/umount, /bin/mkdir, /bin/rmdir



출처 : https://code.google.com/p/snortdlp/


Trackback 0 Comment 0
2013.10.24 13:34

PDFDot v0.23 : PDF 분석 및 시각화 도구

설명

PDF(Portable Document Format) 파일은 어도비 시스템즈에서 개발한 전자 문서 형식이다. 컴퓨터 환경에 관계없이 같은 표현을 하기 위한 목적으로 개발되었으며 장치 독립성 및 해상도 독립성을 가지고 있다. 상당수의 파일들이 이 형식으로 변환되어 사용되고 있다.

많은 사용자들이 사용하는 파일 포맷이다보니 취약점 공격도 꾸준히 나오고 있다. PDF 파일 포맷은 그 내부가 복잡하지는 않지만, 분석하기에는 무척 까다로운 비정형화 된 형식으로 구성되어 있다. 따라서 PDF 파일 분석이 용이하면서 한 눈에 PDF 구조를 시각화 할 필요가 있어 PDFDot 도구를 개발하게 되었다.


주요 기능

v0.23 (2013/10/24)
1. 스트림만 가진 오브젝트 출력 기능 (–stream 옵션)
2. 문자열 검색 기능 (-s 옵션)

v0.22 (2013/10/10)
1. 압축 해제 필터 인식 기능 강화

v0.21 (2013/10/07)
1. 다양한 압축 해제 필터 지원
(FlateDecode, ASCIIHexDecode, ASCII85Decode, LZWDecode, RunLengthDecode)

v0.2 (2013/10/01)
1. PDF trailer 추적 기능
2. Root Object 추출 (-r 옵션)
3. PDF 파일 포맷 중 점진적 업데이트 추적 기능 지원

v0.1 (2013/09/27)
1. PDF 오브젝트 추적 기능 (시각화 지원)
2. PDF 오브젝트 스트림 추출
3. PDF 오브젝트 압축 해제 지원 (FlateDecode만 지원)


사용법

PDF 파일은 다양한 오브젝트가 존재하며 이들의 참조로 구성이 되어 있다. 각각의 오브젝트들은 자신의 Type과 다양한 속성값 및 스트림을 포함하기도 한다. 대체로 악성코드들은 앞에서 언급한 오브젝트의 스트림으로 존재하는 경우가 대부분이다(물론 최악의 경우에는 스트림이 SWF 파일 포맷을 가지고, SWF 파일 내부의 ActionScript 형태로 가지는 경우도 있다).

분석을 위해 준비한 test.pdf 파일은 다음과 같다.

이제 PDFDot 프로그램을 통해서 test.pdf 파일의 오브젝트 구조를 살펴보도록 하겠다. 우선 PDFDot은 아래 링크에서 다운로드 받을 수 있다.

분석하고자 하는 PDF 파일을 PDFDot 프로그램의 인자값으로 넣어주는데 대체로 PDF의 루트(Root) 오브젝트는 1번 오브젝트이다. PDFDot 버전 0.20 이상 버전에서는 -r 옵션을 통해 루트(Root) 오브젝트를 확인할 수 있다.

C:\> pdfdot.exe test.pdf -r

이제 제일 먼저 분석해야 할 대상은 1번 오브젝트이다. 따라서 -o 옵션을 사용하여 1번 오브젝트를 지정하면 다음과 같은 화면이 나온다.

C:\> pdfdot.exe test.pdf -o1

PDF 파일을 분석하는데 있어서 가장 중요한 부분은 PDF 내부 참조 구조를 정확히 파악하는 것이 중요하다. 즉, 위 그림을 보면 오브젝트 1번은 2번과 4번 오브젝트를 참조하고 있다는 사실이다.

이제 -o 옵션의 숫자 값을 바꿔가면서 오브젝트의 참조 내용을 확인해보면 이를 간략히 표현하면 다음과 같은 형태가 될 것이다.

위의 그림은 수작업으로 PDF 구조를 그려본 것이다. 이렇게 보면 한눈에 PDF 내부 구조를 쉽게 알 수 있다. 하지만, 매번 PDF를 분석할 때마다 이 구조를 수작업으로 한다는 것은 무리가 있다. 그래서 PDFDot 프로그램에는 이를 자동으로 그려주는 -g 옵션이다.

우선 -g 옵션을 사용하기 위해서는 그래프를 그리기 위한 별도의 외부 프로그램인 Graphviz가 필요하다. 따라서 아래의 사이트에서 윈도우용 설치 프로그램을 다운로드 받아 설치한 다음 -g 옵션을 사용할 수 있다.

Graphviz가 설치 되었다면 다음과 같이 명령어를 입력해본다.

C:\> pdfdot.exe test.pdf -g test_pdf.png

이 명령어가 정상적으로 실행되었다면 test_pdf.png 파일이 생성될 것이며, 파일을 열어보면 아래와 같은 PDF 내부 구조를 보여주게 된다.

PDFDot 프로그램을 사용하여 PDF 내부 구조를 출력해보면 빨간색의 오브젝트 박스와 검은색의 오브젝트 박스를 볼 수 있다. 이 중에서 빨간색 오브젝트 박스에 주목해야 한다. 바로 악성코드가 존재할 가능성이 있는 오브젝트들을 표현하고 있기 때문이다.

앞서 PDF 악성코드들은 대체로 오브젝트의 스트림 형식으로 저장되어 있다고 하였다. 지금 이 PDF 내부 구조를 보면 문제의 오브젝트들은 1번, 4번, 5번, 7번번 9번이다. 따라서 이들 오브젝트들을 다시 -o 옵션을 사용하여 살펴본다.

그중에서 오브젝트 5번을 살펴보자.

C:\> pdfdot.exe test.pdf -o5

위 그림에서 확인할 수 있듯이 오브젝트 5번에는 281 Byte의 스트림이 포함되어 있으며, 압축되어 있는 상태이다. 이 스트림을 추출해보자. 추출하기 위해서는 -d 옵션을 사용하면 된다.

C:\> pdfdot.exe test.pdf -o5 -d obj5.dmp

이렇게 스트림을 추출하면 압축된 상태로 추출되므로 압축을 해제해야 한다. 압축 여부를 확인하는 방법은 오브젝트의 내용중 /Filter로 표현이 되어 있다면 압축된 형태라고 보면 되겠다(물론 압축이 아닌 경우도 있다). 따라서 압축을 해제 하기 위해서 -f 옵션을 함께 지정하면 압축 해제된 스트림을 얻을 수 있다. 하지만, /Filter로 지정되어 있지 않다면 -f 옵션을 사용해서는 안된다.

자, 이제 -f 옵션까지 사용하여 스트림으로 추출된 obj5.dmp 파일을 열어보자.

C:\> pdfdot.exe test.pdf -o5 -d obj5.dmp -f

그림에서 보는 것처럼 자바스크립트가 오브젝트 5번의 스트림으로 저장되어 있었다. 같은 방법으로 오브젝트 7번과 9번도 스트림을 추출해본다.

C:\> pdfdot.exe test.pdf -o7 -d obj7.dmp -f
C:\> pdfdot.exe test.pdf -o9 -d obj9.dmp -f

자바스크립트는 아니지만 ASCII로 구성된 내용을 확인할 수 있다. 오브젝트 5번의 자바스크립트가 오브젝트 7번과 9번 스트림 내용을 다시 복호화 하는 과정을 거치게 된다.

사실 이후부터는 자바스크립트에 대한 내용이라 여기서 소개하는 PDF의 분석 내용에서 벗어나는 주제이므로 생략하기로 한다.

지금까지 간단하게 PDFDot을 이용하여 PDF의 내부 구조를 시각화 하고 그중 악성코드로 의심되는 오브젝트를 선별한 다음 스트림 추출을 통해 악성코드를 진행하는 것을 살펴보았다. 분석을 하다보면 이 보다 더 다양한 형태의 PDF를 보게 되겠지만, 거의 대체로가 이런 순서를 통해 PDF 악성코드를 분석하게 된다.



위 글에 대해 별도의 문의 사항이 있다면 hanul93@gmail.com으로 메일 보내주시기 바란다.



출처 : www.nurilab.com


Trackback 0 Comment 0
2013.09.30 19:57

ClamAV 0.98 has been released!



ClamAV 0.98 includes many new features, across many different components
of ClamAV. There are new scanning options, extensions to the libclamav API,
support for additional filetypes, and internal upgrades.

- Signature improvements: New signature targets have been added for
PDF files, Flash files and Java class files. (NOTE: Java archive files
(JAR) are not part of the Java target.) Hash signatures can now specify
a '*' (wildcard) size if the size is unknown. Using wildcard size
requires setting the minimum engine FLEVEL to avoid backwards
compatibility issues. For more details read the ClamAV Signatures
guide.
- Scanning enhancements: New filetypes can be unpacked and scanned,
including ISO9660, Flash, and self-extracting 7z files. PDF
handling is now more robust and better handles encrypted PDF files. 
- Authenticode: ClamAV is now aware of the certificate chains when
scanning signed PE files. When the database contains signatures for
trusted root certificate authorities, the engine can whitelist
PE files with a valid signature. The same database file can also
include known compromised certificates to be rejected! This
feature can also be disabled in clamd.conf (DisableCertCheck) or
the command-line (nocerts). 
- New options: Several new options for clamscan and clamd have been
added. For example, ClamAV can be set to print infected files and
error files, and suppress printing OK results. This can be helpful
when scanning large numbers of files. This new option is "-o" for
clamscan and "LogClean" for clamd. Check clamd.conf or the clamscan
help message for specific details. 
- New callbacks added to the API: The libclamav API has additional hooks
for developers to use when wrapping ClamAV scanning. These function
types are prefixed with "clcb_" and allow developers to add logic at
certain steps of the scanning process without directly modifying the
library. For more details refer to the clamav.h file. 
- More configurable limits: Several hardcoded values are now configurable
parameters, providing more options for tuning the engine to match your
needs. Check clamd.conf or the clamscan help message for specific
details. 
- Performance improvements: This release furthers the use of memory maps
during scanning and unpacking, continuing the conversion started in
prior releases. Complex math functions have been switched from
libtommath to tomsfastmath functions. The A/C matcher code has also
been optimized to provide a speed boost. 
- Support for on-access scanning using Clamuko/Dazuko has been replaced
with fanotify. Accordingly, clamd.conf settings related to on-access
scanning have had Clamuko removed from the name. Clamuko-specific
configuration items have been marked deprecated and should no longer
be used.


There are also fixes for other minor issues and code quality changes. Please
see the ChangeLog file for details.

--
The ClamAV team (http://www.clamav.net/team)


Trackback 0 Comment 0