Chapter 20 Flashcards
Programming language generations
Gen 1: Machine language; 0 and 1 computer directly understands
Gen 2: Assembly language; mnemonics
Gen 3: Structured, object oriented, etc.
Gen 4: Domain-specific
Gen 5: AI, natural language
Compiled vs Interpreted
Compiled - no source code, but easier to hide malware
Interpreted - need source code
Run-time environment
Portable across different OS platforms
Software libraries
Re-usable code; need to be aware of origins of source code
Software failure mitigation
Input validation
Authen and session mgmt
Error handling
Logging
Fail secure
SDLC
Conceptual definition
Functional specifications - input/behavior/output
Controls specifications
Design
Coding
Code review
Test
Maintain and change mgmt
SDLC models
Iterative Waterfall - with feedback for one phase back only
Spiral - repeated waterfall iterations; each one delivering a prototype until finished product
Agile development
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Scrum, scrum master, sprints
Agile - 12 principles
- Highest priority - satisfy customer thru early delivery
- Welcome changes
- Deliver working software frequently
- Business and dev work together
- Build around motivated people - provide support and trust
- Face-to-face communication
- Primary measure of progress is working software
- Maintain constant pace indefinitely
- Attention to technical excellence and good design
- Maximize work not done
- Self-organizing teams produce best
- Regular review and adjust
SW-CMM
(Software Capability Maturity Model)
Lvl 1: Initial
Lvl 2: Repeatable - basic lifecycle mgmt, reusable code, repeatable project outcomes
Lvl 3: Defined - standard processes, orgranizational processes, training program
Lvl 4: Managed - use metrics, quantitative measurement and quality mgmt
Lvl 5: Optimizing - change mgmt
SAMM - software assurance maturity model
5 business functions:
- Governance - strategy, compliance, metrics, training, policy
- Design - threat assessment, security req, security arch
- Implementation - secure building, secure deploy
- Verification - testing
- Operations - incident mgmt, operational mgmt env mgmt
Total of 15 security practices
IDEAL
Initiating
Diagnosing
Establishing
Acting
Learning
Change Management
Request control processes - request, cost/benefit, prioritize
Change control processes - test and document
Release control processes - approvals, user acceptance, deployment
Software Configuration Management
Configuration identification
Configuration Control - auth changes, versioning
Configuration status accounting - change tracking
Configuration Audit - regular check for unauth changes