Exercise #23: Program Slicing Review

 
EXERCISE #23
 
1
 
PROGRAM SLICING REVIEW
 
Write your name and answer the following on a piece of paper
 
D
raw th
e forward slice from line 2 in following program:
 
ADMINISTRIVIA
AND
ANNOUNCEMENTS
 
 
SSDLC
 
EECS 677: Software Security Evaluation
Drew Davidson
 
CLASS PROGRESS
 
WE’VE EXPLORED FORMAL TECHNIQUES
TO GUARANTEE ABSENCE OF CERTAIN
EXPLOITS
 
4
 
In practice, these tools are part of a larger
discipline of secure software development
 
We’ll (briefly) explore some of these concepts
 
5
 
LAST TIME: PROGRAM SLICING
 
REVIEW: LAST LECTURE
 
E
XTRACT
 
A
 
SUB
-
PROGRAM
 
OF
 
INTEREST
BASED
 
ON
 
ONE
 (
OR
 
MORE
) 
STATEMENTS
 
Forward slice
C
apture all code influenced by a given statement
Backwards slide
Capture all code that influences a given statement
program
 
OVERVIEW
 
WE’VE SEEN THE NECESSITY OF MULTI-
FUNCTION ANALYSIS IN REAL-WORLD
PROGRAMS
 
TIME TO CONSIDER HOW IT IS DONE
 
6
 
LECTURE OUTLINE
 
Human Factors of Security
Security as Process
The Secure Software
Development Lifecycle
8
SECURING SOFTWARE IS HARD!
HUMAN FACTORS OF SECURITY
S
URPRISING
 T
HREAT
 M
ODELS
S
ECURITY
-
DEFICIENT
 
TOOLING
9
BOLT-ON SECURITY
LIFECYCLES
A
TTEMPTING
 
TO
 
RETROFIT
 
A
SECURITY
 
SOLUTION
 
ONTO
 
A
 
LEGACY
SYSTEM
Sometimes necessary
Ideally avoided
 
10
 
VULNERABILITIES IN THE WILD
 
HUMAN FACTORS OF SECURITY
 
11
 
VULNERABILITIES IN THE WILD
 
HUMAN FACTORS OF SECURITY
 
LECTURE OUTLINE
 
Human Factors of Security
Security as Process
The Secure Software
Development Lifecycle
 
13
 
PROCESS IS PROGRESS
 
SECURITY AS PROCESS
 
14
 
CORPORATE SNAKE OIL
 
SECURITY AS PROCESS
 
LIFECYCLES
 
15
 
16
 
SECURITY VS USABILITY
 
SECURITY AS PROCESS
 
A 
FUNDAMENTAL
 
TENSION
 
Occurs within the implementation of software,
occurs within the processes guiding software
development
 
C
ONSIDER
 
WHAT
 
WE
 
OWE
 
USERS
 
Negative externalities
 
LECTURE OUTLINE
 
Human Factors of Security
Security as Process
The Secure Software
Development Lifecycle
 
18
 
THE “REGULAR” SDLC
 
LIFECYCLES
 
S
OFTWARE
 D
EVELOPMENT
 L
IFE
 C
YCLE
 
Requirement analysis
Design
Development
Testing and verification
Deployment
Maintenance and evolution
 
The circle of (software) life
 
19
 
AGILE DEVELOPMENT
 
SDLC: LIFECYCLES
 
20
 
RISK ASSESSMENT AND THREAT MODELS
 
THE SSDLC COMPONENTS
 
C
OMPANION
 
TO
 R
EQUIREMENT
 P
HASE
 
Functional requirement: 
User must verify their own
contact information
Security consideration: M
echanism misuse
- 
Users may attempt to access the contact
information of others
- Users may attempt to subvert the verification
mechanism for harassment
 
21
 
SECURITY DESIGN REVIEW
 
THE SSDLC COMPONENTS
 
C
OMPANION
 
TO
 
THE
 D
ESIGN
 P
HASE
 
Functional requirement: 
Page should retrieve user’s
name, email, etc. from customer_info table in
database
Security concern:
 Verify that user has a valid
session token before retrieving information from
database
 
C
ONSIDER
 S
ECURITY
 D
ESIGN
P
RINCIPLES
 
Principle of least privilege: 
Do entities in the
system have exactly the privileges they need?
Cancel my account
Destroy the database
 
Bad design for a button panel
 
22
 
(AUTOMATED) CODE ANALYSIS
 
THE SSDLC COMPONENTS
 
C
OMPANION
 
TO
 D
EVELOPMENT
 
Apply best practices
- Accessing databases via read-only
parameterized queries
- Validating user queries before processing them
- Chaos Engineering
Secure programming
- Assume a function might be misused
- Check arguments for reasonable values
- Canonicalize data
 
23
 
SECURITY TESTING AND CODE REVIEW
 
THE SSDLC COMPONENTS
 
C
OMPANION
 
TO
 V
ERIFICATION
 
Ensure proper use of APIs
- Crypto library invocations
- Holistic audits
Test the test suite:
- Evaluate the coverage of your suite
- Ensure treatment of critical functionality
Value automation:
 - Repeatability / reproducibility
- Static analysis!
- Monkey testing
 
24
 
SECURITY ASSESSMENT AND CONFIGURATION
 
THE SSDLC COMPONENTS
 
C
OMPANION
 
TO
 M
AINTENANCE
AND
 E
