SlideShare a Scribd company logo
1 of 28
Download to read offline
ENTERPRISE JAVA
Just What Is It and
the Risks, Threats, and Exposures
It Poses
By Alex Senkevitch, CISSP, CISM
Milwaukee Chapter
Meeting
10 Jan 2017
i
WHAT’S IN STORE
1.0 Background (this stuff)
2.0 Facets of an Attack Surface
2.1 The Java Programming Language
2.2 Application Containers
2.3 Container Extensions
2.4 Third-Party Frameworks and Libraries
3.0 Where Are the Wild Things?
4.0 Q&A
i
YOUR SPEAKER TODAY IS…
Alex Senkevitch, CISSP, CISM
o Working in security research and architecture in Fortune 500/Global
2000 for 20 years
o Worked in embedded systems and network engineering before that
o Have patents in multi-tiered security and event analytics systems
o Have multiple reported CVEs in Enterprise Java architectures; and
o Routinely continue find 0-days on an ongoing basis (for clients)
o Primary research interests are in data manipulation and “full” application
stacks, specifically Java and node.js stacks
i
FIRST, SOME TERMINOLOGY…
Java
Enterprise Java
Application Container
Application Stack
FACETS OF AN ATTACK SURFACE 2.0
i
SO HOW COMPLEX IS ENTERPRISE JAVA ANYWAY?
o “Enterprise Java” is:
o A programming language
o A virtual machine
o A container
o A container
o A container
o Vendor container extensions
o Industry container extensions
o Third-party frameworks
o Third-party libraries
Aggregate Attack Surface
FACETS OF AN ATTACK SURFACE
2.1
The Java Programming
Language
i
WHAT’S IN A LANGUAGE
o Initially started in 1991 (called Oak), for an “interactive television” project @ Sun Microsystems
o First public preview (1.0) in 1995, called Java (after the coffee)
o Abstracted from the hardware (“machine code”) via “byte-code” model
o Sun’s initial claim: Apps could be “100% Java” (no native code needed)
o Had five (5) design goals for the language, one of which was very interesting…
­ Goal #2: “1.2.2: Robust and Secure” (http://www.oracle.com/technetwork/java/intro-141325.html#367):
“Java technology is designed to operate in distributed environments, which means that security is of paramount
importance. With security features designed into the language and run-time system, Java technology lets you construct
applications that can't be invaded from outside. In the network environment, applications written in the Java
programming language are secure from intrusion by unauthorized code attempting to get behind the scenes and
create viruses or invade file systems.
­ “The best laid schemes o’ Mice an’ Men…” –Robert Burns (More on this to follow…)
i
JDK8
CODEBASE COMPLEXITY
Java 8 represents a ~1,900% increase
in API size and complexity since JDK1.0
…and that doesn’t include any third-party
code
(source: Java 8 Pocket Guide book by Robert Liguori, Patricia Liguori)
1.0
i
HOW A LANGUAGE GETS EXECUTED
Once compiled to byte-code (i.e., the Java
opcodes), a virtual machine is needed to
process it
The class files (compiled byte-code) are fed in
They are parse and processed through to
The Execution Engine
The Execution Engine then interfaces with the
underlying OS
i
WHEN 100% IS MORE LIKE 82%
o The Java Platform is 100%, well, Java code…right?
o Remember the JVM’s “Execution Engine”
o It passes off anything that the Java APIs can’t do within the JVM itself to the Native Method Interface
o Like: file system access, network access, security management, etc.
o So, what does that mean to me?
o When byte-code language A doesn’t match native language B’s structure and alignment…
o Language primitive mismatch bypasses (e.g., NUL byte bypasses)
o Encoding bypasses (e.g., Overlong UTF-8 bypass)
NOPE!
i
GOAL #2: JAVA IS SECURE BY DEFAULT…RIGHT?
o It’s secure because goal #2 says so, right?
o Unfortunately, no.
o The Java Platform shows security wasn’t the primary design focus:
o Limited to no bounds checking
o ZipEntry class allows relative (“../”) paths
o String concatenation of parametric constructors
o The parametric URI class constructors concatenate supplied parameter values
o Weak XML processor behavior by default
o Most packaged XML parsers allow inline DTD processing by default (e.g., DocumentBuilderFactory)
i
THE JAVA COMMUNITY PROCESS (JCP)
Created by Sun Microsystems because they didn’t want to work with international
standards organizations (e.g., ISO)
The means by which additional functionality is introduced to the Java Platform
This is done by means of Java Specification Requests (JSR)
A JSR can be for something as small as a modified time format
Or as large as a a whole new container extension (e.g., the Portlet API, JSR 186 &
286)
i
UNDER THE HOOD: OBJECT SERIALIZATION
Java Serialization is Sun’s solution to the Marshalling/Unmarshalling problem in
Object Oriented Programming
Marshalling converts an object from its resident format in memory, to a serialized
(linear binary) format suitable to transmitting or storing
Unmarshalling is the reverse
Exposure:
­ Once marshalled, all protections of the JVM and language specification are removed
­ If used as form input, there’s no way to validate the input without processing it first (unmarshalling)
­ There are very limited restrictions that can be put on remote requests to marshall objects
i
UNDER THE HOOD: THE RMI API
Remote Method Invocation (RMI) API
Initially released in JDK 1.1 (Feb 1997)
Was Sun’s answer to Remote Procedure Calls (RPCs) in conventional systems
Initially only allowed communications from JVM to JVM
­ This manner of communications is called the Java Remote Method Protocol (JRMP)
­ It is the default transport protocol for RMI
Was later adapted to use CORBA to allow JVM to non-JVM communications
­ This manner of communication is called RMI over IIOP (RMI-IIOP)
­ This is used broadly by large commercial Enterprise Java containers
Between these two milestones, some vendors introduced their own proprietary protocols
­ WebLogic’s “T3” protocol—which is hard-wired into WebLogic to this day
FACETS OF AN ATTACK SURFACE 2.2
Application Containers
i
STATS 101: WHAT’S IN USE THESE DAYS
(source:
Java
Tools
and
Technologies
Landscape
2016;
RebelLabs)
o Majority are using open source
o Majority are using a “lightweight”
footprint
o For commercial products, dev
deployments != production
i
CONTAINER (IN)SECURITY
Apache Tomcat became the de facto reference implementation
With that, also came all of its bad designs and configurations:
­ The “AutoDeployer” functionality
­ Ability to access the application ClassLoader via web deployment configurations
­ The InvokerServlet (for objects, EJBs, etc.)
­ Has been adopted, in some form, by every commercial container incorporating Tomcat
­ Implied trust in the instrumentation implementation
­ Java Management Extensions (JMX) using Management Beans (MBeans) over insecure RMI servers
­ Tunneling of RMI, JMX, and other protocols in-band to HTTP
FACETS OF AN ATTACK SURFACE 2.3
Container Extensions
i
THERE ARE EXTENSIONS?!
Vendor extensions
IBM WebSphere
BEA/Oracle WebLogic
Oracle JBoss/WildFly
Industry extensions
OASIS
Eclipse Foundation
OSGi Alliance
JCP Extensions
JSR 186 & 286 – The Portlet API – Introduced the notion of a new container type: the Portal Server
FACETS OF AN ATTACK SURFACE
2.4
Third-Party Frameworks and
Libraries
i
TAXONOMY OF A FRAMEWORK OR LIBRARY
o Basically, anything not covered by the language, core APIs, or Java EE APIs
o “Enterprise” frameworks were rolled out before J2EE was
o It’s the reason J2EE came about
o They are unregulated relative to each other, or the core APIs
o The vast majority of code each framework or library introduces…is unused by the
application importing them!
o “I just need a template engine for my forms…maybe something with domain/range validation”
o The majority of an application’s deployed size is from third-party code
o Increased size == increased risks, threats, and exposures
i
WHAT’S IN USE TODAY
o Spring wins!
o But we see unmaintained
frameworks still in use (7% Struts)
(source:
Java
Tools
and
Technologies
Landscape
2016;
RebelLabs)
i
HOW BAD COULD IT BE?
Spring – remote code execution
Struts 1.x – remote arbitrary classloader access
Struts 2.x – remote arbitrary classloader access
Apache Jakarta Commons – remote code execution via Java serialization
manipulation
LIVE FIRE EXERCISES (DEMO)
Image: US Marines assigned to Mike
Battery, 4th Battalion, 14th Marines - 2004
WHERE ARE THE WILD THINGS?
3.0
Overt and Covert Places
Enterprise Java Appears
© Maurice Sendak
i
WHERE THEY LIVE
Overt Locations
Application Servers
Big Data servers
Android OS (Dalvik JVM)
Desktops
Covert Locations
Network applications
­ Most “black box” application servers
­ Mail gateways, SIP servers, etc.
Consumer devices (your new fridge)
­ IoT devices
­ Set-top boxes
­ SIP handsets
Database Engines
­ RDBMS SQL/J implementations
QUESTIONS & ANSWERS

