Skip to main content

Software Design - An infosec angle

Software design is the important stage where the code is really put to work to deliver or build an business function and application. This is a stage where the SRS (Software Requirements Specifications) is finalized and signed off for design and development.

The major difficult in software design is to incorporate the business requirements as well as do threat modeling to understand the attack surface of the applications. Many applications do not show up problems in regular normal use but show up funny ways of responding when provided with a different input or action not generally considered as part of the application design.
The major areas that a threat model derived needs to address are – The Microsoft STRIDE model provides the following areas to be addressed as part of the design.

1. Spoofing
2. Tampering
3. Repudiation
4. Information Disclosure
5. Denial of Service
6. Elevation of Privilege
7. Integrity of Data

Even though all aspects are not covered most of them are covered in the above threat model. The best way to go about is to break the applications into the different threat vectors and address each one of them.

Each process, data store and elements that are part of the application design are specifically vulnerable to one of the vectors. A matix is prepared addressing each of the vectors’ effect on the application. All elements including web services, people who use the systems and the end points where data is handed over to another application are places of vulnerability. Once we map all the data flows from the application - In the form of a map , we identify areas that are possibly vulnerable to say Information Disclosure, and may have a threat profile associated with it.
The mapping will be very crucial to the way the application is designed. It always helps to think in the same way as a would be attacker does. In this way the model as it evolves will replicate a real threat scenario and the way an attack may be carried out. This is also one of the main reasons to differentiate between the design team and the team that threat models. This removes any bias the developer has for his system and is modeled in such a way that every aspect that can be exploited is tested thoroughly.

Though it is easier to write about threat modeling, it is an evolving science and needs to be modified in line with when it is required, new attack parameters are found and newer vectors are discovered, as they do the threat model that is used for design of the software needs to keep in tow with the evolving threat vectors

Comments

Popular posts from this blog

The CyberRange Exercise - What it entails and Why?

A cyber range exercise is a simulated cyberattack that is used to train cybersecurity professionals. Cyber range exercises can be used to train a variety of skills, including penetration testing, incident response, and threat hunting. Cyber range exercises can be customized to fit the needs of the organization or team. For example, an organization that is concerned about ransomware attacks could create a cyber range exercise that simulates a ransomware attack. The size of the team that participates in a cyber range exercise can vary. Some cyber range exercises are designed for individuals, while others are designed for teams of up to 100 people. The roles that the team members play will also vary depending on the exercise. Some common roles that team members play in cyber range exercises include: Attacker: The attacker is responsible for trying to exploit vulnerabilities in the system. Defender: The defender is responsible for defending the system from the attacker. Observer:...

Cybersecurity Talent - The need to retain in an uncertain world

  How to Retain Cybersecurity Talent Cybersecurity is a critical function for any organization, and it's becoming increasingly difficult to find and retain qualified cybersecurity professionals. In order to attract and keep top talent, organizations need to offer competitive salaries and benefits, invest in training and development, and create a culture of security. Competitive Salaries and Benefits Cybersecurity is a demanding field, and it's important to offer competitive salaries and benefits to attract and retain top talent. This includes providing health insurance, retirement plans, and other financial benefits. It's also important to offer flexible work arrangements, such as telecommuting and flextime, to accommodate the needs of working professionals. Invest in Training and Development The cybersecurity landscape is constantly changing, so it's important to invest in training and development for your cybersecurity team. This will help them stay up-to-date on the ...

The Curriculum for a typical Advanced Course in Cybersecurity - Part II

  Weekend 1 Introduction to Cybersecurity What is cybersecurity? The history of cybersecurity The different types of cyberattacks The importance of cybersecurity Risk Management What is risk management? The different types of risks How to identify and assess risks How to mitigate risks Threat Intelligence What is threat intelligence? How to gather threat intelligence How to use threat intelligence to protect your organization Vulnerability Management What is vulnerability management? How to identify vulnerabilities How to prioritize vulnerabilities How to remediate vulnerabilities Weekend 2 Penetration Testing What is penetration testing? The different types of penetration tests How to plan and execute a penetration test How to report the results of a penetration test Incident Response What is incident response? The different phases of incident response How to plan and execute an incident response plan How to communicate during an incident Forensics What is forensics? The different...