پرینت مطلب
بررسی روش های تشخیص و جلوگیری از حملات تزریق SQL

بررسی روش های تشخیص و جلوگیری از حملات تزریق SQL

02,فروردين 777
توسط 
کلیک: 21233 بار -

چکیده

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

واژه­های کليدي: حملات تزریقSQL-تشخیص تزریقSQL - -فایروال پایگاه­داده، ماشین بردار پشتیبان

 

 

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

  1.   مهاجم از طریق ورودی­های دلخواه به برنامه کاربردی سعی در شناسایی پارامترهای قابل تزریق دارد.
  2.       مهاجم اطلاعات نوع و نسخه پایگاه­داده برنامه کاربردی را از طریق انجام عملیات انگشت نگاری پیش بینی کرده تا حملاتی متناسب با نوع پایگاه­داده صورت دهد.
  3.  مهاجم ساختار و قالب پایگاه­داده را از طریق شناسایی شمای پایگاه داده برای بدست آوردن نام جداول و ستون­ها و نوع مقادیر ستون­ها استفاده می­نماید.
  4.      مهاجم اطلاعات موجود در جداول پایگاه­داده را استخراج کرده و مورد سوء استفاده قرار می­دهد.
  5.     مهاجم می­تواند با دور زدن فرآیندهای هویت سنجی، سطح دسترسی خود را افزایش دهد.
بروزرسانی در یکشنبه, 05 شهریور 1396 ساعت 11:25
رای شما
(1 رای)