آسیبپذیری HTTPoxy در برنامههای CGI محور نوشتهشده با زبانهای برنامهنویسی PHP، Python و Go باعث ایجاد اختلال در کتابخانه کد رایانهها میشود.
به گزارش افتانا (پایگاه خبری امنیت فناوری اطلاعات)، بهتازگی در برنامههای CGI محور نوشتهشده با زبانهای برنامهنویسی PHP، Python و Go یک نقطه آسیبپذیری با نام HTTPoxy مشاهده شدهاست که باعث ایجاد اختلال در کتابخانه کد رایانهها میشود. این آسیبپذیری عمری ۱۵ساله دارد و کتابخانههای کد بسیاری را که درخواستهای HTTP ایجاد میکنند آلوده کردهاست.
دومینیک شیرلینک، یکی از طراحان نرمافزار Vend، فوریه گذشته متوجه وجود این اشکال شد. وی سپس با استفاده از چندین شرکت فروش کارگزار، اقدام به رفع این اشکال کرد.
وی بهتازگی مطالب بیشتری از این نقطه آسیبپذیری را مطرح کردهاست و جزییات فنی مربوط به این نقطه و همچنین فرآیندهای انجامشده برای رفع آن را بیان کردهاست. او همچنین اطلاعیههای گروه پاسخگویی به حوادث رایانهای آمریکا و همچنین اطلاعیههای شرکتهای Apache ، Red Hat ،Nginx ،Drupal ،CloudFlare و Akamai را ضمیمه توضیحات خود کردهاست.
پیشینه این نقطه آسیبپذیری به مارس سال ۲۰۰۱ بازمیگردد. راندال ال شوارتز در آن زمان کشفکرد که بخش libwww-perl به طرز نادرستی سرآیندهای HTTP_PROXY را کنترل میکند. همچنین موارد مشابهی در شرکتهای curl (آوریل ۲۰۰۱)، Ruby (جولای ۲۰۱۲)، Nginx (نوامبر ۲۰۱۳) مشاهده شدهبود و اکنون محققان شاهد چنین مشکلی در اسکریپتهای زبانهای برنامهنویسی PHP ،Python و Python در محیطهای CGI هستند.
محیطهای CGI محور که درخواستهای HTTP جدید دارای سرآیند Proxy را دریافتمیکنند، محتوای سرآیند را بدون هیچگونه بررسی و فیلتر در بخش HTTP_PROXY نسخهبرداری میکنند.
بخش HTTP_PROXY در برنامههای بسیاری به منظور تنظیم خودکار بخش پروکسی خروجی مورد استفاده قرار میگیرد. هنگامیکه کاربر درخواست HTTP را انجام میدهد این درخواست به پروکسیهای تنظیمشده وارد میشود تا سپس به محل مقصد برسد.
یک نفوذگر ممکن است در این شرایط با استفاده از این نقطه آسیبپذیری در کار کارگزارها اختلال ایجاد کرده و یک برنامه CGI محور را مجبور به استفاده از یک پروکسی مخرب کند. هنگامیکه پروکسی مخرب مورد استفاده قرار گیرد درخواستهای خروجی HTTP نیز دارای محتوای مخرب خواهندبود و به این طریق یک حمله مرد میانی رخ میدهد.
جو سجیولا، یکی از کارمندان شرکت CloudFlare، توضیح بیشتری در این خصوص داد و گفت: «این نقطه آسیبپذیری در برنامههایی مشاهده میشود که از مدلهای اجرایی CGI محور استفاده میکنند. در پی سوءاستفاده از این نقطه، خدمات مربوط به توکن رابط برنامهنویسی نرمافزارها که مورد استفاده برنامه است، فاش میشود.»
شیرلینک که در مجله Medium به زبان ساده به تشریح این فرآیند برای کاربران عمومی پرداختهاست در این خصوص اذعان داشت که جلوگیری از سوءاستفاده از این نقطه کاری آسان و راحت است. وی در توضیحات بیشتر خود بیان کرد: «برای جلوگیری از هرگونه سوءاستفاده از این نقطه باید سریعاً دستبهکار شد. برای این کار در ابتدای ایجاد درخواستهای HTTP، یعنی در ابتدای ورود این درخواستها به رایانه، آنها را مورد بررسی قرار دهید. از این طریق میتوان بسیاری از نقاط آسیبپذیری نرمافزار را در یک لحظه رفعکرد.»
شیرلینک در ادامه توصیهکرد که بهترین کار حذف سرآیندهای Proxy است و گفت: «برای ایمنی کار، بهتر است سرآیندهای Proxy را حذفکرد. هر چیزی که یک پروکسی برعکس داشتهباشد میتواند مورد استفاده قرار گیرد. همچنین، اگر برنامه دیوار آتش اقدام به حذف سرآیندهای Proxy کند، میتوان اطمینان داشت که خطری رایانه را تهدید نمیکند.»
برنامهها و پروژههای متنباز بسیاری وجود دارند که در حالت CGI، نسبت به HTTPoxy آسیبپذیر هستند. شرکت Drupal در مورد یکی از پروژههای خود با نام ۸.x branch بهروزرسانیهای لازم را انجام دادهاست تا خطر وقوع حملات مرد میانی در کتابخانه Guzzle PHP کاهش پیدا کند. این شرکت از این کتابخانه برای ایجاد درخواستهای HTTP در سامانه مدیریت محتوا استفاده میکند.
مدیران وبسایتها نیز در این خصوص بهتر است منتظر پروندههای بهروزرسانی مربوط به پروژههای متنباز نباشند و خود اقدامات لازم را برای کاهش خطرهای موجود انجام دهند.
شناسههای CVE برای نقاط آسیبپذیری HTTPoxy بهصورت زیر است:
CVE-۲۰۱۶-۵۳۸۵ برای زبان برنامهنویسی PHP،
CVE-۲۰۱۶-۵۳۸۶ برای زبان برنامهنویسی Go،
CVE-۲۰۱۶-۵۳۸۷ برای کارگزار HTTP شرکت Apache،
CVE-۲۰۱۶-۵۳۸۸ برای محصول Tomcat شرکت Apache،
CVE-۲۰۱۶-۱۰۰۰۱۰۹ برای شرکت HHVM و CVE-۲۰۱۶-۱۰۰۰۱۱۰ برای زبان برنامهنویسی Python.