پیغام خطا

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls در menu_set_active_trail() (خط 2405 از /home/tamadonn/domains/tamadon.net/public_html/includes/menu.inc).

HP: آنالیز و تحلیل فنی آسیب پذیری SandWorm

سلام

HP Security Article: Technical analysis of the SandWorm Vulnerability (CVE-2014-4114)

گروه امنیتی iSight Partner بدافزاری را معرفی کرده است که گروه جاسوسی سایبری روسیه از آن استفاده می کردند. آسیب پذیری مورد استفاده این گروه CVE-2014-4114 است که مربوط به مشکلی در بسته های OLE در ویندوز شرکت مایکروسافت است. (مایکروسافت این مشکل را با MS14-060 منتشر کرده است.) من زمانی را صرف نگاه به درون و ماهیت این آسیب پذیری کردم و به نتایج جالبی رسیدم. اولا که این موضوع از نوع تخریب حافظه (memory corruption) نیست. دوم اینکه این آسیب پذیری فایل های باینری را از پاورپوینت و به وسیله ی کامپوننت OLEـه الصاق شده، اجرا می کند. قابلیت اجرا در آفیس مایکروسافت، باینری های مختلف با عملکردها و توابع بسیار زیادی است اما ظاهرا یکی از این عملکردها می تواند باعث ایجاد و صرف هزینه های امنیتی شود.

Sandworm

آسیب پذیری

