Domain 8 -- Software Development Security Flashcards
What are the phases of the SDLC?
- Requirements
- Design
- Development
- Testing
- Operations and Maintenance
What are examples of Privacy Risk?
- P1, High Privacy Risk
- P2, Moderate Privacy Risk
- P3, Low Privacy Risk
What are three models for software requirements?
- Informational model
- Functional model
- Behavioral model
What is an attack surface?
An attack surface is what is available to be used by an attacker against the product itself.
What is test driven development?
It means developing the unit tests for their modules before they even start coding
What are the 4 testing types for the exam
- Unit testing
- Integration testing
- Acceptance testing
- Regression testing
What are fuzzers and fuzzing?
- Fuzzers use complex input to impair program execution.
- Fuzzing is a technique used to discover flaws and vulnerabilities in software by sending large amounts of malformed, unexpected or random data to teh target program in order to trigger failures
What’s a manual test?
A manual test is used to analyze aspects of the program that require human intuition and can usually be judged using computing techniques.
Testers try to locate design flaws and hack the software
What’s the difference between Verification and Validation?
- Verification determines if the product accurately represents and meets the specs. Did we build the product right?
- Validation determines if the product provides the necessary solution for the intended real-world problem. Did we build the right product?
What is a zero-day vulnerability?
- A zero-day vulnerability is one that does not currently have a resolution
What are the key security tasks of the Requirements gathering phase?
- Security risk assessment
- Privacy Risk Assessment
- Risk-level acceptance
- Informational, functional and behavioral requirements
What are two key security tasks in the Design phase?
- Attack surface analysis
- Threat modeling
What are 2 key security tasks in the Development Phase?
- Automated CASE tools
- Static analysis
What are two key security activities in the Testing phase?
- Dynamic analysis
- Fuzzing
- Manual testing
- Unit, integration, acceptance and regression testing
- What is the key security related activity during the Operations and maintenance phase?
- Final security review
Why is the V-shaped methodology better than waterfall in some respects?
V-shaped emphasizes testing throughout the development process, not just at the end. Thus, it has a higher chance of success
What is a prototype?
A prototype is a sample of software code or a model that can be developed to explore a specific approach to a problem before investing expensive time and resources
What’s the difference between?
- Rapid prototyping
- Evolutionary prototypes
- Operational prototypes
- Rapid prototype lets the dev team quickly create a prototype to test the validity. Quick and dirty – not meant to used. Throw-away.
- Evolutionary prototypes - prototype will be improved upon and used
- Operational prototypes - an extension of evolutionary prototypes. Designed to be implemented in Prod while it is being tweaked
What is the incremental methodology with respect to software development?
- It allows the dev team to carry out multiple development cycles on a piece of software throughout its development.
- After each iteration, it is a working piece of software that will be implemented in production.
- Advantages:
- Product is delivered more quickly
- Initial delivery costs are lower
- Customer gets functionality earlier
- Risks of critical changes taking place are lower
What is the Spiral Methodology?
- The spiral methodology uses an iterative approach to software development and places emphasis on risk management
- Four main phases that are iterated through:
- Objectives
- Risk analysis
- Development
- Test
- At the conclusion of each cycle of the spiral a Prototype is created
- Eventually, an operational prototype will be created
What are the advantages of the spiral methodology?
- Good methodology for complex projects that have fluid requirements
- Allows new requirements to be addressed as they are uncovered
- Each prototype allows for early testing and feedback
What is the Rapid Application Development methodology?
- RAD is a methodology that relies more on the use of rapid prototyping, rather than on extensive upfront planning.
- Uses prototyping and iterative development
Do Agile methodologies use prototypes to represent the full product?
No – Agile methodologies break the product down into individual features that are continuously being delivered
What are some of the key features of the Scrum method of Agile development
- Widely used
- Allows project features to be added/changed/removed at clearly defined points
- Customer is intimately involved
- Changes can happen at the conclusion of a sprint, but not during a sprint
- Have backlogs of feature stories
What are two key characteristics of Extreme Programming?
- Pair programming – having two programmers work together on the same code
- Test Driven Development - write the test before you write the code
- This tends to keep code minimalistic
- helps avoid complexity
What are the key features of Kanban?
- Stresses visual tracking
- Planned / In Progress / Done
What is an Integrated Product Team?
- An IPT is a multidisciplinary dev team with representatives from many or all stakeholder populations
- It is not a methodology – it is a management approach
What is DevOps? And what are its benefits?
- DevOps is the practice of incorporating development, IT and QA staff into software development projects to align their incentives and enable frequent, efficient and reliable releases of software products
- Benefits:
- Positive impact on security
- Increases trust within an organization
- Increases job satisfaction among developers, IT staff and QA
What is the Capability Maturity Model Integration (CMMI), and what are its five levels?
- The CMMI is a comprehensive, integrated set of guidelines for developing products and software. Used to rate software vendors
- Five levels:
- Initial
- Repeatable
- Defined
- Managed
- Optimizing
What’s the difference between Change Management and Change Control?
- Change management is a systematic approach to deliberately regulating the changing nature of projects, including software projects
- Change Control is the process of controlling the specific changes that take place during the life cycle of a system and documenting the necessary change control activities
What’s the relationship between Change Management and Change Control?
Change Control is part of Change Management
Why is it so important to secure the Source Code repositories
- They house intellectual property
- If the bad guys get access to the code, they can analyze it and hack it.
What are the key points re Software Configuration Management
- Centralized code repositories can carry out the main functionality
- Versioning
- Concurrency management
- Logs of who made which changes
- Checkout code and merge it back (known as synchronization)
What are Carnegie Mellon’s SEI list of 10 secure coding practices?
- Validate inputs
- Heed computer warnings
- Architect and design for security policies
- Keep it simple
- Default deny
- Adhere to the principle of least privilege
- Sanitize data sent to other systems
- Practice defense in depth
- Use effective QA techniques
- Adopt a secure coding standard
Name the five generations of programming languages
- Machine language
- Assembler language
- High level language (Fortran, Cobol)
- Very high-level language
- Natural language
Why is C less secure than Java?
- C is more susceptible to buffer over-run and string errors (string lengths are not checked)
- C leaves garbage collection up to the developer, whereas as Java does it for the dev at the JVM level
In OOP an object is an ___________ of a _____________.
instance, class
What are the key benefits of OOP?
- Modularity
- Deferred Commitment (internal aspects of an object can be redefined without changing other parts of a system
- Reusability
- Naturalness
What’s the difference between the shared portion and the private portion of an object?
What important concept in OOP does this enable?
- The shared portion of an object is the API that enables it to interact with other components
- The private portion of an object is how it actually works and performs the requested operations
- The private portion of an object enables data hiding (other objects don’t need to know how the object works)
- Data hiding is provided by encapsulation
What is abstraction?
Abstraction is the capability to suppress unnecessary details so the important, inherent properties can be examined and reviewed
What does polymorphism mean with respect to OOP?
Polymorphism takes place when different objects respond to the same command, input, or message in different ways.
What is data modeling?
Data modeling considers data independently of both the way the data is processed and the components that process the data
What is a data structure?
Give examples of different types of data structures
A data structure is a representation of the logical relationship between elements of data
- Examples
- Scalar
- linked list
- hierarchical tree
What is cohesion?
- Cohesion reflects how many different types of tasks a module can carry out.
- If a module only carries out one tasks or similar tasks, then it has high cohesion.
What is coupling?
- Coupling is a measurement that indicates how much interaction one module requires to carry out its tasks
- High (tight coupling) means the module depends on many other modules to carry out its tasks
- Loose coupling means the module doesn’t need to communicate with very many other modules to perform its function
Objects should be self-contained and perform a single logical function, which is high __________. Objects should not drastically affect each other, which is low _____________.
cohesion
coupling
What is an API – Application Programming Interface?
An API specifies the manner in which a software component interacts with other software components.
What is the Distributed Computing Environment (DCE)?
- It’s a set of management services with a communications layer based on RPC
- It is not running much anywhere, but it provided the foundational technologies for technology to follow, such as CORBA, DCOM, J2EE
What is CORBA?
CORBA stands for Common Object Request Broker Architecture
Its an OO standard architecture developed by the Object Management Group. Widely used today.
Objects can reside on different platforms and be written in different languages
What’s the difference between COM and DCOM?
- COM - Component Object Model allows for interprocess communication within an application or between applications on the same computer system.
- DCOM supports the same model for component interaction and also supports distributed interprocess communication (IPC). DCOM enables appls to access objects that live on different parts of the network.
- DCOM is layered over RPC technology
DCOM has largely been replaced by the ________ framework
.Net
What does Object Linking and Embedding allow for?
Object Linking and Embedding allows for:
- objects to be embedded into documents
- The capability for one program to call another program is called linking
What is the value proposition of Java EE
Java EE defines a client/server model that is object oriented and platform independent.
Similar in goals to DCOM and CORBA
Allows devs to focus on functionality and not the backend plumbing
What is SOA?
SOA – Services Oriented Architecture provides a stnadardized access to the most needed services to many different applications at one time.
SOA is a more web-based approach to the goal of distributed computing
What’s a mashup?
A mashup is the combination of functionality, data and presentation capabilities of two or more sources to provide some type of new service or functionality.
What does SOAP stand for and what is an advantage of it?
SOAP - Simple Object Access Protocol.
An advantage of it is that it uses http or https so it can get through firewalls.
What is mobile code and why is it dangerous?
Mobile code that can be transmitted across a network to be executed by a systemm or device on the other end.
It’s fine for things like downloading a file from a web site.
It’s dangerous when it’s used for malicious or compromising actions, especially when the recipient is unaware that it is taking place.
What’s a Java Applet?
A java applet is typically a small program written in Java desgined to run in the user’s browser.
What are ActiveX Controls?
ActiveX is a Microsoft technology based on COM and DCOM that can be used to create ActiveX controls, which are similar to Java applets and can be executed in the Windows environment
What is the key security technology used by ActiveX?
Authenticode.
It’s not perfect
It relies on digital certificates and trusting CA’s.
What are the main risks in Java applets and ActiveX controls?
Java has not been able to ensure that all code stays within the sandbox
ActiveX relies on Authenticode which doesn’t necessarily provide security. Users don’t understand and just hit OK.
Microsoft removed ActiveX from its Edge browser.
What are five specific threats for Web environments?
- Administrative interfaces
- Authentication and access control
- Input validation
- Parameter validation
- Session Management
What are the key characteristics of any type of database system?
- It ensures consistency among the data held in diff servers throughout the network
- Allows for easier backups
- Provides transaction persistence
- Provides recovery and fault tolerance
- Allows sharing of data with multiple users
- Provides security controls that implement integrity checking, access control and the necessary level of confidentiality
Name the main database models
- Relational
- Hierarchical
- Network
- Object-oriented
- Object relational
What are commonly used implementations of the hierarchical DB model?
- LDAP
- Windows registry
How does a network database model work?
It’s like a hierarchical database, but it allows each element to have multiple parent and child relationships.
The network has to do with the relationship between the data elements, not the computer network.
What’s different about an Object Oriented database?
- Objects can be created when needed and the data and procedure go with the object when it is requested
- Does not use SQL
What’s the point of an object-relational database?
- An object-relational DB is a relational DB with a software front-end that is written in an object oriented programming language
What are the key features of an Object Linking and Embedding DB (OLE DB)
- It separates data into components that run as middleware on a client or server.
- It provides a low-level interface to link information across different databases and provides access to data no matter where located or how formatted
- It’s a replacedment for ODBC
- It’s COM based and therefore limited to Microsfot based tools
- A dev accesses OLE DB services through ActiveX Data Objects (ADO)
- It allows different applications to access different types and sources of data
What is ActiveX Data Objects (ADO)?
- It’s an API that allows applications to access back-end database systems
- It’s a high level data access programming interface to an underlying data access technology (such as OLE DB)
- It’s a set of COM objects for accessig data sources, not just databases
- it allows a dev to write programs that access data without knowing how the DB was implemented
- SQL commands are not required when using ADO
What is the CISSP definition of a data dictionary?
A central collection of data element definitions, schema objects and reference keys.
What are the 3 types of integrity services that DBMS’s provide and briefly describe each.
- Semantic integrity – enforcing things like data types, logical values, uniqueness constraints
- Referential integrity – All foreign keys must tie back to primary keys that exist
- Entity integrity – guarantees that records are uniquely identified by primary key values
What’s the difference between a savepoint and a checkpont?
- Savepoint - used to make sure that if a system failure occurs, or an error is detected, the database can get back to a known point before the system crashed or hiccupped.
- Checkpoint – similar to savepoints. When a certain amount of memory is filled up a checkpoint is initiated, which saves data from the memory segment to a temp file. Used in case of a glitch
Briefly describe the two main database security issues:
- Aggregation
- Inference
- Aggregation is when a user doesn’t have clearance or permission to access specific information, but they can piece together the information they are looking for from the clues in other data that they do have access to
- Inference is the intended result of aggregation. It’s the ability to derive information not explicitly available
What’s the difference betwen
- content dependent access control and
- context dependent access control
- Content dependent access control is based on the sensitivity of the data
-
Context dependent access control means that the software understands what should be allowed based on the state and sequence of the request
- Used to protect against inference attacks
Briefly describe these techniques that are used to protect against inference attacks:
- Cell suppression
- Partitioning
- Noise and perturbation
- Cell suppression -- hide specific cells that could be used in inference attacks
- Partitioning – by dividing the DB into different parts, it becomes harder for an unauthorized individual to connect the pieces together
- Noise and perturbation –inserting bogus information in the hopes of misdirecting an attacker
Database views are a _________ type of access control.
logical
What is polyinstantiation and how does it prevent against inference attacks?
- Polyinstantiation allows multiple rows with the same primary key, but distinguished by security level
- Higher security will know that the Oklahoma is shipping weapons from Delaware to Ukraine
- Lower security clearance will see that the Oklahome is shipping food to Africa
By not having access prevented, lower security clearance will not know that something classified is happening
What is the CISSP definition of polyinstantiation?
Polyinstantiation is a process of interactively producing more detailed versions of objects by populating variables with different values or other variables. It is often used to prevent inference attacks
What does ACID stand for with respect to transaction processing?
- Atomicity – all or nothing
- Consistency - must follow integrity policy
- Isolation - trans execute in isolation until complete and don’t interact with other trans. Results not available until tran is complete
- Durabilty – once tran is verified as accurate it is committed and can’t be rolled back
What is the CISSP definition of data mining? How does it relate to metadata?
- Data mining is the process of massaging the data held in the data warehouse into more useful information.
- Metadata is the result of storing data within a data warehouse and mining the data with tools
- Data goes into the warehouse and metadata comes out of the data warehouse.
Data mining is also known as ___________.
Knowledge Discovery in a database (KDD)