SlideShare a Scribd company logo
1 of 34
Download to read offline
OpenDayLight
Security
Security response and secure
engineering processes
David Jorm: david.jorm@gmail.com
Outline
● Introduction
● Common Java security vulnerabilities
● Security response best practices
● Secure engineering best practices
● ODL security: current status
● ODL security: vision
Introduction: David Jorm
● Software engineer for 15 years, climatology domain
● Last 5 years focusing on security, mainly Java
● Managed Red Hat's Java middleware security team
● Now a product security engineer for IIX, and a
member of the ODL security response team
● I love finding new 0day and popping shells!
david.jorm@gmail.com
Common Java security vulnerabilities
Authentication bypasses
● Logic errors in security constraints
● Incorrect paths, path wildcards
● HTTP verb/method tampering: security
constraints restricted to specific
verbs/methods
● HEAD method used for tampering. RFC2616:
“In particular, the convention has been established that the GET and HEAD
methods SHOULD NOT have the significance of taking an action other
than retrieval”
“The HEAD method is identical to GET except that the server MUST NOT
return a message-body in the response. The metainformation contained
in the HTTP headers in response to a HEAD request SHOULD be identical
to the information sent in response to a GET request.”
CVE-2014-0121
● hawt.io project includes web-based admin
terminal:
http://localhost:8181/hawtio/hawtio-karaf-termina
l/term
● CVE-2014-0120: CSRF
● AuthenticationFilter.java
M1: CVE-2014-0121
● Remote unauthenticated command execution
● Live demo
● Patch for AuthenticationFilter.java
● Full patch commit:
https://github.com/hawtio/hawtio/commit/52897
15e4f2657562fdddcbad830a30969b96e1e
XXE (everywhere!)
● General entity attacks
● Parameter entity attacks
● Most Java APIs do not disable entity expansion by
default
● Relies on developers following best practices, e.g.
from OWASP
OWASP XXE guidelines
● It wasn’t always this way:
Netconf CVE-2014-5035
● Netconf API processes user-supplied XML (also
restconf)
● Example vuln code: controller / opendaylight/netconf/netconf-
util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java
● Example exploit...
RCE – EL interpolation
● Various expression languages are commonly used
in Java libraries
● MVEL is one example
● Generally speaking, if an attacker can supply EL,
they can execute arbitrary code on the server
● How can an attacker supply EL?
CVE-2013-4486
● Zanata is an open source translation memory
platform built on Seam
● Seam evaluates EL in log messages. If code
performs string concatenation with user-supplied
input to create the log messages, an attacker can
inject EL (Credit: Adrian Hayes)
● Zanata would log user-supplied strings using string
concatenation
RCE – XML deserialization
● Alternative XML-based serialization formats
● JAXB is the standard (no known flaws)
● Other XML serialization libraries exist, and have
exposed security issues leading to RCE
● We’ll look at two examples: XMLDecoder and
XStream
XMLDecoder
● XMLDecoder’s XML format can represent a series of
methods that will be called to reconstruct an object
● If XMLDecoder is used to deserialize untrusted
input, arbitrary code can be injected into the XML
● Example: Restlet CVE-2013-4221. Fixed by
removing vulnerable functionality.
XStream
Reflection-based deserialization
Has a special handler for dynamic proxies
(implementations of interfaces)
Attackers can provide XML representing a dynamic
proxy class, which implements the interface of a
class the application might expect
Dynamic proxy implements a handler that calls
arbitrary code when any members of the
deserialized class are called
Vulnerable components: Spring OXM, Sonatype
Nexus, Jenkins
XStream in Jenkins
● Jenkins XML API uses XStream to deserialize input
● Access to XML API -> RCE (but not such a huge
deal)
● Live demo
● Solution: blocked DynamicProxyConverter in
XStream wrapper class
● Upstream solution: whitelisting, with dynamic
proxies excluded by default
● More information:
https://securityblog.redhat.com/2014/01/23/java-dese
rialization-flaws-part-2-xml-deserialization/
Security response best practices
Open Source Security Response
● All information public
● Not just source code: bug trackers, mailing lists,
etc.
● Security requires the opposite approach:
information must be kept private until patches are
available
● How do you handle this in the context of an open
source project?
● A dedicated security team with a documented
process
Open Source Security Response
● Dedicated mechanism for reporting security issues,
separate to normal bugs
● Dedicated team with a documented process for
responding to these reports
● Ability to quickly build a patch asynchronous to
normal release schedules
● Clear documentation of the issue in an advisory,
including references to patch commits (advantage
of open source)
Secure engineering best practices
Open Source Secure Engineering
● No well established best practices
● Few good examples in the open source world.
Proprietary software currently does this better, e.g./
microsoft's SDLC.
● OpenStack is one good example
● Separate VMT and OSSG teams
Open Source Secure Engineering
Open Source Secure Engineering
● Secure development guidelines (relies on
developers to implement)
● Developer training (I just did this for everyone in
the room, but it is“expensive” and difficult to roll
out in a virtual environment)
● Automated QE/CI jobs to catch issues and enforce
standards, e.g. via static analysis
● Static analysis with 56 bug patterns
● http://h3xstream.github.io/find-sec-bugs/
ODL security: current status
ODL: Security Response
● Security reporting mechanism
● Dedicated team with a private mailing list and
basic process for handling issues
● Security advisories page
ODL: Secure Engineering
● Great analysis performed in May 2014:
https://wiki.opendaylight.org/view/CrossProject:Ope
nDaylight_Security_Analysis
● Little progress implementing any of the
recommendations from this analysis
● Definition of a threat model is currently underway
via mailing list discussions
ODL security: vision
SDN: Threat Model
ODL: Security Vision
● High performing security response team
● Ability to co-ordinate issues across the community
development team and affected vendors of
OpenDayLight distributions
● Geographically distributed and able to quickly
respond in all timezones
ODL: Security Vision
● The OpenDaylight Security Analysis performed in
May 2014 has captured some great details on the
threat model and steps that should be taken as
part of a proactive secure engineering effort:
https://wiki.opendaylight.org/view/CrossProject:Ope
nDaylight_Security_Analysis
● These steps fall into three categories:
● 1) Documentation, e.g. separating the
management network from the data network
● 2) Code changes, e.g. removing default credentials
● 3) Process/infrastructure changes, e.g. establishing
a security response process and building security
tests into the QE/CI system
ODL: Security Vision
● Industry leading secure engineering function
● Security docs (e.g. best practice install guide)
● Developer training as part of committer onboarding
● Automated QE/CI jobs to catch issues and
regressions
● No documented secure coding standard (automate
any standards in QE/CI jobs)
Questions?

