9 เครื่องมือวิศวกรรมย้อนกลับที่ดีที่สุดสำหรับมืออาชีพด้านความปลอดภัย
เผยแพร่แล้ว: 2022-12-13การทำวิศวกรรมย้อนกลับคือกระบวนการวิเคราะห์ผลิตภัณฑ์หรือระบบเพื่อให้เข้าใจถึงการออกแบบ การทำงานภายใน และฟังก์ชันการทำงาน
วิศวกรรมย้อนรอยมักใช้เพื่อทำความเข้าใจผลิตภัณฑ์หรือระบบให้ดียิ่งขึ้น เพื่อปรับปรุงผลิตภัณฑ์หรือระบบ เพื่อสร้างผลิตภัณฑ์หรือระบบที่แข่งขันกัน หรือเพื่อระบุและแก้ไขข้อบกพร่องหรือช่องโหว่
โดยทั่วไปจะใช้ในสาขาต่างๆ เช่น การพัฒนาซอฟต์แวร์ การผลิต และการรักษาความปลอดภัย อย่างไรก็ตาม การทำวิศวกรรมย้อนกลับยังสามารถใช้เพื่อวัตถุประสงค์ที่เป็นอันตราย เช่น การขโมยความลับทางการค้าหรือการสร้างผลิตภัณฑ์ลอกเลียนแบบ ด้วยเหตุนี้ การทำวิศวกรรมย้อนกลับจึงมักถูกควบคุมโดยกฎหมายว่าด้วยทรัพย์สินทางปัญญาและความลับทางการค้า
เพื่อให้มีความเชี่ยวชาญในการทำวิศวกรรมย้อนรอย ผู้เชี่ยวชาญด้านความปลอดภัยควรมีความเข้าใจอย่างถ่องแท้เกี่ยวกับวิทยาการคอมพิวเตอร์และการเขียนโปรแกรม ตลอดจนประสบการณ์เกี่ยวกับเครื่องมือและเทคนิคที่ใช้กันทั่วไปในการทำวิศวกรรมย้อนกลับ เช่น ตัวแยกส่วนและดีบักเกอร์
วิศวกรรมย้อนกลับทำงานอย่างไร?

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

