مسمومیت کش چیست؟ چگونه هکرها حافظه پنهان وب را دستکاری می کنند و چگونه از آن اجتناب کنیم
کش های وب نقش مهمی در سرعت بخشیدن به تجربه مرور ما دارند. آنها نسخه هایی از صفحات وب و سایر منابع را ذخیره می کنند تا کاربران بتوانند سریعتر به آنها دسترسی داشته باشند.
اما چه اتفاقی می افتد که این کش ها به ابزاری برای هکرها تبدیل شوند؟
بیایید به مسمومیت کش، نحوه عملکرد آن و نحوه محافظت در برابر آن نگاه کنیم.
وب کش چیست؟
Caching به معنای ذخیره یک کپی از یک قطعه محتوا است. کش وب کپی صفحات وب یا قسمت هایی از محتوای وب را به طور موقت ذخیره می کند.
هنگامی که از یک وب سایت بازدید می کنید، مرورگر شما ممکن است برخی از عناصر مانند تصاویر و اسکریپت ها را در حافظه پنهان نگه دارد. پس دفعه بعد که از همان سایت بازدید می کنید، مرورگر می تواند آن را سریعتر بارگذاری کند.
کش سرعت وب سایت ها را افزایش می دهد. مقدار داده هایی که باید از طریق شبکه منتقل شوند را کاهش می دهد. این باعث می شود که مرور کارآمدتر شود و تجربه روان تری برای کاربران فراهم کند.
یک کش می تواند در چندین مکان باشد. این موارد عبارتند از:
حافظه پنهان مرورگر: مرورگر شما یک کپی از صفحات وب، تصاویر و سایر مطالب اخیراً بازدید شده را نگه می دارد.
حافظه پنهان CDN : CDN ها کپی هایی از منابع وب را در چندین مکان در سراسر جهان ذخیره می کنند. این تضمین می کند که کاربران به سرور نزدیک دسترسی پیدا کنند و زمان بارگذاری را کاهش می دهد.
Reverse Proxy Cache: یک سرور پروکسی معکوس بین کاربران و وب سرور قرار می گیرد. برای کاهش بار سرور و بهبود زمان پاسخگویی، محتوا را ذخیره می کند.
کش وب بر اساس چند اصل اساسی کار می کند.
انقضا: محتوای ذخیره شده در حافظه پنهان دارای ارزش زمان برای زندگی (TTL) است. پس از این TTL، کش پاک می شود.
اعتبار سنجی: حافظه پنهان با سرور تحلیل می کند تا ببیند آیا محتوای ذخیره شده هنوز معتبر است یا نیاز به تجدید دارد.
عدم اعتبار : اگر محتوای یک وب سایت به روز شود، حافظه پنهان را حذف می کند و آخرین نسخه را از سرور واکشی می کند.
چگونه مسمومیت کش کار می کند؟
مسمومیت کش یک حمله سایبری است که در آن یک هکر داده های ذخیره شده در کش وب را دستکاری می کند. کش یک نسخه مضر یا تغییر یافته را ذخیره می کند، نه یک صفحه واقعی.
هنگامی که کاربر این محتوای کش را درخواست می کند، در عوض داده های دستکاری شده را دریافت می کند. این حمله می تواند منجر به اجرای اسکریپت های خطرناک در مرورگرهای کاربر شود.
در یک حمله مسمومیت حافظه پنهان، یک هکر از نحوه ذخیرهسازی محتوا توسط سیستمهای کش سوء استفاده میکند. در اینجا توضیح ساده ای از نحوه عملکرد این حمله آورده شده است.
مهاجم ابتدا شناسایی می کند که کدام منابع در یک وب سایت ذخیره شده اند. آنها به دنبال صفحات یا منابعی می گردند که حافظه پنهان ممکن است بر اساس URL یا هدر درخواست ذخیره کند.
سپس مهاجم درخواستی را ایجاد می کند که حاوی محتوای مضر است. این درخواست مانند یک درخواست قانونی به نظر می رسد به طوری که کش پاسخ را ذخیره می کند.
سرور درخواست را پردازش می کند و پاسخی را برمی گرداند که کش می شود. اگر سرور کش درخواست را تحلیل نکند، محتوای مخرب را ذخیره می کند.
اکنون، زمانی که کاربر منبع ذخیره شده را درخواست می کند، کش به جای نسخه قانونی، نسخه مخرب را ارائه می دهد.
تکنیک های رایج مورد استفاده در مسمومیت کش
مسمومیت کش از آسیب پذیری های مختلف در مکانیسم های کش وب سوء استفاده می کند. برخی از رایج ترین تکنیک ها عبارتند از:
حملات هدر میزبان
هدر "Host" مشخص می کند که درخواست برای کدام دامنه است. مهاجمان می توانند این هدر را تغییر دهند. آنها می توانند سرور را فریب دهند تا یک پاسخ مخرب را ذخیره کند. به عنوان مثال
درخواست عادی
GET /resource HTTP/1.1 Host: www.example.com
درخواست مخرب
GET /resource HTTP/1.1 Host: attacker.com
اگر حافظه پنهان پاسخ را بر اساس میزبان دستکاری شده ذخیره کند، همه کاربران «www.example.com» ممکن است محتوای مخرب دریافت کنند.
آلودگی پارامتر HTTP
مهاجمان می توانند پارامترهای غیرمنتظره را به URL ها تزریق کنند. این رفتار سرور را تغییر می دهد و کش را مسموم می کند. به عنوان مثال:
URL معمولی : https://www.example.com/page?id=123
URL مخرب : https://www.example.com/page?id=123&malicious_flag=101
اگر سرور این پارامترها را پاکسازی نکند، ممکن است محتوای متفاوتی را ذخیره کند. کاربر بعدی که از URL معمولی بازدید می کند ممکن است محتوای مسموم را دریافت کند.
دستکاری هدر متفاوت
هدر Vary یک هدر پاسخ HTTP است. به کش ها می گوید که چگونه نسخه های مختلف یک منبع وب را بر اساس سرصفحه های درخواستی خاص ذخیره کنند.
به عنوان مثال، اگر سرور یک هدر "Vary: User-Agent" ارسال کند، به این معنی است که پاسخ ممکن است بر اساس عامل کاربر مشتری متفاوت باشد. پس کش ها نسخه های جداگانه ای از منبع را برای عوامل کاربر مختلف ذخیره می کنند. به عنوان مثال، یکی برای مرورگرهای دسکتاپ و دیگری برای مرورگرهای موبایل.
اگر هدر "Vary" به درستی تحلیل نشود، مهاجمان می توانند هدر درخواست را دستکاری کنند تا حافظه پنهان را مسموم کند.
برای مثال، یک مهاجم میتواند درخواستی را با یک هدر دستکاری شده «User-Agent» ایجاد کند. این می تواند منجر به ذخیره شدن محتوای مخرب برای کاربر بعدی شود.
نحوه محافظت در برابر مسمومیت حافظه پنهان
اکنون که متوجه شدیم مسمومیت کش چگونه کار می کند، بیایید ببینیم که چگونه از آن محافظت کنیم:
اعتبار سنجی ورودی مناسب
همیشه ورودی های کاربران را ضدعفونی و تحلیل کنید. به خصوص وقتی صحبت از درخواست سرصفحه ها و پارامترهای URL باشد. این کار مهاجمان را از تزریق محتوای مضر به درخواستهای کش جلوگیری میکند.
از هدرهای ذخیره امن استفاده کنید
هدرهای کش مانند «Cache-Control» و «Expires» را به درستی تنظیم کنید تا از ذخیره اطلاعات حساس در حافظه پنهان جلوگیری کنید. برای محتوای پویا یا حساس از هدرهایی مانند «بدون کش»، «بدون ذخیره» و «باید مجدداً تأیید شود» استفاده کنید.
تنظیمات کلید حافظه پنهان را کنترل کنید
کلیدهای کش را به درستی تنظیم کنید تا از ذخیره پاسخ ها با پارامترهای خاص کاربر جلوگیری کنید. از سرصفحه های درخواست یا پارامترهای پرس و جو که مهاجمان می توانند به راحتی آنها را دستکاری کنند، استفاده نکنید.
HTTPS را پیاده سازی کنید
استفاده از HTTPS به جلوگیری از رهگیری و تغییر درخواست ها و پاسخ ها توسط مهاجمان کمک می کند. HTTPS همچنین خطر حملات مسمومیت حافظه پنهان را کاهش می دهد، زیرا یکپارچگی داده ها را تضمین می کند.
نتیجه گیری
مسمومیت کش خطر قابل توجهی برای برنامه های کاربردی وب و کاربران دارد. هکرها می توانند محتوای کش شده را برای ارائه داده های مخرب دستکاری کنند یا اطلاعات حساس را سرقت کنند.
شما می توانید با یادگیری نحوه عملکرد و با استفاده از اقدامات احتیاطی مناسب، از برنامه های وب خود در برابر مسمومیت حافظه پنهان محافظت کنید. با رویکرد صحیح، می توانید تجربه مرور ایمن تری را برای کاربران خود تضمین کنید.
برای مقالات بیشتر در مورد امنیت سایبری تهاجمی و تدافعی، خبرنامه Stealth Security را تحلیل کنید .
ارسال نظر