แม้ว่าเครือข่ายกระจายตัว (distributed network) อย่าง Bitcoin หรือ Ethereum จะยากต่อการปลอมแปลง แต่ในทางทฤษฎี หากเรามีเครื่องที่แจกจ่ายข้อมูลปลอมๆ มากพอ ก็อาจจะหลอกให้ผู้ใช้สักคนเชื่อมต่อกับโหนดปลอมทั้งหมดจนเข้าใจสถานะเครือข่ายผิด ทำให้ถูกหลอกทำสัญญาบน smart contract หรือสั่งโอนเงินไปโดยเข้าใจผิด ไปจนถึงเข้าใจว่าได้รับเงินแล้วจึงให้สินค้าหรือบริการไป
ทีมวิจัยจากมหาวิทยาลัยบอสตันพบว่า geth ไคลเอนต์ของ Ethereum ที่ได้รับความนิยมสูง มีช่องโหว่ทำให้คนร้ายสามารถสร้างเครือข่ายปลอมด้วยเซิร์ฟเวอร์เพียงสองตัว และจะสามารถปลอมเครือข่ายได้เมื่อ geth รีสตาร์ตใหม่ เรียกว่าการโจมตี Eclipse (บังเครือข่ายจริงออกจากไคลเอนต์)
ปัญหาของ geth คือก่อนหน้านี้มันนับจำนวนโหนดที่เชื่อมต่อโดยอาศัยกุญแจ ECDSA เท่านั้น แม้จะเป็นเครื่องที่เป็นหมายเลขไอพีเดียวกัน แต่ส่งกุญแจคนละตัวก็นับคนละโหนด นอกจากนั้นมันยังรับการเชื่อมต่อจากโหนดภายนอกก่อนเริ่มเปิดการเชื่อมต่อด้วยตัวเอง และหากจำนวนการเชื่อมต่อครบตามจำนวนแล้ว ก็จะไม่เปิดการเชื่อมต่อเพิ่มอีก
แนวทางนี้ทำให้คนร้ายสามารถสร้างเครื่องที่จะเชื่อมต่อด้วยกุญแจต่างกันไปเรื่อยๆ และหากจับสัญญาณได้ว่าเครื่องของเหยื่อรีสตาร์ต geth เมื่อใด ก็ให้รีบเปิดการเชื่อมต่อเข้าไปจนเต็ม geth ของเหยื่อจะเชื่อมต่อกับโหนดปลอมทั้งหมดได้
ทีมวิจัยเสนอแนวทางลดความเสี่ยงจากการโจมตีเช่น อนุญาตให้ยอมรับกุญแจเดียวต่อไอพีเท่านั้น, ไม่ยอมรับการเชื่อมต่อจากโหนดที่ไม่รู้จักมาก่อน ก่อนที่จะหาโหนดที่รู้จักมาแล้วเสร็จสิ้น geth 1.8.0 ได้เพิ่มมาตรการหลายอย่างตามที่นักวิจัยเสนอ และตอนนี้ก็ปลอดภัยขึ้นมาก
ที่มา - ArsTechnica
Comments
Eclipse คือชื่อช่องโหว่ อยากให้ระบุในตัวข่าวด้วยครับ :)
นึกว่า IDE ถถถ
+1
Coder | Designer | Thinker | Blogger