چکیده
یکی از مهمترین حملات برنامههای کاربردی وب، حملات تزریق SQL است. مهاجمان از آسیب پذیریهایی که در سطح برنامههای کاربردی وجود دارند، سوء استفاده کرده و حملات تزریق SQL را انجام میدهند. این حملات در اثر اعتبارسنجی نامناسب ورودیهای برنامه های کاربردی بوجود میآید که یک ورودی بدون اعتبار سنجی بطور مستقیم در یک پرسجو از یک پایگاه داده مورد استفاده قرار میگیرد. در اینصورت کدهای دلخواه از طریق مهاجمان به برنامه تزریق میشود که موجب سرقت و آشکار سازی اطلاعات میشود و یا در روند اجرای برنامه اختلال ایجاد میکند. برای مقابله با حملات تزریق SQLاز روشهای مختلفی استفاده میشود. اما از آنجا که گونه های مختلفی از این نوع حملات وجود دارند، هر کدام از روشها در مقابل بخشی از این گونهها میتواند مقاومت نماید و از شیوههای کدنویسی دفاعی و اعتبار سنجی پارامترهای موجود در برنامه استفاده مینمایند که کارایی مناسبی داشته ولی در عمل مبتنی بر انسان بوده و بستگی به مهارت برنامهنویس دارد و مستعد خطا میباشند. لذا در این مقاله روشهای تشخیص و جلوگیری از حملات تزریق SQL برای حذف یا کم رنگ کردن آسیبپذیری هایی که منجر به اجرای این حملات میگردند در پنج لایه، مرورگر، فایروال برنامهکاربردی، برنامهکاربردی، فایروال پایگاه داده و پایگاه داده معرفی ودستهبندی گردیدند. سپس روشهای عمومی و روشهای خودکار تشخیص و مقابله با حملات با توجه به معیارهای نوع حمله، نیازمندیهای پیادهسازی مورد بررسی و مقایسه قرار گرفته و مشخص گردیدند که برخی از روشها برای تشخیص و جلوگیری از حمله نیاز به دسترسی کد برنامه دارند. در حالی که برخی به عنوان میانجی عمل میکنند و برخی در زمان کامپایل، تست برنامه و زمان اجرا به تشخیص حمله میپردازند.
واژههای کليدي: حملات تزریقSQL-تشخیص تزریقSQL - -فایروال پایگاهداده، ماشین بردار پشتیبان
حملات تزریق کد SQL از حملات بسیار شایع و خطرناک و موثر به برنامههای کاربردی است[1]. این حملات در برنامههای کاربردی که از ورودی های کاربر در ایجاد ساختارهای SQL استفاده می کنند و اغلب اعتبارسنجی کافی از ورودی های کاربر به عمل نمی آورند، ناشی میشوند که موجب دور زدن احراز هویت، دستکاری دادهها و مشاهده اطلاعات حساس میگردند. بنابراین برای حفظ امنیت پایگاهداده برنامه کاربردی در برابر این نوع از حملات، نیاز به شناسایی تمامی ورودی و تضمین صحت آنهاست. در سالهای گذشته وب سایتهای مهم و معتبری مورد این حمله قرار گرفته اند. با توجه به متنی بودن پرس و جوهای SQL امکان الحاق هر نوع رشته ای را با رشته های پرس و جوی فراهم می کند. لذا در صورتی که حمله کننده از کدهای SQL در ورودی های موجود برنامه های کاربردی استفاده نماید منجر به راه اندازی حمله با اهداف مختلفی میشود که این اهداف در [2] بصورت زیر ارائه شده است.
- مهاجم از طریق ورودیهای دلخواه به برنامه کاربردی سعی در شناسایی پارامترهای قابل تزریق دارد.
- مهاجم اطلاعات نوع و نسخه پایگاهداده برنامه کاربردی را از طریق انجام عملیات انگشت نگاری پیش بینی کرده تا حملاتی متناسب با نوع پایگاهداده صورت دهد.
- مهاجم ساختار و قالب پایگاهداده را از طریق شناسایی شمای پایگاه داده برای بدست آوردن نام جداول و ستونها و نوع مقادیر ستونها استفاده مینماید.
- مهاجم اطلاعات موجود در جداول پایگاهداده را استخراج کرده و مورد سوء استفاده قرار میدهد.
- مهاجم میتواند با دور زدن فرآیندهای هویت سنجی، سطح دسترسی خود را افزایش دهد. cdconf.ir