ในอดีต พนักงานส่วนใหญ่ใช้คีย์บอร์ดและเมาส์ไร้สายจาก Logitech เราซึ่งเป็นผู้เชี่ยวชาญของทีม Raccoon Security ป้อนรหัสผ่านอีกครั้งถามตัวเองว่าการหลีกเลี่ยงกลไกความปลอดภัยของคีย์บอร์ดไร้สายนั้นยากแค่ไหน การศึกษานี้เผยให้เห็นข้อบกพร่องทางสถาปัตยกรรมและข้อผิดพลาดของซอฟต์แวร์ที่ทำให้สามารถเข้าถึงข้อมูลอินพุตได้ ด้านล่างของการตัดคือสิ่งที่เราได้รับ
ทำไมต้องโลจิเทค?
ในความเห็นของเรา อุปกรณ์อินพุตของ Logitech เป็นหนึ่งในคุณภาพสูงสุดและสะดวกที่สุด อุปกรณ์ส่วนใหญ่ที่เรามีใช้โซลูชันของ Logitech
ตัวรับสัญญาณ Dongle พร้อมการสนับสนุน Logitech Unifying
แป้นพิมพ์สามารถกลายเป็นแหล่งข้อมูลสำหรับผู้โจมตีได้ Logitech โดยคำนึงถึงภัยคุกคามที่อาจเกิดขึ้นได้ดูแลความปลอดภัย - ใช้อัลกอริธึมการเข้ารหัส AES128 ในช่องวิทยุของคีย์บอร์ดไร้สาย ความคิดแรกที่ผู้โจมตีอาจมีในสถานการณ์เช่นนี้คือการสกัดกั้นข้อมูลสำคัญเมื่อถูกส่งผ่านสถานีวิทยุในระหว่างขั้นตอนการผูกมัด ท้ายที่สุด หากคุณมีกุญแจ คุณสามารถสกัดกั้นสัญญาณวิทยุของคีย์บอร์ดและถอดรหัสได้ อย่างไรก็ตาม ผู้ใช้แทบจะไม่ต้องรวมคีย์บอร์ดเข้าด้วยกันเลย (หรือไม่เคยเลยด้วยซ้ำ) และแฮกเกอร์ที่มีวิทยุสแกนจะต้องรอเป็นเวลานาน นอกจากนี้ไม่ใช่ทุกอย่างจะง่ายนักด้วยกระบวนการสกัดกั้นเอง ในการศึกษาล่าสุดเมื่อเดือนมิถุนายน 2019 ผู้เชี่ยวชาญด้านความปลอดภัย Markus Mengs เผยแพร่ทางออนไลน์
เราจะพูดถึงการศึกษาด้านความปลอดภัยของดองเกิล Logitech ที่ใช้ NRF24 SoC จาก Nordic Semiconductor เริ่มจากสถานีวิทยุกันก่อน
ข้อมูล "บิน" ในช่องวิทยุอย่างไร
สำหรับการวิเคราะห์ความถี่เวลาของสัญญาณวิทยุ เราใช้ตัวรับ SDR ที่ใช้อุปกรณ์ Blade-RF ในโหมดวิเคราะห์สเปกตรัม (คุณสามารถอ่านเกี่ยวกับเรื่องนี้ได้
อุปกรณ์ SDR Blade-RF
นอกจากนี้เรายังคำนึงถึงความเป็นไปได้ในการบันทึกการสร้างพื้นที่สี่เหลี่ยมจัตุรัสของสัญญาณวิทยุที่ความถี่กลาง ซึ่งสามารถวิเคราะห์ได้โดยใช้เทคนิคการประมวลผลสัญญาณดิจิทัล
คณะกรรมการแห่งรัฐด้านความถี่วิทยุในสหพันธรัฐรัสเซีย
สเปกตรัมของย่านความถี่ 2,4 GHz
สภาพแวดล้อมการรบกวนในช่วงนั้นค่อนข้างซับซ้อน อย่างไรก็ตาม Logitech ก็สามารถให้การรับสัญญาณที่เชื่อถือได้และเสถียรผ่านการใช้โปรโตคอล Enhanced ShockBurst ในตัวรับส่งสัญญาณ NRF24 ร่วมกับอัลกอริธึมการปรับความถี่
ช่องสัญญาณในแถบความถี่จะถูกวางไว้ที่ตำแหน่งจำนวนเต็ม MHz ตามที่กำหนดไว้ใน
สัญญาณวิทยุคีย์บอร์ดในการแสดงเวลา
ผู้รับใช้หลักความสัมพันธ์ของการรับสัญญาณ ดังนั้นแพ็กเก็ตที่ส่งจึงมีส่วนคำนำและที่อยู่ ไม่ใช้การเข้ารหัสป้องกันเสียงรบกวน ส่วนข้อมูลถูกเข้ารหัสด้วยอัลกอริธึม AES128
โดยทั่วไป อินเทอร์เฟซวิทยุของคีย์บอร์ดไร้สาย Logitech สามารถกำหนดลักษณะเป็นแบบอะซิงโครนัสโดยสิ้นเชิงกับการปรับมัลติเพล็กซ์ทางสถิติและความถี่ ซึ่งหมายความว่าตัวส่งสัญญาณคีย์บอร์ดจะเปลี่ยนช่องเพื่อส่งแพ็กเก็ตใหม่แต่ละอัน ผู้รับไม่ทราบล่วงหน้าทั้งเวลาในการส่งหรือช่องความถี่ แต่ทราบเฉพาะรายการเท่านั้น เครื่องรับและเครื่องส่งสัญญาณมาบรรจบกันในช่องด้วยอัลกอริธึมการบายพาสความถี่และการฟังที่ประสานกัน รวมถึงกลไกการรับทราบ ShockBurst ที่ได้รับการปรับปรุง เราไม่ได้ตรวจสอบว่ารายการช่องเป็นแบบคงที่หรือไม่ อาจมีการเปลี่ยนแปลงเนื่องจากอัลกอริธึมการปรับความถี่ สิ่งที่ใกล้เคียงกับวิธีการกระโดดความถี่ (การปรับความถี่การทำงานแบบสุ่มหลอก) สามารถเห็นได้ในการใช้ทรัพยากรความถี่ของช่วง
ดังนั้น ภายใต้เงื่อนไขของความไม่แน่นอนของเวลาและความถี่ เพื่อให้แน่ใจว่าสามารถรับสัญญาณคีย์บอร์ดทั้งหมดได้อย่างมั่นใจ ผู้โจมตีจะต้องตรวจสอบตารางความถี่ทั้งหมด 84 ตำแหน่งอย่างต่อเนื่อง ซึ่งต้องใช้เวลาพอสมควร ชัดเจนแล้วว่าทำไมช่องโหว่ในการแยกคีย์ USB (CVE-2019-13054)
มองปัญหาจากภายใน
สำหรับการศึกษาของเรา เราได้เลือกคีย์บอร์ด Logitech K330 ที่มีอยู่และดองเกิล Unifying ของ Logitech
Logitech K330
มาดูภายในคีย์บอร์ดกันดีกว่า องค์ประกอบที่น่าสนใจบนบอร์ดที่ต้องศึกษาคือชิป SoC NRF24 จาก Nordic Semiconductor
SoC NRF24 บนบอร์ดคีย์บอร์ดไร้สาย Logitech K330
เฟิร์มแวร์อยู่ในหน่วยความจำภายใน กลไกการอ่านและการดีบักถูกปิดใช้งาน น่าเสียดายที่เฟิร์มแวร์ไม่ได้รับการเผยแพร่ในโอเพ่นซอร์ส ดังนั้นเราจึงตัดสินใจแก้ไขปัญหาจากอีกด้านหนึ่ง - เพื่อศึกษาเนื้อหาภายในของเครื่องรับดองเกิล Logitech
“โลกภายใน” ของเครื่องรับดองเกิลค่อนข้างน่าสนใจ ดองเกิลนั้นถอดประกอบได้ง่าย และพกพา NRF24 release ที่คุ้นเคยพร้อมคอนโทรลเลอร์ USB ในตัว และสามารถตั้งโปรแกรมใหม่ได้ทั้งจากฝั่ง USB และจากโปรแกรมเมอร์โดยตรง
ดองเกิล Logitech ที่ไม่มีตัวเครื่อง
เนื่องจากมีกลไกมาตรฐานในการอัพเดตเฟิร์มแวร์โดยใช้
สิ่งที่ทำไปแล้ว: เฟิร์มแวร์ RQR_012_005_00028.bin ถูกแยกออกจากเนื้อความของแอปพลิเคชัน Firmware Update Tool เพื่อตรวจสอบความสมบูรณ์ ตัวควบคุมดองเกิลเชื่อมต่อด้วยสายเคเบิล
สายเคเบิลสำหรับเชื่อมต่อดองเกิล Logitech เข้ากับโปรแกรมเมอร์ ChipProg 48
เพื่อควบคุมความสมบูรณ์ของเฟิร์มแวร์ เฟิร์มแวร์จึงถูกวางไว้ในหน่วยความจำของคอนโทรลเลอร์และทำงานได้อย่างถูกต้อง แป้นพิมพ์และเมาส์เชื่อมต่อกับดองเกิลผ่าน Logitech Unifying คุณสามารถอัปโหลดเฟิร์มแวร์ที่แก้ไขแล้วได้โดยใช้กลไกการอัพเดตมาตรฐาน เนื่องจากไม่มีกลไกการป้องกันการเข้ารหัสสำหรับเฟิร์มแวร์ เพื่อวัตถุประสงค์ในการวิจัย เราใช้การเชื่อมต่อทางกายภาพกับโปรแกรมเมอร์ เนื่องจากการดีบักด้วยวิธีนี้ทำได้เร็วกว่ามาก
การวิจัยเฟิร์มแวร์และการโจมตีอินพุตของผู้ใช้
ชิป NRF24 ได้รับการออกแบบโดยใช้แกนประมวลผล Intel 8051 ในสถาปัตยกรรม Harvard แบบดั้งเดิม สำหรับแกนกลาง ตัวรับส่งสัญญาณทำหน้าที่เป็นอุปกรณ์ต่อพ่วงและวางไว้ในพื้นที่ที่อยู่เป็นชุดของรีจิสเตอร์ คุณสามารถดูเอกสารประกอบสำหรับตัวอย่างชิปและซอร์สโค้ดได้บนอินเทอร์เน็ต ดังนั้นการถอดแยกชิ้นส่วนเฟิร์มแวร์จึงไม่ใช่เรื่องยาก ในระหว่างวิศวกรรมย้อนกลับ เราได้แปลฟังก์ชันสำหรับรับข้อมูลการกดแป้นพิมพ์จากช่องสัญญาณวิทยุและแปลงเป็นรูปแบบ HID เพื่อส่งสัญญาณไปยังโฮสต์ผ่านอินเทอร์เฟซ USB รหัสการฉีดถูกวางไว้ในที่อยู่หน่วยความจำว่าง ซึ่งรวมถึงเครื่องมือสำหรับสกัดกั้นการควบคุม บันทึก และกู้คืนบริบทการดำเนินการดั้งเดิม รวมถึงรหัสการทำงาน
แพ็กเก็ตของการกดหรือปล่อยคีย์ที่ได้รับจากดองเกิลจากสถานีวิทยุจะถูกถอดรหัส แปลงเป็นรายงาน HID มาตรฐาน และส่งไปยังอินเทอร์เฟซ USB เหมือนกับจากแป้นพิมพ์ทั่วไป ส่วนหนึ่งของการศึกษานี้ ส่วนหนึ่งของรายงาน HID ที่เราสนใจมากที่สุดคือส่วนหนึ่งของรายงาน HID ที่ประกอบด้วยไบต์ของแฟล็กตัวปรับแต่งและอาร์เรย์ 6 ไบต์พร้อมรหัสการกดแป้นพิมพ์ (สำหรับการอ้างอิง ข้อมูลเกี่ยวกับ HID
โครงสร้างรายงาน HID:
// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
uint8_t Modifiers;
uint8_t Reserved;
uint8_t KeyCode[6];
}HidKbdReport_t;
ทันทีก่อนที่จะส่งโครงสร้าง HID ไปยังโฮสต์ โค้ดที่ฉีดเข้าไปจะควบคุม คัดลอกข้อมูล HID ดั้งเดิม 8 ไบต์ในหน่วยความจำ และส่งไปยังช่องสัญญาณด้านข้างวิทยุในรูปแบบข้อความที่ชัดเจน ในโค้ดดูเหมือนว่านี้:
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState(); // save transceiver state
RfInitForTransmition(TransmitRfAddress); // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE(); // Toggle radio CE signal to start transmission
RestoreRfState(); // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<
ช่องด้านข้างได้รับการจัดระเบียบตามความถี่ที่เรากำหนดไว้พร้อมกับคุณลักษณะบางอย่างของความเร็วในการจัดการและโครงสร้างแพ็กเก็ต
การทำงานของตัวรับส่งสัญญาณในชิป
สัญญาณระเบิดแบบ Demodulated Burst ในช่องด้านข้าง
หลังจากที่แพ็กเก็ตถูกส่งไปยังช่องด้านข้าง โค้ดที่ฉีดจะคืนสถานะของตัวรับส่งสัญญาณ ตอนนี้ก็พร้อมทำงานตามปกติอีกครั้งในบริบทของเฟิร์มแวร์ดั้งเดิม
ในโดเมนความถี่และความถี่เวลา ช่องด้านข้างจะมีลักษณะดังนี้:
การแสดงสเปกตรัมและความถี่เวลาของช่องด้านข้าง
เพื่อทดสอบการทำงานของชิป NRF24 ด้วยเฟิร์มแวร์ที่ได้รับการดัดแปลง เราได้ประกอบขาตั้งที่มีดองเกิล Logitech พร้อมเฟิร์มแวร์ที่ได้รับการดัดแปลง แป้นพิมพ์ไร้สาย และตัวรับสัญญาณที่ประกอบขึ้นบนพื้นฐานของโมดูลภาษาจีนด้วยชิป NRF24
วงจรดักจับสัญญาณวิทยุคีย์บอร์ดไร้สายของ Logitech
โมดูลที่ใช้ NRF24
บนม้านั่งโดยที่คีย์บอร์ดทำงานตามปกติ หลังจากเชื่อมต่อกับดองเกิล Logitech เราสังเกตเห็นการส่งข้อมูลที่ชัดเจนเกี่ยวกับการกดแป้นพิมพ์ในช่องวิทยุด้านข้าง และการส่งข้อมูลที่เข้ารหัสตามปกติในอินเทอร์เฟซวิทยุหลัก ดังนั้นเราจึงสามารถสกัดกั้นการป้อนข้อมูลด้วยแป้นพิมพ์ของผู้ใช้ได้โดยตรง:
ผลลัพธ์ของการสกัดกั้นการป้อนข้อมูลด้วยแป้นพิมพ์
รหัสที่ฉีดทำให้เกิดความล่าช้าเล็กน้อยในการทำงานของเฟิร์มแวร์ดองเกิล อย่างไรก็ตาม มันเล็กเกินกว่าที่ผู้ใช้จะสังเกตได้
ดังที่คุณสามารถจินตนาการได้ คีย์บอร์ด Logitech ใดๆ ที่เข้ากันได้กับเทคโนโลยี Unifying สามารถใช้กับเวกเตอร์การโจมตีนี้ได้ เนื่องจากการโจมตีกำหนดเป้าหมายไปที่ตัวรับสัญญาณ Unifying ที่มาพร้อมกับคีย์บอร์ด Logitech ส่วนใหญ่ จึงไม่ขึ้นอยู่กับรุ่นคีย์บอร์ดเฉพาะ
ข้อสรุป
ผลการศึกษาชี้ให้เห็นถึงการใช้งานที่เป็นไปได้ของสถานการณ์ที่พิจารณาโดยผู้โจมตี: หากแฮกเกอร์แทนที่เหยื่อด้วยตัวรับสัญญาณดองเกิลสำหรับคีย์บอร์ดไร้สาย Logitech เขาจะสามารถค้นหารหัสผ่านไปยังบัญชีของเหยื่อพร้อมกับผลลัพธ์ที่ตามมาทั้งหมด ผลที่ตามมา. อย่าลืมว่าสามารถฉีดการกดแป้นพิมพ์ได้ซึ่งหมายความว่าการรันโค้ดบนคอมพิวเตอร์ของเหยื่อนั้นไม่ใช่เรื่องยาก
จะเกิดอะไรขึ้นหากจู่ๆ ผู้โจมตีสามารถแก้ไขเฟิร์มแวร์ของดองเกิล Logitech ผ่าน USB จากระยะไกลได้ จากนั้น คุณสามารถสร้างเครือข่ายรีพีทเตอร์และเพิ่มระยะการรั่วไหลได้โดยใช้ดองเกิลที่มีระยะห่างกันมาก แม้ว่าผู้โจมตีที่ "ร่ำรวยทางการเงิน" จะสามารถ "ฟัง" อินพุตจากแป้นพิมพ์และกดปุ่มได้แม้กระทั่งจากอาคารใกล้เคียง อุปกรณ์รับสัญญาณวิทยุสมัยใหม่พร้อมระบบที่คัดสรรมาอย่างดี เครื่องรับวิทยุที่มีความละเอียดอ่อนซึ่งมีเวลาในการปรับความถี่สั้น และเสาอากาศที่มีทิศทางสูงจะอนุญาตได้ เพื่อ "ฟัง" การป้อนข้อมูลด้วยแป้นพิมพ์และกดปุ่มแม้จะมาจากอาคารใกล้เคียง
อุปกรณ์วิทยุมืออาชีพ
เนื่องจากช่องส่งข้อมูลไร้สายของคีย์บอร์ด Logitech ได้รับการปกป้องอย่างดี เวกเตอร์การโจมตีที่พบจึงจำเป็นต้องมีการเข้าถึงทางกายภาพไปยังตัวรับ ซึ่งจะจำกัดผู้โจมตีได้อย่างมาก ตัวเลือกการป้องกันเดียวในกรณีนี้คือการใช้กลไกการป้องกันการเข้ารหัสสำหรับเฟิร์มแวร์ตัวรับ ตัวอย่างเช่น การตรวจสอบลายเซ็นของเฟิร์มแวร์ที่โหลดบนฝั่งตัวรับ แต่น่าเสียดายที่ NRF24 ไม่รองรับสิ่งนี้ และเป็นไปไม่ได้ที่จะใช้การป้องกันภายในสถาปัตยกรรมอุปกรณ์ปัจจุบัน ดังนั้นดูแลดองเกิลของคุณให้ดี เพราะตัวเลือกการโจมตีที่อธิบายไว้นั้นต้องการการเข้าถึงทางกายภาพ
Raccoon Security เป็นทีมผู้เชี่ยวชาญพิเศษจากศูนย์วิจัยและพัฒนา Vulcan ในสาขาความปลอดภัยของข้อมูลเชิงปฏิบัติ การเข้ารหัส การออกแบบวงจร วิศวกรรมย้อนกลับ และการสร้างซอฟต์แวร์ระดับต่ำ
ที่มา: will.com