More Related Content

What's hot

Oleksandr Valetskyy - Become a .NET dependency injection ninja with Ninject
Oleksandr Valetskyy - Become a .NET dependency injection ninja with NinjectOleksandr Valetskyy - Become a .NET dependency injection ninja with Ninject
Oleksandr Valetskyy - Become a .NET dependency injection ninja with NinjectOleksandr Valetskyy
 
.NET MALWARE THREATS -- BHACK CONFERENCE 2019
.NET MALWARE THREATS -- BHACK CONFERENCE 2019.NET MALWARE THREATS -- BHACK CONFERENCE 2019
.NET MALWARE THREATS -- BHACK CONFERENCE 2019Alexandre Borges
 
Mitigating Java Deserialization attacks from within the JVM
Mitigating Java Deserialization attacks from within the JVMMitigating Java Deserialization attacks from within the JVM
Mitigating Java Deserialization attacks from within the JVMApostolos Giannakidis
 
Introduction to iOS Penetration Testing
Introduction to iOS Penetration TestingIntroduction to iOS Penetration Testing
Introduction to iOS Penetration TestingOWASP
 
DevSecCon Boston 2018: Securing the Automated Pipeline: A Tale of Navigating ...
DevSecCon Boston 2018: Securing the Automated Pipeline: A Tale of Navigating ...DevSecCon Boston 2018: Securing the Automated Pipeline: A Tale of Navigating ...
DevSecCon Boston 2018: Securing the Automated Pipeline: A Tale of Navigating ...DevSecCon
 
Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)Guy Podjarny
 
