""โอกาส" ก็สำคัญพอกับ "อากาศ" นั่นแหละ"
เข้าใจความปลอดภัยของ WAX Chain และข้อควรระวังเพื่อไม่ให้โดนแฮค
31 Oct 2021 09:26   [32348 views]

WAX Chain กลายเป็น Chain ที่มีคนทำเกมไปลงเยอะมากด้วยคุณสมบัติที่ Gas มันฟรีและทุกอย่างเร็วมาก รวมถึงทีมพัฒนา WAX Chain สร้างทุกอย่างมาเพื่อรองรับ Game NFT โดยสมบูรณ์ด้วย

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

บล็อกนี้เลยขอเขียนไว้เพื่อเป็น Reference สำหรับคนที่จะเล่นเกมบน WAX Chain ครับ จะได้ไม่พลาดจนเกิดความเสียหายที่ไม่มีใครต้องการ

WAX Chain และความปลอดภัย

WAX Chain เป็นตัวที่ถูกก็อปมาพัฒนาต่อจาก EOS ในแง่ความปลอดภัยของตัว WAX Chain เองถือว่าปลอดภัยตามมาตรฐาน และคนที่จะทำธุรกรรมใด ๆ จากกระเป๋าได้จะต้องมี Private Key ซึ่งเอาไว้แสดงความเป็นเจ้าของของกระเป๋านั้น ๆ ทุกอย่างเป็นไปตามพื้นฐานของ Blockchain ทั่วไป

ความจริง EOS เคยถูกโจมตีครั้งใหญ่มาแล้วด้วยการ Spam เพื่อให้ทุกอย่างหยุดทำงานแล้วสอนแทรกบางอย่างไปจนเกิดความเสียหายเป็นพันล้าน แต่ปัญหาก็ถูกแก้ไปแล้วและยังไม่เคยเกิดเหตุอะไรแรง ๆ บน WAX Chain จนถึงตอนนี้

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

แต่ถามว่าถ้าเราไปกดมั่ว ๆ สักเว็บนึงแล้วเค้าจะมาล้วงของเราจากกระเป๋าเราระหว่างเรานอนนั้นทำได้มั้ย อันนี้ทำไม่ได้นะครับ บน Ethereum หรือ BSC อาจจะทำได้ แต่บน WAX Chain ไม่ได้ออกแบบมาแบบนั้น ดังนั้นถ้าเราไม่ได้กดโอนออกเองก็ไม่มีทางที่ของจะถูกขโมยไปได้ครับ

รู้จัก WAX Cloud Wallet

อย่างที่บอกว่าทีมพัฒนา WAX Chain ตั้งใจทำเชนนี้มาเพื่อตลาดเกมโดยเฉพาะ และพวกเขาเข้าใจดีว่าตลาดเกมมัน Mass และคงคาดหวังให้ทุกคน Geek ไม่ได้ เค้าก็เลยทำทุกอย่างให้ง่ายที่สุด รวมถึงสิ่งที่ถือว่ายากมากใน Blockchain ทุกตัวอย่างการ "เปิดและรักษากระเป๋า" เค้าก็ทำให้มันง่ายสุด ๆ ด้วยการที่เราใช้ Email และ Password ในการ Login ได้เลยผ่านเว็บสร้างกระเป๋าที่ชื่อว่า WAX Cloud Wallet

เชื่อว่ามีผู้เล่นกว่า 99% ที่ใช้ WAX Cloud Wallet เล่นเกม แต่เชื่อว่ามีแค่เสี้ยวเดียวเท่านั้นที่รู้ว่า WAX Cloud Wallet ทำงานยังไง เราเลยขอมาอธิบายให้ฟังในบล็อกนี้

อย่างที่บอกด้านบน WAX Chain ก็เหมือน Blockchain ตัวอื่น ๆ คือสิทธิ์ทุกอย่างในกระเป๋าแอดเดรสนั้น ๆ อยู่ที่คนถือ "Private Key" ตัวอย่าง Private Key ก็

5JutS4gcbpBQmbfiQV8oGdK3PKQ2CN4AFUwpeyUQ5EBkhz92MHo

เรียกว่าถ้าไม่มีรหัสยาว ๆ ตัวนี้ก็ไม่สามารถทำธุรกรรมใด ๆ ได้เลย และทุกกระเป๋าจะมี Private Key นี้เป็นของตัวเองไม่ซ้ำกัน

คราวนี้คนที่ใช้ WAX Cloud Wallet คงสงสัยว่านี่มันรหัสอะไรกันนี่ ไม่เห็นเคยเห็นมาก่อนแต่ทุกวันนี้ก็ทำธุรกรรมได้หนิ ?

