Chaptet 10 - Software Security Flashcards
Initiation
The first step, the idea, the choosing a vendor vs homebrew, the project level risk assessment .. Will this work?
Software development lifecycle
Initiation Acquisition Implementation Operation/Maintenance Disposal
Certification vs accreditation
Certification is the technical testing
Accreditation is the formal authorization
Statement of work
Outlines the work necessary to work with a customer on a project
Scope creep
When the purpose of a project shifts during the processes and additional steps are added
Work breakdown structure
A project management tool used to group sets of activities logically to keep focused
Privacy risk assessment
A software risk assessment to discover vulnerabilities
Privacy impact rating
This is the level of impact per item on the privacy risk assessment, generally rated in P1 to P3
What three models of software design are there?
Informational
Functional
Behavioral
Attack surface analysis
Aims to reduce the amount of code accessible by untrusted users
Threat modeling
Model used to detect threat vectors using a threat analysis tree
Threat analysis and modeling tool
Computer aided software engineering CASE
Tools like dreamweaver and visual studio
Where can I find a list of common code vulnerabilities?
Cwe.mitre.org/top25/#Listing
Static analysis
Automated code review
Unit testing
Testing a module or chunk of code
What are the key components of a test phase?
Test needs to mirror production
Pen testing is necessary
Platform testing
Testing types
Unit testing
Integration testing
Acceptance testing
Regression testing
Fuzzing
Throwing random data at a solution to see what errors occur in order to detect vulnerabilities
Dynamic analysis
Watching the code stream and sub level messages to ensure code is running correctly
Maintenance hook
Code that is used for troubleshooting low level code and should be removed in prod
Verification vs validation
Verification determines accuracy to spec
Validation determines of the product solved the intended problem
Zero day vulnerability
Vulnerability that does not have a fix yet
Wasc
Web application security consortium is a web organization that tracks attacks on the Internet
Owasp is the open standard for this
ISO 27034
Software development guidelines
Build in security
A homeland security effort that makes guidelines for software developers
Build and fix model
Build and deploy first .. Then fix
Waterfall model
Each phase is completed in entirety and cannot be returned to until the process is completed as a whole
V-shaped model
Similar to waterfall but with testing at each stage that can fall back to previous steps
Rapid prototype
A throw away prototype meant to just see it in a action
Evolutionary vs operational prototype
A prototype that is not discarded but evolved, operational means it is put into production
Incremental model
Many small waterfalls take place with each phase
Spiral model
Slow moving security conscientious and risk centric model with evolutionary and operational prototypes in the mix
Rapid application development
Demonstrate refine build repeat
Agile model
Functional based incremental code that is assembled on the fly and driven by customer requirements
Exploratory model
Specification based development
Joint analysis development
Workshop oriented development
Reuse model
Taking other functions already made an piecing them together
Clean room development
Development that is mostly test based and meant for certification
Capability maturity model integration
A maturity model that helps companies work together in development
CMMI stages
Initial Repeatable Defined Managed Optimized
Software configuration manager
GitHub like software
Software escrow
When software is stored for individuals in a software ‘vault’
Assembly language
Uses assemblers to take ADD PUSH POP etc commands and create then into binary
High level language
C is considered a high level language and uses else if and then
Very high language
C++ is a good example of this level
Natural languages
C# is a natural language and flows logically and easily
Generation one language
Machine language
Interpreter
Used as an intermediary to run bytecode .. Java, flash, powershell, bash are interpreted languages
Garbage collection
Taking all unused memory cells and giving them back to the OS
OOP
Object based language
Method
An actionable code that modifies an object
Encapsulated code
Reusable isolated object