Python Forensics - Virtualização

Virtualizationé o processo de emular sistemas de TI, como servidores, estações de trabalho, redes e armazenamento. Nada mais é do que a criação de uma versão virtual em vez de real de qualquer sistema operacional, um servidor, um dispositivo de armazenamento ou processos de rede.

O principal componente que ajuda na emulação de hardware virtual é definido como um hyper-visor.

A figura a seguir explica os dois tipos principais de virtualização de sistema usados.

A virtualização tem sido usada em computação forense de várias maneiras. Ajuda o analista de forma que a estação de trabalho possa ser utilizada em um estado validado para cada investigação. A recuperação de dados é possível anexando a imagem dd de uma unidade como uma unidade secundária em uma máquina virtual em particular. A mesma máquina pode ser usada como um software de recuperação para reunir as evidências.

O exemplo a seguir ajuda a entender a criação de uma máquina virtual com a ajuda da linguagem de programação Python.

Step 1 - Deixe a máquina virtual ser nomeada 'dummy1'.

Cada máquina virtual deve ter 512 MB de memória na capacidade mínima, expressa em bytes.

vm_memory = 512 * 1024 * 1024

Step 2 - A máquina virtual deve ser conectada ao cluster padrão, que foi calculado.

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

Step 3 - A máquina virtual deve inicializar a partir da unidade de disco rígido virtual.

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

Todas as opções são combinadas em um objeto de parâmetro de máquina virtual, antes de usar o método add da coleção vms para a máquina virtual.

Exemplo

A seguir está o script Python completo para adicionar uma máquina virtual.

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

Resultado

Nosso código produzirá a seguinte saída -