فا

‫ اخبار

صفحات: «« « ... 3 4 5 6 7 ... » »»
نتایج جستجو براساس برچسب: "هشدارها و راهنمایی امنیتی"
تروجان اندرویدی: Android Xiny

بدافزار خانواده Android.Xiny یک تروجان جدید است که برای دانلود و حذف برنامه های مختلف بر روی گوشی موبایل قربانی طراحی شده است. این بدافزار برای سیستم عامل اندروید که محبوب ترین سیستم عامل موبایل در دنیا است توسعه داده شده است. این تروجان این قابلیت را دارد که پروسه های در حال اجرای سیستم را مورد هدف قرار دهد و پلاگین های مخربی را دانلود و به درون برنامه ها تزریق کند. این پلاگین ها برای سرقت اطلاعات کاربران استفاده می شود.

اولین بار تیم امنیتی Dr.Web این تروجان را مشاهده نمود. این تروجان از طریق برنامه هایی که از وبسایت های گوناگون قابل دانلود هستند انتقال می یابد. حتی جدیدا از طریق فروشگاه اصلی گوگل پلی نیز این تروجان به گوشی کاربران انتقال خواهد یافت. گزارش شده است که حدود 60 برنامه از فروشگاه اصلی گوگل پلی آلوده به این تروجان هستند.

4 دی 1395 برچسب‌ها: هشدارها و راهنمایی امنیتی
ابزار‌های اینترنت اشیاء، سربازان جدید سنگین‌‌ترین حملات اینترنتی

حملات اینترنتی اخیری که قالباً به صورت حملات منع دسترسی توزیع‌شده (DDOS) در سطح اینترنت انجام شده و رکورد بزرگترین حملات اینترنتی از نوع DDOS را به اسم خود ثبت کرده، یک بازیکن اصلی دارد. پشت همه حمله‌های اخیر، یک بات‌نت به اسم میرای (Mirai) قرار دارد که ابزار‌های اینترنت اشیاء (Internet Of Things) را هدف گرفته است. میرای با تحت دسترسی گرفتن ابزار‌های اینترنت اشیاء، از آن‌ها به عنوان سربازانی برای انجام حملات منع دسترسی توزیع شده با حجم بالا استفاده می‌کند.

شرح خبر

حمله به سرور‌های شرکت Dyn که یک ارائه‌دهنده خدمات DNS معتبر است و بسیاری از وب‌سایت‌های مهم نظیر Twitter، Spotify، Reddit، Box، Github، PayPal و Pinterest از این سرویس‌دهنده استفاده می‌کنند، بسیاری از کارشناسان و متخصصان را بیش از پیش متوجه پتانسیل انجام این حملات و خرابکاری‌های این چنینی کرد. این حمله که بعضی از کارشناسان از آن به عنوان قطع شدن نیمی از اینترنت یاد می‌کنند، بزرگترین حمله‌ای بود که اینترنت تا به حال به خود دیده است. رد پای بات‌نت‌های Mirai در این حمله پر رنگ بود و سهم عظیمی از این حمله به عهده ابزار‌های تسخیر شده توسط این بات‌نت انجام شد. این حملات بیش از پیش کارشناسان را متوجه مسائل امنیتی ابزار‌های اینترنت اشیاء کرد.

کارشناسان معتقدند که بات‌نت‌های میرای توانایی انجام حمله منع دسترسی توزیع‌شده تا حجم 10 ترابیت بر ثانیه (10 Tbps) را دارند. این چنین حملاتی توانایی آن را دارند که اینترنت یک کشور را به طور کامل از دسترس خارج کنند. حمله‌ای که هفته پیش بر علیه کشور لیبریا رخ داد و کل اینترنت این کشور افریقایی را مختل نمود، یکی دیگر از این نمونه حمله‌ها با استفاده از ابزار‌های اینترنت اشیاء بود. البته حجم این حمله (500 Gbps) به اندازه حجم حمله به سیستم DNS دو هفته گذشته (1 Tbps) نبود.

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

امنیت پایین ابزار‌های اینترنت اشیاء آن‌ها را به هدف‌های ساده‌ و قربانیانی مطلوب برای بد‌افزار‌ها تبدیل کرده است. حتی این ابزار‌ها گاهی متوجه آن نمی‌شوند که مورد حمله واقع شده و تسخیر شده‌اند. هکر‌ها اکنون از امنیت بسیار پایین ابزار‌های اینترنت اشیاء و تنظیمات امنیتی ضعیف آن‌ها آگاهند (که غالباً همان تنظیمات پیش‌فرض کارخانه هستند) و از آن‌ها در راستای رسیدن به اهداف خود استفاده می‌کنند. به عنوان مثال با یک جدول شامل نام کاربری و کلمه عبور‌های تعیین شده به صورت پیش‌فرض برای ابزار‌های اینترنت اشیاء سعی در نفوذ به این ابزار‌ها دارند.

در ابتدا تصور می‌شد که حملات علیه ابزار‌های اینترنت اشیاء با هدف به دست گرفتن سیستم‌های اتوماسیون خانه‌ها و اختلال در امنیت خانه‌ها باشد؛ ولی حملات اخیر نشان داده که حمله‌کنندگان کمتر به این مورد تمایل دارند. حمله‌کنندگان بیشتر تمایل به تسخیر ابزار‌های اینترنت اشیاء برای اضافه کردن آن‌ها به یک بات‌نت برای انجام حملات بزرگ منع دسترسی توزیع‌شده دارند.

تنها در ماه گذشته چند حمله گسترده منع دسترسی توزیع شده (DDoS) با مشارکت ابزار‌های تسخیر شده اینترنت اشیاء انجام شده است؛ این حملات بر خلاف معمول، از چند پلتفرم مختلف انجام شده و نشان می‌دهد که در آینده شاهد حملات بیشتری با مشارکت پلتفرم‌های مختلف خواهیم ‌بود.

بیشتر بد‌افزار‌ها سیستم‌های ساده را هدف قرار می‌دهند. این سیستم‌ها به اینترنت متصل هستند ولی به دلیل محدودیت انرژی و قدرت پردازش، امنیت بالایی ندارند.

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

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

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

19 آبان 1395 برچسب‌ها: هشدارها و راهنمایی امنیتی
نقص امنیتی در پیاده‌سازی پروتکل TCP در سیستم‌های لینوکس و امکان سرقت ترافیک اینترنتی کاربران

یک آسیبپذیری جدی و مهم در پیادهسازی TCP در سیستمهای لینوکس کشف شده که در واقع از سال 2012 گسترش یافته است (از نسخه کرنل لینوکس 3.6 به بعد). این آسیبپذیری میتواند توسط مهاجمان برای شناسایی میزبانهایی به‌کار گرفته شود که روی این پروتکل ارتباط برقرار میکنند. در نهایت این حمله میتواند منجر به بهرهبرداری از ترافیک میزبان گردد.

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

پژوهشگران دانشگاه ریورساید ایالت کالیفرنیا و آزمایشگاه تحقیقاتی ارتش آمریکا در مقالهای تحت عنوان “Off-Path TCP Exploits: Global Rate Limit Considered Dangerous” به شرح این آسیبپذیری پرداخته‌اند و در همایش امنیتی USENIX نشان دادند که چگونه میتوان به دو میزبان که از طریق پروتکل TCP با یکدیگر در ارتباط میباشند، حمله نمود و در آخر توصیههایی را برای چگونگی کاهش اثرات آن ارائه دادهاند.

Zhiyun Qian استادیار علوم کامیپیوتر در دانشگاه کالیفرنیا و یکی از نویسندگان مقاله مذکور در این خصوص میگوید: "وصلههایی برای این آسیبپذیری در کرنل لینوکس جاری توسعه یافته‌اند. Qian و محققان همکار وی از جمله Yue Cao Zhongjie Wang ، Tuan Dao ، Srikanth V.Krishnamurthy و Lisa M.Marvel وصلهای را برای سرویسگیرندگان و میزبانهای سرویسدهنده توسعه داده‌اند که چالش محدودیت نرخ ACK را برای مقادیر بزرگ ایجاد مینماید که باعث میشود بهرهبرداری از آن دشوارتر گردد".

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

Qian در یک بیانیهای که توسط دانشگاه منتشر گردیده، گفته است: "جنبهی منحصربه فرد این حمله در قابلیت بسیار پایین لازم برای انجام آن است. اصولاً این حمله به راحتی توسط هر فردی در هر جایی از دنیا که ماشینی در یک شبکه داشته باشد و قابلیت Spoofing IP را دارا باشد، قابل انجام است. فقط بخشی از اطلاعات مورد نیاز، جفت آدرسهای IP (برای سرویسگیرنده و سرویسدهنده) میباشد که آن‌ها نیز به آسانی به‌دست خواهند آمد".

آسیبپذیری پیادهسازیTCP (CVE-2016-5696) میتواند تعداد زیادی از تجهیزاتی که از سیستم‌عامل لینوکس استفاده می‌کنند (از قبیل کامپیوترهای شخصی، گوشیهای موبایل و موارد دیگر) را تحت تأثیر قرار دهد.

محققان اعلام نمودهاند که این حمله میتواند در کمتر از یک دقیقه انجام پذیرد و بنا به تجربه آنها افراد متخصص در حوزه امنیت و یا دانشگاهیان در حدود 88 الی 97 درصد موفق بودهاند.

محققان در مقاله خود نوشتند: "به‌طور خلاصه، این آسیبپذیری امکانی را برای یک مهاجم خارج از مسیر فراهم میآورد تا پی ببرد که آیا هر دو میزبان مورد نظر در اینترنت با استفاده از یک اتصال TCP ارتباط برقرار نمودهاند یا خیر. علاوهبراین در صورتیکه اتصال وجود داشته باشد، این مهاجم خارج از مسیر می‌تواند Sequence Number مورد استفاده در TCP را برای هر دو طرف ارتباط استنباط نماید. این مورد به نوبه خود به مهاجم اجازه میدهد تا ارتباط را خاتمه داده و حملات تزریق داده را انجام دهد".

لازم به ذکر است که معمولاً پروتکل TCP پیام‌ها را به تعدادی بسته با شماره‌های ترتیب خاص تبدیل می‌کند و به سمت گیرنده ارسال می‌نماید. پس از آن در سمت گیرنده بسته‌ها با توجه به شماره‌ها به یکدیگر متصل شده و پیام اصلی بازیابی می‌شود. محققان دریافته‌اند که با استفاده از حملاتside channel می‌توان شماره بسته‌های TCP را در۱۰ ثانیه اول ارتباط فقط با داشتن آدرس IP طرفین ارتباط حدس زد. این کار بدین معنی است که بدون اجرای حمله مردی در میان می‌توان بسته‌های TCP را شنود و یا تزریق کرد. از این جهت حملات احتمالی ناشی از این اشکال از سوی پژوهشگران یک حمله مردی در میان محسوب نمیشود، چرا که نفوذگر در آن تنها باید بخشهای مخربی را به دوسوی ارتباط ارسال نماید و این امر به راحتی با دانستن نشانی آدرس IP آنها و پورت مقصد به آسانی امکانپذیر است.

محققان در ادامه نوشتهاند که این حملات میتوانند ترافیک به ظاهر رمزگذاری شده از جمله ارتباط میان شبکه Tor را نیز مختل نماید و یا حتی از بین ببرد.

پژوهش جدید انجام شده فرضیات قبلی را زیر سوال برده است، چرا که فرضیات قبلی در این زمینه اذعان میکردند که یک مهاجم بدون قرار گرفتن در یک موقعیت فردی در میان (Man-in-the-Middle) بهراحتی نمیتواند مشخص نماید که آیا هر دو انتهای یک نشست از طریق یک اتصال TCP ارتباط برقرار نمودهاند و بنابراین وی نمیتواند ترافیک را سرقت یا دستکاری نماید.

“off-path attack” یا حمله خارج از مسیر میتواند تعیین نمایند که آیا میزبانها در حال استفاده از اتصالات TCP هستند و سپس شماره پورتهای این اتصالات را نیز مشخص مینماید. این حمله به شخص خارج از مسیر اجازه میدهد تا شماره ترتیب TCP یا (TCP Sequences number) را استنباط نماید و سپس اکسپلویتهایی را تزریق کند و یا جریان ترافیک را خاتمه دهد.

محققان نوشتند: "ما تأکید مینماییم که این حمله صرفاً توسط مهاجم خارج از مسیر که به اصطلاح به آن off the path گفته میشود، بدون اجرای کد بدخواه بر روی ارتباط سرویسگیرنده یا سرویسدهنده قابل انجام است. این حملات در مقیاس وسیع میتواند آثار جدی برامنیت و محرمانگی اینترنت داشته باشد".

محققان اظهار داشتهاند که این مشکل مربوط به پاسخهای چالش آفرین ACK و تحمیل محدودیت نرخ سراسری بر بستههای کنترل TCP است. "در سطح بسیار بالا، این آسیبپذیری به مهاجم اجازه میدهد، رقابتی را بر سر یک منبع مشترک ایجاد نماید؛ یعنی نرخ سراسری شمارنده را در سیستم هدف از طریق ارسال بستههای دستکاری شده محدود مینماید. سپس مهاجم میتواند اثر ایجاد شده بر تغییر شمارنده را که از طریق ردیابی بستهها قابل اندازهگیری است، مشاهده کند".

"از طریق آزمایشهای وسیع نشان داده میشود که این حمله بینهایت مؤثر و قابل اطمینان است. در این شرایط تعیین اینکه آیا دو میزبان در حال برقراری ارتباط هستند، تنها 10 ثانیه طول میکشد. اگر اتصالی وجود داشته باشد، متعاقباً فقط چندتا ده ثانیه طول میکشد تا شماره ترتیبهای TCP به‌کار رفته در اتصال تعیین شود".

راه حل

همان‌طورکه گفته شد، برای خنثی سازی این حملات میبایست حد مربوط به نرخ ACK را در سیستم‌های لینوکسی به مقدار بالایی تغییر داد. برای این‌کار کافی است که در فایل Sysctl.conf که در شاخه etc میباشد، مقدار رشته زیر اضافه گردد:

net.ipv4.tcp_challenge_ack_limit = 999999999

پس از تغییرات انجام شده، باید قانون جدید ایجاد شده را با دستور زیر فعال نمود:

sysctl -p

یا به‌طور کلی از دستور زیر استفاده نمود:

echo 'net.ipv4.tcp_challenge_ack_limit = 999999999' >>/etc/sysctl.conf;sysctl -p

9 شهریور 1395 برچسب‌ها: هشدارها و راهنمایی امنیتی
بررسی سه آسیب پذیری مهم در سیستم مدیریت محتوا Drupal

