มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

ดังที่คุณทราบ โค้ดที่ดำเนินการในวงล้อมนั้นมีข้อจำกัดอย่างมากในด้านฟังก์ชันการทำงาน ไม่สามารถทำการเรียกระบบได้ ไม่สามารถดำเนินการ I/O ได้ ไม่ทราบที่อยู่พื้นฐานของส่วนโค้ดของแอปพลิเคชันโฮสต์ ไม่สามารถ jmp หรือเรียกรหัสแอปพลิเคชันโฮสต์ได้ ไม่มีแนวคิดเกี่ยวกับโครงสร้างพื้นที่ที่อยู่ที่ควบคุมแอปพลิเคชันโฮสต์ (เช่น หน้าใดที่ถูกแมปหรือข้อมูลประเภทใดที่อยู่ในหน้าเหล่านั้น) ไม่สามารถขอให้ระบบปฏิบัติการแมปหน่วยความจำของแอปพลิเคชันโฮสต์กับมันได้ (เช่น ผ่าน /proc/pid/maps) ความพยายามที่ไร้เดียงสาในการอ่านขอบเขตหน่วยความจำตามอำเภอใจของแอปพลิเคชันโฮสต์ ไม่ต้องพูดถึงความพยายามในการเขียน ไม่ช้าก็เร็ว (น่าจะเป็นอย่างแรก) จะนำไปสู่การบังคับให้ยุติโปรแกรมวงล้อม สิ่งนี้จะเกิดขึ้นเมื่อใดก็ตามที่พื้นที่พื้นที่ที่อยู่เสมือนที่ร้องขอโดยเครือข่ายไม่สามารถเข้าถึงแอปพลิเคชันโฮสต์ได้

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

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

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

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

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

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

แฮ็กเพื่อตรวจสอบที่อยู่เพื่อดูว่าสามารถอ่านได้หรือไม่

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

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

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

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

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

นอกจากนี้ เนื่องจากการแฮ็กข้างต้นไม่ต้องอาศัยการเรียกของระบบใดๆ จึงไม่สามารถตรวจพบหรือป้องกันได้โดยการบล็อกการโทรของระบบเท่านั้น ซึ่งมักจะให้ผลดีในการต่อสู้กับการล่าไข่

คนร้ายใช้แฮ็กที่อธิบายไว้ข้างต้นเพื่อค้นหาโค้ดแอปพลิเคชันโฮสต์เพื่อหาอุปกรณ์ที่เหมาะสมสำหรับการสร้างเครือข่าย ROP ในเวลาเดียวกัน เขาไม่จำเป็นต้องตรวจสอบทุกที่อยู่ การตรวจสอบหนึ่งที่อยู่จากแต่ละหน้าของพื้นที่ที่อยู่เสมือนก็เพียงพอแล้ว การตรวจสอบหน่วยความจำทั้งหมด 16 กิกะไบต์ใช้เวลาประมาณ 45 นาที (บน Intel i7-6700K) เป็นผลให้ผู้ร้ายได้รับรายการเพจที่สามารถเรียกใช้งานได้ซึ่งเหมาะสำหรับการสร้างห่วงโซ่ ROP

แฮ็กเพื่อตรวจสอบที่อยู่เพื่อให้สามารถเขียนได้

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

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

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

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

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

แฮ็กเพื่อเปลี่ยนเส้นทางการควบคุม

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

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

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

แฮ็กทั้งสามที่ระบุไว้ข้างต้นให้อะไรกับคนร้าย?

(1) ประการแรก วงล้อมที่เป็นอันตรายจะผ่านเข้ามา แฮ็กเพื่อตรวจสอบที่อยู่เพื่อดูว่าสามารถอ่านได้หรือไม่, – ค้นหาแอปพลิเคชันโฮสต์เพื่อหาอุปกรณ์ ROP ที่ใช้งานในทางที่ผิด

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

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

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

(3) ถัดไป วงล้อมจะสร้างห่วงโซ่ ROP จากอุปกรณ์ที่ค้นพบในขั้นตอนที่ (1) และแทรกห่วงโซ่นี้ลงในสแต็กแอปพลิเคชันโฮสต์

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

(4) ในที่สุด เมื่อแอปพลิเคชันโฮสต์พบห่วงโซ่ ROP ที่สร้างขึ้นในขั้นตอนก่อนหน้า เพย์โหลดที่เป็นอันตรายจะเริ่มดำเนินการ - ด้วยสิทธิ์ของแอปพลิเคชันโฮสต์และความสามารถในการทำการเรียกของระบบ

วิธีที่คนร้ายใช้แฮ็กเหล่านี้เพื่อสร้างแรนโซวารี

หลังจากที่แอปพลิเคชันโฮสต์ถ่ายโอนการควบคุมไปยังเครือข่ายผ่าน ECALL ตัวใดตัวหนึ่ง (โดยไม่สงสัยว่าเครือข่ายนี้เป็นอันตราย) เครือข่ายที่เป็นอันตรายจะค้นหาพื้นที่ว่างในหน่วยความจำของแอปพลิเคชันโฮสต์เพื่อแทรกโค้ด (โดยถือเป็นพื้นที่ว่างในลำดับของเซลล์เหล่านั้น ที่เต็มไปด้วยเลขศูนย์) แล้วผ่าน แฮ็กเพื่อตรวจสอบที่อยู่เพื่อดูว่าสามารถอ่านได้หรือไม่, – วงล้อมค้นหาเพจปฏิบัติการในแอปพลิเคชันโฮสต์และสร้างห่วงโซ่ ROP ที่สร้างไฟล์ใหม่ชื่อ “RANSOM” ในไดเร็กทอรีปัจจุบัน (ในการโจมตีจริง วงล้อมจะเข้ารหัสไฟล์ผู้ใช้ที่มีอยู่) และแสดงข้อความเรียกค่าไถ่ ในเวลาเดียวกัน แอปพลิเคชันโฮสต์เชื่ออย่างไร้เดียงสาว่าวงล้อมนั้นเป็นเพียงการเพิ่มตัวเลขสองตัวเท่านั้น สิ่งนี้มีลักษณะอย่างไรในโค้ด?

เพื่อความสะดวกในการรับรู้ เราจะมาแนะนำตัวช่วยจำผ่านคำจำกัดความ:

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

เราบันทึกค่าดั้งเดิมของการลงทะเบียน RSP และ RBP เพื่อคืนค่าการทำงานปกติของแอปพลิเคชันโฮสต์หลังจากดำเนินการเพย์โหลด:

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

เรากำลังมองหาเฟรมสแต็กที่เหมาะสม (ดูโค้ดจากส่วน “แฮ็กเพื่อเปลี่ยนเส้นทางการควบคุมโฟลว์”)

ค้นหาอุปกรณ์ ROP ที่เหมาะสม:

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

การค้นหาสถานที่ที่จะฉีดเพย์โหลด:

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

เราสร้างห่วงโซ่ ROP:

มัลแวร์ SGX: วิธีที่ผู้ร้ายใช้ประโยชน์จากเทคโนโลยีใหม่ของ Intel เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้

นี่คือวิธีที่เทคโนโลยี SGX ของ Intel ซึ่งออกแบบมาเพื่อตอบโต้โปรแกรมที่เป็นอันตราย ถูกใช้โดยผู้ร้ายเพื่อบรรลุเป้าหมายที่ตรงกันข้าม

ที่มา: will.com

เพิ่มความคิดเห็น