Secure Software Installation and Deployment
Installation
- SDLC is broken into two phases: development and sustainment
- Sustainment includes: installation, deployment, operations, maintenance
Installation V&V
- Use MITRE's Common Weakness Enumeration (CWE) to evaluate code
Planning for Operational Use
Bootstrapping
- set of ops that properly launch function and ensure continuing correctness
- 📝 aka booting - e.g. PC power on self-test (POST)
- integrity is mandatory
- implement error detection and correction
- 📝 version control: labeling software releases so end user knows what they are using
Configuration Management
- 📝 exercise rational control over changes to software
Organizing the Configuration Management Process
Three separate roles
- customer role: maintenance of product after release
- supplier role: managing configuration prior to release
- writes configuration management plan in conjunction with customer org
- subcontractor role: if product developed through supply chain
Configuration Management Plan
- should specify change management, baseline management, and verification management roles
- versioning, backup, check-in/check-out processes, change control
Configuration Management Process
- purpose: establish and maintain integrity of software items
- 📝 common way of tracking changes is through a configuration management database (CMDB)
- also called configuration management system (CMS)
- CMS is required for ISO/IEC 15408 (common criteria) accreditation
Process implementation
- create a fully documented plan for the entire lifecycle of the configuration management process
Configuration identification
- identify software items included in baselines
- create formal documentation with baseline version designations for each software item
Configuration control
- change management
- need authorization before changes are incorporated into baseline
- required for auditing
Configuration status accounting
- status and history for all controlled software items, including baselines
Configuration evaluation
- certify correctness of change after change is complete
- use statement of work (SOW) to verify
Release management and delivery
Product Baseline Repositories:
- Controlled: current baseline, strictly controlled
- Dynamic: un-trusted baselines being developed by programmers
- Archive: past baselines, collective memory of the IT function