آزمون نفوذپذیری پیشرفته IT

آزمون نفوذپذیری پیشرفته IT

خدمات تست نفوذ امن افزار

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

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

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

تست نفوذ چیست؟

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

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

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

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

شناسایی کامل سیستم(footprinting)

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

آسیب پذیری های عمومی(Public Vulns)

در این مرحله با اطلاعاتی که از مرحله قبل به‌دست‌آمده است، سعی می‌شود آسیب‌پذیری­های برنامه‌ها و سرویس‌های سیستم را که از قبل توسط متخصصان امنیتی در سایت‌هایی همچون exploit-db.com، securityfocus.comو سایر سایت­ها گزارش‌شده‌اند، پیدا کرد. ممکن است در این مرحله هیچ آسیب‌پذیری عمومی از سیستم پیدا نشود. این آسیب‌پذیری‌ها به دلیل این‌که به‌صورت عمومی در اختیار همگان قرار می‌گیرند، عموماً به‌سرعت توسط توسعه‌دهندگان سیستم‌ها رفع می‌شود. یک سیستم که به‌طور مرتب به‌روز رسانی می‌شود، در این مرحله امنیت قابل قبولی را خواهد داشت.

تست نفوذ با ابزار خودکار(Automatic tools)

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

انواع روش های تست نفوذ

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

محل آزمون

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

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

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

سطح اطلاعات در دسترس

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

  • آزمون جعبه-سفید (White-Box Testing): آزمون جعبه سفید برای بررسی آسیب‌پذیری‌های هدف با داشتن اطلاعاتی همانند نام کاربری و رمز عبور یکی از پرسنل با دسترسی کم صورت می­پذیرد. در این بخش به دلیل دسترسی به کد برنامه ­ها تیم نفوذ قادر هستند با تجزیه‌وتحلیل آن‌ها تمام مسیر‌های پنهانی برنامه را پیدا نمایند. این امر باعث پیدا شدن آسیب‌پذیری‌ها و خطا‌های منطقی موجود در مسیر‌های برنامه‌ی هدف می‌شود. در این دسته از آزمون‌ها ممکن است به دلیل دسترسی به کد برنامه، آسیب‌پذیری‌هایی گزارش شوند که وجود ندارند، یا به ‌عبارت دیگر دارای مثبت اشتباه[1] باشند.

 

  • آزمون جعبه-سیاه (Black-Box Testing): برخلاف آزمون جعبه سفید در آزمون جعبه سیاه، فرض می‌شود که هیچ دانشی از سازمان وجود ندارد و به جای استفاده از نام کاربری و رمز عبور، آزمونگر مانند رجوع‌کننده عادی با یک مرورگر و یا نود شبکه شروع به انجام تست می­کند. در این آزمون ابتدا در بخش برنامه­های کاربردی قسمت‌های مختلف را برای پیداکردن تمام بردار‌های تزریق ممکن، بررسی می‌کند و به هر طریقی که حمله‌کننده بتواند به سازمان و برنامه‌ی کاربردی دسترسی پیدا کند را مورد آزمایش قرار می­دهد. بعد از شناسایی ضعف­های امنیتی، روش­هایی برای نفوذ به آسیب­پذیری­ها داده می‌شود. در پایان این آزمون پاسخ‌ها موردبررسی قرار می‌گیرند و در صورت موفق بودن، به‌عنوان یک آسیب‌پذیری گزارش می‌شود. از مزیت‌های آزمون‌های جعبه سیاه نسبت به جعبه سفید می‌توان به وابسته نبودن آن‌ها به کد برنامه و مثبت اشتباه کمتر اشاره کرد.

 

  • آزمون جعبه-خاکستری (Gray-Box Testing): آزمون‌های جعبه خاکستری همان‌طور که از نامش پیداست ترکیبی از جعبه سیاه و جعبه سفید می‌باشد. در این آزمون‌ها، از تکنیک‌های تجزیه‌وتحلیل ایستای جعبه سفید برای شناخت آسیب‌پذیری‌ها استفاده می‌شود. سپس به‌صورت واقعی سعی می‌شود روی آسیب‌پذیری‌های پیداشده حمله اجرا شود تا وجود آن‌ها تصدیق شود. در صورت موفق بودن این گام، آسیب‌پذیری گزارش داده می‌شود. آزمون‌های جعبه خاکستری قادر است، آسیب‌پذیری‌های موجود در تمام ‌مسیرهای برنامه را با خطای کمتری پیدا نمایند. از ویژگی‌های خوب این آزمون می‌توان به وجود مجوز و امکان دسترسی به بخش‌های نیازمند این مجوز‌ها نام برد که این امر باعث می‌شود آزمون نفوذ به‌صورت عمیق‌تر انجام‌گرفته و آسیب‌پذیری‌های بیشتری را شناسایی نماید.


