Software Development Security Flashcards
Which phase of security development should security considerations take place?
All
Which of the following is not an example of computer-aided software engineering (CASE)?
A. program editors B. version-control mechanisms C. static code analysis software D. manual code review E. debugger
D
Which of the following are secure software development best practices? (Choose all that apply)
A. OWSAP B OWASP C. BSI D. ISO/IEC 27034 E. ISO/IEC 27055
B, C, D
What are the top three in the top 10 OWASP web application security risks.
A. Insecure Direct Object Reference B. Cross-Site Request Forgery (CSRF) C Cross-Site Scripting (XSS) D. Injection E. Sensitive Data exposure F. Security Misconfiguration G. Broken Authentication and Session Management H. Using Components with Known Vulnerabilities
C, D, G
This is the act of sending random data to the target program in order to trigger failures.
Fuzzing
List the five maturity levels in CMMI.
1 = Initial 2 = Repeatable 3 = Defined 4 = Managed 5 = Optimizing
This SDLC model emphasizes verification and validation at each phase.
V-Model
In this SDLC model, multiple development cycles are carried out on a piece of software throughout its development stages.
Incremental
This SDLC model takes an iterative approach that emphasizes risk analysis per iteration.
Spiral
This SDLC model creates a sample of the code for proof-of-concept purposes. Not really used to produce production code.
Prototyping
This SDLC model combines prototyping and iterative development procedures with the goal of accelerating the software development process
Rapid Application
This SDLC model has iterative and incremental development processes that encourage team-based collaboration and flexibility and adaptability instead of a strict process structure.
Agile
This is the term for a multidisciplinary development team with representatives from many or all the stakeholder populations.
IPT
Integrated Product Team
Various levels of testing should be carried out during development. Which of following is not a testing type?
A. Acceptance B. Regression C. Aggregation D. Integration E. Unit
C
Acceptance testing = Ensuring code meets customer requirements
Regression testing = Testing after changes take place
Integration = verifying components work together in the production environment.
Unit = testing individual components. Mature developers develop unit tests for their modules before they even start coding or in parallel. Known as TEST-DRIVEN development.
This type of software development testing verifies components work together in the production environment.
Integration testing
This type of software development testing takes place after changes.
Regression testing
This type of software development testing is done to ensure code meets customer requirements.
Acceptance testing
Which of the following tasks does not belong in the requirements gathering phase of SDLC? (You can choose more than one)
A. Threat modeling B. Security risk assessment C. Privacy risk assessment D. Risk-level acceptance E. Static analysis
A, E
Which of the following tasks belongs in the development phase of SDLC? (You can choose more than one)
A. Threat modeling B. Security risk assessment C. Privacy risk assessment D. Risk-level acceptance E. Static analysis
E
Which of the following tasks belongs in the design phase of SDLC? (You can choose more than one)
A. Threat modeling B. Security risk assessment C. Privacy risk assessment D. Attack surface analysis E. Static analysis
A, D
Which of the following tasks belongs in the Testing/validation phase of SDLC? (You can choose more than one)
A. Threat modeling B. Dynamic analysis C. Regression Testing D. Attack surface analysis E. Static analysis
B, C
At this level of CMMI, the company has formal processes in place to collect and analyze quantitative data and metrics are defined and fed into the process-improvement program.
A. Optimizing
B. Managed
C. Defined
D. Repeatable
B
At this level of CMMI, a formal management structure is in place and the company can properly repeat processes throughout each project, but the company does not have formal process models defined.
A. Optimizing
B. Managed
C. Defined
D. Repeatable
D
At this level of CMMI, the company has budgeted and integrated plans for continuous process improvement.
A. Optimizing
B. Managed
C. Defined
D. Repeatable
A
Any decent software configuration management system comes with “versioning,” but some systems also allow check out of complete or partial code, make changes, and then commit their changes back to the master repository as needed and update their own personal copies to stay up to date with changes other people made. This is called ______________.
Synchronization
This type of programming provides modularity, reusabilty, and more granular control within the programs themselves compared to classical programming languages.
Object-oriented programming
OOP
This type of XSS attack exploits the lack of proper input or output validation on dynamic websites.
nonpersistent XSS
This type of XSS attack involves modifying the original client-side JavaScript.
DOM
This type of XSS attack is when a the attacker loads malicious code on a server that attacks visiting browsers.
persistent XSS
What is the purpose of a DBMS?
Database Management System
The software that controls the access restrictions, data integrity, redundancy, and different types of manipulation available for a database.
In a relational database the ___________ is how a specific row is located from other parts of the database. It is a column that makes each row unique.
primary key
think “Item ID #” for the IOF
Relational database
Tuple = \_\_\_\_\_\_\_\_\_\_\_ Attributes = \_\_\_\_\_\_\_\_\_\_\_
Rows
Columns
This type of database uses a tree-like structure to define relationships between data elements, using a parent/child relationship.
hierarchical database
Which type of database programming language defines the structure and schema?
DDL
Data definition language
Structure = table size, key placement, views, and data element relationships
schema = type of data that will be held and manipulated, and their properties.
Which type of database programming language defines queries that enable users to access the data within the database?
QL
ad hoc query language
Which type of database programming language contains all the commands that enable a user to view, manipulate, and use the database (view, add, modify, sort, and delete commands)?
DML
Data manipulation language