VOLUTION
 
Logging
 – Capture the behavior of the system
(expected AND unexpected)
Metrics
 – Articulate needs of the system,
measure expectations against reality
Auditing
 – Periodic retrospective analysis over
codebase and configuration
 
WRAP-UP
 
Human Factors of Security
Security as Process
The Secure Software
Development Lifecycle
 
26
 
CHAOS MONKEY
 
THE SSDLC COMPONENTS
Slide Note
Embed
Share

Explore the necessity of multi-function analysis in real-world programs. Consider human factors and security processes for software development. Learn about retrofitted security solutions and vulnerabilities in practice.

  • Secure software
  • Security lifecycle
  • Human factors
  • Vulnerabilities

Uploaded on Mar 06, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. EXERCISE #23 PROGRAM SLICING REVIEW Write your name and answer the following on a piece of paper Draw the forward slice from line 2 in following program: 1

  2. ADMINISTRIVIA AND ANNOUNCEMENTS

  3. SSDLC EECS 677: Software Security Evaluation Drew Davidson

  4. 4 CLASS PROGRESS WE VE EXPLORED FORMAL TECHNIQUES TO GUARANTEE ABSENCE OF CERTAIN EXPLOITS In practice, these tools are part of a larger discipline of secure software development We ll (briefly) explore some of these concepts

  5. 5 LAST TIME: PROGRAM SLICING REVIEW: LAST LECTURE EXTRACTASUB-PROGRAMOFINTEREST BASEDONONE (ORMORE) STATEMENTS Forward slice Capture all code influenced by a given statement Backwards slide Capture all code that influences a given statement

  6. 6 OVERVIEW WE VE SEEN THE NECESSITY OF MULTI- FUNCTION ANALYSIS IN REAL-WORLD PROGRAMS TIME TO CONSIDER HOW IT IS DONE

  7. LECTURE OUTLINE Human Factors of Security Security as Process The Secure Software Development Lifecycle

  8. 8 SECURING SOFTWARE IS HARD! HUMAN FACTORS OF SECURITY SURPRISING THREAT MODELS SECURITY-DEFICIENTTOOLING

  9. 9 BOLT-ON SECURITY LIFECYCLES ATTEMPTINGTORETROFITASECURITY SOLUTIONONTOALEGACYSYSTEM Sometimes necessary Ideally avoided

  10. 10 VULNERABILITIES IN THE WILD HUMAN FACTORS OF SECURITY

  11. 11 VULNERABILITIES IN THE WILD HUMAN FACTORS OF SECURITY

  12. LECTURE OUTLINE Human Factors of Security Security as Process The Secure Software Development Lifecycle

  13. 13 PROCESS IS PROGRESS SECURITY AS PROCESS

  14. 14 CORPORATE SNAKE OIL SECURITY AS PROCESS

  15. 15 LIFECYCLES

  16. 16 SECURITY VS USABILITY SECURITY AS PROCESS A FUNDAMENTALTENSION Occurs within the implementation of software, occurs within the processes guiding software development CONSIDERWHATWEOWEUSERS Negative externalities

  17. LECTURE OUTLINE Human Factors of Security Security as Process The Secure Software Development Lifecycle

  18. 18 THE REGULAR SDLC LIFECYCLES SOFTWARE DEVELOPMENT LIFE CYCLE Requirement analysis Design Development Testing and verification Deployment Maintenance and evolution The circle of (software) life

  19. 19 AGILE DEVELOPMENT SDLC: LIFECYCLES

  20. 20 RISK ASSESSMENT AND THREAT MODELS THE SSDLC COMPONENTS COMPANIONTO REQUIREMENT PHASE Functional requirement: User must verify their own contact information Security consideration: Mechanism misuse - Users may attempt to access the contact information of others - Users may attempt to subvert the verification mechanism for harassment

  21. 21 SECURITY DESIGN REVIEW THE SSDLC COMPONENTS COMPANIONTOTHE DESIGN PHASE Cancel my account Functional requirement: Page should retrieve user s name, email, etc. from customer_info table in database Security concern: Verify that user has a valid session token before retrieving information from database Destroy the database CONSIDER SECURITY DESIGN PRINCIPLES Principle of least privilege: Do entities in the system have exactly the privileges they need? Bad design for a button panel

  22. 22 (AUTOMATED) CODE ANALYSIS THE SSDLC COMPONENTS COMPANIONTO DEVELOPMENT Apply best practices - Accessing databases via read-only parameterized queries - Validating user queries before processing them - Chaos Engineering Secure programming - Assume a function might be misused - Check arguments for reasonable values - Canonicalize data

  23. 23 SECURITY TESTING AND CODE REVIEW THE SSDLC COMPONENTS COMPANIONTO VERIFICATION Ensure proper use of APIs - Crypto library invocations - Holistic audits Test the test suite: - Evaluate the coverage of your suite - Ensure treatment of critical functionality Value automation: - Repeatability / reproducibility - Static analysis! - Monkey testing

  24. 24 SECURITY ASSESSMENT AND CONFIGURATION THE SSDLC COMPONENTS COMPANIONTO MAINTENANCE AND EVOLUTION Logging Capture the behavior of the system (expected AND unexpected) Metrics Articulate needs of the system, measure expectations against reality Auditing Periodic retrospective analysis over codebase and configuration

  25. WRAP-UP Human Factors of Security Security as Process The Secure Software Development Lifecycle

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#