Forense – Verificando a linha do tempo de um arquivo PDF

Dentro dos processos de forense digital, um dos pontos-chave é a linha do tempo. Seu objetivo é tentar determinar a ordem em que ocorreram os eventos nos sistemas afetados tipicamente por uma intrusão maliciosa.

O cronograma inclui uma série de análise, que deverá ser revisados dezenas de logs do servidor web, histórico de navegação, o envio de e-mails, logs de auditoria de objetos do sistema, se foram criados os documentos de metadados, excluído ou modificado, e assim por diante.

No post de hoje, como um exemplo, demonstrar em uma lista de documentos PDF encontrado em um computador Windows, para, em seguida, analisar todos os metadados e gerar o cronograma.

O primeiro programa que iremos usar é o linha-temporal-pdf.bat. O seu primeiro objectivo será o de listar todos os documentos PDF na unidade de disco rígido, e armazená-los em um arquivo de texto (que pode então hashear). Isso vai ter sucesso com uma declaração como a seguinte:

dir C:\ /s /B | find “.pdf” > PDF-documents.txt

Onde você pode substituir “C: \” para o caminho onde a unidade flash, disco rígido ou partição a partir da qual podemos calcular a linha do tempo de documentos PDF.

Em seguida, chamar um segundo programa, desta vez desenvolvido em Python, que é responsável em extrair seus metadados. Para fazer isso, vamos recorrer de volta para o Bat, com um loop FOR, agora el;e vai ler os documentos relacionados ao arquivo gerado PDF-documents.txt antes:

FOR /F “tokens=*” %%A IN (PDF-documents.txt) DO python.exe forensic-pdf.py -F %%A

Simples, não é? O código  BAT  final seria algo parecido com isto:

dir C:\ /s /B | find “.pdf” > PDF-documents.txt
@ECHO OFF
FOR /F “tokens=*” %%A IN (PDF-documents.txt) DO python.exe forensic-pdf.py -F %%A

Agora, vamos falar do  software “forensic-pdf.py”, a fim de dada o caminho do local onde você ter localizado um documento, extrair toda a informação possível sobre seus metadados

Para este trabalho, vamos utilizar bibliotecas PyPDF2, que você pode baixar a partir do seguinte link:

https://pypi.python.org/pypi/PyPDF2

Com essa biblioteca você pode facilmente, chamando a função getDocumentInfo (), remover todos os metadados de um PDF.
O código a seguir vai demonstrar um exemplo de uso, o que lhe permitirá acompanhar como extrair os metadados de todos os documentos PDF hospedado em um computador:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import PyPDF2
import optparse
from PyPDF2 import PdfFileReader

def meta(fileName):
    pdff = PdfFileReader(file(fileName, ‘rb’))
    doc = pdff.getDocumentInfo()
    print ‘Doc: ‘ + str(fileName)
    for metai in doc:
        print ‘- ‘ + metai + ‘:’ + doc[metai]

def main():
    parser = optparse.OptionParser(‘usage %prog “+\
      “-F <PDF file name>’)
    parser.add_option(‘-F’, dest=’filename’, type=’string’,\
      help=’PDF file name’)

    (options, args) = parser.parse_args()
    filename = options.filename
    if filename == None:
        print parser.usage
        exit(0)
    else:
        meta(filename)

if __name__ == ‘__main__’:
    main()

A saída seria semelhante à que se segue:

1

Definitivamente uma maneira rápida de construir um cronograma de documentos PDF em um sistema. Agora você pode jogar com o código python e modificar a saída para atender às suas necessidade de relatórios ou de exportação em algum formato CSV tipo, por exemplo, aplicar filtros para o Excel. As possibilidades são infinitas.

Anúncios
Sem categoria

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s