AWS live hack: Docker + Snyk Container on AWS
AWS live hack: Docker + Snyk Container on AWSAWS live hack: Docker + Snyk Container on AWS
AWS live hack: Docker + Snyk Container on AWSEric Smalling
 
Devoid Web Application From SQL Injection Attack
Devoid Web Application From SQL Injection AttackDevoid Web Application From SQL Injection Attack
Devoid Web Application From SQL Injection AttackIJRESJOURNAL
 
Reversing & Malware Analysis Training Part 13 - Future Roadmap
Reversing & Malware Analysis Training Part 13 - Future RoadmapReversing & Malware Analysis Training Part 13 - Future Roadmap
Reversing & Malware Analysis Training Part 13 - Future Roadmapsecurityxploded
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldDevOps.com
 
DevSecCon Boston 2018: Secure by Design by Chris Wysopal
DevSecCon Boston 2018: Secure by Design by Chris WysopalDevSecCon Boston 2018: Secure by Design by Chris Wysopal
DevSecCon Boston 2018: Secure by Design by Chris WysopalDevSecCon
 
Security Patterns for Microservice Architectures - London Java Community 2020
Security Patterns for Microservice Architectures - London Java Community 2020Security Patterns for Microservice Architectures - London Java Community 2020
Security Patterns for Microservice Architectures - London Java Community 2020Matt Raible
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩vlymfb
 
Advanced Malware Analysis Training Session 8 - Introduction to Android
Advanced Malware Analysis Training Session 8 - Introduction to AndroidAdvanced Malware Analysis Training Session 8 - Introduction to Android
Advanced Malware Analysis Training Session 8 - Introduction to Androidsecurityxploded
 
Consulthink @ GDG Meets U - L'Aquila2014 - Codelab: Android Security -Il ke...
Consulthink @ GDG Meets U -  L'Aquila2014  - Codelab: Android Security -Il ke...Consulthink @ GDG Meets U -  L'Aquila2014  - Codelab: Android Security -Il ke...
Consulthink @ GDG Meets U - L'Aquila2014 - Codelab: Android Security -Il ke...Consulthinkspa
 
