Abstract

Diverse types of software are used in almost all sectors of businesses in the modern world. They provide mechanisms that enable buyers and sellers to interact virtually, reduce manual work in businesses and institutions as well as make work a lot easier. Increased demand for software has led to the increased investment that has subsequently attracted numerous security attacks. Millions of resources are held in various software worldwide, cyber-attack criminals have made a career in breaching software security for selfish gains, thus necessitating the development and establishment of secure software. Through a literature review, the work introduces concepts and terms used in secure software development, presents the best practices and provides a review of the models that could be used. Confidentiality, integrity, availability, and non-repudiation are secure software terms that mean it should be secret, safe, and accessible and keeps a record of every activity undertaken. The proposed work advocates for several best practices among them the creation of a secure perimeter that limits access to key segments or parts of the system in addition to reducing attacking surface or rather reducing the opportunities available for cyberattack. In regard to the engineering of software, the paper recommends that system requirements must be established before the software is created. Additional engineering ought to be done after the system has been evaluated just before the official launch. Moreover, the paper recommends the adoption of strategies that are used by renowned software models such as Microsoft Software Development Life-cycle among others. Those models have put secure software strategies throughout the life-cycle of software development. They recognize the need to put secure engineering systems during the design and utilization of the software because new methods of breaching software security come up every new day. The paper concludes by noting that continued collaborative efforts to guarantee more secure software is still a demanding need. Adherence to basic secure software development and utilization is essential in addition to developing additional engineering that maintains the integrity, confidentially and accessibility of the software.

Highlights

  • Our society is buzzing with activities conducted either with the help of a software or within the software

  • All manner of businesses is in one way or another using software in a manner that has left human beings addicted to software use [6]

  • Make sure that your application security requirements are explicitly provided through application code or through the explicit invocation of reusable security functions provided to application developers to use for the enterprise (e.g., Open Web Application Security Project (OWASP) Enterprise Security application program interfaces (APIs))

Read more

Summary

INTRODUCTION

Our society is buzzing with activities conducted either with the help of a software or within the software. Risk calculation is essential because it informs how or when a particular attack could be carried out [3]. It enables the acquisition of knowledge and skills to prevent and mitigate those attacks through measures that are timely and proportionate to the amount of threat anticipated. Secure software systems ought to fulfill integrity, accessibility, and confidentiality requirements [18]. Software security is a concept that means providing engineering measures to ensure that a software retains integrity, confidentiality, accessibility and non-repudiation characteristics to guarantee functionality in the midst of numerous attacks that are witnessed in the modern-day.

BEST PRACTICES FOR SECURE SOFTWARE DEVELOPMENT
Practice 1 Apply Defence in Depth
Practice 2 Use a Positive Security Model
Practice 3 Fail Securely
Practice 4 Run with Least Privilege
Practice 5 Avoid Security by Obscurity
Practice 6 Keep Security Simple
Practice 7 Detect Intrusions
Practice 8 Do Not Trust Infrastructure
Practice 9 Do Not Trust Services
2.10. Practice 10 Establish Secure Defaults
SECURITY REQUIREMENTS ENGINEERING
SECURITY ARCHITECTURE AND DESIGN
SECURE IMPLEMENTATION
SECURITY TESTING
MODELS FOR SECURE SOFTWARE DEVELOPMENT
CONCLUSIONS
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call