More Related Content

What's hot

E bpf and profilers
E bpf and profilersE bpf and profilers
E bpf and profilersLibbySchulze
 
ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...
ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...
ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...OW2
 
GWT and Angular - Relatives or Foes
GWT and Angular - Relatives or FoesGWT and Angular - Relatives or Foes
GWT and Angular - Relatives or FoesGlobalLogic Ukraine
 
Performance Testing in Production - Leveraging the Universal Scalability Law
Performance Testing in Production - Leveraging the Universal Scalability LawPerformance Testing in Production - Leveraging the Universal Scalability Law
Performance Testing in Production - Leveraging the Universal Scalability LawKevin Brockhoff
 
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021OdessaJS Conf
 
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes DownDebugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes DownAspen Mesh
 
Approaches to Building Media Streaming Applications
Approaches to Building Media Streaming ApplicationsApproaches to Building Media Streaming Applications
Approaches to Building Media Streaming ApplicationsGlobalLogic Ukraine
 
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan RomanDevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan RomanDevSecCon
 
OpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clusteringOpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clusteringOpenDaylight
 
FASTEN presentation at OSS2021, by Michele Scarlato, Endocode, May 12, 2021, ...
FASTEN presentation at OSS2021, by Michele Scarlato, Endocode, May 12, 2021, ...FASTEN presentation at OSS2021, by Michele Scarlato, Endocode, May 12, 2021, ...
FASTEN presentation at OSS2021, by Michele Scarlato, Endocode, May 12, 2021, ...Fasten Project
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon
 
