Zero Days Article Blog

آشنایی با تست نفوذ و ارزیابی امنیت شبکه - قسمت اول

امروزه سیستم ها با کابوسی به نام نفوذگران مواجه هستند، نیاز است کسانی که در حوزه ی امنیت فعالیت می کنند بتوانند سیستم هدف را آن گونه که باید، و از منظرگاه نفوذگران مورد تست و بررسی قرار دهند تا امنیت سیستم در مقابل این گونه حملات تامین شود.

از دیدگاه فنی، تست نفوذپذیری تلاشی کنترل شده برای نفوذ به سیستم های هدف از "خارج" است برای شناسایی آسیب هایی که امکان رخنه کردن نفوذگران را به آن ممکن می سازد.

در این تست تکنیک ها و ابزارهایی مشابه با نفوذگران استفاده می شود، همراه با معیار هایی مناسب تا زمانی که امنیت نرم افزار تا در برابر دسترسی غیر مجاز تامین شود.

ما در این مقاله به روش های تست نفوذ پذیری خواهیم پرداخت.

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


دانلود متن کامل مقاله - قسمت اول

Penetration-Test-Overview.pdf

آشنایی با تست نفوذ پذیری

امروزه نرم افزارها و شبکه ها عمومیت یافتند، و این امر سیستم ها را با مخاطرات بسیاری روبرو ساخته است. شرکت ها و سازمان ها با اتصال به اینترنت و دیگر شبکه ها در عین استفاده از تکنولوژی تحت تاثیر آسیب های آن نیز هستند.

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

1-     تحقیق جهت کسب اطلاعات مفید در باره ی سیستم هدف

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

2-     پویش کردن[1] سیستم برای یافتن سرویس های خطر آفرین:

تست با پویش کردن و یافتن پورت های باز آغاز میشود، و در این گام باید به دقت بررسی کرد که آیا سرویس های خطرآفرین بر روی این سیستم ها راه اندازی شده اند یا خیر؟

3-     تشخیص هویت و شناسایی سیستم ها و برنامه های کاربردی:

باید تمام سیستم ها با نام ها و نسخه های مختلفشان و نیز برنامه های کاربردی نصب شده بر روی آنها شناسایی شوند.

4-     تحقیق در مورد آسیب پذیری ها:

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

5-     استخراج آسیب پذیری ها:

استخراج آسیب پذیری ها میتواند از دسترسی های بدون مجوز جلوگیری و امنیت سیستم را در مقابل این حملات تامین کند

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

طبقه بندی و اهداف تست نفوذ پذیری

در این بخش نقطه ی شروع تست های نفوذ پذیری و راه هایی که در ابتدای کار پیش روی تست کننده است و همچنین شیوه ی سنجش تست و اهداف آن را معرفی خواهیم کرد.

 نقطه ی شروع و راه های پیش رو در تست نفوذپذیری

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

اولین نقطه برای نفوذ _ گذشته از جمع آوری اطلاعات_ شروع کار از دیوار آتش، وب سرور ها، مدم ها و شبکه های بی سیم و ... است.

وب سرور ها و سرویس های راه اندازی شده بر روی آنها در نهاد خود مخاطراتی نهفته دارند، زیرا سرویس هایی مانند FTP یا DNS از خارج قابل دسترسی هستند و این گونه امنیت در هاله ای از ابهام فرو میرود.

 نسبت تست نفوذپذیری و تکنولوژی اطلاعات

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

هدف تست نفوذ پذیری این نیست که "ممکن است سخت افزار هم آسیب ببیند" زیرا این مساله با گرفتن فایل پشتیبان به سادگی قابل حل است، محل بحث جاییست که داده های موجود روی آن سخت افزار جز با کاربران مجاز مورد دسترسی قرار نگیرند، که این امر با بررسی تکنولوژی اطلاعات از منظرگاه های مختلف به دست خواهد آمد.

 اهداف تست نفوذپذیری

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

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

به طور کلی اهداف ممکن برای مشتری در تست نفوذپذیری در چهار دسته تقسیم میشود:

1-     بهبود امنیت سیستم های تکنیکی:

در اکثر مواقع خواست مشتری ها در این دسته قرار میگیرد. تست ها عموما محدود به سیستم های تکنیکی هستند مانند وب سرور ها، مسیریاب ها و ...

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

2-     شناسایی آسیب پذیری ها:

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

3-     داشتن امنیت تکنولوژی ارتباطات تایید شده توسط فرد خارج از سیستم :

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

و یک تست نفوذ پذیری منظم و مناسب باید بتواند ثابت کند که امنیت کاربر خود را افزایش داده است.

 

4-     بهبود امنیت زیرساخت سازمانی و پرسنلی:

جدا از تست زیرساخت های تکنیکی، تست نفوذپذیری میتواند زیرساخت های سازمانی و پرسنلی را هم تحت آزمایش قرار دهد.

نتیجه ی یک تست نفوذ پذیری لیستی از آسیب پذیری ها خواهد بود.

محدودیت های تست نفوذپذیری

"یک نفوذگر میتواند راهی برای رخنه در سیستم پیدا کند، حتی اگر این حمله اندکی بعد از تست نفوذپذیری باشد"

شاید این جمله ی چالش بر انگیز این سوال را ایجاد کند که آیا تست نفوذپذیری بی اثر است؟ و یا شاید این جمله بی معنی به نظر برسد، اما گواه مدعای آن خبرهاییست که روزانه از نفوذهای گوناگون که در دنیا منتشر و به گوش ما میرسد.

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

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

 

 

 

طبقه بندی تست نفوذپذیری

