آشنایی با "حملات تزریق به پایگاه داده ها" - ساده ترین نوع تزریق اطلاعات چه دستوری است

هدف این مقاله آشنایی مختصر با حملات ترزیق کد به بانک های اطلاعاتی (Sql injection) و روش های مقابله با این دسته از حملات در دنیای وب است.

امروزه یکی از متداول ترین روش های نفوذ به وب سایت ها و بانک های اطلاعاتی حملات تزریق کد است در این گونه حملات شخص نفوذگر یا برنامه های نفوذگر کدهای مخرب را از طریق ورودی هایی که برنامه های تحت وب می گیرند، اجرا می کند که باعث اختلال در سیستم وب سایت ها می شوند اهداف نفوذگران در این گونه حملات سرقت اطلاعات یا تغییر اطلاعات بانک اطلاعاتی(database) است که گاهی اوقات این دسترسی تا نفوذ به سرور و دسترسی به کل فایل ها و اطلاعات سرور ختم می شود که از این جنبه بسیار خطرناک است.

ساده ترین نوع تزریق اطلاعات چه دستوری است

ساده ترین نوع تزریق اطلاعات چه دستوری است

 این روش هک شایع ترین روش در هک کردن کارت های اعتباری و اطلاعات سایت ها و بانک های اطلاعاتی به شمار می آید.

شایع ترین پایگاه های اطلاعات که با این مساله مواجه می شوند شامل Access, Microsoft Sql , MySql , Oracel می باشد. حال در ادامه به توضیح مختصری در مورد چگونگی وقوع این نوع حملات و راه های مقابله با آن می پردازیم.

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

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

 

برای مثال فرم ورود به قسمت مدیریت یک سایت در نظر بگیرید که شامل دو ورودی نام کاربری و کلمه عبور است و دکمه ارسال که اطلاعات را به سمت برنامه می فرستد، حال نام کاربری مهم نیست و هر چیزی می تواند باشد اگر در قسمت کلمه عبور عبارت a" or "t"="t وارد شود باعث می شود که دستوری که برنامه به پایگاه اطلاعات می فرستد دچار انحراف بشود و نتیجه اجرای عملیات درست نباشد و باعث ورود به قسمت مدیریت سایت بشود و شخص نفوذگر به کلیه اطلاعات به راحتی دسترسی داشته باشد البته این یکی از ساده ترین روش های تزریق کد به بانک اطلاعاتی است که البته هنوز هم در بسیاری از فرم ها این مشکل وجود دارد و می تواند ناشی از کنترل نشدن مقادیر ورودی توسط برنامه نویس و وجود مشکل در دستوراتی که به پایگاه داده ارسال می گردد باشد.

حال نوبت روش های مقابله با حملات تزریق کد به پایگاه داده (Sql Injection)  است قبل از شروع باید اهمیت این موضوع را درک کنیم که سایت های بسیار معروف و مهمی توسط این روش مورد حمله قرار گرفتند و این امر برنامه نویس را بر آن می دارد که مقابله با حملات  تزریق کد را یکی از قسمت های مهم کار خود در نظر بگیرد و در تمام فرم هایی که ورودی از کاربر می گیرد این مساله را کنترل نماید.

 

روش های مقابله با حملات تزریق به پایگاه اطلاعات

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

,پایگاه داده,داده,اینجکشن,مقالات کامپیوتر، ترفندهای کامپیوتر، آموزش کامپیوتر، ترفندهای رایانه

مساله بعدی کنترل ورودی های برنامه است این مهم ترین قسمت مقابله با حملات تزریق کد است. ورودی های برنامه بطور کل اطلاعاتی است که به فرم های برنامه پست می شود که ما توسط روش های مختلفی می توانیم اطلاعات ورودی را  کنترل کنیم. بهترین لایه, لایه امنیتی سرور است که کلیه مقادیر پست شده را کنترل کند و مقادیر مخرب را فیلتر کند و قبل از این که اطلاعات به برنامه پست شود جلوی حملات را بگیرد. البته این روش مقابله به مسائل امنیتی سرور بر می گردد که ممکن است در یک سرور رعایت شود و در یک سرور رعایت نشود که این امر برنامه نویس را مجبور می کند که این لایه امنیتی را در داخل برنامه پیاده سازی کند و کلیه اطلاعات ورودی و پست شده را چک کند و ورودی های مخرب را فیلتر نماید.

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

این مساله جای بحث بسیار زیادی دارد که در مطلب ما نمی گنجد برای بیشتر آشنا شدن با این گونه حملات مطالب موجود در ویکی پدیا  می تواند مفید باشد.

 

نویسنده: امید نوروزی


,