Open Source KMIP Implementation
Open Source KMIP ImplementationOpen Source KMIP Implementation
Open Source KMIP Implementationsedukull
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryGene Gotimer
 
Toronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB Architecture
Toronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB ArchitectureToronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB Architecture
Toronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB ArchitectureAlexandra N. Martinez
 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileRed Hat Developers
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingMatt Tesauro
 
Using OVSDB and OpenFlow southbound plugins
Using OVSDB and OpenFlow southbound pluginsUsing OVSDB and OpenFlow southbound plugins
Using OVSDB and OpenFlow southbound pluginsOpenDaylight
 
2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - EnglishAlexandre Gouaillard
 

What's hot (20)

E bpf and profilers
E bpf and profilersE bpf and profilers
E bpf and profilers
 
ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...
ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...
ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...
 
GWT and Angular - Relatives or Foes
GWT and Angular - Relatives or FoesGWT and Angular - Relatives or Foes
GWT and Angular - Relatives or Foes
 
Performance Testing in Production - Leveraging the Universal Scalability Law
Performance Testing in Production - Leveraging the Universal Scalability LawPerformance Testing in Production - Leveraging the Universal Scalability Law
Performance Testing in Production - Leveraging the Universal Scalability Law
 
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
 
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes DownDebugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
 
Approaches to Building Media Streaming Applications
Approaches to Building Media Streaming ApplicationsApproaches to Building Media Streaming Applications
Approaches to Building Media Streaming Applications
 
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan RomanDevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
 
OpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clusteringOpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clustering
 
FASTEN presentation at OSS2021, by Michele Scarlato, Endocode, May 12, 2021, ...
FASTEN presentation at OSS2021, by Michele Scarlato, Endocode, May 12, 2021, ...FASTEN presentation at OSS2021, by Michele Scarlato, Endocode, May 12, 2021, ...
FASTEN presentation at OSS2021, by Michele Scarlato, Endocode, May 12, 2021, ...
 
Testing in a distributed world
Testing in a distributed worldTesting in a distributed world
Testing in a distributed world
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
 
Open Source KMIP Implementation
Open Source KMIP ImplementationOpen Source KMIP Implementation
Open Source KMIP Implementation
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery
 
Toronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB Architecture
Toronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB ArchitectureToronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB Architecture
Toronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB Architecture
 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse Microprofile
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security Testing
 
Using OVSDB and OpenFlow southbound plugins
Using OVSDB and OpenFlow southbound pluginsUsing OVSDB and OpenFlow southbound plugins
Using OVSDB and OpenFlow southbound plugins
 
Fortify dev ops (002)
Fortify   dev ops (002)Fortify   dev ops (002)
Fortify dev ops (002)
 
2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English
 

Similar to Security of OpenDaylight platform

OWASP Brisbane - SDN Security
OWASP Brisbane - SDN SecurityOWASP Brisbane - SDN Security
OWASP Brisbane - SDN SecurityDavid Jorm
 
44CON London 2015 - Software Defined Networking (SDN) Security
44CON London 2015 - Software Defined Networking (SDN) Security44CON London 2015 - Software Defined Networking (SDN) Security
44CON London 2015 - Software Defined Networking (SDN) Security44CON
 
44CON & Ruxcon: SDN security
44CON & Ruxcon: SDN security44CON & Ruxcon: SDN security
44CON & Ruxcon: SDN securityDavid Jorm
 
Building world-class security response and secure development processes
Building world-class security response and secure development processesBuilding world-class security response and secure development processes
Building world-class security response and secure development processesDavid Jorm
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil FrameworkVeilFramework
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and SecurityKelwin Yang
 