นั่นแหละครับ

WAX Cloud Wallet นั้นถูกเรียกว่า Custodial Wallet หรือกระเป๋าที่เค้าเก็บ Private Key ให้เรา

ที่ทำแบบนี้ก็เพราะว่า Private Key เป็นเรื่องที่ Geek มาก หากหายไปก็จะเข้าถึงกระเป๋าไม่ได้อีก หรือถ้าคีย์หลุดก็โดนขโมยของไปได้เลย ต้องเปลี่ยนกระเป๋าเท่านั้น

ทางทีมพัฒนา WAX Cloud Wallet เลยตัดปัญหานี้ด้วยการให้เราเปิดกระเป๋าด้วย Email และ Password แบบเว็บทั่วไปได้ง่าย ๆ เลย แล้วเค้าจะจัดการที่เหลือให้

นั่นเป็นสาเหตุว่าเวลาเราจะทำธุรกรรมอะไรก็ตาม เว็บจะเด้งหน้าจอ WAX Cloud Wallet มาให้เรากด Approve นั่นเป็นเพราะเว็บจะต้องเป็นคนทำธุรกรรมให้เรานั่นเองเนื่องจากเว็บเป็นคนถือ Private Key อยู่

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

ย้ำอีกทีว่า WAX Cloud Wallet มีสิทธิ์ในกระเป๋าเราทุกอย่างนะ และกระเป๋านั้นไม่ใช่ของเรา แต่เป็นของ WAX Cloud Wallet ที่เรายืมเค้าใช้เฉย ๆ แต่ก็แลกกับความสะดวกนั่นแหละ

สร้าง Private Key เองปลอดภัยกว่าแต่ยากกว่า

แล้วถามว่าถ้าเราไม่อยากใช้ WAX Cloud Wallet แต่เป็นทางสร้าง Private Key เองแล้วคุมทุกอย่างเองนี่ทำได้มั้ย ? ตอบว่าทำได้ครับ เราสามารถใช้แอป ฯ ชื่อว่า EOSKeyIO เพื่อสร้าง Private Key แล้วทำธุรกรรมผ่านแอป ฯ ชื่อ Anchor ได้ และนั่นเป็นวิธีที่เราแนะนำกว่า WAX Cloud Wallet แต่ก็แลกมากับความยุ่งยากและความรับผิดชอบอันยิ่งใหญ่นะ

อีกข้อดีของการสร้างกระเป๋าจาก Private Key เองคือเราสามารถตั้งชื่อกระเป๋าเองได้ด้วยนะ โดยเป็นภาษาอังกฤษยาว 12 ตัวอักษร ตั้งชื่อสวย ๆ ได้เลย ^__^

อย่าใช้ Password ของเว็บอื่นบน WAX Cloud Wallet

เว็บต่าง ๆ ถูกแฮคแล้วเอา Username/Password ไปขายในตลาดมืดแทบทุกวัน ข้อห้ามเลยคือ

เราห้ามใช้ Password บนเว็บ WAX Cloud Wallet ซ้ำกับเว็บอื่น

เพราะถึงแม้ WAX Cloud Wallet จะไม่ได้ถูกแฮค แต่กระเป๋าเราก็อาจถูกเข้าถึงได้จากการที่เว็บอื่นถูกแฮคแล้วเอา Password มาใช้ที่นี่ก็ได้

ความจริงวิธีที่ดีที่สุดคือทุกเว็บต้องห้ามใช้ Password ซ้ำกันครับ ทุกเว็บเลย อันนั้นปลอดภัยที่สุด

แต่จนถึงตอนนี้ WAX Cloud Wallet ก็ยังปลอดภัยอยู่

ถึง WAX Cloud Wallet จะควบคุมทุกอย่างให้แต่จนถึงตอนนี้ก็ยังไม่มีเคสว่า Private Key หลุดหรือโดนแฮคใด ๆ แถมยังมีพวก 2FA ให้ใช้ด้วยทำให้ทุกอย่างค่อนข้างปลอดภัยครับ ต่อให้ Username/Password หลุด เราก็ต้องเช็คเมลเพื่อใส่ Confimation Code อยู่ดี ดังนั้นสบายใจได้ ไม่โดนแฮคง่าย ๆ แน่นอน

แต่ Session Token มีสิทธิ์ทำทุกอย่าง !

จนถึงตอนนี้ยังไม่เห็นช่องโหว่อะไรจากทาง WAX Chain และ WAX Cloud Wallet เองเท่าไหร่ แต่จุดอ่อนใหญ่ที่ทุกคนไม่รู้ว่ามันอันตรายมากแต่ทำกันเพียบเลยคือ

