ที่งานรักษาความปลอดภัย DEF CON ที่มีชื่อเสียงในลาสเวกัส รัฐเนวาดา เมื่อสัปดาห์ที่แล้ว Patrick Wardle นักวิจัยด้านความปลอดภัยทางไซเบอร์ของ Mac เปิดเผย "รับรูท" การยกระดับสิทธิ์ บั๊ก (EoP) ใน Zoom สำหรับ Mac:
Mahalo ถึงทุกคนที่มาหาฉัน @defcon พูดคุย “You're M̶u̶t̶e̶d̶ Rooted” 🙏🏽
ถูกพูดถึง (& สาธิตสด 😅) ช่องโหว่ priv-esc ในพื้นที่ใน Zoom (สำหรับ macOS)
ตอนนี้ยังไม่มีแพทช์ 👀😱
สไลด์ที่มีรายละเอียดทั้งหมดและการใช้ประโยชน์จาก PoC: https://t.co/viee0Yd5o2 # 0 วัน pic.twitter.com/9dW7DdUm7P
— แพทริควาร์เดิล (@patrickwardle) สิงหาคม 12, 2022
ในทวีตซึ่งเป็นไปตามคำพูดของเขา [2022-08-12] Wardle ตั้งข้อสังเกต:
ขณะนี้ยังไม่มีโปรแกรมแก้ไข [:FRIED-EGG EYES DEPICTING ALARM EMOJI:] [:EDVARD MUNCH SCREAM EMOJI:]
Zoom ดำเนินการแก้ไขข้อบกพร่องในทันที ซึ่งประกาศในวันรุ่งขึ้นใน กระดานข่าวความปลอดภัย Zoom ZSB-22018, ได้รับการแสดงความยินดี ตอบ จาก Wardle ในกระบวนการ:
Mahalos ไปที่ @Zoom เพื่อแก้ไขปัญหาอย่างรวดเร็ว (เหลือเชื่อ)! [:ยกมือทั้งสองข้างขึ้นในการเฉลิมฉลองและวิงวอนเกี่ยวกับอีโมจิ:] [:ฝ่ามือกดรวมกันเพื่อแสดงความปรารถนาดีทางวิญญาณ EMOJI:]
การเปิดเผยข้อมูล Zero-day
ด้วยความเร็วที่ชัดเจนและความสะดวกที่ Zoom สามารถปล่อยแพตช์สำหรับจุดบกพร่องได้ ขนานนามว่า CVE-2022-28756คุณอาจสงสัยว่าทำไม Wardle ไม่ได้บอก Zoom เกี่ยวกับจุดบกพร่องล่วงหน้า โดยกำหนดให้วันที่เขากล่าวสุนทรพจน์เป็นกำหนดเส้นตายในการเปิดเผยรายละเอียด
นั่นจะทำให้ Zoom มีเวลาที่จะผลักดันการอัปเดตให้กับผู้ใช้ Mac จำนวนมาก (หรืออย่างน้อยก็เพื่อให้ผู้ที่เชื่อใน แพทช์ก่อน / แพทช์บ่อย) ซึ่งช่วยขจัดช่องว่างระหว่าง Wardle ที่อธิบายให้โลกรู้ถึงวิธีการใช้งานบั๊กในทางที่ผิดและการแพตช์ของบั๊ก
อันที่จริง ดูเหมือนว่า Wardle จะพยายามอย่างเต็มที่เพื่อเตือน Zoom เกี่ยวกับจุดบกพร่องนี้ บวกกับข้อบกพร่องที่เชื่อมโยงถึงกันจำนวนมากในกระบวนการอัปเดตอัตโนมัติของ Zoom เมื่อหลายเดือนก่อน
Wardle อธิบายไทม์ไลน์การเปิดเผยจุดบกพร่องในไฟล์ สไลด์จากการพูดคุย DEF CON ของเขาและแสดงรายการอัปเดตของ Zoom ที่เกี่ยวข้องกับข้อบกพร่องที่เขาค้นพบ
ดาบสองคม
ข้อบกพร่องที่ Wardle พูดถึงโดยทั่วไปเกี่ยวข้องกับกลไกการอัปเดตอัตโนมัติของ Zoom ซึ่งเป็นส่วนหนึ่งของระบบนิเวศซอฟต์แวร์ใด ๆ ที่เป็นดาบสองคม - อาวุธที่ทรงพลังกว่าดาบธรรมดา แต่จัดการได้ยากกว่าอย่างปลอดภัย
การอัปเดตอัตโนมัติเป็นองค์ประกอบที่ต้องมีในแอปพลิเคชันไคลเอ็นต์สมัยใหม่ เนื่องจากทำให้แพตช์สำคัญสามารถแจกจ่ายได้ง่ายและรวดเร็วยิ่งขึ้น จึงช่วยให้ผู้ใช้ปิดช่องโหว่ด้านความปลอดภัยทางไซเบอร์ได้อย่างน่าเชื่อถือ
แต่การอัปเดตอัตโนมัติทำให้เกิดความเสี่ยง ไม่น้อยเพราะเครื่องมืออัปเดตเองมักต้องการการเข้าถึงระบบระดับรูท
นั่นเป็นเพราะงานของผู้อัปเดตคือการเขียนทับซอฟต์แวร์แอปพลิเคชัน (สิ่งที่ผู้ใช้ทั่วไปไม่ควรทำ) และอาจเรียกใช้คำสั่งระบบปฏิบัติการที่มีสิทธิ์เพื่อทำการกำหนดค่าหรือการเปลี่ยนแปลงระดับระบบอื่นๆ
กล่าวอีกนัยหนึ่ง หากนักพัฒนาไม่ระมัดระวัง เครื่องมือที่ช่วยให้พวกเขาอัปเดตแอปพื้นฐานของตนให้ทันสมัยและปลอดภัยยิ่งขึ้นอาจกลายเป็นหัวหาดที่ผู้โจมตีสามารถล้มล้างความปลอดภัยโดยหลอกให้ผู้อัปเดตเรียกใช้คำสั่งที่ไม่ได้รับอนุญาตด้วยสิทธิ์ของระบบ .
โดยเฉพาะอย่างยิ่ง โปรแกรมอัพเดตอัตโนมัติต้องระมัดระวังในการตรวจสอบ ความจริง ของแพ็คเกจการอัปเดตที่พวกเขาดาวน์โหลด เพื่อหยุดผู้โจมตีเพียงแค่ป้อนชุดอัปเดตปลอมพร้อมมัลแวร์ที่เพิ่มเข้ามา
พวกเขายังต้องรักษา ความสมบูรณ์ ของไฟล์อัปเดตที่พวกมันใช้ไปในที่สุด ดังนั้นผู้โจมตีในพื้นที่จึงไม่สามารถแอบแก้ไขชุดอัปเดตที่ "ตรวจสอบแล้วปลอดภัย" ที่เพิ่งดาวน์โหลดในช่วงเวลาสั้นๆ ระหว่างการดึงข้อมูลและเปิดใช้งาน
เลี่ยงการตรวจสอบความถูกต้อง
ตามที่ Wardle อธิบายไว้ใน .ของเขา กระดาษหนึ่งในข้อบกพร่องที่เขาค้นพบและเปิดเผยคือข้อบกพร่องในขั้นตอนแรกที่ระบุไว้ข้างต้น เมื่อตัวอัปเดตอัตโนมัติของ Zoom พยายามตรวจสอบความถูกต้องของแพ็คเกจการอัปเดตที่เพิ่งดาวน์โหลด
แทนที่จะใช้ macOS API อย่างเป็นทางการเพื่อตรวจสอบลายเซ็นดิจิทัลของการดาวน์โหลดโดยตรง นักพัฒนา Zoom ตัดสินใจทำการตรวจสอบสิทธิ์โดยอ้อมด้วยการเรียกใช้ยูทิลิตี้ macOS pkgutil --check-signature
ในพื้นหลังและตรวจสอบผลลัพธ์
นี่คือตัวอย่างของ pkgutil
เอาต์พุตโดยใช้เวอร์ชันเก่าของ Zoom.pkg
ชุดซอฟต์แวร์:
$ pkgutil --check-signature แพ็คเกจ Zoom.pkg "Zoom.pkg": สถานะ: ลงนามโดยใบรับรองนักพัฒนาที่ออกโดย Apple เพื่อแจกจ่าย ลงนามด้วยการประทับเวลาที่เชื่อถือได้เมื่อ: 2022-06-27 01:26:22 +0000 ห่วงโซ่ใบรับรอง : 1. Developer ID Installer: Zoom Video Communications, Inc. (BJ4HAAB9B3) หมดอายุ: 2027-02-01 22:12:15 +0000 SHA256 ลายนิ้วมือ: 6D 70 1A 84 F0 5A D4 C1 C1 B3 AE 01 C2 EF 1F 2E AE FB 9F 5C A6 80 48 A4 76 60 FF B5 F0 57 BB 8C ----------------------------------- ---------------------------------------------------- 2. หน่วยงานรับรอง ID ผู้พัฒนา หมดอายุ: 2027-02-01 22:12:15 +0000 SHA256 ลายนิ้วมือ: 7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03 F2 9C 88 CF B0 B1 BA 63 58 7F -------- -------------------------------------------------- -------------- 3. Apple Root CA หมดอายุ: 2035-02-09 21:40:36 +0000 SHA256 ลายนิ้วมือ: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 พ.ศ. 91 B5 A1 10 01 F0 24
น่าเสียดายที่ Wardle ค้นพบเมื่อเขาถอดรหัสรหัสยืนยันลายเซ็นของ Zoom ผู้อัปเดต Zoom ไม่ได้ประมวลผล pkgutil
ข้อมูลในลักษณะเดียวกับที่ผู้สังเกตการณ์ของมนุษย์จะทำ
เราจะตรวจสอบผลลัพธ์โดยทำตามลำดับภาพที่เป็นประโยชน์ในผลลัพธ์
อันดับแรก เราจะมองหาสถานะที่ต้องการก่อน เช่น signed by a developer certificate issued by Apple for distribution
.
จากนั้นเราจะหาหัวข้อย่อย Certificate Chain:
.
สุดท้าย เราจะตรวจสอบอีกครั้งว่าห่วงโซ่ประกอบด้วยผู้ลงนามสามคนนี้ ตามลำดับที่ถูกต้อง:
1. Zoom Video Communications, Inc. 2. ผู้ออกใบรับรอง ID ผู้พัฒนา 3. Apple Root CA
น่าแปลกที่โค้ดของ Zoom ยืนยันว่าแต่ละสตริงทั้งสามข้างบนนี้ (ไม่ได้ตรวจสอบ ID เฉพาะของ Zoom ด้วยซ้ำ BJ4HAAB9B3
) ปรากฏตัวขึ้น บางแห่ง ในผลลัพธ์จาก pkgutil
.
ดังนั้น การสร้างแพ็คเกจด้วยชื่อที่ไร้สาระแต่ใช้ได้จริง เช่น Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg
จะหลอกให้ตัวตรวจสอบแพ็คเกจค้นหา "สตริงข้อมูลประจำตัว" ที่กำลังมองหา
ชื่อแพ็คเกจเต็มสะท้อนอยู่ใน pkgutil
ส่วนหัวของเอาต์พุตในบรรทัดแรก โดยที่ "ตัวตรวจสอบ" ที่โชคร้ายของ Zoom จะจับคู่สตริงข้อความทั้งสามในส่วนที่ไม่ถูกต้องของเอาต์พุต
ดังนั้นการตรวจสอบ "ความปลอดภัย" จึงสามารถข้ามไปได้เล็กน้อย
การแก้ไขบางส่วน
Wardle กล่าวว่าในที่สุด Zoom ได้แก้ไขข้อผิดพลาดนี้ มากกว่าเจ็ดเดือนหลังจากที่เขารายงาน ทันเวลาสำหรับ DEF CON...
…แต่หลังจากใช้โปรแกรมแก้ไข เขาสังเกตเห็นว่ายังมีช่องโหว่ในกระบวนการอัปเดต
ตัวอัปเดตพยายามทำสิ่งที่ถูกต้อง:
- 1. ย้ายแพ็คเกจที่ดาวน์โหลดมาไปยังไดเร็กทอรีที่รูทเป็นเจ้าของ และทำให้ผู้ใช้ทั่วไปไม่สามารถเข้าถึงตามหลักวิชาได้
- 2. ตรวจสอบลายเซ็นเข้ารหัสของแพ็คเกจที่ดาวน์โหลด ใช้ API อย่างเป็นทางการ ไม่ใช่ผ่านการจับคู่ข้อความกับ
pkgutil
เอาท์พุต - 3. ยกเลิกการเก็บถาวรไฟล์แพ็คเกจที่ดาวน์โหลด เพื่อตรวจสอบหมายเลขเวอร์ชัน เพื่อป้องกันการโจมตีดาวน์เกรด
- 4. ติดตั้งไฟล์แพ็คเกจที่ดาวน์โหลดมาโดยใช้สิทธิ์รูทของกระบวนการอัปเดตอัตโนมัติ
น่าเสียดายที่แม้ว่าไดเร็กทอรีที่ใช้จัดเก็บแพ็คเกจการอัปเดตจะเป็นเจ้าของโดยรูท แต่ในความพยายามที่จะรักษาความปลอดภัยจากการสอดรู้สอดเห็นผู้ใช้ที่พยายามจะล้มล้างไฟล์อัพเดตในขณะที่กำลังใช้งานอยู่...
…ไฟล์แพ็คเกจที่ดาวน์โหลดใหม่ถูกปล่อยให้ "เขียนได้ทั่วโลก" ในตำแหน่งใหม่ (ผลข้างเคียงจากการถูกดาวน์โหลดโดยบัญชีปกติ ไม่ใช่โดยรูท)
สิ่งนี้ทำให้ผู้โจมตีในพื้นที่มีช่องโหว่ในการแก้ไขแพ็คเกจการอัพเดท หลังจาก ลายเซ็นดิจิทัลได้รับการตรวจสอบแล้ว (ขั้นตอนที่ 2) โดยไม่กระทบกระเทือน เวอร์ชันตรวจสอบรายละเอียด (ขั้นตอนที่ 3) แต่ ก่อนหน้านี้ โปรแกรมติดตั้งเข้าควบคุมไฟล์แพ็คเกจเพื่อประมวลผลด้วยสิทธิ์ของรูท (ขั้นตอนที่ 4)
บั๊กประเภทนี้เรียกว่า a สภาพการแข่งขันเนื่องจากผู้โจมตีจำเป็นต้องกำหนดเวลาเสร็จสิ้นเพื่อที่พวกเขาจะได้กลับบ้านก่อนที่โปรแกรมติดตั้งจะเริ่มทำงาน ดังนั้นจึงควรแอบดูการเปลี่ยนแปลงที่เป็นอันตรายล่วงหน้า
คุณจะได้ยินช่องโหว่ประเภทนี้ที่เรียกโดยตัวย่อที่ฟังดูแปลกใหม่ โทคุ, ย่อจาก เวลาเช็คถึงเวลาใช้งานซึ่งเป็นชื่อที่เตือนใจชัดเจนว่าหากคุณตรวจสอบข้อเท็จจริงของคุณล่วงหน้ามากเกินไป ข้อมูลเหล่านั้นอาจล้าสมัยเมื่อคุณพึ่งพาข้อมูลเหล่านั้น
ปัญหาของ TOCTOU คือสาเหตุที่บริษัทให้เช่ารถยนต์ในสหราชอาณาจักรไม่เพียงแค่ขอดูใบขับขี่ของคุณอีกต่อไป ซึ่งอาจออกเมื่อ 10 ปีที่แล้ว และอาจถูกระงับหรือยกเลิกด้วยเหตุผลหลายประการตั้งแต่นั้นมา น่าจะเป็นเพราะ จากการขับขี่ที่ไม่ปลอดภัยหรือผิดกฎหมายในส่วนของคุณ นอกจากใบอนุญาตจริงแล้ว คุณยังจำเป็นต้องแสดงรหัส "หลักฐานยืนยันความถูกต้องล่าสุด" แบบตัวเลขและแบบใช้ครั้งเดียว ซึ่งออกให้ภายใน 21 วันที่ผ่านมา เพื่อลดช่องว่างที่อาจเป็นไปได้ของ TOCTOU จาก 10 ปีเหลือเพียงสามสัปดาห์
ตอนนี้การแก้ไขอยู่ใน
จากข้อมูลของ Wardle Zoom ได้ป้องกันจุดบกพร่องนี้ด้วยการเปลี่ยนสิทธิ์การเข้าถึงไฟล์แพ็คเกจการอัพเดทที่คัดลอกไว้ในขั้นตอนที่ 1 ด้านบน
ไฟล์ที่ใช้สำหรับการตรวจสอบลายเซ็น การตรวจสอบเวอร์ชัน และการติดตั้งระดับรากสุดท้ายจะถูกจำกัดการเข้าถึงโดยบัญชีรูทเท่านั้น ตลอดเวลา
การดำเนินการนี้จะลบสภาวะการแข่งขัน เนื่องจากผู้โจมตีที่ไม่มีสิทธิพิเศษไม่สามารถแก้ไขไฟล์ระหว่างจุดสิ้นสุดของขั้นตอนที่ 2 (การตรวจสอบสำเร็จ) และจุดเริ่มต้นของขั้นตอนที่ 4 (เริ่มการติดตั้ง).
ในการแก้ไขไฟล์แพ็คเกจเพื่อหลอกให้ระบบให้สิทธิ์การเข้าถึงรูทแก่คุณ คุณจะต้องมีการเข้าถึงรูทอยู่แล้ว ดังนั้นคุณไม่จำเป็นต้องมีจุดบกพร่อง EoP ประเภทนี้ตั้งแต่แรก
ปัญหา TOCTOU ใช้ไม่ได้เนื่องจากการเช็คอินในขั้นตอนที่ 2 ยังคงใช้ได้จนกว่าการใช้ไฟล์จะเริ่มต้นขึ้น โดยไม่ทิ้งหน้าต่างโอกาสสำหรับการตรวจสอบที่จะใช้งานไม่ได้
จะทำอย่างไร?
หากคุณใช้ Zoom บน Mac ให้เปิดแอพ จากนั้นไปที่ . ในแถบเมนู zoom.us
> Check for Updates...
หากมีการอัปเดต เวอร์ชันใหม่จะปรากฏขึ้น และคุณสามารถคลิก [Install]
เพื่อใช้แพทช์:
รุ่นที่คุณต้องการคือ 5.11.5 (9788) หรือหลังจากนั้น
- blockchain
- เหรียญอัจฉริยะ
- กระเป๋าสตางค์ cryptocurrency
- การแลกเปลี่ยนการเข้ารหัสลับ
- CVE-2022-28756
- การรักษาความปลอดภัยในโลกไซเบอร์
- อาชญากรไซเบอร์
- cybersecurity
- กรมความมั่นคงภายในประเทศ
- กระเป๋าสตางค์ดิจิตอล
- ไฟร์วอลล์
- Kaspersky
- MacOS
- มัลแวร์
- แมคคาฟี
- ความปลอดภัยเปล่า
- เน็กซ์บล๊อก
- OS X
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- VPN
- ความอ่อนแอ
- เดิ้ล
- ความปลอดภัยของเว็บไซต์
- ลมทะเล
- ซูมเข้า