یک آسیب‌پذیری امنیتی جدی در شبکه تحویل محتوای(۱) CloudFlare کشف شده است که منجر به افشا شدن اطلاعات حساس و کلیدهای خصوصی جلسات(۲) وب‌سایت‌های معروف شده است.

CloudFlare یک شبکه تحویل محتوا و تأمین‌کننده امنیت وب است که به بهینه‌سازی امنیت و کارایی بیش از ۵٫۵ میلیون وب‌سایت در اینترنت کمک می‌کند. این شبکه به مشتریان خود در ارتباط با یک اشکال حیاتی هشدار داده است که می‌تواند منجر به افشا شدن اطلاعات حساس آن‌ها شامل کلمات عبور، کوکی‌ها و حتی نشانه‌های(۳) مورد استفاده برای تصدیق کاربران شود.

این آسیب‌پذیری که Cloudbleed نامیده شده است یک عیب بدذات است و نام‌گذاری آن از روی اشکال Cloudbleed صورت گرفته است که در سال ۲۰۱۴ کشف شده بود اما اعتقاد بر این است که از Heartbleed هم بدتر است.

Cloudbleed

این آسیب‌پذیری بسیار جدی است که نه‌تنها بر روی وب‌سایت‌های بر روی شبکه CloudFlare بلکه بر روی نرم‌افزارهای موبایل نیز تأثیرگذار است.

Cloudbleed دقیقاً چیست؟ چگونه کار می‌کند؟ چگونه شما تحت تأثیر این اشکال قرار خواهید گرفت و چگونه باید از خودتان در برابر این آسیب‌پذیری محافظت کنید؟ در ادامه تمامی این سؤالات جواب داده خواهند شد.

Cloudbleed چیست؟

این آسیب‌پذیری توسط عضو تیم پروژه Zero در گوگل یعنی Tavis Ormandy که یک محقق امنیتی است در هفته گذشته کشف شد. Cloudbleed یک اشکال اساسی در سرویس زیرساختار اینترنت CloudFlare است که منجر به نشت کلیدهای خصوصی جلسات و دیگر اطلاعات حساس وب‌سایت‌های بر روی اینترنت خواهد شد که توسط CloudFlare میزبانی می‌شوند.

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

در حدود یک هفته پیش،Ormandy  یک مشکل سرریز بافر را در سرورهای edge متعلق به CloudFlare کشف کرد که در حال اجرای پایان یک بافر بودند و حافظه‌ای شامل اطلاعات حساس را بازمی‌گرداندند. این اطلاعات حساس شامل کوکی‌های HTTP، نشانه‌های تصدیق و bodyهای HTTP POST و داده‌های نشت یافته ذخیره شده توسط موتورهای جستجو هستند.

Cloudbleed تا چه حد جدی است؟

Ormandy در یک وبلاگ در روز پنج‌شنبه ۱۶ فوریه ۲۰۱۷ این‌گونه نوشته است[۱]: “من توانستم به پیام‌های خصوصی افراد در سایت‌های همسریابی، تمامی پیام‌های ردوبدل شده در سرویس‌های چت مشهور، داده‌های مدیریت کلمات عبور آنلاین و غیره دسترسی پیدا کنم. ما در ارتباط با درخواست‌ها، آدرس‌های IP، پاسخ‌ها، کوکی‌ها، کلمات عبور، کلیدها، داده‌ها و هر چیزی که کاملاً HTTPS بود صحبت می‌کنیم.

بر طبق گفته Ormandy شبکه Cloudflare  در ویژگی ScrapeShield خود کدی داشته است[۲]که مشابه با خط زیر عمل می‌کرده است:

int Length = ObfuscateEmailAddressesInHtml(&OutputBuffer, CachedPage);
write(fd, OutputBuffer, Length);

اما این شرکت این موضوع را بررسی نمی‌کرد که تجزیه‌کننده‌های مبهم(۴) یک مقدار منفی را به خاطر HTML مخرب برگشت می‌داد.

CloudFlare

ویژگی ScrapeShield در Cloudflare در حقیقت HTML را مبهم و تجزیه می‌کند اما ازآنجایی‌که پروکسی‌های برگشتی بین مشتریان به اشتراک گذاشته می‌شوند، این موضوع بر روی تمامی مشتریان Cloudflare تأثیرگذار خواهد بود.

Ormandy با Cloudflare تماس گرفته بود و این آسیب‌پذیری را به همراه یافته‌های خود گزارش کرده بود. این شرکت دلیل اشکال به وجود آمده را پیدا کرده و به‌سرعت ۳ ویژگی جزئیCloudflare  شاملEmail obfuscation، Server-side Excludes و  Automatic HTTPS Rewritesرا که از زنجیره تجزیه‌گر HTML  استفاده می‌کردند و موجب این نشت اطلاعاتی شده بودند، غیرفعال کرده بود.