تحت وب

 

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

 

  • تست امنیتی سرویس‌های به کار گرفته‌شده توسط نرم‌افزار و پلت‌فرم: تمامی سرویس‌های اجرا شده اعم از سرویس‌هایی که توسط یک پورت در حالت شنود هستند یا سرویس‌های محلی
        - بررسی وب‌سرویس‌ها اعم از SOAP ،WSDL و ...

تشخیص و سپس تست و بررسی وب سرویس‌های نرم‌افزار مانند:

  • WS-security
  • HTTP Authentication
  • SSL-Certificate
  • Encrypted Transactions
  • تست امنیتی تبادلات بیرونی نرم‌افزار

در بررسی یک نرم‌افزار تحت وب (web application) مهمترین نکته بررسی تعاملات و شروط داد و ستدی است که نرم‌افزار با کاربر خود داراست:
   بررسی تمامی ارتباطات با Data-Store ها
   تست امنیتی نرم‌افزار
   بررسی پوشه‌های نرم‌افزار و مکانیزم‌های امنیتی که باید اعمال شود
   بررسی امن بودن بستر پروتکل‌ها
   بررسی اعتبارسنجی‌ها و session های نرم‌افزار در برقراری ارتباطات برون سازمانی
   بررسی ارتباطات بین نرم‌افزارهای اتوماسیون و تحت وب
   بررسی کلیه پروتکل‌هایی که نرم‌افزار با آن‌ها یا در بستر آن کار می‌کند
   تست اتوماتیک: استفاده از نرم‌افزارهای اتوماتیک در جهت تست و پویش آسیب‌پذیری‌ها، این مرحله از تست نفوذ نقطه عطف این فرآیند نخواهد بود و صرفا یک مرحله خواهد بود
   استفاده از ابزارهای تجاری: استفاده کردن از ابزارهای تجاری و یا رایگان 2 قطب متفاوت می‌باشد، ابزارهای تجاری اغلب با هوش مصنوعی توام هستند اما نرم‌افزارهای رایگان تلاشی بیشتر از خواندن پایگاه داده و اعمال روش‌های دیکته شده برای شناسایی نخواهند داشت. یکی از افتخارات شرکت امن افزار گستر آپادانا داشتن نرم‌افزارهایی  بی همتا، با سابقه و حرفه‌ای در زمینه تست است مانند نرم‌افزار Burp Suite Pro از شرکت PortSwigger  و نرم‌افزار بسیار قدرتمند CANVAS از شرکت Immunity  نمونه‌هایی گران‌قیمت هستند. همچنین نرم‌افزار HP WebInspect از مرکز امنیت وب کمپانی HP که مورد استفاده در بسیاری از مراکز دولتی و بانک‌ها می‌باشد و با تحلیلی که انجام شده است این نرم‌افزار هیچ رفتار جاسوسانه‌ای نداشته است و یادآور می‌شود علاوه بر تست و اسکن آسیب‌پذیری، قابلیت Fuzzing یا بررسی عمیق نرم‌افزار با استفاده از پارامترهای پیچیده نیز در نرم‌افزار نهفته است. از ویژگی‌های دیگر  HP Webinpect عبارتند از:

  • موتور هوشمند
  • تجزیه و تحلیل‌ها پویا در تغییرات نرم‌افزار
  • بهینه‌بودن سرعت اسکن
  • دارای رابط کاربری قدرتمند و انعطاف‌پذیر
  • شبیه‌سازی رفتار یک هکر 
  • ارائه Best Practice برای چگونگی رفع مشکل
  • تشخیص آسیب‌پذیری‌های امنیتی در سورس کدهای سمت کلاینت
  • ارائه بهترین نتایج ( کمترین خطا یا False-Positive) 
  • تشخیص خودکار و Decompile کردن فایل‌های فلش و CSS و بررسی امنیتی بر روی آن‌ها
  • ذخیره‌سازی تمامی نتایج اسکن در یک SQL Server
  • به روز رسانی به هر دو صورت آنلاین و آفلاین از HP SmartUpdate
  • ارائه گزارشات به صورت متنوع مناسب برای تیم تضمین کیفیت، تیم توسعه‌دهنده و یا تیم امنیتی 
  • ارائه شماتیکی در گزارشات از نوع حمله به نرم‌افزار 
  • ارائه فرمت گزارشات در فرمت‌های RTF، PDF، Excel، HTML و ...
  • شبیه‌سازی خودکار فعالیت‌های یک کاربر با اجرای مسیر کد از طریق کدهای جاوا اسکریپت
  •  سفارشی ساختن قالب گزارشات ( لوگوی سازمان، تغییرات در سرآیند صفحه و ... )
  • پشتیبانی سیاست بررسی امنیتی از چندین Compliance معبتر جهانی همچون OWASP top 10، PCI و ...
  • دارای روش‌های فوق پیشرفته در تشخیص انواع آسیب‌پذیری‌های Web 2.0 

   استفاده از ابزارهای رایگان: از دسته گستره ای از نرم افزار های کرک شده و رایگان برای هر قسمت و تکنولوژی های  نرم افزار  استفاده خواهد شد. این نرم افزار ها طبق 2 استاندارد : OWASP و BackTrack تبعیت خواهد کرد.
   تست دستی: تست دستی عبارت است از اعمال سناریوهای حمله به اکتفای مهارت انسانی و همچنین اکتفا نکردن به خروجی‌هایی است که در مرحله قبل به دست آمده است. تجربه ثابت کرده است در اغلب موارد مخاطراتی کشف می‌شود که حتی هوش نرم‌افزار نیز قادر به شناسایی آن‌ها نیست. در این مرحله موارد زیر :

  • تست امنیتی کلیه ورودی‌ها
  •  در هم کوبیدن نرم‌افزار در مواردی که امنیت لحاظ شده است
  • کشف کلیه ورودی‌های نرم‌افزار

