Tags:
Node Thumbnail

ทีมนักวิจัยจากมหาวิทยาลัยชื่อดังในสหรัฐหลายแห่ง ค้นพบช่องโหว่ในชิปตระกูล Apple Silicon เปิดทางให้เข้าไปขโมยกุญแจเข้ารหัสจากซีพียูได้ ด้วยวิธี side channel attack

ช่องโหว่นี้ถูกตั้งชื่อว่า GoFetch อาศัยการทำงานของฟีเจอร์ซีพียูชื่อ data memory-dependent prefetcher (DMP) ใช้พยากรณ์ตำแหน่งหน่วยความจำที่จะถูกเรียกใช้ในอนาคต แล้วดึงข้อมูลตรงนั้นมารอในแคชเพื่อเร่งประสิทธิภาพในการประมวลผล

ฟีเจอร์นี้มีในซีพียูหลายตัว เช่น Intel Raptor Lake แต่วิธีการทำงานของ DMP ของแอปเปิลมีช่องโหว่ เพราะดึงข้อมูลมาใส่แคชโดยใช้โครงสร้างคล้าย pointer ทำให้คนที่สามารถเข้าถึงแคช สามารถอ่านข้อมูลและคาดเดาข้อมูลในแคชได้ (ทีมวิจัยลองกับฝั่ง Intel แล้วพบว่าเจาะไม่ได้)

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

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

ที่มา - Ars Technica

No Description

Get latest news from Blognone

Comments

By: NoppawanConan
ContributoriPhoneAndroidWindows
on 24 March 2024 - 11:19 #1308568
NoppawanConan's picture

เชื่อเลยว่า แอปเปิลจะไม่ทำอะไร จนกว่าจะมีคนเอาไปฟ้องร้องกลุ่ม เดี๋ยวไฟลนก้นก็คงยอมแก้เอง แต่ลดประสิทธิภาพลงนะ


แค่มนุษย์คนนึงที่อยากรู้เกี่ยวกับวงการไอที

By: tom789
Windows Phone
on 24 March 2024 - 12:00 #1308569

เก่งมากนะ หาช่องโหว่ ได้

By: specimen
Windows PhoneAndroid
on 24 March 2024 - 13:01 #1308577
specimen's picture

ทีมนักวิจัยจากมหาวิทยาลัยชื่อดังในสหรัฐ[หลายแห่ง]

ถ้าใช้คำนี้ แสดงว่าไม่ยากที่คนร้ายก็สามารถหาเจอได้
งั้นแบบนี้ เรื่องใหญ่ละ

By: mk
FounderAndroid
on 24 March 2024 - 13:03 #1308578 Reply to:1308577
mk's picture

เขาทำงานกันเป็นทีมครับ อ่านรายชื่อได้จากลิงค์ GoFetch ก็บอกหมดว่าใครบ้างจากที่ไหนบ้าง

By: langisser
In Love
on 24 March 2024 - 15:14 #1308587 Reply to:1308577

คิดว่านะครับ
ไม่ต้องหาตัวคนเจอช่องโหว่ กลุ่มคนร้ายก็มีฝีมือที่จะหาเองเจอครับ แค่ชี้ช่องก็พอ
แล้วชี้ทำไมล่ะ
ต้องคิดอีกต่อนึงว่าจริงๆแล้วคนร้ายเจอไปแล้วครับ ถ้าไม่เปิดเผยแบบนี้ Apple ก็อาจจะไม่ทำอะไรเลย ซึ่งคนร้ายก็จะใช้งานต่อไปได้เรื่อยๆ

By: 9rockky
AndroidIn Love
on 24 March 2024 - 13:16 #1308579

เดี๋ยวก็ต้องออกpatchให้เครื่องช้าลง แรมน้อยอัพเพิ่มไม่ได้
อายุการใช้งานสั้นกว่าที่ควรจะเป็น

By: CrazyPower
iPhoneBlackberryRed HatIn Love
on 29 March 2024 - 13:26 #1308954 Reply to:1308579
CrazyPower's picture

ตื่นๆ ก่อนครับ

By: panther
ContributorAndroidUbuntuWindows
on 24 March 2024 - 15:11 #1308585
panther's picture

พึ่งนั่งฟังเอาอธิบายใน youtube คือ cpu เดาว่า pointer ที่ชี้ไปที่เมมตรงไหนที่มีโอกาสจะถูกใช้ ก็จะดึงมาใส่แคช แต่ไม่ได้เชคค่า pointer นั้นก่อน พอเอามาใส่แคชแบบไม่ถูกเลยเป็นช่องว่างให้คนโจมตีอ่านข้อมูลในแคชได้ทั้งหมด
เค้าสาทิตด้วยการไล่อ่านข้อมูลในแคชเพื่อค่าพวกค่ากุญแจเข้ารหัสต่างๆ
เข้าใจว่าเค้าแก้บั๊กสเปคตรัม กะเมลดาวของ cpu intel แหละ แต่พอแก้แล้วมันจะทำให้ perf ลด เลยไปจูนด้วยการอ่านค่ามาใส่แคชก่อน เลยมาเป็นบั๊กนี้

