آموزش تست نفوذ (Penetration Test)

دسته بندی: آموزش تست نرم افزار

آموزش تست نفوذ

آنچه در این صفحه می خوانید:

تست نرم افزار چیست؟

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

چرا تست نرم افزار ها امری ضروری است؟

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

انواع تست نرم افزار

آموزش تست واحد (Unit testing)

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

آموزش تست استاتیک (Static testing)

تکنیک تست نرم افزاری است که در آن نرم افزار بدون اجرای کد مورد تست قرار می گیرد.

آموزش تست یکپارچه سازی (Integration testing)

تست یکپارچه سازی فرآیند توسعه نرم افزاری است که واحدهای برنامه را به صورت چند گانه ترکیب و تست می کنند.

آموزش تست نفوذ (Penetration Testing)

Penetration testing یا pen testing به معنای تست نفوذ، انجام تست سیستم کامپیوتری، شبکه یا برنامه وب برای شناسایی آسیب پذیری هایی است که مهاجم می تواند از آن استفاده کند.

آموزش تست خودکار (Automated Testing)

تست خودکار تکنیک است که اپلیکیشن یا نرم افزار برای پیاده سازی کل چرخه عمر نرم افزار در زمان کم از آن استفاده و بهره وری و اثربخشی را برای نرم افزار تست فراهم می کند.

معرفی تست نفوذ (Penetration Test)

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

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

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

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

چندین فریمورک و روش استاندارد برای انجام آزمایش های نفوذ وجود دارد. این موارد شامل کتابچه راهنمای روش آزمایش امنیت امنیت منبع باز (OSSTMM)، استاندارد اجرای تست نفوذ (PTES)، انتشار ویژه NIST 800-115، فریمورک ارزیابی امنیت سیستم اطلاعات (ISSAF) و راهنمای تست OWASP است.

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

مراحل تست نفوذ (Penetration Test)

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

  1. بازآفرینی: عمل جمع آوری اطلاعات مهم در مورد سیستم هدف. از این اطلاعات می توان برای حمله بهتر به هدف استفاده کرد. به عنوان مثال، می توان از موتورهای جستجوگر اوپن سورس برای یافتن داده هایی استفاده کرد که می توانند در حمله مهندسی اجتماعی مورد استفاده قرار گیرند.
  2. اسکن: از ابزارهای فنی برای پیشبرد دانش مهاجم در مورد سیستم استفاده می کند. به عنوان مثال، می توان از Nmap برای اسکن پورت های باز استفاده کرد.
  3. به دست آوردن دسترسی: با استفاده از داده های جمع آوری شده در مراحل شناسایی و اسکن، مهاجم می تواند از payload برای سوء استفاده از سیستم هدفمند استفاده کند. به عنوان مثال، Metasploit می تواند برای خودکارسازی حملات روی آسیب پذیری های شناخته شده مورد استفاده قرار گیرد.
  4. حفظ دسترسی: حفظ دسترسی مستلزم انجام اقدامات لازم برای پایدار ماندن در محیط هدف برای جمع آوری هرچه بیشتر اطلاعات است.
  5. پوشش رد پا: مهاجم باید هر اثری از به خطر انداختن سیستم قربانی، هر نوع داده جمع آوری شده، وقایع ثبت شده را پاک کند تا ناشناس شود.

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

آسیب پذیری

عملیات حقوقی که به آزمایش کننده اجازه می دهد عمل غیرقانونی را انجام دهد شامل دستورات SQL بدون اشکال، کلمات عبور بدون تغییر در پروژه های منبع قابل مشاهده، روابط انسانی و عملکردهای قدیمی و رمزنگاری شده است. ممکن است یک نقص تنها کافی نباشد که بتواند سوءاستفاده جدی را فعال کند. استفاده از چندین نقص شناخته شده و شکل دادن به بار به روشی که به عنوان عملیات معتبر ظاهر شود، تقریباً همیشه مورد نیاز است. Metasploit یک کتابخانه روبی را برای کارهای مشترک فراهم می کند، و پایگاه داده از بهره برداری های شناخته شده را حفظ می کند.

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