1 ماژول Webform Multiple File Upload

::: معرفی
::: پروژه: Webform Multiple File Upload (ماژول/ افزونه)
::: آسیب‌پذیری: اجرای کد PHP دلخواه (Remote Code Execution)
::: شماره گزارش آسیب پذیری: SA-CONTRIB-2016-040

::: توضیحات
ماژولِ Webform Multiple File Upload به کاربر اجازه می‌دهد تا چندین فایل را در یک فرم تحت وب آپلود کند. این ماژول یک آسیب‌پذیریِ اجرای کد از راه دور(RCE) دارد؛ آن‌جا که محتوای فرم از حالت serialized خارج می‌شود و در نتیجه ورودی‌های خاصی که ممکن است ارسال شوند، می‌توانند به اجرای کد PHP با توجه به libraryهای در دسترس روی سایت منجر شوند.
این آسیب‌پذیری با این واقعیت پیوند خورده است که نفوذگر می‌بایستی امکان این را داشته باشد تا فرمی که حاویِ ورودیِ Multiple File Upload است را ارسال کند. همین‌طور، سایت باید یک Object با روشی روی wake یا destroy کدِ include شده که می‌تواند برای مقاصد نامناسب استفاده شود، تعریف داشته باشد. هسته‌ی دروپال7 یک کلاس به این شکل داراست که می‌تواند برای حذفِ فایل‌های دلخواه استفاده گردد، اما کلاس‌های شخصی‌سازی شده، ممکن است حاوی متدهایی باشند که می‌توانند برای باگ RCE مورد استفاده قرار گیرند.

نکته: این آسیب‌پذیری در ماژولِ Webform Multiple File Upload(webform_multifile) وجود دارد. یک ماژول با نام مشابهی نیز وجود دارد Webform Multiple File(webform_multiple_file) که این مشکل را دارا نیست.

::: نسخه های تحت تأثیر
هسته‌ی دروپال تحت تاثیر این آسیب‌پذیری نیست. اگر شما از ماژول Webform Multiple File Upload استفاده نمی‌کنید، نیازی به انجام کاری نیست. اما نسخه آسیب پذیر این ماژول عبارتند از:
• Webform Multifile 7.x-1.x versions prior to 7.x-1.4

::: راه حل
آخرین نسخه را نصب کنید. اگر از ماژول Webform Multifile برای دروپال نسخه 7.x استفاده می‌کنید، به Webform Multiple File Upload نسخه‌ ی 7.x-1.4 آپدیت کنید.

 گزارش شده توسط Ben Dougherty
 حل شده توسطJelle Sebreghts و Peter Droogmans از پشتیبانی ماژول دروپال
 یافتن باگ در کد توسطBen Dougherty و Greg Knaddison از تیم امنیتی دروپال


2 ماژول Coder

::: معرفی
::: پروژه: Coder(ماژولِ افزودنی)
::: آسیب‌پذیری: اجرای کد PHP دلخواه (Remote Code Execution)
::: شماره گزارش آسیب پذیری: SA-CONTRIB-2016-040

::: توضیحات
ماژول Coder کدِ دروپالِ شما را برای استانداردها و دیگر بهینه‌سازی‌ها چک می‌کند. همانطور می‌تواند اشتباهات استانداردهای کدنویسی را نیز تصحیح کند و روی ماژول‌ها، یک‌سری بهینه‌سازی اساسی انجام دهد.
این ماژول به صورتِ صحیح، ورودی‌های کاربر را در فایل اسکریپتی که پسوندِ PHP دارد بررسی نمی‌کند. یک کاربرِ Login نکرده و یا نفوذگر می‌تواند به صورت مستقیم به این فایل درخواست فرستاده و کد PHP دلخواه اجرا کند.
هیچ فاکتورِ محدودکننده‌ای وجود ندارد. ماژول حتی نیاز به فعال بودن برای اکسپلویت‌شدن ندارد! وجود فایل روی سرور و این‌که از روی وب قابل دسترسی باشد کافیست.

::: نسخه های تحت تأثیر
• Coder module 7.x-1.x versions prior to 7.x-1.3
• Coder module 7.x-2.x versions prior to 7.x-2.6
هسته‌ی دروپال تحت تاثیر این آسیب‌پذیری نیست. اگر شما از ماژول Coder استفاده نمی‌کنید، نیازی به انجام کاری نیست.

::: راه حل
دو راه موجود است.
راه اول این‌است که ماژول را از همه‌ی سایت‌هایی که در دسترس عموم هستند پاک کنید:
• ماژول Coder برای استفاده در محیط توسعه ساخته شده است و قرار نیست روی سرورهایی با دسترسی عمومی قرار داشته باشد. در نتیجه، یک راه ساده این است که کل دایرکتوری ماژولِ Coder را از روی همه‌ی وب‌سایت‌های با دسترسی عمومی پاک کنید.
انتخاب دوم این است که آخرین نسخه را نصب کنید:
• اگر از ماژول Coder برای دروپال 7.x استفاده می‌کنید، به Coder نسخه‌ی 7.x-1.3 یا 7.x-2.6 آپدیت کنید.

 گزارش شده توسط Nicky Bloor
 حل شده توسطDavid Rothstein و Jim Berry از پشتیبانی ماژول دروپال
 یافتن باگ در کد توسط Michael Hess و Greg Knaddison وKlaus Purer از تیم امنیتی دروپال


3 ماژول RESTful Web Services

::: معرفی
::: پروژه: RESTful Web Services(ماژولِ افزودنی)
::: آسیب‌پذیری: اجرای کد PHP دلخواه (Remote Code Execution)
::: شماره گزارش آسیب پذیری: SA-CONTRIB-2016-040

::: توضیحات
این ماژول به شما این امکان را می‌دهد تا نهادهای دروپال را به صورت وب‌سرویسِ RESTful نمایش دهید. RESTWS صفحه‌ی پاسخِ پیش‌فرضِ نهادها را تغییر می‌دهد تا امکاناتی را به آن بیافزاید. یک آسیب‌پذیری در این رویکرد به نفوذگر اجازه می‌دهد تا با ارسالِ درخواست‌هایی با محتوایی خاص، به اجرای کد دلخواه PHP برسد. هیچ فاکتورِ محدودکننده‌ای وجود ندارد. این آسیب‌پذیری می‌تواند تحت سطح‌دسترسیِ کاربرِ معمولی سایت (بازدید‌کننده) اکسپلویت شود.

::: نسخه های تحت تأثیر
• RESTful Web Services 7.x-2.x versions prior to 7.x-2.6.
• RESTful Web Services 7.x-1.x versions prior to 7.x-1.7.
هسته‌ی دروپال تحت تاثیر این آسیب‌پذیری نیست. اگر شما از ماژول RESTful Web Services استفاده نمی‌کنید، نیازی به انجام کاری نیست.


::: راه حل
آخرین نسخه را نصب کنید.
• اگر از ماژول RESTful Web Services برای دروپال7.x استفاده می‌کنید، به RESTful Web Services نسخه‌ی 7.x-2.6آپدیت کنید.
• اگر از ماژول RESTful Web Services برای دروپال7.x استفاده می‌کنید، به RESTful Web Services نسخه‌ی 7.x-1.7آپدیت کنید.

 گزارش شده توسط Devin Zuczek
 حل شده توسط Klaus Purer و Wolfgang Ziegler از پشتیبانی ماژول دروپال
 یافتن باگ در کد توسط Greg KnaddisonوKlaus Purer از تیم امنیتی دروپال

