AI กลายเป็นเครื่องมือทรงพลังในการถอดรหัสโค้ดที่ถูกปกปิด กรณีศึกษา VM ของ TikTok จุดประเด็นให้เกิดการถกเถียง

BigGo Editorial Team
AI กลายเป็นเครื่องมือทรงพลังในการถอดรหัสโค้ดที่ถูกปกปิด กรณีศึกษา VM ของ TikTok จุดประเด็นให้เกิดการถกเถียง

การวิเคราะห์เชิงลึกล่าสุดเกี่ยวกับเครื่องจำลองเสมือน (virtual machine) อันซับซ้อนของ TikTok ได้จุดประเด็นให้เกิดการถกเถียงอย่างกว้างขวางในหมู่นักพัฒนาซอฟต์แวร์เกี่ยวกับบทบาทที่เพิ่มขึ้นของ AI ในการถอดรหัสโค้ดที่ถูกปกปิด การวิเคราะห์ไฟล์ webmssdk.js ของ TikTok ที่ถูกปกปิดอย่างซับซ้อนได้เผยให้เห็นการใช้งาน VM ที่ทำงานด้วยไบต์โค้ดที่ซับซ้อน ซึ่งทั้งสร้างความประทับใจและความกังวลให้กับชุมชนเทคนิค

AI เป็นตัวเปลี่ยนเกมสำหรับการถอดรหัสย้อนกลับ

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

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

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

การใช้งานที่ถูกกฎหมาย vs. ข้อกังวลด้านความปลอดภัย

การสนทนาเผยให้เห็นความคิดเห็นที่แตกต่างกันเกี่ยวกับเหตุผลที่แพลตฟอร์มอย่าง TikTok ใช้เทคนิคการปกปิดที่ซับซ้อนเช่นนี้ นักพัฒนาหลายคนชี้ให้เห็นถึงเหตุผลด้านความปลอดภัยที่ชอบด้วยกฎหมาย โดยเฉพาะการป้องกันบอท เป็นเหตุผลสำหรับการใช้งาน VM ที่ซับซ้อน การปกปิดสร้างความยากลำบากสำหรับระบบอัตโนมัติที่พยายามโต้ตอบกับแพลตฟอร์ม คล้ายกับเทคนิคที่ใช้โดย reCAPTCHA ของ Google และระบบป้องกันการโกงในเกมต่างๆ

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

กลยุทธ์การป้องกันเชิงลึก

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

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

เทคนิคการทำให้โค้ดเข้าใจยาก (Obfuscation) หลักของ TikTok VM

  • การใช้วงเล็บเพื่อทำให้เข้าใจยาก: การซ่อนการเข้าถึงคุณสมบัติ (เช่น TOB[91][303](71+1, [1))
  • การเรียกฟังก์ชันแบบอำพราง: ฟังก์ชันที่ถูกกำหนดในอาร์เรย์และถูกเรียกผ่านดัชนีอาร์เรย์
  • ไบต์โค้ดที่เข้ารหัสด้วย XOR: โค้ด VM ที่เก็บไว้ในรูปแบบสตริงที่เข้ารหัส
  • คำสั่ง if-else ซ้อนกัน: โครงสร้าง switch-case ที่ถูกอำพรางเป็นเงื่อนไขที่ซับซ้อน

ส่วนหัว (Headers) ด้านความปลอดภัยที่ใช้โดย TikTok

Header คำอธิบาย
msToken ส่งโดยเซิร์ฟเวอร์และออกใหม่ในทุกคำขอ
X-Bogus สร้างโดย webmssdk.js ตามคำขอ
_signature สร้างโดย webmssdk.js ตามคำขอ

กลไกการป้องกันบอท

  • การตรวจสอบสภาพแวดล้อม (VM265)
  • การติดตามเมาส์ (VM120)
  • การวิเคราะห์พฤติกรรมฝั่งไคลเอนต์

รายละเอียดการใช้งาน VM

การวิเคราะห์ดั้งเดิมเผยให้เห็นว่า VM ของ TikTok มีความซับซ้อนอย่างน่าทึ่ง รองรับขอบเขต (scopes) ฟังก์ชันซ้อนกัน และการจัดการข้อยกเว้น เทคนิคการปกปิดรวมถึงการเรียกใช้ฟังก์ชันที่ถูกอำพราง การใช้วงเล็บในทางที่ผิด และไบต์โค้ดที่เข้ารหัสด้วย XOR กระบวนการถอดรหัสต้องใช้หลายขั้นตอน รวมถึงการแทนที่สตริง การจัดการ AST และการแปลงคำสั่ง if-else ซ้อนกันกลับเป็นโครงสร้าง switch-case ด้วยตนเอง

ความซับซ้อนของ VM บ่งชี้ถึงการลงทุนที่สำคัญในโครงสร้างพื้นฐานด้านความปลอดภัย โดยการใช้งานนี้ก้าวไกลกว่าเทคนิคการย่อ JavaScript ทั่วไปหรือเทคนิคการปกปิดพื้นฐาน ระดับความซับซ้อนนี้ทำให้เกิดคำถามว่ามาตรการดังกล่าวมีสัดส่วนเหมาะสมกับภัยคุกคามด้านความปลอดภัยที่แพลตฟอร์มสื่อสังคมเผชิญหรือไม่

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

อ้างอิง: TikTok VM Reverse Engineering (webmssdk.js)