بخشی از مقاله

تست نفوذ با روشهای sql injection، overflow و xss و بررسی راه های جلوگیری و خطرات آنها

 

چکیده

تست نفوذ، حمله هکر برای گرفتن دسترسی به شبکه یا سیستمهای یک سازمان را شبیه سازی میکند . هدف از تست نفوذ، بررسی پیاده سازی و سیاست امنیتی یک سازمان هست:اساساً برای مشاهده اینکه آیا سازمان، معیارهای امنیتی که در سیاست امنیتی مشخص کرده است را به درستی پیاده سازی کرده یا نه. نفوذ هکر به یک سایت یا سازمان، موجب افت موقعیت آن سازمان و زیانهای مادی و معنوی شدید به آن می شود. در اینجا ما با بررسی دو روش اصلی در هک سایتها sql injection، buffer overflow و روش جدید xssرا مورد تحقیق قرار دادهایم تا با بررسی آنها نشان دهیم که این روشها دارای خطراتینسبتاً بیشتر برای سایتها و سازمانهاست و برای برقراری امنیت باید این مشکلات را بیشتر مورد بررسی قرار دهیم و در نهایت با تحقیق بیشتر روی حمله xss نشان میدهیم که این حمله که از طرف کاربران و مدیران آنچنان جدی گرفته نمیشود دارای مخاطرات بیشتری نسبت به دو روش دیگر است.


واژههای کلیدی: sql inject، buffer overflow، XSS، گرفتن دسترسی، تست نفوذ

-1مقدمه

یکی از معروفترین و کاربردیترین مدارک امنیت، مدرک CEHیا مدرک تخصصی هکرهای قانونمند است. مدرک CEH، مدرکی امنیتی به منظور ارزیابی مهارت افراد در برقراری امنیت سیستمها، سایتها و شبکه های سازمانی و

نیز کمک به آنها جهت مقابله با حملات و نفوذهای هکرهاست. CEHها باید با تکنیکها و روش های هک و نیز چک لیستهای امنیتی آشنا بوده و قادر به بر طرف کردن آنها باشند. [2]

1


در طی چند سال اخیر در ایران کارهای بسیاری در زمینه امنیت و تست نفوذ صورت پذیرفته است. بسیاری از سناریوها حتی پیاده سازی هم شده است. اما همواره مشکلات امنیتی بسیاری وجود دارد که همه روزه باعث میشود تا چندین سایت و شبکه سازمانی مورد هجوم هکرها قرار گیرد. روشهای و ایده های بسیاری ارائه شده و همگی سعی بر آن داشتهاند اصل ساختار امنیتی را برآورده کنند اما همیشه موفق نبودهاند. [2]

در اینجا ما ضمن معرفی دو روش نفوذ sql injectionو buffer overflow، خطرات و راه حل برطرف کردن آنها را مورد بررسی قرار دادهایم. سپس در بخش دوم روش نفوذ دیگر XSSرا که کمتر مورد توجه برنامهنویسان و امنیت کاران میباشد و دارای مشکلات امنیتی اساسیتری میباشد را مورد بررسی و تحلیل قرار دادهایم، و در بخش سوم روشهای جلوگیری به وجود آمدن این مشکل و راههای مقابله با آن را بیان کردهام تا این مشکل بیشتر مورد بررسی مدیران امنیتی و برنامهنویسان قرار گیرد.

-2 ملزومات برقراری امنیت

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

CEHنکاتی را ارائه کردهایم .[2] از یک CEHانتظار میرود تا :


-1 با مبانی (واژگان، مفاهیم) امنیت اطلاعات آشنا شوند.

-2 اصول پایه ای امنیتی را در محل کار پیاده سازی نمایند.

-3 با مدلها و استانداردهای امنیت اطلاعات آشنا شوند.

-4 مفاهیم رمزنگاری را بیاموزند.

-5 با مداخل و مراجع امنیت اطلاعات آشنا شوند.

