Upload
adamdeja
View
366
Download
0
Embed Size (px)
Citation preview
dejavusecurity.com
Adam Cecchetti : Déjà vu Security
Seattle, WA Firm
Founder
We’ve hacked and helped secure lots of things
SCADA, Planes, Robotics, Medical, SiSoC, Radios
Web, Routers, Clouds, OS, Drivers, Apps, Browsers, CPUs
Déjà vu. Déjà vu. Déjà vu. Déjà vu.
Networks “The tubes are on fire!”
Applications “Your desktop is on fire!”
Web “The world is on fire!”
Cloud “The sky is on fire!”
Internet of things “Your pants are on fire!”
The Problem is Big
The first step to recovery is the hardest.
Awareness is good
Security issues must be found they can’t be created
Passed along like a bad gene in software ecosystem
Defense helps but we’ve spent a lot of time kicking over more rocks
Haven’t been winning a lot lately
The debugging tools we use to build systems are security issues
It’s time to start thinking differently about a few things.
Premise 1: Computers are Awesome!
They don’t LET you do anything.
They DO anything!
And only things you tell them
CPU: AMMA that’s about Machine code to Microcode Good luck with the rest!
That’s not what I do!
General computation is good
However it means
No reliability, no availability, no security
This includes anything we build.
Premise 2: We’re at an Odd Juncture
Mobile/has begun to eat all markets the same way
the PC did.
User habits are changing again
Mobile and web ate the world.
User data shifts around regularly
Then lingers
And for those of us left that care we have to run
unknown kernel and firmware exploits to program
our phones.
Tick Tock Tick Tock
User data replicates every decade or so
1970 : Mainframe (Centralized)
1980 : Personal computer (Distributed)
1990 : Web/Email (Centralized)
2000 : Social networks (Distributed)
2010 : Cloud : (Centralized)
2020 : Internet of Things (Distributed)
2030 : Internet of Me (Centralized)
Echoes and ghosts of usage models past leave data everywhere
Premise 3: The Internet finally showed!
The amount of air gap between our lives and the internet is shrinking daily.
Soon it will be gone. Good Riddance! Plug me in!
Unless you’ve decided to live in a cave! And in another tick tock there’s still a chance it will have IP
enabled bat guano.
Technology is awesome!
In 5 years my self driving car will live stream.
Meaning localized live traffic video broadcasting and viewing is going to be a thing.
There are going to be people sitting in traffic watching other people sit in traffic around the world.
Be Still My Beating Heart
The Internet of Me is coming soon.
I can’t wait until my heart has an IP address..
And firmware updates
And an app store!
Cardio Trainer+ 4.0
Now with Twitter Integration!
Cardio Trainer+ 4.0.1
Pushed a patch as some users were excessively Twitching
while Tweeting.
Premise 4: Everybody Bugs
Bugs happen
Mistakes are proof you actually did something
Imperfection is the proof of life and existence
They happen to the best
They happen to the worst
Scope 1: Data as Code
What do Cross Site Scripting, SQL Injection, and
Buffer Overflows all have in common?
They are all data being interpreted as code.
Any place that user or machine controlled data is being
used, interpreted, parsed.
This is big enough by itself and it’s just a part of the
problem.
We’ve actually started to make steps towards fixing
this problem in some places
Scope 2: Gamers are Going to Game
Logical Issues require someone to game the system
Must try and understand all the unexpected behavior
of the logic of the system.
Few good ways of automated testing here
The Meta Game
Attackers will continue to go for the weakest link
Unless the time / reward scenario is high
or the Motivation / reward scenario is super high
Scope 3: We Rely on Secrets
Password1!
Upper Lower, Numeric, Special
Secure by most standards!
“ Or ‘1’=‘1’; --
Upper, Lower, Numeric, Special
No key words,
16 characters!
Secure!
If not bad jumbles then bits generated by a machine given back to a machine
Let’s remap that to solving a pain point
Firewalls
I don’t want to run Ethernet cable in my house.
Wifi + Firewall = Win!
Encryption
I can’t make it to the bank/store today.
Commerce from home + encrypted tunnel = Win!
Two Factor Authentication
I don’t want to re-grid my character
WoW = Win!
When have we won?
We’ve won the same way everyone else has.
When we’ve made someone’s life better they
adopted a technology.
If we want to get pedantic we used Trojan horses to
backdoor security into peoples lives.
Applying security to a shift in user behavior
This is better!
We defined that part of being better was more secure!
Time Shifted
Users shift their data every decade or so
1970 : Mainframe (Centralized)
1980 : Personal computer (Distributed) Crypto Useful
1990 : Web/Email (Centralized) Firewall Useful
2000 : Social networks (Distributed) Firewall Common
2010 : Cloud : (Centralized) Crypto Common
2020 : Internet of Things (Distributed)
2030 : Internet of Me (Centralized)
Echoes and ghosts of usage models past leave data everywhere
Time to Fix This Mess
Time is the enemy of everyone
Targets move
Attacks of opportunity close
Things get patched
Systems get tossed
Interest shifts
Time has not been on the defenders side
We can make time be on our side
Time is the axis we need to start thinking on
Security is a Snapshot in Time
Security is a snapshot in time
Tomorrow is a new day full of drama on Twitter!
Today is a great day to deprecate a system
Move user data to a safer and better place
The person building the system decides when that
snapshot is taken.
Let’s take a look at the game… .
The game if it was fair.
Release
Value Starts
to Shift
Attacker Start
Bugs Found
Value Gets Exploited
Users Start to Shift
Greenfield Everything
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftReaction
Shipping with Known Vulns?
Release
Value Starts
to Shift
Attackers Start Value Gets Exploited
Users Start to ShiftReaction
Shipping with Unknown Vulns in ?
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftPatching
Bugs Found
Force Attackers to Spend Time
User Movement
Fast Patching
Training
Design Review
Manual Testing/Code Reviews
Fuzzing
Where can we force more time spent?
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftReaction
Zoom in For a Second
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftReaction
Can we get here?
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to Shift
Patching ends a timeline for subset of users
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited?
Users Start to Shift
User Movement
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftReaction
Move the Critical From the Indefensible
Using user momentum to guide next security efforts
Take the snapshot as close as today as possible.
Start the clock when it moves in
Rent is due every day
Patching
Don’t pay rent? Time for your secure bits to go.
Will never shrink the long tail without an external
legal and audit requirement
Even then things aren’t going to magically be rebuilt
Training
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftReaction
Design Review
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftReaction
Code Review and Testing
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftReaction
Fuzz Testing
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftReaction
Fuzz Testing
Exploit the fact that machine time is cheap.
Make every builder a breaker!
We recommend www.peachfuzzer.com
Fuzzing doesn’t find every bug but it finds a lot.
It’s not going to fix your password problems.
Forces attackers to spend more time in different
ways
Closes security and reliability holes
Takes a tool from an attacker
Fuzzing Application and Hardware
Targeting application inputs with malicious data
Different for smart and dumb fuzzing
Try thousands or millions of variants
Machine time is cheap human time is not!
Scales, trivially parallel problem
What is This Fuzzing Stuff?
Target: Data Consumers
Data: Files (images, documents, etc.)
Data: Network packets (FTP, DNS, etc.)
Data: Web Service Calls
Data: GET/POST Parameters
Target: State Machines
State: Complex Protocols and Sessions
State: Internal Memory / References
State: Authentication and Authorization
Bugs Found via Fuzzing
Access violations
Hangs/Crashes
File/system access
Resource consumption
Simple design issues
Incorrect logic paths
Cross-site scripting*
SQL Injection*
Bugs that chain in
complex ways
Complex design and
logic issues
Found Less Found
Fuzzer On Multiple Products/Versions
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to ShiftReaction
Can we get here?
Release
Value Starts
to Shift
Attackers Start
Bugs Found
Value Gets Exploited
Users Start to Shift
Interested in fuzzing or Déjà vu Security?
www.peachfuzzer.com
www.dejavusecurity.com
Sales: [email protected]
Peach: [email protected]
Email: [email protected]
Twitter: @dejavusecurity, @peach_fuzzer,
@adamcecc