تصور کنید یک وب سایت دارای 100 صندوق ورودی متن است. تعداد کمی در معرض تزریق SQL در رشته های خاص هستند. امیدوارم برای مدتی رشته های تصادفی را به آن جعبه ها بپیچید امیدوارم مسیر کد اشکال زده را طی کنید. این خطا خود را به عنوان صفحه اچ تی ام ال (HTML) شکسته که به دلیل خطای اس کیوال (SQL) ارائه شده است نشان می دهد. در این حالت، فقط جعبه های متنی به عنوان جریان ورودی رفتار می شوند. با این حال، سیستم های نرم افزاری جریانهای ورودی زیادی دارند، مانند داده کوکی و جلسه، جریان پرونده بارگذاری شده، کانال های RPC یا حافظه. خطاها در هر یک از این جریان های ورودی می توانند رخ دهند. هدف آزمون این است که ابتدا خطای حل نشده را بدست آورید و سپس عیب را بر اساس مورد آزمون شکست خورده درک کنید. آزمایش کنندگان تا زمانی که صحیح نباشد، ابزار خودکار را برای تست درک خود از نقص می نویسند. پس از آن، ممکن است نحوه بسته بندی هزینه بار به گونه ای آشکار شود که سیستم هدف اجرای آن را آغاز کند. اگر این امر قابل استفاده نباشد، می توان امیدوار بود كه خطای دیگری كه توسط فیوزر حاصل می شود، ثمر بیشتری می دهد. استفاده از فوزر با چک نکردن مسیرهای کد کافی که سوءاستفاده ها بعید است، در وقت صرفه جویی می کند.

ظرفیت بارگیری

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

  • Metasploit
  • Nessus
  • Nmap
  • OpenVAS
  • W3af

مزایای تست نفوذ (Penetration Test)

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

  • شناسایی محیط شبیه سازی شده برای مثال: چگونگی حمله ی نفوذگر یا هکر به سیستم از طریق حمله کلاه سفید
  • کمک می کند تا مکان های ضعیفی را پیدا کنید که ممکن است نفوذگر بتواند به ویژگی های رایانه و داده دسترسی پیدا کند.
  • پشتیبانی از جلوگیری از حمله کلاه سیاه و محافظت از داده های اصلی
  • برآورد میزان حمله به کسب و کار بالقوه
  • نشان دهنده ی شواهدی است که دلیل اهمیت افزایش سرمایه گذاری در جنبه های امنیتی فناوری را ارائه می هد.

بهبود سیستم مدیریت

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

اجتناب از جریمه

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

حفاظت از آسیب مالی

نقض ساده سیستم امنیتی می تواند میلیون ها دلار آسیب را به همراه داشته باشد. تست نفوذ می تواند سازمان شما را از چنین آسیب هایی محافظت کند.

حفاظت از مشتری

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

زمان انجام تست نفوذ (Penetration Test)

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

  • سیستم امنیتی تهدیدهای جدید توسط مهاجمان را کشف می کند.
  • افزودن زیرساخت شبکه جدید
  • به روز رسانی سیستم و نصب نرم افزار جدید
  • جابه جایی محل کار یا شرکت
  • تنظیم برنامه / سیاست جدید کاربر نهایی
آیا این نوشته را دوست داشتید؟
linkedin-security-testing-vulnerability-management-with-nessus

تست امنیتی: مدیریت آسیب پذیری با Nessus


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

1398/12/07 914 بازدید زیرنویس دارد
packtpub-threat-and-vulnerability-assessment-for-enterprises

آموزش ارزیابی تهدید و آسیب پذیری برای شرکت ها


این دوره شما را با کامپوننت های اصلی ارزیابی جامع آسیب پذیری آشنا می کند و دستورالعمل لازم را برای تهیه یک استراتژی دفاعی نیرومند از روز اول ارائه می ...

1398/08/22 1511 بازدید
pluralsight-advanced-malware-analysis-ransomware

تحلیل پیشرفته بدافزار : باج افزار


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

1398/08/18 2365 بازدید
packtpub-burp-suite-recipes

دستورالعمل های Burp Suite


Burp Suite یک پلتفرم جاوا محور برای تست امنیت برنامه‌های وب است. این ابزار بطور وسیعی توسط تست کنندگان حرفه‌ای پذیرفته شده است. این ویدیو به شما دستو...

1398/06/20 1255 بازدید
packtpub-hands-on-iot-penetration-testing-video

آموزش تست نفوذ اینترنت اشیا


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

1397/11/14 1924 بازدید
linkedin-comptia-pentest-pt0-001-4-select-your-attacks-ii

