تکنولوژی

درباره هک سايت های دولتی

نام نویسنده: امير حسين شريفى

سایت امنیت وب – در هفته اخير شاهد هك شدن بسيارى از سايتهاى دولتى و غير دولتى بوده ايم ، كه خبرگزاريها حتى به بسيارى از آنها اهميتى ندادند.(شايد اگر روزى خود دچار شوند ، تصميم بگيرند اين اخبار را پوشش دهند) مسوولين مربوطه اينگونه سايت ها نيز يا بى اهميت از اين مساله گذشتند ، گويى هيچ اتفاقى نيفتاده است و يا اينكه تقصير را گردن سرورهاى خارج از كشور انداختند و داستان هميشگى نبودن سرور ها و هاست هاى داخلى را بيان كردند. اما اگر رورى هر چند كوتاه بر اينگونه سايت هاى بيندازيم متوجه مى شويم كه اكثر آنها به روشهايى هك شدند كه به راحتى از طريق خود مدير سایتها قابل جلوگيرى بوده است.

مانند سايت بانك كشاورزى و يا سايت هلال احمر و … كه در كمتر از نيم روز مشكل سايت خود را حل كردند. مشكل كجاست ؟
بيشتر اين سايتها از مشكل هميشگى Input Validation رنج مى برند كه شايد با دو خط كدنويسى قابل پيشگيرى باشد و يا استفاده از برنامه هاى آماده اى كه توسط شركتهاى برنامه نويسى نوشته شده اند و به صورت آزمايشى با حداقل امكانات در دسترس عموم قرار گرفته اند به دور از حتى يك خط كد نويسى امن !! Input Validation چيست ؟
اين مشكل در واقع زمانى رخ مى دهد كه داده درخواستى ما با داده هايى كه كاربر وارد مى كند مطابقت ندارد. مثلا هنگامى كه كاربر روى خبرى كليك مى كند به صورت زير داده ها به سمت سرور مى روند : http://www.WebSecurityMgz.com/ShowNews.asp?ID=123 يعنى خبرى با شماره 123 را از پايگاه داده پيدا كن و آن را نمايش بده!

اما هميشه اينگونه نيست كه خبر به همين الگو به سمت برنامه كاربردى ما پاس داده شود در اينجاست كه هكر ها با استفاده از تاكتيكهاى نفوذگرى خود ، طورى URL را تغيير مى دهند كه تغييراتى به غير از چيزى كه مد نظر ما است، در سمت برنامه كاربردى رخ دهد. مثلا اگر خبر را به صورت زير ارسال كنيد خطايى رخ خواهد داد كه بعضى اطلاعات پايگاه داده سايت را به نفوذگر نشان مى دهد: http://www.WebSecurityMgz.com/ShowNews.asp?ID=aaa در بعضى از سايت ها ، با ارسال اين كد ، خبرى به سايت اضافه مى شود و به همين راحتى صفحه اول تغيير مى كند: http://www.WebSecurityMgz.com/ShowNews.asp?ID=123 UNION UPDATE tNews SET date=…body=…Type=…Image=http://… كه نفوذگر نام پايگاه داده و ستون هاى آن را از روى خطاهاى به وجود آمده و حدس گمان خود به دست مى آورد. شايد شما تا به حال مقاله يك باگ در سايت ITIran را خوانده باشيد و اگر نخوانديد توصيه مى كنم كه براى يك بار هم شده آن را مطالعه كنيد تا متوجه شويد كه يك نفوذگر با استفاده از يك اشكال در سايت ، چگونه به اعماق برنامه كاربردى شما نفوذ مى كند و تمام پايگاه داده شما را دانلود مى كند. متاسفانه برنامه نويسان تحت وب ما حتى با الفباى اينگونه حملات آشنايى ندارند.

شايد باورتان نشود كه من در يكى از شركتهاى معتبر برنامه نويسى تحت وب با يكى از برنامه نويسان با تجربه آن درباره اين مشكل صحبت مى كردم حتى يك بار هم به گوشش نخورده بود و حاضر نبود اين مشكل را براى سايت طرف قرارداد ما ، حل كند كه با پافشارى قبول كرد و اين مشكل حل شد. در اينجاست كه هكرى 14 ساله به فوت و فن اين مسايل آشنا مى شود و سايت شركت نفت را با آن همه خرجى كه روى دست دولت گذاشته است در كمتر از چند دقيقه هك مى كند و صفحه اول آن را دستكارى مى كند. از كجا شروع كنم ؟

حل اين مشكل بسيار ساده مى باشد ، فقط كافى است كه نوع داده هاى ورودى توسط URL ها را، از نظر طول ، نوع كاركتر (عدم وجود كاركترهاى مخصوص) ، نوع داده (عدد، رشته و … ) و … اعتبار سنجى كنيم و در صورتى كه اعتبار لازم را نداشته باشد صفحه خطا را نمايش دهيم. مثلا اگر در مورد بالا اينگونه قرار داده باشيم كه ID هيچوقت نبايد بزرگتر از 4 حرف باشد و نوع آن نيز بايد عدد باشد ، هيچگاه خطايى ناخواسته رخ نمى داد و نام ستونهايى از پايگاه داده براى نفوذگر آشكار نمى شد. براى آشنايى بيشتر با اينگونه حملات و نحوه جلوگيرى از آن توصيه مى كنم مقالات URL شمشير نفوذگران وب قسمت اول و قسمت دوم را از سايت امنيت وب دريافت كرده و مطالعه كنيد.

اميد است كه با كمى همت برنامه نويسان وب در جهت آشنايى با اينگونه حملات، كمتر شاهد هك شدن سايت هاى ايرانى قرار گيريم و اين حداقل امنيتى است كه ما مى توانيم براى سايت هاى خود فراهم كنيم.

info@websecuritymgz.com

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا