آیا امکان دور زدن کلودفلر و سازوکارهای حفاظتی آن مثل فایروال و حفاظت DDoS وجود دارد؟ کشف آسیبپذیری در پلتفرم Cloudflare نشان میدهد که هکرها میتوانند فایروال و حفاظت DDoS کلودفلر را دور بزنند. برای اطلاعات بیشتر در این رابطه، مقاله پیش رو را بخوانید.
جدیدترین بررسیها نشان میدهد که سازوکارهای حفاظتی کلودفلر که کاربر میتواند آنها را تنظیم کند (مثل فایروال و حفاظت در مقابل حملات DDoS) به دلیل نواقصی در کنترلهای امنیتی cross-tenant، قابل دور زدن هستند و کاربران را در معرض تهدیداتی قرار میدهند که کلودفلر باید جلوی آنها را بگیرد. مهاجمان میتوانند از حسابهای کاربری کلودفلر خود برای سوء استفاده از رابطه معتمدانه کلودفلر با وبسایتهای کاربر این پلتفرم، بهره بگیرند و سازوکارهای حفاظتی کلودفلر را از کار بیاندازند. کاربران کلودفلر باید برای اطمینان از تنظیمات درست کلودفلر، استراتژی حفاظتی سرور اصلی خود را بازبینی کنند تا جلوی چنین حملاتی را بگیرند.
در این مقاله میخوانید:
نگاهی بر سازوکار کلودفلر و مشکل امنیتی آن
سازوکار Authenticated Origin Pulls
سازوکار Allowlist Cloudflare IP addresses
پیش از بررسی امکان دور زدن کلودفلر بد نیست که نگاهی به این پلتفرم و سازوکارهای امنیتی آن داشته باشیم. کلودفلر (Cloudflare) یک شرکت امنیت سایبری بسیار مهم است که خدمات حفاظت وبسایت هاستشده (مثل فایروال اپلیکیشن وب حفاظت DDoS، مدیریت بات و ...) ارائه میدهد. ارائه این خدمات با میزبانی از یک فریمورک متشکل از سرورهای پروکسی معکوس (reverse-proxy) که بین وبسرور مشتری (که سرور اصلی یا origin server نامیده میشود) و کاربران آن قرار دارند و امکان تحلیل ترافیک برای پیدا کردن ترافیک مسموم فراهم میآورند، امکانپذیر است. از آنجایی که احتمالا کاربران کلودفلر به خدمات سرور اصلی وابسته هستند، ضرورت دارد که از این سرور در مقابل هر نوع دسترسی که از سرورهای پروکسی معکوس تنظیم شده عبور نکرده است، محافظت شود.
در صورتی که کاربران از دستورالعملهای کلودفلر پیروی کنند، ممکن است به صورت ناخواسته سازوکارهایی را به کار بگیرند که امکان اکسپلویت شدن آنها از طریق خود پلتفرم کلودفلر وجود دارد. این آسیبپذیری به دلیل اشتراکی بودن زیرساختهای کلودفلر بین کاربران (مشروع یا متخاصم) این پلتفرم است که این امکان را در اختیار کاربران متخاصم قرار میدهد تا سازوکارهای امنیتی کلودفلر را دور بزنند و سیستمهای دیگر کاربران را هدف بگیرند.
کلودفلر سازوکارهای متنوعی برای جلوگیری از کشف و اورلود کردن سرور هدف با درخواستهای نامشروع توسط هکرها دارد که در لایههای مختلف شامل لایه اپلیکیشن، لایه انتقال و لایه شبکه قرار گرفتهاند. این سازوکارها دارای درجات امنیتی متفاوتی، از امنیت متوسط گرفته تا بسیار امن هستند و هر کدام از آنها، چالشهای فنی مخصوص به خودشان را دارند که امکان دور زدن کلودفلر را فرآهم میآورند.
دو مورد از این سازوکارها به صورت محلی (on premise) کار میکنند و در آنها، تمامی ترافیکی که از کلودفلر به سرور اصلی فرستاده میشود، قابل اعتماد در نظر گرفته میشود اما ترافیک ارسالی از منابع دیگر، رد میشود. بنابراین، هکرها میتوانند ترافیک نامشروع خود را از طریق کلودفلر به سرور اصلی ارسال کنند و سازوکارهای حفاظتی مختلف (مثل فایروال اپلیکیشن وب) را که ممکن است کاربران دیگر کلودفلر برای محیط خودشان تنظیم کرده باشند، دور بزنند. میزان تبعات دور زدن این سازوکارهای امنیتی به تنظیمات سرور اصلی کاربران بستگی دارد.
وقتی کاربران، گزینه Authenticated Origin Pulls را در لایه انتقال انتخاب کنند، هویت سرورهای پروکسی معکوس کلودفلر، با استفاده از گواهی SSL کاربر، برای سرور اصلی احراز میشود. دو راه برای احراز هویت اتصال کاربران وجود دارد که هر دوی آنها از درون سرور پروکسی معکوس کلودفلر رد میشوند و به سرور اصلی میرسند. کاربران میتوانند یکی از از دو گزینه زیر را انتخاب کنند:
با این حال، مستند ارائه شده توسط کلودفلر، در رابطه با مشکلات امنیتی این گزینهها که امکان دور زدن کلودفلر را فرآهم میآورند، صحبت نمیکند. همچنین، باید اشاره کنیم که گزینه Custom certificate تنها با استفاده از API قابل تنظیم است و طبیعی است که کاربران، گزینه راحتتر، یعنی Cloudflare certificate را انتخاب ميکنند.
مشکل جدی استفاده از Cloudflare certificate مشترک این است که تمامی ترافیک ارسالی از طرف کلودفلر، مجاز در نظر گرفته میشود و مهم نیست که کدام کاربر کلودفلر، ترافیک را ارسال کرده است. در نتیجه، یک کاربر نامشروع (هکر) میتواند با کلودفلر یک دامنه سفارشیسازی شده بسازد و DNS A record را به آدرسهای IP قربانیان، ارسال کند. سپس، هکر تمامی قابلیتهای امنیتی دامنههای قربانیان را غیرفعال میکند و حمله خودش را از طریق زیرساختهای کلودفلر انجام میدهد. بدین ترتیب، هکرها میتوانند قابلیتهای امنیتی تنظیم شده توسط قربانی را دور بزنند.
پیشگیری از این روش هک دامنههای کاربران کلودفلر در حال حاضر فقط با استفاده از Custom certificate امکانپذیر است. کاربر برای استفاده از این گزینه باید origin pull certificateهای خودش را بسازد و نگهداری کند.
در صورت استفاده از سازوکار Allowlist Cloudflare IP addresses، سرور اصلی، هر ترافیکی را که در محدوده آدرس IP کلودفلر قرار نداشته باشد، رد میکند. مثل سازوکار قبلی، مشکل امنیتی مهم سازوکار Allowlist Cloudflare IP addresses که امکان دور زدن کلود فلر را فراهم میآورد، این است که هر ترافیکی با IP کلودفلر، مجاز شناخته میشود و به سرور اصلی راه پیدا میکند. بنابراین، یک کاربر نامشروع (هکر) میتواند با کلودفلر یک دامنه سفارشیسازی شده بسازد و DNS A record را به آدرسهای IP قربانیان، ارسال کند. سپس، هکر، تمامی قابلیتهای امنیتی دامنههای قربانیان را غیرفعال میکند و حمله خودش را از طریق زیرساختهای کلودفلر انجام میدهد. بدین ترتیب، هکرها میتوانند قابلیتهای امنیتی تنظیم شده توسط قربانی را دور بزنند.
در حال حاضر، تنها روش جلوگیری از این حمله، استفاده از Cloudflare Aegis است که به جای استفاده از محدوده آدرس IP مشترک، از آدرسهای IP اختصاصی خارجشونده (egress IP addresses) استفاده میکند. با این حال، بعضی از کاربران کلودفلر به این سرویس دسترسی ندارند.
با وجود آسیبپذیریهای گفته شده در زیرساختهای کلودفلر، روشهایی برای پیشگیری از دور زدن کلودفلر وجود دارد. سازوکار Allowlist Cloudflare IP addresses باید به عنوان یک سازوکار دفاع در عمق (defense-in-depth) در نظر گرفته شود و نمیتوان به تنهایی از آن برای محافظت از سرورهای اصلی استفاده کرد. در صورت استفاده از سازوکار Authenticated Origin Pulls نیز باید به جای گزینه Cloudflare certificate از گزینه Custom certificate استفاده شود. دیگر سازوکارهای احراز هویت کاربر کلودفلر نیز باید برای محافظت از سرورهای اصلی، در نظر گرفته شوند.