31 مرداد 1395 برچسب‌ها: هشدارها و راهنمایی امنیتی
بررسی حملات DLL Hijacking، تشخیص و پیشگیری

DLL مخفف کتابخانه پیوند پویا و بخش های خارجی از برنامه های کاربردی است که بر روی ویندوز یا هر سیستم عامل دیگری اجرا می شود. بسیاری از برنامه های کاربردی خودشان کامل نیستند و کد را در فایل های مختلف ذخیره می کنند. در صورتی که نیاز به کد پیدا شود فایل مرتبط در حافظه بارگذاری و استفاده می شود. این کار موجب کاهش اندازه فایل برنامه کاربردی به همراه بهینه سازی استفاده ازRAM می شود. در ارتباط با DLLها حملاتی تحت عنوانDLL Hijacking مطرح است. مسیر فایل های DLL توسط سیستم عامل ویندوز تعیین شده است. به طور پیش فرض اگر برنامه ای یک فایل DLL درخواست کند، سیستم عامل در همان پوشه که در آن برنامه ذخیره شده است، جستجو می کند. اگر آنجا پیدا نشد، به دنبال پوشه دیگر می رود. اولویت هایی که برای مسیرها تعیین شده است، به ویندوز کمک می کند که در چه فولدرهایی به دنبال فایل های DLL بگردد. این دقیقا نقطه ای است که حملات DLL Hijacking وارد عمل می شود. در این گزارش به معرفی این نوع حملات و تکنیک های مورد استفاده برای کاهش و رفع آنها خواهیم پرداخت.

1- فایل DLL یا کتابخانه پیوند پویا (Dynamic Link Library)

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

با استفاده از DLL، برنامه می تواند از اجزای جداگانه تشکیل شود (ماژولار شود). برای مثال یک برنامه حسابداری می تواند به صورت ماژول به فروش برسد. هر ماژول می تواند در صورتی که نصب شده باشد، در زمان اجرا به برنامه اصلی بارگذاری شود. به دلیل این که ماژول ها جدا هستند، زمان بارگذاری برنامه سریع تر است و ماژول تنها زمانی بارگذاری می شود که قابلیتی خاص مورد نیاز است. به علاوه به روزرسانی برای اعمال بر هریک از ماژول ها آسان تر است بدون این که بر قسمت های دیگر برنامه تاثیر گذارد. برای مثال ممکن است یک برنامه حقوق داشته باشیم و نرخ مالیات در هر سال تغییر کند. زمانی که این تغییرات مربوط به یک DLL است، می توان به روزرسانی را بدون نیاز به ساخت و یا نصب دوباره برنامه اعمال کرد.

2- مزایای DLL

لیست زیر برخی از مزایای استفاده برنامه ها از DLL را نشان می دهد:

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

DLL Hijacking -3 چیست؟

DLL Hijacking که عموماً تحت عنوان Load Order Hijacking یا Search Order Hijacking شناخته می شود یک تکنیک دوام بدافزار برای گریز از تشخیص بوده و همچنین به عنوان یک چالش مهم برای محققان مطرح است. برطبق مقاله ای از مایکروسافت DLL Hijacking به صورت زیر تعریف می شود:

زمانی که برنامه ای به صورت پویا و بدون مشخص کردن نام مسیر کامل کتابخانه ای را بارگذاری می کند، ویندوز برای تعیین محل DLL با جستجوی مجموعه تعریف شده ای از دایرکتوری ها با ترتیب خاصی تلاش می کند. اگر حمله کننده بتواند هنگام جستجوی DLL کنترل یکی از دایرکتوری ها را به دست بگیرد، می تواند یک کپی مخرب از DLL در آن دایرکتوری قرار دهد، این اغلب با عنوان Preloading attack یا Binary planting attack شناخته می شود. اگر سیستم قبل از جستجوی دایرکتوری دستکاری شده کپی مجاز از DLL را پیدا نکند، کپی مخرب را پیدا خواهد کرد.

از آنجا که DLL ها به عنوان یک افزونه هستند و اغلب در اکثر برنامه های کاربردی در سیستم ضروری هستند، در پوشه های مختلفی در سیستم قرار گرفته اند. اگر فایل DLL اصلی با یک فایل DLLقلابی که دارای کد مخرب است، جایگزین شود به عنوان DLL Hijacking شناخته می شود. این آسیب پذیری ها در نرم افزارهایی همچون Windows Movie Maker و Windows Address Book دیده می شود. به منظور درک DLL Hijacking ابتدا بایستی نحوه بارگذاری فایل های DLL توسط ویندوز هنگامی که آدرس کامل کتابخانه داده نشده است را دانست. ویندوز نیازی ندارد که برنامه های کاربردی یک مسیر کامل برای DLL های بارگذای شونده در زمان اجرا مشخص کند. به همین علت برنامه نویسان اغلب مسیر کامل به فایل های DLLای که می خواهند استفاده کنند، مشخص نمی کنند. این می تواند منجر به این مشکل شود که DLLها را نتوان پیدا کرده و استفاده کرد. هنگامی که یک مسیرکامل ارایه نمی شود ویندوز تلاش می کند که DLL ها را در مکان هایی از پیش تعیین شده قرار دهد.

به طور پیش فرض اولین موردی که یافت می شود، اولین آیتمی است که استفاده می شود. بنابراین این امکان برای مهاجم وجود دارد که این ترتیب را با اضافه کردن یک DLL مخرب با همان نام نسخه مجاز در مکانی قبل از آن عوض کند که این باعث می شود سیستم عامل به طور ناخواسته DLL مخرب را بارگذاری کند. اگر برنامه کاربردی DLL را تنها با نام آن بارگذاری می کند (به طور مثال ntshrui.dll) ویندوز ترتیب تعریف شده از قبل را برای شناسایی و بارگذاری دنبال می کند و اولین کتابخانه پیدا شده با نام ntshrui.dll را بارگذاری می کند.

دایرکتوری برنامه

دایرکتوری جاری

دایرکتوری سیستم

دایرکتوری سیستم 16 بیتی

دایرکتوری ویندوز

دایرکتوری های ذخیره شده در متغیر PATH

برای مثال اگر برنامه ای (مثلاً Test.exe) DLL ای را تنها توسط نام بارگذاری کند(مثلا foo.dll ) ویندوز ترتیب جستجویی را بسته به این که SafeDllSearchMode فعال یا غیرفعال است، برای تعیین محل DLL مجاز دنبال می کند. اگر حمله کننده دانشی درباره این برنامه داشته باشد، می تواند DLL مخربی در مسیر جستجوی آن با همان نام قرار دهد و برنامه را مجبور کند که DLL مخرب را بارگذاری کند.

برنامه هایی که از مکان های ناامن اجرا می شوند برای مثال پوشه های قابل نوشتن توسط کاربر همانند پوشه Downloads یا TempDirectory تقریبا همیشه در معرض این آسیب پذیری هستند.

4- جزئیات حمله