Ormandy کلیدهای رمزنگاری، کلمات عبور، کوکی‌ها، chunkهای POST data و درخواست‌های HTTPS را که مربوط به کاربران وب‌سایت‌هایی بود که Cloudflare میزبان آن‌ها بود مشاهده کرد و به‌سرعت با Cloudflare تماس گرفت.

ازآنجایی‌که Cloudflare این مشکل را برطرف کرده بود ولی تا روز چهارشنبه ۲۲ فوریه ۲۰۱۷ موضوعِ نشت اطلاعات را به مشتریان خود اطلاع نداده بود، Ormandy یافته‌های خود را در مورد این آسیب‌پذیری بر اساس سیاست ۷ روزه تیم پروژه Zero برای حملاتی که به صورت فعال مورد بهره‌برداری قرار می‌گیرند، در روز پنج‌شنبه و به صورت عمومی منتشر کرد.

در پی افشاسازی Ormandy در مورد این آسیب‌پذیری در روز پنج‌شنبه، Cloudflare این نقص را تأیید کرد و به مشتریان خود اطمینان داد که کلیدهای خصوصی SSL آن‌ها افشا نشده است.

مدیرCloudflare  یعنی John Graham-Cumming در یک پست در وبلاگ خود نوشته است[۳]: Cloudflare همیشه ارتباطات SSL را از طریق یک نمونه ایزوله شده از NGINX که تحت تأثیر این اشکال قرار ندارد محدود می‌کرده است. این اشکال بسیار جدی است چراکه نشت حافظه می‌تواند شامل اطلاعات خصوصی باشد و به همین علت توسط موتورهای جستجو ذخیره‌سازی شده است. ما به این علت این مشکل را افشاسازی کردیم که در حال حاضر از پاک شدن cache های موتورهای جستجو که اطلاعات حساس در آن‌ها ذخیره شده بود اطمینان حاصل کردیم. ما همچنین هیچ‌گونه مدرکی مبنی بر بهره‌برداری مخرب از این اشکال یا گزارشی که حاوی بهره‌برداری از این آسیب‌پذیری باشد، مشاهده نکردیم.”

علت ریشه‌ای آسیب‌پذیری Cloudbleed:

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

Had the check been done using >= instead of == jumping over the buffer end would have been caught

Cloudflare  همچنین تأیید کرده است که بیشترین بازه تأثیر بین تاریخ‌های ۱۳ فوریه ۲۰۱۷ تا ۱۸ فوریه ۲۰۱۷ بوده است که در نتیجه آن ۱ در ۳٫۳۰۰٫۰۰۰ از درخواست‌های HTTP از طریق Cloudflare به طور بالقوه می‌تواسته منجر به نشت حافظه شود که احتمال آن چیزی در حدود ۰٫۰۰۰۰۳ % است.

به هر حال، این محقق استدلال کرده است که این تأمین‌کننده DNS حقه‌بازی کرده است و بر اساس داده‌های cashe موجود در موتور جستجوی گوگل، این آسیب‌پذیریِ موجود بر روی Cloudflare به مدت چند ماه وجود داشته است.

Cloudbleed چگونه بر روی شما تأثیر می‌گذارد؟

تعدادی زیادی از سرویس‌ها و وب‌سایت‌های Cloudflare وجود دارد که صفحات HTML را تجزیه می‌کنند و آن‌ها را از طریق سرورهای edge شرکت Cloudflare تغییر می‌دهند.

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

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

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

بعضی از این اطلاعات حساس در cache موتورهای جستجو مانند گوگل، Bing و یاهو ذخیره شده‌اند که البته در حال حاضر پاک شده‌اند اما بعضی از موتورهای جستجو مانند DuckDuckGo همچنان میزبان این اطلاعات هستند[۴].

همچنین نشت اطلاعات حساس دیگری نیز می‌تواند در دیگر سرویس‌ها و chach ها و در سراسر وب وجود داشته باشد که پاک کردن تمامی این داده‌ها غیرممکن است.

Cloudbleed همچنین بر روی نرم‌افزارهای موبایل نیز تأثیرگذار است.

Cloudbleed  همچنین بر روی نرم‌افزارهای موبایل نیز تأثیرگذار است چرا که در بسیاری از موارد این نرم‌افزارها به‌گونه‌ای طراحی شده‌اند که از پایانه‌های(۵) مشابه مرورگرها به‌منظور پایان‌دهی(۶) HTTPS و تحویل محتوا(۷) استفاده کنند.

