เมื่อไม่กี่วันที่ผ่านมา ทีมนักวิจัยได้เปิดเผยข้อมูลเกี่ยวกับการพัฒนา การโจมตี Rowhammer ครั้งแรก นี้ ได้รับการกำกับให้สำเร็จแล้ว la หน่วยความจำวิดีโอ GDDR6 ของ GPU โดยเฉพาะ NVIDIA A6000
เทคนิค, เรียกว่า GPUHammerอนุญาตให้มีการจัดการบิตแต่ละบิตใน DRAM ของ GPU ซึ่งลดความแม่นยำของโมเดลการเรียนรู้ของเครื่องลงอย่างมาก โดยการเปลี่ยนแปลงพารามิเตอร์เพียงบิตเดียว การพลิกบิตเหล่านี้ทำให้ผู้ใช้ GPU ที่ไม่หวังดีสามารถจัดการข้อมูล GPU ของผู้ใช้รายอื่นในสภาพแวดล้อมที่ใช้ร่วมกันและแบ่งเวลาได้
จนถึงตอนนี้ การนำ Rowhammer มาใช้กับหน่วยความจำวิดีโอถือว่าไม่เหมาะสม เนื่องจากข้อจำกัดทางเทคนิคหลายประการ การจัดวางโครงสร้างทางกายภาพของเซลล์หน่วยความจำในชิป GDDR นั้นทำได้ยาก ความล่าช้าในการเข้าถึงข้อมูลนั้นช้ากว่า DRAM ทั่วไปถึงสี่เท่า และอัตราการรีเฟรชก็สูงกว่ามาก นอกจากนี้ยังมีกลไกป้องกันการสูญเสียประจุก่อนกำหนดที่เป็นกรรมสิทธิ์ ซึ่งการวิศวกรรมย้อนกลับจำเป็นต้องใช้อุปกรณ์เฉพาะทาง
เพื่อเอาชนะอุปสรรคเหล่านี้ นักวิจัยพัฒนาเทคนิควิศวกรรมย้อนกลับใหม่ที่กำหนดเป้าหมายไปที่ GDDR DRAMพวกเขาใช้โค้ด CUDA ระดับต่ำในการโจมตีผ่านการปรับแต่งเฉพาะเจาะจงเพื่อเพิ่มการเข้าถึงเซลล์หน่วยความจำบางเซลล์ ก่อให้เกิดสภาวะที่เอื้อต่อการจัดการบิต กุญแจสู่ความสำเร็จอยู่ที่การประมวลผลแบบขนานที่มีการจัดการอย่างเป็นระบบ ซึ่งทำหน้าที่เป็นตัวขยายแรงกดดันต่อเซลล์ข้างเคียง
การโจมตีทำงานอย่างไร?
การโจมตี ใช้ประโยชน์จากจุดอ่อนทางกายภาพใน DRAM ซึ่งการเข้าถึงแถวหน่วยความจำอย่างเข้มข้น (เรียกว่า "การตอกย้ำ") สามารถทำให้เกิดการเปลี่ยนแปลงในแถวที่อยู่ติดกันได้แม้ว่าช่องโหว่นี้จะได้รับการระบุในปี 2014 และได้รับการศึกษาอย่างกว้างขวางในหน่วยความจำ CPU DDR แต่การพอร์ตไปยัง GPU ยังคงเป็นความท้าทายเนื่องจาก:
- ความหน่วงในการเข้าถึงที่สูงของ GDDR6 (สูงกว่า DDR4 ถึง 4 เท่า)
- ความซับซ้อนในการจัดสรรหน่วยความจำทางกายภาพ
- การมีอยู่ของการบรรเทาที่เป็นกรรมสิทธิ์และมีการบันทึกไม่ชัดเจน เช่น TRR
Rowhammer เป็นช่องโหว่ด้านฮาร์ดแวร์ที่การเปิดใช้งานหน่วยความจำแถวหนึ่งอย่างรวดเร็วจะทำให้เกิดการพลิกบิตในแถวที่อยู่ติดกัน ตั้งแต่ปี 2014 เป็นต้นมา ช่องโหว่นี้ได้รับการศึกษาอย่างกว้างขวางใน CPU และหน่วยความจำที่ใช้ CPU เช่น DDR3, DDR4 และ LPDDR4 อย่างไรก็ตาม เนื่องจากเวิร์กโหลดที่สำคัญของ AI และการเรียนรู้ของเครื่องทำงานบน GPU แบบแยกบนคลาวด์ การประเมินความเสี่ยงของหน่วยความจำ GPU ต่อการโจมตี Rowhammer จึงมีความสำคัญอย่างยิ่ง
แม้จะมีอุปสรรคเหล่านี้ นักวิจัยสามารถนำวิศวกรรมย้อนกลับมาใช้ได้ เกี่ยวกับการจัดสรรหน่วยความจำเสมือน/ทางกายภาพใน CUDA พวกเขาพัฒนาวิธีการเพื่อระบุธนาคารหน่วยความจำ DRAM เฉพาะ และเพิ่มประสิทธิภาพการเข้าถึงแบบขนานโดยใช้เธรดและการบิดหลายตัว เพื่อเพิ่มอัตราการตอกสูงสุดโดยไม่ทำให้เกิดความล่าช้าเพิ่มเติม
หลักฐานแนวคิดแสดงให้เห็นว่าการพลิกบิตเดียวในแบบจำลองเครือข่ายประสาทเทียมเชิงลึก (DNN) โดยเฉพาะอย่างยิ่งในเลขชี้กำลัง FP16 สามารถลดความแม่นยำอันดับ 1 ของแบบจำลองการจำแนกภาพบน ImageNet ลงจาก 80% เหลือ 0,1% การค้นพบนี้น่าตกใจสำหรับศูนย์ข้อมูลและบริการคลาวด์ที่รันเวิร์กโหลด AI ในสภาพแวดล้อมที่ใช้ร่วมกันกับ GPU
การบรรเทาและข้อจำกัด
NVIDIA ได้ยืนยันช่องโหว่ดังกล่าวแล้วและแนะนำให้เปิดใช้งานการรองรับ ECC (รหัสแก้ไขข้อผิดพลาด) โดยใช้คำสั่ง nvidia-smi -e 1. แม้ว่า มาตรการนี้สามารถแก้ไขข้อผิดพลาดได้ บิตเดียว นั่นหมายถึงการสูญเสียประสิทธิภาพการทำงานถึง 10% และลดหน่วยความจำที่มีอยู่ลง 6,25% นอกจากนี้ยังไม่สามารถป้องกันการโจมตีในอนาคตที่เกี่ยวข้องกับการพลิกบิตหลายครั้งได้
เราได้ยืนยันความผันผวนของบิตแบบ Rowhammer บน GPU NVIDIA A6000 ที่ใช้หน่วยความจำ GDDR6 GPU GDDR6 อื่นๆ เช่น RTX 3080 ไม่แสดงความผันผวนของบิตในการทดสอบของเรา ซึ่งอาจเป็นผลมาจากความแตกต่างของผู้ผลิต DRAM ลักษณะของชิป หรือสภาวะการทำงาน เช่น อุณหภูมิ นอกจากนี้ เรายังไม่พบความผันผวนใดๆ บน GPU A100 ที่ใช้หน่วยความจำ HBM
ทีมงานเน้นย้ำว่า ปัจจุบัน GPUHammer ได้รับการตรวจสอบบน GPU A6000 ที่มี GDDR6 เท่านั้นและไม่ใช่บนรุ่นเช่น A100 (HBM) หรือ RTX 3080 อย่างไรก็ตาม เนื่องจากนี่เป็นการโจมตีแบบขยายได้ นักวิจัยคนอื่นๆ จึงได้รับการสนับสนุนให้ทำซ้ำและขยายการวิเคราะห์บนสถาปัตยกรรมและรุ่น GPU ที่แตกต่างกัน
สุดท้ายนี้ หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ คุณสามารถศึกษารายละเอียดได้ใน ลิงค์ต่อไปนี้