บทความ
วิธีรับมือกับภัยคุกคามบน Blockchain
สัมมนาออนไลน์ในหัวข้อ Threats to Blockchain-based Solution (รับมือกับภัยคุกคามบน Blockchain) โดย Mr. Gregory Pickett, CISO แห่ง Bitkub Block Security และ Head of Threat Management and Adversary Emulation แห่ง Bitkub Online จัดขึ้นเมื่อวันที่ 23 กุมภาพันธ์ 2564 เวลา 13.00 น. ถึง 14.00 น. มีเนื้อหาสำคัญดังต่อไปนี้
Video: มาทำความรู้จักกับ Mr.Gregory Pickett, Cyber Security ของ Bitkub
พื้นฐานของ Blockchain
Blockchain เปรียบเสมือน “สมุดบัญชีสาธารณะ” (Public ledger) ที่เครื่องคอมพิวเตอร์ทุกเครื่องในเครือข่ายหรือ “โหนด” (Node) จะคอยจดบันทึกทุก ๆ ธุรกรรมที่เกิดขึ้นบนเครือข่าย ข้อมูลธุรกรรมเหล่านี้จะถูกเข้ารหัส (Encryption) และจะมีการตรวจสอบข้อมูลในทุก ๆ โหนดให้ตรงกันเสมอ การใช้ Blockchain จึงเป็นการยกระดับความปลอดภัยทางดิจิทัลขึ้นไปอีกขั้น
ลักษณะการเก็บข้อมูลบนบล็อกเชนจะทำการเก็บเป็นชุด ๆ หรือเรียกว่า “บล็อก” (Block) เมื่อข้อมูลบนบล็อกได้รับการยืนยันความถูกต้องจากทั้งเครือข่ายแล้ว บล็อกจะถูกส่งเข้าไปเก็บไว้ในเครือข่าย ข้อมูลชุดต่อไปที่เกิดขึ้นก็จะถูกส่งเข้ามาเรียงต่อ ๆ กันคล้ายกับ “ห่วงโซ่” (Chain) ข้อมูลที่ถูกจัดเก็บไปแล้วจะสามารถตรวจสอบย้อนหลังได้ แต่จะไม่สามารถถูกแก้ไขได้
Smart Contract
เครือข่าย Blockchain หลาย ๆ เครือข่ายสามารถใช้ Smart Contract หรือ “สัญญาอัจฉริยะ” ที่สามารถดำเนินการได้ด้วยตัวเองเมื่อครบเงื่อนไขที่กำหนด เช่น เมื่อ A โอนเงินให้ B ครบตามจำนวนที่กำหนด Smart Contract จะดำเนินการโอนสิทธิ์การเป็นเจ้าของสินค้าให้กับ A เป็นต้น
Smart contract ทำให้เกิดการสร้างแอปพลิเคชั่นต่าง ๆ ขึ้นมาบนบล็อกเชน เรียกว่า Decentralized Application (Dapps) เกิดเป็นการบริการต่าง ๆ บนโลกดิจิทัลที่มีความปลอดภัย โปร่งใส และสามารถตรวจสอบได้ ไม่ว่าจะเป็นแอปพลิเคชันทั่วไปอย่าง แผนที่ โซเชียลเน็ตเวิร์ค หรือ เกม รวมไปถึงบริการทางการเงินที่เรียกว่า Decentralized Finance (DeFi) เช่น บริการแลกเปลี่ยนสกุลเงินดิจิทัล บริการกู้ยืม และยังมีการทดลองสร้างองค์กรอัตโนมัติโดยใช้ Smart contract เรียกว่า Decentralized Autonomous Organization (DAO) ซึ่งเป็นองค์กรที่สามารถดำเนินกิจการได้ด้วยตัวเองผ่าน Smart contract
ประเภทของ Blockchain
1.Public Blockchain — คือ เครือข่ายบล็อกเชนที่ทุกคนสามารถเข้าร่วมได้โดยไม่ต้องขออนุญาต ผู้ที่เข้าร่วมในเครือข่ายมีสิทธิ์เขียน อ่าน หรือมีส่วนร่วมกับข้อมูลบนบล็อกเชน โดยเมื่อเข้าไปอยู่ในบล็อกเชนประเภทนี้แล้วจะไม่สามารถถูกเปลี่ยนแปลงหรือแก้ไขได้ ตัวอย่างของ Public Blockchain ได้แก่ Bitcoin และ Ethereum
2.Private Blockchain — คือ เครือข่ายบล็อกเชนที่มีองค์กรใดองค์กรหนึ่งควบคุมอยู่เบื้องหลัง หากต้องการเข้าร่วมกับเครือข่ายบล็อกเชนประเภทนี้จะต้องได้รับการอนุมัติจากองค์กรที่เกี่ยวข้องเสียก่อน บล็อกเชนประเภทนี้จึงถูกมองว่าเป็นการกระจายศูนย์แค่บางส่วนเท่านั้น ตัวอย่างของ Private Blockchain ได้แก่ Ripple (XRP) และ Hyperledger
นอกจากนี้ ยังมี Private Blockchain อีกประเภทหนึ่ง เรียกว่า Consortium Blockchain ที่เป็นเครือข่ายบล็อกเชนที่มีมากกว่า 1 องค์กรคอยดูแลอยู่เบื้องหลัง หรือเป็นบล็อกเชนที่ใช้ในกลุ่มธุรกิจที่เกี่ยวข้องกัน เช่น กลุ่มธนาคาร หรือกลุ่มโรงพยาบาล เป็นต้น การจะเข้าร่วมในบล็อกเชนประเภทนี้ต้องขออนุญาตจากองค์กรที่เกี่ยวข้องเช่นกัน ตัวอย่างของ Consortium Blockchain ได้แก่ Quorum และ Corda เป็นต้น
ภัยคุกคามบน Blockchain
สำหรับภัยคุกคามที่อาจเกิดขึ้นในการใช้บริการที่เกี่ยวข้องกับ Blockchain และวิธีการป้องกัน สามารถแบ่งออกตามระดับขั้นได้ดังนี้
1.User Level
ภัยคุกคามในระดับผู้ใช้ อาจเกิดขึ้นจากมิจฉาชีพที่พยายามขโมยข้อมูลส่วนตัวของผู้ใช้ผ่านวิธีการต่าง ๆ เช่น วิธี SIM swap, Phishing, หรือสร้างเว็บไซต์ปลอม เป็นต้น และยังมีความเป็นไปได้ที่ภัยคุกคามจะมาจากความผิดพลาดของผู้ใช้เอง เช่น การลืมรหัสผ่าน, ลืม Private Key, การลืมอัพเดทแอปพลิเคชันหรือระบบปฏิบัติการอุปกรณ์ของผู้ใช้เอง เป็นต้น
2. Node Level
ภัยคุกคามต่อเครื่องคอมพิวเตอร์ในเครือข่าย (โหนด) ที่อาจส่งผลกระทบเป็นวงกว้างต่อผู้ใช้หรือผู้ที่เกี่ยวข้องกับโหนดนั้น ๆ เช่น ผู้ให้บริการออนไลน์ หรือ กระดานซื้อขายสินทรัพย์ดิจิทัล ซึ่งมิจฉาชีพจะมีกลวิธีที่หลากหลายในการเจาะระบบของโหนดเหล่านี้เพื่อหาผลประโยชน์ให้ตนเอง โดยอาจมาจากช่องโหว่ในเครื่องคอมพิวเตอร์ของผู้ให้บริการเอง
3. Network Level
ภัยคุกคามในระดับเครือข่าย โดยอาจมีสาเหตุมาจาก 2 ปัจจัย คือ 1) การออกแบบโครงสร้างของเครือข่ายที่บกพร่อง (Bug) หรือ 2) ระบบรักษาความปลอดภัยของเครือข่ายที่อ่อนแอ ซึ่งอาจทำให้มิจฉาชีพใช้จุดบอดดังกล่าวเพื่อโจมตีระบบหรือหาผลประโยชน์ให้ตนเอง หรือ หากเป็นเครือข่ายขนาดเล็ก มีพลังประมวลผลโดยรวมต่ำ ก็อาจทำให้เกิดกรณี 51% Attack ที่เป็นใช้ประมวลผลที่มากกว่า 51% ของทั้งเครือข่ายเพื่อเปลี่ยนแปลงทิศทางของเครือข่ายไปในทางที่มิจฉาชีพต้องการ
4. Token (Chain) Level
ภัยคุกคามระดับเหรียญหรือโทเคน อาจเกิดขึ้นจากปัจจัยภายนอกที่กระทบการทำงานของเครือข่าย เช่น การแทรกแซงจากรัฐบาล ปัญหาด้านกฎหมาย รวมถึงปัจจัยภายในของเครือข่ายที่บกพล่อง ยกตัวอย่างเช่น ระบบที่ไม่สามารถ Scale เพื่อขยายขนาดให้สามารถรับรองผู้ใช้ที่เพิ่มมากยิ่งขึ้น ฟังก์ชันสำคัญอย่างการตรวจสอบและชำระเงินอาจชะงัก ส่งผลกระทบต่อผู้ใช้งานเป็นวงกว้าง
5. Contract Level
ภัยคุกคามในระดับของ Smart contract หมายถึงการเขียน Smart contract ที่บกพร่อง อาจทำให้เกิดผลกระทบต่อความสามารถในการแก้สมการของคอมพิวเตอร์ ทำให้เครือข่ายไม่สามารถดำเนินการตามสัญญาที่ร่างไว้ จึงไม่เกิด Turing-completeness ส่งผลให้สัญญาที่สร้างไว้ไม่ถูกเติมเต็ม รวมถึงยังมีความเสี่ยงของการเขียน Smart contract ที่ไม่น่าเชื่อถือ ซึ่งอาจกลายเป็นภัยคุกคามในอนาคตได้
วิธีป้องกันภัยคุกคามบน Blockchain
1. User Level
ผู้ใช้สามารถป้องกันภัยคุกคามเบื้องต้นได้ด้วยการงดการใช้โทรศัพท์มือถือในการตรวจสอบธุรกรรมบนบล็อกเชน และยกระดับความปลอดภัยได้ด้วยการใช้ฟังก์ชัน Two Factor Authentication (2FA) หรือเลือกเก็บข้อมูลบนฮาร์ดไดรฟ์ของเครื่องคอมพิวเตอร์ที่มีการติดตั้ง Firewall เอาไว้เพื่อเพิ่มความปลอดภัย
2. Node Level
การป้องกันภัยคุกคามในระดับโหนด ผู้ที่เกี่ยวข้องกับโหนดหรือผู้ให้บริกาคควรหมั่นตรวจสอบและซ่อมแซมความปลอดภัยของโหนดผ่านการอัพเดทระบบปฏิบัติการแอปพลิเคชั่น รวมถึงตรวจสอบสถานะของเครือข่ายบล็อกเชนเป็นระยะ ๆ เพื่อให้สามารถแก้ไขปัญหาได้โดยเร็วที่สุด
3. Network Level
การป้องกันภัยคุกคามในระดับเครือข่าย สามารถทำได้โดยการออกแบบโครงสร้างของเครือข่ายที่มั่นคงและปลอดภัย โดยคำนึงถึงการป้องกันภัยคุกคามที่อาจเกิดขึ้นเอาไว้ล่วงหน้า โครงสร้างที่ดีควรมีปัจจัยหลักอย่างการกระจายโหนดหรือเครื่องคอมพิวเตอร์ที่เหมาะสม ไม่กระจุกอยู่ในสถานที่เดียวกันมากเกินไป นอกจากนี้ยังมีวิธีการป้องกันเบื้องต้นที่ควรเพิ่มเข้ามา อาทิ ระบบ Firewall การใช้วิธีตรวจสอบ API หรือการเตรียมแผนตอบโต้ภัยคุกคาม เป็นต้น
4. Token (Chain) Level
การป้องกันภัยคุกคามในระดับเหรียญหรือโทเคน เริ่มได้ด้วยการสังเกตุการณ์จากทั้งภายในและภายนอก จากนั้นจึงเริ่มวางแผนสร้างเครือข่าย โดยอาจวางแผนให้มีการกระจายตัวเของโหนดออกไปทั่วโลกแทนการกระจุกตัวอยู่ในประเทศเดียว หรือจำกัดสิทธิ์บางส่วนทำกับผู้ใช้ที่มีความน่าเชื่อถือ บางเครือข่ายจะมีการเข้ารหัส (Encryption) ข้อมูลธุรกรรมและจะเพิ่มระดับความยากของการแก้สมการเพื่อไขรหัสตามสถานะของเครือข่ายโดยอัตโนมัติ
5. Contract Level
ก่อนที่จะเริ่มใช้งาน Smart contract ผู้ที่เกี่ยวข้องต้องมีการตรวจสอบความถูกต้องและความสมบูรณ์ของชุดคำสั่ง (Code) ใน Smart contract ให้ถี่ถ้วนเสียก่อน เพราะเมื่อเริ่มใช้ Smart contract ไปแล้ว การที่จะสามารถย้อนกลับมาแก้ไขได้จะเป็นเรื่องยุ่งยากมาก นอกจากนี้ ผู้ที่เกี่ยวข้องควรมีการวางแผนสำรองหากพบปัญหาใน Smart contract เอาไว้ล่วงหน้าเสมอ
สรุป
โดยสรุปแล้ว การป้องกันภัยคุกคามบนเครือข่ายบล็อกเชนหรือแอปพลิเคชั่นที่เกี่ยวข้องเครือข่ายบล็อกเชน ในฐานะผู้ใช้ทั่วไป วิธีป้องกันที่ดีที่สุดคือการมีสติ ระมัดระวังการใช้งานอินเทอร์เน็ต ไม่ให้ตกเป็นเหยื่อของมิจฉาชีพ รวมถึงติดตั้งแอปพลิเคชันประเภท 2-Factor Authenticator เพื่อยกระดับความปลอดภัยขึ้นไปอีกขั้น และก่อนใช้บริการใด ๆ ก็ควรตรวจสอบความเชื่อถือของบริการให้ดีเสียก่อน เช่น ตรวจสอบว่าผู้ให้บริการมีตัวตนจริง ๆ หรือไม่ มีการโฆษณาเกินจริงหรือไม่ และมีโครงสร้างของเครือข่ายที่มั่นคงหรือไม่ เป็นต้น
สำหรับผู้ให้บริการที่เกี่ยวกับเครือข่ายบล็อกเชน วิธีป้องกันภัยคุกคามที่ดีที่สุดคือการหมั่นทบทวนระบบรักษาความปลอดภัยอย่างสม่ำเสมอ หรือก่อนที่จะวางโครงสร้างพื้นฐานสำหรับเครือข่ายบล็อกเชนก็ควรศึกษากฏหมายที่เกี่ยวข้องในประเทศนั้น ๆ ให้เข้าใจอย่างถ่องแท้ รวมถึงการตรวจสอบชุดคำสั่งของเครือข่ายและ Smart contract ให้ละเอียดก่อนเริ่มใช้งานจริง เป็นต้น
ที่มา:
Medium