Domain 8: Software Development Security Flashcards

1
Q

Change management process has three basic components:

A

Request Control/Change Control/Release Control

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Request Control

A

Provides an organized framework within which users can request modifications,
managers can conduct cost/ benefit analysis, and developers can prioritize tasks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Change Control

A

Provides an organized framework within which multiple developers can create and
test a solution prior to rolling it out into a production environment. Change control includes
conforming to quality control restrictions, developing tools for update or change deployment, properly
documenting any coded changes, and restricting the effects of new code to minimize diminishment of
security.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Release Control

A

Once the changes are finalized, they must be approved for release through the release control procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Configuration Identification

A

Administrators document the configuration of covered software products throughout the organization.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Configuration Control

A

Ensures that changes to software versions are made in accordance with the
change control and configuration management policies. Updates can be made only from authorized
distributions in accordance with those policies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Configuration Status Accounting

A

Formalized procedures are used to keep track of all authorized changes that take place

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Configuration Audit

A

Periodic configuration audit should be conducted to ensure that the actual
production environment is consistent with the accounting records and that no unauthorized
configuration changes have taken place

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

5 levels of SW-CMM

A

initiating , repeatable, defined, managed, Optimizing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

initiating

A

competent people, informal processes, ad-hoc, absence of formal process

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

repeatable

A

project management processes, basic life-cycle management processes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

defined

A

Engineering processes, presence of basic life-cycle management processes and reuse
of code, use of requirements management, software project planning, quality assurance,
configuration management practices

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

managed

A

product and process improvement, quantitatively controlled

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Optimizing

A

continuous process improvement Works with an IDEAL model.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

IDEAL Model

A

Initiate , Diagnose, Establish an action plan,, Action implement improvements, , Leverage reassesses and continuously improve

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

PERT

A

Program Evaluation Review Technique is a project-scheduling tool used to judge the size of a
software product in development and calculate the standard deviation (SD) for risk assessment. PERT
relates the estimated lowest possible size, the most likely size, and the highest possible size of each
component. PERT is used to direct improvements to project management and software coding in order
to produce more efficient software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

DevOps

A

The word DevOps is a combination of Development and Operations, symbolizing
that these functions must merge and cooperate to meet business requirements.
Integrates:
• Software Development,
• Quality Assurance
• IT Operations

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

DBMS

A

Refers to a suite of software programs that maintains and provides controlled access to data
components store in rows and columns of a table

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Relational

A

One-to-one relationships, has DDL and DML, has TUPLES and ATTRIBUTES
(rows and columns)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Key-Value Store

A

key-value database, is a data storage paradigm designed for storing,
retrieving, and managing associative arrays, a data structure more commonly known today as a
dictionary or hash.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

DDL – Data definition language

A

defines structure and schema

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

DML – Data manipulation language

A

View, manipulate and use the database via VIEW, ADD,

MODIFY, SORT and DELETE commands.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Degree of Db

A

Number of attributes (columns) in table

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Cardinality

A

