Score:0

การเปรียบเทียบแฮชเพื่อตรวจหาการเข้ารหัสไฟล์แรนซัมแวร์

ธง br

ตามรายละเอียดใน คำถามแยกต่างหากฉันคิดว่าฉันมีวิธีตรวจหาประเภทของแรนซัมแวร์ที่เข้ารหัสไฟล์แบบเงียบ ๆ แล้วถอดรหัสได้ทันที เพื่อป้องกันผู้ใช้ไม่ให้รู้ว่าไฟล์ถูกเข้ารหัสฉันคิดว่าการเปรียบเทียบแฮชของไฟล์ปัจจุบันกับในอดีตจะตรวจพบการเปลี่ยนแปลงของไฟล์: หากไฟล์หลายไฟล์มีการเปลี่ยนแปลงโดยไม่คาดคิด การเปลี่ยนแปลงเหล่านั้นอาจเกิดจากการเข้ารหัสแรนซัมแวร์

ความคิดเห็นเกี่ยวกับคำถามนั้นดูเหมือนจะบอกว่าแนวคิดของฉันล้มเหลวเพราะต้องอ่านไฟล์เพื่อแฮช แรนซัมแวร์จะทำให้เนื้อหาของไฟล์พร้อมใช้งานสำหรับเครื่องมือแฮช เครื่องมือนั้นจะพบว่าเนื้อหาไม่เปลี่ยนแปลง ดังนั้นฉันจะได้รับค่าแฮชเหมือนเดิม

ฉันไม่เข้าใจว่า ดูเหมือนว่าฉันต้องตอบในคำถามแยกต่างหากนี้ หากการแฮชพิจารณาเฉพาะเนื้อหาของไฟล์ การแฮชไฟล์ที่ผู้ใช้เข้ารหัสอย่างปลอดภัยจะเป็นไปไม่ได้หรือไม่

การอภิปรายการเข้ารหัส ดูเหมือนว่าค่าแฮชสำหรับไฟล์อาจแตกต่างกันไปตามเวลาของการเข้ารหัสด้วยรหัสสาธารณะ ฉันตีความว่าเป็นความหมายที่รูปแบบต่างๆ ในกระบวนการเข้ารหัสสามารถสร้างรูปแบบต่างๆ ของค่าแฮชได้ ดูเหมือนจะเข้ากันไม่ได้กับการอ้างสิทธิ์ทั่วไปที่ว่าการแฮชจะตรวจไม่พบความแตกต่างใดๆ ระหว่างไฟล์ที่เข้ารหัส (แม้ว่าจะถอดรหัสได้ทันที) และรูปแบบที่ไม่ได้เข้ารหัสก่อนหน้านี้

ฉันพลาดอะไรไปที่นี่?

DannyNiu avatar
vu flag
ไม่ว่าในกรณีใด PUoSU แสดงความคิด/การค้นพบของคุณโดยการนำไปปฏิบัติ
br flag
ฉันทำ. คำถามอื่นเชื่อมโยงกับการเขียน
Score:3
ธง kr

ฉันไม่เข้าใจว่า

หากระบบของคุณติดไวรัส ไม่มีอะไรรับประกันได้ว่าคุณอ่านเนื้อหาไฟล์จริงได้ เนื่องจากเนื้อหานั้นถูกจัดเก็บไว้ในดิสก์ อาจเป็นไปได้ว่าไฟล์นั้นถูกเข้ารหัสโดยแรนซัมแวร์ เมื่อคุณขอให้แอปพลิเคชันอ่าน มันจะเรียกใช้ระบบปฏิบัติการ หากแรนซัมแวร์ติดระบบ มันจะอ่านเนื้อหาที่เข้ารหัส ถอดรหัส และส่งต่อไปยังระบบปฏิบัติการและไปยังแอปพลิเคชันของคุณ ตราบใดที่คุณใช้ระบบที่ติดไวรัส คุณจะไม่สามารถรู้ได้ว่าอะไรคือเนื้อหาจริงในดิสก์

วิธีเดียวที่เชื่อถือได้ในการตรวจจับการเข้ารหัสคือการอ่านไฟล์โดยใช้ ระบบอื่นๆ. บูตจากแท่ง USB สร้างแฮชของไฟล์ ทำซ้ำเป็นครั้งคราว เช่น รายวันหรือรายสัปดาห์ แน่นอนว่ามันแตกต่างจากความต้องการของคุณที่จะตรวจจับการเปลี่ยนแปลงทันที