کاربرانYCombinator  وجودِ داده‌های سرآیند HTTP را برای نرم‌افزارهایی مانند Discord، FitBit و Uber از طریق جستجو در cache هایDuckDuckGo  با عبارات جستجوی هدف قرار داده شده[۵]، تأیید کردند[۶].

در یک آنالیز که توسط NewSecure انجام شده است، محققان ۲۰۰ نرم‌افزار تحت سیستم‌عامل iOS را از بین ۳۵۰۰ نرم‌افزار معروف موجود بر روی app store، کشف کردند که از سرویس‌هایCloudflare  استفاده می‌کردند.

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

بعضی از مشتریان اصلی Cloudflare  که تحت تأثیر این آسیب‌پذیری قرار داشتند شامل Uber، ۱Password، FitBit و OKCupid هستند. اگرچه، در یک گزارش که توسط شرکت ۱Password منتشر شده است، این شرکت به مشتریان خود اطمینان داده است که اطلاعات حساس آن‌ها افشا نشده است چراکه این سرویس‌ در مسیر تبادل، رمزنگاری شده است.

بااین‌حال، یک لیست از وب‌سایت‌ها که به صورت بالقوه تحت تأثیر این آسیب‌پذیری قرار دارند توسط یک کاربر منتشر شده است که در GitHub با نام pirate شناخته می‌شود[۷]. این سایت‌ها شامل این موارد هستند: CoinBase ،۴Chan ،DigitalOcean ،Medium، ProductHunt ،Transferwise ،The Pirate Bay ،Extra Torrent ،BitDefender ،Pastebin ،Zoho ،Feedly ،Ashley Madison،Bleeping Computer و The Register

ازآنجایی‌که CloudFlare  فهرستی از سرویس‌های آلوده شده خود منتشر نکرده است، به یاد داشته باشید که این یک لیست جامع نیست.

شما در قبال آسیب‌پذیری Cloudbleed باید چه‌کار کنید؟

به کاربران آنلاین شدیداً توصیه می‌شود تا کلمات عبور خود را برای تمامی حساب‌های کاربری‌شان تغییر دهند چراکه امکان استفاده از کلمات عبور مشابه برای حساب‌های کاربری مختلف بر روی سایت‌ها وجود دارد و همچنین حساب‌های کاربری خود را به صورت فعال و بسیار دقیق مونیتور کنند.

علاوه بر این، به مشتریانی که از Cloudflare  برای وب‌سایت‌هایشان استفاده می‌کنند پیشنهاد می‌شود که کاربران خود را مجبور به تغییر دادن کلمات عبورشان کنند.

نماینده شرکت Uber با نویسنده این مقاله از طریق پست الکترونیک تماس گرفته است و اظهار داشته است که تحقیقات آن‌ها به این نتیجه رسیده است که آسیب‌پذیری CloudBleed  منجر به افشا شدن کلمات عبور مشتریان آن‌ها نشده است. بیانیه منتشر شده از طرف Uber بدین شرح است:

“ترافیک بسیار کمی از طرف Uber از طریق Cloudflare صورت می‌گیرد بنابراین فقط تعداد انگشت‌شماری از token ها درگیر این آسیب‌پذیری شده‌اند و آن‌ها نیز تغییر داده شده‌اند. کلمات عبور مشتریان افشا نشده است.”

در همین حال، سخنگویDuckDuckGo  نیز با وب‌سایت The Hacker News در تماس بوده است و گفته است که این موتور جستجو داده‌های نشت پیدا کرده از DuckDuckGo را پاک کرده است.

منابع

[۱] https://bugs.chromium.org/p/project-zero/issues/detail?id=1139

[۲] https://blog.cloudflare.com/introducing-scrapeshield-discover-defend-dete

[۳]https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug

[۴]https://duckduckgo.com/?q=+%7B%22scheme%22%3A%22http%22%7D+CF-Host-Origin-IP&t=h_&ia=web

[۵]https://duckduckgo.com/?q=%7B%22scheme%22%3A%22http%22%7D+CF-Host-Origin-IP+fitbit&t=h_&ia=web

[۶] https://news.ycombinator.com/item?id=13718752

[۷] https://github.com/pirate/sites-using-cloudflare

[۸] http://thehackernews.com/2017/02/cloudflare-vulnerability.html


(۱) content delivery network
(۲) private session keys
(۳) tokens
(۴) obfuscation parsers
(۵) backends
(۶) termination
(۷) content delivery