By: Rapier
AndroidWindows
on 24 March 2024 - 21:21 #1308596 Reply to:1308585
Rapier's picture

สเปคตรัม

หมายถึง "สเปกเตอร์" รึเปล่าครับ

By: watcharaboon47 on 24 March 2024 - 15:18 #1308588

End user จ๋า ๆ แบบผมมีอะไรให้ต้องระวังมั้ยครับ คืออ่านแล้วพยามแล้วไม่เข้าใจเลย ซึ่งใช้ mba m1 อยู่ซะด้วย อย่างพวกเข้าเว็บไซต์ทำธุรกรรมทางการเงินอะไรแบบนี้เสียงสูงมั้ยครับ?

By: big50000
AndroidSUSEUbuntu
on 24 March 2024 - 16:53 #1308589 Reply to:1308588
big50000's picture

คำตอบมันไม่ชัดเจนเพราะทั้งสองถือว่าอยู่ได้ทั้งใกล้ตัว และไกลตัว แล้วแต่ "ดวง"

วิธีการนี้มีจุดอ่อนในตัวมันเอง คือมันทำนายและชักจูงให้อ่านเฉพาะค่าที่ต้องการ เช่น รหัสผ่าน ได้ยากมากเพราะแคชมันก็เหมือนกองเอกสารที่เอาทุกอย่างมาปน ๆ กันไว้ให้ใช้งานได้เร็ว ช่องโหว่นี้แฮกเกอร์เสมือนพยายามอ่านข้อมูลกองเอกสารจากช่องหน้าต่างเล็ก ๆ ว่ามีอะไรบ้าง ซึ่งก็ยากอยู่ดี อย่างไรก็ตาม ช่องโหว่นี้เข้าถึงได้ง่ายมากและใช้เวลาชดเชยปัญหาได้ เสมือนว่าแฮกเกอร์ใช้เวลากับช่องหน้าต่างให้นานขึ้นเพื่อเฟ้นหารหัสผ่านจากเครื่องของเรา ประมาณนี้แหละ ยิ่งถ้าเจาะจงเฉพาะการเจาะ "รหัสผ่าน" ถ้าผู้ใช้งานเลือกใช้ Passkey หรือ Password-less Authentication ที่มักใช้อุปกรณ์เสริมในการจัดการอีกทอดหนึ่ง (ใน Apple จะเป็น T2 Security Chip ในฮาร์ดแวร์ x86 ทั่วไปจะเป็น TPM) โอกาสที่รหัสผ่านหลุดจะน้อยลงมากถึงไม่มีเลยเพราะรหัสมันไม่มีให้ดูตั้งแต่แรกในเครื่อง ระบบพวกนี้ใช้ลายมืออิเล็กทรอนิกส์ (Digital Signature) เราจะได้เห็นเฉพาะลายมืออิเล็กทรอนิกส์สำเร็จที่เอาไว้พิสูจน์ตัวตนผู้เข้าถึงระบบเท่านั้น

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

ทั้งนี้ทั้งนั้น การเก็บ "แคช" เองก็ใช่ว่ามันจะเก็บแบบ ABCDEFG... ต่อเนื่อง มันมีอะไรที่มากกว่านั้นเยอะ ขึ้นอยู่กับการทำงานของโค้ดโปรแกรมที่จัดการอยู่ ทำให้โอกาสที่เราจะเห็นกุญแจอะไรเทือกนั้นแบบเต็ม ๆ น้อยลงไปเยอะมาก และแฮกเกอร์ก็ต้องทำนายประเภทข้อมูลที่ได้จากแคชให้ถูกต้องด้วยเพราะข้อมูลมันเป็นไบนารีทั้งหมด (จะใช้ Hex Inspector หรืออะไรก็ว่ากันไป) และใช้เวลานานมากที่จะปะติดปะต่อทุกอย่างเข้าด้วยกัน ทำให้ตรงนี้กลายเป็นจุดแข็งที่ช่วยลดความพยายามในการโจมตีลงไปได้มาก และถ้าเว็บไหนขยันสร้าง Session Token ทุก ๆ การกระทำบนเว็บไซต์ โอกาสที่จะโดนโจมตีก็ยิ่งลดลงไปอีกเพราะข้อมูลใหม่มักไม่มีโอกาสจะไปอยู่ในแคช (แคชมักสงวนไว้สำหรับข้อมูลที่ต้องใช้บ่อย ๆ เช่น รหัสโปรแกรม)

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

