Rapporto artefatto

Ora che hai dimestichezza con l'installazione e l'esecuzione dei comandi Python sul tuo sistema locale, passiamo ai concetti di medicina legale in dettaglio. Questo capitolo spiegherà i vari concetti coinvolti nella gestione degli artefatti in Python digital forensics.

Necessità di creazione di report

Il processo di digital forensics include la segnalazione come terza fase. Questa è una delle parti più importanti del processo forense digitale. La creazione del report è necessaria per i seguenti motivi:

  • È il documento in cui l'esaminatore forense digitale delinea il processo di indagine e le sue conclusioni.

  • Un buon rapporto forense digitale può essere referenziato da un altro esaminatore per ottenere lo stesso risultato da dati stessi repository.

  • Si tratta di un documento tecnico e scientifico che contiene fatti trovati all'interno degli 1 e degli 0 delle prove digitali.

Linee guida generali per la creazione di report

I rapporti sono scritti per fornire informazioni al lettore e devono iniziare con una solida base. gli investigatori possono incontrare difficoltà nel presentare in modo efficiente i loro risultati se il rapporto è preparato senza alcune linee guida o standard generali. Di seguito vengono fornite alcune linee guida generali che devono essere seguite durante la creazione di rapporti forensi digitali:

  • Summary - Il report deve contenere il breve riassunto delle informazioni in modo che il lettore possa accertare lo scopo del report.

  • Tools used - Dobbiamo menzionare gli strumenti che sono stati utilizzati per portare avanti il ​​processo di digital forensics, compreso il loro scopo.

  • Repository - Supponiamo di aver esaminato il computer di qualcuno, quindi il riepilogo delle prove e l'analisi di materiale pertinente come e-mail, cronologia delle ricerche interne ecc., Quindi devono essere inclusi nel rapporto in modo che il caso possa essere presentato chiaramente.

  • Recommendations for counsel - Il rapporto deve contenere le raccomandazioni per l'avvocato di continuare o interrompere le indagini sulla base dei risultati del rapporto.

Creazione di diversi tipi di report

Nella sezione precedente, siamo venuti a conoscenza dell'importanza del report nella digital forensics insieme alle linee guida per la creazione dello stesso. Alcuni dei formati in Python per la creazione di diversi tipi di report sono discussi di seguito:

Rapporti CSV

Uno dei formati di output più comuni dei rapporti è un foglio di calcolo CSV. È possibile creare un CSV per creare un report dei dati elaborati utilizzando il codice Python come mostrato di seguito -

Innanzitutto, importa le librerie utili per scrivere il foglio di calcolo -

from __future__ import print_function
import csv
import os
import sys

Ora, chiama il seguente metodo:

Write_csv(TEST_DATA_LIST, ["Name", "Age", "City", "Job description"], os.getcwd())

Stiamo utilizzando la seguente variabile globale per rappresentare i tipi di dati di esempio:

TEST_DATA_LIST = [["Ram", 32, Bhopal, Manager], 
   ["Raman", 42, Indore, Engg.],
   ["Mohan", 25, Chandigarh, HR], 
   ["Parkash", 45, Delhi, IT]]

Successivamente, definiamo il metodo per procedere per ulteriori operazioni. Apriamo il file in modalità "w" e impostiamo l'argomento della parola chiave newline su una stringa vuota.

def Write_csv(data, header, output_directory, name = None):
   if name is None:
      name = "report1.csv"
   print("[+] Writing {} to {}".format(name, output_directory))
   
   with open(os.path.join(output_directory, name), "w", newline = "") as \ csvfile:
      writer = csv.writer(csvfile)
      writer.writerow(header)
      writer.writerow(data)

Se esegui lo script precedente, otterrai i seguenti dettagli memorizzati nel file report1.csv.

Nome Età Città Designazione
Ram 32 Bhopal Managerh
Raman 42 Indore Engg
Mohan 25 Chandigarh HR
Parkash 45 Delhi IT

Rapporti Excel

Un altro formato di output comune dei report è il foglio di calcolo Excel (.xlsx). Possiamo creare una tabella e anche tracciare il grafico utilizzando Excel. Possiamo creare report dei dati elaborati in formato Excel utilizzando il codice Python come mostrato di seguito

Innanzitutto, importa il modulo XlsxWriter per la creazione di un foglio di calcolo -

import xlsxwriter

Ora crea un oggetto cartella di lavoro. Per questo, dobbiamo usare il costruttore Workbook ().

workbook = xlsxwriter.Workbook('report2.xlsx')

Ora, crea un nuovo foglio di lavoro utilizzando il modulo add_worksheet ().

worksheet = workbook.add_worksheet()

Quindi, scrivi i seguenti dati nel foglio di lavoro:

report2 = (['Ram', 32, ‘Bhopal’],['Mohan',25, ‘Chandigarh’] ,['Parkash',45, ‘Delhi’])

row = 0
col = 0

Puoi iterare su questi dati e scriverli come segue:

for item, cost in (a):
   worksheet.write(row, col, item)
   worksheet.write(row, col+1, cost)
   row + = 1

Ora chiudiamo questo file Excel usando il metodo close ().

workbook.close()

Lo script sopra creerà un file Excel denominato report2.xlsx con i seguenti dati:

Ram 32 Bhopal
Mohan 25 Chandigarh
Parkash 45 Delhi

Investigation Acquisition Media

È importante che un investigatore abbia le note investigative dettagliate per ricordare accuratamente i risultati o mettere insieme tutti i pezzi dell'indagine. Uno screenshot è molto utile per tenere traccia dei passaggi effettuati per una particolare indagine. Con l'aiuto del seguente codice Python, possiamo fare lo screenshot e salvarlo su hard disk per un uso futuro.

Innanzitutto, installa il modulo Python denominato pyscreenshot utilizzando il seguente comando:

Pip install pyscreenshot

Ora, importa i moduli necessari come mostrato -

import pyscreenshot as ImageGrab

Usa la seguente riga di codice per ottenere lo screenshot:

image = ImageGrab.grab()

Usa la seguente riga di codice per salvare lo screenshot nella posizione specificata -

image.save('d:/image123.png')

Ora, se vuoi far apparire lo screenshot come un grafico, puoi usare il seguente codice Python:

import numpy as np
import matplotlib.pyplot as plt
import pyscreenshot as ImageGrab
imageg = ImageGrab.grab()
plt.imshow(image, cmap='gray', interpolation='bilinear')
plt.show()