چگونه يک آزمون قانوني نفوذ به شبکه را ترتيب دهيم (2)
اسکن سيستم ها
- از اطلاعات تأمين شده توسط جستجوهاي Whois خود را براي آغاز آزمايش ساير آدرس هاي IP و نام هاي ميزبان که داراي ارتباط نزديکي با موارد موجود هستند، استفاده نماييد. هنگاميکه شما از يک شبکه، نقشه برداري کرده و اطلاعاتي را درباره آن جمع آوري مي نماييد، نحوه ي چيدمان سيستم هاي آن را مشاهده خواهيد کرد. اين مرحله شامل تعيين آدرس هاي IP، نام ميزبان ها (داخلي و خارجي)، پروتکل هاي در حال اجرا، پورت هاي باز، Shareهاي قابل دسترسي و نرم افزارهاي کاربردي و سرويس هاي در حال اجرا است.
- ميزبان هاي داخلي را در صورتيکه در حوزه ي آزمايش هاي شما قرار دارند، اسکن کنيد. اين ميزبان ها براي افراد خارج از سازمان قابل رؤيت نخواهند بود، اما شما بايد آنها را آزمايش کنيد تا ببينيد که کارکنان Rogue و ساير پرسنل داخلي مي توانند به چه چيزي دسترسي پيدا کنند. يکي از بدترين وضعيت ها اين است که يک هکر، محل فعاليتي را در داخل شبکه شما ترتيب داده باشد. بنابراين بايد سيستم هاي داخلي را مورد بازديد قرار داده و از سلامتي و امنيت آنها مطمئن شويد.
اگر کاملاً با اسکن سيستم هاي خود راحت نيستيد، ابتدا استفاده از يک آزمايشگاه با سيستم هاي آزمايشي و يا سيستمي که نرم افزار ماشين مجازي (Virtual Machine) نظير VMware Workstation يا Microsoft Virtual PC را اجرا مي کند، در نظر بگيريد. با اينحال، احتمالاً اين يک آزمايش ايده آل نخواهد بود زيرا ممکن است بعضي از ابزارهاي هک (زمانيکه آنها را بر روي نرم افزار ماشين مجازي اجرا مي کنيد)، دقيقاً همانطور که طراحي شده اند، کار نکنند. اگر با بارگذاري نرم افزارها و پاسخدهي ميزبان ها مشکل داريد، احتمالاً ناچار خواهيد بود آزمايش هاي خود را بر روي کامپيوترهائي که بصورت فيزيکي از يکديگر مجزا هستند، انجام دهيد.
ميزبان ها
- يوتيليتي ابتدايي Ping که در سيستم عامل شما پياده سازي شده است.
- يک يوتيليتي طرف ثالث (نظير SuperScan يا NetScanTools Pro) که به شما امکان مي دهد تا آدرس هاي متعددي را بطور همزمان Ping کنيد.
سايت www.whatismyip.com نشان مي دهد که آدرس Gateway IP شما چگونه بر روي اينترنت ظاهر مي شود. کافي است به اين سايت مراجعه کنيد تا خارجي ترين آدرس IP عمومي خود را در آن مشاهده نماييد.
مودم ها و درگاه هاي باز
- مودم هاي محافظت نشده را با استفاده از نرم افزارهاي War-Dialing نظير PhoneSweep، ToneLoc و THC-Scan بررسي نمابيد. ما در قسمت هاي بعدي به بحث در مورد War Dialing خواهيم پرداخت.
- درگاه هاي شبکه را با SuperScan يا Nmap اسکن کنيد.
- با استفاده از يک تحليلگر شبکه نظير Ethernal، ترافيک شبکه را بازرسي کنيد.
انجام اسکن ها بصورت داخلي بسيار آسان خواهد بود. کافي است PC خود را به شبکه متصل نموده، نرم افزار مربوطه را بارگذاري کرده و کار را آغاز نماييد. با اينحال، اجراي اسکن ها از خارج شبکه به چند گام اضافي نياز خواهد داشت، اما به هر حال قابل انجام است:
- براي War Dialing، اسکن يک مشکل به حساب نمي آيد. شما مي توانيد تنها يکي از خطوط آنالوگ داخلي يا يک سوئيچ ديجيتال را براي Dial-Out مورد استفاده قرار دهيد.
- Pinging و اسکن درگاه (Port Scanning) کمي پيچيده تر است. آسانترين راه براي برقراري ارتباط و بدست آوردن يک چشم انداز «ازبيرون به داخل»، اختصاص يک آدرس IP عمومي به کامپيوترتان و اتصال ايستگاه کاري مورد نظر به يک سوئيچ يا هاب بر روي طرف عمومي فايروال يا روتر شبکه است. از نظر فيزيکي، کامپيوتر شما آنطور که به نظر مي رسد بر روي اينترنت قرار ندارد، اما اين نوع اتصال دقيقاً به همان صورت کار خواهد کرد. شما همچنين مي توانيد اينکار را از خانه يا يک دفتر دورتر انجام دهيد.
چه چيزي بر روي درگاه هاي باز جريان دارد؟
- پروتکل هاي مورد استفاده، نظير IPX، IP و NetBEUI
- سرويس هاي در حال اجرا بر روي ميزبان ها، نظير Web، e-mail و نرم افزارهاي کاربردي بانک اطلاعاتي
- سرويس هاي دسترسي از راه دور نظير سرويس هاي pcAnywhere، Windows Terminal و Secure Shell(SSH).
- سرويس هاي VPN نظير SSL، PPTP و IPSec.
- Authentication مورد نياز براي Shareهاي شبکه
شما احتمالاً با نمونه هايي از درگاه هاي باز زير مواجه خواهيد شد (برنامه اسکن شبکه شم، اين درگاه ها را بعنوان «باز» يا «زنده» شناسابي مي کند):
- پاسخ هاي Ping(ICMP Echo). انتقال ترافيک ICMP از/به ميزبان مجاز مي باشد.
- درگاه TCP شماره ي 20 يا 21 که نشان مي دهد FTP در حال اجرا است.
- درگاه TCP شماره ي 23 که نشان مي دهد Telnet در حال اجرا است.
- درگاه هاي TCP شماره ي 25 يا 465 (SMTP و SMTPS) و 110 يا 995 (POP3 و POP3S) و 143 يا 993 (IMAP و IMAPS) که نشان مي دهد يک سرور e-mail در حال اجرا است.
- درگاه TCP/UDP شماره ي 53 که نشان مي دهد يک سرور DNS در حال اجرا است.
- درگاه TCP شماره ي 80 يا 443 که نشان مي دهد يک سرور Web در حال اجرا است.
- درگاه هاي TCP/UDP شماره ي 137، 138 و 139 که نشان مي دهند يک ميزبان محافظت نشده ويندوز در حال اجرا است.
هزاران درگاه (Port) مي توانند باز باشند (بطور دقيق تر، 65536 عدد براي هر پروتکل TCP و UDP). يک فهرست از تمام شماره هاي درگاه هاي شناخته شده (درگاه هاي صفر تا 1023) و شماره ي درگاه هاي ثبت شده (درگاه هاي 1024 تا 49151) به همراه سرويس ها و پروتکل هاي مرتبط با آنها در آدرس www.iana.org/assignments/port-numbers قرار گرفته و دائماً بروزرساني مي گردد. شما همچنين مي توانيد يک جستجوي شماره درگاه را در www.cotse.com/cgi-bin/port.cgi انجام دهيد. اگر شما تشخيص دهيد که يک سرور وب بر روي سيستم مورد آزمايش شما در حال اجرا مي باشد، مي توانيد نسخه ي نرم افزار آن را با بکارگيري يکي از شيوه هاي زير بررسي نمائيد:
- نام سايت و سپس صفحه اي که مي دانيد وجود ندارد (نظير www.your_domain.com/1234.html) را تايپ کنيد. بسياري از سرورهاي وب، يک صفحه ي پيام خطا را بر مي گردانند که اطلاعات مشروحي درباره نسخه ي نرم افزاري آنها را نمايش مي دهد.
- از يوتيليتي جستجوي سرور وب Netcraft استفاده کنيد که از اينترنت با سرور شما ارتباط برقرار نموده و نسخه ي سرور وب و سيستم عامل در حال اجرا بر روي آن را نمايش مي دهد (شکل [5]).
شما مي توانيد در عمق بيشتري به جستجوي اطلاعات خاص در مورد ميزبان هاي خود بپردازيد. Netcraft، آشکار مي کند که کدام نسخه ي نرم افزار بر روي سيستم ها اجرا مي شود. براي کسب اطلاعات بيشتر، مي توانيد از ابزارهاي زير استفاده کنيد:
- NMap Win قادر است نسخه ي سيستم عامل در حال اجرا بر روي سيستم شما را تشخيص دهد.
- يک يوتيليتي «Enumeration» نظير DumpSec مي تواند مجوزهاي File and Share، کاربران و گروه ها را مستقيماً از ويندوز استخراج نمايد.
- بسياري از سيستم ها، اطلاعات Banner مفيدي را هنگاميکه به يک سرويس يا نرم افزار کاربردي در حال اجرا بر روي يک درگاه متصل مي شويد، بر مي گردانند. براي مثال، اگر با يک سرور e-mail بر روي درگاه 25 (و با وارد کردن فرمان telnet mail.your_domain.com 25 در يک اعلان فرمان) مشغول Telnet هستيد، احتمالاً چيزي شبيه به اين را مشاهده خواهيد کرد:
mail.your_domain.com ESMTP 220
all_the_version_info_you_need_to_hack Ready
اکثر سرورهاي email، اطلاعات مشروحي نظير نسخه و Service Pack جاري نصب شده بر روي سيستم را بر مي گردانند. پس از دريافت اين اطلاعات، شما (و هکرها) مي توانيد تعيين کنيد که چه آسيب پذيري هايي بر روي سيستم وجود دارند.
- يک ابزار Share-Finder نظير نمونه اي که در اسکنر امنيتي شبکه LANguard پياده سازي شده است، مي تواند Shareهاي باز ويندوز را بيابد.
- يک e-mail با يک آدرس غير معتبر مي تواند با اطلاعات مشروح هدر Header(e-mail) برگردد. يک پيام برگشت خورده غالباً انبوهي از اطلاعات (نظير آدرس هاي IP داخلي و نسخه هاي نرم افزارها) را آشکار مي سازد که مي توانند بر عليه شما مورد استفاده قرار گيرند. بر روي بعضي از سيستم هاي ويندوز، شما مي توانيد از اين اطلاعات براي برقراري ارتباطات فاقد اعتبار (unauthenticated) و در بعضي از موارد حتي map نمودن درايوها استفاده کنيد.
تعيين سيستم هايي که هک خواهند شد
- حساس ترين سيستم هاي شما، کدام سيستم ها هستند؟ کدام سيستم ها در صورتيکه بدون اجازه مورد دسترسي قرار گيرند، بيشترين مشکلات را بوجود آورده و يا متحمل بزرگترين خسارات خواهند شد؟
- کدام سيستم ها به نظر مي رسد، بيشترين آسيب پذيري را در برابر حملات دارند؟
- کدام سيستم ها مستند نشده اند، به ندرت سرپرستي مي شوند و يا يکي از سيستم هايي هستند که شما کمترين اطلاعات را درباره آنها داريد؟
پس از آنکه اهداف کلي خود را مشخص کرديد، درباره ي سيستم هايي که بايد تحت آزمايش قرار بگيرند، تصميم گيري نمائيد. اين مرحله به شما کمک مي کند تا به دقت محدوده اي را براي هک اخلاقي خود تعيين نموده و به اين ترتيب نه تنها انتظارات همه را برآورده کرده، بلکه برآورد بهتري از زمان و منابع مورد نياز جهت انجام کار خود داشته باشيد.
فهرست زير شامل ابزارها، سيستم ها و نرم افزارهاي کاربردي است که مي توانيد آنها را براي اجراي آزمايش هاي هک خود در نظر بگيريد:
- روترها
- فايروال ها
- زير ساختارهاي شبکه بعنوان يک «کل»
- Bridgeها و Access-Pointهاي بي سيم
- سرورهاي بانک اطلاعاتي، نرم افزار کاربردي و وب
- سرورهاي File/Print و e-mail
- ايستگاه هاي کاري، لپ تاپ ها و Tablet-PC ها
- ابزارهاي موبايل (نظير PDAها و تلفن هاي هوشمند) که اطلاعات محرمانه اي را در خود ذخيره مي کنند.
- سيستم هاي عامل سرور و کلاينت
- نرم افزارهاي کاربردي سرور و کلاينت، نظير e-mail و ساير نرم افزارهاي داخلي.
اين موضوع که بايد کدام سيستم هاي بخصوص را مورد آزمايش قرار دهيد، به عوامل متعددي بستگي دارد. اگر يک شبکه کوچک داريد، مي توانيد تمام بخش هاي آن را آزمايش کنيد. شما مي توانيد تنها به آزمايش ميزبان هاي « public-facing» نظير سرورهاي وب و e-mail و نرم افزارهاي کاربردي مربوطه به آنها بپردازيد. فرآيند هک اخلاقي کاملاً انعطاف پذير است. اين تصميم گيري ها را براساس آنچه که با بيشترين مفهوم تجاري همراه است، انجام دهيد.
کار خود را با آسيب پذيرترين سيستم ها آغاز کرده و عوامل زير را در نظر داشته باشيد:
- کامپيوتر و يا نرم افزار کاربردي مورد نظر در کدام قسمت از شبکه قرار گرفته است؟
- چه سيستم عامل و نرم افزارهاي کاربردي بر روي سيستم اجرا مي شوند؟
- مقدار يا نوع اطلاعات حياتي ذخيره شده بر روي سيستم
ممکن است اين اطلاعات قبلاً توسط يک ارزيابي ريسک امنيتي و يا آزمايش آسيب پذيري جمع آوري شده باشند. در اين صورت، مستندات مربوطه مي توانند به شناسايي سيستم ها براي انجام آزمايش هاي بيشتر کمک نمايند. هک اخلاقي، چند گام فراتر از ارزيابي هاي سطح بالاتر ريسک اطلاعات و آزمايش آسيب پذيري ها مي روند. بعنوان يک هکر اخلاقي، شما غالباً کار خود را با جمع آوري اطلاعات بر روي تمام سيستم ها (شامل تمام سازمان بعنوان يک « کل») آغاز نموده و سپس آن را با ارزيابي بيشتر سيستم هايي که بيش از سايرين آسيب پذير به نظر مي رسند، ادامه مي دهيد. اما در اينجا نيز فرآيند فوق کاملاً انعطاف پذير است.
آناليز درخت حمله
تنها نقيصه ي اين شيوه در آن است که ترسيم درختواره هاي حمله مي تواند بسيار وقتگير بوده و به تخصص قابل ملاحظه اي نياز داشته باشد. اما وقتي مي توانيد از يک کامپيوتر استفاده کنيد تا حجم انبوهي از کارها را براي شما انجام دهد، چرا بايد اين مشقت را تحمل نمائيد؟ يک ابزار تجاري با نام SecurITree از شرکت Amenaza Technologies Limited، ابزار تخصصي آناليز درخت حمله بوده و بايد در جعبه ابزار متخصصين امنيتي جدي حضور داشته باشد. شکل (6)، مثالي از تجزيه و تحليل درختواره حمله در SecurITree را نشان مي دهد.
عامل ديگري که براي تصميم گيري در مورد محل آغاز کار به شما کمک خواهد کرد، ارزيابي سيستم هايي است که داراي بيشترين آسيب پذيري هستند. براي مثال، تمرکز بر روي يک سرور فايل يا بانک اطلاعاتي که اطلاعات حساس مشتريان را ذخيره سازي مي کند، (حداقل در ابتدا) مي تواند از اهميت بيشتري نسبت به تمرکز برروي يک فايروال يا سرور وب که اطلاعات بازاريابي مربوط به شرکت بر روي آن ذخيره شده است، برخوردار باشد.
ارزيابي نقاط آسيب پذير
Common Vulnerabilities and Exposures(http://cve.mitre.org/cve)
- US-CERT Vulnerability Notes Database(www.kb.cert.org/vuls)
- NIST National Vulnerability Database (http://nvd.nist.gov)
اين سايت ها، عملاً هرگونه آسيب پذيري شناخته شده را براي شما فهرست خواهند نمود. اگر نمي توانيد يک آسيب پذيري داراي مستندات را در يکي از اين سايت ها بيابيد، سايت فروشنده را جستجو کنيد. شما مي توانيد فهرستي از آسيب پذيري هايي که بطور متداول مورد بهره برداري قرار گرفته اند را در www.sans.org/top20 بيابيد. اين فهرست در واقع شامل 20 آسيب پذيري امنيتي برتر اينترنتي است که با اتفاق آراء انتخاب شده و توسط نهادهاي مرتبط با امنيت اطلاعات، گردآوري و بروزرساني مي شود. اگر علاقه اي به انجام تحقيقات در مورد آسيب پذيري هاي احتمالي خود نداشته و مي توانيد آزمايش هاي خود را بلافاصله آغاز کنيد، دو گزينه را در اختيار خواهيد داشت:
- ارزيابي دستي: شما مي توانيد آسيب پذيري هاي احتمالي را با اتصال به درگاه هايي که سرويس يا نرم افزار کاربردي را در معرض ديد قرار داده اند و سپس «کنجکاوي» نمودن در مورد آنها، ارزيابي کنيد. شما بايد آسيب پذيري هاي معين (مثلاً در نرم افزارهاي کاربردي وب) را بطور دستي ارزيابي نمائيد. گزارشات آسيب پذيري ها در بانک هاي اطلاعاتي که قبلاً به آنها اشاره کرديم، غالباً نحوه انجام اينکار را (حداقل بطور کلي) فاش مي کنند. اگر به اندازه ي کافي وقت آزاد داشته باشيد، مي توانيد اين آزمايش ها را بصورت دستي انجام دهيد.
- ارزيابي خودکار: اگر شما نيز مانند ما باشيد، حتي الامکان آسيب پذيري ها را بصورت خودکار ارزيابي خواهيد کرد. ارزيابي هاي دستي يک شيوه ي عالي براي يادگيري به حساب مي آيند، اما مردم معمولاً وقت کافي براي اکثر مراحل ارزيابي دستي را در اختيار ندارند.
ابزارهاي بسيار خوبي براي ارزيابي وجود دارند. بعضي از آنها، آسيب پذيري ها را بر روي سکوهاي مشخص (نظير ويندوز يا يونيکس) و انواع خاصي از شبکه ها (کابلي يا بي سيم) آزمايش مي کنند. آنها به آزمايش آسيب پذيري هاي خاص سيستم مي پردازند (بعضي از آنها حتي بر فهرست SANS Top 20 تمرکز دارند.) نسخه هايي از اين ابزارها مي توانند منطق تجاري داخل يک نرم افزار کاربردي را نقشه برداري نمايند. گروه ديگري از آنها مي توانند در زمينه ي آزمايش نواقص کد برنامه، به برنامه نويسان نرم افزاري کمک کنند. نقيصه ي اين ابزارها در آن است که صرفاً قادر به يافتن آسيب پذيري هاي منفرد هستند. آنها نمي توانند آسيب پذيري هاي موجود در سراسر يک شبکه کامل را به يکديگر ربط دهند. با اينحال، اين وضعيت با عرضه ي نرم افزارهاي کاربردي «مديريت آسيب پذيري» و «ارتباط رويدادها»، در حال تغيير است.
يکي از ابزارهاي محبوب ما براي هک اخلاقي، يک ابزار ارزيابي آسيب پذيري با نام QualysGuard است. اين ابزار قادر است هر دو وظيفه ي اسکن درگاه و ارزيابي آسيب پذيري را انجام دهد و از سوي ديگر، ويژگي هاي فراواني را در زمينه ي مديريت آسيب پذيري ارائه مي کند. شما براي اجراي آن حتي به يک کامپيوتر نيز احتياج نخواهيد داشت زيرا QualysGuard يک ابزار تجاري مبتني بر تأمين کننده سرويس نرم افزار کاربردي است. کافي است به سايت وب Qualys مراجعه کرده، Log-in نموده و آدرس هاي IP سيستم هايي که مي خواهيد تحت آزمايش قرار گيرند را وارد کنيد. Qualys همچنين دستگاهي را ارائه مي کند که مي توانيد آن را بر روي شبکه خود نصب کنيد تا امکان اسکن سيستم هاي داخلي شما را در اختيارتان قرار دهد. کافي است برنامه ي زمانبندي ارزيابي مورد نظر خود را آماده کنيد تا اين دستگاه آن را اجرا کرده و سپس گزارش هاي فوق العاده اي را تهيه نمايد. نمونه هايي از اين گزارش ها عبارتند از:
- يک گزارش مديريت که شامل اطلاعات کلي از نتايج اسکن است (شکل 8).
- يک گزارش فني با توضيحات مشروح از آسيب پذيري ها و اقدامات متقابل احتمالي
همانند اکثر ابزارهاي خوب امنيتي، شما بايد هزينه ي QualysGuard را بپردازيد. اين ابزار، ارزانترين نمونه موجود به حساب نمي آيد اما ويژگي هاي آن، کاملاً قادر به توجيه هزينه اش خواهند بود. با QualysGuard، شما يک مجموعه از «اسکن هاي » مبتني بر شماره آدرسهاي IP مورد آزمايش خود را خريداري نموده و در صورت نياز از آنها استفاده خواهيد کرد. بعضي از محصولات جديدتر، قابليت هاي فني مشابهي را به همراه سهولت کاري بيشتر فراهم مي کنند.
ارزيابي آسيب پذيري ها با ابزاري نظير QualysGuard، نيازمند تخصص است. گزارش هاي ايجاد شده توسط اين ابزار را مطالعه کنيد تا توصيه هاي خود را براساس مضمون و حساسيت سيستم هاي مورد آزمايش، ارائه نمائيد.
نفوذ به سيستم
- دستيابي به اطلاعات بيشتر در مورد ميزبان و داده هاي آن
- بدست آوردن يک اعلان فرمان از راه دور
- اجرا يا متوقف نمودن سرويس ها يا نرم افزارهاي کابردي معين
- دسترسي به ساير سيستم ها
- غير فعال نمودن ثبت گزارشات (Logging) يا ساير کنترل هاي امنيتي
- ضبط Screen-Shot ها از نرم افزارهاي حساس
-ضبط ضربات کليدها (keystrokes)
- ارسال يک e-mail بعنوان سرپرست شبکه
- اجراي يک حمله سر ريز بافر (Buffer-Overflow)
- اجراي نوع ديگري از حملات DoS
- Upload فايلي که پيروزي شما را به اثبات مي رساند.
ابزارهايي نظير Metasploit و CORE IMPACT براي بهره برداري از اکثر آسيب پذيري هايي که پيدا کرده ايد، عالي هستند و به شما امکان مي دهند تا کاملاً به سيستم نفوذ کنيد. بطور ايده آل، شما از قبل در مورد اينکه آيا از آسيب پذيري هايي که يافته ايد بطور کامل بهره برداري خواهيد نمود يا خير، تصميم گيري کرده ايد. شما صرفاً مي خواهيد نشان دهيد که آسيب پذيري ها وجود دارند، نه اينکه واقعاً از آنها بهره برداري نمائيد.
منبع: ماهنامه ي کامپيوتري بزرگراه رايانه، شماره ي 131.
ادامه دارد...
/ج