حملات تزریق SQL از مدتها قبل گریبانگیر وب بوده است؛ به گونهای که به نظر میرسد پیدایش و توسعهی آنها همگام پیش رفته است
حملات تزریق SQL از مدتها قبل گریبانگیر وب بوده است؛ به گونهای که به نظر میرسد پیدایش و توسعهی آنها همگام پیش رفته است. اما با وجود اینکه اساس این حملات ثابت باقیمانده – یعنی فریب دادن برنامه با استفاده از یک ورودی مخصوص، به گونهای که برنامه فکر کند یک دستور معتبر SQL به آن وارد شده است – توسعهی برنامههای همراه و وب جدید و تکنیکهای جدید حمله با استفاده از شیوههای تزریق SQL قدیمی، این حملات را به مرحلهی جدیدی وارد کردهاند.
به عنوان مثال، چند روز پیش متخصصان Sucuri Security اعلام کردند که مهاجمان موفق به استفاده از باتهای موتور جستجوی گوگل برای اجرای حملات تزریق SQL علیه وبگاهها شدهاند.
دنیل سید، از محققان این شرکت مینویسد: «در این سناریو، بات در حال مرور وبگاه A است. وبگاه A دارای تعدادی لینک است که دارای فرمانهای تزریق SQL جهت حمله به وبگاه B هستند. گوگل بات در ادامهی فعالیت خود و مرور صفحات، لینکها را دنبال میکند و به ناچار با دنبال کردن این لینک، به وبگاه B حمله خواهد کرد.»
همانطور که سید توضیح میدهد، این شیوه به مهاجم امکان میدهد عمدهی بار حمله را بر دوش گوگل بات قرار دهد و ردپای خود را مخفی کرده و از شناسایی حمله توسط دیوارهی آتش نیز جلوگیری کند.
با وجود اینکه استفاده از گوگل بات یکی از عجیبترین مثالهای حملات تزریق SQL، بدون تغییر عمده در اصول پایهای آن، است، اما احتمال میرود صحنهی فناوری اطلاعات شاهد تغییرات خطرناکتری در حملات تزریق SQL باشد. به گفتهی دن کویکندال (Dan Kuykendall) رئیس شرکت فناوریهای امنیتی NT Objectives، این تتغییر به گونهای خواهد بود که آسیبپذیریهای تزریق SQL بیشتر در برنامههای وب و همراه مورد سوءاستفاده قرار خواهند گرفت. این حملات با استفاده از قالبهای برنامهنویسی و بسترهای توسعهی نرمافزار جدید، مانند JSON، AMF، و REST انجام خواهند شد که لزوماً بر شیوهی ارائهی دادهی نام-ارزش، که حملات تزریق SQL آنها را هدف قرار میدهند، وابسته نیستند.
کویکندال میگوید: «دنیا در حال تغییر است؛ قالبهای جدیدی ایجاد شده که برای ارسال داده استفاده میشود. راههای جدیدی برای ایجاد نرمافزار به وجود آمده؛ مانند REST، مانند AJAX و [با استفاده از اینها] برنامههای همراه و پویاتری در اختیار داریم. و اینها راههای متفاوتتری برای بستهبندی دادهها دارند. آنها از شیوهی قدیمی جفت نام-ارزش استفاده نمیکنند.»
او در ادامه توضیح میدهد که، با وجود آنکه احتمالاً برخی فرض میکنند در نتیجهی این تغییرات، برنامههای جدید در برابر تزریق SQL آسیبپذیر نیستند، اما واقعیت اینطور نیست. این برنامهها – چه وب چه همراه – هنوز هم حجم زیادی داده را میان برنامه و پایگاه داده جابهجا میکنند و هنوز هم اگر مهاجم کمی وقت برای درک تغییرات در دستورات برنامه صرف کند، میتواند آنها را با استفاده از تزریق SQL مورد حمله قرار دهد.
کویکندال میگوید: «من هنوز هم میتوانم حملات تزریق SQL انجام دهم. برای شروع باید به دنبال محلی بگردم که دستورات مخرب را در آن وارد کنم. دیگر قادر نیستم از جفت نام-ارزش استفاده کنم. در عوض باید به قالب دستورات نگاه کرده و آن را درک کنم، و بفهمم چگونه کدی را به آن تزریق کنم و در نتیجه هنوز هم قادر به انجام حملات SQL هستم.»
به دلیل تفاوت چگونگی انتقال و قالب محتوای مخرب تزریق SQL در برنامههای جدید، ابزارهای پویشگر آسیبپذیریِ معمول، قادر به شناسایی آنها نیستند.
به گفتهی وی: «[توسعهدهندگان] در حال جابهجا کردن دادهها هستند؛ آنها این دادهها را میگیرند و همانکارهایی که همیشه بر روی آنها انجام میدادند، را انجام میدهند و از آنها در فرامین SQL استفاده میکنند.» او در ادامه میگوید که توسعهدهندگان معمولاً فرض را بر این میگذارند که تمام دادهها و فرامین ارسال شده از سوی برنامه معتبر هستند. و به همین دلیل ممکن است ضرورت به کارگیری استفاده از تکنیکهای مقابله با تزریق SQL را فراموش کنند.
منبع: وبگاه فناوری اطلاعات