Presentation8 - University Of Worcester
Download
Report
Transcript Presentation8 - University Of Worcester
COMP3371
Cyber Security
Richard Henson
University of Worcester
November 2016
Week 8: Breach Prevention
Strategies
Objectives:
Compare B2B and B2C use of https to
knowledge/ignorance of PKI and differences
between “business trust” and “consumer trust”
Explain why websites are so often hacked when
PKI has been around/trusted for so many years
Explain that applications software and even
operating systems are flawed and the crucial
importance of using “updates”
Explain licensing and life-cycle support for
software
Global Use of SSL/PKI
Recap of start of PKI as (mis)used by business:
https://www.sans.org/readingroom/whitepapers/vpns/business-perspective-pki-pkiimplementations-fail-success-factors-728
Reports from early days of https… (2000):
"Online shopping gets a bad rap in the press, but most of the
stories reported are anecdotal tales of companies that haven't
put successful defensive measures in place“
"Web businesses running proper screening of customer
information are suffering very little, with average fraud losses
held to just over 1%.”
“Fraud control is clearly possible online, although many
companies do not implement stringent screening and prevention
measures.”
Security and Online trading as the
Information Society progressed…
More and more businesses bought into PKI
It was expected that these early problems were
just “teething troubles” with using new
technology and would soon fade away…
Data on the move:
Encryption is not enough!
The other aspect of SSL/PKI is the
establishment of trust between online vendors
and customers
usually achieved by using encryption AND providing
a digital certificate system:
» verifies the identity at each end of the communication link
» thereby authenticating the server/user
The savvy user knows about digital certificates
and expects to be able to view them online
“Mature” use of PKI?
15 years on, larger companies use SSL/PKI
for secure communications as a matter of
course!
Conclusion: PKI is industry-standard technology
But…
(1) companies not applying strict security
measures correctly are:
» being defrauded
» skewing the statistics for more responsible online traders
(2) human error/computer misuse through
software vulnerabilities continue…
So, 16 years on…
What is being done… and
what COULD be done!
Problem:
is PKI implemented correctly?
What about smaller companies with
less expertise?
Who bothers to check?
» student research… alarming?
» action?? ???
Solution… soon!
Google’s Browser will check!
From early 2017, Google Chrome will
check links and show any https link that
has flaws…
https://www.wired.com/2016/11/googleschrome-hackers-flip-webs-security-model/
Now explained on BrightTalk webinar…
Hopefully, other Browser manufacturers
will follow this excellent practice!
Security Differences between
B2B and B2C
B2B link has “business trust”
set up properly for online trading:
use server certificates on web servers
use SSL to ensure data is encrypted
train users to be aware of danger signs
share data in a limited way between
organisations
B2C: customer only accesses web pages
uses shopping cart system to purchase
B2C and Website Vulnerability
Small businesses outsource many of
their business functions
Including:
development of website
putting website on an Internet-facing
webserver
Website Vulnerabilities
The Website must have direct access to
the Internet
so Internet have direct access to website
folder on webserver
webbots can gather information about the
business…
» find weak links in the website!
» and possibly weaknesses on the server
» e.g. “Heartbleed not patched!”
http://heartbleed.com/
Software Layers and
Operating Systems (OS)
Applications
os functions & user interface
os kernel
CPU, motherboard
What if the Operating System
has software faults?
The platform becomes “unstable”!!
Could be errors in
hardware control?
user interface?
utilities?
What would happen to:
applications running on a poorly designed
platform?
businesses depending on such apps?
“Good” and “Bad”
programming
Apollo missions to the moon
first use of programming for control
“because manual not possible…”
Programming used to:
put Apollo spacecraft into moon orbit
land a small craft and two astronauts
Early example of
excellent software
Moon landing
software (1969)…
& final Presidential
acclaim for safe
coding (2016)
» http://www.floridatoday
.com/story/tech/scienc
e/space/2016/11/26/ob
ama-honors-apollosoftware-developermargarethamilton/94477822/
https://www.youtube.com/watch?v=X1
PNp_YggAA
“Moon Lander” Program
Retro rockets of falling LEM vehicle
Balanced against moon gravity
Limited amount of fuel…
Version written for BASIC
Very popular early microcomputer game
What happened to
“Moon Lander”?
In reality…
start of the embedded system revolution
“A small step for man… a giant step for
mankind”…
Yes, in many ways!
Is software always safe?
Written by humans!
Depends how it is:
designed
coded
Tested
Lots could… and does… go wrong
too much trust?
not enough testing?
Other Apollo Programming
had vulnerability (!)
Apollo guidance system – correct angle
on entry into lunar orbit
written in Fortran (Formula Translation)
» most popular engineering/technology language
before “C”
Fine in Apollo missions 8-12…
but crucial flaw: near catastrophe… on
Apollo 13 (remember the film?)
» https://www.youtube.com/watch?v=kAmsi05P9Uw
Vulnerabilities and Breaches
(statistics)
Apollo failure caused by lack of variable
reset to zero (initialisation)
vulnerabilities kept occurring
control systems need careful testing
failure could be fatal
Need for an engineering approach!
B2C Software
Consumer buys a license to use
software during its lifecycle…
NOT the software itself!
License may become invalid (or
useless…) if software no longer
supported
consumer potentially unaware
also applies to operating systems (!)
Publishing of Vulnerabilities
Many disturbing examples of data
breaches…
and software vulnerabilities that provided
access for hackers
Records of Internet exploitable
vulnerabilities finally kept…
US security organisation Mitre
» https://cve.mitre.org/cve/cve.html
Good for Consumers
With Mitre initiative…
Software companies with faulty code
named and shamed…
Embarrassing…
Over time, software will get better
i.e. fewer flaws!
Software Faults & CWE
Lot of recent interest in why – 40+ years after
Apollo - software (even operating systems…)
can be unreliable!!!
Mitre…
classified software fault types through Common
Weakness/Vulnerability Enumeration (CWE/CVE)
» community support
» formal published list weaknesses/vulnerabilities
Intended use?
to better describe software weaknesses in
architecture, design, or code
24
[TSI/2012/183]
© Copyright 2003-2012
More about CWE
Full list of CWE entries…
http://cwe.mitre.org/data
more commonly encountered weaknesses
usually “repeat offenders”
CWE provides:
standard measuring stick for software tools
targeting software weaknesses
common baseline standard for efforts to
identify, mitigate, and prevent software
weaknesses
Top 25 (most hacked) vulnerabilities… PTO
CWE Top 25 faults (part 1)
Rank
ID
Name
1
CWE-79
2
CWE-89
3
CWE-120
4
5
6
7
CWE-352
CWE-285
CWE-807
CWE-22
8
9
CWE-434
CWE-78
10
11
12
13
CWE-311
CWE-798
CWE-805
CWE-98
Failure to Preserve Web Page Structure ('Cross-site
Scripting')
Improper Sanitization of Special Elements used in an
SQL Command ('SQL Injection')
Buffer Copy without Checking Size of Input ('Classic
Buffer Overflow')
Cross-Site Request Forgery (CSRF)
Improper Access Control (Authorization)
Reliance on Untrusted Inputs in a Security Decision
Improper Limitation of a Pathname to a Restricted
Directory ('Path Traversal')
Unrestricted Upload of File with Dangerous Type
Improper Sanitization of Special Elements used in an OS
Command ('OS Command Injection')
Missing Encryption of Sensitive Data
Use of Hard-coded Credentials
Buffer Access with Incorrect Length Value
Improper Control of Filename for Include/Require
Statement in PHP Program ('PHP File Inclusion') [TSI/2012/183]
© Copyright 2003-2012
CWE Top 25 faults (part 2)
Rank
ID
14
15
CWE-129 Improper Validation of Array Index
CWE-754 Improper Check for Unusual or Exceptional
Conditions
CWE-209 Information Exposure Through an Error Message
CWE-190 Integer Overflow or Wraparound
CWE-131 Incorrect Calculation of Buffer Size
CWE-306 Missing Authentication for Critical Function
CWE-494 Download of Code Without Integrity Check
CWE-732 Incorrect Permission Assignment for Critical
Resource
CWE-770 Allocation of Resources Without Limits or Throttling
CWE-601 URL Redirection to Untrusted Site ('Open Redirect')
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
CWE-362 Race Condition
16
17
18
19
20
21
22
23
24
25
Name
[TSI/2012/183]
© Copyright 2003-2012
Not just apps… Example of an
operating system flaw
Apple:
“dangerous” flaw revealed in iOS 7 and X
(21/2/14)
http://gizmodo.com/why-apples-hugesecurity-flaw-is-so-scary-1529041062
Dangers of not Updating…
Flaws in software being detected by Mitre
and others all the time…
usually published once a fix has been found!
» makes sense to update to a version that has had
vulnerabilities patched!
hackers will know all about any vulnerabilities
removed by an update, and will be eager to
exploit… those who haven’t updated (!)
Not just Apple, of course!
Microsoft update regularly, and
Windows 10 will receive updates in
perpetuity
excellent practice!
Earlier versions of Windows have a “cut
off date” for updates
Windows XP was April 2014!
Windows 2003 Server was July 2015…
Update Management
Essential to update all system and
application software as soon as
possible after release…
updates need to be tested…
And roll out planned accordingly!
e.g. operating system updates will require
reboot
» so “automatic” updates may cause problems!
» generally best for administrator to have an alert
and install updates asap (after testing!)
Latest versions of Applications
Same update principles apply to apps
updates free
may be required to upgrade to later version
» Office 2007 “updates” expiring in 2017!
again… test first… but may also be a cost!
Whether to upgrade
matter for fund-holder
is cost of upgrade/training justified:
» better security?
» increased productivity?
Updates and Development
Environments
Software, like apps
can and do have vulnerabilities
need updating like all other software
Use of insecure old version particularly
worrying…
development environments generate code
What if that code has vulnerabilities…?
Insecure Development
Environments
Many web page generator examples
available
Joomla… WordPress…
» more recent versions more likely to be secure
and still have updates
» older versions no longer supported so code
generated is vulnerable!
Java Run-time…
regular updates
» potential knock-on effects for java apps…
Next Week…
Web vulnerabilities & Vulnerability
Testing!
The New Google Chrome!