Python Forensics: implementación de la nube

Cloud computingse puede definir como una colección de servicios alojados proporcionados a los usuarios a través de Internet. Permite a las organizaciones consumir o incluso calcular el recurso, que incluye máquinas virtuales (VM), almacenamiento o una aplicación como utilidad.

Una de las ventajas más importantes de crear aplicaciones en el lenguaje de programación Python es que incluye la capacidad de implementar aplicaciones virtualmente en cualquier plataforma, lo que incluye cloudtambién. Implica que Python se puede ejecutar en servidores en la nube y también se puede iniciar en dispositivos útiles como computadoras de escritorio, tabletas o teléfonos inteligentes.

Una de las perspectivas interesantes es la creación de una base en la nube con la generación de Rainbow tables. Ayuda a integrar versiones de la aplicación de procesamiento único y multiprocesamiento, lo que requiere algunas consideraciones.

Pi Cloud

Pi Cloud es la plataforma de computación en la nube, que integra el lenguaje de programación Python con la potencia informática de Amazon Web Services.

Echemos un vistazo a un ejemplo de implementación de nubes Pi con rainbow tables.

Mesas Arcoiris

UN rainbow table se define como una lista de todas las posibles permutaciones de texto sin formato de contraseñas cifradas específicas de un algoritmo hash dado.

  • Las tablas Rainbow siguen un patrón estándar, que crea una lista de contraseñas hash.

  • Se utiliza un archivo de texto para generar contraseñas, que incluyen caracteres o texto sin formato de las contraseñas que se van a cifrar.

  • El archivo es utilizado por Pi Cloud, que llama a la función principal para que se almacene.

  • La salida de las contraseñas con hash también se almacena en el archivo de texto.

Este algoritmo también se puede utilizar para guardar contraseñas en la base de datos y tener un almacenamiento de respaldo en el sistema en la nube.

El siguiente programa incorporado crea una lista de contraseñas cifradas en un archivo de texto.

Ejemplo

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()

Salida

Este código producirá el siguiente resultado:

Las contraseñas se almacenan en los archivos de texto, que son visibles, como se muestra en la siguiente captura de pantalla.