การทำวิศวกรรมย้อนกลับมักเกี่ยวข้องกับขั้นตอนต่อไปนี้:
- ระบุผลิตภัณฑ์หรือระบบที่จะทำวิศวกรรมย้อนกลับ : โดยทั่วไปเกี่ยวข้องกับการระบุผลิตภัณฑ์ซอฟต์แวร์หรือระบบเฉพาะที่จำเป็นต้องศึกษาให้ดียิ่งขึ้นเพื่อทำความเข้าใจการออกแบบ การทำงานภายใน และฟังก์ชันการทำงาน
- รวบรวมข้อมูลเกี่ยวกับผลิตภัณฑ์หรือระบบ : เป็นการรวบรวมข้อมูลเกี่ยวกับผลิตภัณฑ์หรือระบบจากแหล่งต่างๆ เช่น เอกสารการออกแบบ รหัส หรือคู่มือผู้ใช้
- วิเคราะห์ผลิตภัณฑ์หรือระบบ : โดยทั่วไปจะเกี่ยวข้องกับการวิเคราะห์ข้อมูลที่รวบรวมเพื่อให้เข้าใจการออกแบบและการทำงานของระบบ ซึ่งอาจเกี่ยวข้องกับการแยกผลิตภัณฑ์หรือระบบออกจากกัน ศึกษาส่วนประกอบและการโต้ตอบ หรือตรวจสอบเอกสารหรือรหัสการออกแบบ
- สร้างแบบจำลองของผลิตภัณฑ์หรือระบบ : ขั้นตอนนี้โดยทั่วไปเกี่ยวข้องกับการสร้างแบบจำลองที่แสดงถึงการออกแบบ การทำงานภายใน และฟังก์ชันการทำงานอย่างถูกต้อง แบบจำลองนี้สามารถใช้เพื่อศึกษาผลิตภัณฑ์หรือระบบโดยละเอียดยิ่งขึ้นหรือทำการเปลี่ยนแปลงหรือปรับปรุง
- ใช้ความรู้ที่ได้รับจากการทำวิศวกรรมย้อนรอย : เมื่อแบบจำลองถูกสร้างขึ้นแล้ว ความรู้ที่ได้รับจากวิศวกรรมย้อนรอยสามารถนำไปใช้ในการปรับปรุงผลิตภัณฑ์หรือระบบ สร้างผลิตภัณฑ์หรือระบบที่แข่งขันกัน หรือระบุและแก้ไขข้อบกพร่องหรือช่องโหว่ ซึ่งอาจเกี่ยวข้องกับการเปลี่ยนแปลงการออกแบบ รหัส หรือส่วนประกอบของผลิตภัณฑ์หรือระบบ หรือการพัฒนาผลิตภัณฑ์หรือระบบใหม่ตามความรู้ที่ได้รับ
เริ่มต้นด้วย เครื่องมือวิศวกรรมย้อนกลับที่ดีที่สุด
กิดรา
Ghidra เป็นชุดเครื่องมือวิศวกรรมย้อนกลับ (SRE) ฟรีและโอเพ่นซอร์สที่พัฒนาโดยสำนักงานความมั่นคงแห่งชาติ (NSA) ใช้เพื่อแยกส่วน ถอดรหัส และวิเคราะห์รหัสไบนารี
Ghidra ได้รับการออกแบบให้เป็นเครื่องมือ SRE ที่แข็งแกร่งและปรับขนาดได้ และถูกใช้โดยทั้งหน่วยงานรัฐบาลและชุมชน SRE ที่กว้างขึ้น เครื่องมือนี้เผยแพร่สู่สาธารณะในปี 2019 และสามารถดาวน์โหลดและใช้งานได้ฟรี

มีอินเทอร์เฟซที่ใช้งานง่ายและการออกแบบโมดูลาร์ ซึ่งช่วยให้ผู้ใช้สามารถปรับแต่งเครื่องมือให้ตรงตามความต้องการเฉพาะของตนได้
นอกจากนี้ Ghidra ยังมีตัวถอดรหัสที่สามารถแปลงโค้ดแอสเซมบลีเป็นภาษาระดับสูงกว่า เช่น C หรือ Java ซึ่งทำให้เข้าใจการทำงานของไฟล์ไบนารีได้ง่ายขึ้น
อันโดรการ์ด
Androguard เป็นชุดเครื่องมือโอเพ่นซอร์สสำหรับการย้อนกลับและวิเคราะห์แอปพลิเคชัน Android ซึ่งเขียนด้วยภาษา Python และสามารถใช้วิเคราะห์โครงสร้างและพฤติกรรมของแอป Android ได้
Androguard มีเครื่องมือมากมายสำหรับดำเนินการวิเคราะห์ประเภทต่างๆ รวมถึงการแยกส่วน การถอดรหัส และการถอดรหัสแอป Android ที่ยุ่งเหยิง สามารถใช้วิเคราะห์โค้ดของแอป ดึงทรัพยากรของแอป และระบุช่องโหว่ที่อาจเกิดขึ้นได้