Node.js Service - Best practices in 2019
Node.js Service - Best practices in 2019Node.js Service - Best practices in 2019
Node.js Service - Best practices in 2019Olivier Loverde
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross IntroductionStuart Lodge
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross SeminarXamarin
 
Finding and exploiting novel flaws in Java software (SyScan 2015)
Finding and exploiting novel flaws in Java software (SyScan 2015)Finding and exploiting novel flaws in Java software (SyScan 2015)
Finding and exploiting novel flaws in Java software (SyScan 2015)David Jorm
 
WebGoat.SDWAN.Net in Depth
WebGoat.SDWAN.Net in DepthWebGoat.SDWAN.Net in Depth
WebGoat.SDWAN.Net in Depthyalegko
 
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment Sergey Gordeychik
 
All You need to Know about Secure Coding with Open Source Software
All You need to Know about Secure Coding with Open Source SoftwareAll You need to Know about Secure Coding with Open Source Software
All You need to Know about Secure Coding with Open Source SoftwareJavier Perez
 
Object Broker Infrastructure for Wide Area Networks
Object Broker Infrastructure for Wide Area NetworksObject Broker Infrastructure for Wide Area Networks
Object Broker Infrastructure for Wide Area NetworksVaidas Brundza
 
Groovy In the Cloud
Groovy In the CloudGroovy In the Cloud
Groovy In the CloudJim Driscoll
 
Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)Apostolos Giannakidis
 

Similar to Security of OpenDaylight platform (20)

OWASP Brisbane - SDN Security
OWASP Brisbane - SDN SecurityOWASP Brisbane - SDN Security
OWASP Brisbane - SDN Security
 
44CON London 2015 - Software Defined Networking (SDN) Security
44CON London 2015 - Software Defined Networking (SDN) Security44CON London 2015 - Software Defined Networking (SDN) Security
44CON London 2015 - Software Defined Networking (SDN) Security
 
44CON & Ruxcon: SDN security
44CON & Ruxcon: SDN security44CON & Ruxcon: SDN security
44CON & Ruxcon: SDN security
 
Building world-class security response and secure development processes
Building world-class security response and secure development processesBuilding world-class security response and secure development processes
Building world-class security response and secure development processes
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil Framework
 
DevSecOps: What Why and How : Blackhat 2019
DevSecOps: What Why and How : Blackhat 2019DevSecOps: What Why and How : Blackhat 2019
DevSecOps: What Why and How : Blackhat 2019
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and Security
 
Node.js Service - Best practices in 2019
Node.js Service - Best practices in 2019Node.js Service - Best practices in 2019
Node.js Service - Best practices in 2019
 
Using Node.js to Build for the Enterprise
Using Node.js to Build for the EnterpriseUsing Node.js to Build for the Enterprise
Using Node.js to Build for the Enterprise
 
Node.js security tour
Node.js security tourNode.js security tour
Node.js security tour
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross Seminar
 
Finding and exploiting novel flaws in Java software (SyScan 2015)
Finding and exploiting novel flaws in Java software (SyScan 2015)Finding and exploiting novel flaws in Java software (SyScan 2015)
Finding and exploiting novel flaws in Java software (SyScan 2015)
 
WebGoat.SDWAN.Net in Depth
WebGoat.SDWAN.Net in DepthWebGoat.SDWAN.Net in Depth
WebGoat.SDWAN.Net in Depth
 
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
 
All You need to Know about Secure Coding with Open Source Software
All You need to Know about Secure Coding with Open Source SoftwareAll You need to Know about Secure Coding with Open Source Software
All You need to Know about Secure Coding with Open Source Software
 
Object Broker Infrastructure for Wide Area Networks
Object Broker Infrastructure for Wide Area NetworksObject Broker Infrastructure for Wide Area Networks
Object Broker Infrastructure for Wide Area Networks
 
Groovy In the Cloud
Groovy In the CloudGroovy In the Cloud
Groovy In the Cloud
 
Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)
 
Android Attacks
Android AttacksAndroid Attacks
Android Attacks
 