بسته به پیکربندی سیستم، برنامه می تواند تصمیم بگیرد که ترتیب مسیرهایی که باید برای بارگذاری DLL جستجو کند، چگونه باشد. به طور پیش فرض ترتیب این جستجو به صورت زیر است :

  • مسیری که از آن برنامه کاربردی بارگذاری می شود.
  • دایرکتوری جاری
  • دایرکتوری سیستم، معمولاً C:\Windows\System32\ (تابع GetSystemDirectory برای دستیابی به این دایرکتوری فراخوانی می شود)
  • دایرکتوری سیستم 16 بیتی – هیچ تابع اختصاص داده شده برای بازیابی مسیر این دایرکتوری وجود ندارد، اما این دایرکتوری نیز جستجو می شود.
  • دایرکتوری ویندوز، تابعGetWindowsDirectorبرای دستیابی به این دایرکتوری فراخوانی می شود.
  • دایرکتوری های لیست شده در متغیر محیطی PATH

در جستجوی این مسیرها برنامه اولین DLL ای را که با آن نام پیدا کرد، استفاده می کند.

در این مورد دایرکتوری جاری مشکل است. زمانی که یک برنامه تصمیم به بارگذاری DLL از دایرکتوری جاری می گیرد می تواند به DLL Hijacking منجر شود. برای مثال اگر کاربر یک سند Microsoft word را باز می کند، Microsoft office سعی خواهد کرد که مولفه DLL آن را از مکان فایل داکیومنت بارگذاری کند. حمله کننده سپس می تواند یک DLL بدخواه در مکان سند جایگذاری کند و در نتیجه Microsoft office کد بدخواهانه را بارگذاری می کند.

با فرض این که SafeDllSearchMode فعال شده است (که به صورت پیش فرض فعال است) برای حمله استفاده از این تکنیک بسیار سخت تر است. در این صورت سیستم عامل اول بررسی می کند که آیا یک DLL با همین نام در حال حاضر در حافظه بارگذاری شده است یا آیا DLL در کلید رجیستری (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs) تعریف شده است(KnownDLLs). اگر هیچ یک از شرایط برقرار نبود ویندوز با استفاده از ترتیب زیر کتابخانه ها را بارگذاری می کند:

  • دایرکتوری که از آن برنامه بارگذاری می شود.
  • دایرکتوری سیستم (C:\Windows\System32)
  • دایرکتوری سیستم 16 بیتی (C:\Windows\System)
  • دایرکتوری ویندوز (C:\Windows)
  • دایرکتوری کار جاری ([1]CWD)
  • دایرکتوری های لیست شده در متغیرهای محیطی PATH(System و بعد از آن user)

با این وجود دایرکتوری جاری هنوز در لیست دایرکتوری ها برای جستجو است. تفاوت در اینجا در این است که برنامه در ابتدا دایرکتوری های سیستم را برای مولفه های DLL جستجو می کند، اگر پیدا نشد، سپس دایرکتوری جاری را جستجو می کند.

به عنوان یک قاعده کلی برنامه های اجرا شونده خارج از “C:\Windows\System32” که کتابخانه ای را بدون ارایه مسیر کامل بارگذاری می کنند، اهداف بالقوه هستند. توجه داشته باشید که کتابخانه درخواست شده نباید قبلاً در حافظه وجود داشته باشد یا در مقدار رجیستری KnownDlls قرار گرفته باشد.

5- پیداکردن آسیب پذیری های DLL Hijacking

پیداکردن آسیب پذیری در برنامه ها اولین قدم برای سواستفاده از آن است. روش صحیح برای این کار استفاده از Process Monitor برای دیدن این که چه زمانی برنامه جستجویی را برای فایل DLL اجرا می کند. هنگامی که Process Monitor بارگذاری می شود می توان سعی کرد که یک تابع از DLL دیگری را به کار انداخت یا این که منتظر باشید تا این که یکی به کار انداخته شود. بعد از انجام این کار، تمام آن چه که نیاز است این است که به منوی Filter رفته و فیلترهای خود را اعمال کنید.

اگر شما چیزی شبیه این ها پیدا کردید بسیار محتمل است که یک آسیب پذیری DLL Hijacking پیدا کرده باشید.

6- پیداکردن نام توابع ازDLL

برای ایجاد کردن یک DLL جدید با کد مخرب ، ابتدا بایستی نام توابعی که در آن به کار رفته است را بدانیم . در ویندوز این می تواند توسط ابزار DUMPWIN انجام شود. با DUMPWIN ما می توانیم از گزینه /EXPORTS استفاده کنیم. در زیر مثالی از خروجی dll نمونه آمده است:

Dump of file C:\example.dll

File Type: DLL

Section contains the following exports for example

00000000 characteristics

4FC31DEF time date stamp Mon Jun 05 18:32:49 2013

0.00 version

1 ordinal base

3 number of functions

3 number of names

ordinal hint RVA name

1000007BA0 output_data

2 1 00007C40 show_integer

3 2 00008940 add_integers

Summary

1000 .CRT

1000 .bss

1000 .data

1000 .edata

1000 .idata

1000 .rdata

1000 .reloc

9000 .text

1000 .tls

گزینه دیگر استفاده از یک اشکال زدا است. اشکال زداها می توانند متن آشکاری که در برنامه ها ذخیره شده است را به شما نشان دهند. ما می توانیم نام هر فایل DLL ارجاع شده و ذخیره شده، را نیز به صورت متن آشکار ببینیم.

7- دفاع در برابر DLL Hijacking

مهم ترین بخش از تعریف یک آسیب پذیری، توضیح چگونگی مقابله با آن است. مسئولیت حفاظت از کاربران به عهده خود توسعه دهندگان نرم افزار می افتد. در مورد DLL Hijacking برای اجتناب از این مشکل مسیر کامل به کتابخانه بایستی مشخص شود.

گزینه دیگر انتقال فایل های DLL به جایی است که در ترتیب جستجو زودتر چک می شود. گزینه دیگر ایجاد یک هش Checksum از فایل DLL و ذخیره آن درون خود برنامه است، بنابراین در زمان اجرا زمانی که DLL پیدا شد هش Checksum آن بایستی با هش ذخیره شده درون برنامه مطابقت کند. این روش می تواند توسط استفاده از یک روش هشینگ قوی به همراه Salt یا توسط استفاده از کلیدهای عمومی و خصوصی داخل برنامه برای رمز کردن checksum خارج از برنامه و رمزگشایی آن بهبود داده شود.

کاربران همچنین توانایی محافظت از خود با درنظر گرفتن اقدامات احتیاطی خاصی را دارند. کاربر می تواند اطمینان حاصل کند که فایل هایی که دارد باز می کند در همان دایرکتوری DLL هایی نیست که مشکوک به نظر می رسد. برای مثال اگر DLL ای به همراه عکسی که شما دانلود کرده اید بیاید، بهتر است که قبل از بازکردن عکس DLL را حذف کنید. کاربران همچنین توان تغییر کلید رجیستری CWDIllegalInDllSearch را دارند.در ضمن کاربران می توانند دو کلید رجیستری مختلف خودشان ست کنند.


[1] current working directory

16 مرداد 1395 برچسب‌ها: هشدارها و راهنمایی امنیتی
 بدافزار Godless

بدافزارGodless،توسط گروه ترند میکرو[1]

در قالب ANDROIDOS_GODLESS.HRXشناسایی‌شده است.تاکنون، این بدافزار حدود ۸۵۰۰۰۰ گوشی (در میان 1.4 میلیارد گوشی اندروید) را آلوده کرده است.این بدافزار از آسیب‌پذیری‌های موجود در سیستم‌عامل اندروید و نسخ 5.1 به قبل سوءاستفاده می‌کند.

