SDLC stands for the software development life cycle and consists of the following phases –
- Requirements gathering and analysis
- Design
- Coding
- Quality assurance
- Deployment
REQUIREMENTS GATHERING AND ANALYSIS
Whenever software is built, the first thing to be done is to gather the requirements and on the basis of them, the design is created. When the information is being gathered the most important task is to identify the mandates and the applicable policies and standards that the software will have to follow to incorporate the standard framework as well as to ensure the audit requirements. It is in this phase that all the security policies are integrated.
This phase defines the entry and the exit points for the software along with how the business logic will interact with the different layers of the software. To check the security of the model, the software is put through various scenarios of misuse to assess the security robustness.
DESIGN
It is during the design process that the model is put into threat modelling, where it is tested on how robust the system actually is!
What is threat modelling?
It is important to design software that handles the threat in the best possible way because there is no point in creating an application that is not able to handle the threats properly! Threat modelling is an essential process for secure web application development. It is used in the design phase of the software development to check for the threats, attacks, vulnerabilities and countermeasures in the context of the application scenario and then eventually test that specification!
Threat modelling helps in the understanding the following things –
1. Understanding the security requirements
2. Finding security bugs early in the application.
3. No wastage of resources, time and money on useless controls that fail to focus on the real issues.
4. Lowering the time that gets spent on redesigning/rewriting.
Implementing threat modelling
Threat risk modelling has five steps –
- Identify security objectives
- Application Overview
- Decompose Application
- Identity Threat
- Identify Vulnerabilities
Identify Security Objectives
Security objectives must be defined early in the process and are required to be identified by the business stakeholders. The business leader who is concerned with software development needs to understand the security objectives.
Survey the Application
It is then important to identify the flaws in the design of the software. You need to identify the components, data flows and trust boundaries. To do this, the application has been checked on its architecture and design overflow!
Decompose Application
Once the flaws of the application have been identified or for that matter, the entire architecture has been identified, it is best to then, identify the features and modules within the application that need to be evaluated.
Identify Threats
There are numerous types of risks that can hit the software. It could be the known as well as some new malware. It is important for developers to focus on the known defects and concentrate on creating a system that does not allow these defects to create issues!
Identify Vulnerabilities
Once the threats have been it is important to identify the vulnerabilities.
There are different ways in which threat modelling can be done. One of them is the STRIDE taxonomy. It is a classification scheme that is provided by the classification scheme from Microsoft for characterizing and analyzing the known threats according to the kind of exploits that are used.
Following are the types of threats that can happen –
- Spoofing – It refers to impersonating something to someone else. The desired property for it is authentication.
- Tampering- Modifying code or data without any authentication. The desired property for this is integrity
- Repudiation – It is the ability to claim to have not performed some action against an application! The desired property for this is non-repudiation.
- Information Disclosure – It refers to the exposure of the information to unauthorized users. The threat here is that of confidentiality.
- Denial of Service – It is the ability to degrade or deny service to legitimate users. The desired property here is that of availability.
- Elevation of privilege – It is the ability of the users to elevate their privileges with an application without authorization. The desired property is of authorization.
There are many tools that can be used for the design phase of threat modelling. They are –
- Microsoft SDL
- ThreatModeler
- IriusRisk
- securiCAD
CODING
It is important for developers to not just know the technology but also how to perceive the business logic perspective. It is important to establish secure coding practices among developers using the guidelines and awareness campaigns. The source code review helps in maintaining the quality of the code and meeting the security constraints of the code. Procuring automatic code review tools can help organizations to ensure security. There are many tools to be used in the coding phase for the detection of vulnerabilities. Examples are – IBM AppScan source for analysis, HP Fortify, CA Veracode!
QUALITY ASSURANCE
The following tools are used in this phase –
- IBM AppScan Standard
- IBM AppScan Enterprise
- HP Web Inspect
The three pillars of quality assurance are – performance, functionality and security. It is important for the software to have quality by ensuring that the security of the software has been intact. One cannot have good quality software without having security in the software. Outsourcing software testing is a good idea but to leverage the special specialized testing knowledge, skills and experience of the experts in the company being outsourced.
DEPLOYMENT
This is the phase in which all the components of the software interact with each other. This is the final phase and here platform security cannot be ignored. While the application itself might be secure the platform it operates can or cannot have some operative flaws. To ensure the entire security, it is important to have platform security by turning off the unwanted service, running the machines on the least privileged principles and making sure that security safeguards such as IDS, firewalls and so on are not being used.
Signing off,
Avantika Tanubhrt

Leave a comment