Sean Sullivan
October 17, 2017
Portland Java Users Group
Slide 2
Slide 2 text
• software engineer
• 21 years on the JVM
• Scala since 2011
• back office systems
About me
Java is fine.
Slide 3
Slide 3 text
September 7, 2017
Slide 4
Slide 4 text
www.equifax.com
Slide 5
Slide 5 text
Last Week Tonight — October 15, 2017
Slide 6
Slide 6 text
Last Week Tonight — October 15, 2017
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
We know that criminals exploited a US website
application vulnerability.
The vulnerability was Apache Struts CVE-2017-5638.
September 2017
Slide 11
Slide 11 text
https://nvd.nist.gov
Slide 12
Slide 12 text
The Jakarta Multipart parser in Apache Struts 2
2.3.x before 2.3.32 and 2.5.x before 2.5.10.1 has
incorrect exception handling and error-message
generation during file-upload
CVE-2017-5638
Slide 13
Slide 13 text
allows remote attackers to execute
arbitrary commands
CVE-2017-5638
Slide 14
Slide 14 text
via a crafted Content-Type, Content-Disposition,
or Content-Length HTTP header, as exploited in
the wild in March 2017 with a Content-Type
header containing a #cmd= string
CVE-2017-5638
security advice
from the
Apache Software Foundation
Slide 26
Slide 26 text
Understand which supporting frameworks and
libraries are used in your software products and
in which versions.
Keep track of security announcements affecting
this products and versions.
apache.org — September 9, 2017
Slide 27
Slide 27 text
Establish a process to quickly roll out a security
fix release of your software product once
supporting frameworks or libraries needs to be
updated for security reasons.
Best is to think in terms of hours or a few days,
not weeks or months.
apache.org — September 9, 2017
Slide 28
Slide 28 text
Any complex software contains flaws.
Don't build your security policy on the
assumption that supporting software products
are flawless
apache.org — September 9, 2017
Slide 29
Slide 29 text
Establish security layers.
It is good software engineering practice to have
individually secured layers behind a public-
facing presentation layer such as the Apache
Struts framework.
apache.org — September 9, 2017
Slide 30
Slide 30 text
Establish monitoring for unusual access
patterns to your public Web resources.
We recommend such monitoring as good
operations practice for business critical Web-
based services.
apache.org — September 9, 2017
Slide 31
Slide 31 text
Automatic patching?
Slide 32
Slide 32 text
I have talked to other software companies and people in
this space who say some companies have an automated
system that when a patch comes out it automatically gets
installed.
That is not what you had necessarily, right?
Rep Greg Walden
October 3, 2017
Slide 33
Slide 33 text
I am unaware of an automatic patch.
Richard Smith
former Equifax CEO
October 3, 2017
Slide 34
Slide 34 text
automatic
dependency
upgrades for
Scala
applications?