برای مطالعه بخش قبل روی این آدرس کلیک کنید.
هنگامی که در حال انجام تست نفوذ هستید، فرآیند هک را دنبال کنید و از ابزارهای استفاده شده توسط هکرها برای انجام یک آزمایش واقعی استفاده کنید تا ببینید آیا سیستمها ممکن است به خطر بیفتند یا خیر، اما همچنین بر مبنای یک برنامه کلی در مورد نحوه انجام تست نفوذ گام بردارید. در زیر لیستی از برخی از مراحل متداول در تست نفوذ ارائه شده است:
- جلسه اولیه (Initial meeting): فرآیند را با ملاقات با مدیریت سطح بالا شروع کنید تا از محدوده کاری که قصد انجام آنرا دارند، اطلاع حاصل کنید. در این مرحله، باید دریابید که آیا انجام انواع تستها، مانند حملات انکار سرویس، حملات سرریز بافر، و حملات رمز عبور (به چند مورد) مشکلی دارد یا خیر. همچنین، در این مرحله باید تاکید کنید که نمیتوانید تضمین کنید که انکار سرویس هیچگاه اتفاق نخواهد افتاد.
- پیش نویس اسناد قانونی (Draft legal documents): بعد از جلسه اولیه، به یک وکیل مراجعه کنید و یک سند قانونی تنظیم کنید که نشان دهد مجاز به انجام آزمایش نفوذ هستید. سند باید به امضا نماینده مجاز سازمانی که برای آن تست نفوذ انجام میدهید مکتوب شده باشد.
- یک طرح پنتست ایجاد کنید (Create a pentest plan): بعد از امضای سند، انواع حملات یا آزمایشی را که انجام خواهید داد برنامهریزی کنید. هدف از ساختن برنامه این است که منظم باشید و از یک روش ساختارمند در الگوی کاری خود پیروی کنید.
- طرح پنتست را آزمایش کنید (Test the pentest plan): ابزارهایی که برای انجام انواع مختلف حملات استفاده میکنید را آزمایش کنید تا مطمئن شوید که کار میکنند و ببینید آیا هنگام اجرا باعث انکار سرویس میشوند یا خیر.
- آزمایش نفوذ انجام دهید (Perform a penetration test): در این مرحله شما در سایت مشتری هستید که آزمایش نفوذ روی آن انجام میشود. حتما مواردی مثل، شکستن رمز عبور، شکستن بی سیم و حملات سرریز بافر را آزمایش کنید. عناصر امنیتی فیزیکی و حملات مهندسی اجتماعی را آزمایش کنید. مطمئن شوید که همه کارهایی را که انجام میدهید، از جمله زمان شروع و زمان پایان هر مرحله، مستند کنید.
- گزارشی درباره یافتهها ایجاد کنید (Create a report on findings): پس از تکمیل آزمایش، گزارشی در مورد یافتههای خود ایجاد کنید. شما مجبور نیستید گزارش تمام فعالیتهای خود را وارد کنید، اما در صورتی که مجبور به مراجعه به آن هستید، حتما آن را در دسترس داشته باشید. شما باید اسکرینشاتهایی از حملات موفقیتآمیز و شکست خورده به سیستمها را همراه با توصیههایی در مورد چگونگی بهبود امنیت اضافه کنید.
- نتایج گزارش را ارائه دهید (Present report results): در این مرحله، مجدداً با مدیریت سطح بالا ملاقات کنید تا یافتههای خود را در قالب گزارشی در اختیار او قرار دهید. اطمینان حاصل کنید که مشتری برگه مربوط به ارزیابی را امضا کند.
- کپیهای اضافی از گزارشها را از بین ببرید (Destroy any copies of the report): بهعنوان گام نهایی، اطمینان حاصل کنید که نسخههای دیگری از ارزیابی به صورت چاپی یا الکترونیکی وجود ندارد.
انجام ارزیابی آسیبپذیری
نوع دیگری از تست امنیتی که میتوانید به جای تست نفوذ انجام دهید، ارزیابی آسیبپذیری است. ارزیابی آسیبپذیری یک نوع ارزیابی غیرفعال در نظر گرفته میشود، زیرا شما در واقع حملات علیه سیستم را شبیهسازی نمیکنید. با ارزیابی آسیبپذیری، شما به دنبال شناسایی هر گونه ضعف در پیکربندی شبکه و سیستمهای آن هستید و علاقهای به آزمایش این نقاط ضعف ندارید تا ببینید آیا میتوانید سیستمها را به خطر بیندازید یا خیر.
وقتی مدیریت از شما میخواهد که امنیت را ارزیابی کنید، اما از این واقعیت که ابزارهای هک را علیه سیستمها اجرا میکنید احساس رضایت نمیکنند، باید ارزیابی آسیبپذیری انجام دهید. مزیت اصلی این است که یک نوع ارزیابی ایمن و بدون به خطر انداختن سیستمها انجام میشود.
انجام یک ارزیابی دستی
هنگام انجام ارزیابی آسیبپذیری، توصیه میکنم ابتدا یک ارزیابی دستی روی شبکه و سیستمهای آن انجام دهید. با ارزیابی دستی، شما اساساً یک ارزیابی پیکربندی انجام میدهید و پیکربندی شبکه، کلاینتها، دستگاهها و سرورها را تأیید میکنید. در این ارزیابی دستی، به دنبال اطمینان از رعایت بهترین شیوهها، مانند اطمینان از داشتن خطمشی رمز عبور و استفاده از نرمافزار محافظت در برابر ویروس، باشید. به خاطر داشته باشید که در یک شبکه بزرگ فرآیند فوق زمانبر است، بنابراین مهم است که یک چکلیست داشته باشید تا شما را در مسیر درست نگه دارد.
انجام یک ارزیابی خودکار
هنگامی که ارزیابی آسیبپذیری را انجام میدهید، به احتمال زیاد از نرمافزارهای ارزیابی آسیبپذیری مانند LANguard یا Nessus استفاده میکنید. این دو محصول پیشرو در زمینه ارزیابی آسیبپذیری هستند و قطعاً وقت زیادی از شما میگیرند. در هنگام استفاده از اسکنرهای آسیبپذیری مانند Nessus یا LANguard، اولین چیزی که باید درک کنید این است که این ابزارها با اسکن چندین سیستم و مقایسه پیکربندیهای سیستم با پایگاه داده آسیبپذیری، به خودکار کردن فرآیند انجام اسکن آسیبپذیری کمک میکنند.
هنگام انجام اسکن آسیبپذیری، توصیه میکنم اسکن را دو بار انجام دهید، یک بار به صورت اسکن پوچ (شما به شبکه احراز هویت نکردهاید زیرا نام کاربری و رمز عبور یک حساب کاربری را نمیدانید) و دیگری اسکن با یک حساب مدیریتی. هدف از انجام دوبار اسکن این است که اطمینان حاصل شود که اولین اسکن به شما دید کلی در ارتباط با اطلاعات و سرویسهایی میدهد که افراد ممکن است قادر به مشاهده آن باشند. اسکن دوم به شما امکان میدهد به همه سیستمهای دارای یک حساب مدیریتی متصل شوید.
تفسیر نتایج (Interpreting the Results)
پس از تکمیل اسکن آسیبپذیری، مهم است که مدتی را صرف بررسی نتایج کنید تا مطمئن شوید سیستمها در امنیت کامل قرار دارند. اگر سیستمها امن نیستند، باید توصیههایی در مورد اقداماتی که میتوان برای بهبود امنیت انجام داد، ارائه دهید. فهرست زیر برخی از اقدامات ممکن برای بهبود امنیت را تشریح میکند:
- حذف نرمافزار (Uninstall software): ممکن است اسکنر آسیبپذیری به شما اطلاع دهد نرمافزاری نصب کردهاید که مستعد حمله است. میتوانید در صورت عدم استفاده از نرمافزار، آنرا حذف نصب کنید یا در صورت استفاده، آن را وصله کنید.
- غیر فعال کردن سرویسها (Disable services):اسکنر آسیبپذیری ممکن است سرویسهای رایجی را که در حال اجرا هستند و معمولاً توسط شرکتها استفاده نمیشوند شناسایی کند. در این صورت باید این سرویسها را غیرفعال کرده و نوع راهاندازی آنها در وضعیت Disabled قرار دهید.
- وصلهها را بهروزرسانی کنید (Update patches): نرمافزار ارزیابی آسیبپذیری، قادر است در خصوص عدم وصله، آسیبپذیریها به شما اطلاع دهد. اگر وصلهای نصب شده، در اولین فرصت اینکار را انجام دهید.
- تغییر تنظیمات (Change settings): نرمافزار ارزیابی آسیبپذیری ممکن است برخی از اشتباهات رایج پیکربندی در سیستمها را شناسایی کند. در نتیجه، شما باید تنظیمات را بررسی کرده و آنها را برای بهبود امنیت سیستم تغییر دهید.
در زیر چند نکته کلیدی وجود دارد که باید در مورد ارزیابی آسیبپذیری برای آزمون گواهینامه سکیوریتیپلاس به آن دقت کنید.
- کنترلهای امنیتی را به صورت غیرفعال آزمایش کنید (Passively test security controls): برخلاف تست نفوذ (تست فعال)، ارزیابی آسیبپذیری یک آزمایش غیرفعال در نظر گرفته میشود، زیرا در واقع سعی در به خطر انداختن سیستم ندارد.
- آسیبپذیریها را شناسایی کنید (Identify vulnerabilities): یک نرمافزار ارزیابی آسیبپذیری، بخشهایی از شبکه و سیستمهای مستقر در آن که مستعد حمله هستند را شناسایی میکند.
- فقدان کنترلهای امنیتی را شناسایی کنید (Identify lack of security controls): یک ارزیابی آسیبپذیری، کنترلهای امنیتی موجود را شناسایی میکند. به عنوان مثال، تشخیص میدهد که آیا مجوزهای یک پوشه را پیکربندی کردهاید یا فایروال روی سیستمی را نصب کردهاید یا خیر.
- پیکربندیهای نادرست رایج را شناسایی کنید (Identify common misconfigurations): یکی از مهمترین مواردی که یک اسکنر آسیبپذیری ممکن است شناسایی کند این است که شما سیستم را به درستی پیکربندی نکردهاید و در نتیجه باعث شدهاید که سیستم برای حمله بازتر شود.
توجه داشته باشید که به عنوان بخشی از تست نفوذ، معمولاً با ابزاری مانند Nessus اسکن آسیبپذیری را انجام دهید. ابزار فوق، یک راه عالی برای تشخیص وجود آسیبپذیریهای مرتبط با یک سیستم و نحوه بهرهبرداری از آنها در اختیارتان قرار میدهد.
ابزارهای مورد استفاده برای ارزیابی امنیت
اکنون که مراحل انجام تست نفوذ را متوجه شدید، بیایید به برخی از ابزارهایی که برای انجام ارزیابیهای امنیتی و تست نفوذ استفاده میشود، نگاهی داشته باشیم. مطمئناً سؤالاتی در آزمون سکیوریتی پلاس مشاهده خواهید کرد که دانش شما در ارتباط با ابزارها و کارهایی که انجام میدهند را محک میزنند.
ابزارهای اساسی
ابزارهای مختلف تست امنیتی و وبسایتها میتوانند به شما در انجام تست نفوذ کمک کنند. وبسایتهای زیر اطلاعات خوبی در ارتباط با آسیبپذیری موجود در محصولات مختلف ارائه میکنند.
https://packetstormsecurity.org/files/
لازم به توضیح است که ابزارهایی ساخته شدهاند که میتوانید از آنها برای انجام تست نفوذ استفاده کنید. در زیر برخی از ابزارهای رایج تست نفوذ موجود در وب آمده است:
- Kali Linux : یک توزیع ویژه از لینوکس است که میتوانید از www.kali.org دانلود کنید که حاوی تعدادی ابزار امنیتی از پیش نصب شده در سیستم عامل است. اکثر ابزارهای ذکر شده در این بخش به شکل پیشفرض در کالی لینوکس نصب شدهاند. کالی لینوکس شامل ابزارهایی برای شکستن رمزهای عبور، شکستن رمزگذاری بی سیم و انجام تستهای غیرفعال مانند OSINT، پروفایل DNS و... است. نکته جالب در مورد کالی لینوکس این است که وقتی به سیستم نگاه میکنید، نرمافزارها به ترتیبی چینش شدهاند که برای فرآیند هک باید از آنها استفاده کنید.
- Metasploit : مجموعهای از اکسپلیوتهای پیرامون محصولات مختلف است. برای اطلاعات بیشتر در این زمینه به آدرس www.metasploit.com مراجعه کنید. Metasploit همچنین در Kali Linux به شکل از پیش نصب شده و آماده استفاده در دسترس قرار دارد.
شناسایی و کشف شبکه (Network Reconnaissance and Discovery)
تسترهای نفوذ تعدادی ابزار دارند که برای دریافت اطلاعات مهم در ارتباط با سازمانها و سیستمها از آنها استفاده کنند. در زیر برخی از ابزارهای رایج شناسایی و کشف مورد استفاده توسط تسترهای نفوذ آورده شده است.
ابزارهای کشف (Discovery Tools)
تعدادی ابزار وجود دارد که برای کشف سیستمها در شبکه، آدرس IP سیستم، اتصالات شبکه و اطلاعات عمومی موجود در اینترنت در ارتباط با یک شرکت استفاده میشوند. در زیر لیستی از ابزارهای مهم که برای آزمون باید اطلاعاتی در مورد آنها داشته باشید ارائه شده است.
- tracert/traceroute: برای ردیابی مسیری که یک بسته در شبکه طی میکند استفاده میشود. هنگامی که بسته به یک روتر میرسد، یک پاسخ ارسال میشود و به شما اطلاع میدهد که بسته از چند مسیریاب عبور میکند.
- nslookup/dig: ابزارهای جستجوی سامانه نام دامنه است. nslookup در هر دو سیستم ویندوز و لینوکس رایج قابل استفاده است، در حالی که dig در سیستمهای لینوکس در دسترس است.
- ipconfig/ifconfig: به ترتیب برای نمایش تنظیمات TCP/IP در یک سیستم ویندوزی یا سیستم لینوکسی استفاده میشود.
- netstat: برای مشاهده فهرستی از پورتهای باز شده در یک سیستم یا مشاهده افرادی که به آن سیستم متصل هستند استفاده میشود. برای مشاهده تمام پورتهای باز، از netstat -na استفاده کنید.
- theHarvester: ابزار OSINT است که برای جمعآوری آدرسهای ایمیل کارمندان، نامهای دامنه، نام سرورها و درگاههای باز در سیستمها از منابع عمومی موجود در اینترنت استفاده میکند.
پینگرها و اسکنرها (Pingers and Scanners)
بخشی از فرآیند ارزیابی شبکه، مکانیابی سیستمهایی است که در حال اجرا هستند، چه پورتهایی روی یک سیستم در حال اجرا باز هستند و چه آسیبپذیریهایی ممکن است وجود داشته باشد. موارد زیر ابزارهایی هستند که برای پینگ کردن به سیستمها در شبکه، انجام اسکن پورت و اسکن آسیبپذیری استفاده میشوند.
- ping/pathping: هم برای پینگ و هم برای مسیریابی با هدف آزمایش اتصال به یک سیستم راه دور استفاده میشوند، اما وضعیت هر هاپ بسته را نشان میدهد. نحوه استفاده از ابزارهای فوق ساده است. کافی آدرس نام دستور را همراه با آدرس آیپی مقصد وارد کنید، بهطور مثال ping 192.168.1.1 یا pathping 192.168.1.1.
- Hping : پینگری است که به شما امکان میدهد بستهای را ایجاد کنید تا بتوانید فایروالها را دور بزنید. برای مثال، اگر سیستمی بستههای ICMP را مسدود میکند که از پینگ کردن به سیستم جلوگیری میکند، میتوانید از hping استفاده کنید و پروتکل TCP و پورتی را که احساس میکنید باز است را مشخص کنید تا پیامهای پینگ از طریق فایروال عبور کنند.
- IP scanners: اسکنرهای IP برای انجام اسکن در شبکه برای تشخیص اینکه چه سیستمهایی راهاندازی و در حال اجرا هستند و آدرسهای IP آنها استفاده میشوند.
- nmap: یک اسکنر شبکه مرسوم است که میتواند برای شناسایی سیستمها، اسکن پورت، گرفتن بنر و شمارش سیستم، عمل پینگسوئیپ را انجام دهد. یکی از رایجترین ابزارهایی که برای آزمون باید اطلاعات کاملی در مورد آن داشته باشید، nmap است.
- Nessus : یک اسکنر شناسایی آسیبپذیری پر کاربرد است که برای اسکن سیستمها و گزارش هرگونه آسیبپذیری استفاده میشود. گزارش آسیبپذیری در طول تست نفوذ مفید است، زیرا به شما امکان میدهد تا امتیاز CVSS آسیبپذیری و هرگونه سوءاستفادهای که برای آن وجود دارد را شناسایی کنید.
Wireless Scanner/Cracker
مجموعهای از ابزارهای رایج مورد استفاده در شبکههای امروزی، اسکنر بیسیم و کرکر بیسیم است. اسکنر بیسیم ابزاری است که میتواند برای کشف شبکههای بیسیم در محدوده و ویژگیهای آنها استفاده شود. به عنوان مثال، با یک اسکنر بیسیم، میتوانید نام SSID، کانال، نوع رمزگذاری مورد استفاده (WEP/WPA2) و قدرت سیگنال را ببینید. نمونههایی از اسکنرهای بیسیم عبارتند از Acrylic Wi-Fi برای ویندوز و Kismet برای لینوکس.
کرکر بیسیم ابزاری است که برای شکستن کلید رمزگذاری در شبکه بیسیم محافظت شده WEP یا WPA2 استفاده میشود. ابزارهایی مانند مجموعه Aircrack-ng وجود دارد که میتواند برای ضبط ترافیک بیسیم (airodump-ng) و سپس شکستن رمزگذاری بیسیم (aircrack-ng) پس از دریافت ترافیک کافی استفاده شود.
ظرف عسل، شبکه عسل و فایلهای عسل (Honeypot، Honeynet و Honeyfiles)
یکی دیگر از روشهای رایج ارزیابی امنیت، راهاندازی هانیپات در شبکه است. هانیپات سیستمی است که در شبکه قرار میگیرد تا هکر را جذب کند، به جای اینکه هکر به یکی از سیستمهای تولیدی نفوذ کند. هدف اصلی هانیپات این است که اگر هکر به شبکه دسترسی پیدا کرده است، برای خود مدتی زمان بخرید.
بسیار مهم است که هانیپات را مانند هر سیستم دیگری پیکربندی کنید و مطمئن شوید که بهترین شیوههای امنیتی را برای ایمن کردن و محافظت از سیستم دنبال کنید. برخی از متخصصان فناوری اطلاعات فکر میکنند که نفوذ به هانیپات باید ساده باشد، اما اگر خیلی آسان باشد، هکر به هانیپات بودن آن مشکوک خواهد شد. شما همچنین میخواهید که نفوذ به هانیپات سخت باشد، زیرا هکر به زمان بیشتری برای نفوذ نیاز دارد. در این مدت قادر هستید اطلاعات خوبی در ارتباط با هکر به دست آورید.
اطمینان حاصل کنید که هانیپات دارای سطح بالایی از ممیزی و ثبت گزارش فعال است تا بتوانید تمام فعالیتهای انجام شده توسط هکر را ضبط کنید. برای محافظت از گزارشها، آنها را در یک سیستم راه دور که همیشه ایمن است، ذخیرهسازی کنید.
ظرفهای عسل یک راه عالی برای آگاهی در مورد سوء استفاده از آسیبپذیریهای روز صفر هستند. یک اکسپلویت روز صفر، اکسپلویتی است که ناشناخته است و محافظت در برابر آن سخت است، زیرا شرکت سازنده نرمافزار از وجود اکسپلویت آگاه نیستید. وقتی یک هانیپات راهاندازی میکنید و هکر از اکسپلویت روز صفر استفاده میکند، با فایلهای لاگ موجود در هانیپات اطلاعات مهمی در این زمینه به دست میآورید.
هانینت بسیار شبیه هانیپات است به این معنا که برای جذب هکر طراحی شده است، اما هانینت شبکه کاملی از سیستمهای جعلی است که فعالیت هکر را ردیابی میکند.
Honeyfile فایلی است که شما روی یک سیستم میگذارید تا مهاجم آنرا باز کند. به عنوان مثال، میتوانید یک فایل متنی به نام password.txt روی دسکتاپ قرار دهید. اگر سیستم به خطر بیفتد و مهاجم فایل را باز کند، یک هشدار ارسال میشود که به شما اطلاع میدهد، شخصی فایل را باز کرده است.
برای آزمون سکیوریتی پلاس به یاد داشته باشید که honeyfile فایلی است که برای ترغیب مهاجم برای باز کردن طراحی شده است. این یک زنگ هشدار است که فردی به سیستم نفوذ کرده است.
سایر ابزارهای شبکه
تعدادی از ابزارهای شبکه ممکن است گهگاهی توسط تسترهای نفوذ استفاده شوند. در زیر برخی از رایجترین ابزارهای شبکه آورده شده است:
- netcat: برای باز کردن یک پورت در یک سیستم و اجرای فرآیندی در آن پورت استفاده میشود. رویکرد فوق معمولا توسط نفوذگرها برای باز کردن درب پشتی روی سیستمی استفاده میشود که قرار است نفوذ به آن انجام شود.
- ARP: برای نمایش و مدیریت محتوای حافظه پنهان ARP در سیستم محلی استفاده میشود.
- route: فرمان فوق برای اصلاح جدول مسیریابی یک سیستم استفاده میشود.
- cURL: ابزاری است که برای انتقال فایلها بین سیستمهای مختلف با استفاده از URLها و پروتکلهای اینترنتی مانند HTTP، HTTPS، FTP و FTPS استفاده میشود.
- sn1per : ابزاری است که برای اسکن سیستمها از نظر آسیبپذیری استفاده میشود. ابزار فوق ترکیبی از ویژگیها مثل whois، ping، nmap و اکسپلویتها را برای ارزیابی سیستمها مورد استفاده قرار میدهد.
- dnsenum: برای جمعآوری رکوردهای DNS برای یک منطقه DNS خاص استفاده میشود.
- Cuckoo: محیطی مثل جعبه شن ارائه میکند که به شما امکان اجرای بدافزار را میدهد. Cuckoo به شما گزارش میدهد که بدافزار چه اقداماتی را روی سیستم انجام داده است.
دستکاری فایل
از آنجایی که اکثر ابزارها و چارچوبهای تست امنیتی روی لینوکس اجرا میشوند، یک pentester باید ابزارهایی را بشناسد که برای انجام دستکاری فایلها از آنها استفاده میشود. در زیر برخی از ابزارهای رایج دستکاری فایل در لینوکس ارائه شدهاند:
- head: یک فرمان لینوکسی است که برای گزارش محتوای آغازین یک فایل (به طور پیشفرض ده خط اول) استفاده میشود.
- tail : مشابه دستور head، اما این دستور لینوکس برای چاپ ده خط آخر روی صفحه استفاده میشود.
- cat : برای نمایش محتوای یک یا چند فایل متنی در لینوکس استفاده میشود.
- grep : برای جستجوی یک رشته خاص در یک فایل استفاده میشود.
- chmod : برای تغییر مجوزهای یک فایل استفاده میشود.
- logger : به شما امکان میدهد ورودیهای گزارش را به فایل /var/log/syslog اضافه کنید.
برای مطالعه بخش بعد اینجا کلیک کنید
برای مطالعه تمام قسمتهای آموزش سکیوریتی پلاس اینجا کلیک کنید.
تبلیغات لینکی:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