Software Development Security Flashcards
What is threat modelling
process whereby potential threats are identified, categorised, and analysed.
Name some typical crossing points that can make up a total threat surface
TCP/IP ports
User login services
query fields on web pages
attachment points for removable media
devices
A popular threat model approach is called STRIDE which is a mnemonic for security threats in six categories
- Spoofing: Impersonating something or someone else.
- Tampering: Modifying something on disk, network, data, code or elsewhere.
- Repudiation: Claiming to have not performed an action.
- Information disclosure: Exposing information to someone not authorised to access it.
- Denial of Service: Exhaustion or degradation of services to users.
- Elevation of privilege: Gaining privileged capabilities without proper authorisation.
When creating a secure environment for an executable program, such as mobile code, it is important to
identify the resources the program needs and then provide limited access to these resources to protect against potential threats
Two control mechanisms can be used to limit the risk to the user in relation to mobile code:
Attempt to run code in a restricted environment where it cannot do harm, such as in a sandbox
Cryptographic authentication, via digital certificates and signatures on mobile code elements, can be used in an attempt to authenticate where the code is coming from
What was another name for first generation programming languages
machine language
What was another name for second generation programming languages
assembly language
What was another name for third generation programming languages
Higher order languages COBOL, FORTRAN, BASIC, Java and C
What was another name for fourth generation programming languages
very high-level languages e.g. include report generators and application generators.
Sometimes 5th generation languages are known as
constraint-based or logic programming languages - using expressions and arguments to program rather than traditional source code
Two principal security concerns are worth noting with regard to the widespread use of fourth generation languages today:
Almost all the “codeless programming” platforms and environments end up being substantially tailored by end-user organizations
By being created to make it simple for nonprogrammers to create programs, and in so many ways, millions of people with virtually no security training or awareness use them on a daily basis around the world. And almost all that usage is beyond any organizational security or configuration management purview.
This is a set of standards that addresses the need for interoperability between hardware and software products residing on different machines across a network.
CORBA
The CORBA security service supports four specific types of policies:
Access control
Data protection
Non-repudiation
Auditing
Is commercial-off-the-shelf (COTS) software more dangerous than bespoke software written in-house?
Yes, COTS increases the potential of security faults. Often the one-size-fits-all nature of COTS can mean that security is too generic or just doesn’t exist. Sometimes it can be considered, but only after thorough risk assessment.
A covert channel may be defined as a communication channel that allows processes to transfer information in such a way to
violate some security policy or requirement
Time of Check vs. Time of Use (sometimes written as TOCTOU or TOC/TOU) is seemingly a very common type of attack that occurs when
control information changes between the time the system security functions check the contents of variables and the time the variables actually are used during operations.
What is a race condition
this may exist when the output of a specific architecture is dependent on the timing of certain events, but somehow those events are not done in the proper sequence.
To avoid TOCTOU attacks, the operating system should use the concept of
Software locking
To protect against a race condition attack from taking place within a system, the security professional needs to ensure that
the architecture and design of the operating system and the programs that run on top of it are not allowing critical tasks to be split up for execution. To ensure this does not happen, the use of atomic operations needs to be enforced within the system.
What is the difference between a race condition and a TOCTOU attack
A race condition implies that two processes will be forced to execute out of sequence, allowing the attacker to control or manipulate the outcome.
While a TOCTOU attack may happen as a result of the attacker inserting themselves in between two processes as they are executing, causing a redirection of the second process in some way to control or manipulate the outcome.
What is a between the lines attack
This occurs when the telecommunication lines used by an authorized user are tapped into and data falsely inserted or injected.
How do you prevent a between the lines attack
the telecommunication lines should be physically secured so that they cannot be accessed by unauthorized individuals, and users should not leave telecommunication lines open when they finished with them and those lines are not being used anymore.
What is a trapdoor or backdoor
a hidden mechanism that bypasses access control measures.
Database attacks: Aggregation or inference
The ability to combine non-sensitive data from separate sources to create sensitive information is referred to as aggregation.
Being able to aggregate information may lead to inference possibilities. Inference is the ability to deduce more sensitive information than you should be allowed.