85320337 networking-case-study
85320337 networking-case-study85320337 networking-case-study
85320337 networking-case-studyhomeworkping3
 
Alexandre Borges - Advanced Malware: rootkits, .NET and BIOS/UEFI threats - D...
Alexandre Borges - Advanced Malware: rootkits, .NET and BIOS/UEFI threats - D...Alexandre Borges - Advanced Malware: rootkits, .NET and BIOS/UEFI threats - D...
Alexandre Borges - Advanced Malware: rootkits, .NET and BIOS/UEFI threats - D...DC2711 - DEF CON GROUP - Johannesburg
 

What's hot (19)

Oleksandr Valetskyy - Become a .NET dependency injection ninja with Ninject
Oleksandr Valetskyy - Become a .NET dependency injection ninja with NinjectOleksandr Valetskyy - Become a .NET dependency injection ninja with Ninject
Oleksandr Valetskyy - Become a .NET dependency injection ninja with Ninject
 
.NET MALWARE THREATS -- BHACK CONFERENCE 2019
.NET MALWARE THREATS -- BHACK CONFERENCE 2019.NET MALWARE THREATS -- BHACK CONFERENCE 2019
.NET MALWARE THREATS -- BHACK CONFERENCE 2019
 
Mitigating Java Deserialization attacks from within the JVM
Mitigating Java Deserialization attacks from within the JVMMitigating Java Deserialization attacks from within the JVM
Mitigating Java Deserialization attacks from within the JVM
 
Sample06
Sample06Sample06
Sample06
 
Introduction to iOS Penetration Testing
Introduction to iOS Penetration TestingIntroduction to iOS Penetration Testing
Introduction to iOS Penetration Testing
 
DevSecCon Boston 2018: Securing the Automated Pipeline: A Tale of Navigating ...
DevSecCon Boston 2018: Securing the Automated Pipeline: A Tale of Navigating ...DevSecCon Boston 2018: Securing the Automated Pipeline: A Tale of Navigating ...
DevSecCon Boston 2018: Securing the Automated Pipeline: A Tale of Navigating ...
 
Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)
 
AWS live hack: Docker + Snyk Container on AWS
AWS live hack: Docker + Snyk Container on AWSAWS live hack: Docker + Snyk Container on AWS
AWS live hack: Docker + Snyk Container on AWS
 
Devoid Web Application From SQL Injection Attack
Devoid Web Application From SQL Injection AttackDevoid Web Application From SQL Injection Attack
Devoid Web Application From SQL Injection Attack
 
Reversing & Malware Analysis Training Part 13 - Future Roadmap
Reversing & Malware Analysis Training Part 13 - Future RoadmapReversing & Malware Analysis Training Part 13 - Future Roadmap
Reversing & Malware Analysis Training Part 13 - Future Roadmap
 
App locker
App lockerApp locker
App locker
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote World
 
DevSecCon Boston 2018: Secure by Design by Chris Wysopal
DevSecCon Boston 2018: Secure by Design by Chris WysopalDevSecCon Boston 2018: Secure by Design by Chris Wysopal
DevSecCon Boston 2018: Secure by Design by Chris Wysopal
 
Security Patterns for Microservice Architectures - London Java Community 2020
Security Patterns for Microservice Architectures - London Java Community 2020Security Patterns for Microservice Architectures - London Java Community 2020
Security Patterns for Microservice Architectures - London Java Community 2020
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 
Advanced Malware Analysis Training Session 8 - Introduction to Android
Advanced Malware Analysis Training Session 8 - Introduction to AndroidAdvanced Malware Analysis Training Session 8 - Introduction to Android
Advanced Malware Analysis Training Session 8 - Introduction to Android
 
Consulthink @ GDG Meets U - L'Aquila2014 - Codelab: Android Security -Il ke...
Consulthink @ GDG Meets U -  L'Aquila2014  - Codelab: Android Security -Il ke...Consulthink @ GDG Meets U -  L'Aquila2014  - Codelab: Android Security -Il ke...
Consulthink @ GDG Meets U - L'Aquila2014 - Codelab: Android Security -Il ke...
 
85320337 networking-case-study
85320337 networking-case-study85320337 networking-case-study
85320337 networking-case-study
 