เป็นไปไม่ได้เลยที่จะแฮช เช่น ไฟล์ที่ผู้ใช้มีอยู่ เข้ารหัสอย่างปลอดภัย?

คุณสามารถแฮชไฟล์ใดก็ได้ มีเพียงคุณเท่านั้นที่รู้ว่าคุณได้เข้ารหัสไฟล์หรือไม่ สำหรับระบบปฏิบัติการและสำหรับแรนซัมแวร์นั้นไม่มีความแตกต่าง: ไฟล์ใด ๆ เป็นเพียงชุดของไบต์ หากคุณเข้ารหัสไฟล์ คำนวณแฮช เขียนไฟล์ลงในดิสก์ แล้วอ่านกลับ คุณจะได้สิ่งที่คุณเขียน (ไฟล์ที่เข้ารหัสของคุณ) แต่คุณจะไม่ทราบว่าก่อนที่จะบันทึกลงดิสก์นั้นถูกเข้ารหัสโดยแรนซัมแวร์หรือไม่ และหลังจากการอ่านถูกถอดรหัส

ค่าแฮชนั้นสำหรับไฟล์อาจแตกต่างกันไปตามช่วงเวลาของ การเข้ารหัสด้วยรหัสสาธารณะ

  1. ไม่ใช่ กัญชา ของไฟล์ธรรมดา แต่ไฟล์ ผลการเข้ารหัส อาจแตกต่างกันไป ดังนั้นสำหรับไฟล์ต่างๆ คุณจะได้รับแฮชที่แตกต่างกัน
  2. ผลลัพธ์การเข้ารหัสของไฟล์เดียวกันอาจแตกต่างกันไป แต่ไม่ใช่เพราะเวลา ตัวอย่างเช่น คุณสามารถเปิดใช้งานการเข้ารหัส AES GCM ของ เหมือนกัน ไฟล์ที่มี เหมือนกัน รหัสผ่านบน 100 เธรดคู่ขนานบน เหมือนกัน คอมพิวเตอร์ที่ เหมือนกัน กาลเวลาจะอำนวยผลทั้งหมด แตกต่าง ผล. แต่เมื่อถอดรหัสแล้ว พวกมันทั้งหมดจะสร้าง เหมือนกัน ไฟล์ต้นฉบับ