"เอา Session Token ไปให้บอทรัน"

เกมบน WAX Chain กับบอทแทบจะเป็นของคู่กัน มีเกมต้องมีบอทอะไรแบบนั้นเลย และเนื่องจากบอทจะต้องมีสิทธิ์ในการทำธุรกรรมทุกอย่าง ไม่งั้นก็จะเล่นเกมให้เราไม่ได้ ดังนั้นบอทจึงต้องขอสิ่งที่เรียกว่า Session Token ซึ่งได้รับมาตอนเรา Login WAX Cloud Wallet และบอทจะใช้ Session Token นี้ร้องขอไปยัง Server เพื่อทำธุรกรรม

พูดง่าย ๆ ผู้ที่มี Session Token ของเราจะสามารถทำทุกอย่างแทนเราได้ทันที และทุกอย่างที่ว่าคือเอาไปเล่นเกมให้เรารวมถึงโอนของทุกอย่างออกจากกระเป๋าเราก็ทำได้

เจ้าของบอทอาจจะไม่ทำอะไรแบบนั้น แต่สิ่งที่น่ากังวลกว่าคือถ้าบอทนั้น ๆ ทำ Session Token ของเราหลุดไปไม่ว่าจะวิธีใดก็ตาม (เช่นโดนแฮค) กระเป๋าเราก็จะโดนเข้าควบคุมและขโมยของออกไปได้ทันที

เราจะไม่บอกว่าบอทเจ้าไหนดีเจ้าไหนไม่ดี เจ้าไหนไว้ใจได้หรือไม่ได้เพราะเราไม่มีข้อมูลอะไร แต่สิ่งที่อยากจะเตือนไว้คือการที่เรามอบ Session Token ให้เค้าไปคือเรามอบกระเป๋าให้เค้าไปเลยนะ คำถามคือ

เราไว้ใจเค้าแค่ไหนที่จะดูแลของในกระเป๋าเราทั้งหมด ?

และให้ตัดสินใจประเมินความเสี่ยงเอาเองครับ ส่วนตัวเขียนบอทเองก็เลยไม่มีข้อมูลเรื่องเจ้าต่าง ๆ ในตลาด แต่บอกเลยว่าเรามี Concern เรื่องนี้ค่อนข้างสูงมากถึงมากที่สุด และเชื่อว่านี่น่าจะเป็นสาเหตุหลักที่มีแอคเค้าท์ถูกแฮคด้วยซ้ำไป ก็ดูในเชิงเทคนิคกันด้วยว่าเจ้าไหนเอา Session Token เราไป เจ้าไหนให้เราเก็บไว้เอง ฯลฯ ประเมินเอาเองเพราะอย่างที่บอก ผมไม่รู้เลยว่าเจ้าไหนทำงานยังไง

อีกกรณีนึงคือกรณีเว็บหลอกลวงให้เราเอา Session Token ไปกรอก อันนั้นก็ถือว่าเราเอาไปให้เค้าเองและโดนขโมยของแน่นอนครับ ดังนั้นอย่าเอา Session Token ไปให้ใครง่าย ๆ เป็นอันขาด มันสำคัญมาก

ย้ำอีกทีก่อนจบ

"การมอบ Session Token ให้ใครไป มันคือการที่เรามอบกระเป๋าให้เค้าเลย ทำก็ต่อเมื่อคุณไว้ใจเค้ามาก ๆ เท่านั้น"

99% ของการโดนแฮคคือเราเอากระเป๋าไปให้เค้าเอง

สรุปแล้วจะบอกว่าทุกกรณีของการที่กระเป๋า WAX โดนแฮคเอาของไปล้วนเกิดจากการที่เราเอากระเป๋าไปประเคนให้เค้าทั้งสิ้น เพียงแต่เราไม่รู้ตัวว่าสิ่งที่เรามอบไปมันคือกระเป๋าทั้งใบ

หวังว่าอ่านบล็อกนี้จบแล้วทุกคนจะเข้าใจระบบมากขึ้น ป้องกันตัวเองมากขึ้นและคิดหลาย ๆ ตลบก่อนจะทำอะไรสักอย่างครับ

บทความที่เกี่ยวข้อง

Feb 9, 2017, 21:22
321623 views
รับสมัครโปรแกรมเมอร์อย่างไรให้ได้คน ในยุคคน Millennial เช่นทุกวันนี้ ?
Dec 11, 2021, 14:45
64513 views
ถอด Mathematic Model เบื้องหลังการแตกของ Cryptomines
0 Comment(s)
Loading