Advanced Java, JEE and Web Application Security Training
Certificate: N/A
Duration: 4 days
Course Delivery: Classroom
Accreditor: None
Language: English
Credits: N/A
Course Description:
Beyond a solid knowledge in using Java components, even for experienced Java programmers it is essential to have a deep knowledge in Web-related vulnerabilities both on server and client side, the different vulnerabilities that are relevant for Web applications written in Java, and the consequences of the various risks.
General web-based vulnerabilities are demonstrated through presenting the relevant attacks, while the recommended coding techniques and mitigation methods are explained in the context of Java with the most important aim to avoid the associated problems. In addition, a special focus is given to client-side security tackling security issues of JavaScript, Ajax and HTML5.
The course introduces security components of Standard Java Edition, which is preceded with the foundations of cryptography, providing a common baseline for understanding the purpose and the operation of the applicable components. Security issues of Java Enterprise Edition are presented through various exercises explaining both declarative and programmatic security techniques in JEE.
Finally, the course explains the most frequent and severe programming flaws of the Java language and platform. 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.
Audience:
Java and JEE developers, software architects and testers
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
● Learn client-side vulnerabilities and secure coding practices
● 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 practical knowledge in using security testing tools
● Get sources and further reading on secure coding practices
I liked the practical training and insights into vulnerabilities and the mitigation, as well as the explanation of cryptogtaphy.
Accra, Ghana
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
Using security testing tools
● Web vulnerability scanners
● SQL injection tools
● Google hacking
● Proxy servers and sniffers
● Exercise – Capturing network traffic
● Static code analysis
Advices and principles
● Matt Bishop’s principles of robust programming
● The security principles of Saltzer and Schroeder
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
● Authentication and authorization
● Cryptographic services
● Secure communication
Java specific vulnerabilities
● Input validation
● Improper use of security features
● Improper error and exception handling
● Time and state problems
● Code quality problems
● Mobile code
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
Security of RESTful web services
● Security of RESTfulweb services
● REST-related technologies for security
● REST-related vulnerabilities
Client-side security
● JavaScript security
● Ajax security
● HTML5 Security
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