SlideShare a Scribd company logo
1 of 34
Download to read offline
1/16
Introduction Volpano, Rice Conclusion
Language-Based Information-Flow Security
Akram El-Korashy1
1Max Planck Institute for Informatics
December 14, 2015
IMPRS Research Seminar.
Based on Sabelfeld and Myers’ 2003 survey, and others.
2/16
Introduction Volpano, Rice Conclusion
Information-Flow motivational example
Assumption about programming language
Security-augmented types 1
Assume we have a programming language that is augmented
with “levels” for variable types that distinguish public
variables from secret variables, where public and secret here
are in the real-world sense, not the programming encapsulation
sense.
1
The idea was first introduced by Volpano et. al.’s “A Sound Type System
for Secure Flow Analysis” in 1996, and Ørbaek’s “Trust in the λ-calculus” in
1995.
2/16
Introduction Volpano, Rice Conclusion
Information-Flow motivational example
Assumption about programming language
Security-augmented types 1
Assume we have a programming language that is augmented
with “levels” for variable types that distinguish public
variables from secret variables, where public and secret here
are in the real-world sense, not the programming encapsulation
sense.
Goal is to enforce e.g., confidentiality
We want the programming language’s type system to reject
precisely the programs that leak secrets.
1
The idea was first introduced by Volpano et. al.’s “A Sound Type System
for Secure Flow Analysis” in 1996, and Ørbaek’s “Trust in the λ-calculus” in
1995.
3/16
Introduction Volpano, Rice Conclusion
Information-Flow motivational example
Quiz
Does this program/process leak the secret?
Data: “s” //secret
Result: Run forever and output infinite tokens
initialize x := 4;
while true do
initialize y := 0, mask := 11111111b;
while y < x do
if is_prime(y) and is_prime(x - y) then
reset mask;
end
update y := y + 1
end
output bitwise_and(mask, s);
update x := x + 2
end
3/16
Introduction Volpano, Rice Conclusion
Information-Flow motivational example
Quiz - with security types
Does this program/process leak the secret?
Data: s //secret
Result: Run forever and output infinite tokens
initialize x := 4;
while true do
initialize y := 0, mask := 11111111b;
while y < x do
if is_prime(y) and is_prime(x - y) then
reset mask;
end
update y := y + 1
end
output bitwise_and(mask, s);
update x := x + 2
end
4/16
Introduction Volpano, Rice Conclusion
What is the use of augmented types?
Why Types?
Robin Milner’s slogan
Well-typed programs cannot “go wrong”.
Figure: c www.britannica.com - c Computer Laboratory, University of Cambridge.
4/16
Introduction Volpano, Rice Conclusion
What is the use of augmented types?
Why Types?
Robin Milner’s slogan
Well-typed programs cannot “go wrong”.
Figure: c www.britannica.com - c Computer Laboratory, University of Cambridge.
Build type semantics that incorporate security goals into the definition of type
safety. Informally, e.g., insecure programs shouldn’t be allowed to compile
successfully!
5/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
What are the rules that Volpano’s type system would enforce?
The hope is.. whatever rules we have, we can make a very
precise judgement on programs being secure or insecure.
//This program is secure. It never leaks any secret information.
Data: s //secret, x
Result: Compute magical count
initialize c1, c2, i := 0, 0, 0;
update s := s × x;
while i < s do
if s - (4 × i) = 1 or s - (4 × i) = 3 then
c1 := 1;
end
if s - (2 × i) = 0 then
c2 := 1;
end
update i :=i + 1
end
output c1 + c2;
6/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Rules prohibit two kinds of flow
Explicit Flow
Implicit Flow
6/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Rules prohibit two kinds of flow
Explicit Flow
public_var := secret_value
Implicit Flow
if secret_expression then public_var := some_value...
while secret_expression do public_var := some_value...
7/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
More formally.. Typing rules for expressions..
Figure: Typing rules for secure information flow [Volpano1996]
8/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
and typing rules for commands..
Figure: Typing rules for secure information flow [Volpano1996]
9/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Provably sound
On the footprints of Milner..
All well-typed programs satisfy noninterference.
9/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Provably sound
On the footprints of Milner..
All well-typed programs satisfy noninterference.
A program p guarantees noninterference means
For all pairs of variable states s1, s2,
IF s1 and s2 agree on public variables (but may differ on secret
ones),
THEN the states resulting from executing p on s1 and on s2
must also agree on public variables.
10/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Complete?
Completeness
All programs that satisfy noninterference are well-typed.
10/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Complete?
Completeness
All programs that satisfy noninterference are well-typed.
This program is judged as unsafe, although it is indeed
secure
(if s = 1 then x := 1 else x := 0); x := 0
10/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Complete?
Completeness
All programs that satisfy noninterference are well-typed.
This program is judged as unsafe, although it is indeed
secure
(if s = 1 then x := 1 else x := 0); x := 0
Rice’s Theorem
Every non-trivial property of a computable partial function is
undecidable.
11/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Computability theory refresher 1
Does program P halt on input I within 100 steps?
Can we write a general program that decides this property
about pairs (P, I)?
11/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Computability theory refresher 1
Does program P halt on input I within 100 steps?
Can we write a general program that decides this property
about pairs (P, I)?
Yes, we can! This is not the halting problem.
11/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Computability theory refresher 1
Does program P halt on input I within 100 steps?
Can we write a general program that decides this property
about pairs (P, I)?
Yes, we can! This is not the halting problem.
P is a program, i.e., a string. It is not a function.
A property of a computable function is only something that is
general to every program computing this function.
12/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Computability theory refresher 2
Property of a partial function vs. property of a program
computing it.
We can write 3 different programs that compute the Fibonacci
function. The fact that one computes fib(n) in O(log n), O(n) or
O(2n) is irrelevant to the "properties of the Fibonacci function".
12/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Computability theory refresher 2
Property of a partial function vs. property of a program
computing it.
We can write 3 different programs that compute the Fibonacci
function. The fact that one computes fib(n) in O(log n), O(n) or
O(2n) is irrelevant to the "properties of the Fibonacci function".
It’s a property of the program, not the mathematical function
that the program intends to represent!
12/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Computability theory refresher 2
Why then isn’t non-interference exempted from Rice’s
restriction?
It is a property on the memories, so it is program specific, right?
12/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Computability theory refresher 2
Why then isn’t non-interference exempted from Rice’s
restriction?
It is a property on the memories, so it is program specific, right?
Yes and no!
12/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Computability theory refresher 2
Why then isn’t non-interference exempted from Rice’s
restriction?
It is a property on the memories, so it is program specific, right?
Yes and no!
No, because we consider all public variables to be relevant
output, so they all contribute to the value of the function that the
program computes!
13/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Moral is, we cannot be precise enough
If not because of undecidability, then at least because of yet
open-problems..
13/16
Introduction Volpano, Rice Conclusion
Type system, operational semantics, how to detect a flow?
Moral is, we cannot be precise enough
If not because of undecidability, then at least because of yet
open-problems..
Answer to the Quiz: Goldbach’s conjecture
Data: s //secret
Result: Run forever and output infinite tokens
initialize x := 4;
while true do
initialize y := 0, mask := 11111111b;
while y < x do
if is_prime(y) and is_prime(x - y) then
reset mask;
end
update y := y + 1
end
output bitwise_and(mask, s);
update x := x + 2
end
14/16
Introduction Volpano, Rice Conclusion
Remarks
Abstract interpretation [Cousot et. al] is a powerful
methodology that can be used for soundness analysis.
14/16
Introduction Volpano, Rice Conclusion
Remarks
Abstract interpretation [Cousot et. al] is a powerful
methodology that can be used for soundness analysis.
Other type systems that trace global flows can give more
precise control-flow analysis [Clark et. al].
14/16
Introduction Volpano, Rice Conclusion
Remarks
Abstract interpretation [Cousot et. al] is a powerful
methodology that can be used for soundness analysis.
Other type systems that trace global flows can give more
precise control-flow analysis [Clark et. al].
Integrity of “sensitive” variables is a security goal
achievable by information-flow analysis in a way dual to
confidentiality.
14/16
Introduction Volpano, Rice Conclusion
Remarks
Abstract interpretation [Cousot et. al] is a powerful
methodology that can be used for soundness analysis.
Other type systems that trace global flows can give more
precise control-flow analysis [Clark et. al].
Integrity of “sensitive” variables is a security goal
achievable by information-flow analysis in a way dual to
confidentiality.
Robust Declassification is a framework offering
relaxation to non-interference.
The intuition is “although the system may release information, an
attacker should have no control over what information is released”
[Myers et. al]
15/16
Introduction Volpano, Rice Conclusion
Remarks
Personalized Differential Privacy is one area in which
semantics of the query language can be used to guarantee
interesting properties.
15/16
Introduction Volpano, Rice Conclusion
Remarks
Personalized Differential Privacy is one area in which
semantics of the query language can be used to guarantee
interesting properties.
Jif is an implementation of a security-typed programming
language.
16/16
Introduction Volpano, Rice Conclusion
Questions?
Thank you!

