دانش و فناوری

کابوس اینترنت؛ چگونه دو حفره امنیتی در PHP بخش وسیعی از وب را به خطر انداخت؟

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

این دو آسیب‌پذیری که PHP2Shell نام گرفته‌اند و با شناسه‌های CVE-2026-109618 و CVE-2026-109619 ثبت شده‌اند، به مهاجمان امکان می‌دهند بدون نیاز به رمز عبور یا هرگونه احراز هویت، از راه دور روی سیستم آسیب‌پذیر کد اجرا کنند. چنین قابلیتی که اجرای کد از راه دور (Remote Code Execution) نام دارد، از خطرناک‌ترین انواع آسیب‌پذیری‌های امنیتی محسوب می‌شود؛ زیرا مهاجم می‌تواند از آن برای نفوذ به سرور، نصب بدافزار، سرقت اطلاعات یا حفظ دسترسی به سیستم برای حملات بعدی استفاده کند.

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

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

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

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

حفره‌هایی که سال‌ها وجود داشتند، اما تازه خطرناک شدند

پژوهشگران شرکت Calif این دو آسیب‌پذیری را در سال ۲۰۲۴ شناسایی کرده بودند، اما در آن زمان تصور می‌شد امکان سوءاستفاده عملی از آن‌ها وجود ندارد. به همین دلیل، اصلاحیه‌ای برای رفع آن‌ها منتشر نشد. این وضعیت زمانی تغییر کرد که پژوهشگران راهی برای استفاده از حفره‌ها پیدا کردند و بنیاد PHP را در جریان گذاشتند.

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

پس از گزارش Calif، بنیاد PHP فرایند رفع آسیب‌پذیری‌ها و افشای هماهنگ آن‌ها را آغاز کرد. جزئیات و وصله‌ها در دوره‌ای محرمانه در اختیار برخی شرکت‌های بزرگ اینترنتی و میزبان‌های وب قرار گرفت تا پیش از اعلام عمومی، فرصت اصلاح سیستم‌های خود را داشته باشند. وصله‌های عمومی در روز چهارشنبه ۲۱ اکتبر ۲۰۲۶ (۲۹ مهر) منتشر شدند.

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

چرا انتشار وصله‌ها به معنای پایان خطر نیست؟

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

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

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

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

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

هوش مصنوعی چقدر در کشف آسیب‌پذیری‌ها نقش داشت؟

پژوهشگران Calif در جریان بررسی امنیتی کد PHP، با همکاری شرکت سازنده مدل‌های هوش مصنوعی اوپن‌ای‌آی و شرکت امنیت ابری Wiz، روی این آسیب‌پذیری‌ها کار کردند. اوپن‌ای‌آی و ویز نیز نمونه‌های اثبات مفهوم حمله را که Calif ساخته بود بررسی و تأیید کردند.

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

پژوهشگران در گزارش خود تأکید دارند مدل‌های هوش مصنوعی هنوز نمی‌توانند صرفاً با چند دستور ساده، تمام آسیب‌پذیری‌های یک نرم‌افزار را پیدا کنند. این نکته برای درک نقش هوش مصنوعی در امنیت سایبری مهم است: این ابزارها می‌توانند بخشی از فرایند تحلیل و آزمایش را تسهیل کنند، اما کشف یک نقص قابل‌سوءاستفاده همچنان به دانش تخصصی، بررسی دقیق کد و تلاش انسانی نیاز دارد.

چرا نرم‌افزارهای قدیمی همچنان نقطه‌ضعف اینترنت‌ هستند؟

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

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

نگهداری این زیرساخت‌ها نیز به منابع نیاز دارد. بسیاری از پروژه‌های متن‌باز به توسعه‌دهندگانی وابسته‌اند که لزوماً بابت کار خود دستمزد دریافت نمی‌کنند و ممکن است توان مالی لازم برای بررسی‌های امنیتی مستقل و گسترده را نداشته باشند. مدتی پیش مدیر بنیاد PHP گفت فقط یک کارمند تمام‌وقت دارند و بودجه آنها بسیار کم است.

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

آیا چنین بحرانی دوباره تکرار می‌شود؟

PHP2Shell یادآور رخدادهایی است که نشان داده‌اند نقص در یک جزء مهم از زیرساخت دیجیتال می‌تواند آثار گسترده‌ای ایجاد کند. در سال ۲۰۱۶، یک بات‌نت بزرگ با ارسال حجم عظیمی از ترافیک، شرکت مدیریت زیرساخت اینترنتی Dyn را مختل کرد و دسترسی به شماری از سرویس‌های پرکاربرد وب را تحت تأثیر قرار داد. در سال ۲۰۱۷ نیز ابزارهای هک دولتی آمریکا که به بیرون درز کرده بودند، در حمله باج‌افزاری به سامانه سلامت بریتانیا مورد استفاده قرار گرفتند. در سال ۲۰۲۴، به‌روزرسانی معیوب شرکت کراوداسترایک باعث از کار افتادن تعداد زیادی از کامپیوتر‌های ویندوزی در سراسر جهان شد.

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

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

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

آگهی
دکمه بازگشت به بالا