چگونه يک آزمون قانوني نفوذ به شبکه را ترتيب دهيم (3)
چگونه يک آزمون قانوني نفوذ به شبکه را ترتيب دهيم (3)
تعريف استانداردهاي آزمون نفوذ
- زمان انجام آزمايش ها، به همراه خط زماني کلي آنها
- آزمايش هايي که انجام خواهند شد
- سطح آشنايي که شما از قبل نسبت به سيستم ها بدست آورده ايد
- نحوه انجام آزمايش ها و آدرس هاي IP مورد استفاده براي اين منظور (اگر آزمايش ها بر روي اينترنت انجام مي شوند)
- کاري که در صورت کشف يک آسيب پذيري مهم انجام مي دهيد.
اين فهرستي از بهترين گزينه ها است و شما مي توانيد استانداردهاي بيشتري را براي وضعيت خودتان تهيه نمائيد. در ادامه به بررسي مشروح اين «بهترين شيوه هاي عمومي» خواهيم پرداخت.
زمانبندي
در صورت امکان، تأمين کنندگان خدمات اينترنتي (ISPها) و يا تأمين کنندگان سرويس هاي نرم افزار کاربردي (ASPها) خود را انجام آزمايش ها مطلع نمائيد. اينکار مي تواند از احتمال مسدود شدن ترافيک شما (در صورتيکه آنها به رفتارهاي بدخواهانه اي که بر روي فايروال ها و سيستم هاي IDS خود مشاهده مي کنند، مظنون شوند)، جلوگيري نمايد.
خط زماني بايد شامل تاريخ ها و زمان هاي کوتاه مدت هر آزمايش، تاريخ هاي شروع و خاتمه آزمايش ها و همچنين هر مرحله خاص در بين آنها باشد. شما مي توانيد خط زماني خود را تهيه کرده و آن را در يک صفحه ي گسترده ي ساده يا نمودار گانت وارد کنيد. شما همچنين مي توانيد خط زماني تهيه شده را بعنوان بخشي از پيشنهاد اوليه به مشتري و يا قرارداد منعقد شده، درج نمائيد.
آزمون هاي خاص
يک شيوه ي خوب براي تأمين شواهدي از آنچه که مورد آزمايش قرار مي گيرد، زماني که مورد آزمايش قرار مي گيرد (و امثالهم)، فعال نمودن مکانيزم ثبت گزارش (Logging) بر روي سيستم هايي است که مشغول آزمايش آنها هستيد.
گاهي اوقات ممکن است با آزمايش هاي عمومي که مشغول انجام آنها هستيد آشنايي داشته باشيد، اما اگر از ابزارهاي خودکار استفاده کنيد، درک کامل هريک از آزمايش هايي که انجام مي دهيد تقريباً غير ممکن خواهد بود. اين موضوع خصوصاً زماني صادق است که نرم افزار مورد استفاده شما (هر بار که آن را اجرا مي کنيد) ارتقاء هاي بلادرنگ مربوط به آسيب پذيري ها را از فروشنده ي مربوطه دريافت مي نمايد. استعداد ارتقاء هاي مکرر، بر اهميت مطالعه مستندات و فايل هاي Readme ارائه شده به همراه ابزارهاي مورد استفاده شما، تأکيد مي کند.
در يک مورد، يک برنامه بروز رساني شده توانست مشکلاتي را براي ما بوجود آورد. ما در حال اجراي يک ارزيابي خودکار بر روي سايت وب يک مشتري بوديم (همان آزمايشي که درست يک هفته قبل آن را اجرا کرده بوديم). ما و مشتري مان، تاريخ و زمان اجراي آزمايش را از قبل برنامه ريزي کرده بوديم. چيزي که ما نمي دانستيم اين بود که فروشنده نرم افزار مورد استفاده مان، تغييراتي را در آزمايش هاي تکميل و ارسال فرم وب خود اعمال کرده است و به اين ترتيب، نرم افزار کاربردي وب مشتري را با ايجاد شرايط DoS مستغرق (Flooded) نموديم.
خوشبختانه اين شرايط DoS بعد از ساعت کار اداري ايجاد شد و تأثيري بر عملکرد مشتري ما نداشت. با اينحال، نرم افزار کاربردي وب مشتري ما به گونه اي کدگذاري شده بود تا يک e-mail هشدار را براي هر فرم ايجاد نمايد. برنامه نويس نرم افزار کاربردي و رئيس شرکت مربوطه، تنها در مدت 10 دقيقه بيش از 4000 ايميل را در In-Boxهاي خود دريافت کردند. اين مثال خوبي از ناآگاهي ما در مورد نحوه ي پيکربندي پيش فرض ابزارمان و آنچه که در اين شرايط انجام مي داد، بود. ما خوش شانس بوديم که رئيس شرکت مورد نظر يک فرد فني بود و شرايط را درک کرد. در اختيار داشتن يک طرح احتمالي براي مواقعي که چنين شرايطي بروز مي کند، بسيار مهم است.
ارزيابي هاي کور در مقابل ارزيابي هاي آگاهانه
بهترين شيوه اين است که حملات نامحدودي را طراحي نماييد که هر آزمايشي در آنها امکانپذير باشد. آدم هاي بد، سيستم هاي شما را در يک گستره ي محدود هک نخواهند کرد، پس چرا شما بايد چنين کاري را انجام دهيد؟
تصميم بگيريد که آيا آزمايش ها بايد بصورتي انجام شوند که براي سرپرستان شبکه و هريک از تأمين کنندگان سرويس امنيتي، غير قابل تشخيص باشند (يا خير). اينکار الزامي نيست ولي بايد در نظر گرفته شود، خصوصاً براي آزمايش هاي مهندسي اجتماعي و امنيت فيزيکي.
اگر تعداد زيادي از کاربران و کارکنان داخلي از آزمايش هاي شما اطلاع داشته باشند، ممکن است يک احساس مراقبت کاذب در سازمان ايجاد شود که مي تواند تلاش هاي سخت شما در انجام آزمايش ها را خنثي نمايد. اين بدان معني نيست که شما نبايد هيچکس را در جريان کارهاي خود بگذاريد. هميشه يک نقطه تماس اصلي را با مؤسسه ي مربوطه حفظ کنيد (ترجيحاً شخصي با قدرت تصميم گيري) تا در صورت بروز مشکل در آزمايش هاي تان، شما و تمام کارکنان بتوانيد با يکديگر ارتباط داشته باشيد.
موقعيت مکاني
آزمايش هايي که انجام مي دهيد، تعيين مي کنند که بايد آنها را در چه مکاني اجرا کنيد. هدف شما اين است که سيستم هاي خود را از مکان هاي قابل دسترسي براي هکرهاي بدخواه آزمايش نمائيد. شما نمي توانيد پيش بيني کنيد که آيا مورد حمله ي يک کارمند داخلي قرار خواهيد گرفت يا يک هکر خارجي، بنابراين بايد تمام بستر فعاليت خود را تحت پوشش قرار دهيد. بهتر است آزمايش هاي خارجي (اينترنت عمومي) و آزمايش هاي داخلي (شبکه خصوصي) را با يکديگر ترکيب کنيد.
شما مي توانيد بعضي از آزمايش ها نظير شکستن کلمات عبور و ارزيابي هاي زير ساختار شبکه را به راحتي از دفتر خودتان (و از داخل شبکه) اجرا نمائيد. اما بهتر است يک فرد واقعاً خارجي را در اختيار داشته باشيد که هيچ دانش و يا منافع مشخصي در رابطه با اجراي ساير آزمايش ها بر روي روترها، فايروال ها و يا نرم افزارهاي کاربردي عمومي وب، نداشته باشد.
براي هک هاي خارجي که به ارتباط شبکه نياز دارند، ممکن است مجبور شويد از محل مؤسسه ي خود خارج شده (يک بهانه ي خوب براي ماندن در خانه) و يا از يک سرور پروکسي خارجي استفاده نمائيد. شيوه ي بهتر اين است که يک آدرس IP عمومي قابل دسترسي را به کامپيوتر خود اختصاص داده و از خارج فايروال به شبکه متصل شويد تا سيستم هاي خود را از ديدگاه چشمان يک هکر مشاهده نمائيد. آزمايش هاي داخلي نسبتاً آسان هستند زيرا شما تنها به دسترسي فيزيکي به ساختمان و شبکه ي خود نياز داريد. همچنين مکن است بتوانيد از يک خط DSL موجود براي کاربران بي سيم و مأموران خارجي استفاده کنيد.
واکنش نسبت به آسيب پذيري هاي مهمي که کشف مي کنيد
با در نظر گرفتن اين مسئله، توصيه مي کنيم اگر يک حفره ي امنيتي مهم را کشف کرديد، با افراد مناسبي تماس گرفته و به آنها هشدار دهيد تا بتوانند کار برطرف نمودن مشکل را بلافاصله آغاز نمايند. اگر چند روز يا چند هفته صبر کنيد، ممکن است شخصي از اين آسيب پذيري ها بهره برداري نموده و خساراتي را به بار آورد که ديگر قابل پيشگيري نباشند.
فرضيات نادرست
- کامپيوترها، شبکه ها و افراد در هنگام اجراي آزمايش هاي شما قابل دسترسي خواهند بود.
- شما تمام ابزارهاي مناسب آزمايش را در اختيار داريد.
- ابزارهايي که براي آزمايش از آنها استفاده مي کنيد، باعث سقوط سيستم ها نخواهند شد.
- ابزارهاي شما عملاً کار مي کنند.
- شما با تمام ريسک هاي مربوط به آزمايش هاي خود آشنايي داريد.
شما بايد تمام فرضيات خود را مستند نموده و بعنوان بخشي از فرآيند تائيد کلي پروژه، مدير يا مشتري خود را وادار کنيد تا آنها ار امضاء نمايند.
انتخاب ابزارها
اينکه شما به کدام ابزار ارزيابي امنيتي احتياج داريد، به آزمايش هايي که قرار است انجام دهيد بستگي خواهد داشت. مي توانيد بعضي از آزمايش هاي هک اخلاقي را با يک جفت کفش کتاني، يک تلفن و يک ايستگاه کاري ساده بر روي شبکه انجام دهيد. با اينحال، انجام آزمايش هاي جامع با ابزارهاي هک بسيار آسانتر خواهد بود.
محدوديت هاي فني و شخصي را بشناسيد. بسياري از ابزارهاي ارزيابي امنيت، مثبت ها و منفي هاي کاذبي (false positives/negatives) را توليد مي کنند و اين به معناي آسيب پذيري هايي است که بطور ناصحيح شناسايي شده اند. گروه ديگري از آنها، بطور کلي از آسيب پذيري ها صرفنظر مي کنند. اگر در حال انجام آزمايش هايي نظير مهندسي اجتماعي و يا ارزيابي هاي امنيت فيزيکي هستيد، ممکن است بعضي از نقاط ضعف را بخاطر عدم وجود هوشمندي کافي در ابزارهاي آزمايش خود از دست بدهيد.
بسياري از ابزارها بر آزمايش هاي خاصي متمرکز هستند و هيچ ابزاري نمي تواند همه چيز را آزمايش کند. به همان دليلي که براي خوردن ماکاروني نبايد از پيچ گوشتي استفاده کنيد، نبايد از يک واژه پرداز براي اسکن درگاه هاي باز بر روي شبکه ي خود استفاده نمائيد. بنابراين به مجموعه اي از ابزارهاي خاص نياز داريد که در صورت لزوم بتوانيد از آنها استفاده کنيد. هرچه ابزارهاي بيشتر و بهتري در اختيار داشته باشيد، کار هک اخلاقي برايتان آسانتر خواهد بود.
شما نه تنها به زرادخانه اي از ابزارها نياز خواهيد داشت، بلکه بايد از ابزارهاي مناسب براي وظيفه ي مورد نظر خود استفاده نمائيد:
- اگر در حال شکستن کلمات عبور هستيد، يک اسکنر پورت عمومي نظير SuperScan يا Nmap نمي تواند چندان مؤثر باشد. براي اين منظور، شما به ابزاري نظير John the Ripper، Proactive Password Auditor و يا pwdump3 نياز خواهيد داشت.
- اگر تلاش مي کنيد يک آناليز عميق از يک نرم افزار کاربردي وب را انجام دهيد، يک ابزار ارزيابي نرم افزار کاربردي وب (نظير N-Stealth يا WebInspect) مناسبتر از يک تحليلگر شبکه نظير Ethereal خواهد بود.
اگر اطمينان نداريد که بايد از چه ابزاري استفاده نمائيد، نيازي نيست که وحشت کنيد. ما تنوع گسترده اي از ابزارها (از هر دو گروه رايگان و تجاري) را به شما معرفي خواهيم کرد که مي توانيد براي انجام وظايف خود از آنها استفاده نمائيد.
شما مي توانيد انتخاب خود را از ميان صدها (اگر نگوييم هزاران) ابزار هک اخلاقي انجام دهيد: هر چيزي از نرم افزارهاي مبتني بر برنامه هاي ارزيابي آسيب پذيري گرفته تا تحليلگران شبکه مبتني بر سخت افزار. در اينجا به مجموعه اي از ابزارهاي امنيتي تجاري، رايگان و Open-Source اشاره مي کنيم:
AppDetective
BackTrack
CORE IMPACT
Effective File Search
EtherPeek
GFI LANguard Network Security Scanner
Metasploit
N-Stealth Scanner
pwdump3
Proactive Password Auditor
QualysGuard
RFprotect Mobile
SuperScan
ToneLoc
TrafficIQ Pro
WebInspect
Cain and Abel
SuperScan
RFprotect Mobile
قابليت هاي بسياري از ابزارهاي امنيتي و هک در اغلب موارد دچار سوء تعبير مي شوند. اين سوء تفاهم، تأثير منفي را بر روي تعدادي از ابزارهاي فوق العاده بوجود آورده است. بسيار مهم است که بدانيم هر ابزار قادر به انجام چه کاري مي باشد (يا نمي باشد) و چگونه هر کار را انجام مي دهد. ما توصيه مي کنيم که دفترچه ي راهنما و يا فايل هاي Help همراه اين محصولات را به دقت مطالعه نماييد. متأسفانه بعضي از ابزارها داراي مستندات محدودي هستند که در هنگام استفاده از آنها مي توانند تا حدودي نااميد کننده باشند. در صورتيکه با يک ابزار خاص مشکل داريد، مي توانيد به جستجوي گروه هاي خبري و Message-Boardها بپردازيد.
ابزارهاي هک مي توانند براي سلامت شبکه ي شما خطرناک باشند. بنابراين، بايد در هنگام استفاده از آنها کاملاً مراقب باشيد. هميشه مطمئن شويد که هر گزينه را پيش از استفاده از آن کاملاً درک کرده ايد. اگر در مورد نحوه ي استفاده از ابزارهاي خود اطمينان نداريد، آنها را بر روي سيستم هاي آزمايشي تجربه کنيد. اين اقدامات احتياطي مي توانند به جلوگيري از شرايط Dos و از دست رفتن سلامت و دسترس پذيري داده ها بر روي سيستم هاي توليدي شما کمک نمايند.
در ابزارهايي که براي انجام هک اخلاقي انتخاب مي کنيد، به دنبال خصوصيات زير باشيد:
- مستندات کافي
- گزارشات مشروح در مورد آسيب پذيري ها، شامل نحوه ي بهره برداري و يا برطرف نمودن آنها.
- ارتقاء و پشتيباني در هنگام نياز
- گزارشات سطح بالايي که قابل ارائه به مديران و يا ساير افراد غير فني باشند. اين گزارشات مي توانند در هنگام مستند سازي آزمايش هاي شما، در وقت و حجم کاري شما صرفه جوئي نمايند.
محدوديت هاي خود و ابزارهايتان را بشناسيد. بسياري از ابزارهاي ارزيابي امنيتي، «False Positives» (يا هشدار در مورد آسيب پذيري هايي که عملاً وجود ندارند) را صادر مي کنند. بعضي از آنها حتي منفي هاي کاذب را ايجاد مي کنند و اين بدان معني است که بعضي از آسيب پذيري ها را بطور کلي ناديده مي گيرند. به همين ترتيب، اگر شما آزمايش هاي مهندسي اجتماعي يا ارزيابي هاي امنيتي فيزيکي را انجام مي دهيد، ممکن است به سادگي آسيب پذيري ها را ناديده بگيريد.
ممکن است شما بعضي از ابزارهاي هک رايگان و يا Open Source مشهور را تحقير کنيد. اگر اين ابزارها بيش از ارزش خود براي شما دردسر ايجاد مي کنند و يا قادر به انجام وظيفه مورد نظر شما نيستند، بهتر است به فکر خريداري جايگزين هاي تجاري آنها باشيد. استفاده از نمونه هاي تجاري غالباً آسانتر است و معمولاً گزارش هاي بهتري را با سرعت بيشتري توليد مي کنن د(خصوصاً گزارش هاي مديران سطح بالا) . بعضي از ابزارهاي تجاري بسيار گرانقيمت هستند، اما سهولت استفاده و عملکرد آنها مي تواند اين تقاوت قيمت را توجيه نمايد.
باز هم تأکيد مي کنيم که مطمئن شويد که براي کار خود از ابزارهاي مناسبي استفاده مي کنيد:
- براي شکستن کلمات عبور، به ابزارهاي Cracking نظير pwdump3 و Proactive Password Auditor نياز داريد. يک اسکنر درگاه عمومي نظير SuperScan يا Nmap نمي تواند براي اين منظور مفيد باشد.
- براي يک آناليز عميق از يک نرم افزار کاربردي وب، يک ابزار ارزيابي نرم افزار کاربردي وب نظير N-Stalker يا WebInspect مناسب تر از يک تحليلگر شبکه نظير Ethereal خواهد بود.
هنگام انتخاب ابزار امنيتي صحيح براي انجام يک کار، کمي جستجو کنيد. با همکاران خود و ساير کاربران Online مشورت نمائيد.
شما مي توانيد براي هک اخلاقي از صدها (اگر نگوييم هزاران) ابزار استفاده کنيد: از کلمات و حرکات خودتان گرفته تا برنامه هاي ارزيابي آسيب پذيري مبتني بر نرم افزار يا تحليلگرهاي شبکه مبتني بر سخت افزار.
قابليت هاي بسياري از ابزارهاي هک، غالباً ناشناخته مانده و يا با سوء تعبير مواجه مي شوند. اين سوء تعبير با يک تأثير منفي بر ابزارهايي همراه است که در صورت شناسايي واقعي و صحيح، عالي و مشروع هستند.
تعدادي از اين ابزارهاي آزمايش امنيتي، پيچيده هستند. پيش از آغاز استفاده از هر ابزار، با آن آشنايي پيدا کنيد. شيوه آشنايي با اينگونه ابزارها، عبارت است از:
- فايل هاي readme و يا فايل هاي Online Help ارائه شده براي ابزارهايتان را بخوانيد.
- دفترچه ي راهنماي کاربران را براي ابزارهاي تجاري مطالعه کنيد.
- از ابزارها در يک آزمايشگاه/محيط آزمايشي استفاده کنيد.
- در کلاس هاي آموزشي رسمي فروشندگان ابزارهاي امنيتي و ساير تأمين کنندگان طرف ثالث دوره هاي آموزشي، شرکت کنيد.
براي هک اخلاقي، در ابزارهاي خود به دنبال اين خصوصيات باشيد:
- مستندات کافي
- گزارش هاي مشروح در مورد آسيب پذيري هاي کشف شده، شامل شيوه ي بهره برداري و يا نحوه ي اصلاح آنها
- پذيرش صنعتي جامع
- دسترس پذيري ارتقاءها و پشتيباني
- گزارش هاي سطح بالا که قابل ارائه به مديران و افراد غير فني باشند.
اين ويژگي ها مي توانند باعث صرفه جوئي چشمگيري در وقت و انرژي شما در طول انجام آزمايش ها و تهيه ي گزارشهاي نهائي شوند.
اجراي برنامه
پيش از آغاز کار، اطمينان از اين مسئله که هيچ هکري بر روي سيستم شما حضور ندارد، عملي نيست. صرفاً اطمينان حاصل کنيد که همه چيز را تا حد امکان بي صدا و محرمانه نگه داشته ايد. اين موضوع خصوصاً در هنگام انتقال و ذخيره سازي نتايج آزمايشات شما اهميت پيدا مي کند. در صورت امکان، تمام emailها و فايل اي حاوي اطلاعات آزمايش هاي حساس را با استفاده از Pretty Good Privacy(PGP) يا يک فناوري مشابه، رمزگذاري کنيد. حداقل، از آنها با يک کلمه ي عبور محافظت نمائيد. حالا شما در يک مأموريت اکتشافي هستيد. حداکثر اطلاعات ممکن را درباره سازمان و سيستم هاي خود جمع آوري کنيد. اين همان کاري است که هکرهاي بدخواه انجام مي دهند کار خود را با يک ديد باز آغاز کرده و سپس توجه خود را متمرکزتر نمائيد:
1- نام سازمان خود، نام هاي کامپيوترها يا سيستم هاي شبکه و آدرس هاي IP خود را در اينترنت جستجو کنيد. Google يک مکان ايده آل براي آغاز جستجو است.
2- محدوده ي توجه خود را باريکتر نموده و سيستم هاي خاصي که در حال آزمايش آنها هستيد را هدف بگيريد. صرفنظر از اينکه در حال ارزيابي ساختارهاي امنيت فيزيکي هستيد يا نرم افزارهاي کاربردي وب، يک ارزيابي تصادفي مي تواند اطلاعات بسياري را در مورد سيستم هاي شما آشکار نمايد.
3- محدوده ي توجه خود را باز هم باريکتر نموده و نگاهي انتقادي داشته باشيد. اسکن هاي عملي و ساير آزمايش هاي مشروح را براي آشکارسازي آسيب پذيري ها بر روي سيستم هايتان انجام دهيد.
4- حملاتي را انجام داده و از هريک از آسيب پذيري هايي که کشف کرده ايد، بهره برداري نماييد (البته اگر در برنامه ريزي خود تصميم به انجام چنين کاري داشته ايد).
انجام نتيجه گيري
يک گزارش رسمي را براي مديران بالاتر و يا مشتري خود ارسال کرده، نتايج بدست آمده و توصيه هاي خود را در آن مشخص نماييد. اين افراد را در جريان بگذاريد تا نشان دهيد که تلاش هاي شما و پول آنها بخوبي صرف شده است.
و سخن آخر، استمرار فرايند ارزيابي
آسيب پذيري هاي امنيتي جديد، دائماً ظاهر مي شوند. سيستم هاي اطلاعاتي دائماً تغيير مي کنند و پيچيده تر مي شوند. شيوه هاي جديدي از بهره برداري توسط هکرها و آسيب پذيري هاي امنيتي جديد بطور منظم آشکار مي شوند. ممکن است خود شما موارد جديدي از آنها را کشف کنيد. آزمايش هاي امنيتي، يک تصوير لحظه اي از وضعيت امنيتي سيستم هاي شما هستند. در هر لحظه، هر چيزي مي تواند تغيير کند خصوصاً پس از يک ارتقاء نرم افزاري، اضافه کردن سيستم هاي کامپيوتري و يا اعمال وصله ها (Patch). ادامه ي پايدار و منظم آزمايش هاي امنيتي خود (براي مثال، يکبار در ماه، هر سه ماه يک بار و يا يک بار در سال) را برنامه ريزي کنيد.
منبع:ماهنامه ي کامپيوتري بزرگراه رايانه، شماره ي 131.
/ج
{{Fullname}} {{Creationdate}}
{{Body}}