Tags:
Node Thumbnail

แม้ว่าเครือข่ายกระจายตัว (distributed network) อย่าง Bitcoin หรือ Ethereum จะยากต่อการปลอมแปลง แต่ในทางทฤษฎี หากเรามีเครื่องที่แจกจ่ายข้อมูลปลอมๆ มากพอ ก็อาจจะหลอกให้ผู้ใช้สักคนเชื่อมต่อกับโหนดปลอมทั้งหมดจนเข้าใจสถานะเครือข่ายผิด ทำให้ถูกหลอกทำสัญญาบน smart contract หรือสั่งโอนเงินไปโดยเข้าใจผิด ไปจนถึงเข้าใจว่าได้รับเงินแล้วจึงให้สินค้าหรือบริการไป

ทีมวิจัยจากมหาวิทยาลัยบอสตันพบว่า geth ไคลเอนต์ของ Ethereum ที่ได้รับความนิยมสูง มีช่องโหว่ทำให้คนร้ายสามารถสร้างเครือข่ายปลอมด้วยเซิร์ฟเวอร์เพียงสองตัว และจะสามารถปลอมเครือข่ายได้เมื่อ geth รีสตาร์ตใหม่ เรียกว่าการโจมตี Eclipse (บังเครือข่ายจริงออกจากไคลเอนต์)

ปัญหาของ geth คือก่อนหน้านี้มันนับจำนวนโหนดที่เชื่อมต่อโดยอาศัยกุญแจ ECDSA เท่านั้น แม้จะเป็นเครื่องที่เป็นหมายเลขไอพีเดียวกัน แต่ส่งกุญแจคนละตัวก็นับคนละโหนด นอกจากนั้นมันยังรับการเชื่อมต่อจากโหนดภายนอกก่อนเริ่มเปิดการเชื่อมต่อด้วยตัวเอง และหากจำนวนการเชื่อมต่อครบตามจำนวนแล้ว ก็จะไม่เปิดการเชื่อมต่อเพิ่มอีก

แนวทางนี้ทำให้คนร้ายสามารถสร้างเครื่องที่จะเชื่อมต่อด้วยกุญแจต่างกันไปเรื่อยๆ และหากจับสัญญาณได้ว่าเครื่องของเหยื่อรีสตาร์ต geth เมื่อใด ก็ให้รีบเปิดการเชื่อมต่อเข้าไปจนเต็ม geth ของเหยื่อจะเชื่อมต่อกับโหนดปลอมทั้งหมดได้

ทีมวิจัยเสนอแนวทางลดความเสี่ยงจากการโจมตีเช่น อนุญาตให้ยอมรับกุญแจเดียวต่อไอพีเท่านั้น, ไม่ยอมรับการเชื่อมต่อจากโหนดที่ไม่รู้จักมาก่อน ก่อนที่จะหาโหนดที่รู้จักมาแล้วเสร็จสิ้น geth 1.8.0 ได้เพิ่มมาตรการหลายอย่างตามที่นักวิจัยเสนอ และตอนนี้ก็ปลอดภัยขึ้นมาก

ที่มา - ArsTechnica

No Description

Get latest news from Blognone

Comments

By: kajokman
ContributorAndroidIn Love
on 6 March 2018 - 08:53 #1036822
kajokman's picture

Eclipse คือชื่อช่องโหว่ อยากให้ระบุในตัวข่าวด้วยครับ :)

By: xanthics on 6 March 2018 - 09:32 #1036827 Reply to:1036822

นึกว่า IDE ถถถ

By: Be1con
ContributorWindows PhoneWindowsIn Love
on 6 March 2018 - 10:13 #1036834 Reply to:1036827
Be1con's picture

+1


Coder | Designer | Thinker | Blogger