وب، ميدان جنگ امروز
نام نویسنده: امير حسين شريفى
SG – امروزه تعداد سايتهاى وب و برنامههاى كاربردى آنها به سرعت در حال افزايش مىباشد و شايد تا چند سال قبل هيچكس پيش بينى اين وضعيت را نمى كرد. امروزه تقريبا بسيارى از صنايع و حرفه ها از اينترنت و وب استفاد مىكنند و خيلى از حرفه ها و صنايع روى وب ايجاد شده اند.
در يكى از مقالات، مطالبى درباره شغلهايى كه توسط اينترنت ايجاد شده است، مطالعه مى كردم و اين مساله در ذهنم آمد كه كلاهبردارىهاى امروزى نيز عوض شده است و شايد بتوان گفت كه ديگر دزدان امروزى آدمهاى لات و اوباش كنار خيابان نيستند، بلكه آدمهاى بسيار باهوش و تيزبين، با معلوماتى كه شايد يك مهندس كامپيوتر و يا مدير يك شبكه به ندرت با آنها آشنا باشد!!! و اين مساله خيلى جالب است كه همراه با پيشرفت علم كامپيوتر و حرفه اىتر شدن برنامههاى كاربردى، نفوذگران وب هم پيشرفت مىكنند. البته اين را هم بايد بگويم كه اين نفوذگران هرچند باعث خرابكارىهايى مىشوند، ولى نمىتوان از تلاش بعضى از آنها در گسترش و پيشرفت اينترنت و وب چشم پوشى كرد.
تا ديروز برنامههاى مخربى همچون ويروسها، در عين خطرناك بودن خيلى به كندى پيشرفت مى كردند و كامپيوترهاى كمى را آلوده مىكردند، اما امروزه يك كرم اينترنتى، همچون subig و MyDoom به سرعت خود را روى اينترنت منتشر مىكنند و باعث آلودگى هزاران كامپيوتر مىشوند و ميليونها دلار خسارت وارد مىكنند.
اما در كنار اين گونه خرابكارى ها، متخصصان وب نيز بيكار ننشتند و شبكههاى مجهزتر و با استحكام ترى را بنا كردند و با تجهيزاتى همچون ديواره آتش و IDS ها و همين اواخر با استفاده از Honey Pot ها، تا حدود زيادى موفق به مهار اين گونه حملات شده اند.
امروزه مديران شبكه با توجه به تجربههاى گذشته، شبكههاى مدرن و بسيار مستحكمى ساخته اند و ديوارههاى آتش تقريبا” در تمامى شبكهها استفاده مىشود و همين امر باعث شده است كه بسيارى از نفوذگران نتوانند به راحتى حريم شبكهها را بشكنند و به آنها نفوذ كنند. IDS ها همچون زنگ خطر، مديران شبكه را از وجود و يا امكان وقوع يك حمله آگاه مىكنند و Honey Pot ها نيز گذاشته شدهاند تا هكرها را سرگرم خود كنند! (البته فكر نكنم يك هكر ( به معناى واقعى اش)، خودش را سرگرم اين گونه مسائل كد!!)
سيستمهاى عامل و سرورهاى شبكه نيز چنيناند و بسيارى از اشكالاتى كه در گذشته براى آنها ايجاد مشكل مىكرده است را رفع كردهاند و براى مشكلات آينده نيز به سرعت قطعه تعميرى (Patch ) آن را مى سازند و بين كاربران خود منتشر مىكنند.
از همه مهمتر ديوارههاى آتش هستند كه هم از شبكه و هم از سيستمهاى عامل محافظت مىكنند. ديگر مانند گذشته يك شبكه در تيررس نفوذگران قرار نمىگيرد. با ايجاد يك طراحى پيچيده و مستحكم براى شبكه ها و تعريف DMZ و دفاع لايه به لايه براى وارد شدن به شبكه ها واقعا بايد ديواره اى از آتش را پيمود! بسيارى از سرورهاى انتهايى برنامههاى كابردى ديگر از طريق اينترنت قابل دسترس نيستند و با آدرسهاى غير قابل ميسر دهى ، آدرس دهى شده اند و براى هميشه خيال هكرها را راحت كرده اند كه ورود به اين قسمت شبكه ممنوع است!
ديگر مديران شبكه به راحتى به هر كسى اجازه نمىدهند كه با هر پورتى با بيرون از شبكه ارتباط برقرار كنند و يا بستههايى با پورتهاى مشخص به سرعت حذف مىشوند و تمامى اين كارها به وسيله ديوارههاى آتش انجام مىگردد. يك مدير شبكه بايد ديگر بسيار ساده باشد كه بخواهد به سرور شبكه خود از طريق اينترنت ارتباط تل نت برقرار كند و همچنين است ارتباطات از داخل شبكه به بيرون از آن !
آيا واقعا” لازم ات كه كاركنان يك سازمان از طريق شبكه سازمان خود به وسيله YM! با دوستان خود چت كنند؟! مسلما” پاسخ منفى است. شايد هيچكس فراموش نكرده باشد كه چگونه يك نوجوان از طريق چت MSN كه با يكى از كارمندان FBI انجام داده است، توانست شبكه پليس فدرال آمريكا را در عرض چند ساعت هك كند! شبكه اى كه ميليونها دلار خرج امنيت آن شده بود! (او فقط از طريق چت كردن با اين كارمند بخت برگشته پى برد كه رمز عبور اين كارمند 4 حرف بيشتر ندارد!! )
حال اين سوال مطرح است كه آيا حالا با وجود يك ديواره آتش و يا يك IDS، شبكه ما امن است؟ خب! هنوز نگرانى شنود اطلاعات وجود دارد كه آن هم به وسيله پروتكل SSL حل شده است. ديگر با 128 بيت رمزگزارى به وسيله پروتكل SSL هيچ بنى بشرى (حداقل تا امروز !) قادر نخواهد بود اطلاعات شنود شده شما را رمزگشايى كند. حال چطور؟ خيالتان راحت شد؟
بايد به شما بگويم كه سخت در اشتباه هستيد. درست است كه اين گونه روشهاى هك محدود شده است، اما روشهاى جديد ديگر ابداع شده كه به نوبه خود ساده اما دقيق و بسى خطرناك تر از زمان گذشته خود است. در اين مقاله قصد آن داريم كه يك معرفى كوتاه درباره آنها داشته باشيم.
نفوذ در برنامههاى كاربردى وب
همراه با برنامههاى كاربردى وب، نفوذ به اين برنامهها نيز پيشرفت مىكند و همراه با تكنولوژىهاى جديدى كه توسط سازمانها ارائه مىشود، تكنولوژىهاى جديد نفوذگرى نيز ابداع مىشود و در دنياى نفوذگران ارائه مىشود. اگر شما يك نگاه كوچكى به تمام برنامههاى كاربردى تحت وب بياندازيد، مىبينيد كه همه آنها حداقل ! از طريق پروتكل HTTP با كاربران خود ارتباط برقرار مىكنند. يعنى يك پورت هميشه در ديوارههاى آتش باز است و آن هم پورت 80 است. همين درِ باز براى نفوذگران كافى است كه ديگر به فكر بالا رفتن از ديوار نيفتند!!
براى تمامى ديوارههاى آتش ترافيك وب به عنوان ترافيك عمومى و تقريبا قابل اعتماد است. براى همين، بدون هيچ نظارتى بر آن، اجازه ورود براى آن صادر مىكنند. براى همين براى ي نفوذگر با ذهن خلاق چه چيز بى دردسر تر از اين دروازه باز!
بايد گفت كه امروزه تنها ابزار كار، براى نفوذگران وب :
1- يك مرورگر وب
2- يك ارتباط اينترنت
3- يك ذهن خلاق…
است كه من در اين جا يك دسته بندى كوچك از حملاتى كه از اين طريق انجام مىشود را براى شما بيان مىكنم ولى توضيحات آن به صورت جزيى در آينده به شما ارايه خواهد شد. حملات نفوذگران وب در دسته بندى زير مى گنجد:
1- حملات تفسير URL
2-حملات صحت ورودى ها
3-حملات تزريق SQL
4-حملات جعل هويت
5-حملات سرريزى بافر
6- حملات DOS و DDOS
حملات تفسير URL (URL Interpretation Attacks )
اين نوع حمله به علت پيكربندى ضعيف سرورهاى وب اتفاق مى افتد و باعث حملات بسيار خطرناكى مىشود. شايد هنوز هيچكس حملات يونيكد و يا رمزگشايى دوباره (double decode) را فراموش نكرده است كه اين خود مشت نمونه خروار اين گونه حملات است، اما آنچه كه مى خواهم بيان كنم، اين است كه ديوارههاى آتش نمىتواند در اين نوع حمله، از سرور ما دفاع كنند!، زيرا كه اين نوع حمله از طريق پروتكل HTTP و از طريق پورت 80 ( يا پورت 443 ) انجام مىشود.
حملات صحت ورودى ها (Input Validation Attacks )
بايد گفت كه اين حمله مادر تمامى حملات وب است! اين حمله نيز از اين جا ناشى مىشود كه لايه منطقى برنامه كاربردى به درستى صحت دادههاى وودى كاربر را آزمايش نمىكند. باز هم بايد بگويم كه اين نوع حمله نيز از طريق ديواره آتش نمىتواند محافظت شود زيرا از طريق پورت 80 و به وسيله پروتكل HTTP انجام مى گردد!
حملات تزريق SQL (SQL Injection )
فكر مىكنم با اين نوع حمله خيلىها در سطح پايينى آشنا باشند كه همان وارد شدن بدون اجازه از طريق دادههاى
Username = Ali
Password = anything+OR+1=1
و يا شبيه به آن است. ولى بايد بگويم كه اين نوع حمله بسيار جالبتر و خطرناكتر است از آنچه كه شما فكر مىكنيد! هكرها مىتوانند از طريق تزريق دستورات SQL، لابه لاى دادههاى ورودى تغييرات ناخواستهاى را در پايگاه داده شما انجام دند و يا حتى مىتوان دستورات در سطح پوسته سيستم عامل را از همين طريق اجرا كنند. اگر اغراق نكرده باشم بيش از 50 درصد سايتهاى ايرانى از اين مشكل رنج مىبرند. شايد باور نكنيد كه من شخصا” سايتهاى بزرگ بسيارى را در اين مورد تست كرده ام كه متاسفانه پاسخ خيلى از اين تستها مثبت بوده است. اين حمله نيز نمىتواند توسط ديوارههاى آتش محافظت شود زيرا كه از طريق پورت 80 و به وسيله پروتكل HTTP انجام مىگردد.
حملات جعل هويت ( Impersonation Attacks )
بياييد براى تشريح اين نوع حمله پامونو تو كفش هكر ها بكنيم !
يك mail از مدير سايت خود دريافت مىكنيد كه در آن نوشته است :
«به خار بعضى از تغييرات در شبكه لطفا رمز عبور خود را بررسى كنيد! در صورتى كه نتوانستيد با رمز عبور خود وارد شويد با ما تماس بگيريد!»
مدير سايت NGO-ir
شما كليك مىكنيد و صفحه login سايت باز مىشود براى اطمينان خاطر از اين كه كسى شما را گول نزده باشد، يك نگاهى هم به آدرس URL صفحه login مى اندازيد! آدرس صفحه صحيح است!! پس با خيال راحت وارد مىشويد و مطمئن مىشويد كه پسورد شما تغييرى نكرده است!
فرداى همان روز مديرسايت شما را خواسته و از شما درباره ميلى كه حاوى حرفهاى ركيكى كه شما برايش فرستادهايد، توضيح مى خواهد! كجاى كار شما ايراد داشته است؟
حمله بسيار ماهرانه ىست كه به فكر جن هم نمى رسد!! اين نوع حمله كه بسيار زيركانه طراحى مىشود شامل دزديدن كوكيها و بعد از آن جعل كردن يك نشست توسط نفوذگر انجام مىشود. از اين نوع حملات مىتوان Session Hijacking و Cross Site Scripting را نام برد كه براى توضيح هر كدام نياز به مقالات مفصلىست.
حملات سرريزى بافر ( buffer Overflow )
اين نوع از حملات كه بسيار ماهرانه طرح ريزى مىشود و بعضى از انواع آن، جزء حملاتىست كه توسط ديوارههاى آتش هم نمىتواند محافظت شود. زيرا كه اين نوع حملات نيز از طريق پورت 80 انجام مى گيرد. كرمهاى مشهور CodeRed و Nimda جزو حملاتى هستندد كه از طريق سرريز بافر طرح ريزى شده بودند.
حملات DOS و DDOS ( Denial Of Service )
حملاتى كه هنوز چاره اى براى آن انديشيده نشده است! با اين نوع حمله خيلى ها آشنا هستند، اما شايد خودشان بدون آن كه متوجه شده باشند در اين نوع حملات شركت كنند!!
حملات DOS هنگامى اتفاق مى افتد كه شبكه و يا سايت ما مورد هجوم سيلى از اطلاعات آشغال قرار مى گيرد و پهناى باند شبكه را اشغال مىكند تا نتواند به درستى به كاربران خود سرويس دهد! اين نوع حمله را مىتوان در چندين گونه تقسيم كرد.
حملات DDOS همان حمله DOS است اما به صورت توزيع شده! يعنى اين دفعه به جاى يك نفر سايت ما مورد هجوم هزاران و يا ميليونها كاربرى قرار گيرد كه براى ما اطلاعت آشغال مى فرستند!
با يك ضرب ساده متوجه مىشويد كه وقتى 10000 كاربر با سرعت مودمهاى ايرانى يعنى 3 kb/s به سايتى اطلاعات آشغال بفرستند، حدود 30 مگابايت از پهناى باند شبكه را اشغال مىكنند. بايد بگويم كه به كار گرفتن 10000 كاربر در سطح اينترنت چيز زيادى نيست! كرمهاى اينترنتى در كمتر از چندين ساعت ميليونها كاربر را آلوده مىكنند و بعضى از آنها حملات DOS را به صورت بسيار گسترده عليه سايتها (اكثرا هم سايتهاى شركت مايكروسافت!!) انجام مى دهند.
تنها چاره كار براى اين گونه حملات دعا كردن در درگاه بارى تعالى است !
به طور كلى بايد بگويم كه امروزه وب محل كارزار نفوذگرا گشته است و آنها بدون دردسر و از طريق حداقل امكاناتى كه دارند مىتوانند خطرناك ترين حملات را انجام دهند.
همان طور كه مشاهده كردى، پورتهاى 80 و يا 443 هميشه در ديوارههاى آتش باز هستند و هميشه يك URL روى تك تك مولفههاى يك برنامه كاربردى دسترسى دارد پس تنها راه مقابله با اين گونه حملات كدنويسىهاى امن تر براى برنامههاى كاربردى است.