Lecture 1 - School of Information Sciences

Download Report

Transcript Lecture 1 - School of Information Sciences

Assurance
Nov 15, 2005
IS2150/TEL2910: Introduction of Computer Security
1
Overview
Trust
Problems from lack of assurance
Types of assurance
Life cycle and assurance
Waterfall life cycle model
Other life cycle models
IS2150/TEL2910: Introduction of Computer Security
2
Trust
 Trustworthy entity has sufficient credible
evidence leading one to believe that the system
will meet a set of requirements
 Trust is a measure of trustworthiness relying on
the evidence
 Assurance is confidence that an entity meets its
security requirements based on evidence
provided by the application of assurance
techniques
Formal methods, design analysis, testing etc.
IS2150/TEL2910: Introduction of Computer Security
3
Relationships
P olicy
Statement of requirement s that explicit ly defines
t he security expect ations of the mechanism(s)
Assurance
P rovides just ification that the mechanism m eet s polic
t hrough assurance evidence and approvals based on
evidence
Mechanisms
Executable entities t hat are designed and implemented
t o meet t he requirements of the policy
Evaluation standards
Trusted Computer System Evaluation Criteria
Information Technology Security Evaluation Criteria
Common Criteria
IS2150/TEL2910: Introduction of Computer Security
4
Problem Sources (Neumann)
1.
2.
3.
4.
5.
6.
7.
8.
9.
Requirements definitions, omissions, and mistakes
System design flaws
Hardware implementation flaws, such as wiring and chip
flaws
Software implementation errors, program bugs, and
compiler bugs
System use and operation errors and inadvertent mistakes
Willful system misuse
Hardware, communication, or other equipment malfunction
Environmental problems, natural causes, and acts of God
Evolution, maintenance, faulty upgrades, and
decommissions
IS2150/TEL2910: Introduction of Computer Security
5
Examples
 Challenger explosion (1986)
Sensors removed from booster rockets to meet
accelerated launch schedule
 Deaths from faulty radiation therapy system
Hardware safety interlock removed
Flaws in software design
 Bell V22 Osprey crashes
Failure to correct for malfunctioning components; two
faulty ones could outvote a third
 Intel 486 chip bug (trigonometric function)
Cost a lot of time and money
IS2150/TEL2910: Introduction of Computer Security
6
Role of Requirements
Requirements are statements of goals that
must be met
Vary from high-level, generic issues to lowlevel, concrete issues
Security objectives are high-level security
issues and business goals
Security requirements are specific,
concrete issues
IS2150/TEL2910: Introduction of Computer Security
7
Types of Assurance
 Policy assurance is evidence establishing
security requirements in policy is complete,
consistent, technically sound
To counter threats and meet objectives
 Design assurance is evidence establishing
design sufficient to meet requirements of
security policy
 Implementation assurance is evidence
establishing implementation consistent with
security requirements of security policy
Need to use good engineering practices
IS2150/TEL2910: Introduction of Computer Security
8
Types of Assurance
Operational assurance is evidence
establishing system sustains the security
policy requirements during installation,
configuration, and day-to-day operation
Also called administrative assurance
Example,
Do a thorough review of product or system
documentation and procedures, to ensure that
the system cannot accidentally be placed in a
non-secure state.
IS2150/TEL2910: Introduction of Computer Security
9
Assurance steps
Security requirement s
2
3
Design
Assurance
justification
4
Design and
im plem ent at ion
refinement
1
Implement ation
IS2150/TEL2910: Introduction of Computer Security
10
Life Cycle
Conception
Manufacture
Deployment
Fielded Product Life
IS2150/TEL2910: Introduction of Computer Security
11
Conception
 Idea
 Decisions to pursue it
 Proof of concept
 See if idea has merit
 Rapid prototyping, analysis, etc.
 High-level requirements analysis
 What does “secure” mean for this concept?
 Identify threats
 Is it possible for this concept to meet this meaning of
security?
 Is the organization willing to support the additional resources
required to make this concept meet this meaning of security?
IS2150/TEL2910: Introduction of Computer Security
12
Manufacture
 Develop detailed plans for each group involved
May depend on use; internal product requires no sales
Plans: marketing, sales training, development, testing
Software development and engineering process
 Implement the plans to create entity
Includes decisions whether to proceed, for example due
to market needs
 May be the longest stage
IS2150/TEL2910: Introduction of Computer Security
13
Deployment
Delivery
Assure that correct (assured) masters are
delivered to production and protected
Distribute to customers, sales organizations
Installation and configuration
Developers must ensure that the system
operates properly in the production environment
IS2150/TEL2910: Introduction of Computer Security
14
Fielded Product Life
Routine maintenance, patching
Responsibility of engineering in small
organizations
Responsibility may be in different group than
one that manufactures product
Customer service, support organizations
Answering questions; recording bugs
Retirement or decommission of product
Migration plans for customers
IS2150/TEL2910: Introduction of Computer Security
15
Waterfall Life Cycle Model
Requirements definition and analysis
Functional and non-functional
General (for customer), specifications
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
IS2150/TEL2910: Introduction of Computer Security
16
Relationship of Stages
Requirements
definition and
analysis
System and
software
design
Implementation
and unit
testing
Integration
and system
testing
IS2150/TEL2910: Introduction of Computer Security
Operation
and
maintenance
17
Other Models of
Software Development
 Exploratory programming
Develop working system quickly
Used when detailed requirements specification cannot
be formulated in advance, and adequacy is goal
No requirements or design specification, so low
assurance
 Prototyping (Similar to Exploratory)
Objective is to establish system requirements
Future iterations (after first) allow assurance techniques
IS2150/TEL2910: Introduction of Computer Security
18
Models
 Formal transformation
Create formal specification
Translate it into program using correctnesspreserving transformations
Very conducive to assurance methods
 System assembly from reusable components
Depends on whether components are trusted
Must assure connections, composition as well
Very complex, difficult to assure
This is common approach to building secure and
trusted systems
IS2150/TEL2910: Introduction of Computer Security
19
Models
 Extreme programming
Rapid prototyping and “best practices”
Project driven by business decisions
Requirements open until project complete
Programmers work in teams
Components tested, integrated several times a day
Objective is to get system into production as quickly as
possible, then enhance it
Evidence adduced after development needed for
assurance
IS2150/TEL2910: Introduction of Computer Security
20
Key Points
Assurance critical for determining
trustworthiness of systems
Different levels of assurance, from
informal evidence to rigorous
mathematical evidence
Assurance needed at all stages of system
life cycle
IS2150/TEL2910: Introduction of Computer Security
21
Threats and Vulnerabilities
 Threat
A potential occurrence that can have an undesirable
effect on the system assets of resources
 Results in breaches in confidentiality, integrity, or a denial
of service
 Example: outsider penetrating a system is an outsider
threat (insider threat?)
 Need to identify all possible threats and address them to
generate security objectives
 Vulnerability
 A weakness that makes it possible for a threat to occur
IS2150/TEL2910: Introduction of Computer Security
22
Architectural considerations
Determine the focus of control of security
enforcement mechanism
Operating system: focus is on data
Applications: more on operations/transactions
Centralized or Distributed
Distribute them among systems/components
Tradeoffs?
Generally easier to “assure” centralized system
Security mechanism may exist in any layer
IS2150/TEL2910: Introduction of Computer Security
23
Architectural considerations
Example: Four layer architecture
 Application layer
Transaction control
 Services/middleware layer
Support services for applications
Eg., DBMS, Object reference brokers
 Operating system layer
Memory management, scheduling and process control
 Hardware
Includes firmware
IS2150/TEL2910: Introduction of Computer Security
24
Architectural considerations
 Select the correct layer for a mechanism
Controlling user actions may be more effective at
application layer
Controlling file access may be more effective at the
operating system layer
 Recall PEM!
 How to secure layers lower to target layer
Application security means OS security as well
Special-purpose OS?
All DBMSs require the OS to provide specific security
features
IS2150/TEL2910: Introduction of Computer Security
25
Build or Add?
 Security is an integral part of a system
 Address security issues at system design phase
 Easy to analyze and assure
 Reference monitor (total mediation!)
 Mediates all accesses to objects by subjects
 Reference validation mechanism must be–
1. Tamperproof
2. Never be bypassed
3. Small enough to be subject to analysis and testing –
the completeness can be assured
 Security kernel
 Hardware + software implementing a RM
IS2150/TEL2910: Introduction of Computer Security
26
Trusted Computing Base
 TCB consists of all protection mechanisms
within a computer system that are responsible
for enforcing a security policy
 TCB monitors four basic interactions
Process activation
Execution domain switching
Memory protection
I/O operation
 A unified TCB may be too large
Create a security kernel
IS2150/TEL2910: Introduction of Computer Security
27
Security Policy Requirements
 Can be done at different levels
 Specification must be
 Clear
 “meet C2 security”
 Unambiguous
 “users must be identified and authenticated”
 Complete
 Methods of defining policies
 Extract applicable requirements from existing security standards
