Advanced Java Security Training
Certificate: N/A
Duration: 3 days
Course Delivery: Classroom
Accreditor: None
Language: English
Credits: N/A
Course Description:
Even experienced Java programmers are not mastering by all means the various security services offered by Java, and are likewise not aware of the different vulnerabilities that are relevant for Web applications written in Java.
The course – besides introducing security components of Standard Java Edition – deals with security issues of Java Enterprise Edition (JEE) and Web services. Discussion of specific services is preceded with the foundations of cryptography and secure communication. Various exercises deal with declarative and programmatic security techniques in JEE, while both transport-layer and end-to-end security of Web services is discussed. The use of all components is presented through several practical exercises, where participants can try out the discussed APIs and tools for themselves.
The course also goes through and explains the most frequent and severe programming flaws of the Java language and platform and Web-related vulnerabilities. Besides the typical bugs committed by Java programmers, the introduced security vulnerabilities cover both language-specific issues and problems stemming from the runtime environment. All vulnerabilities and the relevant attacks are demonstrated through easy-to-understand exercises, followed by the recommended coding guidelines and the possible mitigation techniques.
Learning Objectives:
Individuals certified at this level will have demonstrated:
● Understand basic concepts of security, IT security, cryptography and secure coding
● Learn Web vulnerabilities beyond OWASP Top Ten and know how to avoid them
● Understand security solutions of JEE and learn Web services security
● Learn to use various security features of the Java development environment
● Get information about some recent vulnerabilities in Java framework
● Learn about typical coding mistakes and how to avoid them
● Get sources and further reading on secure coding practices
Material was very well done and followed the red-line nicely. Thank you for the course!
Oulu, Finland
Prerequisites:
None
Course Materials:
You will receive the following as part of this course:
● A participant handbook with reference materials
● Virtual machine with the exercises (to be distributed by the instructor on a USB drive)
Course Outline:
IT security and secure coding
● Nature of security
● IT security related terms
● Definition of risk
● Different aspects of IT security
● Requirements of different application areas
● IT security vs. secure coding
● From vulnerabilities to botnets and cybercrime
● Classification of security flaws
Web application vulnerabilities
● SQL Injection
● Other injection flaws
● Cross-Site Scripting (XSS)
● Broken authentication and session management
● Cross Site Request Forgery (CSRF)
● Insecure direct object reference
● Unvalidated file upload
● Security misconfiguration
● Failure to restrict URL access
● Transport layer security issues
● Unvalidated redirects and forwards
Security of Web services
● Web services – Introduction
● SOAP – Simple Object Access Protocol
● Security of SOAP messages – two approaches
● Transport layer security
● Message level security
Foundations of Java security
● The Java environment
● Java security
● Low-level security – the Java language
● High-level security – access control
Basics of cryptography
● Cryptosystems
● Symmetric-key cryptography
● Other cryptographic algorithms
● Asymmetric (public-key) cryptography
● Public Key Infrastructure (PKI)
Java security services
● Java security services – architecture
● Cryptographic services
● Secure communication
Java EE security
● Java EE multi-tier architecture
● Roles and responsibilities
● Java EE container-based security
● Basic concepts: user, group, role, realm
● Security of the Web/Presentation tier
● Security of the EJB/Business tier
Java specific vulnerabilities
● Input validation
● Improper use of security features
● Improper error and exception handling
● Time and state problems
● Code quality problems
● Mobile code
Using security testing tools
● Web vulnerability scanners
● SQL injection tools
● Static code analysis
Knowledge sources
● Secure coding sources – a starter kit
● Vulnerability databases
Audience:
Java and JEE developers, software architects and testers
Examination:
There are no exams associated with this course