Software Development Security
Software Development Security
Review:
Software Development
Security Domain
Version: 5.9
CISSP Common Body of Knowledge Review by Alfred Ouyang is licensed under the Creative Commons
Attribution-NonCommercial-ShareAlike 3.0 Unported License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite
900, Mountain View, California, 94041, USA.
Learning Objective
-2-
Application Development Security
80000
70000
60000
50000
40000
30000
20000
10000
0
FY’05 FY’06 FY’07 FY’08 FY’09 FY’10 FY’11
1. Unauthorized Access 304 706 2,321 3,214 4,848 5,782 6,959
2. Denial of Service 31 37 36 26 48 28 33
3. Malicious Code 1,806 1,465 1,607 2,274 6,977 12,926 11,556
4. Improper Usage 370 638 3,305 3,762 6,148 7,334 8,372
5. Scans/Probes/Attempted Access 976 1,388 1,661 1,272 1,152 69,832 66,057
6. Under Investigation 82 912 4,056 7,502 10,826 11,534 13,601
* Source: US-CERT
4
Application Development Security
50000
40000
30000
20000
10000
0
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011
-6-
Governance & Management
Executive Orders
Organizational
DoD Directives
Policies
Joint Doctrines
Process &
Procedure: Baselines: Guidelines:
Process & Baselines Standards:
Standards Guidelines DITSCAP / MAC Security DISA STIGs
Procedure (/ Process) DoD Regulations
DIACAP Controls NSA SNAC SCGs
SIPRNet CAP
-7-
Governance & Management
Stakeholder
Project Planning
encompasses: Acquisition Process
Process
Requirements
Definition Process
Disposal Process
* Note: ISO/IEC 15288 is identical to IEEE Std 15288
- 11 -
Governance & Management
0 1 2 3 4 5
Not Performed Planned & Well Qualitatively Continuously
Performed Informally Tracked Defined Controlled Improving
Base practices performed Committing to perform Defining a standard Establishing measurable Establishing quantitative
Planning performance process quality goals process effectiveness goals
Tracking performance Tailoring standard process Determining process Improving process
Verifying performance Using data capability to achieve goals effectiveness
Perform a defined process Objectively managing
performance
- 13 -
Governance & Management
Assurance
Functional
Requirements
Requirements • Meeting the functional
For establishing
For defining security
behavior of the IT
confidence that the requirements is a part of “due
product or system.
security function will
perform as intended. care” processes.
– Example:
• VLAN technology shall be created
to partition the network into multiple
mission-specific security domains.
• The integrity of the internetworking
architecture shall be preserved by
the access control list (ACL).
- 15 -
Governance & Management
- 16 -
Governance & Management
- 18 -
Topics
- 19 -
System/Software Development Life Cycle (SDLC)
- 20 -
System/Software Development Life Cycle (SDLC)
Requirements Requirements
Design Design
Implementation Implementation
Verification Verification
Maintenance Maintenance
- 21 -
System/Software Development Life Cycle (SDLC)
Reference: http://csse.usc.edu/people/barry.html - 22 -
System/Software Development Life Cycle (SDLC)
- http://www.cs.bgsu.edu/maner/domains/RAD.htm
design process, coding, test & integration, technical and
project reviews etc.
Reference:
- 23 -
System/Software Development Life Cycle (SDLC)
Reference: B. Boehm, J.A. Lane, Using the Incremental Commitment Model to Integrate System Acquisition,
Systems Engineering, and Software Engineering, CrossTalk, October 2007.
- 24 -
System/Software Development Life Cycle (SDLC)
Reference: http://en.wikipedia.org/wiki/Systems_engineering_process - 25 -
System/Software Development Life Cycle (SDLC)
- 26 -
System/Software Development Life Cycle (SDLC)
Software
Process Software
Acceptance
Implementation Installation
Support
Project
System
Software Software
Requirements Qualification
Analysis Testing
Software
Software
Architectural
Integration
Design
Software
- 27 -
System/Software Development Life Cycle (SDLC)
Stakeholder
Project Planning
encompasses: Acquisition Process
Process
Requirements
Definition Process
Disposal Process
* Note: ISO/IEC 15288 is identical to IEEE Std 15288
- 28 -
System/Software Development Life Cycle (SDLC)
Organizational
Risk Management Implementation Software Detailed Software Verification
Project-Enabling Process Process Design Process Process
Processes
Life Cycle Model Configuration Software Construction Software Validation
Integration Process
Management Process Management Process Process Process
Quality Management
Process
Operation Process Software Reuse Processes
Reuse Asset
Disposal Process
Management Process
- 29 -
System/Software Development Life Cycle (SDLC)
Fabrication
Assembly,
System Preliminary Detailed
Integration
Definition Design Design
& Test
(FAIT)
- 30 -
System/Software Development Life Cycle (SDLC)
Process
Inputs
Requirement and constrain
Requirements
Analysis
Output Requirements Baseline
Validated
Requirements Output
Requirements Baseline
Verification
IEEE 1220: System Life Cycle (SLC)
ut
Inp
Decomposition and
requirement allocation
alternatives
Verified Functional
Output
Functional Verification Architecture
ut
Inp
Fabrication Design solution
requirements and
Assembly, alternatives
System Preliminary Detailed
Integration
Definition Design Design Output Physical Architecture
& Test
Design Assessment Synthesis
(FAIT)
Verified Physical
Output
System Engineering Process (SEP) Design Verification Architecture
ut
Inp
Output:
Reference: IEEE STD 1220: Standard for Application and System
Development
Management of the Systems Engineering Process Specification
- 31 -
System/Software Development Life Cycle (SDLC)
Fabrication
Assembly,
System Preliminary Detailed
Integration
Definition Design Design
& Test
(FAIT)
- 33 -
System/Software Development Life Cycle (SDLC)
PHASE 6:
• Key Deliverables
PHASE 2:
–
ASSESS EFFECTIVENESS
DEFINE
SYSTEM
Mission Needs Statement / Project Goal(s) and
REQUIREMENTS
Objectives
PHASE 3:
DESIGN
SYSTEM
ARCHITECTURE
– System Capabilities
PHASE 4: – Preliminary CONOPS
DEVELOP
DETAILED
DESIGN – Preliminary System Context Descriptions
USERS/USERS’
REPRESENTATIVES
PHASE 5:
IMPLEMENT
– Project Risk Assessment
–
SYSTEM
Draft System Engineering Management Plan
(SEMP)
37
DoD
IEEE 1220 Acquisition Key System Engineering Tasks Key Security Engineering Tasks
SDLC
Task 2: Define System Requirements Task 2: Define Security Requirements
• Refine system context (e.g., functional components)
Technology • Define system requirements (e.g., functional, performance, • Select assurance requirements and define security
Development operational, support, etc.) functional requirements
• Refine CONOPS • Refine IMM and SSP
• Baseline system requirements
Milestone B Task 6: Assess project performance in meeting mission/business needs
Task 3: Design System Architecture Task 3: Design System Security Architecture
• Determine & select architecture framework
Development
• Design system architecture and allocate system • Allocate system security requirements to subsystems and
Stage
requirements to subsystems and components (i.e., RTM) service components (i.e., RTM)
System
• Analyze gaps (i.e., risk assessment)
Development
Task 4: Develop Detailed System Design (Logical & Task 4: Develop Detailed System Security Design (Logical
&
Physical) & Physical)
Demonstration
• Refine entity-data relations model (i.e., UML diagrams, • Refine IMM, embed security controls into system design
data-flow, network, etc.) products (i.e., UML, data-flow, network, etc.)
• Perform system synthesis analysis to assure system integration (i.e., system design, system architecture, system
requirements, and project mission/business needs)
Milestone C Task 6: Assess project performance in meeting mission/business needs
PHASE 1:
DISCOVER
NEEDS
• Key Deliverables
PHASE 2:
PHASE 6:
ASSESS EFFECTIVENESS
– System Requirements
DEFINE
SYSTEM
REQUIREMENTS – Functional Definitions (+ allocation of system
PHASE 3: requirements)
DESIGN
SYSTEM
ARCHITECTURE – System Architecture (Contextual + Logical)
PHASE 4:
DEVELOP – Detailed System Design (Logical + Physical)
DETAILED
USERS/USERS’
DESIGN
– Requirements Traceability Matrix (RTM)
REPRESENTATIVES
PHASE 5:
IMPLEMENT
SYSTEM
38
DoD
IEEE 1220 Acquisition Key System Engineering Tasks Key Security Engineering Tasks
SDLC
Task 5: Implement System Design Task 5: Implement Security Controls
• Procure system components / construct system
• Code/ customize/ configure system functional components
• Conduct code inspection/ walk-through/ unit test
• Perform system integration
Production • Conduct system test • Conduct security test & evaluation (ST&E)
Production
and Task 6: Assess project performance in meeting mission/business needs
Stage
Deployment • Generate system operations procedure (SOP) and users • Generate SOP (a.k.a. trusted facility manual (TFM)),
guide/ manual Incident response plan, business continuity plan (BCP)
• Conduct system readiness review • Obtain system certification
• Deploy system
• Conduct system acceptance test • Assess security effectiveness
• Obtain approval to operate (ATO)
PHASE 1:
DISCOVER
NEEDS
• Key Deliverables
PHASE 2:
PHASE 6:
ASSESS EFFECTIVENESS
– Implement detailed system design
–
DEFINE
SYSTEM
REQUIREMENTS
Perform test & evaluations (unit, system, security
PHASE 3:
tests)
DESIGN
SYSTEM
ARCHITECTURE – Test reports
PHASE 4:
DEVELOP
– Standard Operating Procedure (SOP) + User
DETAILED
DESIGN Manuals
USERS/USERS’
REPRESENTATIVES
PHASE 5:
IMPLEMENT
– Deploy system
SYSTEM
– Conduct acceptance tests
39
System/Software Development Life Cycle (SDLC)
Reference: http://www.ibm.com/developerworks/webservices/library/ws-soa-term2/
- 40 -
System/Software Development Life Cycle (SDLC)
w me nt
w me s
ie w
vie it ion
vie it me
vie it ns
vie it ns
nt
nt
nt
nt
v
Re omm atio
Re omm atio
Re omm dat
Re omm lop
w me
w me
Re
C oun
C eve
C per
C per
BR
O
D
OT
F
MS 1 MS 2 MS 3 MS 4 MS 5
t
pt
ep
ce
nc
M
on
Co
CA
w
rm VM III:
em io V:
io C
lo
or :
s W IV
on II:
&
at t I :
to
kf
at ed nt
st rat nt
iti nt
es nt
Pl rust me
Sy teg me
or n
n
n
pl me
fin me
oc me
T cre
In cre
Ex cre
De cre
Pr cre
In
In
In
In
In
fo
Major Activities
Concurrent risk and Initial scoping System life cycle Develop Increment III Develop Increment IV Develop Increment V From preceding
opportunity-driven Concept definition architecture and prototype prototype prototype phase
growth of system CONOPS Objectives
Investment analysis Exercise Increment III Exercise Increment IV Exercise Increment V
understanding and Build to increment prototype prototype prototype
definition 1. Requirements System
plans and Rebaseline system Rebaseline system Transition into analysis Requirements
specifications features & capabilities features & capabilities operations
(if necessary) Plan for future release Requirements
(if necessary)
2. Functional System
Evaluation of OTBR Package Updated PIP Prototype Prototype Prototype definition Architecture
evidence of feasibility Draft PIP CONOPS Updated PIP Updated PIP Operational Transition
to proceed Plan Functions
Conceptual Updated CONOPS System Design
Architecture System Architecture Updated System Reqs. Updated System 3. Physical
System Reqs. & & Functional Specs. Design Baseline System Design
Updated System Reqs. definition
Functional Specs. & Functional Specs. User features requests
System model
Stakeholder review & High, but 4. Design
commitment addressable Acceptable Prototype
validation
Risk? Risk? Risk? Risk?
Negligible
Too high,
unaddressable
To next phase
- 42 -
Questions:
• What are the relationships between SDLC models
and SSE-CMM models?
– SDLC describes… to a system acquisition project
– SSE-CMM describes…
- 43 -
Answers:
• What are the relationships between SDLC models
and SSE-CMM models?
– SDLC describes the key engineering process to a system
acquisition project
– SSE-CMM describes the key security and management
processes to a security engineering practice
- 44 -
Topics
- 45 -
Software Environment and Security Controls
Reference Monitor
• Reference monitor is performed by a reference
validation mechanism.
• Reference validation mechanism is a system
composed of hardware and software.
• Operating condition principles:
– The reference validation mechanism must be tamper proof.
– The reference validation mechanism must always be
invoked.
– The reference validation mechanism must be small enough
to be subject to analysis and tests to assure that it is correct.
• OS shall be evaluated at TCSEC B2 (i.e. structured
protection) and above.
- 47 -
Software Environment and Security Controls
Secure Kernel
• Secure kernel is an
implementation of a reference
monitoring mechanism responsible In the kernel model, the inside layer
controls basic OS services, such as:
for enforcing security policy. - memory management,
- security,
- I/O,
- request management, etc.
0
1
2 Ring 3
Applications
3
- 50 -
Software Environment and Security Controls
Ring 2
0 OS utilities
1
2 Ring 3
Applications
3
vcenter/index.jsp?topic=/com.vmware.vsphere.intro.doc_41/c_vmware_infrastructure_intr
– Virtual Machine File System (VMFS) for abstraction of data
storage
– vNetwork Distributed Switch (vDS) for abstraction of network
layer
– vMotion for distribution of processing power and high
availability
Reference: http://pubs.vmware.com/vsphere-4-esx-
oduction.html
- 53 -
Software Environment and Security Controls
Reference: Official (ISC)2 Guide to The CISSP CBK, H. Tipton, et. al., (ISC)2
Press, Auerbach Publications, 2007. - 55 -
Software Environment and Security Controls
Memory Protection
• Memory protection is enforcement of access control
and privilege level to prevent unauthorized access to
OS memory.
• Countermeasures:
– Ensure all system-wide data structures and memory pools
used by kernel-mode system components can only be
accessed while in kernel mode.
– Separate software processes, protect private address space
from other processes.
– Hardware-controlled memory protection
– Use Access Control List (ACL) to protect shared memory
objects.
- 57 -
Software Environment and Security Controls
* Note: While the definition of covert channel may be old, it is considered as “fundamental” in CISSP CBK.
- 58 -
Software Environment and Security Controls
Object A B C D E F G
A N/A X
B N/A X
C X N/A
D N/A X
E X N/A
F N/A X
G X N/A
- 59 -
Software Environment and Security Controls
Cryptography
• Cryptography provides confidentiality, integrity,
authentication, and non-repudiation in information
operations.
– Asymmetric Key Cryptography
– Because of slow cipher operation speed, it is mostly used for
key management function.
– Symmetric Key Cryptography
– Because of speed, symmetric-key cryptosystems are used for
crypto. operations. E.g. SSL/TLS at Transport-level
(communication path), e-mail & SOAP messages at message-
level.
– Hash Function
– Message Digest
– Message Authentication Code (MAC)
– Key-hashed MAC (HMAC)
– Digital Signature
- 60 -
Software Environment and Security Controls
- 61 -
Software Environment and Security Controls
Granularity of Controls
• Separation of duties means that a process is
designed so that separate steps must be performed
by different people (i.e. force collusion)
– Define elements of a process or work function.
– Divide elements among different functions
• Least privilege is a policy that limits both the system’s
user and processes to access only those resources
necessary to perform assigned functions.
– Limit users and system processes to access only resources
necessary to perform assigned functions.
• Separation of system environments.
– Development environment.
– QA/test environment.
– Production or operational environment.
- 62 -
Software Environment and Security Controls
- 64 -
Questions:
• What are the three operating condition principles for
a reference monitor?
–
–
–
- 65 -
Answers:
• What are the three operating condition principles for
a reference monitor?
– must be tamper proof
– must always be invoked
– subject to analysis and tests
- 66 -
Questions:
• What causes buffer overflow?
–
- 67 -
Answers:
• What causes buffer overflow?
– When a program or process that lacks parameter
enforcement control tries to store more data in a buffer than
it was intended to hold
- 68 -
Questions:
• Program that allows the information owner to
determine who has what type of access and privilege
is an implementation of what type of access control?
–
- 69 -
Answers:
• Program that allows the information owner to
determine who has what type of access and privilege
is an implementation of what type of access control?
– Discretionary access control (DAC)
- 70 -
Topics
- 71 -
Programming Languages
• A set of instructions and rules that tell the computer
what operations to perform.
• Languages have evolved in “generations”
– 1st Generation: Machine language
– 2nd Generation: Assembly language
– 3rd Generation: High-level language
• COBOL, BASIC, FORTRAN, Pascal, C, C+, C++, C#, Java
– 4th Generation: Very high-level language
• SQL, JavaScript, Perl, SGML (Standard General Markup
Language): HTML, XML, SAML, XACML.
– 5th Generation: Natural language
• BPEL (Business Process Execution Language), BQEL
(Business Query Language)
- 72 -
Programming Languages
• Assembler – program that translates an assembly
language program into machine language.
– Assembly Language Machine Language.
- 73 -
Programming Languages
- 74 -
Programming Languages
- 75 -
Programming Languages
- 76 -
Programming Languages
- 77 -
Programming Languages
2. Policy implemented
here.
1. Client Policy
application sends Enforcement Code 3. Target Object
message.
- 78 -
Programming Languages
- 80 -
Programming Languages
Source: http://technet.microsoft.com/en-us/library/cc722925.aspx - 81 -
Programming Languages
- 82 -
Programming Languages
ActiveX
• A loosely defined set of technologies developed by
Microsoft. ActiveX is a set of technologies that
enables interactive contents for web.
• Elements of ActiveX technologies:
– ActiveX Controls: interactive objects in a web page that
provides user interaction functions.
– ActiveX Documents: enable user to view non-HTML
documents (e.g. Word, Excel, or PPT)
– ActiveX Scripting Controls: integrated controls for ActiveX
controls and/or Java Applets from web browser or server.
– Java Virtual Machine (JVM): enables web browser (IE) to run
Java applets and integrate with ActiveX controls.
– ActiveX Server Framework: provide web server functions to
support the above functions plus objects for database
access and online transactions.
- 83 -
Programming Languages
Source: http://java.sun.com/javase/javasemap-lg.html
Java Platforms
• Java is designed as a standard application “platform”
for computing in a networked heterogeneous
environment (developed by Sun Microsystems.)
• Java is a high-level programming language. Java
source code are compiled into bytecode, which can
then be executed by a Java interpreter.
• Java has three
platforms:
– Java SE
(Standard Edition)
– Java EE
(Enterprise Edition)
– Java ME
(Micro Edition)
- 84 -
Programming Languages
Source: http://docs.oracle.com/cd/E19879-01/820-
4343/abeat/index.html
- 85 -
Programming Languages
Source: http://www.javaworld.com/javaworld/jw-01-2008/images/tomcat6_1.jpg - 86 -
Questions:
• COBOL, FORTRAN, C, C+, C++, C# are what
generation programming languages?
–
- 87 -
Answers:
• COBOL, FORTRAN, C, C+, C++, C# are what
generation programming languages?
– 3rd Generation
- 88 -
Questions:
• In object-oriented programming (OOP), what tells the
system how to make object(s)?
–
- 89 -
Questions:
• In object-oriented programming (OOP), what tells the
system how to make object(s)?
– Class
- 90 -
Topics
- 91 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
- 92 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
DBMS Models
• Hierarchical DBMS
– Stores information records (data) in a single table
– Uses parent/child relationships
– Limited to a single tree, no links between branches
• Network DBMS
– Relationship of information records are of same type
– All associations are direct connects, which forms a network
• Relational DBMS
– Information records are structured in tables
– Columns are the “attributes”, Rows are the “records”
• Object-oriented DBMS & object relational DBMS
– Information records are objects
– Relationships of objects are dynamic. The association can
be made hierarchical, network, or relational
- 93 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
Primary Key
- 94 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
- 95 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
Foreign Key
- 96 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
- 97 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
- 98 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
OODBMS &ORDBMS
• Class is a set of objects which shares a common
structure and behavior. The relationship between
classes can be hierarchical. (i.e. super-class, and
subclass.)
- 99 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
OODBMS &ORDBMS
• Object-oriented database (OODB) represents a
“paradigm-shift” in the traditional database models
(hierarchical, network, and relational).
– Example of OODBMS: Versant.
• Object relations are build dynamically based on
“business needs” instead of a series of fixed
“business processes”.
– Currently, the foundational DBMS engine for most of
ORDBMS are still RDBMS. Object relations are build:
• Presentation Layer: User/client level.
• Business Logic Layer: Accepts commands from the
presentation layer and send instructions to the data layer.
• Data Layer: The database.
– Example of ORDBMS: Oracle (8i, 9i, 10g), IBM DB2.
- 100 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
• Data Mining
– A.k.a. Knowledge-discovery in databases (KDD).
– Practice of automatically searching large stores of data for
patterns.
– Data mining tools are used to find associations and
correlations to product Metadata and can show previously
unseen relationships.
- 101 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
Database Controls
• Granularity - The degree to which access to objects
can be restricted.
- 102 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
Database Controls
• Partitioning – Involved dividing a database into
different parts which makes it harder for an individual
to find connecting pieces
• Noise and perturbation – A technique of inserting
bogus information aimed at misdirecting or confusing
an attacker
• Concurrency – allowing multiple users to access the
data contained within a database at the same time.
– Making sure the most up to date information is available
– If concurrent access is not managed by the Database
Management System (DBMS) so that simultaneous
operations don't interfere with one another problems can
occur when various transactions interleave, resulting in an
inconsistent database.
- 103 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
- 104 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
- 105 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
- 106 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
- 107 -
Database and DB Warehousing Vulnerabilities, Threats, and Protections
Database Threats
• Aggregation
– The act of combining information from separate sources.
– The combined information has a sensitivity level greater that
any of the individual parts.
• Inference
– A user deduces (infers or figures out) the full story from
pieces learned through aggregation and other sources.
– Differs from aggregation in that data not explicitly available is
used during the act of deduction (inference or plain figuring it
out).
• Deadlocking
– Two processes have locks on separate objects and each
process is trying to acquire a lock on the object the other
process has.
- 108 -
Questions:
• What are the four types of database management
system (DBMS) models?
–
–
–
–
- 109 -
Answers:
• What are the four types of database management
system (DBMS) models?
– Hierarchical
– Network
– Relational
– Object-oriented
- 110 -
Questions:
• For RDBMS, how is the relationship between
database tables created?
–
- 111 -
Answers:
• For RDBMS, how is the relationship between
database tables created?
– When an attribute of a database table is also an attribute of
another database table
- 112 -
Questions:
• For granularity access control, what are the two
content dependent access control implementations
for a DBMS?
–
–
- 113 -
Answers:
• For granularity access control, what are the two
content dependent access control implementations
for a DBMS?
– Permissions by view
– Cell suppression
- 114 -
Topics
- 115 -
Vulnerability & Threats
Indirectly affects
threat source.
• Risk. The likelihood of a threat Risk
Reduces/
source take advantage of a Eliminates
vulnerability. Asset
Can damage
• Exposure. An instance of being
compromised by Threat Source. Exposure
And causes an
• Countermeasure / safeguard.
Counter
An administrative, operational, or measure
Can be countered by a
logical mitigation against
potential risk(s).
- 116 -
Vulnerability & Threats
Reference: http://cwe.mitre.org/top25/index.html
- 119 -
Vulnerability & Threats
Reference: http://cwe.mitre.org/top25/index.html
- 120 -
Vulnerability & Threats
Indirectly affects
Develop detailed system design & security controls
Risk
Reduces/
Eliminates
Focus on software structural defects (flaws) Focus on software weaknesses (bugs) - 121 -
Vulnerability & Threats
Reference:
• * A First Step Towards Automated Detection of Buffer Over-run Vulnerabilities, D. Wagner, et. al., 2000.
• 2011 CWE/SANS Top 25 Most Dangerous Programming Errors, MITRE, September 2011.
- 122 -
Vulnerability & Threats
Reference: 2011 CWE/SANS Top 25 Most Dangerous Programming Errors, MITRE, September 2011.
- 123 -
Vulnerability & Threats
Reference: 2011 CWE/SANS Top 25 Most Dangerous Programming Errors, MITRE, September 2011.
- 124 -
Vulnerability & Threats
- 125 -
Vulnerability & Threats
- 127 -
Vulnerability & Threats
- 128 -
Validation Time…
1. Classroom Exercise
2. Review Answers
- 129 -
Classroom Exercise: Constructing a Security Engineering
Project… (1/5)
Systems Engineering (SE) Activities Security Engineering (ISSE) Activities
Discover Mission/Business Needs Discover Information Protection Needs
The SE helps the customer understand and document the The ISSE facilitates the system owners, architects, and
information management needs that support the business or engineers in assessing the information protection needs by
mission. Statements about information needs may be performing risk assessment, capturing the information
captured in an information management model (IMM). management model (IMM), defining the information protection
policy (IPP) and compile them into a comprehensive
information management plan (IMP).
Define System Requirements Define System Security Requirements
The SE allocates identified needs to systems. A system The ISSE allocates the information protection needs in
context is developed to identify the system environment and accordance with the information management plan (IMP) that
to show the allocation of system functions to that aligns with a preliminary system security concept of
environment. A preliminary system Concept of Operations operations (CONOPS) and generates a set of baseline
(CONOPS) is written to describe operational aspects of the security requirements in accordance with FIPS 200.
candidate system (or systems). Baseline requirements are
established.
Design System Architecture Design System Security Architecture
The SE performs functional analysis and allocate by The ISSE works in conjunction with system architect and
analyzing candidate architectures, allocating requirements, engineers in defining a system architecture using the
and selecting mechanisms. The system engineer identifies designated system architecture framework to explain the
components or elements, allocates functions to those system architecture at the conceptual and logic levels in
elements, and describes the relationships between the meeting the defined baseline security requirements.
elements.
- 130 -
Classroom Exercise: Constructing a Security Engineering
Project… (2/5)
Systems Engineering (SE) Activities Security Engineering (ISSE) Activities
Develop Detailed System Design Develop Detailed Security Design
The SE analyzes design constrains, analyzes trade-offs, does The ISSE analyzes the design constrains, trade-offs from the
detailed system design, and considers life-cycle support. The system architecture and begin to work with system architect
systems engineer traces all of the system requirements to the and engineers to define detailed system design.
elements until all are addressed. The final detailed design
results in component and interface specifications that provide
sufficient information for acquisition where the system is
implemented.
Implement System Implement System Security
The SE moves the system from specifications to the tangible. The ISSE works with SE in implementing the baseline
The main activities are acquisition, integration, configuration, detailed system design. The information systems security
testing, documentation, and training. Components are tested engineer provide inputs to the certification and accreditation
and evaluated to ensure that they must meet the (C&A) process and verify the implemented system design
specifications. After successful testing, the individual meets the defined baseline security requirements against the
components – hardware, software, and firmware – are identified threats .
integrated, properly configured, and tested as a system.
Assess System Effectiveness Assess System Security Effectiveness
The results of each activity are evaluated to ensure that the The ISSE focuses on the effectiveness of the implemented
system will meet the user’s needs by performing the required security controls and countermeasures, and validates them
functions to the required quality standard in the intended against the defined information management plan (IMP).
environment. The systems engineer examines how well the
system meets the needs of the mission.
- 131 -
Classroom Exercise: Constructing a Security Engineering
Project… (3/5)
1. Discovering the Information Protection Needs
1.1 Collect & analyze system information:
Business/Mission Needs, high-level concept of
information operations, data sensitivity, mode of
operations, etc.
1.2 Perform Risk Assessment of the “to-be” information
system
1.3 Generate Information Management Model (IMM)
1.4 Generate Information Protection Policy (IPP)
1.5 Assemble Information Management Plan
2. Defining the System Security Requirements
2.1 Define security context description (i.e. scope)
2.2 Generate system security requirements: functional &
assurance
- 132 -
Classroom Exercise: Constructing a Security Engineering
Project… (4/5)
3. Designing the System Security Architecture
3.1 Describe the Conceptual Security Architecture
3.2 Describe the Logical Security Architecture
3.3 Describe the Physical Security Architecture
4. Developing the Detailed System Security Design
4.1 Describe the Security Architecture at the components
level
4.1.1 Defending the Network & Infrastructure
4.1.2 Defending the Enclave Boundary
4.1.3 Defending the Computing Environment
4.1.4 Supporting the IT Infrastructure
- 133 -
Classroom Exercise: Constructing a Security Engineering
Project… (5/5)
5. Implementing the System Security
5.1 Implement system design for defending the network
infrastructure
5.2 Implement system design for defending the enclave
boundary
5.3 Implement system design for defending the computing
environment
5.4 Implement system design for supporting the IT
Infrastructure
6. Assessing the Security Effectiveness
6.1 Perform analysis on Security Requirements Traceability
matrix (S-RTM)
6.2 Verify conformance of system design to S-RTM
6.3 Validate security implementation to S-RTM
6.4 Support Security Certification & Accreditation (C&A)
Team
- 134 -
Group 1: Waterfall SDLC Model
Verification
- 135 -
Group 1: Waterfall SDLC Model
1.3
1.0 ? ? 1.5
1.4
Req. ? ? ?
?
Dsgn. 6.1
?
3.1 ? ? 4.0 4.1
?
Impl. 6.2
5.0 5.1 ? ?
6.3 ?
- 136 -
Group 2: DoD-STD-2167A (V-Model)
Project
ISSE Phase 2: Define Security
Requirements System System
System
System
Requirements Architecture Qualification
Integration
Analysis Design Testing
ISSE Phase 3: Design System System
Security Architecture
Software Software
Requirements Qualification
ISSE Phase 6: Assess
Analysis Testing Security Effectiveness
Software
ISSE Phase 5: Implement System Security
- 137 -
Group 2: DoD-STD-2167A (V-Model)
1.3
Prcs. Sys.
1.0 ? ? ? 2.0 ? ? ?
Impl. Req.
1.4 6.1
?
Sys.
3.1 ? ? 4.0 4.1
Arch.
?
SW.
2.0 2.1 2.2
Req.
6.2 ?
6.1
4.1.3
SW.
3.1 ? ? 4.0 ?
Arch.
4.1.4
6.2
Sys.
Intgr.
5.0 5.1 ?
6.3 ?
- 138 -
Group 3: Boehm’s Spiral SDLC Model
ISSE Phase 1
5 e
ISSE
has
EP
Pha
ISS
ISSE Phase 6:
se
Assess Security
2
Effectiveness
IS
e
SE
as
Ph
Ph
SE
as
IS
e
4
- 139 -
Group 3: Boehm’s Spiral SDLC Model
1.3
Risk SW.
1.0 ? ? ? 2.0 ? ?
Anlys Req.
1.4 6.1
Sys.
Plan.
1.3
Risk SW.
1.0 ? ? ? 2.0 ? ?
Anlys Req.
?
1.4 6.1
?
SW.
3.1 ? ? 4.0 4.1
Arch.
?
6.2
Sys.
Intgr.
?
5.0 5.1 ?
Test,
?
Eval.
6.3 ?
- 140 -
Reference
ANSWERS
- 141 -
Group 1: Waterfall SDLC Model
1.3
1.4
Dsgn. 6.1
4.1.2
3.1 3.2 3.3 4.0 4.1
4.1.3
Impl. 6.2
5.3
6.3 5.4
- 142 -
Group 2: DoD-STD-2167A (V-Model)
1.3
Prcs. Sys.
1.0 1.1 1.2 1.5 2.0 2.1 2.2 4.1.1
Impl. Req.
1.4 6.1
4.1.2
Sys.
3.1 3.2 3.3 4.0 4.1
Arch.
4.1.3
SW.
2.0 2.1 2.2
Req.
6.2 4.1.4
6.1
4.1.3
SW.
3.1 3.2 3.3 4.0 4.1
Arch.
4.1.4
6.2
Sys.
Intgr.
5.3
6.3 5.4
- 143 -
Group 3: Boehm’s Spiral SDLC
1.3
Risk SW.
1.0 1.1 1.2 1.5 2.0 2.1 2.2
Anlys Req.
1.4 6.1
Sys.
Plan.
1.3
Risk SW.
1.0 1.1 1.2 1.5 2.0 2.1 2.2
Anlys Req.
4.1.1
1.4 6.1
4.1.2
SW.
3.1 3.2 3.3 4.0 4.1
Arch.
4.1.3
6.2
Sys.
Intgr.
4.1.4
5.0 5.1 5.2
Test,
5.3
Eval.
6.3 5.4
- 144 -