فایل های مخرب در عمل، در فایل های (PPSX (Microsoft PowerPoint Slide Show یافت می شود. نکته جالب در خصوص این فایل این است که در صورت تغییر پسوند این فایل از PPSX به PPT، حمله هیچ وقت پیاده نخواهد شد. مورد بعدی این است که فایل های PPSX به صورت پایه ای، فایل zipای است که محتوای آن شامل فایل های مختلف XML است. درست مثل انواع دیگر فایل ها.

فایل ppt\slides\slide1.xml مشابه زیر دارای id با مقدار rld4 است. نام شی OLE مقدار Packet Shell Object است.

<p:oleObj spid="_x0000_s1026" name="Packager Shell Object" r:id="rId4" imgW="850320" imgH="686880" progId="Package"><p:embed/>

برای پی بردن به اینکه oleObject به کجا ارجاع داده شده است، فایل ppt\slides\_rels\slide1.xml.rels  را باز کردم و به idای با مقدار rld4 رسیدم.

<Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleO..." Target="../embeddings/oleObject1.bin"/></Relationships>

فایل oleObject.bin یک فایل از شی OLE است. شما می توانید از ابزار offVis از مایکروسافت استفاده کرده و آن را باز کنید و محتوای واقعی OLE را در جریان مشاهده کنید. این فایل به slide1.gif که در واقع یک فایل PE است، اشاره دارد.

fig 1
شکل اول- فایل oleObject.bin
 

شی بعدی نیز به آسانی و با جستجو در فایل های slide و rels قابل پیدا کردن است.

ppt\slides\slide1.xml:

<p:oleObj spid="_x0000_s1027" name="Packager Shell Object" r:id="rId5" imgW="850320" imgH="686880" progId="Package"><p:embed/>

محتوای فایل oleObject2.bin در شکل دوم قابل مشاهده است. این فایل به یک فایل INF درون یک فولدر به اشتراک گذاشته شده ی عمومی در اینترنت، اشاره دارد.

fig2
شکل دوم- فایل oleObject2.bin
 

Package Shell Object چیست؟ برای درج یک شی OLE می بایست از منوی Insert و سپس Object در پاورپوینت استفاده کرده و سپس Object type را از نوع Package انتخاب کنید.(شکل سوم). این کار یک مدخل Package Shell Object را در فایل پاورپوینت ایجاد می کند، مشابه آن چیزی که در فایل مخرب مشاهده کنید.

fig 3
شکل سوم- درج شی Package
 

با استفاده از این ویژگی، شما می توانید انواع مختلفی از فایل ها مثل فایل PE ر ا به آن الصاق کنید.(شکل چهارم) اگر یک فایل PE را درج کنید و روی شی دابل-کلیک کنید، به شما این هشدار را می دهد که فایلی که انتخاب کرده اید از نوع اجرایی است و اگر Ok را انتخاب کنید، در واقع فایل الصاق‌شده را اجرا می کند.

fig 4
شکل چهارم- الصاق فایل Notepad
 

معمولا این گونه به نظر می رسد که الصاق فایل object به صورت مستقیم، کاربر نهایی را دچار مشکل نمی کند اما ممکن است، در زمان هندل کردن فایل INF با مشکل روبرو شویم. اگر لینکی به یک فایل INF که در فایل PPSX درج شده، وجود داشته باشد، فایل INF باز خواهد شد و فورا از طریق برنامه ی نصب پیش فرض INF با نام InfDefaultInstall.exe اجرا می شود. (شکل پنجم) این رفتار به خودی خود شبیه یک آسیب پذیری نیست اما مشکل از آنجایی است که روند و پروسه ی نصب ممکن است بدون آگاهی (یا اجازه ی) کاربر اجرا شود.

fig 5
شکل پنجم- اجرای slide1.gif.exe
 

در ادامه بخشی از فایل slides.inf را مشاهده می کنید که شامل هسته ی اصلی اکسپلوییت است. بعد از تغییر نام slide1.gif به slide1.gif.exe به صورت نامحسوس آن را با استفاده از برنامه ی RunOnce اجرا می کند.

[DefaultInstall]
RenFiles = RxRename
AddReg = RxStart

 [RxRename]
slide1.gif.exe, slide1.gif

[RxStart]
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce,Install,,%1%\slide1.gif.exe

آیا این آسیب پذیری، یک سوء استفاده از یک ویژگی و امکان عادی است؟ با اعتماد کردن به یک فایل INF از یک منبع و سورس غیر قابل اعتماد، گپ و فاصله ای ایجاد می شود که هکر به وسیله ی آن می تواند فایل INF را به گونه ای اکسپلوییت کند که انواع کارهای خطرناک مثل تغییر نام فایل ها یا اجرای برنامه را به وسیله ی آن انجام دهد. این اعتماد، باعث آسیب پذیری است.

وصله و ترمیم

وصله ی این آسیب پذیری به چه شکل است؟ با استفاده از ابزار DrumGrim که کار مقایسه بین باینری ها را انجام می دهد، می توانید تغییرات اعمال شده در قبل-از-وصله و بعد-از-وصله را مشاهده فرمایید. فایل package.dll به روز شده است. شکل ششم و هفتم توابع مختلفی که دچار تغییر شده است را نمایش می دهد. یکی از این توابع CPackage::DoVerb است.

fig 6
شکل ششم-تغییرات باینری در package.dll
fig 7
شکل هفتم-تغییرات باینری package.dll
 

تابع CPackage::DoVerb در فراخوانی برنامه ی نصب پیش فرض INF با نامInfDefaultInstall.exe به کار می آید. علاوه بر آن سایر توابع نیز فایل های ناامنی که از راه دور گرفته می شوند را پوشش داده است. (شکل هفتم) تغییرات باعث این می شوندکه قبل از باز شدن یک فایل INF، پیام هشداری نمایش داده شود. (شکل هشتم) این پیام قبل از اجرای فایل INF شامل نام فایل و اطلاعات مربوط به ناشر (publisher) می باشد.

fig 8
شکل هشتم- هشدار قبل از باز شدن فایل INF
 

علاوه بر آن، حتی زمانی که روی Open کلیک کنید، اگر از فایل INF جهت اجرای یک فایل اجرایی استفاده شود، پیام هشدار دیگری نمایش داده می شود. (شکل نهم)

fig 9
شکل نهم- دومین هشدار قبل از باز شدن فایل exe
 

کاربر نهایی در دو موقعیت امکان جلوگیری از اقدام مخرب فایل PPSX را دارد. اگر چه که همیشه شانس این وجود دارد که کسی پیدا شود که روی هر دو دکمه کلیک کند و باعث اجرای فایل های مخرب شود.

نتیجه گیری

صادقانه می گویم: من هیچ وقت فکر نمی کردم که امکان اجرای فایل INF به صورت مستقیم، در پاورپوینت امکان پذیر باشد. اما می بینیم که این راه وجود دارد و می بایست دلیلی برای آن نیز وجود داشته باشد. وصله ی مایکروسافت به صورت کامل تمام این ویژگی را غیر فعال نکرده است اما قبل از اجرای فایل PE موانعی را برای اجرای آن قرار داده است. البته هنوز این شانس وجود دارد که از این روش و متدِ دریافت فایل EXE مخرب، توسط برنامه نویسان بدافزارها استفاده شود، البته میزان تاثیرگذاری این اکسپلوییت به صورت چشمگیری به دلیل نیاز به تعاملات بیشتر با کاربران کاهش یافته است.

بنابراین شاید تعداد زیادی از این امکانات بیشتر از چیزهای خوب باشد. درسی که از اینجا می گیریم این است که برنامه ی آفیس شامل ویژگی ها و امکانات زیادی است که برای اکثر ما ناآشناو جدید است و بعضی اوقات این به اصطلاح امکانات می توانند باعث مشکلاتی مثل اجرای بدافزارها شوند.

نویسنده: ohjeongwook@

لینک مقاله:

http://h30499.www3.hp.com/t5/HP-Security-Research-Blog/Technical-anal...

ترجمه توسط تمدن
تاریخ ساخت: October 20, 2014 یا ۲۸ مهر ۱۳۹۳
تاریخ تحقیق: October 28, 2014 یا ۶ آبان ۱۳۹۳