کد مخرب این بدافزار، در برنامه‌های کاربردی متعددی – که برخی از آن‌ها نیز توسط Google Play به کاربران ارائه می‌شوند- افزوده‌شده است. با نصب این برنامه‌ها، کد مخرب اجرا گردیده وآسیب‌پذیر بودن سیستم‌عامل گوشی بررسی می‌شود. در صورت وجود آسیب‌پذیری، بدافزار با سوءاستفاده از آسیب‌پذیری‌های سطح ریشه - که در سیستم‌عامل اندورید کدهای سوءاستفاده از این آسیب‌پذیری‌ها در گیت‌هاب[2] قرار داده‌شده است [4]- سطح دسترسی برنامه را ارتقا می‌دهند و کنترل گوشی را در دست می‌گیرند. این بدافزار، هنگامی‌که صفحه گوشی خاموش است، عملیات خود را انجام می‌دهد.

در نسخه‌های اولیه این بدافزار، پس از نصب در گوشی، لیستی از برنامه‌های موجود در Google Play‌ را که در یک رشته رمز شده قرار داشت، نصب می‌کرد و با سوءاستفاده از حساب کاربری گوگل صاحب گوشی، اطلاعات کاربران را به سرقت می‌برد؛ اما در نسخه جدید آن، بدافزار می‌تواند با سرور C&C خود در ارتباط باشد و دستورات را از سرور دریافت و اجرا کند.

1-سیستم‌های آسیب‌پذیر

بدافزار Godless، امنیت سیستم‌عامل اندروید در نسخ ۵.۱ و قبل از آن را تهدید می‌کند. در میان گوشی‌های اندروید حاضر، 90 درصد گوشی‌ها دارای سیستم‌عامل اندروید 5.1 و یا قبل از آن هستند. طبق نمودار 1، بیشترین تعداد گوشی آلوده‌شده به این بدافزار، به ترتیب در کشورهای هند و اندونزی مشاهده‌شده است.این بدافزار، برای یافتن دسترسی سطح ریشه، از برخی آسیب‌پذیری‌های موجود در سیستم‌عامل اندروید 5.1 و یا قبل آن و کدهای ارائه‌شده برای سوءاستفاده از آن‌ها که در [۴] وجود دارند، استفاده می‌کند. دو آسیب‌پذیری که بیشتر استفاده می‌شود،CVE-2015-3636 و CVE-2014-3153 هستند.

نمودار 1- نمودار توزیع تعداد گوشی‌هایآلوده‌شده به بدافزار Godless

این بدافزار، به‌صورت جداگانه و در قالب یک برنامه کاربردی مشخص وجود ندارد. بلکه، کد مخرب این بدافزار در برنامه‌های کاربردی متفاوتی اضافه‌شده است. برنامه‌های کاربردی که ظاهراً سالم به نظر رسیده و حتی برخی از آن‌ها توسط Google Play ارائه می‌شوند. برخی از برنامه‌های کاربردی نیز به‌طور مستقیم کد مخرب را ندارند اما پس از نصب، کاربر را تشویق می‌کنند تا برنامه‌های کاربردی مشخصی– که حاوی کد مخرب بدافزار Godless هستند- را نصب کند.

برنامه‌های کاربردی که حاوی کد مخرب بدافزار Godless‌ هستند در دو گروه ابزارهای اندرویدی مانند چراغ‌قوه و یا Wifi و یا برنامه‌های سرگرمی ارائه‌شده توسط توسعه‌دهندگان چون بازی‌های مشهور قرار دارند. برای مثال، برنامه کاربردی چراغ قوه‌ای چون Summer Flashlightحاوی کد مخرب این بدافزار است. این برنامه کاربردی هم‌اکنون از لیست برنامه‌های موجود در Google Playحذف‌شده است.

در جدول 1، لیستی از این برنامه‌های کاربردی که در قالب ابزار در سیستم‌عامل اندورید وجود دارند نام‌برده شده است.

نام برنامه ‌کاربردی مخرب

چکیدهSHA1

نام بسته[3]

Geometry Dash

01b3e575791642278b7decf70f5783ecd638564d

com.robtopx.geometryjump.admobpl

uginMoboWiFi

7ebdd80761813da708bad3325b098dac9fa6e4f5

com.foresight.wifiseeker

WiFi Anywhere

34b7b38ce1ccdd899ae14b15dd83241584cee32b

com.foresight.wifianywhere

MoboWiFi

84c444a742b616bc95c58a85c5c483412e327c50

com.foresight.wififast

MoboWiFi

50450ea11268c09350aab57d3de43a4d5004b3a1

com.foresight.wififast

MoboWiFi

aed8828dc00e79a468e7e28dca923ce69f0dfb84

com.foresight.wififast

MoboWiFi

44e81be6f7242be77582671d6a11de7e33d19aca

com.foresight.wififast

MoboWiFi

d57d17eb738b23023af8a6ddafd5cd3de42fc705

com.foresight.wififast

Geometry Dash

17e5be80a4ed583923937e41ea7c1f4963748d1f

com.robtopx.geometryjump.tw

Geometry Dash

9f586480fbc745ee6b28bfce3f1abe4ff00d01b1

com.robtopx.geometryjump.tw

Minecraft - Pocket Edition

888f10677b65bf0a86cf4447a1ebc418df8a37e8

com.mojang.minecraftpe.admobplug in

AndroidDaemon Frame

74a55e9ea67d5baf90c1ad231e02f6183195e564

com.android.google.plugin.dameon

Minecraft - Pocket Edition

5900fabbe36e71933b3c739ec62ba89ac15f5453

com.mojang.minecraftpe.admobplug in

جدول 1- نام و چکیده برنامه‌های حاوی کد مخرب بدافزارGodless

هم‌چنین، در جدول 2، لیستی از برنامه‌های کاربردی در دسته سرگرمی که توسط توسعه‌دهندگان برنامه‌های اندروید ارائه‌شده‌اند و حاوی کد مخرب بدافزار هستند، نشان داده‌شده است.

نام برنامه ‌کاربردی مخرب

چکیده SHA1

نام بسته

Live Launcher

e70b1084e02d4697f962be4cc5a54fdb19ce780a

homescreen.boost.launcher.free.small.theme

Lock Screen

a3e84c4b770ef7626e71c9388a4741804dc32c15

com.iodkols.onekeylockscreen

多多每日壁

671fa9291bf465580ec1ea1e55ce8a5ce2d848c7

com.dotools.dtbingwallpaper

多多每日壁

e10efdecab3998cba5236645b5966af6ff4162f1

com.dotools.dtbingwallpaper

4 iDO Calculators

57795c32f75a02a68b9a8acb5820eb039c083a16

com.ibox.calculators

Live Launcher

c74eb5fa1234620297330874bd23605158a890d2

homescreen.boost.launcher.free.small.theme

FlashLight

5d2a08d7c1f665ea3affa7f9607601ffae387e8b

com.foresight.free.flashlight

Easy Softkey

416b1fe39eaaa4d83c7785d97e390d129dbea248

com.oeiskd.easysoftkey

iDO Alarm Clock

7809e1b6f85ee0fa7f0c2a3f1bfdc7fa668742bb

com.dotools.clock

جدول 2- نام وچکیده برنامه‌های حاوی کد مخرب بدافزارGodless

2- چگونگی رفع آسیب‌پذیری

یافتن دسترسی ریشه در سیستم‌عامل اندروید، عامل اصلی رخداد حمله توسط این بدافزار است. برنامه حاوی کد مخرب بدافزار، با سوءاستفاده از آسیب‌پذیری‌های موجود در سیستم‌عامل اندروید، سطح دسترسی خود را به ریشه ارتقا می‌دهد. تغییر سطح دسترسی در اندروید، امکانات متنوعی را در اختیار برنامه‌ها قرار می‌دهد که بسته به کاربرد، می‌تواند مزیت تلقی شود؛ اما اگر این سطح از دسترسی در اختیار بدافزار قرار گیرد، خطرناک است. لذا، رفع آسیب‌پذیری‌هایی که امکان تغییر سطح دسترسی به ریشه را میسر می‌کند، می‌تواند اولین گام برای جلوگیری از رخداد حملات توسط بدافزار Godless‌ و بدافزارهای مشابه باشد. در حال حاضر، آسیب‌پذیری‌های مرتبط با یافتن سطح دسترسی ریشه، در نسخه 5.1 سیستم‌عامل اندروید رفع شده است و دستگاه‌های حاوی این نسخه باید به‌روزرسانی شوند.

هم‌چنین، برای جلوگیری از خطرات احتمالی از این بدافزار، لازم است کاربران گوشی‌های هوشمند اندرویدی، از نصب برنامه‌های کاربردی از بازارهای نامعتبر خودداری کنند؛ بنابراین پیشنهاد می‌شود از بازارهای معتبری چون Google Play‌ و Amazonبرنامه‌ها را خریداری و نصب کنند.

3- شیوه حمله

این بدافزار، به‌صورت جداگانه و در قالب یک برنامه کاربردی مشخص وجود ندارد. بلکه، کد مخرب این بدافزار در برنامه‌های کاربردی متفاوتی اضافه‌شده است. برنامه‌های کاربردی که ظاهراً سالم به نظر رسیده و حتی برخی از آن‌ها توسط Google Play ارائه می‌شوند. برخی از برنامه‌های کاربردی نیز به‌طور مستقیم کد مخرب را ندارند اما پس از نصب، کاربر را تشویق می‌کنند تا برنامه‌های کاربردی مشخصی – که حاوی کد مخرب بدافزار Godless هستند- را نصب کند.

برنامه‌ کاربردی که حاوی کد مخرب بدافزار Godless‌ است، از یک آسیب‌پذیری کتابخانه‌ای به اسم libgodlikelib.so استفاده می‌کند. این کتابخانه، خود از کدهای ارائه‌شده در [4] برای سوءاستفاده از آسیب‌پذیری‌هایی که توسط ابزارهای تغییر سطح دسترسی به ریشه هستند استفاده می‌کند. بدافزار، پس از یافتن کتابخانه مربوطه و یافتن سطح دسترسی ریشه در قالب یک برنامه کاربردی سیستمی به فعالیت خود ادامه می‌دهد.

شکل 1- بخشی از عملیات بدافزار Godless در یافتن کتابخانه آسیب‌پذیر

این برنامه مخرب، پس از نصب بر روی گوشی قربانی صبر می‌کند تا صفحه گوشی تلفن همراه خاموش شود و سپس، عملیات مخرب خود را اجرا کرده و با سوءاستفاده از آسیب‌پذیری‌های موجود در سیستم‌عامل اندروید، دسترسی سطح ریشه را می‌يابد. رشته‌ رمز شدهAES با نام __image‌در این برنامه‌ها حاوی کد مخرب اجرایی بدافزار استکه پس از تغییر سطح دسترسی برنامه مخرب به سطح دسترسی ریشه اجرای می‌شود.

شکل 2- کد بررسی خاموش بودن صفحه گوشی همراه

اخیراً، نوع جدیدی از بدافزار Godlessشناسایی‌شده است که رشته مخرب در برنامه کاربردی مخرب قرار نمی‌گیرد، بلکه، از طریق سرور C&C، دستورات لازم به برنامه کاربردی مخرب ارسال می‌شود. این سرور، در آدرس hxxp://market[.]moboplay[.]com/softs[.]ashx قرار دارد.

4- جمع‌بندی

بدافزار Godless، امنیت سیستم‌عامل اندروید در نسخ ۵.۱ و قبل از آن را تهدید می‌کند. در میان گوشی‌های اندروید حاضر، 90 درصد گوشی‌ها دارای سیستم‌عامل اندروید 5.1 و یا قبل از آن هستند.این بدافزار، از آسیب‌پذیری‌های موجود در هسته سیستم‌عامل اندروید سوءاستفاده کرده و سطح دسترسی برنامه مخرب را از کاربر به ریشه تغییر می‌دهد. پس از یافتن سطح دسترسی ریشه، بدافزار به اطلاعات شخصی و داده‌های سطح ریشه در سیستم‌عامل اندروید دسترسی می‌یابد و کنترل گوشی را به عهده می‌گیرد. رفع آسیب‌پذیری‌هایی که امکان تغییر سطح دسترسی به ریشه را میسر می‌کند، می‌تواند اولین گام برای جلوگیری از رخداد حملات توسط بدافزار Godless‌ و بدافزارهای مشابه باشدهم‌چنین، برای جلوگیری از خطرات احتمالی از این بدافزار، لازم است کاربران گوشی‌های هوشمند اندرویدی، از نصب برنامه‌های کاربردی از بازارهای نامعتبر خودداری کنند.


[1]Trendmicro

[2]Github

[3]Package

4 مرداد 1395 برچسب‌ها: هشدارها و راهنمایی امنیتی
آسیب‌پذیری‌های کتابخانه Libarchive

کتابخانه Libarchive در سال ۲۰۰۴ در پروژه FreeBSD ایجاد گردید. این کتابخانه، امکان خواندن فایل‌هایی با فرمت‌های متفاوت فشرده‌سازی چون tar، zip، cpio، 7z و غیره را میسر می‌سازد. به دلیل وجود امکانات فراوان این کتابخانه و پشتیبانی آن از تعداد زیادی از فرمت‌های فشرده‌سازی فایل، از آن در سایر سیستم‌های عامل و نیز در نرم‌افزارهای متعددی برای فشرده‌سازی و باز کردن فایل‌های فشرده استفاده می‌شود. اخیراً، آسیب‌پذیری‌های سرریز بافر در فایل‌هایی با فرمتMtree (CVE-2016-4301)، سرریز پشته در فایل‌هایی با فرمتrar (CVE-2016-4302) ونیز سرریز عدد صحیح در فایل‌هایی با فرمت 7zip‌(CVE-2016-4300) یافت شده است. با سوءاستفاده از این آسیب‌پذیری‌ها، می‌توان بیش از حد مجاز بر روی بافر تخصیص‌یافته نوشت. لذا،حمله‌کننده می‌تواند کد مخرب را در فایل فشرده اضافه کند.سپس، هنگامی‌که فایل فشرده توسط برنامه‌ای که ازLibarchiveاستفاده می‌کند، اجرا و خوانده شود، کد مخرب در سیستم قربانی اجرا می‌شود.

مهم‌ترین دلیل وجود این آسیب‌پذیری‌ها، عدم برنامه‌نویسی امن است. چراکه؛ آسیب‌پذیری‌های نامبرده شده، عمدتاً به دلیل عدم وارسی ورودی‌ها- که در فایل‌های فشرده، داده‌هایی است که از فایل فشرده خوانده می‌شود- وجود دارند. در حال حاضر، این آسیب‌پذیری در نسخه 3.2.1 این کتابخانه رفع شده است.

1-سیستم‌های آسیب‌پذیر

