تبلیغات
وبلاگ آشـــــــــوب - حملات‌ تزریق ‌‌به ‌‌پایگاه ‌‌داده‌ها (sql injection)
یکشنبه 22 مرداد 1391  06:52 ب.ظ    ویرایش: - -
نوع مطلب: مقالات کامپیوتر ،

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

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

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

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

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

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



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



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



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

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



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



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

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

   


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

وبلاگ آشـــــــــوب

همــــــه چـــــی بــــرای همــــــه چـــــی