(e.g. Common Criteria)
 Create a policy based on threat analysis
 Map the system to an existing model
 Justify the requirements: completeness and consistency
IS2150/TEL2910: Introduction of Computer Security
28
Design assurance
Identify design flaws
Enhances trustworthiness
Supports implementation and operational
assurance
Design assurance technique employs
Specification of requirements
Specification of the system design
Process to examine how well the design meets
the requirement
IS2150/TEL2910: Introduction of Computer Security
29
Techniques for Design Assurance
 Modularity & Layering
 Well defined independent modules
 Simplifies and makes system more understandable
 Data hiding
 Easy to understand and analyze
 Different layers to capture different levels of abstraction
 Subsystem (memory management, I/O subsystem, creditcard processing function)
 Subcomponent (I/O management, I/O drivers)
 Module: set of related functions and data structure
 Use principles of secure design
IS2150/TEL2910: Introduction of Computer Security
30
Design Documents
 Design documentation is an important component in life
cycle models
 Documentation must specify
 Security functions and approach
 Describe each security function
 Overview of a set of security functions
 Map to requirements (tabular)
 External interfaces used by users
 Parameters, syntax, security constraints and error conditions
 Component overview, data descriptions, interface description
 Internal design with low-level details
 Overview of the component
 Detailed description of the component
 Security relevance of the component
IS2150/TEL2910: Introduction of Computer Security
31
Design meets requirements?
 Techniques needed
To prevent requirements and functionality from being
discarded, forgotten, or ignored at lower levels of design
 Requirements tracing
Process of identifying specific security requirements that
are met by parts of a description
 Informal Correspondence
Process of showing that a specification is consistent
with an adjacent level of specification
IS2150/TEL2910: Introduction of Computer Security
32
Requirement mapping and informal
correspondence
Security Functional Requirements
External Functional Specification
Internal Design Specification
Requirement
Tracing
Informal
Correspondence
Implementation Code
IS2150/TEL2910: Introduction of Computer Security
33
Design meets requirements?
 Informal arguments
Protection profiles
 Define threats to systems and security objectives
 Provide rationale (an argument)
Security targets
 Identifies mechanisms and provide justification
 Formal methods: proof techniques
Formal proof mechanisms are usually based on logic
(predicate calculus)
Model checking
 Checks that a model satisfies a specification
IS2150/TEL2910: Introduction of Computer Security
34
Design meets requirements?
Review
When informal assurance technique is used
Usually has three parts
Reviews of guidelines
Conflict resolution methods
Completion procedures
IS2150/TEL2910: Introduction of Computer Security
35
Implementation considerations for
assurance
 Modularity with minimal interfaces
 Language choice
C programs may not be reliable
 Pointers – memory overwrites
 Not much error handling
 Writing past the bounds of memory and buffers
• Notorious for Buffer overflow!
Java
 Designed to support secure code as a primary goal
 Ameliorates C security risks present in C
 Sandbox model (mobile code security)
IS2150/TEL2910: Introduction of Computer Security
36
Assurance through Implementation
management
Configuration management tools
Control of the refinement and modification of
configuration items such as source code,
documentation etc.
CM system functions
Version control and tracking
Change authorization
Integration procedures
Tools for product generation
CVS?
IS2150/TEL2910: Introduction of Computer Security
37
Implementation meets Design?
 Security testing
 Functional testing (FT) (black box testing)
 Testing of an entity to determine how well it meets its
specification
 Structural testing (ST) (white box testing)
 Testing based on an analysis of the code to develop test cases
 Testing occurs at different times
 Unit testing (usually ST): testing a code module before
integration
 System testing (FT): on integrated modules
 Security testing: product security
 Security functional testing (against security issues)
 Security structural testing (security implementation)
 Security requirements testing
IS2150/TEL2910: Introduction of Computer Security
38
Code development and testing
Code
Unit test
Code
Code
bugs
Test the test
On current build
Integrate tested
test into automated
Test suite
Integrate
Build system
Build test suite
Execute system
Test on current Build
IS2150/TEL2910: Introduction of Computer Security
39
Operation and maintenance assurance
Bugs in operational phase need fixing
Hot fix
Immediate fix
Bugs are serous and critical
Regular fix
Less serious bugs
Long term solution after a hot fix
IS2150/TEL2910: Introduction of Computer Security
40