4.1 Define the security architecture
» Secure architecture and design patterns (e.g., Sherwood Applied Business Security Architecture (SABSA), security chain of responsibility, federated identity)
» Security controls identification and prioritization
» Distributed computing (e.g., client server, peer-to-peer (P2P), message queuing, N-tier)
» Service-oriented architecture (SOA) (e.g., enterprise service bus, web services, microservices)
» Rich internet applications (e.g., client-side exploits or threats, remote code execution, constant connectivity)
» Pervasive/ubiquitous computing (e.g., Internet of Things (IoT), wireless, location-based, Radio-Frequency Identification (RFID), Near Field Communication (NFC), sensor networks, mesh)
» Embedded software (e.g., secure boot, secure memory, secure update)
» Cloud architectures (e.g., Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS))
» Mobile applications (e.g., implicit data collection privacy)
» Hardware platform concerns (e.g., side-channel mitigation, speculative execution mitigation, secure element, firmware, drivers)
» Cognitive computing (e.g., artificial intelligence (AI), virtual reality, augmented reality)
» Industrial Internet of Things (IoT) (e.g., facility-related, automotive, robotics, medical devices, software-defined production processes)
4.2 Perform secure interface design
» Security management interfaces, out-of-band management, log interfaces
» Upstream/downstream dependencies (e.g., key and data sharing between apps)
» Protocol design choices (e.g., application programming interfaces (API), weaknesses, state, models)
4.3 Evaluate and select reusable technologies
» Credential management (e.g., X.509, single sign-on (SSO))
» Flow control (e.g., proxies, firewalls, protocols, queuing)
» Data loss prevention (DLP)
» Virtualization (e.g., Infrastructure as code (IaC), hypervisor, containers)
» Trusted computing (e.g., Trusted Platform Module (TPM), Trusted Computing Base (TCB))
» Database security (e.g., encryption, triggers, views, privilege management, secure connections)
» Programming language environment (e.g., common language runtime, Java virtual machine (VM), Python, PowerShell)
» Operating system (OS) controls and services
» Secure backup and restoration planning
» Secure data retention, retrieval, and destruction
4.4 Perform threat modeling
» Threat modeling methodologies (e.g., Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege (STRIDE), Process for Attack Simulation and Threat Analysis (PASTA), Hybrid Threat Modeling Method, Common Vulnerability Scoring System (CVSS))
» Common threats (e.g., advanced persistent threat (APT), insider threat, common malware, third-party suppliers)
» Attack surface evaluation
» Threat analysis
» Threat intelligence (e.g., identify credible relevant threats, predict)
4.5 Perform architectural risk assessment and design reviews
4.6 Model (non-functional) security properties and constraints
4.7 Define secure operational architecture (e.g., deployment topology, operational interfaces, Continuous Integration and Continuous Delivery (CI/CD))