ชุมชน reverse engineering กำลังหารือกันอย่างกระตือรือร้นเกี่ยวกับการประยุกต์ใช้เครื่องมือที่ขับเคลื่อนด้วย AI ในการวิเคราะห์ binary code หลังจากการเปิดตัว GhidrAssistMCP ซึ่งเป็นส่วนขยายใหม่ที่เชื่อมต่อ Ghidra กับ large language models ผ่าน Model Content Protocol การพัฒนานี้ได้จุดประกายการสนทนาใหม่เกี่ยวกับประโยชน์และข้อจำกัดของการใช้ความช่วยเหลือจาก AI ในงานวิเคราะห์ด้านความปลอดภัยทางไซเบอร์
คุณสมบัติหลักของ GhidrAssistMCP :
- การรวมเข้ากับ MCP Server ด้วย official SDK
- การบันทึกและติดตามแบบเรียลไทม์
- การจัดการเครื่องมือแบบไดนามิกพร้อมการตั้งค่าแบบถาวร
- เครื่องมือวิเคราะห์กว่า 25 ตัวที่ครอบคลุมฟังก์ชัน ข้อมูล และการอ้างอิงข้าม
- UI ที่ปรับแต่งได้สำหรับการเลือกเครื่องมือและการติดตามกิจกรรม
- รองรับ Ghidra เวอร์ชัน 9.1.x และใหม่กว่า
ผลลัพธ์ที่หลากหลายในการประยุกต์ใช้จริง
สมาชิกในชุมชนรายงานประสบการณ์ที่แตกต่างกันเมื่อนำ AI มาผสานเข้ากับขั้นตอนการทำงาน reverse engineering ของพวกเขา ผู้ปฏิบัติงานบางคนประสบความสำเร็จในการใช้โมเดล AI ในเครื่องสำหรับงานเฉพาะ โดยเฉพาะในการระบุฟังก์ชันที่น่าเบื่อหน่าย เช่น soft float implementations และฟังก์ชันไลบรารีพื้นฐาน อย่างไรก็ตาม เทคโนโลยีนี้แสดงข้อจำกัดที่ชัดเจนเมื่อจัดการกับงานวิเคราะห์ที่ซับซ้อนมากขึ้น
วิศวกร reverse engineering ที่มีประสบการณ์คนหนึ่งได้กล่าวถึงความท้าทายที่สำคัญเมื่อพยายามใช้ AI สำหรับการสร้างโครงสร้างอัตโนมัติจากรูปแบบโค้ด โดยอธิบายผลลัพธ์ว่าล้มเหลวอย่างสิ้นเชิง สิ่งนี้เน้นย้ำถึงข้อจำกัดสำคัญที่เครื่องมือ AI เก่งในการจดจำรูปแบบสำหรับประเภทโค้ดที่รู้จัก แต่ประสบปัญหากับการวิเคราะห์โครงสร้างใหม่ๆ
หมวดหมู่เครื่องมือวิเคราะห์ที่มีให้ใช้งาน:
- การวิเคราะห์โปรแกรม: get_program_info, list_functions, list_data, list_strings, list_imports/exports
- การวิเคราะห์ฟังก์ชัน: decompile_function, disassemble_function, search_functions, rename_function
- ตำแหน่งและการนำทาง: get_current_address, xref_to/from functions
- การวิเคราะห์ขั้นสูง: auto_create_struct สำหรับการสร้างโครงสร้างอัตโนมัติ
- เครื่องมือระบุตัวตน: เปลี่ยนชื่อฟังก์ชัน/ตัวแปร กำหนดประเภทข้อมูลและลายเซ็นฟังก์ชัน
ปัญหาของ Mental Model
ความกังวลที่สำคัญที่เกิดขึ้นจากการหารือในชุมชนมุ่งเน้นไปที่ความเสี่ยงของการสูญเสียความเชี่ยวชาญในสาขาเมื่อพึ่งพาความช่วยเหลือจาก AI มากเกินไป กระบวนการ reverse engineering แบบดั้งเดิมสร้าง mental models ที่สำคัญของระบบเป้าหมาย และมีความตระหนักที่เพิ่มขึ้นว่าการมอบหมายงานให้ AI มากเกินไปอาจทำลายกระบวนการเรียนรู้นี้
คุณได้เป้าหมายในสิ่งที่คนส่วนใหญ่พลาดเกี่ยวกับ LLMs ส่วนหนึ่งของงานคือการสร้าง mental model ของระบบที่คุณกำลังทำงานด้วย เมื่อ LLM ทำงานแทน มันจะกลายเป็นเรื่องง่ายที่จะพลาด mental model นั้น
ข้อมูลเชิงลึกนี้สะท้อนความกังวลในวงกว้างเกี่ยวกับการรักษาทักษะทางเทคนิคขณะใช้ประโยชน์จากเครื่องมือ AI ลักษณะ ใช้หรือเสีย ของความเชี่ยวชาญ reverse engineering ทำให้เรื่องนี้เกี่ยวข้องโดยเฉพาะสำหรับผู้ปฏิบัติงานที่กลับมาสู่สาขานี้หลังจากหยุดพักเป็นเวลานาน
แนวทางการผสานเชิงกลยุทธ์
แม้จะมีข้อจำกัด สมาชิกชุมชนจำนวนมากสนับสนุนการผสาน AI แบบเป้าหมายแทนการแทนที่การวิเคราะห์ของมนุษย์ทั้งหมด การประยุกต์ใช้ที่ประสบความสำเร็จมากที่สุดดูเหมือนจะมุ่งเน้นไปที่การทำงานประจำให้เป็นแบบอัตโนมัติ เช่น การระบุฟังก์ชันและการใส่หมายเหตุโค้ดพื้นฐาน ขณะที่รักษาการดูแลของมนุษย์สำหรับงานวิเคราะห์ที่ซับซ้อน
เครื่องมือ GhidrAssistMCP แสดงถึงแนวทางที่สมดุลนี้โดยการให้ความช่วยเหลือจาก AI ที่กำหนดค่าได้ซึ่งสามารถเปิดใช้งานแบบเลือกสรรสำหรับงานวิเคราะห์เฉพาะ สิ่งนี้ช่วยให้ผู้ปฏิบัติงานรักษาการควบคุมขั้นตอนการทำงานของตนขณะได้รับประโยชน์จากความสามารถของ AI ในที่ที่เหมาะสม
สถาปัตยกรรมทางเทคนิค:
- โปรโตคอล: HTTP พร้อม Server Sent Events (SSE) สำหรับการสื่อสารแบบสองทิศทาง
- พอร์ตเริ่มต้น: 8000
- การพึ่งพา: MCP SDK 1.4.1+, Gson, Jackson 2.11.2, Ghidra API
- ความปลอดภัยของเธรด: การจัดการ Swing EDT อย่างเหมาะสมสำหรับการดำเนินการ UI
- การจัดการธุรกรรม: การดำเนินการฐานข้อมูลที่ปลอดภัยพร้อมการสนับสนุนการย้อนกลับ
ผลกระทบในอนาคตสำหรับการวิจัยด้านความปลอดภัย
การหารือขยายไปเกินกว่าความสามารถปัจจุบันไปสู่การพัฒนาที่อาจเกิดขึ้นในอนาคต รวมถึงความเป็นไปได้ของการใช้ embeddings จาก open-source code repositories เพื่อระบุฟังก์ชันไลบรารีโดยอัตโนมัติและคืนค่าชื่อตัวแปรเดิม ความก้าวหน้าดังกล่าวสามารถปรับปรุงกระบวนการ reverse engineering อย่างมีนัยสำคัญ โดยเฉพาะสำหรับ binaries ที่มีส่วนประกอบ open-source จำนวนมาก
การพัฒนาที่กำลังดำเนินอยู่แสดงให้เห็นว่าการผสาน AI ใน reverse engineering น่าจะเป็นไปตามแบบจำลองการเสริมแรงมากกว่าการแทนที่ โดยเครื่องมือจะทำหน้าที่เป็นผู้ช่วยที่ซับซ้อนที่จัดการงานประจำ ขณะที่ผู้เชี่ยวชาญมนุษย์มุ่งเน้นไปที่การวิเคราะห์ที่ซับซ้อนและการตัดสินใจเชิงกลยุทธ์
อ้างอิง: GhidrAssistMCP