حمله SQL injection + نحوه جلوگیری از آن
فهرست مطالب
زبان SQL مخفف Structured Query Language میباشد و عبارت است از زبانی که از آن در راستای دستکاری و مدیریت دادهها استفاده میشود. حمله SQL injection عبارت است از نوعی حمله سایبری که با هدف قرار دادن پایگاه داده به دنبال انجام یک سری کارهای غیر منتظره توسط افراد است.
ازآنجا که حمله SQL injection در لیست 10 خطر امنیتی مهم برای برنامههای کاربردی قرار دارد در صورتی که این عمل به صورت کامل و با موفقیت انجام شود میتواند خطرات زیادی را برای مشاغل به همراه بیاورد. در این محتوا قصد داریم به توضیح درباره حمله SQL injection بپردازیم. پس تا انتها همراه ما باشید.
انواع حمله SQL injection
حملات SQL injection به سه دسته تقسیم میشوند. بیایید با دقت به توضیح درباره آنها بپردازیم.
In-band SQL Injection
از جمله متداولترین نوعهای حمله به حساب میآید. در این نوع حمله کاربر مخرب از همان کانال ارتباطی برای حمله و همینطور جمعآوری نتایج استفاده میکند. از جمله تکنیکهای اساسی که در این نوع حمله مورد استفاده قرار میگیرد میتوان به موارد زیر اشاره کرد.
- مبتنی بر خطا: با استفاده از این نوع تکنیک مهاجم زمانی که از دستور SQL برای ایجاد پیام خطا استفاده میکند به اطلاعاتی درباره ساختار پایگاه داده دست پیدا میکند. پیامهای مبتنی بر خطا در کنار کمک رسان بودن میتوانند منجر به آسیب پذیری نیز شوند چرا که اطلاعات مربوط به پایگاه داده را در اختیار افراد قرار میدهند. در راستای جلوگیری از بروز این رخداد شما میتوانید پیامهای خطا را پس از فعال شدن وب سایت یا برنامه غیرفعال کنید.
- مبتنی بر اتحادیه: در این تکنیک مهاجم از UNION SQL در راستای ترکیب چند دستور انتخاب و برگرداندن یک پاسخ HTTP استفاده میکند و اطلاعات را از پایگاه داده استخراج کند. این تکنیک بسیار متداول است و به اقدامات امنیت بیشتری نسبت به مورد قبلی نیاز دارد.
Inferential SQL Injection
که آن را SQL injection کور نیز مینامند. چراکه بر خلاف In-band SQL Injection دادهها را به مهاجم منتقل نمیکند؛ ولی کاربر میتواند با ارسال یک سری داده و مشاهده پاسخ آنها درباره ساختار سرور اطلاعاتی را به دست آورد. این نوع حملات به نسبت In-band SQL Injection کمتر مورد استفاده قرار میگرند چراکه تکمیل آنها نیازمند یک بازه زمانی طولانیتر است. از جمله تکنیکهایی که در این حمله مورد استفاده قرار میگیرد میتوان به موارد زیر اشاره کرد.
- تزریق Boolean: در این حمله مهاجم با استفاده از عبارات منطقی به دنبال شناسایی ساختار و اطلاعات پایگاه داده است. در این نوع حمله مهاجم یک کوئری را به پایگاه داده ارسال میکند و با بررسی جوابها و تفاوتهای آنها به استخراج اطلاعات میپردازد.
- تزریق مبتنی بر زمان: مهاجم با ارسال کوئریها برای پایگاه داده و بررسی آن بازه زمانی که طول میکشد تا به پاسخ برسد درست و غلط بودن نتایج را تعیین میکند.
Out-of-Band SQL Injection
کمتر از دو مورد دیگر مورد استفاده قرار میگیرد. در این نوع حمله کاربر مخرب از طریق کانال ارتباطی متفاوتی به جمعآوری نتایج برای حمله استفاده میکند.
اثرات یک حمله SQL injection موفق
در صورتی که این حمله با موفقیت انجام شود اثرات زیادی بر سازمان شما خواهد گذاشت که برای مثال میتوان به موارد زیر اشاره کرد.
- افشای اطلاعات و دادههای مهم و حساس.
- خطر از دست رفتن حریم خصوصی و دادهها و اطلاعات مهم کاربران.
- فراهم آمدن امکان دسترسی عمومی به مهاجم.
- از دست دادن یکپارچگی موجود در سیستم خود.
در راستای محافظت از پایگاه داده خود در برابر حمله SQL injection چه کارهایی را میتوان انجام داد؟
اگر به دنبال راهکارهایی برای کاهش خط حمله SQL injection هستید میتوانید به انجام کارهای زیر بپردازید.
- نرمافزارها و ابزار امنیتی خود را به آخرین نسخه ارتقا دهید.
- به حسابهایی که به پایگاه داده SQL متصل میشوند حداقل امتیازات لازم برای دسترسی را بدهید.
- حساب پایگاه داده خود را در برنامههای مختلف به اشتراک نگذارید.
- به اعتبارسنجی ورودیها بپردازید.
- و…
حملات SQL Injection چگونه کار میکند؟
مهاجمها در گام نخست به شناسایی ورودیها در برنامههای وب میپردازند و آنهایی که در برابر حملات SQL Injection آسیب پذیرند را شناسایی میکنند. پس از آن ورودیهای خاصی را به آن آسیبپذیریها تزریق میکنند تا کوئری SQL نهایی تغییر کند. این کوئری تغییر پیدا کرده توسط برنامه برای پایگاهداده ارسال میگردد و در صورتی که به درستی پردازش و اجرا شود مهاجم میتواند به اطلاعات مدنظر دسترسی پیدا کند.
در نهایت مهاجم با بررسی نتایج بازگشتی اطلاعاتی را که به دنبال آنها بوده را استخراج میکند. این اطلاعات میتواند شامل موارد مختلف مثل نام کاربری، رمز عبور، اطلاعات شخصی کاربران و غیره باشد.
نمونههایی از حمله SQL injection
در طی گذشت زمان سازمانهای زیادی قربانی این حمله شدن که برخی از آنها به شرح زیر هستند.
- Fortnite: یکی از بازیها آنلاین بود که حدود 350 میلیون کاربر داشت. این بازی در سال 2019 دچار حمله SQL شد که این امر منجر به دسترسی مهاجمها به حسابهای کاربری کاربران گشت.
- Cisco: در حدود سال 2018 Cisco دچار این آسیب پذیری شد که به مهاجمها اجازه میداد تا به سیستمهایی که مدیریت مجوز روی آنها مستقر شده بود دسترسی پوسته داشته باشند. البته این آسیب پذیری بعد از مدتی اصلاح شد.
- تسلا: در سال 2014 عنوان شد که مهاجمان توانستهاند به وب سایت تسلا نفوذ پیدا کنند و با دسترسی به امتیازات و جایگاه مدیریتی اطلاعات کاربران را به سرقت ببرند.
در راستای افزایش امنیت وب سایتها شما میتوانید به خریداری لایسنس اشتراکی پویان آی تی بپردازید و از بروز خطرات و ناامنیها جلوگیری کنید.
و در آخر
تزریق SQL از جمله آسیب پذیریهای امنیتی وب سایت به حساب میآید که این امکان را برای مهاجمان فراهم میآورد تا بتوانند در کوئریها دخالت کرده و به دادههایی قابل بازیابی نیستند دسترسی یابند. دادهها را حذف و یا تغییر دهند و حتی به تخریب پایگاه داده بپردازند. در راستای جلوگیری از وقوع این رخداد کارهای زیادی میتوان انجام داد که برای مثال میتوان به اعتبارسنجی ورودیها، محدود کردن دسترسیها، استفاده ازORM ها و این دست از موارد اشاره کرد.
انجام این دست از اقدامات باعث میشود که ورودیهای کاربر به درستی مدیریت شده و نتوانند ساختار کوئریها را تغییر دهند.
سؤالات متداول
حمله SQL injection چیست؟
ابن حمله با استفاده از کد SQL مخرب به دستکاری پایگاه داده پرداخته و به اطلاعات خصوصی کاربران دسترسی پیدا میکند. این اطلاعات حساس میتوانند اطلاعات سازمان باشند یا حریم خصوصی کاربران و این دست از موارد.
حمله SQL injection چه میکند؟
این نوع از حملات تزریق به مهاجمان اجازه میدهند تا به جعل هویت پرداخته، دادههای موجود را تغییر، حذف و یا در معرض دید عموم قرار دهند و یا برعکس آنها را از دسترس خارج نمایند. این نوع حملات میتوانند کسب و کارها را با مشکلات زیادی مواجه سازند و اعتماد مشتریان را به آنها کاهش دهند.
به این مقاله امتیاز دهید!
میانگین امتیاز 0 / 5. تعداد رأی ها : 0
هنوز هیچ رأیی داده نشده. اولین نفر باشید!
اولین دیدگاه را اضافه کنید.