Organized Cybercrime is the most profitable
type of crime
Cybercrime was estimated to be worth 445 Billion Dollars a Year
United Nations Office on Drugs and Crime (UNODC) estimated globally the illicit drug
trade was worth 435 Billion Dollars
• Guess which one has the least risk to the criminal?
• Guess which is growing the fastest?
• Guess which one is the hardest to prosecute?
• Guess which one is predicted to real 2100 Billion Dollars by 2019
• Guess which one is predicted to real 6000 Billion Dollars by 2021
@spoole167
Now they make their own
Typosquatting
A lookalike
domain,
dependency with
one or two wrong
or different
characters
Open source
repo attacks
Build Tool
attacks
Attempts to get
malware or
weaknesses
added into
dependency
source via social
or tools
Attempts to get
malware into the
tools that are
used to produce
dependencies
Dependency
confusion
Attempts to get a
Different version
added into a binary
repository
Often “latest”
@spoole167
The
Executive
Order
Recognizes the need to form a united front
against “malicious cyber actors”
Outlines a direction for closer working between
all parts of the software industry
Adds new requirements on software vendors
selling to the US government
Will change how we produce and consume
software.
@spoole167
Hardening the software supply
chain : every product
has a SBOM
uses an automatic
supply chain process
has evidence of
software integrity
has evidence of
an automatic
vulnerability check
process
Has a vulnerability
disclosure program
Has evidence on the
providence of all
software used
Demonstrates strong
controls over the use
of internal and third-
party software and
services
Demonstrate regular
audit processes
@spoole167
SBOM – the new important term
on the horizon
cyclonedx.org spdx.dev
@spoole167
And is always
incomplete
Or even faked
Payroll App V1
Web Server
05.1.2
Acme
Framework
What’s in the
runtimes?
What tools were used to
build?
@spoole167
Web Server
05.1.2
Acme
Framework
Payroll App V1
Runtime V2
OS V3.4
Compiler V9
CI/CD V2
OS V6
Compiler
Environmental
Information
All componentry
SBOMs are intended to cover ‘everything’
Time to EXPLOIT?
Source: Adapted from IBM X-Force / Analysis by Gartner Research (September 2016)
Year of Date Reported
2006 2007 2008 2009 2010 2011 2012 2013 2104 2015
10
20
30
40
50
0
Average
Days
to
Exploit
Average
45
15
2017
@spoole167
The way you build
software is going to
change
You can expect every government
to follow suit on this sort of
initiative
Even if you're not selling directly,
you could be in a chain that is
The prediction is that by 2025 every
software vendor, open source
project etc will have to provide this
proof
Manual anything is going to be
problematic
@spoole167
You will
need to be able to track back exactly how,
where and with what your s/w was built.
To be able to deal with an increase in
the number of reported vulnerabilities
Be able to build your s/w automatically
at a moments notice
To provide to others your ‘SBOM’
The next wave
is moving from
IAC to EAC
(Everything as
code)
The way you
choose open
source
software is
going to
change
What do you do if a open-source component
you rely on doesn’t comply?
How much risk are you willing to take?
Even if they say yes - how much can you trust
them?
Do they have an SBOM?
What’s their ability to provide updates.
What’s their security posture.
No more: is is it
free and does it
do what I want?
@spoole167
Evaluating open-source projects
means more than checking their
license
License
Vulnerability
reporting process
Development
process (how to
they review
contributions)
Build process – is
it secure? Who
can trigger it?
General
assessment of
their quality
(MTTU)
@spoole167
Exploitation comes often from
simple mistakes
Clean code
Defensive architecture
comprehensive tests
Exception path testing
Useful error messages
Test dependencies
Compartmentalisation of data
Secured pipelines
No ‘dev mode’
Code Reviews
Thinking defensively
…
And poor behavior
Ever googled for:
“very trusting trust manager”
“Getting Java to accept all certs over HTTPS”
“How to Trust Any SSL Certificate”
“Disable Certificate Validation in Java”
We’ve found 72,609 code results
AlwaysValidTrustManager
TrustAllServersWrappingTrustManager
A very friendly, accepting trust
manager factory. Allows anything
through. all kind of certificates are
accepted and trusted.
A very trusting trust manager that
accepts anything
// Install the all-trusting trust
manager
OverTrustingTrustProvider
AllTrustingSecurityManagerPlugin.java
AcceptingTrustManagerFactory.java
AllTrustingCertHttpRequester.java
And poor behavior
curl –insecure
wget --no-check-certificate
sudo apt-get --allow-unauthenticated
And by not understanding the
code and tools we use
“I thought I was using the tool correctly”
“I didn’t realize what the default setting was”
“I trusted the tool to do the right thing”
@spoole167
IF you contribute to open source
• Take these behaviors with you
• Think about software safety
• Think defensively.
@spoole167
Summary
Cyber attacks have entered a
new and aggressive phase
Automated, evidence based Everything-
as-code is the direction
Open Source is still the primary
vector
Risk of attack is rising
dramatically
BYO pipelines will get replaced by
commercial ones
Consuming open source directly will
reduce. You’ll pay for trusted versions
How we write code must
change
How we work with other developers will
change
Takeaways
• The days of just taking software off the shelf are numbered :
choose software based on how it’s produced not just what it does
• Evidence based trust will become essential : Your own supply chain
– the software you use, how you develop, how you deploy will become
a certified step in someone else's evidence chain.
• A complex and challenging new world lies ahead. GDPR changed
how we thought and deal with user information – supply chains are
going to get the same sort of scrutiny.
• Software is critical to every facet of our lives – the world has woken
up to that .
@spoole167