It can feel impossible to develop software and maintain its embedded security since you are potentially adding new vulnerabilities to the product as you update it. Ergo, to mitigate risk during the software development and engineering process, you need to include cybersecurity professionals throughout your software development life cycle (SDLC) to come up with a mature security profile.
The SDLC Risk Mitigation Guiding Principles
In software development, risk mitigation parallels the processes followed by traditional businesses. The Open Web Application Security Project (OWASP) outlines that the Software Assurance Maturity Model (SAMM) must focus on the assessment, formulation, and implementation of a sound software security strategy that can easily integrate into the SDLC.
Therefore, regardless of the software development methodology that you use, you can mitigate risk by following a proven risk management process which allows you to secure the software you are working on throughout its development process.
How SAMM Approaches Risk Mitigation
The Open Web Application Software Project (OWASP) embeds risk response and mitigation throughout the software development cycle. Functionally, each of the groups within the organization working on the software development process retains responsibility during different points in its cycle.
As a result, OWASP breaks down the process into flour essential business functions with each function engaging in a different risk management activity. Therefore, the risk mitigation responsibilities are integrated into both the SDLC and your organizational tiers. This ensures that the software you are working on remains protected during its development process and after it is finished.
1. The Responsibilities of Governance Functions
Under the definition of OWASP, governance focuses on the business outcomes and deliverables including Strategy and Metrics (SM), Policy and Compliance (PC), and Education and Guidance (EG).
- The Strategy and Metrics (SM) Practice: It focuses on establishing a framework for a software security assurance program within your organization to define measurable security goals in line with your real business risk.
- The Policy and Compliance (PC) Practice: It ensures compliance by not only driving internal security standards but also focusing on meeting external regulatory and legal requirements. PC Practice creates audits to provide the necessary assurance.
- The Education and Guidance (EG) Practice: It focuses on arming all personnel working on the software life-cycle with the resources and knowledge they need to develop and deploy secure software.
2. The Responsibilities of Construction Functions
The construction phase focuses on creating software and defining goals within your project. Therefore, you have to include your project management team in these steps.
- The Threat Assessment (TA) Practice: Under the TA practice, you focus on risk identification and analysis. This allows you to remain vigilant of potential threats, look at the impending impact it could have as well as its probability of occurrence. Threat assessment is the first step in mitigating risk in software engineering.
- The Security Requirements (SR) Practice: The SR Practice first analyzes all high-level security requirements and protocols based on how your organization intends to use the software under development. The SR Practice then reviews new risks and their possible mitigation strategies as your software matures. Therefore, you should consider your interactions with suppliers and follow the Service Level Agreements’ (SLAs) audit standards.
- The Security Architecture (SA) Practice: The SA Practice enables you to build in security by default rather than waiting until you complete your software. This practice ensures that your software remains secure during its development process since it is vulnerable to attacks even before its completion. Hence, you want your project teams focusing explicitly on designing and building software with a security functionality mind frame.
3. The Responsibilities of Verification Functions
Verification refers to the process of continuously reviewing, evaluating, and testing software for new security risks.
- The Design Review (DR) Practice: This practice assesses software design and architecture to detect and immediately address issues early. Its primary goal is identifying, locating, and addressing security risks before they become costly.
- The Implementation Review (IR) Practice: The IR Practice allows you to review the source code and other configurations for security vulnerabilities. During the early development stages, you can use simple checklists. However, mature software development companies rely on automation to provide greater coverage.
- The Security Testing (ST) Practice: ST Practice reviews security in the runtime environment to functionally look at it as it will later do after deployment. Thus, this practice can incorporate traditional penetration testing for high-level cases or assess for other misconfigurations.
4. The Responsibilities of Operations Functions
Operations refer to all activities that form part of the software’s release including shipping, hosting, operation, and deployment in the runtime environment.
- The Issue Management (IM) Practice: This practice essentially creates processes for handling operational incidents and issues reports by assigning roles, tracking issues and risks, and organizing formal incidence response processes. It further requires communication between stakeholders.
- The Environment Hardening (EH) Practice: This practice protects the software under development by ensuring that its underlying infrastructure maintains its security posture instead of undermining it. The flexible deployment of security patches requires you to keep your development team informed and find effective ways to review the operating environment.
- The Operations Enablement (OE) Practice: The focus here is on risk monitoring to ensure that project teams communicate all risks to operators and users. Therefore, you need to create detailed documentation that operators and users need and share them with every release.
The Importance of Embedding Security within Software Development
As the demand to use Software-as-a-Service platforms becomes all the rage across the board with more companies implementing the service, it is becoming apparent that SaaS, and other software service, vendors form perhaps the most significant data breach risks. It, therefore, follows that you stand to gain a competitive advantage in the market by focusing on security as your primary differentiator as a software service provider.
However, since many SaaS platforms also recognize this emerging issue, many will claim to be secure even though they are not. In reality, the vendor data environment remains murky. Therefore, your project manager needs to be focused on project risk mitigation and management to make sure that your software product is genuinely secured.
How GRC Management Solutions Enable Risk Management
The OWASP SAMM requires proper documentation from several stakeholders throughout a software product’s development cycle. Although early on you may find it sufficient to use a shared drive to manage this documentation, you will eventually need an automated process for documenting and tracking your security reviews if you want scalability.
This is where Governance, Risk, and Compliance (GRC) management solutions come in as they always allow you to manage and prioritize your tasks allowing everybody involved to know what to do. You can also use the GRC management solutions to review your completed tasks and “to do” lists.
GRC management solutions allow you to assign tasks to the team responsible for risk analysis, risk assessment, and risk mitigation. You can, further, document remediation activities you use to provide proof that you maintain data availability, confidentiality, and integrity as required by law.
Risk management during software development is an extensive discipline, but with the proper tools, information, and skilled personnel, you can successfully mitigate risks in software engineering.
|Ken Lynch is an enterprise software startup veteran, who has always been fascinated about what drives workers to work and how to make work more engaging. Ken founded Reciprocity to pursue just that. He has propelled Reciprocity’s success with this mission-based goal of engaging employees with the governance, risk, and compliance goals of their company in order to create more socially minded corporate citizens. Ken earned his BS in Computer Science and Electrical Engineering from MIT. Learn more at ReciprocityLabs.com.