Reverse Engineering (วิศวกรรมย้อนกลับ) คืออะไร?
กระบวนการ วิเคราะห์ซอฟต์แวร์/ฮาร์ดแวร์/โปรโตคอล เพื่อเข้าใจโครงสร้าง การทำงาน และตรรกะภายใน โดยไม่มี Source Code หรือเอกสารออกแบบ ต้องการสร้างโมเดลทางนามธรรม (Abstract Model) จาก Implementation
ในบริบท Network Security ใช้ทำอะไร?
| Use Case | คำอธิบาย | เครื่องมือ/เทคนิค |
|---|---|---|
| Malware Analysis | วิเคราะห์พฤติกรรม โครงสร้าง C2, Encryption, Anti-analysis ของ Malware | IDA Pro, Ghidra, x64dbg, Cuckoo Sandbox, YARA, Volatility |
| Protocol Reverse Engineering | ทำความเข้าใจโปรโตคอลลับ/ไม่มีเอกสาร (Proprietary, IoT, OT/ICS, Malware C2) | Wireshark, Scapy, Netzob, Custom Fuzzer |
| Vulnerability Research | หาช่องโหว่ (0-day) ใน Binary, Firmware, Driver, Kernel | Fuzzing (AFL, libFuzzer), Static Analysis, Symbolic Execution (angr, KLEE) |
| Exploit Development | พัฒนา Exploit จากช่องโหว่ที่พบ (ROP, JOP, Heap Spray, etc.) | pwntools, ROPgadget, one_gadget, GDB/WinDbg |
| Firmware/Embedded Analysis | แยก Firmware, หา Hardcoded Keys, Backdoors, Insecure Configs | Binwalk, Firmware Analysis Toolkit, EMBA, JTAG/SWD Debugging |
| Cryptographic Analysis | วิเคราะห์การใช้ Crypto ผิด (Custom Crypto, Hardcoded Keys, Weak RNG) | Crypto Analysis Tools, Side-channel Analysis |
| Threat Intelligence | แยก IOC, TTPs, Attribution จาก Malware Sample | MISP, OpenCTI, YARA, Sigma Rules |
| Interoperability/Legacy Support | ทำให้ระบบเก่าทำงานร่วมกับระบบใหม่ (ไม่มี Vendor Support) | Clean Room Design, API Hooking |
3 ขั้นตอนหลัก (Classic Model)
- Implementation Recovery: Disassembly/Decompilation → Control Flow Graph, Call Graph, Data Structures
- Design Recovery: เข้าใจ Architecture, Algorithms, Protocols, State Machines
- Analysis Recovery: สร้าง Specification/Documentation, หา Vulnerabilities, สร้าง Detection Rules
ด้าน قانونและจริยธรรม (Legal & Ethics)
- สหรัฐ (DMCA 1201): มีข้อยกเว้นสำหรับ Interoperability, Security Research, Encryption Research (ต้องปฏิบัติตามเงื่อนไข)
- สหภาพยุโรป (EU Directive 2009/24/EC): อนุญาตให้ Reverse Engineering เพื่อ Interoperability
- ไทย (พระราชบัญญัติลิขสิทธิ์): มาตรา 36 อนุญาตให้ถอดรหัสโปรแกรมคอมพิวเตอร์เพื่อ Interoperability
- Bug Bounty / Coordinated Vulnerability Disclosure: ทางที่ถูกต้องสำหรับนักวิจัย
- EULA/ToS: หลายบริษัทห้ามในสัญญา แต่บางประเทศถือว่าข้อนี้บังคับใช้ไม่ได้ (Unenforceable)
เครื่องมือยอดนิยม
- Static Analysis: IDA Pro (Gold Standard), Ghidra (Free, NSA), Binary Ninja, Radare2/Cutter
- Dynamic Analysis: x64dbg, WinDbg, GDB, Frida, DynamoRIO, PIN
- Decompilers: Hex-Rays (IDA), Ghidra Decompiler, RetDec, Snowman
- Network/Protocol: Wireshark, Scapy, Netzob, Bro/Zeek Scripts
- Automation: Angr (Symbolic Execution), AFL++ (Fuzzing), Miasm, Triton
กรณีศึกษา nổi tiếng
- Stuxnet: Reverse Engineering พบว่าเป็น Cyberweapon โจมตี Centrifuge Iran (Siemens PLC)
- WannaCry: Kill Switch Domain พบจาก RE → หยุดการแพร่ระบาด
- Zoom/Teams/Slack Clients: RE หาช่องโหว่ RCE, Privacy Issues
- IoT/Router Firmware: Mirai Botnet, VPNFilter, Home Router Backdoors