More from OpenDaylight

OpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering ExplainedOpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering ExplainedOpenDaylight
 
Integration Group - Lithium test strategy
Integration Group - Lithium test strategyIntegration Group - Lithium test strategy
Integration Group - Lithium test strategyOpenDaylight
 
Integration Group - Robot Framework
Integration Group - Robot Framework Integration Group - Robot Framework
Integration Group - Robot Framework OpenDaylight
 
Introduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightIntroduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightOpenDaylight
 
ONOS Platform Architecture
ONOS Platform ArchitectureONOS Platform Architecture
ONOS Platform ArchitectureOpenDaylight
 
Yang in ODL by Jan Medved
Yang in ODL by Jan MedvedYang in ODL by Jan Medved
Yang in ODL by Jan MedvedOpenDaylight
 

More from OpenDaylight (6)

OpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering ExplainedOpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering Explained
 
Integration Group - Lithium test strategy
Integration Group - Lithium test strategyIntegration Group - Lithium test strategy
Integration Group - Lithium test strategy
 
Integration Group - Robot Framework
Integration Group - Robot Framework Integration Group - Robot Framework
Integration Group - Robot Framework
 
Introduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightIntroduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylight
 
ONOS Platform Architecture
ONOS Platform ArchitectureONOS Platform Architecture
ONOS Platform Architecture
 
Yang in ODL by Jan Medved
Yang in ODL by Jan MedvedYang in ODL by Jan Medved
Yang in ODL by Jan Medved
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