-6 توانایی ایمن سازی سیستم عامل و به طور کلی سیستم کامپیوتری خود را داشته باشند.

-7توانایی ایمن سازی و رفع مشکل سایتهای و شبکه های سازمانی را داشته باشد. 1]،[4

-3تست نفوذ

یک تست نفوذ یک پروسه مجاز، برنامه ریزی شده و سیستماتیک برای بهکارگیری آسیب پذیری ها جهت نفوذ به سرور، شبکه و یا منابع برنامه های کاربردی است. در واقع تست نفوذ روشی برای ارزیابی امنیتی یک سیستم یا شبکه کامپیوتری است که از طریق شبیه سازی حمله یک هکر یا نفوذ گر خرابکار صورت میگیرد .[3] پروسه تست نفوذ یک تحلیل فعال از سیستم برای یافتن هر حفره، آسیب پذیری و نقص فنی است که بالقوه یک ضعف امنیتی سیستم محسوب میشود. این تحلیل در مقام یک هکر بالقوه انجام میشود و در آن میتوان از آسیب پذیری های امنیتی فعال برای اجرای حملات استفاده کرد. همه مشکلات امنیتی باید همراه با ارزیابی میزان اهمیت آنها و همچنین پیشنهاداتی برای کاهش اثر خطرات و یا راه حلهای فنی به صاحب سیستم ارائه شوند. تست نفوذ میتواند با استفاده از منابع داخلی همچون سیستم امنیتی میزبان و یا منابع خارجی همچون اتصالات شرکت به اینترنت هدایت شود. در این


تست معمولاً از یک سری ابزارهای اتوماتیک و یا دستی برای آزمودن منابع سیستم استفاده میشود. 1]،[2

-4گرفتن دسترسی

در این مرحله حمله واقعی رخ میدهد. آسیب پذیری های شناخته شده در مراحل شناسایی و اسکن، اکنون برای ایجاد دسترسی استفاده میشوند. روش ارتباطی که هکر استفاده می کند میتواند از طریق شبکه محلی، دسترسی محلی به کامپیوتر، اینترنت یا به صورت آفلاین باشد. در دنیای هکرها ایجاد دسترسی به معنای مالکیت سیستم هست. [1]


استفاده از آسیب پذیری های »ورودیهای اعتبار سازی نشده« استفاده میکند! یک هکر میتواند با اجرای دستورات sqlو با تزریق آنها به سرور به اطلاعات مهمی دست یابد! 1]،[2

فرض کنیم در یک برنامه پرس و جوی زیر برای کنترل مجوز ورود مورد استفاده قرار میگیرد:

Select * from table where user_name=„?' and psw;'? =

کاربر میتواند با ورود عبارات زیر به جای کلمه عبور یا رمز عبور به سیستم دسترسی پیدا کند.

Select * from table where user_name=„user' and psw=„anything„ or „1‟=„1‟;

Select * from table where user_name=„Admin„-- and psw=„‟;[4]

شکل – 1مراحل هک و ایجاد دسترسی

-5معرفی روشهای نفوذ sql injection، buffer overflow و xss

-5-1روش sql inject

دسترسی غیر مجاز به بانک اطلاعاتی از طریق دادههایی است که به طور غیر مجاز به یک پرس و جوی پویا افزوده میشود. اینجکشن یک روش تزریق کدهای مخرب است و چون از پورت 80 استفاده میکند، هیچگونه ربطی به فایروال یا سایر نرم افزارها و سخت افزارهای امن سازی در سرور ندارد. در واقع اینجکشن از روشی موذیانه برای سو

شکل -2 تکنیک استفاده از sql injection

-5-2روش buffer overflow

سرریز بافر (Overflow Buffer) از قدیمیترین مشکلات سیستمهای کامپیوتری بوده است. در حال حاضر اگر به ضعفهای امنیتی نرم افزارهای مختلف که در سایتهای

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید