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.