از کتابخانه Libarchive، در ابزارهای فشرده‌سازی موجود در سیستم‌های عامل FreeBSD و Debian Linuxو نیز نرم‌افزارهای متعددی چون ضد بدافزارها، ابزارهای مدیریت بسته[1] چون پک من[2]، ایکس. بی. پی. اس[3]، سی میک[4] وpkg-utils، ابزارهای آرشیو و جستجوی فایل چون Springy و ZIP Unpacker Component Extension؛ و ابزاری امنیتی چون yextendاستفاده می‌شود؛ بنابراین، هر سیستم‌عامل یا نرم‌افزاری که از نسخه‌های پیشین این کتابخانه (نسخ کمتر از 3.2.1) برای باز کردن فایل‌های mtree، rar‌ و 7zipاستفاده می‌کند،آسیب‌پذیر است. تاکنون، حمله‌ای با سوءاستفاده از این آسیب‌پذیری گزارش نشده است.

2-چگونگی رفع آسیب‌پذیری

مهم‌ترین علت وجود این آسیب‌پذیری‌ها، عدم برنامه‌نویسی امن است. چراکه؛ آسیب‌پذیری‌های نامبرده شده، عمدتاً به دلیل عدم وارسی ورودی‌ها- که در فایل‌های فشرده، داده‌هایی است که از فایل فشرده خوانده می‌شود- وجود دارند. توابعی جهت وارسی دقیق ورودی‌ها، برای رفع این آسیب‌پذیری‌ها در کدهای آسیب‌پذیر این کتابخانه افزوده‌شده است. در حال حاضر، این آسیب‌پذیری در نسخه 3.2.1 این کتابخانه رفع شده است و لازم است، نسخ قدیمی این کتابخانه به‌روزرسانی گردند.

برای مثال، برای به‌روزرسانیسیستم‌عاملFreeBSDمی‌توان از یکی از روش‌های زیر استفاده کرد:

  1. به‌روزرسانی سیستم‌عاملFreeBSD با دستور "freebsd-update"
  2. دریافت و نصب وصله‌ها با اجرای دستورات زیر

freebsd-update fetch

freebsd-update install

  1. دریافت و نصب کد وصله‌ها، که در دو مرحله زیر انجام می‌گیرد:
    1. دریافت کدها و وارسی امضای آن

fetch https://security.FreeBSD.org/patches/SA-16:23/libarchive.patch

fetch https://security.FreeBSD.org/patches/SA-16:23/libarchive.patch.asc

gpg --verify libarchive.patch.asc

  1. اعمال وصله‌ها

cd /usr/src

patch< /path/to/patch

4.کامپایل مجدد هسته FreeBSD با دستورات "buildworld" و "installworld".

3- شیوه حمله

در کتابخانه Libarchive، سه آسیب‌پذیری سرریز بافر در فایل‌هایی با فرمت Mtree، سرریز پشته در فایل‌هایی با فرمت rar ونیز سرریز عدد صحیح در فایل‌هایی با فرمت 7zip‌ شناسایی‌شده است. در این بخش، جزئیات آسیب‌پذیری مرتبط با فایل‌های Mtree‌ و 7zip و نحوه سوءاستفاده از آن‌ها آورده شده است.

برای مثال، آسیب‌پذیریفایل‌های Mtree، در ماژول libarchive\archive_read_support_format_mtree.c و تابع parse_device قرار دارد. دراین تابع، سه آرگومان حاوی اطلاعات پیرامون فرمت فایل نگه‌داری می‌شود. این آرگومان‌ها از نوع unsigned long‌ است. همان‌طور که در شکل ۱ مشاهده می‌شود، در هیچ قسمتی از تابع، درستی نوع آرگومان‌های ورودی بررسی نمی‌شود؛ بنابراین، حمله‌کننده می‌تواند در هریک از خانه‌های آرایه، بیش‌ازاندازه درنظرگرفته شده برای متغیرهای unsigned long– که برابر با ۴ بایت در سیستم‌های ۳۲ بیتی و ۸ بایت در سیستم‌های ۶۴ بیتی است- بنویسد. لذا، می‌تواند فراتر از اندازه درنظرگرفته شده بر روی حافظه آرایه‌ سه‌تایی، نوشته و محتویات آن را تغییر دهد.

شکل 1- تابع parse_device که حاوی آسیب‌پذیری سرریز بافر در پویش فایل‌های با فرمت mtree‌ است.

آسیب‌پذیری مرتبط با فایل‌های 7zip، در ماژول libarchive\archive_read_support_format_7zip.c قرار دارد که بخشی از آن در شکل ۲ نشان داده‌شده است. در این فایل، در خطوط ۲۱۴۹-۲۱۵۷، در متغیر unpack_streams، مجموع numUnpackStreams برای کلیه پوشه‌ها ذخیره می‌شود. متغیر unpack_streams از نوع size_t‌ است (معادل unsigned long) و حداکثر می‌تواند مقداری برابر با ۴ بایت در سیستم‌های ۳۲ بیتی و یا ۸ بایت در سیستم‌های ۶۴ بیتی را در برگیرد. حال به دلیل عدم بررسی مقدار unpack_streams،به هنگام محاسبه مجموع numUnpackStreams های پوشه‌ها، ممکن استسرریز عدد صحیح انتسابی به unpack_streamsرخ دهد.

سپس در خطوط۲۱۶۶-۲۱۷۷، به‌اندازه مقدارunpack_streams، در پشته، برای متغیر ss->unpackSizes حافظه پویا اختصاص داده می‌شود. در خطوط ۲۱۸۷-۲۱۹۰، برای هر یک از پوشه‌ها و متناسب با numUnpackStreams، عددی ۶۴ بیتی از پشته ایجادشده برای ss->unpackSizesخوانده می‌شود. ازآنجایی‌که سایز حافظه پشته با متغیر unpack_streams، تعیین‌شده است و درستی مقدار این متغیر وارسی نگردیده، محتوای حافظه خوانده‌شده، ممکن است درست نباشد.

شکل 2- بخشی از کد archive_read_support_format_7zip.c حاوی آسیب‌پذیری سرریز پشته در فایل‌های 7zip

4- جمع‌بندی

کتابخانه Libarchive، از کتابخانه‌های متن‌بازی است که از فرمت‌های گوناگون فایل‌های فشرده چون tar، zip، cpio، 7z و غیره، پشتیبانی می‌کند ودر سیستم‌های عامل و نرم‌افزارهای متعددی استفاده‌شده است. آسیب‌پذیری‌های سرریز بافر در فایل‌هایی با فرمت Mtree (CVE-2016-4301)، سرریز پشته در فایل‌هایی با فرمت rar (CVE-2016-4302) ونیز سرریز عدد صحیح در فایل‌هایی با فرمت 7zip‌(CVE-2016-4300) یافت شده است. این آسیب‌پذیری‌ها، امکان نوشتن بیش‌ازحد مجاز بر روی حافظه و اجرای کدهای مخرب در سیستم قربانی را فراهم کرده و یک خطر جدی محسوب می‌شود. در نسخه 3.2.1 این کتابخانه، آسیب‌پذیری‌های مذکور رفع شده است و لازم‌ است کلیه سیستم‌های حاوی این کتابخانه به‌روزرسانی شوند.


[1]Package Manager

[2]Pacman

[3]XBPS

[4]CMake

3 مرداد 1395 برچسب‌ها: هشدارها و راهنمایی امنیتی
صفحات: «« « ... 3 4 5 6 7 ... » »»