بخشی از مقاله

چکیده

یک تهدید امنیتی عبارت است از رخدادی که به یک دارایی اطلاعاتی آسیب وارد میکند. تهدیدها همواره وجود دارند، اما به خودی خود از حالت بالقوه به بالفعل تبدیل نمیشوند، بلکه هر تهدید با استفاده از یک یا چند آسیب پذیری به داراییها آسیب میزند. حمله کنندهها میتوانند از مسیرهای مختلفی در برنامه استفاده کنند تا به تجارت افراد آسیب برسانند. برنامههای کاربردی نقطه تمرکز حملهکنندگان هستند و اغلب سایتها آسیبپذیریهای جدی دارند برنامههای کاربردی اهداف با ارزشی برای حملهکنندگان به حساب میآیند این اهداف میتوانند داده مشتری، کارت اعتباری، سرقت شناسه، تغییر سایت و . . . باشد. علیرغم ارزیابی و کنترل مداوم بر روی فضای مجازی مورد استفاده، این فضا همچون سایر جوامع انسانی در معرض تهدیدها و مخاطرات جدی است.

از نفوذ دادههای مخرب گرفته تا تخریب دادههای سالم و از هم گسیختگی نظام شبکه داده و... همه در گرو اهمیت دادن به موضوع امنیت اطلاعات در شبکه دادههاست. تزریق SQL یک تکنیک تزریق کد است که به صورت معمول برای حمله به وب سایتها استفاده میشود. افراد مخرب با وارد کردن کاراکترهای SQL و یا کلمات کلیدی به یک عبارت SQL منطق پرس و جو1 را تغییر میدهند. این حمله تمام برنامههای تحت وب را که از طریق عبارات SQL به پایگاه دادهها دسترسی دارند تهدید میکند. OWASP2 تزریق SQL را به عنوان یک ریسک امنیتی فراگیر معرفی کرده است. در سال NIST3 2012 گزارشی مبنی بر اینکه 289 آسیبپذیری در سایتهای بزرگ از جمله IBM، Ciscoو . . . یافت شده است این عدد حدود %7 از کل حملاتی که این وبسایتها را تهدید میکند میباشد.

مقدمه

یک حمله ی موفق تزریق SQLمی تواند دادههای حساس را از پایگاه دادهها بخواند، دادههای پایگاه داد هها را تغییر دهد، عملیات مدیریتی را بر روی پایگاه دادهها اجرا کند - مانند خاموش کردن - DBMS محتویات فایلهای موجود در سیستم فایل DBMSرا بازیابی کند و در برخی از موارد، فرامین خاصی را روی سیستم عامل اجرا کند. حملات تزریق SQLگونه ای از حملات تزریق هستند که در آنها فرامین SQL در مکان دادههای ورودی به گونه ای درج می شوند که اجرای فرامین از پیش تعریف شده ی SQL را تحت تأثیرقرار دهند. حملات تزریق SQL امکاناتی نظیر جعل هویت، دستکاری دادههای موجود، در معرض دید قراردادن دادههای مهم ومخفی، تخریب یا غیرقابل دسترس کردن دادهها را در اختیار نفوذگران قرار میدهد و یا اینکه در نهایت میتوانند مدیریت کامل پایگاه دادهها را از آن خود کنند.

اولین مقاله در زمینهی حملات SQL اولین بار درسال 1998 توسط rfp در مجله به نام phrak با عنوان NT Web Technology Vulnerabilities منتشر شد. پس از آن دومین مقاله درسال 1999 توسطAllaire در همین زمینه ارائه گردید. در سالهای بعد به صورت جدی کار بر روی این زمینه آغاز گردید. حملات تزریق SQL، حملاتی هستند که از آسیب پذیریهایی که در پایگاه دادههای مبتنی بر SQL هستند سوء استفاده میکنند و جست و جوهایی که از سمت برنامهی تحت وب به سمت پایگاه داده میروند تحت تاثیر قرار میدهند - . - Johari and sharma 2012 داخل این جست و جوها کدهایی تزریق میکنند که باعث میشوند جست و جو از آنچه مدنظر برنامه نویس هست فرق کند و نتایجی که مدنظر حمله کننده میباشد به آنها برگردانده شود با استفاده از حملات تزریق اصل محرمانگی-صحت-تصدیق اصالت و مجوز ورود پایگاه داده نقض میشود.

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

تصدیق اصالت: اگر فرامین ضعیف SQL برای بررسی نامهای کاربری و کلمات عبور به کار روند، امکان ورود به سیستم با نام کاربری شخص دیگر حتی بدون اطلاع از کلمه ی عبور وی وجود دارد.

مجوز ورود: اگر اطلاعات مربوط به مجوز ورودی در پایگاه دادههای SQL نگهداری شود، امکان تغییر این اطلاعات از طریق حملهی تزریق کد وجود دارد.

صحت: همان طور که امکان خواندن دادههای حساس با سوء استفاده از آسیب پذیری SQL وجود دارد، ایجاد تغییرات وحذف آنها نیز امکان پذیر است.

اهداف مهاجم از حمله - - ping-chen 2011

·    شناسایی پارامترهای قابل تزریق: با انجام حمله، پارامترهای قابل تزریق و فیلدهای که آسیب پذیر هستند را شناسایی میکند تا با استفاده از آن فیلدها، حملهی خودش را انجام دهد.

·    شناسایی نوع پایگاه داده: به دلیل اینکه پایگاه دادههای مختلف به روشهای مختلفی قابل حمله هستند شناسایی نوع پایگاه داده میتواند به حمله کننده کمک کند که حملهی متناسب با آن پایگاه داده را پیش بگیرد.

·    بدست آوردن شمای پایگاه داده: از طریق این حمله شمای پایگاه داده نظیر ستونها و جداول بدست میآید. این مورد مقدمه ای برای تغییر در پایگاه داده است که اصل محرمانگی و صحت داده را نقض میکند. طبق نمودار 1 بعد از حملهی DOS5 تزریقSQL شایعترین حمله بشمار میرود. از طریق تزریق SQL حملهی DOS نیز قابل انجام است به این ترتیب که مهاجم با فرستادن جست و جوهای پیچیده ای به سمت پایگاه داده و با درگیر کردن آبا این جست و جوها زمان مفید پایگاه داده را مصرف میکند و باعث time out شدن آن میشود.

برای دفاع موثر در مقابل این حملهها باید انواع آن را شناخت. این حملات از یک دیدگاه به سه دستهی زیر تقسیم بندی میشوند:

1.    دریافت مستقیم اطلاعات - : - In-band داده از همان کانالی برداشت می شود که عمل تزریق انجام شده است . این سرراست ترین نوع حمله است که دادههای بازیابی شده مستقیما در همان صفحه ی وب برنامه کاربردی ظاهر می شوند.

2.    دریافت غیرمستقیم اطلاعات - - Out-of-bandداده: از کانال متفاوتی دریافت می شود مثلاً دادههای تولید شده از طریق پست الکترونیکی به مهاجم ارسال می شود.

3.    دریافت اطلاعات از طریق استنتاج : - Inferential - هیچ انتقال داده واقعی وجود ندارد، ولی مهاجم قادر است با ارسال درخواستهای مشخص و مشاهدهی رفتار سرویسدهنده پایگاه داده، اطلاعات مطلوب خود را بازسازی کند.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید