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

یک‌شنبه ۳ مهر ۱۴۰۱ - ۲۰:۳۰
مطالعه 6 دقیقه
سارقان برای سرقت از مکان‌های فیزیکی از ابزارهای مختلفی استفاده می‌کنند. در حوزه‌ی سایبری، می‌توان نرم‌افزارها و آسیب‌پذیری‌های امنیتی برنامه‌ها را به لوازم سرقت فیزیکی تشبیه کرد.
تبلیغات

باج‌افزار 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

سیستم‌عامل

۵۰۴

تبلیغات
داغ‌ترین مطالب روز

نظرات

تبلیغات