Androguard ถูกใช้อย่างกว้างขวางโดยนักวิจัยและผู้เชี่ยวชาญด้านความปลอดภัยเพื่อวิเคราะห์ความปลอดภัยของแอพ Android
นำเสนอคุณสมบัติที่หลากหลายสำหรับการทำวิศวกรรมย้อนกลับ รวมถึงการสนับสนุนรูปแบบไฟล์ที่หลากหลาย ความสามารถในการวิเคราะห์แบบคงที่และแบบไดนามิก และการรวมเข้ากับเครื่องมืออื่นๆ เช่น IDA Pro และ radare2
อิมเฮ็กซ์
ImHex เป็นตัวแก้ไข hex ซึ่งเป็นซอฟต์แวร์ประเภทหนึ่งที่อนุญาตให้ผู้ใช้ดูและแก้ไขข้อมูลไบนารีดิบของไฟล์ ตัวแก้ไข Hex มักถูกใช้โดยโปรแกรมเมอร์ นักวิจัยด้านความปลอดภัย และผู้ใช้ด้านเทคนิคอื่นๆ เพื่อตรวจสอบเนื้อหาของไฟล์ในระดับต่ำ ซึ่งมีประโยชน์อย่างยิ่งสำหรับการวิเคราะห์ไฟล์ที่อยู่ในรูปแบบไบนารี เช่น ไฟล์เรียกทำงานหรือโค้ดที่คอมไพล์แล้วประเภทอื่นๆ

ImHex เป็นตัวแก้ไข hex แบบโอเพ่นซอร์สฟรีสำหรับ Windows และ Linux มีส่วนต่อประสานที่ใช้งานง่ายและคุณสมบัติที่หลากหลายที่ทำให้ใช้งานง่าย

คุณสมบัติหลักบางประการของ ImHex ได้แก่ การรองรับไฟล์ขนาดใหญ่ ฟังก์ชันการค้นหาและแทนที่ที่ยืดหยุ่น และความสามารถในการเปรียบเทียบไฟล์แบบเคียงข้างกัน ImHex ยังอนุญาตให้ผู้ใช้กำหนดประเภทข้อมูลของตนเอง ซึ่งจะเป็นประโยชน์สำหรับการตรวจสอบประเภทข้อมูลเฉพาะภายในไฟล์
ราแดร์2
Radare2 เป็นกรอบงานวิศวกรรมย้อนกลับแบบโอเพ่นซอร์สที่ใช้สำหรับการแยกส่วน วิเคราะห์ และดีบักไฟล์ไบนารี มันถูกเขียนด้วยภาษา C และพร้อมใช้งานสำหรับแพลตฟอร์มที่หลากหลาย รวมถึง Windows, Linux และ macOS
เครื่องมือนี้ถูกใช้อย่างแพร่หลายโดยนักวิจัยด้านความปลอดภัยเพื่อวัตถุประสงค์ที่หลากหลาย รวมถึงการทำวิศวกรรมย้อนกลับ การวิเคราะห์ช่องโหว่ และการพิสูจน์หลักฐาน มีอินเทอร์เฟซบรรทัดคำสั่งและเอ็นจิ้นการเขียนสคริปต์อันทรงพลังที่ช่วยให้ผู้ใช้สามารถทำงานที่ซับซ้อนโดยอัตโนมัติและเพิ่มขีดความสามารถของเครื่องมือ

Radare2 ยังมีตัวถอดแยกชิ้นส่วนที่สามารถใช้เพื่อแปลงรหัสไบนารีเป็นชุดคำสั่งที่มนุษย์อ่านได้ ทำให้เข้าใจการทำงานภายในของไฟล์ไบนารีได้ง่ายขึ้น
นำเสนอคุณสมบัติต่าง ๆ สำหรับการทำวิศวกรรมย้อนกลับ รวมถึงการสนับสนุนสถาปัตยกรรมและรูปแบบไฟล์ที่หลากหลาย ความสามารถในการวิเคราะห์แบบสแตติกและไดนามิก และการรวมเข้ากับเครื่องมืออื่น ๆ เช่น ตัวดีบั๊กและตัวแยกส่วน
ไอดีเอ โปร
IDA Pro (ย่อมาจาก Interactive Disassembler Pro) เป็นตัวแยกส่วนเชิงพาณิชย์และตัวดีบั๊กที่นักวิจัยด้านความปลอดภัยใช้กันทั่วไปในการวิเคราะห์โค้ดที่คอมไพล์แล้ว สามารถใช้เพื่อทำวิศวกรรมย้อนกลับไฟล์ปฏิบัติการและไฟล์ไบนารีอื่นๆ

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

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

