تست امنیت و کارایی نرم افزار

ارزیابی امنیتی برنامه‌های کاربردی

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

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

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


شکل 1 مدلسازی تهدیدات امنیتی

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

چرخه تولید نرم‌افزار امن
شرکت آشنا ایمن فعالیت‌های امنیتی خود را برای برنامه‌های کاربردی منطبق بر فازهای SDLC تعیین می‌کند. SDLC متدولوژیی، جهت اطمينان سازی از اينکه سیستم‌ها بر اساس رويکرد منظم، منطقی و گام به گام طراحی و اجرا شده، بنا شده است و فازهای آن عبارتند از : تحليل، طراحي، توسعه، يكپارچه سازي، تست، اجرا. که در شکل 1 می‌توان فازهای مرتبط با آن را مشاهده کرد.


شکل 2 فازهای SDLC

همانطور که می‌دانیم، امروزه اکثر شرکت‌های تولید نرم‌افزار از متدولوژی RUP برای توسعه برنامه‌های کاربردی خود استفاده می‌کنند. این متدولوژی‌ توسط شرکت Rationalکه یکی از پرکاربردترین فرآیند تولید و توسعه نرم افزاری در دنیای کنونی است و به عنوان یک استاندارد صنعتی بالفعل در دنیای IT پذیرفته شده است.ارائه شده‌اند به گزارش رویتر در سال 2001 میلادی بیش از ششصد هزار شرکت تولید کننده نرم افزار، از ابزارهای شرکت Rational استفاده می‌کرده‌اند که این تعداد کماکان هم در حال افزایش است. این متدولوژی، برای انواع پروژه‌های نرم‌افزاری در دامنه‌های مختلف ( مانند سیستم‌های اطلاعاتی، سیستم‌های صنعتی، سیستم‌های بلادرنگ، سیستم‌های تعبیه شده، ارتباطات راه دور، سیستم‌های نظامی و ...) و در اندازه‌های متفاوت، از پروژه‌های بسیار کوچک (یک نفر در یک هفته) تا پروژه‌های بسیار بزرگ (چند صد نفر تولید کننده با پراکندگی جغرافیایی)، کاربرد دارد. در شکل زیر فازهای موجود دراین متدولوژی آورده شده است:


شکل 3 فازهای متدولوژی RUP

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

از این‌رو موسسه چشم انداز توسعه و امنیت ملاحظات و فعالیت هایی امنیتی که در هر یک از فازها بایستی صورت گیرد، را مبتنی بر این متدولوژی‌ها در نظر گرفته است. همچنین به توسعه دهندگان برنامه‌های کاربردی توصیه می‌کند که از این متدولوژی برای برنامه‌های کاربردی خود استفاده کنند.

استراتژی تست برنامه‌های کاربردی
شرکت آشنا ایمن استراتژی‌هایی را برای تست برنامه‌های کاربردی در نظر گرفته است، هدف از این استراتژی تست تعیین فعالیت‌های اصلی، تصمیمات کلیدی و چالش های پیشروی تست مي‌باشد این کار شامل موارد زیر است: 
1. تعیین قلمرو تست
2. پیاده سازی تکنیک های تست 
3. انتخاب test case ها: معمولاً براساس درکی که از برنامه بر پایه ی جریان داده مشخص شده، test case ها به وجود می‌آید. در انتخاب این موارد بایستی گزینه‌هایی که در ادامه آورده شده است مورد توجه قرار گیرند : 
   a. تعریف پیش شرط ها
   b. تعریف ورودی های خاص و یا کلی
   c. تعیین نتایج مورد انتظار
   d. تعیین مراحل تست
4. تعیین شرایط خروج از تست

تکنیک‌های انجام تست و ارزیابی برنامه‌های کاربردی
برای تست و ارزیابی برنامه‌های کاربردی از روش‌های زیر استفاده می‌گردد:
• روش تست جعبه سفید (White Box) 
   - ممیزی کدهای برنامه های کاربردی
• روش تست جعبه سیاه (Block Box) 

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

ارزیابی و ممیزی کدهای برنامه کاربردی می‌تواند به صورت دستی و یا خودکار صورت گیرد، در ادامه برخی از مؤلفه‌های مرتبط با آن آورده شده است:
• مطالعه مؤلفه‌های برنامه کاربردی
• بررسی ریسک‌ها و حملات
• تحلیل تاثیرات تجاری 
• تحلیل خطاهای تکنیکی
• گزارش ریسک تجاری
• گزارش مفهومی برنامه‌کاربردی
• مستنداتی برای حملات خاص

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

مزایای استفاده از این روش عبارتند از: کامل و موثر بودن، دقیق بودن، سریع بودن. معایب استفاده از این روش عبارتند از: نیازبه مهارت بالای امنیتی توسعه‌دهندگان دارد، نکات امنیتی مربوط به کتابخانه های کامپایل شده مورد بررسی قرار نمی‌گیرند.

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

 

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