GHIDRA

آژانس امنیت ملی ایالات‌متحده در تاریخ ۶ مارس ۲۰۱۹ نهایتاً نسخه ۹٫۰ از نرم‌افزار GHIDRA را به‌صورت رایگان منتشر کرد، این ابزار مهندسی معکوس نرم‌افزاری است که توسط کارشناسان این آژانس بیش از یک دهه برای پیدا کردن اشکالات امنیتی در نرم‌افزارها و برنامه‌های کاربردی استفاده می‌شده است.

GHIDRA یک framework مهندسی معکوس مبتنی بر جاوا است که دارای یک رابط کاربری گرافیکی (GUI) است و به‌گونه‌ای طراحی شده است تا در سیستم‌عامل‌های مختلف مانند ویندوز، macOS و لینوکس اجرا شود.

مهندسی معکوس یک برنامه یا نرم‌افزار به معنی تجزیه برنامه یا نرم‌افزار موردنظر است، یعنی تبدیل دستورات دودویی به کد مونتاژ درزمانی که منبع کد آن در دسترس نیست، این روش به مهندسان نرم‌افزار کمک می‌کند، به‌خصوص به تحلیلگران دژافزارها، که عملکرد کد موردنظر را درک کنند و اطلاعات واقعی طراحی و پیاده‌سازی را به دست آورند.

وجود این ابزار برای اولین بار توسط ویکی‌لیکس[۱] در CIA Vault 7 منتشر شد[۲]، اما NSA امروز این ابزار را به‌صورت رایگان در کنفرانس RSA منتشر کرد و آن را جایگزین خوبی برای ابزارهای مهندسی معکوس تجاری مانند IDA-Pro می‌کند.

سایت رسمی NSA در ارتباط با انتشار این ابزار گفت[۳]: “این ابزار به تجزیه‌وتحلیل کدهای موذی و تروجان‌ها مانند ویروس‌ها کمک می‌کند و متخصصان امنیت اطلاعات را در درک بهتر آسیب‌پذیری‌های احتمالی در شبکه‌ها و سیستم‌های خود یاری می‌کند.”

دانلود GHIDRA ابزار مهندسی معکوس نرم‌افزارها

  • Github – منبع کد (به‌زودی در دسترس خواهد بود)[۴]
  • دانلود GHIDRA 9.0 – بسته نرم‌افزاری، اسلایدها و تمرینات[۵]
  • راهنمای نصب – مستندات اساسی استفاده[۶]
  • صفحه تقلب – میانبرهای صفحه‌کلید[۷]
  • ردیاب مشکلات – اشکالات گزارش‌شده[۸]

در سخنرانی کنفرانس RSA، مشاور ارشد NSA یعنی Robert Joyce اطمینان داد که این ابزار شامل هیچ در پشتی نمی‌باشد و می‌گوید: “این آخرین جایی است که می‌خواهید یک نرم‌افزار را همراه با یک در پشتی منتشر کنید، آن‌ها شما را شکار خواهند کرد!”

Joyce همچنین گفت که GHIDRA شامل تمام ویژگی‌های مورد انتظار در ابزارهای تجاری نهایی است، باقابلیت‌های جدید و گسترش‌یافته NSA به‌طور منحصربه‌فرد توسعه یافته و از مجموعه‌های مختلف دستورالعمل‌های پردازنده و فرمت‌های اجرایی را پشتیبانی می‌کند و می‌تواند در هر دو حالت کاربر تعاملی و خودکار اجرا شود[۹].

Joyce دراین‌باره توییت کرده است[۱۰]: “ماژول‌های پردازنده این ابزار شامل: X86 16/32/64 ،ARM/AARCH64 ،PowerPC 32/64 ،VLE ،MIPS 16/32/64، میکرو، ۶۸xxx ،Java/DEX bytecode ،PA-RISC، PIC 12/16/17/18/24، Sparc 32/64 ،CR16C ،Z80 ،۶۵۰۲ ،۸۰۵۱ ،MSP430، AVR8، AVR32 هستند و انواع دیگر را نیز شامل می‌شود.”

اولین اشکال گزارش‌شده در ابزار مهندسی معکوس GHIDRA

GHIDRA توسط انجمن Infosec پذیرفته شده است و محققان و توسعه‌دهندگان در حال حاضر، مشارکت در این پروژه را با گزارش اشکالات و حفره‌های امنیتی در بخش ردیاب مشکلات در Github آغاز کرده‌اند[۱۱].

Matthew Hickey، که از نام مستعار آنلاین HackerFantastic استفاده می‌کند؛ اولین کسی است که در مورد یک مسئله امنیتی در GHIDRA گزارش داده است[۱۲].

Hickey متوجه شد که پورت ۱۸۰۰۱ اشکال‌زدایی JDWP مهندسی معکوس برای تمام رابط‌ها زمانی که یک کاربر این ابزار را در حالت اشکال‌زدایی راه‌اندازی می‌کند، اجازه می‌دهد هر کس در داخل شبکه و از راه دور کد دلخواه خود را در سیستم تحلیل‌گر اجرا کند.

اگرچه حالت اشکال‌زدایی به‌طور پیش‌فرض فعال نمی‌شود، اما نرم‌افزار باید فقط به اشکال‌زدایی اتصالات از localhost گوش فرا دهد، نه هر دستگاهی که در شبکه وجود دارد.

با توجه به گفته Hickey، این مسئله را می‌توان تنها با تغییر یک خط از کد در این نرم‌افزار برطرف کرد.

منابع

[۱] https://wikileaks.org/ciav7p1/cms/page_51183656.html

[۲] https://thehackernews.com/2017/08/cia-liaison-spying-software.html

[۳] https://www.nsa.gov/resources/everyone/ghidra/

[۴] https://github.com/NationalSecurityAgency/ghidra

[۵] https://ghidra-sre.org

[۶] https://ghidra-sre.org/InstallationGuide.html

[۷] https://ghidra-sre.org/CheatSheet.html

[۸] https://github.com/NationalSecurityAgency/ghidra/issues

[۹] https://twitter.com/RGB_Lights/status/1103019876203978752

[۱۰] https://youtu.be/xDyLy0zLV7s

[۱۱] https://github.com/NationalSecurityAgency/ghidra/issues

[۱۲] https://static.hacker.house/releasez/expl0itz/jdwp-exploit.txt

[۱۳] https://thehackernews.com/2019/03/ghidra-reverse-engineering-tool.html