استفاده از روش برنامه نویسی پدافندی جهت افزایش امنیت نرم افزار در زبان #C

سال انتشار: 1396
نوع سند: مقاله ژورنالی
زبان: فارسی
مشاهده: 502

فایل این مقاله در 12 صفحه با فرمت PDF قابل دریافت می باشد

استخراج به نرم افزارهای پژوهشی:

لینک ثابت به این مقاله:

شناسه ملی سند علمی:

JR_SAPD-8-3_003

تاریخ نمایه سازی: 1 مهر 1398

چکیده مقاله:

با توجه به اهمیت امنیت نرم افزارهای رایانه ای در سازمان های نظامی، برنامه­ نویسان و طراحان این سیستم ها ملزم به رعایت مسائل امنیتی در برنامه نویسی هستند. این مقاله بر روی مرحله کدنویسی در چرخه تولید نرم افزار تمرکز دارد. هدف کدنویسی پدافندی، جلوگیری از بروز حوادث ناشی از کدنویسی نامناسب است. این حوادث شامل ازکارافتادن برنامه، دسترسی به کد منبع، استفاده بیش ازحد از منابع سخت افزاری و افزایش زمان نیاز جهت به روزرسانی برنامه هستند. در ادامه استفاده از آرگومان های نامی در فراخوانی تابع معرفی گردید که این عوامل منجر به افزایش خوانایی و درنتیجه کاهش زمان به روزرسانی برنامه می شود. جهت مدیریت خطاهای حین اجرا، روش شکست سریع استثناءها و نحوه مدیریت مناسب آن ها ارائه شده است. این اقدامات موجب افزایش امنیت برنامه و عدم ازکارافتادن برنامه به­دلیل کدنویسی نامناسب گردیده و از طرفی موجب افزایش تعداد توابع، کلاس ها و درنتیجه افزایش تعداد خط کد می شود. این مسئله ممکن است موجب نگرانی درباره افزایش زمان اجرای برنامه و هزینه پردازشی شود. این مقاله به پیاده سازی یک برنامه در دو حالت کدنویسی پدافندی و غیرپدافندی پرداخته است. نتایج نشان می­دهد که میانگین عمر نخ ها در حالت پدافندی 23/8 ثانیه است، درحالی که این مقدار برای حالت غیرپدافندی، 80/8 ثانیه بود. از طرفی، میزان درصد استفاده از پردازنده در حالت های پدافندی و غیرپدافندی به ترتیب 32/54% و 70/54%، از طرف دیگر برای هزینه پردازشی کاربر نیز به­ترتیب 23/24% و 41/24% بود. این اعداد حاکی از هزینه پردازشی و زمان اجرای یکسان برنامه در دو حالت پدافندی و غیرپدافندی است.  

نویسندگان

سامان کشوری

دانشگاه جامع امام حسین(ع)

محمدرضا حسنی آهنگر

دانشگاه جامع امام حسین(ع)

ساناز کشوری

دانشگاه رازی کرمانشاه

مراجع و منابع این مقاله:

لیست زیر مراجع و منابع استفاده شده در این مقاله را نمایش می دهد. این مراجع به صورت کاملا ماشینی و بر اساس هوش مصنوعی استخراج شده اند و لذا ممکن است دارای اشکالاتی باشند که به مرور زمان دقت استخراج این محتوا افزایش می یابد. مراجعی که مقالات مربوط به آنها در سیویلیکا نمایه شده و پیدا شده اند، به خود مقاله لینک شده اند :
  • جرجم، سلیمان، دهقانی، مهدی، امن سازی نرم افزار مبتنی بر ...
  • کشوری، سامان، جوادزاده، محمدعلی، عباسی، مصطفی، بررسی انواع آزمون نرم ...
  • P. S. Gilmour, Defensive programming, Embedded Syst. Program. vol. 3, ...
  • D. Y. Cheng, J. T. Deutsch, and R. W. Dutton, ...
  • A. A. J. Zumalde, J. M. Secall, and J. B. ...
  • K. W. Collier and J. S. Collofello, Issues in software ...
  • P. Chul Su, L. Jae Hee, S. C. Seo, and ...
  • N. Davis, W. Humphrey, S. T. Redwine, G. Zibulski, and ...
  • S. Velmourougan, P. Dhavachelvan, R. Baskaran, and B. Ravikumar, Software ...
  • P. Avgeriou, P. Kruchten, R. L. Nord, I. Ozkaya, and ...
  • B. Boehm and V. R. Basili, Software Defect Reduction Top ...
  • M. K. Gupta, M. C. Govil, and G. Singh, Static ...
  • R. Chen, Y. Liu, Z. Jia, and J. Gao, Isolating ...
  • J. A. Jones and M. J. Harrold, Empirical evaluation of ...
  • C. Liu, X. Yan, L. Fei, J. Han, and S. ...
  • H. Cleve and A. Zeller, Locating causes of program failures, ...
  • G. K. Baah, A. Podgurski, and M. J. Harrold, The ...
  • R. Kumar, S. K. Pandey, and S. I. Ahson, Security ...
  • B. Taylor and S. Kaza, Security Injections@Towson: Integrating Secure Coding ...
  • M. Zaidman, Teaching defensive programming in Java, J. Comput. Sci. ...
  • A. Khalili, A. Sami, M. Azimi, and ET. Al, Employing ...
  • P. R. Dominguez, 10 Principles for Keeping Your Programming Code ...
  • D. M. Selfa, M. Carrillo, and M. D. R. Boone, ...
  • R. C. Martin, The Clean Coder: A Code of Conduct ...
  • L. Hunt, C# Coding Standards for .NET, Document Version 1.15, ...
  • R. C. Martin, Clean Code: A Handbook of Agile Software ...
  • M. Aderhold, G. Alexander, and M. Heiko, Choosing a Formalism ...
  • A. Hunt and D. Thomas, Pragmatic Unit Testing in C# ...
  • G. Meszaros, xUnit Test Patterns: Refactoring Test Code Addison-Wesley, Addison-Wesley ...
  • L. Williams, G. Kudrjavets, and N. Nagappan, On the Effectiveness ...
  • J. Shore, Fail fast [software debugging], IEEE Software, vol. 21, ...
  • نمایش کامل مراجع