سه شنبه, ۲۸ فروردین, ۱۴۰۳ / 16 April, 2024
مجله ویستا

حداقل امنیت


حداقل امنیت

در هفته های اخیر شاهد هك شدن بسیاری از سایتهای دولتی و غیر دولتی بوده ایم , كه خبرگزاریها حتی به بسیاری از آنها اهمیتی ندادند

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

مشكل كجاست ؟

بیشتر این سایتها از مشكل همیشگی Input Validation رنج می برند كه شاید با دو خط كدنویسی قابل پیشگیری باشد و یا استفاده از برنامه های آماده ای كه توسط شركتهای برنامه نویسی نوشته شده اند و به صورت آزمایشی با حداقل امكانات در دسترس عموم قرار گرفته اند به دور از حتی یك خط كد نویسی امن !!

Input Validation چیست ؟

این مشكل در واقع زمانی رخ می دهد كه داده درخواستی ما با داده هایی كه كاربر وارد می كند مطابقت ندارد. مثلا هنگامی كه كاربر روی خبری كلیك می كند به صورت زیر داده ها به سمت سرور می روند :

http://www.WebSecurityMgz.com/ShowNews.asp?ID=۱۲۳

یعنی خبری با شماره ۱۲۳ را از پایگاه داده پیدا كن و آن را نمایش بده!

اما همیشه اینگونه نیست كه خبر به همین الگو به سمت برنامه كاربردی ما پاس داده شود در اینجاست كه هكر ها با استفاده از تاكتیكهای نفوذگری خود ، طوری URL را تغییر می دهند كه تغییراتی به غیر از چیزی كه مد نظر ما است، در سمت برنامه كاربردی رخ دهد. مثلا اگر خبر را به صورت زیر ارسال كنید خطایی رخ خواهد داد كه بعضی اطلاعات پایگاه داده سایت را به نفوذگر نشان می دهد:

http://www.websecuritymgz.com/ShowNews.asp?ID=۱۲۳

در بعضی از سایت ها ، با ارسال این كد ، خبری به سایت اضافه می شود و به همین راحتی صفحه اول تغییر می كند:

http://www.websecuritymgz.com/ShowNews.asp?ID=۱۲۳ UNION UPDATE SET Date=...Type=...Body=...Image=http://...

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

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

از كجا شروع كنم ؟

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



همچنین مشاهده کنید