آموزش گواهینامه (CompTIA PenTest+ (PT0-001 - بخش 4 - انتخاب حملات (II)


مدرک CompTIA + PenTest یک استاندارد طلایی برای ارزیابی تست نفوذ کنندگان حرفه ای می باشد. سری آموزش های (CompTIA PenTest+ (PT0-001 به شما کمک می کند تا...

1397/11/06 1321 بازدید
linkedin-comptia-pentest-pt0-001-3-select-your-attacks

آموزش (CompTIA PenTest+ (PT0-001 - بخش 3 - انتخاب حملات (I)


آزمون CompTIA PenTest+ توانایی های شما را به عنوان یک تست کننده نفوذ و کسی که می تواند نقاط آسیب پذیر سیستم را شناسایی کرده و از آنها استفاده کند، تای...

1397/11/06 1158 بازدید
linkedin-comptia-pentest-pt0-001-7-reporting-and-communication

آموزش گواهینامه (CompTIA PenTest+ (PT0-001 - بخش 7 - گزارش دهی و ارتباطات


با کسب مدرک CompTIA PenTest +، مهارت هایخود را در زمینه تست نفوذ و مدیریت آسیب پذیری ها به دیگران نشان دهید. در این دوره آموزشی، یادمی گیرید چگونه توص...

1397/11/06 1476 بازدید
linkedin-comptia-pentest-pt0-001-5-selecting-pen-testing-tools

آموزش گواهینامه (CompTIA PenTest+ (PT0-001 - بخش 5 - ابزارهای تست نفوذ


با کسب گواهینامه تست نفوذ CompTIA PenTest+ ، می توانید در زمینه امنیت فضای سایبری شروع بکار کنید. در این دوره آموزشی، یادمی گیرید چطور از برخی از ضرور...

1397/11/06 1298 بازدید
linkedin-comptia-pentest-pt0-001-6-using-scripting-in-pen-testing

گواهینامه (CompTIA PenTest+ (PT0-001 - بخش 6 - استفاده از اسکریپت نویسی در تست نفوذ


در این دوره با استفاده و تحلیل اسکریپت های تست نفوذ در حین مطالعه برای آزمون گواهینامه +CompTIA PenTest آشنا می شوید که استاندارد طلایی برای تست کنندگ...

1397/10/10 1387 بازدید
linkedin-comptia-pentest-pt0-001-1-planning-and-scoping

گواهینامه (CompTIA PenTest+ (PT0-001 - بخش 1 - برنامه ریزی و بررسی


آزمون +CompTIA PenTest که در جولای 2018 منتشر شد، توانایی های شما را به عنوان تستر نفوذ واجد شرایط تایید و قادر به شناسایی و بهره برداری از آسیب پذیری...

1397/10/10 5199 بازدید
linkedin-comptia-pentest-pt0-001-2-survey-the-target

گواهینامه (CompTIA PenTest+ (PT0-001 - بخش 2 - بررسی هدف


داشتن گواهینامه +CompTIA PenTest به دیگران نشان می دهد که مهارت های مدیریتی، تست نفوذ، ارزیابی آسیب پذیری مورد نیاز را برای ارزیابی انعطاف پذیری شبکه ...

1397/10/10 1324 بازدید
packtpub-binary-exploits-with-python-video

آموزش Binary Exploits با پایتون


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

1397/08/22 2192 بازدید
packtpub-practical-windows-penetration-testing-video

آموزش کاربردی تست نفوذ ویندوز


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

1397/08/10 1341 بازدید
pluralsight-getting-started-with-reverse-engineering

آموزش شروع کار با مهندسی معکوس


توانایی معکوس کردن کد باینری مهندس، مهارت ضروری برای هر کسی است که مسئول امنیت نرم افزار و یا انجام تحلیل بد افزارها است و حتی نقش مهمی در انجام تست ه...

1397/07/05 2741 بازدید زیرنویس دارد
wintellectnow-application-pen-testing-the-owasp-top-10

آموزش تست نفوذ با WebGoat


در این دوره با تست آسیب پذیری های رایج با استفاده از WebGoat و سایر ابزارها آشنا می شوید. سرفصل: مقدمه تزریق SQL کنترل دسترسی اسکریپت نویسی ...

1397/05/27 1224 بازدید
ine-cissp-technology-course-domain-6-security-assessment-and-testing

آموزش تکنولوژی CISSP - بخش 6 - تست و ارزیابی امنیت


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

1397/03/03 947 بازدید
lynda-security-testing

آموزش تست امنیت 


تست امنیت بخش مهمی از تضمین ارائه یک نتیجه ی کامل و مطمئن برای مشتریان شما است. خودکار سازی فرآیند می تواند تضمین کند که تست همیشه بخشی از جریان کاری ...

1397/02/02 2809 بازدید زیرنویس دارد
lynda-cysa-cert-prep-1-threat-management

آموزش گواهینامه +CySA - قسمت 1 - مدیریت تهدید


گواهینامه (+CompTIA Cybersecurity Analyst (CySA به کارفرمایان بالقوه نشان می دهد که شما درک دقیقی از چگونگی مقابله با تهدیدات امنیتی سایبری با استفاده...

1397/01/19 1195 بازدید زیرنویس دارد
wintellectnow-application-pen-testing-introduction-and-tools

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


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

1396/12/22 1299 بازدید