تکنیک های ارزیابی امنیتی نرم افزار
در این مقاله تلاش شده در خصوص نحوه ارزیابی امنیتی سامانه های نرمافزاری به ویژه نرمافزارهای ویندوزی توضیح داده شود. در این مقاله همچنین تکنیک های ارزیابی امنیتی مانند تحلیل ایستا اشاره شده است. همچنین در این بخش مروری بر استانداردهای ارزیابی امنیتی نرمافزار اشاره شده است ...
خلاصه تخصصی مقاله
در این مقاله تلاش شده در خصوص نحوه ارزیابی امنیتی سامانه های نرمافزاری به ویژه نرمافزارهای ویندوزی توضیح داده شود. در این مقاله همچنین تکنیک های ارزیابی امنیتی مانند تحلیل ایستا اشاره شده است. همچنین در این بخش مروری بر استانداردهای ارزیابی امنیتی نرمافزار اشاره شده است ...
موضوعات اصلی: امنیتی، نرمافزار، آزمون، میشود، تست، انجام
آزمون نفوذ نرمافزار چیست؟
آزمون نفوذ به فرایندی گفته میشود که در آن تیم نفوذ با بررسی دقیق برنامههای کاربردی در زمینه های مختلف همچون ضعف طراحی، مشکلات فنی، ضعف ارتباطات صحیحو غیره پرداخته و آسیب پذیریهای موجود را مورد بررسی قرار میدهد.
آزمون امنیت کارکردی و آزمون آسیبپذیریهای امنیتی یا غیرکارکردی
در آزمون امنیت کارکردی، نیازمندیهای امنیتی مورد بررسی قرار میگیرند و آزمونامنیت نرم افزاربررسی میکند که آیا کارکردهای امنیتی نرمافزار بهدرستی و مطابق با نیازمندیهای امنیتی پیادهسازی شدهاند. تست آسیبپذیریهای امنیتی به نیازمندیهای امنیتی منفی یا به عبارتی بررسی لیست کارهایی که سیستم قادر به انجام آن نیست و در نتیجه منجر به یک حادثه میشود میپردازد. در تست و ارزیابی امنیتی سطح اطلاعات در دسترس در نحوه انجام تست مؤثر است.
سطح اطلاعات در دسترس
بر اساس اطلاعاتی که برای آزمون در اختیار قرار میگیرد، در حوزه طراحی، پیادهسازی و تست نرمافزار و آزمون نفوذ را میتوان به دو دستهی جعبه سفید، جعبه سیاه دستهبندی نمود.
- آزمون جعبه-سفید (White-Box Testing)آزمون جعبه سفید تیم نفوذ قادر هستند با تجزیه و تحلیل کدها تمام مسیرهای پنهانی برنامه را پیدا نمایند این امر باعث پیدا شدن آسیبپذیریها و خطاهای منطقی موجود در مسیرهای برنامهی هدف میشود.
- آزمون جعبه-سیاه (Black-Box Testing)برخلاف آزمون جعبه سفید در آزمون جعبه سیاه، فرض میشود که هیچ دانشی از سورس، نحوه طراحی و پیادهسازی و معماری نرمافزار، در اختیار نیست. در این آزمون ابتدا در بخش برنامههای کاربردی، قسمتهای مختلف را برای پیدا کردن، تمام راههای تزریق ممکن بررسی کرده و هر طریقی که حملهکننده بتواند به برنامهی کاربردی دسترسی پیدا کند، مورد آزمایش قرار میگیرد. بعد از شناسایی ضعفهای امنیتی، روشهایی برای نفوذ به آسیبپذیریها داده میشود.
روشهای انجام تست جعبه سیاه نرمافزار
- انجام تست بر روی تمام واسطهای بیرونی و قابل مشاهده عموم برای استفاده از برنامه مانندPublic Classها
- تست کارایی با ارسال حجم بالای داده که شامل دو بخشStress TestingوLoad Testingاست
- تست امنیتی با کمک شبیهسازی محیط واقعی حمله برای برنامه.
- استفاده از تکنیکهای مهندسی معکوس
تکنیکهای ارزیابی امنیتی نرمافزار
- بررسی کد
بررسی کد به منظور ارزیابی شناسایی دقیق آسیبپذیریها انجام میشود. در ارزیابی کد برنامه میتوان به تمامیت، دقت و صحت نتایج اطمینان داشت.
- تحلیل خودکار و ایستا
در تحلیل ایستا هدف اصلی کشف عیب و نقصهای امنیتی و شناسایی راهحلهای بالقوه آنها است.با خروجی ابزار تحلیل ایستا باید اطلاعات تفصیلی کافی درباره نقاط شکست احتمالی نرمافزار به دست آید تا تهیهکننده نرمافزار بتواند آسیبپذیریهای نرمافزار را براساس سطح خطری که برای سیستم ایجاد میکنند طبقهبندی و اولویتبندی نماید.
- تحلیل کد دودویی
بررسی کد دودویی با کمک تکنیکهای مهندسی معکوس انجام میشود.
- تست فازی
در تست فازی دادههای تصادفی نامعتبر از طریق محیط نرمافزار یا از راه مؤلفه نرمافزاری دیگر وارد نرمافزار میشود.فازینگ به معنی تولیدکننده کاراکتر تصادفی برای تست برنامههای کاربردی از طریق تزریق دادههای تصادفی در محل واسطهای این برنامهها میباشد.
- تحلیل ریسک
برای بررسی نیازهای امنیتی و به منظور شناسایی ریسکهای امنیتی، تحلیل ریسک در طول مرحله طراحی نرمافزار انجام میشود. مدلسازی تهدید، فرآیندی است که برای شناسایی تهدیداتی که نرمافزار با آنها مواجه خواهد بود و آسیبپذیریهایی که نرمافزار را تهدید میکنند، استفاده میشود.
- اسکن (پویش) آسیبپذیری
این ابزار، اجرای نرمافزار برنامه کاربردی را اسکن (پویش) میکنند تا الگوهای شناخته شدهای از ورودیها و خروجیها را پیدا کنند که با آسیبپذیریهای شناخته شده مرتبط هستند.
- تست نفوذ
تست برنامه کاربردی در حال اجرا در محیط زنده آن برای یافتن آسیبپذیریهای امنیتی انجام میشود.درتست نفوذنتیجهگیری میشود که آیا سیستم با موفقیت در برابر حملات مقاومت مینماید و اینکه اگر نتواند در برابر حملهای مقاومت کند چگونه رفتار خواهد نمود.
استانداردهای انجام آزمون نفوذ نرمافزار
۱- استاندارد Institude of Standard and Technology National
از استانداردNISTبهعنوان یک راهنما برای جنبههای فنی در ارزیابیهای امنیت اطلاعات، تکنیکهای آزمون و بررسی فنی استفاده میگردد.
۲- استانداردOWASP ASVS
تست امنیتی نرمافزار براساس استانداردOWASP ASVSنسخه ۳٫۰٫۱ در سطوح امنیتی مختلف قابل انجام است.
- سطح یک
سطح ۱ معمولاً برای نرمافزارهایی مناسب است که در آنها اطمینان کمتری نسبت به نظارتهای امنیتی صحیح مورد نیاز است و یا برای تأمین یک آنالیز سریع بر روی نرمافزارهای سازمانی و همچنین برای کمک به ایجاد یک لیست اولویتبندی شده برای نیازمندیهای امنیتی به عنوان بخشی از یک پروژه چند فاز استفاده میشود.
- سطح دو
سطح ۲، اطمینان میدهد که مکانیزمهای امنیتی درستی بکار گرفته شده، این مکانیزمها مؤثر بوده و همچنین در داخل نرمافزار به درستی تعبیه شدهاند.
- سطح سه
سطح ۳، بالاترین سطح امنیتی در استانداردASVSاست. این سطح معمولاً منحصر به نرمافزارهایی است که نیازمند سطوح قابل توجهی از تاییدات امنیتی هستند. سازمانها برای نرمافزارهایی که وظیفه اجرای امور حیاتی را دارند و ایجاد مشکل در آنها میتواند تأثیر بسزایی در عملکرد و یا حتی بقای سازمان داشته باشد، نیازمند استاندارد سطح ۳ هستند.
ارزیابی نفوذپذیری برروی برنامههای کاربردی تحت وب، ویندوز و موبایل با هر زبانی توسط متخصصین تست نفوذشرکت XNETدر حال انجام و نتایج موفقیت آمیز و موثر بر امنیت برنامههای کاربردی میباشد. برای مثال میتوان به بررسی برنامههای تحت ویندوز با زبانهای شیگرا مانندC#وJavaو زبانهای دودویی و کرنل مانندC++وdelphiتست جعبه سفیدAsp.netوphpو آنالیز پایداری امنیتی بانکهای اطلاعاتی مختلف اشاره نمود و در حوزه اپلیکیشنهای موبایل نیز هر دو گونهAndroidوIOSبررویJavaSwiftAndroid NativeFlutterReact Nativeو ... بررسی صورت میپذیرد که هم به صورت جعبه سیاه و هم به صورت جعبه سفید در حال کارشناسی و تحلیل و آنالیز میباشد. متخصصین ما همچنین در تحلیل و آنالیز بهبود بهره وری بانک اطلاعاتی و انتخاب الگوریتم و تکنولوژی مناسب رمزنگاری نیز در کنار شما هستند.
برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمای پشتیبانی شبکه را نیز مطالعه کنید.