More Related Content

Similar to Language-Based Information-Flow Security

Symfony in microservice architecture
Symfony in microservice architectureSymfony in microservice architecture
Symfony in microservice architectureDaniele D'Angeli
 
PROGRAMMING AND CYBER SECURITY
PROGRAMMING AND CYBER SECURITYPROGRAMMING AND CYBER SECURITY
PROGRAMMING AND CYBER SECURITYSylvain Martinez
 
R studio practical file
R studio  practical file R studio  practical file
R studio practical file Ketan Khaira
 
Python Programming - III. Controlling the Flow
Python Programming - III. Controlling the FlowPython Programming - III. Controlling the Flow
Python Programming - III. Controlling the FlowRanel Padon
 
Owasp appsensor self-protecting applications
Owasp appsensor self-protecting applicationsOwasp appsensor self-protecting applications
Owasp appsensor self-protecting applicationsRaphaël Taban
 
Correctness attraction __kth_2017
Correctness attraction __kth_2017Correctness attraction __kth_2017
Correctness attraction __kth_2017Benjamin Danglot
 
Propositional logic sent
Propositional logic   sentPropositional logic   sent
Propositional logic sentOktJona
 
PHP, AWS, and Sleep - Hampton Roads DevFest 2016
PHP, AWS, and Sleep - Hampton Roads DevFest 2016PHP, AWS, and Sleep - Hampton Roads DevFest 2016
PHP, AWS, and Sleep - Hampton Roads DevFest 2016Guillermo A. Fisher
 
