Python Forensics - Virtualizzazione

Virtualizationè il processo di emulazione di sistemi IT come server, workstation, reti e archiviazione. Non è altro che la creazione di una versione virtuale piuttosto che effettiva di qualsiasi sistema operativo, server, dispositivo di archiviazione o processi di rete.

Il componente principale che aiuta nell'emulazione dell'hardware virtuale è definito come un file hyper-visor.

La figura seguente spiega i due principali tipi di virtualizzazione del sistema utilizzati.

La virtualizzazione è stata utilizzata in informatica forense in molti modi. Aiuta l'analista in modo tale che la workstation possa essere utilizzata in uno stato convalidato per ogni indagine. Il recupero dei dati è possibile allegando in particolare l'immagine dd di un'unità come unità secondaria su una macchina virtuale. La stessa macchina può essere utilizzata come software di recupero per raccogliere le prove.

Il seguente esempio aiuta a comprendere la creazione di una macchina virtuale con l'aiuto del linguaggio di programmazione Python.

Step 1 - Assegna alla macchina virtuale il nome "dummy1".

Ogni macchina virtuale deve avere 512 MB di memoria nella capacità minima, espressa in byte.

vm_memory = 512 * 1024 * 1024

Step 2 - La macchina virtuale deve essere collegata al cluster predefinito, che è stato calcolato.

vm_cluster = api.clusters.get(name = "Default")

Step 3 - La macchina virtuale deve essere avviata dall'unità disco rigido virtuale.

vm_os = params.OperatingSystem(boot = [params.Boot(dev = "hd")])

Tutte le opzioni vengono combinate in un oggetto parametro della macchina virtuale, prima di utilizzare il metodo di aggiunta della raccolta vms alla macchina virtuale.

Esempio

Di seguito è riportato lo script Python completo per l'aggiunta di una macchina virtuale.

from ovirtsdk.api import API #importing API library
from ovirtsdk.xml import params

try: #Api credentials is required for virtual machine
   api = API(url = "https://HOST", 
      username = "Radhika", 
      password = "a@123", 
      ca_file = "ca.crt")
      
   vm_name = "dummy1"
   vm_memory = 512 * 1024 * 1024 #calculating the memory in bytes
   vm_cluster = api.clusters.get(name = "Default")
   vm_template = api.templates.get(name = "Blank")
   
   #assigning the parameters to operating system
   vm_os = params.OperatingSystem(boot = [params.Boot(dev = "hd")])
   
   vm_params = params.VM(name = vm_name,
      memory = vm_memory,
      cluster = vm_cluster,
      template = vm_template
      os = vm_os)

   try: 
      api.vms.add(vm = vm_params) 
      print "Virtual machine '%s' added." % vm_name #output if it is successful. 
   except Exception as ex: 
      print "Adding virtual machine '%s' failed: %s" % (vm_name, ex) 
      api.disconnect()
      
except Exception as ex: 
   print "Unexpected error: %s" % ex

Produzione

Il nostro codice produrrà il seguente output: