9 เครื่องมือวิศวกรรมย้อนกลับที่ดีที่สุดสำหรับมืออาชีพด้านความปลอดภัย

เผยแพร่แล้ว: 2022-12-13

การทำวิศวกรรมย้อนกลับคือกระบวนการวิเคราะห์ผลิตภัณฑ์หรือระบบเพื่อให้เข้าใจถึงการออกแบบ การทำงานภายใน และฟังก์ชันการทำงาน

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

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

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

วิศวกรรมย้อนกลับทำงานอย่างไร?

วิศวกรรมย้อนกลับทำงานอย่างไร

การทำวิศวกรรมย้อนกลับคือกระบวนการวิเคราะห์ระบบเพื่อทำความเข้าใจองค์ประกอบ หน้าที่ และการทำงานของระบบ เพื่อให้เข้าใจถึงวิธีการทำงานหรือสร้างสำเนาหรือเลียนแบบระบบ

การทำวิศวกรรมย้อนกลับใช้เพื่อระบุช่องโหว่หรือจุดอ่อนในระบบ สร้างระบบเวอร์ชันที่เข้ากันได้หรือทางเลือกอื่น และปรับปรุงตามการออกแบบดั้งเดิม

กระบวนการของวิศวกรรมย้อนกลับมักจะเกี่ยวข้องกับการแยกส่วนระบบหรืออุปกรณ์เพื่อทำความเข้าใจส่วนประกอบต่างๆ และวิธีการประกอบเข้าด้วยกัน สิ่งนี้อาจเกี่ยวข้องกับการแยกอุปกรณ์ทางกายภาพหรือวิเคราะห์รหัสและโครงสร้างของระบบซอฟต์แวร์

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

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

วัตถุประสงค์ของวิศวกรรมย้อนรอยในการรักษาความปลอดภัย

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

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

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

ขั้นตอนในการทำวิศวกรรมย้อนกลับ

ขั้นตอนในวิศวกรรมย้อนกลับ

การทำวิศวกรรมย้อนกลับมักเกี่ยวข้องกับขั้นตอนต่อไปนี้:

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

เริ่มต้นด้วย เครื่องมือวิศวกรรมย้อนกลับที่ดีที่สุด

กิดรา

Ghidra เป็นชุดเครื่องมือวิศวกรรมย้อนกลับ (SRE) ฟรีและโอเพ่นซอร์สที่พัฒนาโดยสำนักงานความมั่นคงแห่งชาติ (NSA) ใช้เพื่อแยกส่วน ถอดรหัส และวิเคราะห์รหัสไบนารี

Ghidra ได้รับการออกแบบให้เป็นเครื่องมือ SRE ที่แข็งแกร่งและปรับขนาดได้ และถูกใช้โดยทั้งหน่วยงานรัฐบาลและชุมชน SRE ที่กว้างขึ้น เครื่องมือนี้เผยแพร่สู่สาธารณะในปี 2019 และสามารถดาวน์โหลดและใช้งานได้ฟรี

กีดรา

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

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

อันโดรการ์ด

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

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

แอนโดรการ์ด

Androguard ถูกใช้อย่างกว้างขวางโดยนักวิจัยและผู้เชี่ยวชาญด้านความปลอดภัยเพื่อวิเคราะห์ความปลอดภัยของแอพ Android

นำเสนอคุณสมบัติที่หลากหลายสำหรับการทำวิศวกรรมย้อนกลับ รวมถึงการสนับสนุนรูปแบบไฟล์ที่หลากหลาย ความสามารถในการวิเคราะห์แบบคงที่และแบบไดนามิก และการรวมเข้ากับเครื่องมืออื่นๆ เช่น IDA Pro และ radare2

อิมเฮ็กซ์

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

อิมเฮ็กซ์-1

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

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

ราแดร์2

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

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

ราดาเระ2-1

Radare2 ยังมีตัวถอดแยกชิ้นส่วนที่สามารถใช้เพื่อแปลงรหัสไบนารีเป็นชุดคำสั่งที่มนุษย์อ่านได้ ทำให้เข้าใจการทำงานภายในของไฟล์ไบนารีได้ง่ายขึ้น

นำเสนอคุณสมบัติต่าง ๆ สำหรับการทำวิศวกรรมย้อนกลับ รวมถึงการสนับสนุนสถาปัตยกรรมและรูปแบบไฟล์ที่หลากหลาย ความสามารถในการวิเคราะห์แบบสแตติกและไดนามิก และการรวมเข้ากับเครื่องมืออื่น ๆ เช่น ตัวดีบั๊กและตัวแยกส่วน

ไอดีเอ โปร

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

ไอดาโปร

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

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

ฮิว

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

เฮ้

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

เครื่องมือ Apk

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

โดยทั่วไปจะใช้โดยนักพัฒนาและม็อดเดอร์ Android เพื่อปรับแต่งแอพ เช่นเดียวกับนักวิจัยด้านความปลอดภัยเพื่อทำการวิเคราะห์แบบคงที่บนแอพ Android

APKtool-1

สามารถถอดรหัสทรัพยากรในไฟล์ apk และสร้างการแสดงโค้ดและเนื้อหาของแอปที่มนุษย์อ่านได้

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

อย่างไรก็ตาม ผู้ใช้ควรเคารพสิทธิ์ในทรัพย์สินทางปัญญาของผู้พัฒนาแอพและใช้ Apktool เพื่อวัตถุประสงค์ทางกฎหมายและจริยธรรมเท่านั้น

edb-ดีบักเกอร์

EDB เป็นดีบักเกอร์แบบโอเพ่นซอร์สฟรีสำหรับ Linux, Windows และ macOS เป็นเครื่องมืออันทรงพลังที่สามารถใช้ในการวิเคราะห์และดีบักไฟล์ปฏิบัติการที่หลากหลาย รวมถึงไฟล์คลาส ELF, PE, Mach-O และ Java

EDB มีคุณสมบัติที่หลากหลายซึ่งทำให้เป็นเครื่องมือที่มีค่าสำหรับการพัฒนาซอฟต์แวร์และวิศวกรรมย้อนกลับ

edb-ดีบักเกอร์

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

EDB ยังช่วยให้ผู้ใช้สามารถตั้งค่าเบรกพอยต์ โค้ดแบบขั้นตอนเดียว และตรวจสอบค่าของตัวแปร ทำให้ง่ายต่อการวิเคราะห์และดีบักโปรแกรม

นอกจากนี้ EDB ยังรองรับสถาปัตยกรรมโปรเซสเซอร์และระบบปฏิบัติการที่หลากหลาย ทำให้เป็นเครื่องมืออเนกประสงค์ที่สามารถใช้กับแพลตฟอร์มที่หลากหลาย

ชวา สนูป

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

JavaSnoop ทำงานโดยแนบกับกระบวนการ Java ที่รันอยู่และแทรกโค้ดเข้าไป ทำให้ผู้ใช้สามารถปรับเปลี่ยนลักษณะการทำงานของแอปพลิเคชันได้ทันที สิ่งนี้มีประโยชน์สำหรับการระบุและทดสอบความปลอดภัยของแอปพลิเคชัน Java

javasnoop

JavaSnoop พร้อมใช้งานเป็นเครื่องมือแบบสแตนด์อโลนและเป็นปลั๊กอินสำหรับแพลตฟอร์มการทดสอบความปลอดภัยของแอปพลิเคชันเว็บ Burp Suite ที่เป็นที่นิยม มันถูกเขียนด้วย Java และสามารถทำงานบนแพลตฟอร์มใดก็ได้ที่รองรับ Java รวมถึง Windows, Linux และ macOS

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

บทสรุป

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

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

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

คุณอาจสนใจเรียนรู้เกี่ยวกับเครื่องมือวิเคราะห์และรวบรวม NetFlow ที่ดีที่สุดสำหรับเครือข่ายของคุณ