Secure Software Eng. Flashcards
What is the ‘Security by Design’ principle?
The ‘Security by Design’ principle refers to the idea that software should be designed from the ground up to be secure. This means considering security at every stage of software development, from design to implementation to testing.
What is the CIA triad in software security?
The CIA triad stands for Confidentiality, Integrity, and Availability. These are the three main objectives of a secure system: Confidentiality ensures that data is accessible only to authorized users, Integrity ensures that data is not altered or destroyed in an unauthorized manner, and Availability ensures that data is accessible to authorized users when needed.
What are some common threats to software security?
Common threats to software security include spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privilege.
What are misuse and abuse cases in software security?
Misuse and abuse cases are scenarios in which an actor (malicious or not) exploits a vulnerability or causes harm to the system. They help to identify and prevent potential security issues in the software development lifecycle (SDLC).
What are security touchpoints in the software development lifecycle?
Security touchpoints are activities and techniques that can be applied at different stages of the SDLC to improve the security of the software, such as risk analysis, code review, penetration testing, and security operations.
What is SQL injection and how can it be prevented?
SQL injection is a code-level vulnerability that allows an attacker to insert malicious SQL code into a query. It can be prevented by using parameterized queries or prepared statements, which separate the data from the command, thus preventing the attacker from manipulating the query structure.
What is the role of risk analysis in secure software engineering?
Risk analysis in secure software engineering involves identifying potential threats and vulnerabilities in the system, assessing their impact and likelihood, and prioritizing mitigation efforts based on this assessment.
What is the purpose of code review in secure software engineering?
The purpose of code review in secure software engineering is to identify and fix vulnerabilities in the code before they can be exploited. It involves systematically examining the code for errors, bugs, and security issues.
What is penetration testing and why is it important in secure software engineering?
Penetration testing is a method of evaluating the security of a system by simulating attacks on it. It is important in secure software engineering because it helps to identify vulnerabilities that may not have been detected during the design and development stages.
What is the role of security operations in secure software engineering?
Security operations in secure software engineering involve monitoring and managing the security of a system in operation. This includes incident response, disaster recovery, and continuous monitoring for new threats and vulnerabilities.
What is the difference between confidentiality and privacy in the context of software security?
In the context of software security, confidentiality refers to the protection of data from unauthorized access, while privacy refers to the right of individuals to control how their personal information is collected and used.
What is the principle of least privilege and why is it important in software security?
The principle of least privilege states that a user should be given the minimum levels of access necessary to complete his or her job functions. This principle is important in software security because it reduces the potential damage that can be caused by an attacker who gains access to a user’s account.
What is a buffer overflow and how can it be prevented?
A buffer overflow is a type of vulnerability that occurs when more data is written to a buffer than it can hold, causing the excess data to overflow into adjacent memory. It can be prevented by using safe string handling functions and by performing bounds checking on array and string operations.
What is cross-site scripting (XSS) and how can it be prevented?
Cross-site scripting (XSS) is a type of vulnerability that allows an attacker to inject malicious scripts into web pages viewed by other users. It can be prevented by validating and sanitizing user input, and by using response headers to control how the browser handles the data.
What is a race condition and why is it a security concern?
A race condition is a situation in which the behavior of a system depends on the sequence or timing of other uncontrollable events. It is a security concern because it can lead to unpredictable and potentially harmful outcomes, such as data corruption or unauthorized access.