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