Open Source in your company
Open Source in your companyOpen Source in your company
Open Source in your companyBart Van Loon
 
Unit IV Solved Question Bank- Robotics Engineering
Unit IV  Solved Question Bank-  Robotics EngineeringUnit IV  Solved Question Bank-  Robotics Engineering
Unit IV Solved Question Bank- Robotics EngineeringSanjay Singh
 
LISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love ParanthesesLISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love ParanthesesDominic Graefen
 
SDD error types and detection
SDD error types and detectionSDD error types and detection
SDD error types and detectionMike Cusack
 
PROGRAMMING LANGUAGES
PROGRAMMING LANGUAGESPROGRAMMING LANGUAGES
PROGRAMMING LANGUAGESABHINAV SINGH
 
Contact management system
Contact management systemContact management system
Contact management systemSHARDA SHARAN
 

Similar to Language-Based Information-Flow Security (20)

Symfony in microservice architecture
Symfony in microservice architectureSymfony in microservice architecture
Symfony in microservice architecture
 
C Language Presentation.pptx
C Language Presentation.pptxC Language Presentation.pptx
C Language Presentation.pptx
 
PROGRAMMING AND CYBER SECURITY
PROGRAMMING AND CYBER SECURITYPROGRAMMING AND CYBER SECURITY
PROGRAMMING AND CYBER SECURITY
 