สามารถถอดรหัสทรัพยากรในไฟล์ apk และสร้างการแสดงโค้ดและเนื้อหาของแอปที่มนุษย์อ่านได้
นอกจากนี้ยังสามารถใช้ Apktool เพื่อทำการวิเคราะห์ความปลอดภัยบนแอพ Android เนื่องจากช่วยให้ผู้ใช้สามารถตรวจสอบโค้ดและทรัพยากรของแอพได้ ซึ่งช่วยให้ผู้ใช้สามารถปรับเปลี่ยนรูปลักษณ์และลักษณะการทำงานของแอปได้
อย่างไรก็ตาม ผู้ใช้ควรเคารพสิทธิ์ในทรัพย์สินทางปัญญาของผู้พัฒนาแอพและใช้ Apktool เพื่อวัตถุประสงค์ทางกฎหมายและจริยธรรมเท่านั้น
edb-ดีบักเกอร์
EDB เป็นดีบักเกอร์แบบโอเพ่นซอร์สฟรีสำหรับ Linux, Windows และ macOS เป็นเครื่องมืออันทรงพลังที่สามารถใช้ในการวิเคราะห์และดีบักไฟล์ปฏิบัติการที่หลากหลาย รวมถึงไฟล์คลาส ELF, PE, Mach-O และ Java
EDB มีคุณสมบัติที่หลากหลายซึ่งทำให้เป็นเครื่องมือที่มีค่าสำหรับการพัฒนาซอฟต์แวร์และวิศวกรรมย้อนกลับ

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

JavaSnoop พร้อมใช้งานเป็นเครื่องมือแบบสแตนด์อโลนและเป็นปลั๊กอินสำหรับแพลตฟอร์มการทดสอบความปลอดภัยของแอปพลิเคชันเว็บ Burp Suite ที่เป็นที่นิยม มันถูกเขียนด้วย Java และสามารถทำงานบนแพลตฟอร์มใดก็ได้ที่รองรับ Java รวมถึง Windows, Linux และ macOS
คุณสมบัติหลักบางประการของ JavaSnoop รวมถึงความสามารถในการสกัดกั้นและแก้ไขการเรียกใช้เมธอด ดูและแก้ไขค่าของตัวแปร และกำหนด hooks แบบกำหนดเองเพื่อทำให้งานเป็นแบบอัตโนมัติ
บทสรุป
การทำวิศวกรรมย้อนกลับเป็นทักษะที่มีค่าสำหรับผู้เชี่ยวชาญด้านความปลอดภัย เพราะจะช่วยให้พวกเขาเข้าใจการออกแบบ การทำงานภายใน และการทำงานของผลิตภัณฑ์หรือระบบ เพื่อระบุและบรรเทาช่องโหว่หรือข้อบกพร่องที่อาจเกิดขึ้น
สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการระบุและบรรเทาช่องโหว่ซีโร่เดย์ ซึ่งเป็นช่องโหว่ที่ผู้ผลิตหรือผู้พัฒนาไม่รู้จักและยังไม่ได้รับการแก้ไข
การทำวิศวกรรมย้อนกลับอาจเป็นทักษะที่ท้าทายและซับซ้อนในการเรียนรู้ ถึงกระนั้นก็เป็นเครื่องมือที่มีค่าสำหรับผู้เชี่ยวชาญด้านความปลอดภัยที่ต้องการระบุและบรรเทาช่องโหว่ที่อาจเกิดขึ้นในแอปพลิเคชันและระบบซอฟต์แวร์
คุณอาจสนใจเรียนรู้เกี่ยวกับเครื่องมือวิเคราะห์และรวบรวม NetFlow ที่ดีที่สุดสำหรับเครือข่ายของคุณ