00
00
in Software Applications
Tue 8:00-10:00
Thu 8:00-11:00
Fall 2020
Information
n 3 individual projects
n Static analysis of C fragment
n Analysis of Java code with assertions
n Testing of given application
Java
eg. public, final, private, protected
final class A {
public final static SOME_CONSTANT 2;
private B b1, b2;
protected A ShallowClone(Object o)
throws ClassCastException{
x = new(A);
x.b1 = ((A)o).b1;
x.b2 = ((A)o).b2;
return x;
}
}
Course Evaluation
§ Three individual projects (20% each)
§ Probably fragments of code to analyze and correct
10
The context: computer system
security . . .
Question 1: what is a computer system ?
– (classical) computer: mainframe, server, desktop
– mobile device: phone, tablets, audio/video player, etc.. . .
up to IoT, smart cards, . . .
– embedded (networked) systems: inside a car, a plane, a
washing machine, etc.
– clouds
– but also industrial networks (ICS, Scada), . . . etc.
– and certainly many more !
TWO main interesting characteristics:
1. includes hardware + software
2. open/connected to the outside world . . .
The context: computer system
security . . .
Question 2: what does security mean?
• a set of “high-level” security goals:
CIA = Confidentiality, Integrity, Availability (+ Non Repudiation + . . . )
• is it specific to the computer system we consider ?
how to deal with “unsecure executions” ?
• something beyond safety and fault-tolerance:
– notion of intruder, with specific capabilities
– notion of threats, with a “threat model”
there is an “external actor” with an attack objective in mind, and able to
elaborate a dedicated strategy to achieve it (not a hazard)
• a definition “by default”:
– functional properties = what the system should do
– security properties = what the system should not do
how it should not behave. .
Software Security: an example
consider 2 programs:
• Compress, to compress a file f
• Uncompress, to uncompress a (compressed) file C
Expected behavior (the one we try to validate)
Uncompress(Compress(f)) = f (1)
But, what about uncompressing an arbitrary (i.e., maliciously crafted)
file ? (e.g., CVE-2010-0001 for gzip)
(if C is not Compress(f) for any f) then
(Uncompress(C) = "Error_Msg") (2 )
• Security “Theater”
– Feeling safer vs. Being safer
– People act on their perception of reality, not necessarily on reality
How do you know that you have built a system that cannot be
broken into?
What evidence do you look for?
How do you know you are done?
How do you prioritize security against everything else drawing upon
your time?
SE is a zero-sum game
“If I need to focus more energy on security, what should we take
away?”
Vulnerability
Cryptography
– Is important and needed
– Cannot solve all of your security problems
– Pick-proof lock vs. open window
Denial
– I do not have to think about this. Let me just code.
– Leave it to the experts.
– I could never understand this anyway.
Bag of Tricks
– Let’s just try these tricks that worked in the past
– We have done these 10 things. That is a lot. Close enough, right?