By: quake_the_rock
iPhoneRed HatUbuntuWindows
on 24 March 2024 - 19:19 #1308593 Reply to:1308589
quake_the_rock's picture

คอมเม้นท์คุณภาพครับ

By: Kazu
iPhoneWindows PhoneAndroidUbuntu
on 24 March 2024 - 20:43 #1308595 Reply to:1308589

ผมเข้าใจว่าเคสนี้คนร้ายต้องเข้าถึงเครื่องด้วยนะ เพราะต้องจิ้มไปอ่านCPUแคชโดยตรง

By: Ford AntiTrust
ContributorAndroidBlackberryUbuntu
on 25 March 2024 - 11:32 #1308639 Reply to:1308589
Ford AntiTrust's picture

ซึ่งถ้าเป็นเครื่องแบบ desktop/notebook แบบส่วนบุคคลการโจมตีจะไม่เท่าไหร่

แต่ถ้าเป็นพวก Server ที่รัน vz นี่ก็อีกเรื่องเลย เพราะมันโจมตีเครื่องใกล้เคียงบน h/w เดียวกันได้

ตัวอย่าง AWS มีให้เช่าเครื่อง Apple M1/M2 รันระบบอยู่เหมือนกัน

By: big50000
AndroidSUSEUbuntu
on 25 March 2024 - 12:19 #1308653 Reply to:1308639
big50000's picture

+

ผมลืมนึกถึงตรงนี้ เพราะถ้าหลอกล่อให้เปิดแคชได้ขนาดนี้ Hypervisor ก็ไม่ช่วย ถึงไม่ได้รู้ว่ารหัสเอาไปใช้กับอะไรอย่างน้อยก็เอาไปปั่น Rainbow Table ต่อได้

By: tom789
Windows Phone
on 25 March 2024 - 12:07 #1308649 Reply to:1308589

+1

By: sharot on 25 March 2024 - 16:17 #1308689 Reply to:1308589

จากคำแนะนำบนเว็ปไซต์ของคนเจอช่องโหว่

What can I do to protect myself against this attack?

For users, we recommend using the latest versions of software, as well as performing updates regularly. Developers of cryptographic libraries can either set the DOIT bit and DIT bit bits, which disable the DMP on some CPUs. Additionally, input blinding can help some cryptographic schemes avoid having attacker-controlled intermediate values, avoiding key-dependent DMP activation. Finally, preventing attackers from measuring DMP activation in the first place, for example by avoiding hardware sharing, can further enhance the security of cryptographic protocols.

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

  1. Protocol บางอันมันใช้หลักการ input blinding ประกอบกับการเข้ารหัส โดยไม่ให้เราเก็บข้อมูลจริงไว้บน cache แต่ต้องผ่านสมการต้นทางอีกชั้นถึงทราบได้ว่าข้อมูลภายในคืออะไร เดาว่าแอปเปิ้ลน่าจะพยายามแก้ไขด้วยวิธีนี้โดยการออก patch

blinding is a technique by which an agent can provide a service to (i.e., compute a function for) a client in an encoded form without knowing either the real input or the real output. Blinding techniques also have applications to preventing side-channel attacks on encryption devices.

  1. ป้องกันที่ตัวผู้ใช้งานเอง ไม่ให้ผู้โจมตีมีโอกาสในการจับข้อมูลในแคชนี้ได้โดยตรงตั้งแต่แรก ข้อนี้แสดงว่าโอกาสในการโจมตีต้องอาศัยการเข้าถึงคำสั่งที่ลึกพอสมควร ดังนั้นคิดว่าถ้าไม่ติดตั้งแอฟแปลกปลอม ไม่ให้คนอื่นใช้งานร่วมด้วย ใช้โปรโตคอลการเข้ารหัสที่เหมาะสม น่าจะปลอดภัยระดับนึง หรือไม่เป็นเป้าหมายโดยตรงทางการทหาร หรือโดนยึดเครื่องไปตรวจ โอกาสที่จะตั้งใจเอาข้อมูลค่อนข้างยาก
By: tg-thaigamer
ContributoriPhoneAndroidBlackberry
on 24 March 2024 - 20:13 #1308594 Reply to:1308588
tg-thaigamer's picture

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

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


มือใหม่!! ใหม่จริงๆนะ

By: shub on 25 March 2024 - 09:26 #1308621 Reply to:1308594

passเดียวกันทุกแอดเค้า 🤣

By: watcharaboon47 on 25 March 2024 - 18:15 #1308694 Reply to:1308621

คุณอาจเม้นท์เอาฮา แต่ผมใช้แบบนี้จริง ๆ นะ

By: tg-thaigamer
ContributoriPhoneAndroidBlackberry
on 25 March 2024 - 20:24 #1308704 Reply to:1308621
tg-thaigamer's picture

จริงแหล่ะ T___T


มือใหม่!! ใหม่จริงๆนะ