- ผู้ชื่นชอบวิดีโอเกมหลายพันคนกำลังสั่งสมประสบการณ์ในอุตสาหกรรมความมั่นคงไซเบอร์โดยไม่รู้ตัว
- พวกเขามีงานอดิเรกคือการวิเคราะห์รายละเอียดของเกม ซึ่งคล้ายกับการเป็นนักวิจัยช่องโหว่
Speedrun คืออะไร? :
- ทันทีที่วิดีโอเกมวางจำหน่าย ผู้คนก็พยายามเล่นให้จบเร็วกว่าคนอื่นหรือเร็วกว่ากลุ่มเพื่อน
- เกมที่ได้รับความนิยมมากหรือมีความสำคัญทางวัฒนธรรมมักก่อให้เกิดการแข่งขันที่เข้มข้น
- นักสปีดรันจะเล่นเกมเดิมซ้ำหลายร้อยหรือหลายพันครั้งเพื่อทำเวลาที่เร็วที่สุดบนลีดเดอร์บอร์ดที่ขับเคลื่อนโดยชุมชน
- การสปีดรันแบบ "Any%" คือหมวดหมู่ที่แทบไม่สนกติกาใด ๆ โดยมีเป้าหมายคือเล่นให้จบให้เร็วที่สุดผ่านการใช้บั๊กของเกมโดยเจตนา
การล่ากลิทช์คือการทำ Reverse Engineering
- ภายในคอมมูนิตี้สปีดรันของเกม ได้เกิดกลุ่มที่นำแนวทางเชิงวิศวกรรมมาใช้เพื่อค้นพบกลิทช์ใหม่ ๆ
- พวกเขาไม่ได้อาศัยแค่การลองซ้ำ ๆ เท่านั้น แต่ยังใช้เครื่องมือมาตรฐานของวงการความมั่นคงไซเบอร์อย่าง IDA Pro หรือ Ghidra เพื่อวิเคราะห์การทำงานภายในของซอฟต์แวร์
- อีกทั้งยังใช้เครื่องมืออย่าง memory viewer ของ Dolphin Emulator หรือ Cheat Engine สำหรับการวิเคราะห์แบบไดนามิก เพื่อทำความเข้าใจโครงสร้างข้อมูลภายในของโปรแกรมและวิธีที่มันบันทึกข้อมูล
- บางคอมมูนิตี้ถึงขั้นทำ reverse engineering กับฟอร์แมตไฟล์ของเกม แล้วสร้าง Ghidra program loader ขึ้นมาเอง หรือเอาโค้ดที่ disassemble จาก Ghidra มาเขียนใหม่เป็นภาษา C เพื่อนำไปใช้กับ fuzzer
การวิจัยช่องโหว่
- กลุ่มเหล่านี้ไม่ได้ทำแค่ reverse engineering แต่ยังทำวิจัยช่องโหว่อีกด้วย
- พวกเขาไม่ได้หยุดอยู่แค่การทำความเข้าใจว่าเกมทำงานอย่างไร แต่ยังพยายามหาทางทำให้เกมพังในรูปแบบต่าง ๆ
- กลิทช์เหล่านี้ทำงานคล้ายกับ memory corruption exploit อย่างมาก และนำไปสู่การค้นพบ buffer overflow, use-after-free, การเปลี่ยนสถานะของ state machine ที่ไม่ถูกต้อง และอื่น ๆ
- สิ่งที่น่าประทับใจเป็นพิเศษคือพวกเขาทำให้ exploit เหล่านี้ใช้งานได้จริงในระดับผลิตภัณฑ์
- คอมมูนิตี้สปีดรันสามารถฝ่าข้อจำกัดที่เข้มงวดมากเพื่อใช้กลิทช์เหล่านี้ได้จริง ซึ่งคล้ายกับงานที่นักวิจัยช่องโหว่ในอุตสาหกรรมความมั่นคงไซเบอร์ทำ
- บางคอมมูนิตี้เกมใช้ tool-assisted speedrun (TAS) เพื่อทำกลิทช์ที่ต้องอาศัยความแม่นยำเกินกว่ามนุษย์จะทำได้ โดยบันทึกอินพุตระดับเฟรมเพื่อควบคุมมุมได้อย่างแม่นยำ
- TAS ใช้ memory debugger เพื่อสร้าง heap spray ที่สมบูรณ์แบบ หรือเขียน shellcode payload ลงในอินเวนทอรีของผู้เล่น
การมีอยู่ของอุตสาหกรรมนี้
- เป็นเรื่องน่าประหลาดที่คนซึ่งมีทักษะทางเทคนิคสูงเหล่านี้ยังขาดการเชื่อมต่อกับอุตสาหกรรมความมั่นคงไซเบอร์
- นักล่ากลิทช์ในวงการสปีดรันพัฒนา heap use-after-free exploit และเขียนบทความเชิงเทคนิค แต่เรียกมันว่าเป็นกลิทช์แบบ ‘item storage’
- พวกเขาไม่ตระหนักว่างานอดิเรกของตัวเองเกี่ยวข้องอย่างใกล้ชิดกับการวิจัยช่องโหว่ในอุตสาหกรรมความมั่นคงไซเบอร์
- น่าเสียดายที่คนซึ่งมีทักษะแบบนี้ไม่ได้สมัครงานในสายอย่างการวิจัยช่องโหว่หรือ reverse engineering
- การวิจัยช่องโหว่ต้องอาศัยความเข้าใจเชิงลึกต่อวิธีการทำงานของโปรแกรม ซึ่งคล้ายกับการค้นหากลิทช์ในเกม
- การวิเคราะห์กลิทช์เชิงเทคนิคของคอมมูนิตี้สปีดรันก็ได้รับความนิยมในอุตสาหกรรมความมั่นคงไซเบอร์เช่นกัน เพราะพวกเขาสำรวจภายในของโปรแกรมอย่างลึกซึ้งและใช้ประโยชน์จากช่องโหว่อย่างสร้างสรรค์
4 ความคิดเห็น
หลังจากได้เห็นทีม QA หลายทีม ผมก็รู้สึกได้อย่างหนึ่งว่า สุดท้ายแล้วถ้าเราไม่ได้คิดจากมุมว่าถ้าเป็นผู้ใช้เราจะทำอย่างไร การแค่ไล่เช็กลิสต์ไปทีละข้อก็ไม่สามารถหาช่องโหว่แบบที่บทความพูดถึงได้จริง ๆ
เจ้าหญิงกระต่าย..?
ความเห็นจาก Hacker News
อุปมานี้ให้ความรู้สึกว่าออกจะพูดเกินจริงไปนิดเพื่อทำคอนเทนต์มาร์เก็ตติ้ง ความต่างหลักระหว่างนักวิจัยช่องโหว่กับชุมชน speedrunning คือ speedrunning มีความร่วมมือกันสูงมากและเปิดกว้างมาก แต่ละเกมจะมีชุมชน Discord สำหรับ speedrunning ขนาดใหญ่ และแม้ก่อนจะมี Discord ผู้คนจำนวนมากก็พยายามทำความเข้าใจทริกและการแฮ็กที่ถูกค้นพบโดยไม่ตั้งใจด้วยการดูการเล่นของคนอื่น
ฉันสงสัยว่าทำไมความสนใจสองอย่างนี้ถึงไม่ทับซ้อนกัน ส่วนหนึ่งน่าจะเป็นผลแบบ “ฉันไม่อยากรักษามะเร็ง ฉันอยากเปลี่ยนคนให้เป็นไดโนเสาร์” คนที่แฮ็กเกมบางส่วนสนใจแค่สิ่งที่ทำได้กับเกมที่ตัวเองสนใจเท่านั้น มันไม่ได้ต่อยอดเป็นความสนใจที่จะใช้ทักษะเดียวกันกับทุกอย่างอื่น
ความต่างสำคัญคือแรงจูงใจ speedrunner สนุกกับมันเพราะเกมมันสนุก speedrunner สามารถเอาช่องโหว่เหล่านี้ไปใช้จริงในชีวิตของตัวเองในแบบที่มีความหมายได้ แต่นักวิจัยช่องโหว่โดยทั่วไปมักทำไม่ได้
นี่เป็นเรื่องที่ชัดเจนอย่างยิ่ง นักวิจัยช่องโหว่อิจฉาวิดีโอ speedrun แบบ tool-assisted อนึ่ง ตอนที่ฉันเล่น Microcorruption นักพัฒนาเกมนั้นเก่งกว่าทุกคน ยกเว้นนักวิจัยช่องโหว่ระดับหัวกะทิ
ไม่นานมานี้ฉันดู world record speedrun ของ Subnautica แล้วมีคนใจดีคอมเมนต์ทิ้งรายการบั๊กทั้งหมดที่ถูกใช้เพื่อเคลียร์เกมใน 28 นาที
เป็นบทความที่น่าสนใจ
ถ้าเอาแบบสุดโต่ง ก็สามารถทำอะไรอย่าง arbitrary code execution ใน Super Mario World ได้
สแปมบล็อกนี้เขียนโดย “Senior Cyber Engineer” ทำให้ฉันสงสัยว่าเขา (a) อายที่โฆษณาที่ตัวเองเขียนมันเหลวไหลเกินไป หรือ (b) จริง ๆ แล้วไม่ใช่วิศวกร แต่เป็นคนเขียนพรอมป์ให้ ChatGPT
ฉันเป็น speedrunner และมั่นใจว่านี่เป็นเรื่องที่รู้กันดีอยู่แล้ว และในบางหมวดหมู่ก็ยอมรับกันเป็นมาตรฐานด้วยซ้ำ เป็นมาตรฐานที่ยอมรับกันดีมากจนชื่อเรื่องแทบจะเป็นการดูถูกเล็กน้อย
https://reddit.com/r/comicbooks/…
zzz