Information Flow in Software Security

EXERCISE #14
1
PRACTICAL INFOFLOW REVIEW
Write your name and answer the following on a piece of paper
Provide an instance of a program with an implicit information flow from a confidential
source to a sink
ADMINISTRIVIA
AND
ANNOUNCEMENTS
 
CLASS PROGRESS
SHOWING SOME APPLICATIONS OF
STATIC DATAFLOW
3
4
LAST TIME: DATAFLOW DEPLOYMENT
REVIEW: LAST LECTURE
U
SING
 D
ATAFLOW
 
IN
 
PRACTICAL
 
CONTEXTS
- Ex. - Looking for initialized variables
SIDE CHANNELS
EECS 677: Software Security Evaluation
Drew Davidson
OVERVIEW
CONTEMPLATE OTHER WAYS THAT
SNEAKY DATA FLOWS CAN OCCUR
6
LECTURE OUTLINE
Threat Models
Side Channels - Overview
Timing
A dataflow approach
8
THINKING ABOUT ATTACKS
THREAT MODELS
T
HERE
S
 
NO
 
SUCH
 
THING
 
AS
 “A
BSOLUTE
S
ECURITY
It’s always possible to come up with SOME
(potentially wacky) scenario where the adversary
can subvert a system
C
ONSIDER
 
THE
 
VARIOUS
 
ATTACK
 
CLASSES
Denial of Service:
 Availability is compromised
Exfiltration:
 Confidentiality policy is compromised
Compromise: 
Integrity policy is compromised
 
9
A FRAMEWORK FOR ASSUMPTIONS
THREAT MODELS
A 
THREAT
 
MODEL
 
IS
 
COMPOSED
 
OF
:
Adversary Goals:
 What is the adversary attempting to do?
Adversary Capabilities:
 What resources can the adversary bring to bear
to accomplish their goals?
S
ECURITY
 
MEANS
 
PREVENTING
 
GOALS
 
FROM
 
BEING
 
ACCOMPLISHED
,
DESPITE
 
CAPABILITIES
Defender Capabilities:
 What resources MUST be brought to bear to
defeat the threat model?
10
THINKING ABOUT ATTACKS
THREAT MODELS
LECTURE OUTLINE
Threat Models
Side Channels - Overview
Timing
A dataflow approach
12
THE BASIC IDEA OF SIDE CHANNELS
SIDE CHANNELS
A
BSTRACTION
 
IS
 
A
 
KEY
 
PRINCIPLE
 
OF
 C
OMPUTER
 S
CIENCE
!
As a programmer, you shouldn’t need to know underlying details
A
S
 
A
 
SECURITY
 
EXPERT
, 
THESE
 
DETAILS
 
MIGHT
 
END
 
UP
 
BEING
 
IMPORTANT
!
The way a program accomplishes its tasks are important, especially from a security
aspect
- How long does it take for the program to do X ?
- How hot does it make the processor when X happens?
- How much power does it draw when X happens?
13
SIDE CHANNELS – THE BIG IDEA
SIDE CHANNELS - INSTANCES
C
OMPUTATION
 
MAY
 
HAVE
 
EFFECTS
 
OUTSIDE
 
OF
 
PROGRAM
 
SEMANTICS
Some operations (internally) take longer based on aspects of the data
14
TEMPEST
SIDE CHANNELS – HISTORY
 
E
LECTROMAGNETIC
 L
EAKAGE
 
OF
 
KEYS
WWII:
 Bell Telephone discovers
electromagnetic leakage in one-time
pad teleprinters, detectable at 100-ft
radius
1951:
 CIA rediscovers leakage,
detectable at 200-ft radius
1964:
 TEMPEST shielding protocol
established
15
TEMPEST
SIDE CHANNELS – HISTORY
 
E
LECTROMAGNETIC
 L
EAKAGE
 
OF
 
KEYS
WWII:
 Bell Telephone discovers
electromagnetic leakage in one-time
pad teleprinters, detectable at 100-ft
radius
1951:
 CIA rediscovers leakage,
detectable at 200-ft radius
1964:
 TEMPEST shielding protocol
established
16
VAN ECK PHREAKING
SIDE CHANNELS – HISTORY
 
E
LECTROMAGNETIC
 L
EAKAGE
 
OF
M
ONITORS
Pick up the monitor’s electromagnetic
emanations that differ depending on
how the screen lights up
Originally determined for CRT (1985),
also discovered for LCD monitors
(2004)
17
SIDE CHANNELS – PARTIAL CREDIT
SIDE CHANNELS - INSTANCES
E
VEN
 “H
INTS
ABOUT
 
SECRET
 
DATA
 
CAN
 
BE
 
PROBLEMATIC
Assume you’re trying to guess a password
– knowing even 1 character massively reduces the search space
– knowing the length of the password reduces the search space
18
COVERT CHANNELS
SIDE CHANNELS
S
OMETIMES
 
A
 P
ROGRAM
 
W
ANTS
 
TO
 L
EAK
 
DATA
Exfiltration !
LECTURE OUTLINE
Threat Models
Side Channels - Overview
Timing
A dataflow approach
20
TIMING SIDE CHANNELS
SIDE CHANNELS - INSTANCES
S
OME
 
COMPUTATIONS
 
TAKE
 
LONGER
 
THAN
 
OTHERS
Some operations (internally) take longer based on aspects of the data
 
bool checkPW(const char * given){
  const char * expected = “12345”;
  int len = min(5, strlen(given));
  for (int i = 0; i < len, i++){
    if (given[i] != expected[i]){
      return false;
    }
  }
  return true;
}
21
TIMING SIDE CHANNELS
SIDE CHANNELS - INSTANCES
S
OME
 
COMPUTATIONS
 
TAKE
 
LONGER
 
THAN
 
OTHERS
Some operations (internally) take longer based on aspects of the data
T
HREAT
 M
ODEL
Interactive, low-latency*, black-box access to the program, precise timer
*: May be overcome with more samples
Program
Adversary
22
TIMING SIDE CHANNELS - FIX
SIDE CHANNELS - INSTANCES
 
bool checkPW(const char * given){
  const char * expected = “12345”;
  int len = min(5, strlen(given));
  for (int i = 0; i < len, i++){
    if (given[i] != expected[i]){
      return false;
    }
  }
  return true;
}
 
bool checkPW(const char * given){
  const char * expected = “12345”;
  int len = min(5, strlen(given));
  for (int i = 0; i < len, i++){
    if (given[i] != expected[i]){
      return false;
    }
  }
  return true;
}
23
TIMING SIDE CHANNELS - FIX
SIDE CHANNELS - INSTANCES
L
IMITATIONS
 
OF
 U
NIFORM
 E
XECUTION
- Necessarily slow down your computation to the worst case
- May require some pretty precise understanding of timing
- May not always be obvious what the worst-case even is
LECTURE OUTLINE
Threat Models
Side Channels - Overview
Instances
A dataflow approach
25
TIMING SIDE CHANNELS - FIX
SIDE CHANNELS - INSTANCES
C
AN
 
WE
 
FIX
 
THIS
 
ISSUE
 
WITH
 
OUR
 
DATAFLOW
 
APPROACH
?
- Instruction transformers: how much time that instruction takes
- Block composition: the sum total of instruction times
- Merge operation: some sort of check that all paths are of comparable time?
WRAP-UP
Slide Note
Embed
Share

Explore the concept of information flow in software security, focusing on implicit data flows from confidential sources to sinks. Learn about threat models, side channels, and defending against potential attacks in practical contexts. Delve into the complexities of maintaining security while considering adversary goals and capabilities.

  • Software Security
  • Information Flow
  • Threat Models
  • Data Security
  • Adversary Capabilities