کدام معیار ها میتوانند تصویری واضح از تست نفوذپذیری بدهند؟ یا کدام ویژگی تست نفوذپذیری آن را از سایر تست ها تمایز می بخشد؟ همانطور که در ادامه خواهیم دید دسته بندی ها ی مختلفی از تست نفوذ پذیری وجود دارد که در ادامه آنها را به صورت موردی بررسی خواهیم کرد

1-     منبع اطلاعات

در تست نفوذ پذیری، ما ابتدایی ترین اطلاعات برای شناخت سیستم یا برنامه ی هدف را از کجا به دست می آوریم؟

به طور کلی هر تست بسته به اطلاعاتی که در اختیار دارد در یکی از این سه دسته قرار میگیرد

1.         تست جعبه سیاه[2] ، که در این تست نفوذی از منظرگاه یک نفوذگر اینترنتی شبیه سازی میشود، که با جستجو در اینترنت اطلاعات لازم برای خود را به دست می آورد، و هیچ گونه دسترسی به ساختار داخلی سیستم یا کد برنامه ی هدف ندارد

2.        تست جعبه سفید[3] ، که در این تست نفوذی از منظرگاه یک نفوذگر شبیه سازی میشود که با یکی از کارکنان تشکیل دهنده ی سیستم یا با یکی از کسانی که به شکلی با سیستم در ارتباط بوده و در زمینه های خاص دارای اطلاعات دقیق هستند ارتباط برقرار کرده و اطلاعاتی از ساختار سیستم هدف کسب کرده است صفحه های 16 و 17 رد شد مورد های زیر را از آنها کامل کن

2-     تجاوزگری

تجاوزکاری در تست نفوذ بپذیری به طور کلی در چهار مرحله انجام می پذیرد

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

2.        در سطح دوم - محتاطانه[5] - آسیب پذیری های شناخته شده، تنها با دانش و به دست بهترین
تست کننده ها انجام می شود.

3.        در سطح بعدی - حساب شده[6] - تست کننده آسیب پذیری هایی را استخراج می کند که احتمال دارد به اختلال در سیستم منجر شوند.

4.        در بالاترین سطح - تجاوزگری[7] -  تست کننده تلاش می کند که هر جایی که مستعد آسیب پذیریست استخارج کند.

3-     حوزه ی کاری

در تست نفوذ پذیری حوزه ی کاری را میتوان تحت سه عنوان دسته بندی کرد

·         متمرکز، این حوزه ی کاری زمانیست که قرار است بر روی یک قسمت خاص تمرکز شود، مثلا یک زیر سیستم.

·         محدود شده، این حوزه ی کاری مربوط به زمانیست که برای مثال چند سیستم خاص قرار است مورد تست نفوذپذیری قرار بگیرند.

·         کامل، این تست به طور کامل تمام سیستم های مرتبط را مورد بررسی امنیتی قرار میدهد.

4-     صفحه ی شانزده

5-     تکنیک

6-     نقطه ی شروع

 

 

 

 

نیازمندی های متداول

نیازمندی های سازمانی

برای درک نیازمندی های سازمانی، به طور کلی باید به سوال های زیر پاسخی شفاف داده شود

·         چه کسانی با تست نفوذپذیری در ارتباط هستند(به غیر از کاربر)؟

·         چه مسائلی نسبت به زمان باقی مانده شایان توجه اند؟

·         وقتی سیستم با شکست مواجه می شود(یا سایر مواقع اضطراری) چه چیزی نیاز است که پایان بیابد؟

·         کدام یک از کارمندان مشتری موثر بر تست نفوذپذیری هستند؟

·         مشتری با چه میزان زمان و هزینه دست به گریبان است؟

·         چه میزان زمان و تلاش نیاز است که تست کننده بتواند کار خود را به اتمام برساند؟

نیازمندی های پرسنلی

توانایی های زیر برای هر تست نفوذپذیری سطح بالا نیاز است.

·         دارا بودن دانش مدیریت سیستم، و سیستم عامل

·         دانش TCP/IP  و سایر پرتکل های شبکه

·         دانش برنامه نویسی و آشنایی با زبانهای مختلف برنامه نویسی

·         آشنایی با محصولات امنیت تکنولوژی اطلاعات مانند دیوار آتش

·         توانایی کنترل ابزارهای نفوذگران و پویشگرهای آسیب پذیری ها.

·         دانش سیستم های برنامه های کاربردی[8]

·         خلاقیت

نیازمندی های تکنیکی

قبل از آنکه تست نفوذپذیری آغاز شود باید آشنایی لازم با این نیازمندی ها حاصل شده باشد

·         دسترسی به شبکه های عمومی[9]

·         در دسترس بودن ابزارهای بازبینی مناسب

·         شبکه محلی برای تست

مراحل تست نفوذپذیری

1-     اقدامات مقدماتی

2-     شناسایی کردن

3-     تحلیل اطلاعات و ریسک ها

4-     تلاش جهت نفوذ فعال

5-     تحلیل نهایی

 



[1] scanning

[2] Black-Box

[3] White-Box

[4] Passive

[5] Cautious

[6] Calculated

[7] Aggressive

[8] Applications Systems

[9] Public Networks

درباره این نوشته

این صفحه حاوی یک نوشته است که توسط Admin در 25, 2011 4:58 منتشر شده است.

Analysing DivX Plus Web Player SEH Overwrite نوشته قبلی اين بلاگ بود

Exploiting Advantech WebAccess SCADA/HMI Remote Code Execution Vulnerability نوشته بعدی اين بلاگ است

نوشته های اخیر را می توانید در صفحه نخست مشاهده نمایید و یا به آرشیو مراجعه کنید تا تمامی نوشته ها را مشاهده کنید.