وب، میدان جنگ امروز
وب، میدان جنگ امروز
امروزه تعداد سایتهای وب و برنامههای كاربردی آنها به سرعت در حال افزایش میباشد و شاید تا چند سال قبل هیچكس پیش بینی این وضعیت را نمی كرد. امروزه تقریبا بسیاری از صنایع و حرفه ها از اینترنت و وب استفاده میكنند و خیلی از حرفه ها و صنایع روی وب ایجاد شده اند.
در یكی از مقالات، مطالبی درباره شغلهایی كه توسط اینترنت ایجاد شده است، مطالعه می كردم و این مساله در ذهنم آمد كه كلاهبرداریهای امروزی نیز عوض شده است و شاید بتوان گفت كه دیگر دزدان امروزی آدمهای لات و اوباش كنار خیابان نیستند، بلكه آدمهای بسیار باهوش و تیزبین، با معلوماتی كه شاید یك مهندس كامپیوتر و یا مدیر یك شبكه به ندرت با آنها آشنا باشد!!! و این مساله خیلی جالب است كه همراه با پیشرفت علم كامپیوتر و حرفه ایتر شدن برنامههای كاربردی، نفوذگران وب هم پیشرفت میكنند. البته این را هم باید بگویم كه این نفوذگران هرچند باعث خرابكاریهایی میشوند، ولی نمیتوان از تلاش بعضی از آنها در گسترش و پیشرفت اینترنت و وب چشم پوشی كرد.
تا دیروز برنامههای مخربی همچون ویروسها، در عین خطرناك بودن خیلی به كندی پیشرفت می كردند و كامپیوترهای كمی را آلوده میكردند، اما امروزه یك كرم اینترنتی، همچون 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 روی تك تك مولفههای یك برنامه كاربردی دسترسی دارد پس تنها راه مقابله با این گونه حملات كدنویسیهای امن تر برای برنامههای كاربردی است.
امیر حسین شریفی