Uploaded on Apr 17, 2024 | 5 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. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. EXERCISE #14 PRACTICAL INFOFLOW REVIEW Write your name and answer the following on a piece of paper Provide an instance of a program with an implicit information flow from a confidential source to a sink 1

  2. ADMINISTRIVIA AND ANNOUNCEMENTS

  3. 3 CLASS PROGRESS SHOWING SOME APPLICATIONS OF STATIC DATAFLOW

  4. 4 LAST TIME: DATAFLOW DEPLOYMENT REVIEW: LAST LECTURE USING DATAFLOWINPRACTICALCONTEXTS - Ex. - Looking for initialized variables

  5. SIDE CHANNELS EECS 677: Software Security Evaluation Drew Davidson

  6. 6 OVERVIEW CONTEMPLATE OTHER WAYS THAT SNEAKY DATA FLOWS CAN OCCUR

  7. LECTURE OUTLINE Threat Models Side Channels - Overview Timing A dataflow approach

  8. 8 THINKING ABOUT ATTACKS THREAT MODELS THERE SNOSUCHTHINGAS ABSOLUTE SECURITY It s always possible to come up with SOME (potentially wacky) scenario where the adversary can subvert a system CONSIDERTHEVARIOUSATTACKCLASSES Denial of Service: Availability is compromised Exfiltration: Confidentiality policy is compromised Compromise: Integrity policy is compromised

  9. 9 A FRAMEWORK FOR ASSUMPTIONS THREAT MODELS A THREATMODELISCOMPOSEDOF: Adversary Goals: What is the adversary attempting to do? Adversary Capabilities: What resources can the adversary bring to bear to accomplish their goals? SECURITYMEANSPREVENTINGGOALSFROMBEINGACCOMPLISHED, DESPITECAPABILITIES Defender Capabilities: What resources MUST be brought to bear to defeat the threat model?

  10. 10 THINKING ABOUT ATTACKS THREAT MODELS

  11. LECTURE OUTLINE Threat Models Side Channels - Overview Timing A dataflow approach

  12. 12 THE BASIC IDEA OF SIDE CHANNELS SIDE CHANNELS ABSTRACTIONISAKEYPRINCIPLEOF COMPUTER SCIENCE! As a programmer, you shouldn t need to know underlying details ASASECURITYEXPERT, THESEDETAILSMIGHTENDUPBEINGIMPORTANT! The way a program accomplishes its tasks are important, especially from a security aspect - How long does it take for the program to do X ? - How hot does it make the processor when X happens? - How much power does it draw when X happens?

  13. 13 SIDE CHANNELS THE BIG IDEA SIDE CHANNELS - INSTANCES COMPUTATIONMAYHAVEEFFECTSOUTSIDEOFPROGRAMSEMANTICS Some operations (internally) take longer based on aspects of the data

  14. 14 TEMPEST SIDE CHANNELS HISTORY ELECTROMAGNETIC LEAKAGEOFKEYS WWII: Bell Telephone discovers electromagnetic leakage in one-time pad teleprinters, detectable at 100-ft radius 1951: CIA rediscovers leakage, detectable at 200-ft radius 1964: TEMPEST shielding protocol established

  15. 15 TEMPEST SIDE CHANNELS HISTORY ELECTROMAGNETIC LEAKAGEOFKEYS WWII: Bell Telephone discovers electromagnetic leakage in one-time pad teleprinters, detectable at 100-ft radius 1951: CIA rediscovers leakage, detectable at 200-ft radius 1964: TEMPEST shielding protocol established

  16. 16 VAN ECK PHREAKING SIDE CHANNELS HISTORY ELECTROMAGNETIC LEAKAGEOF MONITORS Pick up the monitor s electromagnetic emanations that differ depending on how the screen lights up Originally determined for CRT (1985), also discovered for LCD monitors (2004)

  17. 17 SIDE CHANNELS PARTIAL CREDIT SIDE CHANNELS - INSTANCES EVEN HINTS ABOUTSECRETDATACANBEPROBLEMATIC Assume you re trying to guess a password knowing even 1 character massively reduces the search space knowing the length of the password reduces the search space

  18. 18 COVERT CHANNELS SIDE CHANNELS SOMETIMESA PROGRAM WANTSTO LEAKDATA Exfiltration !

  19. LECTURE OUTLINE Threat Models Side Channels - Overview Timing A dataflow approach

  20. 20 TIMING SIDE CHANNELS SIDE CHANNELS - INSTANCES SOMECOMPUTATIONSTAKELONGERTHANOTHERS Some operations (internally) take longer based on aspects of the data bool checkPW(const char * given){ const char * expected = 12345 ; int len = min(5, strlen(given)); for (int i = 0; i < len, i++){ if (given[i] != expected[i]){ return false; } } return true; }

  21. 21 TIMING SIDE CHANNELS SIDE CHANNELS - INSTANCES SOMECOMPUTATIONSTAKELONGERTHANOTHERS Some operations (internally) take longer based on aspects of the data THREAT MODEL Interactive, low-latency*, black-box access to the program, precise timer Adversary Program *: May be overcome with more samples

  22. 22 TIMING SIDE CHANNELS - FIX SIDE CHANNELS - INSTANCES bool checkPW(const char * given){ const char * expected = 12345 ; int len = min(5, strlen(given)); for (int i = 0; i < len, i++){ if (given[i] != expected[i]){ return false; } } return true; } bool checkPW(const char * given){ const char * expected = 12345 ; int len = min(5, strlen(given)); for (int i = 0; i < len, i++){ if (given[i] != expected[i]){ return false; } } return true; }

  23. 23 TIMING SIDE CHANNELS - FIX SIDE CHANNELS - INSTANCES LIMITATIONSOF UNIFORM EXECUTION - Necessarily slow down your computation to the worst case - May require some pretty precise understanding of timing - May not always be obvious what the worst-case even is

  24. LECTURE OUTLINE Threat Models Side Channels - Overview Instances A dataflow approach

  25. 25 TIMING SIDE CHANNELS - FIX SIDE CHANNELS - INSTANCES CANWEFIXTHISISSUEWITHOURDATAFLOWAPPROACH? - Instruction transformers: how much time that instruction takes - Block composition: the sum total of instruction times - Merge operation: some sort of check that all paths are of comparable time?

  26. WRAP-UP

More Related Content

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