Python Forensics - Implementação da nuvem

Cloud computingpode ser definido como uma coleção de serviços hospedados fornecidos aos usuários pela Internet. Ele permite que as organizações consumam ou até mesmo computem o recurso, que inclui máquinas virtuais (VMs), armazenamento ou um aplicativo como utilitário.

Uma das vantagens mais importantes de construir aplicativos na linguagem de programação Python é que inclui a capacidade de implantar aplicativos virtualmente em qualquer plataforma, o que inclui cloudtambém. Isso implica que o Python pode ser executado em servidores em nuvem e também pode ser iniciado em dispositivos úteis, como desktop, tablet ou smartphone.

Uma das perspectivas interessantes é a criação de uma base de nuvem com a geração de Rainbow tables. Ajuda na integração de versões simples e de multiprocessamento do aplicativo, o que requer algumas considerações.

Pi Cloud

Pi Cloud é a plataforma de computação em nuvem que integra a linguagem de programação Python com o poder de computação da Amazon Web Services.

Vamos dar uma olhada em um exemplo de implementação de nuvens Pi com rainbow tables.

Tabelas arco-íris

UMA rainbow table é definido como uma lista de todas as permutações de texto simples possíveis de senhas criptografadas específicas para um determinado algoritmo de hash.

  • As tabelas do arco-íris seguem um padrão padrão, que cria uma lista de senhas em hash.

  • Um arquivo de texto é usado para gerar senhas, que incluem caracteres ou texto simples de senhas a serem criptografadas.

  • O arquivo é usado pela nuvem Pi, que chama a função principal a ser armazenada.

  • A saída de senhas com hash também é armazenada no arquivo de texto.

Este algoritmo também pode ser usado para salvar senhas no banco de dados e ter um armazenamento de backup no sistema em nuvem.

O seguinte programa embutido cria uma lista de senhas criptografadas em um arquivo de texto.

Exemplo

import os
import random
import hashlib
import string
import enchant    #Rainbow tables with enchant 
import cloud      #importing pi-cloud

def randomword(length): 
   return ''.join(random.choice(string.lowercase) for i in range(length))

print('Author- Radhika Subramanian')

def mainroutine():
   engdict = enchant.Dict("en_US")
   fileb = open("password.txt","a+")

   # Capture the values from the text file named password
   while True:
      randomword0 = randomword(6)
      if engdict.check(randomword0) == True:
         randomkey0 = randomword0+str(random.randint(0,99))
      elif engdict.check(randomword0) == False:
         englist = engdict.suggest(randomword0)
         if len(englist) > 0:
            randomkey0 = englist[0]+str(random.randint(0,99))
         else:
            randomkey0 = randomword0+str(random.randint(0,99))

      randomword3 = randomword(5)
      if engdict.check(randomword3) == True:
         randomkey3 = randomword3+str(random.randint(0,99))
      elif engdict.check(randomword3) == False:
         englist = engdict.suggest(randomword3)
         if len(englist) > 0:
            randomkey3 = englist[0]+str(random.randint(0,99))
         else:
            randomkey3 = randomword3+str(random.randint(0,99))
      
      if 'randomkey0' and 'randomkey3' and 'randomkey1' in locals():
         whasher0 = hashlib.new("md5")
         whasher0.update(randomkey0)
         whasher3 = hashlib.new("md5")
         whasher3.update(randomkey3)
         whasher1 = hashlib.new("md5")
         whasher1.update(randomkey1)
         print(randomkey0+" + "+str(whasher0.hexdigest())+"\n")
         print(randomkey3+" + "+str(whasher3.hexdigest())+"\n")
         print(randomkey1+" + "+str(whasher1.hexdigest())+"\n")
         fileb.write(randomkey0+" + "+str(whasher0.hexdigest())+"\n") 
         fileb.write(randomkey3+" + "+str(whasher3.hexdigest())+"\n")
         fileb.write(randomkey1+" + "+str(whasher1.hexdigest())+"\n")

jid = cloud.call(randomword)  #square(3) evaluated on PiCloud
cloud.result(jid)
print('Value added to cloud')
print('Password added')
mainroutine()

Resultado

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

As senhas ficam armazenadas nos arquivos de texto, que ficam visíveis, conforme mostrado na imagem a seguir.