Security of OpenDaylight platform

  • 1. OpenDayLight Security Security response and secure engineering processes David Jorm: david.jorm@gmail.com
  • 2. Outline ● Introduction ● Common Java security vulnerabilities ● Security response best practices ● Secure engineering best practices ● ODL security: current status ● ODL security: vision
  • 3. Introduction: David Jorm ● Software engineer for 15 years, climatology domain ● Last 5 years focusing on security, mainly Java ● Managed Red Hat's Java middleware security team ● Now a product security engineer for IIX, and a member of the ODL security response team ● I love finding new 0day and popping shells! david.jorm@gmail.com
  • 4. Common Java security vulnerabilities
  • 5. Authentication bypasses ● Logic errors in security constraints ● Incorrect paths, path wildcards ● HTTP verb/method tampering: security constraints restricted to specific verbs/methods ● HEAD method used for tampering. RFC2616: “In particular, the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval” “The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the information sent in response to a GET request.”
  • 6. CVE-2014-0121 ● hawt.io project includes web-based admin terminal: http://localhost:8181/hawtio/hawtio-karaf-termina l/term ● CVE-2014-0120: CSRF ● AuthenticationFilter.java
  • 7. M1: CVE-2014-0121 ● Remote unauthenticated command execution ● Live demo ● Patch for AuthenticationFilter.java ● Full patch commit: https://github.com/hawtio/hawtio/commit/52897 15e4f2657562fdddcbad830a30969b96e1e
  • 8. XXE (everywhere!) ● General entity attacks ● Parameter entity attacks ● Most Java APIs do not disable entity expansion by default ● Relies on developers following best practices, e.g. from OWASP
  • 9. OWASP XXE guidelines ● It wasn’t always this way:
  • 10. Netconf CVE-2014-5035 ● Netconf API processes user-supplied XML (also restconf) ● Example vuln code: controller / opendaylight/netconf/netconf- util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java ● Example exploit...
  • 11. RCE – EL interpolation ● Various expression languages are commonly used in Java libraries ● MVEL is one example ● Generally speaking, if an attacker can supply EL, they can execute arbitrary code on the server ● How can an attacker supply EL?
  • 12. CVE-2013-4486 ● Zanata is an open source translation memory platform built on Seam ● Seam evaluates EL in log messages. If code performs string concatenation with user-supplied input to create the log messages, an attacker can inject EL (Credit: Adrian Hayes) ● Zanata would log user-supplied strings using string concatenation
  • 13. RCE – XML deserialization ● Alternative XML-based serialization formats ● JAXB is the standard (no known flaws) ● Other XML serialization libraries exist, and have exposed security issues leading to RCE ● We’ll look at two examples: XMLDecoder and XStream
  • 14. XMLDecoder ● XMLDecoder’s XML format can represent a series of methods that will be called to reconstruct an object ● If XMLDecoder is used to deserialize untrusted input, arbitrary code can be injected into the XML ● Example: Restlet CVE-2013-4221. Fixed by removing vulnerable functionality.
  • 15. XStream Reflection-based deserialization Has a special handler for dynamic proxies (implementations of interfaces) Attackers can provide XML representing a dynamic proxy class, which implements the interface of a class the application might expect Dynamic proxy implements a handler that calls arbitrary code when any members of the deserialized class are called Vulnerable components: Spring OXM, Sonatype Nexus, Jenkins
  • 16. XStream in Jenkins ● Jenkins XML API uses XStream to deserialize input ● Access to XML API -> RCE (but not such a huge deal) ● Live demo ● Solution: blocked DynamicProxyConverter in XStream wrapper class ● Upstream solution: whitelisting, with dynamic proxies excluded by default ● More information: https://securityblog.redhat.com/2014/01/23/java-dese rialization-flaws-part-2-xml-deserialization/
  • 18. Open Source Security Response ● All information public ● Not just source code: bug trackers, mailing lists, etc. ● Security requires the opposite approach: information must be kept private until patches are available ● How do you handle this in the context of an open source project? ● A dedicated security team with a documented process
  • 19. Open Source Security Response ● Dedicated mechanism for reporting security issues, separate to normal bugs ● Dedicated team with a documented process for responding to these reports ● Ability to quickly build a patch asynchronous to normal release schedules ● Clear documentation of the issue in an advisory, including references to patch commits (advantage of open source)
  • 21. Open Source Secure Engineering ● No well established best practices ● Few good examples in the open source world. Proprietary software currently does this better, e.g./ microsoft's SDLC. ● OpenStack is one good example ● Separate VMT and OSSG teams
  • 22. Open Source Secure Engineering
  • 23. Open Source Secure Engineering ● Secure development guidelines (relies on developers to implement) ● Developer training (I just did this for everyone in the room, but it is“expensive” and difficult to roll out in a virtual environment) ● Automated QE/CI jobs to catch issues and enforce standards, e.g. via static analysis ● Static analysis with 56 bug patterns ● http://h3xstream.github.io/find-sec-bugs/
  • 25. ODL: Security Response ● Security reporting mechanism ● Dedicated team with a private mailing list and basic process for handling issues ● Security advisories page
  • 26.
  • 27. ODL: Secure Engineering ● Great analysis performed in May 2014: https://wiki.opendaylight.org/view/CrossProject:Ope nDaylight_Security_Analysis ● Little progress implementing any of the recommendations from this analysis ● Definition of a threat model is currently underway via mailing list discussions
  • 30. ODL: Security Vision ● High performing security response team ● Ability to co-ordinate issues across the community development team and affected vendors of OpenDayLight distributions ● Geographically distributed and able to quickly respond in all timezones
  • 31. ODL: Security Vision ● The OpenDaylight Security Analysis performed in May 2014 has captured some great details on the threat model and steps that should be taken as part of a proactive secure engineering effort: https://wiki.opendaylight.org/view/CrossProject:Ope nDaylight_Security_Analysis ● These steps fall into three categories: ● 1) Documentation, e.g. separating the management network from the data network ● 2) Code changes, e.g. removing default credentials ● 3) Process/infrastructure changes, e.g. establishing a security response process and building security tests into the QE/CI system
  • 32. ODL: Security Vision ● Industry leading secure engineering function ● Security docs (e.g. best practice install guide) ● Developer training as part of committer onboarding ● Automated QE/CI jobs to catch issues and regressions ● No documented secure coding standard (automate any standards in QE/CI jobs)
  • 33.