Alexandre Borges - Advanced Malware: rootkits, .NET and BIOS/UEFI threats - D...
Alexandre Borges - Advanced Malware: rootkits, .NET and BIOS/UEFI threats - D...Alexandre Borges - Advanced Malware: rootkits, .NET and BIOS/UEFI threats - D...
Alexandre Borges - Advanced Malware: rootkits, .NET and BIOS/UEFI threats - D...
 

Similar to Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses

A CASE STUDY JAVA IS SECURE PROGRAMMING LANGUAGE
A CASE STUDY  JAVA IS SECURE PROGRAMMING LANGUAGEA CASE STUDY  JAVA IS SECURE PROGRAMMING LANGUAGE
A CASE STUDY JAVA IS SECURE PROGRAMMING LANGUAGENathan Mathis
 
OBJECT ORIENTED ROGRAMMING With Question And Answer Full
OBJECT ORIENTED ROGRAMMING With Question And Answer  FullOBJECT ORIENTED ROGRAMMING With Question And Answer  Full
OBJECT ORIENTED ROGRAMMING With Question And Answer FullManas Rai
 
JAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxJAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxSuganthiDPSGRKCW
 
Java Lecture 1
Java Lecture 1Java Lecture 1
Java Lecture 1Qualys
 
FRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONINGFRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONINGSatish Chandra
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptRajeshSukte1
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptCDSukte
 
best java training center in chennai
best java training center in chennaibest java training center in chennai
best java training center in chennaisathis est
 
Java and its features
Java and its featuresJava and its features
Java and its featuresPydi Nikhil
 
What are the popular features of java?
What are the popular features of java?What are the popular features of java?
What are the popular features of java?kanchanmahajan23
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...sparkfabrik
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about javakanchanmahajan23
 

Similar to Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses (20)

Java-Unit-I.ppt
Java-Unit-I.pptJava-Unit-I.ppt
Java-Unit-I.ppt
 
A CASE STUDY JAVA IS SECURE PROGRAMMING LANGUAGE
A CASE STUDY  JAVA IS SECURE PROGRAMMING LANGUAGEA CASE STUDY  JAVA IS SECURE PROGRAMMING LANGUAGE
A CASE STUDY JAVA IS SECURE PROGRAMMING LANGUAGE
 
OBJECT ORIENTED ROGRAMMING With Question And Answer Full
OBJECT ORIENTED ROGRAMMING With Question And Answer  FullOBJECT ORIENTED ROGRAMMING With Question And Answer  Full
OBJECT ORIENTED ROGRAMMING With Question And Answer Full
 
Java introduction
Java introductionJava introduction
Java introduction
 
FEATURES OF JAVA
FEATURES OF JAVAFEATURES OF JAVA
FEATURES OF JAVA
 
JAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxJAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptx
 
Java Lecture 1
Java Lecture 1Java Lecture 1
Java Lecture 1
 
FRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONINGFRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONING
 
CORE JAVA
CORE JAVACORE JAVA
CORE JAVA
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.ppt
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.ppt
 
best java training center in chennai
best java training center in chennaibest java training center in chennai
best java training center in chennai
 
Java and its features
Java and its featuresJava and its features
Java and its features
 
What are the popular features of java?
What are the popular features of java?What are the popular features of java?
What are the popular features of java?
 
JavaSecure
JavaSecureJavaSecure
JavaSecure
 
Java 2 computer science.pptx
Java 2 computer science.pptxJava 2 computer science.pptx
Java 2 computer science.pptx
 
1 .java basic
1 .java basic1 .java basic
1 .java basic
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
 
Remote Web Desk
Remote Web DeskRemote Web Desk
Remote Web Desk
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about java
 

Recently uploaded

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 

