Informe de artefactos
Ahora que se siente cómodo con la instalación y la ejecución de comandos de Python en su sistema local, pasemos a los conceptos forenses en detalle. Este capítulo explicará varios conceptos relacionados con el manejo de artefactos en el análisis forense digital de Python.
Necesidad de creación de informes
El proceso de análisis forense digital incluye la presentación de informes como tercera fase. Esta es una de las partes más importantes del proceso forense digital. La creación de informes es necesaria debido a las siguientes razones:
Es el documento en el que el examinador forense digital describe el proceso de investigación y sus hallazgos.
Otro examinador puede hacer referencia a un buen informe forense digital para lograr el mismo resultado con los mismos repositorios.
Es un documento técnico y científico que contiene hechos encontrados dentro de los 1 y 0 de la evidencia digital.
Directrices generales para la creación de informes
Los informes están escritos para proporcionar información al lector y deben comenzar con una base sólida. Los investigadores pueden enfrentar dificultades para presentar sus hallazgos de manera eficiente si el informe se prepara sin algunas pautas o estándares generales. Algunas pautas generales que se deben seguir al crear informes forenses digitales se dan a continuación:
Summary - El informe debe contener el breve resumen de la información para que el lector pueda conocer el propósito del informe.
Tools used - Debemos mencionar las herramientas que se han utilizado para llevar a cabo el proceso de la ciencia forense digital, incluida su finalidad.
Repository - Supongamos que investigamos la computadora de alguien, luego el resumen de la evidencia y el análisis de material relevante como correo electrónico, historial de búsqueda interna, etc., luego deben incluirse en el informe para que el caso se pueda presentar claramente.
Recommendations for counsel - El informe debe tener las recomendaciones para que el abogado continúe o cese la investigación en función de los hallazgos del informe.
Creación de diferentes tipos de informes
En la sección anterior, llegamos a conocer la importancia del informe en el análisis forense digital junto con las pautas para crear el mismo. Algunos de los formatos en Python para crear diferentes tipos de informes se analizan a continuación:
Informes CSV
Uno de los formatos de salida más comunes de los informes es un informe de hoja de cálculo CSV. Puede crear un CSV para crear un informe de datos procesados utilizando el código Python como se muestra a continuación:
Primero, importe bibliotecas útiles para escribir la hoja de cálculo:
from __future__ import print_function
import csv
import os
import sys
Ahora, llame al siguiente método:
Write_csv(TEST_DATA_LIST, ["Name", "Age", "City", "Job description"], os.getcwd())
Estamos utilizando la siguiente variable global para representar tipos de datos de muestra:
TEST_DATA_LIST = [["Ram", 32, Bhopal, Manager],
["Raman", 42, Indore, Engg.],
["Mohan", 25, Chandigarh, HR],
["Parkash", 45, Delhi, IT]]
A continuación, definamos el método para continuar con las operaciones posteriores. Abrimos el archivo en el modo "w" y establecemos el argumento de palabra clave de nueva línea en una cadena vacía.
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)
Si ejecuta el script anterior, obtendrá los siguientes detalles almacenados en el archivo report1.csv.
Nombre | Años | Ciudad | Designacion |
---|---|---|---|
RAM | 32 | Bhopal | Managerh |
Raman | 42 | Indore | Engg |
Mohan | 25 | Chandigarh | HORA |
Parkash | 45 | Delhi | ESO |
Informes de Excel
Otro formato de salida común de los informes es el informe de hoja de cálculo de Excel (.xlsx). Podemos crear una tabla y también trazar el gráfico usando Excel. Podemos crear un informe de datos procesados en formato Excel usando código Python como se muestra a continuación
Primero, importe el módulo XlsxWriter para crear una hoja de cálculo -
import xlsxwriter
Ahora, cree un objeto de libro de trabajo. Para esto, necesitamos usar el constructor Workbook ().
workbook = xlsxwriter.Workbook('report2.xlsx')
Ahora, cree una nueva hoja de trabajo usando el módulo add_worksheet ().
worksheet = workbook.add_worksheet()
A continuación, escriba los siguientes datos en la hoja de trabajo:
report2 = (['Ram', 32, ‘Bhopal’],['Mohan',25, ‘Chandigarh’] ,['Parkash',45, ‘Delhi’])
row = 0
col = 0
Puede iterar sobre estos datos y escribirlos de la siguiente manera:
for item, cost in (a):
worksheet.write(row, col, item)
worksheet.write(row, col+1, cost)
row + = 1
Ahora, cerremos este archivo de Excel usando el método close ().
workbook.close()
El script anterior creará un archivo de Excel llamado report2.xlsx con los siguientes datos:
RAM | 32 | Bhopal |
Mohan | 25 | Chandigarh |
Parkash | 45 | Delhi |
Medios de adquisición de investigación
Es importante que un investigador tenga las notas detalladas de la investigación para recordar con precisión los hallazgos o reunir todas las piezas de la investigación. Una captura de pantalla es muy útil para realizar un seguimiento de los pasos dados para una investigación en particular. Con la ayuda del siguiente código Python, podemos tomar la captura de pantalla y guardarla en el disco duro para uso futuro.
Primero, instale el módulo de Python llamado pyscreenshot usando el siguiente comando:
Pip install pyscreenshot
Ahora, importe los módulos necesarios como se muestra:
import pyscreenshot as ImageGrab
Utilice la siguiente línea de código para obtener la captura de pantalla:
image = ImageGrab.grab()
Use la siguiente línea de código para guardar la captura de pantalla en la ubicación dada:
image.save('d:/image123.png')
Ahora, si desea mostrar la captura de pantalla como un gráfico, puede usar el siguiente código de 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()