br flag
คำถามก่อนหน้าของฉันเชื่อมโยงไปยังขั้นตอนของฉันเพื่อเปรียบเทียบแฮชของไฟล์ในไดรฟ์ต้นทางของ Windows กับแฮชของไฟล์จากการสำรองข้อมูลก่อนหน้านี้ ซึ่งคำนวณบนระบบ Linux ความคิดเห็นที่ส่งฉันมาที่นี่เพื่อตอบคำถามก่อนหน้านี้ดูเหมือนจะบอกว่าการเปรียบเทียบแฮชนี้ไม่มีจุดหมาย ดูเหมือนว่าคุณจะเห็นด้วยกับแนวทางเดิมของฉัน คำถามก่อนหน้า: https://security.stackexchange.com/questions/259716/hash-based-technique-to-detect-ransomware-corruption-on-the-fly?noredirect=1 โพสต์ต้นฉบับ: https://raywoodcockslatest.wordpress.com/2021/12/08/ransomware-hash/
kr flag
@RayWoodcock: ไม่ ฉันไม่เห็นด้วยกับคุณ ขออภัย คำตอบของฉันไม่ชัดเจน ขั้นแรก ให้คุณคำนวณแฮชในระบบที่สะอาดและบันทึกไว้ที่ใดที่หนึ่งจากภายนอก จากนั้นระบบของคุณจะติดแรนซัมแวร์ มีการเข้ารหัสไฟล์บางส่วนของคุณ เมื่อคุณอ่านเพื่อคำนวณแฮช แรนซัมแวร์จะถอดรหัสและคุณจะได้รับแฮชเหมือนเดิม คุณจะได้รับแฮชเหมือนเดิม แต่ไม่สามารถทราบได้ว่ามี "เลเยอร์ระหว่าง" ที่เข้ารหัสและถอดรหัสข้อมูลอย่างโปร่งใสหรือไม่ ดังนั้น เมื่อคุณทำงานในระบบที่ติดไวรัส โดยการคำนวณแฮช คุณจะไม่สามารถตรวจจับได้ว่าแฮชนั้นถูกเข้ารหัสบนดิสก์หรือไม่
br flag
ขอบคุณสำหรับการติดตาม ใช่ คุณเข้าใจคำถามของฉัน ส่วนที่ทำให้ฉันประหลาดใจคือกรณีของไฟล์ที่เข้ารหัสโดยผู้ใช้ เครื่องมือแฮช "อ่านเพื่อคำนวณแฮช" หรือไม่ ฉันคิดว่าคำตอบคือเครื่องมือจะอ่านรูปลักษณ์ภายนอก: รับอักขระแบบสุ่มและคำนวณแฮชตามอักขระเหล่านั้น ทำไม (หรือบางทีคำถามควรจะเป็น ทำไมทำไม่ได้) เครื่องมือแฮชก็สังเกตเห็นเช่นกันว่าไฟล์ที่เข้ารหัสด้วยแรนซัมแวร์แตกต่างจากที่เคยเป็น
kr flag
1) *"เครื่องมือแฮช "อ่านเพื่อคำนวณแฮช" หรือไม่* - ใช่ แฮชไม่ใช่สิ่งที่คำนวณโดยอัตโนมัติ หากไม่มีการอ่านไฟล์ ก็จะไม่มีทางคำนวณแฮชได้ ไม่มีแฮช ** the ** สามารถมีอัลกอริธึมจำนวนมากในการคำนวณแฮช คุณเป็นผู้ตัดสินใจว่าคุณต้องการแฮชประเภทใด: MD5, SHA-256, SHA-512, BLAKE เป็นต้น
kr flag
2) *"ทำไม ... ไม่สามารถ ... เครื่องมือแฮชก็สังเกตเห็น ... "* - เนื่องจากต้องสังเกตเห็นความแตกต่าง เครื่องมือจึงต้องคำนวณแฮช สำหรับสิ่งนี้ เครื่องมือจำเป็นต้องอ่านไฟล์ เครื่องมือไม่สามารถเข้าถึงที่เก็บข้อมูลได้โดยตรง สิ่งนี้สามารถทำได้โดยทางอ้อมผ่านระบบปฏิบัติการ ระบบปฏิบัติการติดไวรัส แรนซัมแวร์สกัดกั้นคำขอทั้งหมดไปยังที่เก็บข้อมูล นั่นเป็นสาเหตุที่เครื่องมือแฮชได้รับสิ่งที่แรนซัมแวร์มอบให้ Ransomware ถอดรหัสไฟล์หลังจากอ่านจากที่เก็บข้อมูลและก่อนที่จะส่งไปยังระบบปฏิบัติการ ดังนั้นเครื่องมือแฮชจึงไม่มีทางรู้ว่าอะไรถูกเก็บไว้ใน HDD หรือ SSD
br flag
ตกลง. ขอขอบคุณสำหรับความอดทนของคุณ. ฉันคิดว่าฉันเข้าใจ. ดูเหมือนว่าแรนซัมแวร์ (ประเภทนี้) จะทำความเสียหายให้กับระบบปฏิบัติการ (Windows ในการตั้งค่าของฉัน) ทำให้สงสัยว่าแฮชไฟล์ของมันแต่ถ้าไฟล์ถูกเข้ารหัสด้วยแรนซัมแวร์ สิ่งนี้ควรเห็นได้ชัดในการเปรียบเทียบแฮชของ Windows กับแฮชของไฟล์เดียวกัน โดยคำนวณจากเครื่อง Linux ที่น่าจะสะอาด หากเป็นเช่นนั้น โครงร่างที่ระบุไว้ในโพสต์อื่น (ลิงก์ที่ให้ไว้ที่จุดเริ่มต้นของคำถามของฉัน ด้านบน) ดูเหมือนจะถูกต้อง
kr flag
@RayWoodcock: ฉันเกรงว่าคุณยังคงเข้าใจผิดว่าระบบปฏิบัติการและแรนซัมแวร์ทำงานอย่างไร คุณพูดถึง PowerShell ที่ตรวจจับการเปลี่ยนแปลงไฟล์ แต่มีเครื่องมือมากมายที่ตรวจจับการเปลี่ยนแปลงไฟล์ได้ทันที Windows มีคลาส *FileSystemWatcher* ที่คุณสามารถใช้ทำเช่นนั้นได้ หรือคุณสามารถเปรียบเทียบขนาดไฟล์และการประทับเวลา เครื่องมือทั้งหมดเหล่านี้สังเกตเห็นการเปลี่ยนแปลง *จริง* ของเนื้อหาไฟล์ แต่วิธีการเหล่านี้ไม่ใช่การแจ้งเตือนการเข้ารหัส/ถอดรหัสที่ทำโดยแรนซัมแวร์
br flag
เกี่ยวกับ PowerShell: ขอบคุณ ฉันเข้าใจแล้ว โพสต์อื่นๆ เกิดขึ้นก่อนโพสต์นี้ เช่นเดียวกับบล็อกโพสต์ของฉัน ฉันจะปรับปรุงหลัง แต่ความคิดเห็นล่าสุดของฉัน (ด้านบน) ไม่ถูกต้องหรือไม่ สถานการณ์: เครื่องมือแฮชของ Windows ถูกหลอกให้รายงานว่าไม่มีการเปลี่ยนแปลงในไฟล์ แต่เครื่องมือแฮชบนระบบ Linux ที่ไม่ติดเชื้อ ตรวจสอบไฟล์เดียวกัน ไม่ถูกหลอก เครื่องมือจะประเมินไฟล์ว่ามีการเปลี่ยนแปลงโดยแรนซัมแวร์ และคำนวณแฮชอื่น (ใครจะหวังสำหรับแรนซัมแวร์ที่ไม่ใช่ข้ามแพลตฟอร์ม) จากนั้นการเปรียบเทียบแฮชของ Windows และ Linux จะตรวจพบความไม่สอดคล้องกัน ไม่?
kr flag
@RayWoodcock: *"จากนั้นการเปรียบเทียบแฮชของ Windows และ Linux จะตรวจพบความไม่สอดคล้องกัน"* - ถูกต้อง แต่มันซับซ้อนเกินไป แค่เปรียบเทียบแฮชในระบบภายนอก (คุณเรียกว่า Linux): เปรียบเทียบแฮชของสถานะปัจจุบันกับแฮชของสถานะก่อนหน้าก็เพียงพอแล้ว
br flag
ตราบใดที่ฉันแน่ใจว่าระบบ Windows คือระบบที่ติดไวรัส
Score:2
ธง ng