Recently uploaded (20)

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 

Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses

  • 1. ENTERPRISE JAVA Just What Is It and the Risks, Threats, and Exposures It Poses By Alex Senkevitch, CISSP, CISM Milwaukee Chapter Meeting 10 Jan 2017
  • 2. i WHAT’S IN STORE 1.0 Background (this stuff) 2.0 Facets of an Attack Surface 2.1 The Java Programming Language 2.2 Application Containers 2.3 Container Extensions 2.4 Third-Party Frameworks and Libraries 3.0 Where Are the Wild Things? 4.0 Q&A
  • 3. i YOUR SPEAKER TODAY IS… Alex Senkevitch, CISSP, CISM o Working in security research and architecture in Fortune 500/Global 2000 for 20 years o Worked in embedded systems and network engineering before that o Have patents in multi-tiered security and event analytics systems o Have multiple reported CVEs in Enterprise Java architectures; and o Routinely continue find 0-days on an ongoing basis (for clients) o Primary research interests are in data manipulation and “full” application stacks, specifically Java and node.js stacks
  • 4. i FIRST, SOME TERMINOLOGY… Java Enterprise Java Application Container Application Stack
  • 5. FACETS OF AN ATTACK SURFACE 2.0
  • 6. i SO HOW COMPLEX IS ENTERPRISE JAVA ANYWAY? o “Enterprise Java” is: o A programming language o A virtual machine o A container o A container o A container o Vendor container extensions o Industry container extensions o Third-party frameworks o Third-party libraries Aggregate Attack Surface
  • 7. FACETS OF AN ATTACK SURFACE 2.1 The Java Programming Language
  • 8. i WHAT’S IN A LANGUAGE o Initially started in 1991 (called Oak), for an “interactive television” project @ Sun Microsystems o First public preview (1.0) in 1995, called Java (after the coffee) o Abstracted from the hardware (“machine code”) via “byte-code” model o Sun’s initial claim: Apps could be “100% Java” (no native code needed) o Had five (5) design goals for the language, one of which was very interesting… ­ Goal #2: “1.2.2: Robust and Secure” (http://www.oracle.com/technetwork/java/intro-141325.html#367): “Java technology is designed to operate in distributed environments, which means that security is of paramount importance. With security features designed into the language and run-time system, Java technology lets you construct applications that can't be invaded from outside. In the network environment, applications written in the Java programming language are secure from intrusion by unauthorized code attempting to get behind the scenes and create viruses or invade file systems. ­ “The best laid schemes o’ Mice an’ Men…” –Robert Burns (More on this to follow…)
  • 9. i JDK8 CODEBASE COMPLEXITY Java 8 represents a ~1,900% increase in API size and complexity since JDK1.0 …and that doesn’t include any third-party code (source: Java 8 Pocket Guide book by Robert Liguori, Patricia Liguori) 1.0
  • 10. i HOW A LANGUAGE GETS EXECUTED Once compiled to byte-code (i.e., the Java opcodes), a virtual machine is needed to process it The class files (compiled byte-code) are fed in They are parse and processed through to The Execution Engine The Execution Engine then interfaces with the underlying OS
  • 11. i WHEN 100% IS MORE LIKE 82% o The Java Platform is 100%, well, Java code…right? o Remember the JVM’s “Execution Engine” o It passes off anything that the Java APIs can’t do within the JVM itself to the Native Method Interface o Like: file system access, network access, security management, etc. o So, what does that mean to me? o When byte-code language A doesn’t match native language B’s structure and alignment… o Language primitive mismatch bypasses (e.g., NUL byte bypasses) o Encoding bypasses (e.g., Overlong UTF-8 bypass) NOPE!
  • 12. i GOAL #2: JAVA IS SECURE BY DEFAULT…RIGHT? o It’s secure because goal #2 says so, right? o Unfortunately, no. o The Java Platform shows security wasn’t the primary design focus: o Limited to no bounds checking o ZipEntry class allows relative (“../”) paths o String concatenation of parametric constructors o The parametric URI class constructors concatenate supplied parameter values o Weak XML processor behavior by default o Most packaged XML parsers allow inline DTD processing by default (e.g., DocumentBuilderFactory)
  • 13. i THE JAVA COMMUNITY PROCESS (JCP) Created by Sun Microsystems because they didn’t want to work with international standards organizations (e.g., ISO) The means by which additional functionality is introduced to the Java Platform This is done by means of Java Specification Requests (JSR) A JSR can be for something as small as a modified time format Or as large as a a whole new container extension (e.g., the Portlet API, JSR 186 & 286)
  • 14. i UNDER THE HOOD: OBJECT SERIALIZATION Java Serialization is Sun’s solution to the Marshalling/Unmarshalling problem in Object Oriented Programming Marshalling converts an object from its resident format in memory, to a serialized (linear binary) format suitable to transmitting or storing Unmarshalling is the reverse Exposure: ­ Once marshalled, all protections of the JVM and language specification are removed ­ If used as form input, there’s no way to validate the input without processing it first (unmarshalling) ­ There are very limited restrictions that can be put on remote requests to marshall objects
  • 15. i UNDER THE HOOD: THE RMI API Remote Method Invocation (RMI) API Initially released in JDK 1.1 (Feb 1997) Was Sun’s answer to Remote Procedure Calls (RPCs) in conventional systems Initially only allowed communications from JVM to JVM ­ This manner of communications is called the Java Remote Method Protocol (JRMP) ­ It is the default transport protocol for RMI Was later adapted to use CORBA to allow JVM to non-JVM communications ­ This manner of communication is called RMI over IIOP (RMI-IIOP) ­ This is used broadly by large commercial Enterprise Java containers Between these two milestones, some vendors introduced their own proprietary protocols ­ WebLogic’s “T3” protocol—which is hard-wired into WebLogic to this day
  • 16. FACETS OF AN ATTACK SURFACE 2.2 Application Containers
  • 17. i STATS 101: WHAT’S IN USE THESE DAYS (source: Java Tools and Technologies Landscape 2016; RebelLabs) o Majority are using open source o Majority are using a “lightweight” footprint o For commercial products, dev deployments != production
  • 18. i CONTAINER (IN)SECURITY Apache Tomcat became the de facto reference implementation With that, also came all of its bad designs and configurations: ­ The “AutoDeployer” functionality ­ Ability to access the application ClassLoader via web deployment configurations ­ The InvokerServlet (for objects, EJBs, etc.) ­ Has been adopted, in some form, by every commercial container incorporating Tomcat ­ Implied trust in the instrumentation implementation ­ Java Management Extensions (JMX) using Management Beans (MBeans) over insecure RMI servers ­ Tunneling of RMI, JMX, and other protocols in-band to HTTP
  • 19. FACETS OF AN ATTACK SURFACE 2.3 Container Extensions
  • 20. i THERE ARE EXTENSIONS?! Vendor extensions IBM WebSphere BEA/Oracle WebLogic Oracle JBoss/WildFly Industry extensions OASIS Eclipse Foundation OSGi Alliance JCP Extensions JSR 186 & 286 – The Portlet API – Introduced the notion of a new container type: the Portal Server
  • 21. FACETS OF AN ATTACK SURFACE 2.4 Third-Party Frameworks and Libraries
  • 22. i TAXONOMY OF A FRAMEWORK OR LIBRARY o Basically, anything not covered by the language, core APIs, or Java EE APIs o “Enterprise” frameworks were rolled out before J2EE was o It’s the reason J2EE came about o They are unregulated relative to each other, or the core APIs o The vast majority of code each framework or library introduces…is unused by the application importing them! o “I just need a template engine for my forms…maybe something with domain/range validation” o The majority of an application’s deployed size is from third-party code o Increased size == increased risks, threats, and exposures
  • 23. i WHAT’S IN USE TODAY o Spring wins! o But we see unmaintained frameworks still in use (7% Struts) (source: Java Tools and Technologies Landscape 2016; RebelLabs)
  • 24. i HOW BAD COULD IT BE? Spring – remote code execution Struts 1.x – remote arbitrary classloader access Struts 2.x – remote arbitrary classloader access Apache Jakarta Commons – remote code execution via Java serialization manipulation
  • 25. LIVE FIRE EXERCISES (DEMO) Image: US Marines assigned to Mike Battery, 4th Battalion, 14th Marines - 2004
  • 26. WHERE ARE THE WILD THINGS? 3.0 Overt and Covert Places Enterprise Java Appears © Maurice Sendak
  • 27. i WHERE THEY LIVE Overt Locations Application Servers Big Data servers Android OS (Dalvik JVM) Desktops Covert Locations Network applications ­ Most “black box” application servers ­ Mail gateways, SIP servers, etc. Consumer devices (your new fridge) ­ IoT devices ­ Set-top boxes ­ SIP handsets Database Engines ­ RDBMS SQL/J implementations