rows

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Tuple
Row or record
26
DDE – Dynamic data exchange
Enables applications to work in a client/server model by providing the inter-process communications mechanism (IPC)
27
DCL – Data control language
Subset of SQL used to control access to data in a database, using GRANT and REVOKE statements
28
Semantic integrity
Make sure that the structural and semantic rules are enforced on all data types, logical values that could adversely affect the structure of the database
29
Referential integrity
all foreign keys reference existing primary keys,
30
Candidate Key
An attribute that is a unique identifier within a given table, one of the candidate keys is chosen to be the primary key and the others are alternate keys, A candidate key is a subset of attributes that can be used to uniquely identify any record in a table. No two records in the same table will ever contain the same values for all attributes composing a candidate key. Each table may have one or more candidate keys, which are chosen from column headings.
31
Primary Key
Provide the sole tuple-level addressing mechanism within the relational model. Cannot contain a null value and cannot change or become null during the life of each entity. When the primary key of one relation is used as an attribute in another relation, it is the foreign key in that relation. Uniquely identify a record in a database
32
Foreign Key
Represents a reference to an entry in some other table that is a primary key there. Link between the foreign and primary keys represents the relationship between the tuples. Enforces referential integrity
33
Main Components of a Db using Db
* Schemas; blueprints * tables * views
34
Incorrect Summaries
When one transaction is using an aggregate function to summarize data stored in a Db while a second transaction is making modifications to a Db, causing summary to include incorrect information
35
Dirty Reads
When one transaction reads a value from a Db that was written by another transaction that did not commit, Db concurrency issue
36
Lost Updates
When one transaction writes a value to the Db that overwrites a value needed by transactions that have earlier precedence
37
Dynamic Lifetime Objects
Objects created on the fly by software in an Object Oriented | Programming environment. An object is preassembled code that is a self-contained module
38
ODBC
Open Database Connectivity is a database feature that allows applications to communicate with different types of databases without having to be directly programmed for interaction with each type. ODBC acts as a proxy.
39
Database contamination
Mixing data with different classification levels and/ or need-to-know requirements and is a significant security challenge. Often, administrators will deploy a trusted front end to add multilevel security to a legacy or insecure DBMS.
40
Database partitioning -
Is the process of splitting a single database into multiple parts, each with a unique and distinct security level or type of content
41
Polyinstantiation
Occurs when two or more rows in the same relational database table appear to have identical primary key elements but contain different data for use at differing classification levels. It is often used as a defense against inference attacks
42
Database transactions | Four required characteristics
atomicity, consistency, isolation, and durability. Together, these attributes are known as the ACID model, which is a critical concept in the development of database management systems.
43
Atomicity
Database transactions must be atomic—that is, they must be an “all-or-nothing” affair. If any part of the transaction fails, the entire transaction must be rolled back as if it never occurred
44
Consistency
All transactions must begin operating in an environment that is consistent with all of the database’s rules (for example, all records have a unique primary key). When the transaction is complete, the database must again be consistent with the rules, regardless of whether those rules were violated during the processing of the transaction itself. No other transaction should ever be able to use any inconsistent data that might be generated during the execution of another transaction.
45
Isolation
Principle requires that transactions operate separately from each other. If a database receives two SQL transactions that modify the same data, one transaction must be completed in its entirety before the other transaction is allowed to modify the same data. This prevents one transaction from working with invalid data generated as an intermediate step by another transaction.
46
Durability
Database transactions must be durable. That is, once they are committed to the database, they must be preserved. Databases ensure durability through the use of backup mechanisms, such as transaction logs
47
Expert Systems
Expert systems seek to embody the accumulated knowledge of experts on a particular subject and apply it in a consistent fashion to future decisions. Every expert system has two main components: the knowledge base and the inference engine.
48
Expert Systems Two modes
* Forward chaining: acquires info and comes to a conclusion | * Backward chaining: backtracks to determine IF a hypothesis is correct
49
Neural Networks
* Use complex computations to replace partial functions of the human mind * Based on function of biologic neurons * Works with weighted inputs * If a threshold is exceeded there will be output * Single-layer: only one level of summoning codes * Multi-level: more levels of summoning codes * Training period needed to determine input vectors - adaptability (learning process)
50
Encapsulation (Data Hiding)
Only data it needs, no accidental access to data
51
Message
Communication to object to perform an action
52
Method
Code that defines an action an object performs in response to a message
53
Behavior
Results exhibited by an object in response to a msg
54
Class
Collection of methods that defines the behavior of objects
55
Instance
Objects are instances of classes that contain their methods
56
Inheritance
Allows a subclass to access methods belonging to a superclass
57
Multiple Inheritance
Class inherits characteristics from more than one parent class
58
Delegation
Forwarding a request to another object
59
Polymorphism
Objects of many different classes that are related by some common super class. When different subclasses may have different methods using the same interfaces that respond differently
60
Poly-instantiation
Occurs when two or more rows in the same relational database table appear to have identical primary key elements but contain different data for use at differing classification levels. It is often used as a defense against some types of inference attacks
61
OORA, Requirements Analysis
Defines classes of objects and their interactions
62
OOA, Analysis
Understanding and modeling a particular problem Domain Analysis (DA) seeks to identify classes and objects that are common to all applications in a domain
63
OOD, Design
Objects are the basic units, and instances of classes
64
OOP, Programming
Employment of objects and methods If class = airplane, objects like fighter plane, cargo plane, passenger plane can be created. Method would be what a plane would do with a message like: climb, dive, and roll.
65
ORBs, Object Request Brokers
Middleware that acts as locators and distributors of the objects across networks.
66
CORBA, Common object request
Broker architecture enables programs written in different languages and using different platforms and OS’s through IDL (Interface Definition Language)
67
COM, Common Object Model
Support exchange of objects amongst programs. This used to be called OLE. DCOM is the network variant (distributed)
68
Conclusion
``` Object orientation (e.g. with C++ and Smalltalk) supports reuse of objects and reduces development risk, natural in its representation of real world entities. ```
69
Cohesion
Ability to perform without use of other programs, strength of the relationship between the purposes of methods within the same class
70
High cohesion
Without use of other modules
71
Low cohesion
Must interact with other modules
72
Coupling
Effect on other modules. Level of interaction between objects
73
High coupling
Module largely affects many more modules. High cohesion | GOOD
74
Low coupling
It doesn’t affect many other modules Low coupling | GOOD
75
Abstraction
One of the fundamental principles behind object-oriented programming. It is the “blackbox” doctrine that says that users of an object (or operating system component) don’t necessarily need to know the details of how the object works; they need to know just the proper syntax for using the object and the type of data that will be returned as a result
76
Separation of privilege
Builds on the principle of least privilege. It requires the use of granular access permissions; that is, different permissions for each type of privileged operation. This allows designers to assign some processes rights to perform certain supervisory functions without granting them unrestricted access to the system.
77
Process isolation
Requires that the operating system provide separate memory spaces for each process’s instructions and data. It also requires that the operating system enforce those boundaries, preventing one process from reading or writing data that belongs to another process. • It prevents unauthorized data access. Process isolation is one of the fundamental requirements in a multilevel security mode system. • It protects the integrity of processes
78
Layering processes
You implement a structure similar to the ring model used for operating modes and apply it to each operating system process.
79
Hardware segmentation
Is similar to process isolation in purpose. Difference is that hardware segmentation enforces these requirements through the use of physical hardware controls rather than the logical process isolation controls imposed by an operating system.
80
Covert channels
Is a way to receive information in an unauthorized manner, information flood that is not protected by a security mechanism 2 types • Storage covert channel - processes communicate via storage space on the system • Covert timing channel - one process relays to another by modulating its use of system resources. Typing rhythm of Morse Code is an example Countermeasures: eal6 systems have less than eal3 systems because covert channels are normally a flaw in design.
81
Java
Sandboxes, no warnings, programs are compiled to bytecode
82
ActiveX
Authenticode, relies on digital signatures, annoying dialogs people click away
83
Virus
Reproduces using a host application. It inserts or attaches itself to the file, spread thru infected media
84
Worm
Reproduces on its own without host application
85
Logic Bomb/Code Bomb
Executes when a certain event happens (like accessing a bank account or employee being fired) or a data/time occurs
86
Trojan Horse
Program disguised as a useful program/tool
87
HOAXES
False warnings like: DON’T OPEN X SEND TO ALL YOUR COLLEAGUES
88
RAT, Remote Access Trojan
Remote control programs that have the malicious code and allow for unauthorized remote access Back orifice, sub seven, net bus )
89
Buffer Overflow
Excessive information provided to a memory buffer without appropriate bounds checking which can result in an elevation of privilege. If executable code is loaded into the overflow, it will be run as if it were the program. Buffer overflows can be detected by disassembling programs and looking at their operations. Buffer overflows must be corrected by the programmer or by directly patching system memory.
90
LOKI
Is a tool used for covert channel that writes data directly after the ICMP header
91
Directory Traversal Attack –
Attacker attempts to force the web application to navigate up the file hierarchy and retrieve a file that should not normally be provided to a web user.
92
Hash Collisions
Two different files produce the same result from a hashing operation
93
Boot sector Virus
Moves or overwrites the boot sector with the virus code.
94
Companion virus
A specific type of virus where the infected code is stored not in the host program, but in a separate ‘companion’ files. For example, the virus might rename the standard NOTEPAD.EXE file to NOTEPAD.EXD and create a new NOTEPAD.EXE containing the virus code. When the user subsequently runs the Notepad application, the virus will run first and then pass control to the original program, so the user doesn’t see anything suspicious. Takes advantage of search order of an
95
Multipart virus
Infects both the boot sector and executable files; becomes resident first in memory and then infects the boot sector and finally the entire system, uses two or more propagation mechanisms
96
Self-garbling virus
attempts to hide by garbling its code; as it spreads, it changes the way its code is encoded
97
Polymorphic virus
This is also a self-garbling virus where the virus changes the “garble” pattern each time is spreads. As a result, it is also difficult to detect
98
Macro virus
Usually written in Word Basic, Visual Basic or VBScript and used with MS Office
99
Resident virus
Virus that loads when a program loads in memory
100
Master boot record/boot sector
(MBR) virus attack the MBR—the portion of bootable media (such as a hard disk, USB drive, or CD/ DVD) that the computer uses to load the operating system during the boot process. Because the MBR is extremely small (usually 512 bytes), it can’t contain all the code required to implement the virus’s propagation and destructive functions. To bypass this space limitation, MBR viruses store the majority of their code on another portion of the storage media. When the system reads the infected MBR, the virus instructs it to read and execute the code stored in this alternate location, thereby loading the entire virus into memory and potentially triggering the delivery of the virus’s payload.
101
Signature based Anti-Virus
Cannot detect new malware
102
Heuristic behavioral Anti-Virus
Can detect new malware
103
Protection domain
Execution and memory space assigned to each process
104
TRUSTED COMPUTER BASE
Combination of protection systems within a computer system, which include the hardware, software and firmware that are trusted to enforce the security policy.
105
Security Kernel
Hardware, software, firmware, elements of TCB that implement the reference monitor concept — must be isolated from reference monitor (reference monitor: isolation, completeness and verifiability, that compares the security labels of subjects and objects)
106
Multistate systems
Capable of implementing a much higher level of security. These systems are certified to handle multiple security levels simultaneously by using specialized mechanisms
107
Protection rings
• Ring 0 - Operating system kernel. The OS’ core. The kernel manages the HW (for example, processor cycles and memory) and supplies fundamental services that the HW does not provide. • Ring 1 - Remaining parts of the operating system • Ring 2 - I/O drivers and utilities • Ring 3 - Applications and programs
108
CSRF (XSRF)
Cross site request forgery, attacks exploit the trust that sites have in a user’s browser by attempting to force the submission of authenticated request to third-party sites.
109
Cross-site Scripting
Uses reflected input to trick a user’s browser into executing untrusted code from a trusted site
110
Session Hijacking
Attempt to steal previously authenticated sessions but do not force the browser to submit request.
111
SQL Injection
Directly attacks a database through a web app,, CARROT’1=1; - quotation mark to escape out of input field
112
Service Pack
Collection of unrelated patches released in a large collection
113
Patch management system
Prevents outages from known attacks by ensuring systems are patched. Patches aren’t available for new attacks. However, the patch management system doesn’t provide the updates. Ensuring systems are patched reduces vulnerabilities but it does not eliminate them
114
Threat Modeling
Reduce the number of security-related design and coding flaws, reduce severity of non-security related files, not to reduce number of threat vectors
115
Open system
Is one with published APIs that allow third parties to develop products to interact with it.
116
Keys
Like passwords and should be treated as very sensitive information. They should always be stored in secure locations and transmitted only over encrypted communications channels. If someone gains access to your key, they can interact with a web service as if they were you! Limit access to
117
Nessus
is a popular vulnerability scanner managed by Tenable Network Security, and it combines multiple techniques to detect a wide range of vulnerabilities. It uses port scans to detect open ports and identify the services and protocols that are likely running on these systems.
118
OWASP
Open Web Application Security Project, most authoritative source on web application security issues
119
Shadow Password File
/etc./ shadow. This file contains the true encrypted PWs of each user, but it is not accessible to anyone but the administrator. The publicly accessible /etc./ passwd file then simply contains a list of usernames without the data necessary to mount a dictionary attack. “x”
120
User Mode
Processor mode used to run the system tools used by admins to make configuration changes to a machine
121
Kernel Mode
Used by processor to execute instructions from