Hashing ตรวจพบ (ด้วยความน่าจะเป็นอย่างท่วมท้น) ใดๆ ความแตกต่างระหว่างข้อมูลสองชิ้น รวมถึงชิ้นหนึ่งเป็นเวอร์ชันเข้ารหัสของอีกชิ้นหนึ่ง ดังนั้นหลักการของการเปรียบเทียบแฮชของไฟล์เพื่อตรวจจับว่ามีการเปลี่ยนแปลงมากน้อยเพียงใดจึงเป็นเสียง

อย่างไรก็ตาม มีสองสามวิธีที่โปรแกรมเข้ารหัสไฟล์บนดิสก์อย่างเป็นระบบสามารถหลบเลี่ยงการตรวจจับจากโปรแกรมที่ตรวจสอบว่าแฮชของไฟล์บนดิสก์ไม่เปลี่ยนแปลง พวกเขารวมถึง:

  • ปิดใช้งานการตรวจสอบโดยการยึดทรัพยากร CPU ทั้งหมดระหว่างการเข้ารหัส
  • การเชื่อมต่อกับโค้ดอ่านของโปรแกรมทั้งหมด (รวมถึงโปรแกรมที่ทำการตรวจสอบแฮช) เพื่อนำเสนอข้อมูลที่ยังไม่ได้แก้ไขจนกว่าไฟล์ทั้งหมดจะได้รับการเข้ารหัส แม้ว่าข้อมูลจะได้รับการเข้ารหัสทางกายภาพบนดิสก์แล้วก็ตาม สิ่งนี้เป็นไปได้หากใช้คีย์เข้ารหัสเพื่อถอดรหัสจนกว่าการเข้ารหัสจะเสร็จสมบูรณ์

