سرویس آزمون نفوذ پذیری نرم افزار با استفاده از یک رویکرد جامع و مبتنی بر ریسک، و به منظور شناسایی آسیب پذیری های نرم افزار در تمامی لایه ها طراحی شده است. این رویکرد شامل 5 بخش کلی بوده که با پیروی از استاندارد ASVS OWASP (نسخه 3) و Best Practice های امنیتی درنظر گرفته شده است.
مطابق با بررسی های به عمل آمده معماری های دو لایه و سه لایه بیشترین کاربرد را در طراحی نرم افزارهای تحت سیستم عامل دارا میباشند.
مطابق با تجربیات بدست آمده تیم تست نفوذ پس از شناسایی معماری مورد استفاده در طراحی نرم افزار، فرایند تست نفوذ را با بهره گیری از ابزارهای اتوماتیک آغاز میکند.
لازم به ذکر است ابزارهای ارزیابی اتوماتیک برای انجام مراحل اولیه تست نفوذ موثر می باشند، درحالیکه انجام یک ارزیابی امنیتی جامع، کامل و دقیق تنها با استفاده از هوش انسانی و ارزیابی های دستی قابل انجام می باشد.
بر همین اساس حدود 60 درصد از ارزیابی ها به صورت دستی و 40 درصد از ارزیابی ها توسط ابزارهای تجاری و اتوماتیک انجام می شود.
در این رویکرد تمرکز بر ارزیابی های دستی به منظور شناسایی آسیب پذیری های منطقی و پیچیده و همچنین استفاده از ابزارهای خودکار برای رسیدن به بهترین نتایج در کوتاه ترین زمان می باشد.
در ادامه به تشریح هریک از اجزای این رویکرد می پردازیم.
-
بررسی معماری و نوع طراحی استفاده شده
اولین قدم در اجرای آزمون نفوذ پذیری نرم افزارهای تحت سیستم عامل، شناسایی مولفه های استفاده شده مانند کتابخانه ها و ماژول ها در طراحی نرم افزار می باشد.
در این بخش همچنین پایبندی به تمامی کنترل های امنیتی درنظر گرفته شده برای مولفه ها بررسی می شود. -
ارزیابی مکانیزم مدیریت هویت ها در نرم افزار
فرایند های مرتبط با ثبت نام کاربران در سطوح دسترسی مختلف و نقش های تعریف شده برای هریک از آن ها می تواند خطرات امنیتی مختلفی از جمله ورود غیرقانونی مهاجم به نرم افزار و دزدیدن اطلاعات حساس را ایجاد کند که در این بخش به بررسی آن ها خواهیم پرداخت.
-
بررسی امنیت مدیریت نشست ها
یکی از قسمت های اساسی در طراحی هر نرم افزار، استفاده از مکانیزمی به منظور کنترل نشست ها و حفظ ارتباط کاربر با برنامه می باشد.
پس از آنکه کاربران با سطوح دسترسی مختلف اجازه استفاده از نرم افزار و منابع آن را بدست آوردند، نشستی بین نرم افزار و کاربر برقرار می شود و سپس کاربران می توانند فرایند های مختلفی را انجام دهند، سوء استفاده از دسترسی ها، افزایش سطح دسترسی ها و یا انجام اعمال ناخواسته از جمله مواردی می باشد که در این قسمت به بررسی آنها خواهیم پرداخت تا مهاجمین نتوانند امنیت استفاده کنندگان از نرم افزار را به خطر بیاندازند. -
بررسی دسترسی های اختصاص داده شده
فرایندی که در آن با دریافت برخی اطلاعات از کاربر و مطابقت دادن آن ها با اطلاعات موجود در پایگاه داده ها فردی یا نرم افزاری مورد اعتبار سنجی قرار می گیرد، طراحی و پیاده سازی درست نرم افزار در این بخش از اهمیت بالای برخوردار می باشد که در این مرحله موارد امنیتی مرتبط با آن را بررسی خواهیم کرد.
-
بررسی امنیت در مکانیزم های اعتبار سنجی ورودی
شایع ترین ضعف نرم افزار ها در این بخش می باشد. ورود اطلاعات توسط کاربران بخش اجتناب ناپذیر هر نرم افزار می باشد که باید به درستی اجرا گردد تا از دسترسی مهاجمین به اطلاعات غیر مجاز جلوگیری به عمل آورد. مهاجم می توانند با استفاده از ضعف های امنیتی موجود در این بخش امنیت اطلاعات موجود در سامانه و همچنین امنیت دیگر کاربران را به خطر بیاندازد.
-
بررسی استفاده از الگوریتم های رمز نگاری
استفاده از الگوریتم های رمز نگاری نا امن می تواند منجر به نشت اطلاعات حساس شود که در این بخش به بررسی ضعف های موجود در الگوریتم های رمز نگاری مورد استفاده در نرم افزار می پردازیم.
-
بررسی نحوه مدیریت خطاها و ثبت گزارشات
در صورت بروز خطا در نرم افزار لازم است تا به صورت مدیریت شده خطا تشخیص داده شده و به آن پاسخ داده شود، در صورت وجود ضعف امنیتی در این بخش امکان نشت اطلاعات وجود دارد.
-
بررسی نیازمندی های محافظت از داده ها
بررسی محرمانگی اطلاعات از جمله بخش های تاثیرگذار در هر نرم افزار می باشد. در این بخش به بررسی نحوه حفظ و نگهداری از اطلاعات محرمانه می پردازیم.
-
بررسی امنیت ارتباطات
هدف از طراحی این بخش بررسی انتقال امن اطلاعات با سرویس های خارجی به صورت از راه دور می باشد.
وجود ضعف های امنیتی در درگاه های برقراری ارتباط می تواند منجر به سوء استفاده مهاجمین از نرم افزار گردد. به همین دلیل در این بخش به بررسی امنیتی از درگاه های ارتباطی نرم افزار و همچنین اجرای حملات مختلف بر روی آن ها می پردازیم. -
بررسی امنیت ارتباطات درون برنامه ای
در این بخش ارتباط بخش های مختلف نرم افزار با یکدیگر و همچنین ارتباط نرم افزار با کاربران با سطوح دسترسی مختلف مورد بررسی قرار می گیرد.
در این مرحله سعی می شود تا با ارسال موارد مختلف برنامه را دچار اختلال کرده و یا از امکانات برنامه در جهت اهداف یک مهاجم سوء استفاده شود. این حملات می تواند منجر به افشای اطلاعات محرمانه دیگر کاربران شود. -
کیفیت فایل اجرایی سمت کاربر
پیاده سازی و ارتباط بخش های مختلف نرم افزار با یکدیگر، نیازمند وجود کیفیتی یکپارچه و انسجامی واحد در منطق طراحی نرم افزار می باشد.
در این مرحله نفوذگر سعی می کند تا با بررسی فرایند های مختلف در نرم افزار، منطق طراحی آن را بررسی کند و حفره های منطقی موجود در آن را شناسایی کند. شناسایی و پاسخگویی نادرست به خطا های احتمالی و مدیریت نادرست حافظه از جمله مواردی است که در این مرحله به بررسی آن ها خواهیم پرداخت -
بررسی وجود خطا در منطق طراحی نرم افزار
هر نرم افزاری از بخش های متعددی تشکیل شده است و هربخش منطق خود را که مرتبط با دیگر بخش ها می باشد دنبال می کند، مشکل در طراحی و یا عدم ارتباط درست بخش های مختلف با یکدیگر می تواند منجر به عدم توانایی نرم افزار در ارائه خدمات شود، در این بخش به بررسی ضعف های امنیتی مرتبط با منطق طراحی نرم افزار می پردازیم.
-
ارزیابی مجوز ها و کنترل های مخرب
Authorization یا ارزیابی دسترسی ها به فرایندی گفته می شود در آن هر کاربر با توجه به سطح دسترسی تعریف شده برای آن به حجم مشخصی از منابع دسترسی پیدا می کند. حصول اطمینان از پیاده سازی درست نرم افزار در بخش ارزیابی دسترسی ها از جمله موارد بسیار با اهمیت می باشد، به همین منظور در این بخش بررسی های متععدی به منظور شناسایی حفره هایی در جهت افزایش غیر مجاز سطح دسترسی ها و یا دسترسی پیدا کردن به اطلاعات غیر مجاز توسط کاربر انجام می شود.
-
بررسی موارد امنیتی در نحوه پیکربندی
اطلاع از تنظیمات سرور میزبان نرم افزار و موارد امنیتی رعایت شده در آن بسیار با اهمیت می باشد که در این بخش بررسی می شود.
-
بررسی درگاه های امنیتی در ارتباطات با موبایل و سرویس های وب
پیاده سازی و ارتباط بخش های مختلف نرم افزار با یکدیگر، نیازمند وجود کیفیتی یکپارچه و انسجامی واحد در منطق طراحی نرم افزار می باشد.
در این مرحله نفوذگر سعی می کند تا با بررسی فرایند های مختلف در بخش های گوناگون نرم افزار، منطق طراحی آن را بررسی کند و حفره های منطقی موجود در آن را شناسایی کند. شناسایی و پاسخگویی نادرست به خطا های احتمالی و مدیریت نادرست حافظه از جمله مواردی است که در این مرحله به بررسی آن ها خواهیم پرداخت.
-
جمع بندی و گزارش نویسی
در راسپینا نت پارس، این بخش بسیار جدی و با اهمیت در نظر گرفته می شود تا بتوانیم تمامی مراحل انجام کار به همراه تجربیات بدست آمده توسط تیم فنی و همچنین نتایج و یافته های حاصل از انجام سرویس آزمون نفوذ پذیری را در یک گزارش علمی به همراه بیان دلایل و نمایش شواهد عملی به صورت درست و دقیق و در در قالب گزارش هایی بر اساس استاندارد OWASP و با فرمت مورد توافق در اختیار مشتری هایمان قرار دهیم.
به منظور ارائه بهترین خدمات به مشتری، متخصصان راسپینا نت پارس پس از تحویل گزارشات تست نفوذ، سعی می کنند تا با ارائه راهکار های کارآمد همراه با مشتریان خود در جهت رفع مشکلات امنیتی همکاری نمایند.