Apple Silicon

ทีมนักวิจัยจากมหาวิทยาลัยชื่อดังในสหรัฐหลายแห่ง ค้นพบช่องโหว่ในชิปตระกูล 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

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

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

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

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

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

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

watcharaboon47 Sun, 24/03/2024 - 15:18

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

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

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

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

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

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

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

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

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

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

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

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. ป้องกันที่ตัวผู้ใช้งานเอง ไม่ให้ผู้โจมตีมีโอกาสในการจับข้อมูลในแคชนี้ได้โดยตรงตั้งแต่แรก ข้อนี้แสดงว่าโอกาสในการโจมตีต้องอาศัยการเข้าถึงคำสั่งที่ลึกพอสมควร ดังนั้นคิดว่าถ้าไม่ติดตั้งแอฟแปลกปลอม ไม่ให้คนอื่นใช้งานร่วมด้วย ใช้โปรโตคอลการเข้ารหัสที่เหมาะสม น่าจะปลอดภัยระดับนึง หรือไม่เป็นเป้าหมายโดยตรงทางการทหาร หรือโดนยึดเครื่องไปตรวจ โอกาสที่จะตั้งใจเอาข้อมูลค่อนข้างยาก

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

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