อัปเดต: ไม่จำเป็นต้องปรับแต่ง cryptoransomware ให้เหมาะกับแฮชหรือโปรแกรมเปรียบเทียบแฮช สิ่งที่ต้องทำคือใช้สัญลักษณ์แสดงหัวข้อย่อยสองข้อข้างต้นอย่างถูกต้อง ในทางกลับกัน cryptoransomwares ที่เข้ารหัสจริงสองสามตัวที่ฉันศึกษา (ใน VM) ใช้กลยุทธ์แรกเพียงบางส่วนเท่านั้น (ซึ่งเป็นผลข้างเคียงของกลยุทธ์หลัก: เข้ารหัสให้เร็วที่สุดเท่าที่จะทำได้) และไม่ใช่อันที่สอง ซึ่งใน OS สมัยใหม่ต้องการการเพิ่มระดับสิทธิ์

br flag
คำตอบนี้ชัดเจนสำหรับฉันมากกว่าคำตอบอื่น ดูเหมือนว่าจะบอกว่าความคิดดั้งเดิม (บล็อก) ของฉันมาถูกทางแล้ว การแฮชจะตรวจจับความแตกต่างระหว่างไฟล์เวอร์ชันที่เข้ารหัสและไม่ได้เข้ารหัส ฉันยังคงงงงวยที่ความคิดเห็นในคำถามอื่นของฉัน (ลิงก์ด้านบน) ไม่เพียงแค่มั่นใจเท่านั้น แต่ยังได้รับการโหวตด้วย เกี่ยวกับประเด็นที่สองของคุณ: แรนซัมแวร์จะต้องเขียนสำหรับเครื่องมือแฮชเฉพาะแต่ละรายการหรือไม่ หรือสามารถ "เชื่อมโยงเข้ากับโค้ดอ่านของโปรแกรมทั้งหมด" ในลักษณะทั่วไปที่จะทำให้กิจกรรมการอ่านไฟล์เสียหายโดยโปรแกรมใดๆ
fgrieu avatar
ng flag
@RayWoodcock: ฉันเดาว่า [ความคิดเห็นนี้](https://security.stackexchange.com/questions/259716/#comment536553_259716) ได้รับการโหวตเพราะมันชี้ให้เห็นว่าคำถามนั้นถือว่า: "รูปแบบเด่นของแรนซัมแวร์เข้ารหัสไฟล์ ** *แล้วถอดรหัสได้ทันที*** เพื่อให้ผู้ใช้สามารถใช้งานได้โดยไม่ต้องแจ้งเตือนผู้ใช้ว่าไฟล์สามารถเข้ารหัสอย่างถาวรได้ทุกเมื่อ" ซึ่งคล้ายกับสัญลักษณ์แสดงหัวข้อย่อยที่สองในคำตอบของฉัน หากเป็นจริง (ซึ่งก็คือ _not_ evident) นั่นจะเอาชนะเทคนิคแฮชได้ เนื่องจากข้อมูลที่ถูกถอดรหัสนั้นถูกแฮช ซึ่งเหมือนกับต้นฉบับ ดังนั้นจึงมีแฮชเดียวกัน
br flag
การอ่านของฉันชี้ให้เห็นว่านี่เป็นความจริงเกี่ยวกับรูปแบบเด่นของแรนซัมแวร์ แต่ไม่เป็นไรถ้าฉันคิดผิด ฉันไม่คิดว่าจะมีข้อโต้แย้งใดๆ ว่ามีแรนซัมแวร์ประเภทนี้อยู่ ฉันคิดว่าสัญลักษณ์แสดงหัวข้อย่อยที่สองและการอัปเดตของคุณกำลังบอกว่าเครื่องมือแฮชไม่เห็นไฟล์ที่เข้ารหัสหากระบบได้รับคำสั่งให้มองข้าม อย่างน้อยก็ในขณะนี้ การเข้ารหัสไฟล์ทั้งหมดประเภท Xไฟล์ที่เข้ารหัสอาจไม่ใช่เกาะสำหรับตัวมันเอง เป็นห้องขังหนึ่งห้องในธนาคารแห่งห้องขัง ซึ่งห้องขังทั้งหมดสามารถปลดล็อกได้พร้อมกันด้วยสวิตช์อิเล็กทรอนิกส์เพียงอันเดียว แต่นั่นไม่ใช่ "ทันทีทันใด"

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา