<?php wp_title('|', true, 'right'); ?>

นี่คือ 5 ช่องโหว่ของ Smart contract ที่คุณอาจจะเป็นเหยื่อได้ พร้อมกับวิธีการรับมือ

ติดตามสยามบล็อกเชนบนSiam Blockchain

Smart contract คือโค้ดที่สามารถดำเนินการได้ด้วยตัวเองบนแพลตฟอร์มของบล็อกเชน ซึ่งได้เปลี่ยนโฉมหน้าอุตสาหกรรมคริปโตจากการที่สามารถทำธุรกรรมต่างๆ ได้ด้วยระบบอัตโนมัติ แต่อย่างไรก็ตาม ความซับซ้อนของมันอาจจะทำให้นักต้มตุ๋นใช้มันเป็นช่องโหว่ในการโจมตีคุณได้

โดยบทความนี้จะบอกถึง 5 ช่องโหว่ที่ Smart contract ที่อาจจะทำให้คุณถูกโจมตีได้ รวมถึงวิธีการรับมือกับช่องโหว่เหล่านี้

1. ReEntrancy attacks

ReEntrancy attacks คือการที่ผู้โจมตีเรียกใช้ Smart contract ที่มียังไม่สมบูรณ์ซ้ำๆ ซึ่งจะทำให้เกิดช่วงโหว่ของระบบ ก่อนที่ส่งธุรกรรมที่เสร็จสมบูรณ์เข้าไป จนทำให้ Wallet ของเหยื่อถูกดูดเงินออกไปจนหมด โดยวิธีการรับมือคือการที่ต้องตรวจสอบให้แน่ใจว่าได้มีการเปลี่ยนแปลงสถานะ Smart contract หรือไม่ ก่อนที่จะโอนเงินสู่ภายนอก

2. Integer overflow/underflow

Integer overflow หรือ underflow คือการที่ผู้โจมตีได้ใส่ตัวแปรใน Smart contract ไว้เกินกว่าค่าที่จะตั้งไว้ได้ โดยผู้โจมตีจะสามารถใส่สิ่งนี้ในการควบคุม Smart contract ได้ ซึ่งวิธีรับมือคือการใช้ math libraries ใน Smart contract เพื่อป้องกันปัญหาเหล่านี้

3. การเข้าถึงการควบคุมโดยไม่ได้รับอนุญาต

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

4. ป้องกันการเชื่อมต่อกับภายนอก

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

5. บั๊กของโค้ด

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

ซึ่งการป้องกันปัญหาเหล่านี้สามารถทำได้ด้วยวิธีต่างๆ เช่น การตรวจสอบโค้ดว่าถูกต้องหรือไม่ การทดสอบว่าระบบสามารถถูกแฮ็กได้ไหม การพัฒนาโดยเน้นไปที่ความปลอดภัยของระบบ รวมถึงการให้รางวัลถ้าหากว่าใครหาบั๊กเจอ

ที่มา: Cointelegraph