محمد بختیاری

آسیب‌پذیری نرم‌افزاری چیست و چرا تعداد زیادی از آن‌ها وجود دارد؟

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

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

آسیب‌پذیری نرم‌افزاری چیست و چرا تعداد زیادی از آن وجود دارد؟

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

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

هک کردن

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

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

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

آسیب‌پذیری در انواع نرم‌افزارها وجود دارد. چندین نسخه از سیستم‌عامل ویندوز مایکروسافت حاوی باگ‌هایی بود که WannaCry از آن‌ها برای حمله به اهداف خود بهره گرفت. به‌عنوان مثال، مرورگر وب منبع‌باز محبوب فایرفاکس از سال ۲۰۰۹ تاکنون هرسال بیش‌ از ۱۰۰ آسیب‌پذیری در کد خود شناسایی کرده است. علاوه‌براین، از اوایل سال ۲۰۱۷ حدود ۱۵ باگ در مرورگر اینترنت اکسپلورر مایکروسافت شناسایی شده است.

بدافزار REvil

توسعه‌ی نرم‌افزار فرایند کاملی نیست. برنامه‌نویسان اغلب روی جدول‌های زمانی تعیین‌شده ازطرف تیم‌های مدیریتی کار می‌کنند و می‌کوشند اهداف معقولی را تعیین کنند که درنتیجه‌ی رعایت این مهلت‌های زمانی می‌تواند مسئله‌ساز باشد. توسعه‌دهندگان هنگام ساخت برنامه‌ها همه‌ی تلاش خود را برای طراحی ایمن محصولات انجام می‌دهند؛ اما امکان دارد موفق نشوند قبل از تاریخ تعیین‌شده همه‌ی ایرادها را شناسایی کنند.

احتمال دارد برخی تأخیرها در انتشار برنامه‌ها هزینه‌های زیادی برای شرکت‌های سازنده‌های آن‌ها در پی داشته باشد. بسیاری از شرکت‌ها نسخه‌ی اولیه‌ی محصول را منتشر و پس از شناسایی مشکلات، با ارائه‌ی به‌روزرسانی‌های امنیتی آن‌ها را برطرف می‌کنند. این آپدیت‌ها گاه به‌عنوان وصله‌های نرم‌افزاری نیز شناخته می‌شوند؛ زیرا هدف آن‌ها رفع ضعف‌های برنامه‌ها است.

مقاله‌ی مرتبط:

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

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

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

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

یکی از بهترین روش‌ها برای حفظ امنیت این است که کاربران به‌روزرسانی‌های نرم‌افزاری را به‌طور‌منظم نصب کنند. درادامه، می‌توانید فهرست ۵۰ نرم‌افزاری را مشاهده کنید که بیشترین تعداد آسیب‌پذیری در آن‌ها شناسایی‌شده است:

شماره نام محصول نام سازنده نوع محصول تعداد آسیب‌پذیری‌ها
۱ توزیع لینوکس Debian Debian سیستم‌عامل ۶۸۴۴
۲ اندروید گوگل سیستم‌عامل ۴۶۳۹
۳ توزیع لینوکس Fedora Fedoraproject سیستم‌عامل ۳۶۳۳
۴ توزیع لینوکس اوبونتو Canonical سیستم‌عامل ۳۵۵۱
۵ مک اواس ایکس اپل سیستم‌عامل ۳۰۱۹
۶ Linux Kernel لینوکس سیستم‌عامل ۲۹۳۹
۷ ویندوز ۱۰ مایکروسافت سیستم‌عامل ۲۸۸۹
۸ Iphone Os اپل سیستم‌عامل ۲۷۰۹
۹ ویندوز سرور ۲۰۱۶ مایکروسافت سیستم‌عامل ۲۶۷۶
۱۰ کروم گوگل اپلیکیشن ۲۵۰۱
۱۱ ویندوز سرور ۲۰۰۸ مایکروسافت سیستم‌عامل ۲۳۵۸
۱۲ ویندوز ۷ مایکروسافت سیستم‌عامل ۲۲۰۸
۱۳ ویندوز سرور ۲۰۱۲ مایکروسافت سیستم‌عامل ۲۰۲۷
‍۱۴ ویندوز سرور ۲۰۱۹ مایکروسافت سیستم‌عامل ۲۱۲۶
۱۵ ویندوز ۸٫۱ مایکروسافت سیستم‌عامل ۲۰۶۰
۱۶ فایرفاکس موزیلا اپلیکیشن ۱۹۹۳
۱۷ ویندوز RT نسخه ۸٫۱ مایکروسافت سیستم‌عامل ۱۸۷۵
۱۸ Enterprise Linux Desktop RedHat سیستم‌عامل ۱۷۵۱
۱۹ Enterprise Linux Server RedHat سیستم‌عامل ۱۷۰۹
۲۰ Enterprise Linux Workstation RedHat سیستم‌عامل ۱۶۷۰
۲۱ Leap Opensuse سیستم‌عامل ۱۵۸۶
۲۲ Tvos اپل سیستم‌عامل ۱۳۷۰
۲۳ Opensuse Opensuse سیستم‌عامل ۱۳۶۵
۲۴ Enterprise Linux RedHat سیستم‌عامل ۱۲۲۳
۲۵ اینترنت اکسپلورر مایکروسافت اپلیکیشن ۱۱۶۸
۲۶ MySQL Oracle اپلیکیشن ۱۱۵۶
۲۷ سافاری اپل اپلیکیشن ۱۱۴۸
۲۸ Watchos اپل سیستم‌عامل ۱۱۰۸
۲۹ Thunderbird موزیلا اپلیکیشن ۱۰۳۸
۳۰ Enterprise Linux Server Aus RedHat سیستم‌عامل ۸۱۱
۳۱ ویندوز ویستا مایکروسافت سیستم‌عامل ۷۹۴
۳۲ Firefox Esr موزیلا اپلیکیشن ۷۷۷
۳۳ Gitlab Gitlab اپلیکیشن ۷۲۸
۳۴ آفیس مایکروسافت اپلیکیشن ۷۱۴
۳۵ JRE Oracle اپلیکیشن ۷۰۱
۳۶ JDK Oracle اپلیکیشن ۶۹۶
۳۷ ویندوز ایکس‌پی مایکروسافت سیستم‌عامل ۶۸۵
۳۸ Seamonkey موزیلا اپلیکیشن ۶۸۰
۳۹ Oncommand Insight Netapp اپلیکیشن ۶۷۳
۴۰ PHP PHP اپلیکیشن ۶۵۷
۴۱ مک اواس اپل سیستم‌عامل ۶۵۳
۴۲ مک اواس ایکس سرور اپل سیستم‌عامل ۶۲۸
۴۳ Imagemagick Imagemagick اپلیکیشن ۶۲۷
۴۴ Wireshark Wireshark اپلیکیشن ۶۱۹
۴۵ Enterprise Linux Server Eus RedHat سیستم‌عامل ۶۱۸
۴۶ آی‌تیونز اپل اپلیکیشن ۶۰۳
۴۷ Sunos SUN سیستم‌عامل ۵۶۵
۴۸ Enterprise Linux Server Tus RedHat سیستم‌عامل ۵۶۴
۴۹ Oncommand Workflow Automation Netapp اپلیکیشن ۵۴۷
۵۰ Solaris Oracle سیستم‌عامل ۵۰۴

پاسخی بنویسید