فا

‫ اخبار

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

Node.js پلتفرمی. بر مبنای موتور جاوا اسکریپت مرورگر Google Chrome که به منظور ایجاد برنامه های سریع و گسترش پذیر به وجود آمده است می باشد. Node.js از مدل رویدادگرا و non-blocking برای انجام عملیات I/O بهره می برد. از این‌رو Node.js یک پلتفرم سبک و کارا برای پیاده سازی برنامه های Real-time و مبتنی بر داده است که می توانند به راحتی در سرورهای نامتمرکز اجرا شوند.

امروزه تقریباً هر هفته رخنه های امنیتی جدی مشاهده می شود، مانند موارد LinkedIn یا MySpace. حین این حملات، میزان زیادی از اطلاعات کاربری افشا شد و به اعتبار سازمانی آنها نیز لطمه وارد گردید. بایستی این مسئله برطرف شود. اگر فردی برنامه ای توسعه می دهد، امنیت بخشی از وظیفه وی خواهد بود.

6 دی 1395 برچسب‌ها: هشدارها و راهنمایی امنیتی
تروجان اندرویدی: 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 برچسب‌ها: هشدارها و راهنمایی امنیتی
صفحات: «« « ... 3 4 5 6 7 ... » »»