اکس‌کدگوست
اکس‌کدگوست (و نسخه XcodeGhost S) نسخه‌های اصلاح شده محیط توسعه نرم‌افزار اپل یعنی ایکس‌کد (Xcode) هستند که بدافزار در نظر گرفته می‌شوند. این نرم‌افزار اولین بار در سپتامبر ۲۰۱۵ مورد توجه گسترده قرار گرفت، زمانی که تعدادی از برنامه‌های تولیدشده در چین کد مخرب را در خود جای دادند. تصور می‌شد که این «اولین حمله گسترده به فروشگاه برنامه‌های اپل» باشد به نقل از بی‌بی‌سی(BBC) این مشکلات ابتدا توسط محققان علی‌بابا (Alibaba)، یک شرکت تجارت الکترونیک پیشرو در چین شناسایی شد، طبق چشم آتشین (FireEye)، بیش از ۴۰۰۰ برنامه آلوده شده بودند که بسیار بیشتر از ۲۵ موردی که اپل در ابتدا تأیید کرده‌است بود که شامل برنامه‌های تولیدشده در خارج از چین نیز می‌شد.
شرکت امنیتی Palo Alto Networks تصور کرد که از آنجا که سرعت شبکه در چین کندتر است، توسعه دهندگان این کشور به دنبال نسخه‌های محلی از محیط توسعه ایکس‌کد اپل (Apple Xcode) می‌گردند و با نسخه‌های تغییر یافته‌ای که در وب سایت‌های داخلی قرار داده شده مواجه می‌شوند. این دریچه ای را برای ورود بدافزار به برنامه‌های با مشخصات بالا که در دستگاه‌های آی او اس (iOS) استفاده می‌شود، باز کرد.
حتی دو ماه پس از گزارش‌های اولیه، شرکت امنیتی چشم آتشین (FireEye) گزارش داد که صدها شرکت هنوز از برنامه‌های آلوده استفاده می‌کنند و اکس‌کود‌گوست (XcodeGhost) همچنان «یک خطر امنیتی پایدار» است. این شرکت همچنین نوع جدیدی از بدافزار را شناسایی و آنرا اکس‌کدگوست اس (XcodeGhost S) لقب داده‌است. از جمله برنامه‌های آلوده، برنامه پیام رسان معروف وی‌چت (WeChat) و برنامه موسیقی نتیز ۱۶۳ (Netease Music 163) بودند.
در ۱۶ سپتامبر ۲۰۱۵، یک توسعه دهنده چینی iOS در شبکه اجتماعی شخصی خود (Sina Weibo) به این اشاره کرده‌است که یک بدافزار در ایکس‌کد (XCode)، کد شخص ثالث را به برنامه‌های کامپایل شده با آن تزریق می‌کند.
محققان مؤسسه علی بابا (Alibaba) اطلاعات دقیق مربوط به بدافزار را منتشر کرده‌اند و آنرا اکس‌کود‌گوست (XcodeGhost) نامیدند.
در ۱۷ سپتامبر ۲۰۱۵، شبکه پالو آلتو (Palo Alto Networks) چندین گزارش در مورد این بدافزار را منتشر کرد.
به دلیل سرعت کم بارگیری از سرورهای اپل، توسعه دهندگان iOS چینی ایکس‌کد (XCode) را از وب سایت‌های شخص ثالث مانند بایدا یون (Baidu Yun) (که اکنون Baidu WangPan نامیده می‌شود)، یک سرویس ذخیره‌سازی ابری که توسط بایدو (Baidu) میزبانی می‌شود، بارگیری می‌کنند یا از همکاران نسخه می‌گیرند. مهاجمان با توزیع نسخه‌های به خطر افتاده در چنین وب سایت‌های میزبان پرونده، از این وضعیت استفاده کردند.
مهاجم از حمله درب کامپایلر استفاده کرد. تازگی این حمله تغییر در کامپایلر ایکس‌کد (XCode) است. با این حال، طبق اسناد منتشر شده توسط ادوارد اسنودن، محققان امنیتی سی آی ای (CIA) از آزمایشگاه‌های ملی ساندیا (Sandia) ادعا کردند که آنها "یک نسخه اصلاح شده از ابزار توسعه نرم افزار اختصاصی اپل، ایکس‌کد (XCode)، ایجاد کرده‌اند که می‌تواند از پشت درهای نظارت به هر برنامه یا برنامه ای که با استفاده از این ابزار ایجاد می‌شود، مخفی شود. "
نسخه‌های شناخته شده اکس‌کود‌گوست (XcodeGhost) فایلهای اضافی به برنامه اصلی ایکس‌کد (XCode) اضافه می‌کنند:
اکس‌کود‌گوست (XcodeGhost) همچنین پیوند دهنده را تغییر داده تا فایلهای مخرب به برنامه وارد شده پیوند دهد. این مرحله در گزارش کامپایلر گزارش می‌شود اما در محیط توسعه یکپارچه ایکس‌کد ( Xcode IDE ) گزارش نمی‌شود.
هر دو برنامه iOS و OS X در معرض آسیب اکس‌کود‌گوست (XcodeGhost) هستند.
اکس‌کود‌گوست (XcodeGhost) لایه سرویس‌های هسته (CoreServices) را که شامل ویژگیها و چارچوبهای بسیار استفاده شده توسط برنامه است، به خطر انداخت. وقتی یک توسعه دهنده برنامه خود را با نسخه آسیب دیده برنامه ایکس‌کد (XCode) کامپایل می‌کند، سرویس‌های هسته (CoreServices) مخرب به‌طور خودکار و بدون اطلاع توسعه دهنده در برنامه ادغام می‌شود.
سپس پرونده‌های مخرب کد اضافی را در کلاس یوآی ویندو (UIWindow) و کلاس یوآی دیوایس (UIDevice) اضافه می‌کنند. کلاس یوآی ویندو (UIWindow) «شیئی است که نماهای نمایش داده شده توسط یک برنامه را بر روی صفحه دستگاه مدیریت و هماهنگ می‌کند».
کلاس یوآی دیوایس (UIDevice) فراهم می‌کند تک قلو به عنوان مثال به نمایندگی از دستگاه در حال حاضر. از این نمونه مهاجم می‌تواند اطلاعات مربوط به دستگاه مانند نام اختصاص داده شده، مدل دستگاه و نام و نسخه سیستم عامل را بدست آورد.
اکس‌کود‌گوست (XcodeGhost) از طریق دستوراتی که توسط مهاجم از سرور Command و Control از طریق HTTP ارسال می‌شود می‌تواند از راه دور کنترل شود. این داده‌ها با استفاده از الگوریتم DES در حالت ECB رمزگذاری می‌شوند. این حالت رمزگذاری نه تنها ضعیف شناخته شده‌است، بلکه می‌توان با استفاده از مهندسی معکوس کلیدهای رمزگذاری را نیز یافت. یک مهاجم می‌تواند یک شخص را در حمله وسط اجرا کند و ترافیک جعلی HTTP را به دستگاه منتقل کند (برای باز کردن یک جعبه گفتگو یا باز کردن برنامه خاص به عنوان مثال).