Workshop
01. Security and Hardening Concepts in Java/J2EE
Trainer
Marc Schonefeld (DE)
Date
28-29 August 2006
Duration
2 Days
Price
Rp. 13.500.000,-
Requirement
Participants are required to bring their own laptops capable of compiling java code (preinstalled Sun JDK 1.4.2_x, 1.5.0_x and IBM Eclipse IDE 3.0.x).
Overview
Opposed to the legends most white papers tell software written in Java is not secure by default. This course will provide the participants with the awareness to threats for Java-based software. It focuses on current Java (1.4.x, Tiger and Mustang releases) code based security features which are used to protect typical Java application patterns. (J2EE, Desktop Java, Applet, Servlets).
Secure Java Coding always starts from Sun's secure programming guidelines which are presented by associating attack types and possibilities for refactoring to harden the system. Executed Java classess are based on bytecode, therefore knowledge of Java bytecode is essential to understand and extend javastatic code analysis tools like BCEL and findbugs.
Other important terms in Java code-based security are protection domains and permission collections . To reverse engineer protection domains an approach to extend the Java securitymanager is presented. A framework is presented that allows defining custom and complete permission sets when deploying Java applications.
After hardening the JDK itself the Java security engineer is concerned with raising the protection level of open-source Java middleware componenets like Web servers (Jetty, Tomcat) or databases (cloudspace, pointbase).
top ^
Course Outline
DAY ONE
Introduction
Security in a broader sense
The history of Java security (Felten, LSD, ?)
Java and security - J2SE Java 1.4 application areas
Desktop Java (J2SE)
WebServer Java (J2EE/JSP)
BackendServer Java (J2EE/EJB)
DatabaseServer Java (J2EE/JDBC)
What to attack and protect
Attacks on Integrity
Attacks on Confidentiality
Attacks on Availability
Java security architecture
Core java runtime environment security:
JVM security
Java language security
Core API security
Classloaders and protection domains
Application security:
JSSE and SSL
GSSAPI
JAAS
Java Secure Coding
Sun's secure programming guidelines
Antipatterns
Static variables
Derived Vulnerabilities
Possible Attacks
Precautions and Detection
PoC [Covert Channels in JDK]
Privileged Code
Derived Vulnerabilities
Possible Attacks
Precautions and Detection
PoC [The Disk filling applet]
Visibilities
Derived Vulnerabilities
Possible Attacks
Precautions and Detection
PoC [XMLSniffing vulnerability in JDK 1.4.2_05]
Serialisation
Derived Vulnerabilities
Possible Attacks
Precautions and Detection
PoC [Remote Attacks and Malicious Objects]
Native Code
Derived Vulnerabilities
Possible Attacks
Precautions and Detection
PoC [The memory reading applet in the Java Media Framework]
Non-Adequate permissions for 3^rd party libraries and frameworks
Derived Vulnerabilities
Possible Attacks
Precautions and Detection
PoC [Remote code execution in JBoss 3.2.1]
Java Arithmetics
Derived Vulnerabilities
Possible Attacks
Precautions and Detection
PoC [The Java.util.zip package and the flipping sign]
DAY TWO
Java Bytecode Engineering
Quickwalk thru the Java Bytecode instruction set
Anatomy of class files
Bytecode frameworks
BCEL
ASM
Javassist
Findbugs
How to write custom detectors in with BCEL and findbugs
Classwalkers
Fieldwalkers
Methodwalkers
Finding adequate permission sets for java applications
Permissions in JDK
The jchains framework
Hardening Java protocols
JDBC security
RMI security (JRMP and RMI/IIOP)
Serialisation security
Hardening Java middleware applications
Tomcat security
Java databases security
Security in the new Tiger and Mustang releases
Selected use cases from the audience
Summary, Q&A and farewell
top ^
About the tutor
Marc Schonefeld is an external PhD student at the University of Bamberg in Germany. His research covers the analysis of interdependencies between programming flaws (antipatterns) and vulnerabilities in software. By developing a framework for flaw detection he found a range of serious bugs in current java runtime environments (JDK) and other java based applications and middleware systems(like Jboss, Cloudscape database, ...).
Some of his findings led to the publication of a number of advisories by Sun Microsystems.
Recently he gave speech at Blackhat Federal and Websec Mexico. In 2005 he presented at RSA, BCS05, XCON and HITB and was speaker at DIMVA (2004) and D-A-CH conferences (2004), Blackhat (2003) and RSA (2003).
Also in 2004 he was finalist for the European Information Security Award which was granted to IBM labs Zurich for his work on Java based security antipatterns.
For questions regarding event registration, please call +62-21-570-5800 (Ms. Astri). For general questions, please email bcs2006@bellua.com or send an empty message to bcs-announce-subscribe@bellua.com to receive future event information.
< back
top ^