R studio practical file
R studio  practical file R studio  practical file
R studio practical file
 
Python Programming - III. Controlling the Flow
Python Programming - III. Controlling the FlowPython Programming - III. Controlling the Flow
Python Programming - III. Controlling the Flow
 
Owasp appsensor self-protecting applications
Owasp appsensor self-protecting applicationsOwasp appsensor self-protecting applications
Owasp appsensor self-protecting applications
 
Correctness attraction __kth_2017
Correctness attraction __kth_2017Correctness attraction __kth_2017
Correctness attraction __kth_2017
 
Propositional logic sent
Propositional logic   sentPropositional logic   sent
Propositional logic sent
 
OOP and FP
OOP and FPOOP and FP
OOP and FP
 
WoMakersCode 2016 - Shit Happens
WoMakersCode 2016 -  Shit HappensWoMakersCode 2016 -  Shit Happens
WoMakersCode 2016 - Shit Happens
 
Introduction to programming languages part 1
Introduction to programming languages   part 1Introduction to programming languages   part 1
Introduction to programming languages part 1
 
PHP, AWS, and Sleep - Hampton Roads DevFest 2016
PHP, AWS, and Sleep - Hampton Roads DevFest 2016PHP, AWS, and Sleep - Hampton Roads DevFest 2016
PHP, AWS, and Sleep - Hampton Roads DevFest 2016
 
Open Source in your company
Open Source in your companyOpen Source in your company
Open Source in your company
 
Unit IV Solved Question Bank- Robotics Engineering
Unit IV  Solved Question Bank-  Robotics EngineeringUnit IV  Solved Question Bank-  Robotics Engineering
Unit IV Solved Question Bank- Robotics Engineering
 
LISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love ParanthesesLISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love Parantheses
 
Return address
Return addressReturn address
Return address
 
Javascript
JavascriptJavascript
Javascript
 
SDD error types and detection
SDD error types and detectionSDD error types and detection
SDD error types and detection
 
PROGRAMMING LANGUAGES
PROGRAMMING LANGUAGESPROGRAMMING LANGUAGES
PROGRAMMING LANGUAGES
 
Contact management system
Contact management systemContact management system
Contact management system
 

Recently uploaded

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 

