Python Forensics - การใช้งานระบบคลาวด์
Cloud computingสามารถกำหนดเป็นชุดของบริการโฮสต์ที่ให้บริการแก่ผู้ใช้ทางอินเทอร์เน็ต ช่วยให้องค์กรสามารถใช้หรือแม้แต่คำนวณทรัพยากรซึ่งรวมถึง Virtual Machines (VMs) ที่เก็บข้อมูลหรือแอปพลิเคชันเป็นยูทิลิตี้
ข้อได้เปรียบที่สำคัญที่สุดอย่างหนึ่งของการสร้างแอปพลิเคชันในภาษาการเขียนโปรแกรม Python คือความสามารถในการปรับใช้แอปพลิเคชันแทบทุกแพลตฟอร์มซึ่งรวมถึง cloudเช่นกัน. หมายความว่า Python สามารถทำงานบนเซิร์ฟเวอร์คลาวด์ได้และยังสามารถเปิดใช้งานบนอุปกรณ์พกพาเช่นเดสก์ท็อปแท็บเล็ตหรือสมาร์ทโฟน
หนึ่งในมุมมองที่น่าสนใจคือการสร้างฐานคลาวด์ด้วยการสร้าง Rainbow tables. ช่วยในการรวมแอปพลิเคชันเวอร์ชันเดียวและหลายกระบวนการซึ่งต้องมีการพิจารณาบางอย่าง
พี่เมฆ
Pi Cloud เป็นแพลตฟอร์มคลาวด์คอมพิวติ้งซึ่งรวมภาษาการเขียนโปรแกรม Python เข้ากับพลังการประมวลผลของ Amazon Web Services
ลองมาดูตัวอย่างของการใช้ Pi clouds กับ rainbow tables.
ตารางสายรุ้ง
ก rainbow table ถูกกำหนดให้เป็นรายการของการเรียงสับเปลี่ยนข้อความธรรมดาที่เป็นไปได้ทั้งหมดของรหัสผ่านที่เข้ารหัสเฉพาะสำหรับอัลกอริทึมแฮชที่กำหนด
ตารางสายรุ้งเป็นไปตามรูปแบบมาตรฐานซึ่งจะสร้างรายการรหัสผ่านที่แฮช
ไฟล์ข้อความใช้ในการสร้างรหัสผ่านซึ่งรวมถึงอักขระหรือข้อความธรรมดาของรหัสผ่านที่จะเข้ารหัส
ไฟล์ถูกใช้โดย Pi cloud ซึ่งเรียกใช้ฟังก์ชันหลักที่จะจัดเก็บ
ผลลัพธ์ของรหัสผ่านที่แฮชจะถูกเก็บไว้ในไฟล์ข้อความเช่นกัน
อัลกอริทึมนี้สามารถใช้เพื่อบันทึกรหัสผ่านในฐานข้อมูลได้เช่นกันและมีที่เก็บข้อมูลสำรองในระบบคลาวด์
โปรแกรมในตัวต่อไปนี้จะสร้างรายการรหัสผ่านที่เข้ารหัสในไฟล์ข้อความ
ตัวอย่าง
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()
เอาต์พุต
รหัสนี้จะสร้างผลลัพธ์ต่อไปนี้ -
รหัสผ่านจะถูกเก็บไว้ในไฟล์ข้อความซึ่งมองเห็นได้ดังที่แสดงในภาพหน้าจอต่อไปนี้