در کل در تمام روندهای بالا که شرح داده شده علاوه بر استفاده از استانداردها و Compliance های موجود حملاتی کاملا تخصصی هم‌چون: 

   DDOS
   Triming Attacks
   XML, JSON and General API Security
   Encrypting Cookies
   SQLi Family
   Preventing Tampering Attacks
   Server Http Header
   Click Jacking
   File Upload Vulnerabilities
   Injecting Scripts
   Cross-Site Scripting
   Untrusted Input
   Session Fixation / Stealing
   Cross-Site Request Forgery (CSRF)
   ...


شبکه

 

مراحل تست و نفوذپذیری شبکه


   شناسایی شبکه (درون / برون سازمانی): در این مرحله لازم است کل شبکه‌ مورد شناسایی قرار بگیرد. این امر از این حیث انجام می‌گیرد که یادآور این نکته باشد که ممکن است جایگاه یک شخص با دسترسی بالا به منابع متزلزل گردد و این دید باید لحاظ شود.
   شناسایی ارتباطات بیرون شبکه: ممکن است کاربری با یک نرم افزار از راه دور ارتباط داشته باشد، این از این نظر است که نرم افزار تحت وب نباشد، طرق ارتباطی شخص با نرم افزار سرویس دهنده و پروتکل های مورد استفاده از لحاظ امنیتی بسیار حیاتی خواهند بود. در این قسمت لازم است، ابتدا نحوه و مکانیزمی که سازمان برای دور کاری اتخاذ کرده مورد بررسی قرار گیرد و سپس شناسایی شود. برای مثال ارتباط یکی از پرسنل برای دسترسی به یک نرم‌افزار که بدون نسخه کلاینت یا مشتری است استفاده از تکنولوژی Citrix یا 2x است، این ارتباط خارجی در صورت پذیرفته‌شدن به عنوان یکی از سیستم‌های شبکه داخلی سازمان مورد تایید خواهد بود که چنانچه امنیت آن مورد نظر قرار نگرفته باشد ریسک بالایی را خواهد داشت.
   تست بستر شبکه: بعد از شناسایی کامل شبکه تست شبکه از نظر امنیت و کشف نقاط ضعف آغاز می‌شود، ( تست نفوذ) در این مرحله از 2 دید بستر ارتباطی مورد بررسی قرار می‌گیرد:

 

  • روش اول جعبه سیاه یا Black-Box: در این حالت هیچ اطلاعاتی از سازمان درخواست نخواهد شد و صرفا مواردی است که از "بیرون و یا مواردی که عاملی را برای دسترسی از بیرون " محیا می‌سازند. در این روش از نرم متدولوژی‌های زیر بهره گرفته می‌شود:

- تست اتوماتیک شبکه با استفاده از نرم‌افزار: استفاده از نرم افزارهایی هم‌چون : CANVAS Enterprise ،Metasploit Pro و ...
- تست اتوماتیک شبکه با اجرای سناریوهای حمله: اجرای سناریوهای حمله با استفاده از کدهای مخرب (0-day exploits) و تکنیک‌های فردی نسبت به بستر شبکه و همچنین بررسی و تست تجهیزات شبکه در این قسمت قرار خواهد گرفت.
- مهندسی اجتماعی

  • روش دوم جعبه سفید یا white-box: بعد از تحویل گزارش مرحله قبل، اینبار مجوزی مبنی بر حداقل دسترسی ( مانند یکی از پرسنل ) از سیستم‌ها تقاضا می‌گردد، این دسترسی برای کشف راه‌های نفوذ از سیستم‌هایی است که مورد اطمینان شمرده می‌شوند. از متدها و مکانیزم‌های مرحله قبل استفاده خواهد شد.

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

 

سوالات متداول

کلیه حقوق مادی و معنوی این سایت برای شرکت امن افزار: شرکت امنیت اطلاعات و شبکه[ شرکت تخصصی امنیت اطلاعات ] محفوظ است.