Recently uploaded (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 

Language-Based Information-Flow Security

  • 1. 1/16 Introduction Volpano, Rice Conclusion Language-Based Information-Flow Security Akram El-Korashy1 1Max Planck Institute for Informatics December 14, 2015 IMPRS Research Seminar. Based on Sabelfeld and Myers’ 2003 survey, and others.
  • 2. 2/16 Introduction Volpano, Rice Conclusion Information-Flow motivational example Assumption about programming language Security-augmented types 1 Assume we have a programming language that is augmented with “levels” for variable types that distinguish public variables from secret variables, where public and secret here are in the real-world sense, not the programming encapsulation sense. 1 The idea was first introduced by Volpano et. al.’s “A Sound Type System for Secure Flow Analysis” in 1996, and Ørbaek’s “Trust in the λ-calculus” in 1995.
  • 3. 2/16 Introduction Volpano, Rice Conclusion Information-Flow motivational example Assumption about programming language Security-augmented types 1 Assume we have a programming language that is augmented with “levels” for variable types that distinguish public variables from secret variables, where public and secret here are in the real-world sense, not the programming encapsulation sense. Goal is to enforce e.g., confidentiality We want the programming language’s type system to reject precisely the programs that leak secrets. 1 The idea was first introduced by Volpano et. al.’s “A Sound Type System for Secure Flow Analysis” in 1996, and Ørbaek’s “Trust in the λ-calculus” in 1995.
  • 4. 3/16 Introduction Volpano, Rice Conclusion Information-Flow motivational example Quiz Does this program/process leak the secret? Data: “s” //secret Result: Run forever and output infinite tokens initialize x := 4; while true do initialize y := 0, mask := 11111111b; while y < x do if is_prime(y) and is_prime(x - y) then reset mask; end update y := y + 1 end output bitwise_and(mask, s); update x := x + 2 end
  • 5. 3/16 Introduction Volpano, Rice Conclusion Information-Flow motivational example Quiz - with security types Does this program/process leak the secret? Data: s //secret Result: Run forever and output infinite tokens initialize x := 4; while true do initialize y := 0, mask := 11111111b; while y < x do if is_prime(y) and is_prime(x - y) then reset mask; end update y := y + 1 end output bitwise_and(mask, s); update x := x + 2 end
  • 6. 4/16 Introduction Volpano, Rice Conclusion What is the use of augmented types? Why Types? Robin Milner’s slogan Well-typed programs cannot “go wrong”. Figure: c www.britannica.com - c Computer Laboratory, University of Cambridge.
  • 7. 4/16 Introduction Volpano, Rice Conclusion What is the use of augmented types? Why Types? Robin Milner’s slogan Well-typed programs cannot “go wrong”. Figure: c www.britannica.com - c Computer Laboratory, University of Cambridge. Build type semantics that incorporate security goals into the definition of type safety. Informally, e.g., insecure programs shouldn’t be allowed to compile successfully!
  • 8. 5/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? What are the rules that Volpano’s type system would enforce? The hope is.. whatever rules we have, we can make a very precise judgement on programs being secure or insecure. //This program is secure. It never leaks any secret information. Data: s //secret, x Result: Compute magical count initialize c1, c2, i := 0, 0, 0; update s := s × x; while i < s do if s - (4 × i) = 1 or s - (4 × i) = 3 then c1 := 1; end if s - (2 × i) = 0 then c2 := 1; end update i :=i + 1 end output c1 + c2;
  • 9. 6/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Rules prohibit two kinds of flow Explicit Flow Implicit Flow
  • 10. 6/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Rules prohibit two kinds of flow Explicit Flow public_var := secret_value Implicit Flow if secret_expression then public_var := some_value... while secret_expression do public_var := some_value...
  • 11. 7/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? More formally.. Typing rules for expressions.. Figure: Typing rules for secure information flow [Volpano1996]
  • 12. 8/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? and typing rules for commands.. Figure: Typing rules for secure information flow [Volpano1996]
  • 13. 9/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Provably sound On the footprints of Milner.. All well-typed programs satisfy noninterference.
  • 14. 9/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Provably sound On the footprints of Milner.. All well-typed programs satisfy noninterference. A program p guarantees noninterference means For all pairs of variable states s1, s2, IF s1 and s2 agree on public variables (but may differ on secret ones), THEN the states resulting from executing p on s1 and on s2 must also agree on public variables.
  • 15. 10/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Complete? Completeness All programs that satisfy noninterference are well-typed.
  • 16. 10/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Complete? Completeness All programs that satisfy noninterference are well-typed. This program is judged as unsafe, although it is indeed secure (if s = 1 then x := 1 else x := 0); x := 0
  • 17. 10/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Complete? Completeness All programs that satisfy noninterference are well-typed. This program is judged as unsafe, although it is indeed secure (if s = 1 then x := 1 else x := 0); x := 0 Rice’s Theorem Every non-trivial property of a computable partial function is undecidable.
  • 18. 11/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Computability theory refresher 1 Does program P halt on input I within 100 steps? Can we write a general program that decides this property about pairs (P, I)?
  • 19. 11/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Computability theory refresher 1 Does program P halt on input I within 100 steps? Can we write a general program that decides this property about pairs (P, I)? Yes, we can! This is not the halting problem.
  • 20. 11/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Computability theory refresher 1 Does program P halt on input I within 100 steps? Can we write a general program that decides this property about pairs (P, I)? Yes, we can! This is not the halting problem. P is a program, i.e., a string. It is not a function. A property of a computable function is only something that is general to every program computing this function.
  • 21. 12/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Computability theory refresher 2 Property of a partial function vs. property of a program computing it. We can write 3 different programs that compute the Fibonacci function. The fact that one computes fib(n) in O(log n), O(n) or O(2n) is irrelevant to the "properties of the Fibonacci function".
  • 22. 12/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Computability theory refresher 2 Property of a partial function vs. property of a program computing it. We can write 3 different programs that compute the Fibonacci function. The fact that one computes fib(n) in O(log n), O(n) or O(2n) is irrelevant to the "properties of the Fibonacci function". It’s a property of the program, not the mathematical function that the program intends to represent!
  • 23. 12/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Computability theory refresher 2 Why then isn’t non-interference exempted from Rice’s restriction? It is a property on the memories, so it is program specific, right?
  • 24. 12/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Computability theory refresher 2 Why then isn’t non-interference exempted from Rice’s restriction? It is a property on the memories, so it is program specific, right? Yes and no!
  • 25. 12/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Computability theory refresher 2 Why then isn’t non-interference exempted from Rice’s restriction? It is a property on the memories, so it is program specific, right? Yes and no! No, because we consider all public variables to be relevant output, so they all contribute to the value of the function that the program computes!
  • 26. 13/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Moral is, we cannot be precise enough If not because of undecidability, then at least because of yet open-problems..
  • 27. 13/16 Introduction Volpano, Rice Conclusion Type system, operational semantics, how to detect a flow? Moral is, we cannot be precise enough If not because of undecidability, then at least because of yet open-problems.. Answer to the Quiz: Goldbach’s conjecture Data: s //secret Result: Run forever and output infinite tokens initialize x := 4; while true do initialize y := 0, mask := 11111111b; while y < x do if is_prime(y) and is_prime(x - y) then reset mask; end update y := y + 1 end output bitwise_and(mask, s); update x := x + 2 end
  • 28. 14/16 Introduction Volpano, Rice Conclusion Remarks Abstract interpretation [Cousot et. al] is a powerful methodology that can be used for soundness analysis.
  • 29. 14/16 Introduction Volpano, Rice Conclusion Remarks Abstract interpretation [Cousot et. al] is a powerful methodology that can be used for soundness analysis. Other type systems that trace global flows can give more precise control-flow analysis [Clark et. al].
  • 30. 14/16 Introduction Volpano, Rice Conclusion Remarks Abstract interpretation [Cousot et. al] is a powerful methodology that can be used for soundness analysis. Other type systems that trace global flows can give more precise control-flow analysis [Clark et. al]. Integrity of “sensitive” variables is a security goal achievable by information-flow analysis in a way dual to confidentiality.
  • 31. 14/16 Introduction Volpano, Rice Conclusion Remarks Abstract interpretation [Cousot et. al] is a powerful methodology that can be used for soundness analysis. Other type systems that trace global flows can give more precise control-flow analysis [Clark et. al]. Integrity of “sensitive” variables is a security goal achievable by information-flow analysis in a way dual to confidentiality. Robust Declassification is a framework offering relaxation to non-interference. The intuition is “although the system may release information, an attacker should have no control over what information is released” [Myers et. al]
  • 32. 15/16 Introduction Volpano, Rice Conclusion Remarks Personalized Differential Privacy is one area in which semantics of the query language can be used to guarantee interesting properties.
  • 33. 15/16 Introduction Volpano, Rice Conclusion Remarks Personalized Differential Privacy is one area in which semantics of the query language can be used to guarantee interesting properties. Jif is an implementation of a security-typed programming language.
  • 34. 16/16 Introduction Volpano, Rice Conclusion Questions? Thank you!