نقطه ضعف DLL Preloading در بسیاری از نرم افزارهای Windows
چهارشنبه سوم شهریور ماه اطلاعیه ای از سوی شرکت مایکروسافت درباره نقطه ضعف جدیدی که در بسیاری از نرم افزارهای تحت Windows وجود دارد، منتشر گردید. طبق این اطلاعیه، نقطه ضعف مربوط به نحوه دسترسی و اجرای فایل های DLL توسط نرم افزارهای کاربردی تحت سیستم عامل Windows می شود. در حقیقت، این نقطه ضعف در سیستم عامل Windows نیست تا مایکروسافت بتواند مانند دیگر نقاط ضعف امنیتی، با انتشار یک اصلاحیه آنرا برطرف و ترمیم کند. بلکه این نقطه ضعف به دلیل سهل انگاری در برنامه نویسی این نرم افزارها به وجود آمده است.
در طی هفته گذشته، فهرست های متعددی از نرم افزارهایی که دارای این نقطه ضعف هستند، منتشر شده است. این نقطه ضعف که DLL Preloading یا Binary Planting نامیده می شود، طیف وسیعی از نرم افزارهای کاربردی ایرانی و خارجی را که تحت سیستم عامل Windows اجرا می شوند، شامل می گردد. لذا ضروری است که کاربران، مدیران شبکه و تولیدکنندگان نرم افزار، اطلاعات کامل در این خصوص داشته باشند.
نقطه ضعف در کجاست؟
هنگامی که یک نرم افزار بدون مشخص نمودن مسیر دقیق یک فایل DLL، سعی در دسترسی و اجرا آن دارد،سیستم عامل Windows در یک تعداد شاخه های از پیش تعیین شده به دنبال آن فایل DLL می گردد. حال اگر فایل مخرب و همنامی با این فایل DLL، در یکی از این شاخه های تعیین شده باشد، نرم افزار بطور ناخواسته، فایل مخرب را به اجرا در می آورد.
این فایل مخرب را می توان به روش های مختلف در محل مورد نظر جاسازی کرد. از جمله از طریق اینترنت و فریب کاربر برای دریافت فایل، از طریق شاخه های به اشتراک گذاشته شده (Share) و یا ابزارهای ذخیره سازی اطلاعات USB Flash و یا …
موضوع چقدر جدی است؟
استفاده از فایل های DLL در سیستم عامل Windows یکی از مشخصه ها و قابلیت های بارز این سیستم عامل است. لذا اجرای فایل های DLL توسط انواع نرم افزارهای کاربردی تحت Windows امری عادی است. ولی نحوه دسترسی به این فایل است که می تواند باعث ایجاد این نقطه ضعف شود. بررسی های صورت گرفته نشان می دهد که صدها نرم افزار از جمله بسیاری از نرم افزارهای مشهور و رایج در دنیا، دچار این نقطه ضعف هستند.
اینکه چرا تولید کنندگان نرم افزار دستورالعمل های شرکت مایکروسافت را در نحوه برنامه نویسی فایل های DLL رعایت نکرده اند، سئوال اصلی نیست. سئوال اصلی این است که کدام نرم افزارهای مایکروسافت دارای این نقطه ضعف هستند؟ شرکت مایکروسافت اعلام کرده که هنوز در حال بررسی این موضوع است. ولی فهرست های منتشر شده از نرم افزار های آسیب پذیر، بسیاری از نرم افزارهای مایکروسافت مانند Office2007 را نیز شامل می شوند.
راه حل چیست؟
همانطور که توضیح داده شد، مایکروسافت نمی تواند با انتشار یک اصلاحیه این نقطه ضعف را در نرم افزارهای کاربردی برطرف کند. در صورت انجام چنین کاری، قابلیت استفاده از فـایـل DLL را مختل کـرده و بسیـاری از ایـن نرم افزارها را از کار خواهد انداخت. ولی مایکروسافت ابزاری برای کنترل و مهار این نقطه ضعف ارائه کرده است. این ابزار راه حل نهایی نیست و احتیاج به برخی کارهای دستی توسط کاربر یا مدیر شبکه دارد. طبق اعلام شرکت مایکروسافت، این ابزار عملیات زیر را بر روی کل سیستم و یا بر روی یک نرم افزار خاص انجام خواهد داد.
- شاخه فعال و جاری را از فهرست شاخه هایی که برای یافتن فایل های DLL جستجو می شوند، حذف و خارج خواهد کرد.
- از دسترسی و اجرای فایل DLL از مسیر WebDAV توسط نرم افزارهای کاربردی، جلوگیری خواهد کرد.
- از دسترسی و اجرای فایل DLL توسط نرم افزارهای کاربردی از مسیر WebDAV و UNC جلوگیری خواهد کرد.
این ابزار مایکروسافت را می توان از مسیر زیر دریافت کرد. http://support.microsoft.com/Kb/2264107
قبل از دست بکار شدن برای دریافت و نصب ابزار فوق، توصیه شرکت مایکروسافت این است که ابتدا نرم افزارهای کاربردی آسیب پذیر موجود در سیستم ها و شبکه خود را شناسایی کنید. برای این کار، شرکت مایکروسافت ابزار شناسایی Process Monitor را عرضه کرده است.
شاید بپرسید که آیا امکان ندارد در آینده، شرکت مایکروسافت این دو ابزار کمکی را بصورت یک اصلاحیه امنیتی درآورده و بطـور خـودکـار روی کامپیوترهای آسیب پذیر اعمال کند؟
جواب مایکروسافت به این سئوال این است که نقطه ضعف مـربـوط بـه DLL، در سیستـم عـامـل Windows و یـا نـرم افزارهای مایکروسافت نیست که اجازه چنین کاری را داشته باشد. در حقیقت، مایکروسافت می داند که اگر مانع دسترسی یک نرم افزار به فایل DLL مورد نظرش شود، آن نرم افزار را از کار خواهند انداخت. برای همین هم مسئولیت اصلاح چنین نرم افزارهایی را بر عهده تولیدکنندگان آنها و شما کاربران و مدیران شبکه محترم می گذارد!