Python Forensics - Triển khai đám mây

Cloud computingcó thể được định nghĩa là một tập hợp các dịch vụ được lưu trữ được cung cấp cho người dùng qua Internet. Nó cho phép các tổ chức sử dụng hoặc thậm chí tính toán tài nguyên, bao gồm Máy ảo (VM), bộ nhớ hoặc ứng dụng dưới dạng tiện ích.

Một trong những lợi thế quan trọng nhất của việc xây dựng ứng dụng bằng ngôn ngữ lập trình Python là nó bao gồm khả năng triển khai các ứng dụng hầu như trên bất kỳ nền tảng nào, bao gồm cloudcũng. Nó ngụ ý rằng Python có thể được thực thi trên các máy chủ đám mây và cũng có thể được khởi chạy trên các thiết bị tiện dụng như máy tính để bàn, máy tính bảng hoặc điện thoại thông minh.

Một trong những quan điểm thú vị là tạo cơ sở đám mây với thế hệ Rainbow tables. Nó giúp tích hợp các phiên bản đơn và đa xử lý của ứng dụng, đòi hỏi một số cân nhắc.

Pi Cloud

Pi Cloud là nền tảng điện toán đám mây, tích hợp ngôn ngữ lập trình Python với sức mạnh tính toán của Amazon Web Services.

Hãy xem một ví dụ về việc triển khai các đám mây Pi với rainbow tables.

Bàn cầu vồng

A rainbow table được định nghĩa là danh sách tất cả các hoán vị văn bản thuần túy có thể có của mật khẩu được mã hóa cụ thể cho một thuật toán băm nhất định.

  • Bảng cầu vồng tuân theo một mẫu tiêu chuẩn, tạo ra một danh sách các mật khẩu được băm.

  • Tệp văn bản được sử dụng để tạo mật khẩu, bao gồm các ký tự hoặc văn bản thuần túy của mật khẩu được mã hóa.

  • Tệp được sử dụng bởi đám mây Pi, gọi chức năng chính được lưu trữ.

  • Đầu ra của mật khẩu băm cũng được lưu trữ trong tệp văn bản.

Thuật toán này có thể được sử dụng để lưu mật khẩu trong cơ sở dữ liệu và lưu trữ dự phòng trong hệ thống đám mây.

Chương trình cài sẵn sau đây tạo một danh sách các mật khẩu được mã hóa trong một tệp văn bản.

Thí dụ

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

Đầu ra

Mã này sẽ tạo ra kết quả sau:

Mật khẩu được lưu trữ trong các tệp văn bản, có thể nhìn thấy được, như thể hiện trong ảnh chụp màn hình sau.