واضح آرشیو وب فارسی:ابرار: آشنايى با «حملات تزريق به پايگاه داده ها»
هدف اين مقاله آشنايى مختصر با حملات ترزيق كد به بانك هاى اطلاعاتى (Sql injection) و روش هاى مقابله با اين دسته از حملات در دنياى وب است. امروزه يكى از متداول ترين روش هاى نفوذ به وب سايت ها و بانك هاى اطلاعاتى حملات تزريق كد است در اين گونه حملات شخص نفوذگر يا برنامه هاى نفوذگر كدهاى مخرب را از طريق ورودى هايى كه برنامه هاى تحت وب مى گيرند، اجرا مى كند كه باعث اختلال در سيستم وب سايت ها مى شوند اهداف نفوذگران در اين گونه حملات سرقت اطلاعات يا تغيير اطلاعات بانك اطلاعاتى(database) است كه گاهى اوقات اين دسترسى تا نفوذ به سرور و دسترسى به كل فايل ها و اطلاعات سرور ختم مى شود كه از اين جنبه بسيار خطرناك است. اين روش هك شايع ترين روش در هك كردن كارت هاى اعتبارى و اطلاعات سايت ها و بانك هاى اطلاعاتى به شمار مى آيد. شايع ترين پايگاه هاى اطلاعات كه با اين مساله مواجه مى شوند شامل Access، Microsoft Sql، MySql، Oracel مى باشد. حال در ادامه به توضيح مختصرى در مورد چگونگى وقوع اين نوع حملات و راه هاى مقابله با آن مى پردازيم. نفوذگر در اين حملات با سوء استفاده از فرم هايى كه از طريق كاربر ورودى مى گيرد، كدهاى مخرب خود را به ورودى برنامه تزريق مى كند و بعد از پردازش بين پايگاه اطلاعات و برنامه تحت وب عملياتى به عنوان خروجى انجام مى شود يا اطلاعاتى روى صفحه نمايش داده مى شود كه نفوذگر بر اساس خروجى، كار خود را پيش مى برد. فرم هاى ورود به قسمت مديريت وب سايت، نمايش اخبار، نمايش مقالات و امثال اين گونه فرم ها قربانيان اين حملات مى باشند در ادامه يك مورد از اين حملات را شرح مى دهيم و در نهايت به روش هاى مقابله با اين نوع حملات مى پردازيم. براى مثال فرم ورود به قسمت مديريت يك سايت در نظر بگيريد كه شامل دو ورودى نام كاربرى و كلمه عبور است و دكمه ارسال كه اطلاعات را به سمت برنامه مى فرستد، حال نام كاربرى مهم نيست و هر چيزى مى تواند باشد اگر در قسمت كلمه عبور عبارت aسorسtس=سt وارد شود باعث مى شود كه دستورى كه برنامه به پايگاه اطلاعات مى فرستد دچار انحراف بشود و نتيجه اجراى عمليات درست نباشد و باعث ورود به قسمت مديريت سايت بشود و شخص نفوذگر به كليه اطلاعات به راحتى دسترسى داشته باشد البته اين يكى از ساده ترين روش هاى تزريق كد به بانك اطلاعاتى است كه البته هنوز هم در بسيارى از فرم ها اين مشكل وجود دارد و مى تواند ناشى از كنترل نشدن مقادير ورودى توسط برنامه نويس و وجود مشكل در دستوراتى كه به پايگاه داده ارسال مى گردد باشد. حال نوبت روش هاى مقابله با حملات تزريق كد به پايگاه داده (Sql Injection) است قبل از شروع بايد اهميت اين موضوع را درك كنيم كه سايت هاى بسيار معروف و مهمى توسط اين روش مورد حمله قرار گرفتند و اين امر برنامه نويس را بر آن مى دارد كه مقابله با حملات تزريق كد را يكى از قسمت هاى مهم كار خود در نظر بگيرد و در تمام فرم هايى كه ورودى از كاربر مى گيرد اين مساله را كنترل نمايد.روش هاى مقابله با حملات تزريق به پايگاه اطلاعات يكى از مهم ترين روش ها جلوگيرى از نمايش خطاهاى برنامه است كه در صورت به وجود آمدن هرگونه مشكل براى برنامه يا تزريق ورودى هاى مخرب به برنامه سورس برنامه يا اطلاعات پايگاه داده نمايش داده نشود چون بيشتر نفوذگران بر اساس خطاهايى كه برنامه مى دهد كار خود را مرحله به مرحله پيش مى برند و به اطلاعات بيشترى دستيابى پيدا مى كنند. اين مساله خيلى مهم است كه اميدواريم تمام برنامه نويسان رعايت كنند كه در آينده برايشان مشكلى پيش نياد. مساله بعدى كنترل ورودى هاى برنامه است اين مهم ترين قسمت مقابله با حملات تزريق كد است. ورودى هاى برنامه بطور كل اطلاعاتى است كه به فرم هاى برنامه پست مى شود كه ما توسط روش هاى مختلفى مى توانيم اطلاعات ورودى را كنترل كنيم. بهترين لايه، لايه امنيتى سرور است كه كليه مقادير پست شده را كنترل كند و مقادير مخرب را فيلتر كند و قبل از اين كه اطلاعات به برنامه پست شود جلوى حملات را بگيرد. البته اين روش مقابله به مسائل امنيتى سرور بر مى گردد كه ممكن است در يك سرور رعايت شود و در يك سرور رعايت نشود كه اين امر برنامه نويس را مجبور مى كند كه اين لايه امنيتى را در داخل برنامه پياده سازى كند و كليه اطلاعات ورودى و پست شده را چك كند و ورودى هاى مخرب را فيلتر نمايد. بيشترين مشكلى كه موجب تزريق كد هاى مخرب به پايگاه اطلاعات مى شود ورودى هاى متنى هستند كه از طريق url به برنامه ارسال مى شود تا جاى ممكن بايد سعى شود براى نمايش اطلاعاتى مثل اخبار، مقالات و مطالبى كه در پايگاه داده ذخيره شده از ورودى هاى عددى استفاده شود تا جلوى تزريق كد گرفته شود و اگر ورودى عددى باشد در برنامه بايد كنترل شود كه ورودى مشكلى نداشته باشد و آلوده به كدهاى مخرب نباشد اين مهم ترين مساله است كه تمام مشكلات تزريق كدهاى مخرب به پايگاه اطلاعات ناشى از چك نكردن ورودى هاى آلوده است كه خيلى راحت مى توان جلوى اين نوع حملات را گرفت. اين مساله جاى بحث بسيار زيادى دارد كه در مطلب ما نمى گنجد براى بيشتر آشنا شدن با اين گونه حملات مطالب موجود در ويكى پديا مى تواند مفيد باشد.نويسنده: اميد نوروزى
دوشنبه 17 تير 1387
این صفحه را در گوگل محبوب کنید
[ارسال شده از: ابرار]
[تعداد بازديد از اين مطلب: 431]