การวิเคราะห์เชิงลึกล่าสุดเกี่ยวกับเครื่องจำลองเสมือน (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 ตอนนี้ให้ความสามารถใหม่ที่ทรงพลังแก่ทั้งสองฝ่าย ซึ่งอาจเปลี่ยนสมดุลของอำนาจในรูปแบบที่คาดเดาไม่ได้