Get in Touch

Course Outline

1. IT security and secure coding

  • Core Security Principles: Exploring Confidentiality, Integrity, and Availability (CIA) specifically within Java applications.
  • Secure Software Development Lifecycle (SSDLC): Embedding security considerations from the requirements phase through to deployment.
  • Secure Coding Paradigms: Applying defense in depth, least privilege, and fail-safe defaults.
  • Vulnerability Classification Standards: Gaining insight into CWE (Common Weakness Enumeration) and OWASP standards.

2. Web application security

  • In-Depth Analysis of OWASP Top Ten: A detailed look at Injection, Broken Authentication, and Sensitive Data Exposure.
  • Cross-Site Scripting (XSS): Examining Reflected, Stored, and DOM-based XSS scenarios in Java/JSP environments.
  • Cross-Site Request Forgery (CSRF): Understanding attack mechanisms and implementing Anti-CSRF tokens for protection.
  • Session Management: Ensuring cookie security, preventing session fixation, and managing timeouts effectively.
  • API Security: Strategies for securing REST and SOAP endpoints against potential abuse.

3. Security of Web services

  • Web Services vs. Traditional Web Apps: Analyzing the distinct differences in attack surfaces.
  • Transport Layer Security: Configuring SSL/TLS for Java clients and servers.
  • Message Security: Ensuring integrity and confidentiality at the payload level.
  • Authentication Standards: Implementing OAuth 2.0, OpenID Connect, and JWT (JSON Web Tokens).

4. XML security

  • XML Parsing Vulnerabilities: Techniques for preventing XML External Entity (XXE) attacks.
  • XML Schema Validation: Best practices for enforcing strict schema compliance.
  • XML Digital Signatures: Implementing signatures to guarantee non-repudiation.
  • XML Encryption: Standard methods for encrypting XML content.

5. Foundations of Java security

  • Java Security Architecture: Overview of the java.security package and its provider architecture.
  • Security Providers: Procedures for installing and configuring providers such as Bouncy Castle.
  • Access Control: Managing policy files, Permissions, and the Security Manager (comparing legacy and modern approaches).
  • KeyStore Management: Creating and maintaining keystores and truststores for certificate management.

6. Practical cryptography

  • Cryptographic Algorithms: An overview of Symmetric (AES), Asymmetric (RSA, ECC), and Hashing (SHA-256/512) algorithms.
  • Random Number Generation: Comparing the risks of java.util.Random with the security of java.security.SecureRandom.
  • Key Management: Strategies for key generation, secure storage, and rotation.
  • Java Cryptography Architecture (JCA): Utilizing Cipher, MessageDigest, and Mac classes.
  • Java Cryptography Extension (JCE): Understanding policy files and unlimited strength jurisdiction.

7. Java security services

  • SSL/TLS in Java: Utilizing SSLSocketFactory and HttpsURLConnection for secure connections.
  • Trust Managers: Customizing trust verification for private PKI environments.
  • Authenticators: Implementing programmatic authentication using Authenticator.getDefault().
  • Certificate Parsing: Programmatically reading and analyzing X.509 certificates.

8. Java EE security

  • Declarative Security: Implementing Role-based access control (RBAC) via web.xml and annotations.
  • Programmatic Security: Utilizing methods like HttpServletRequest.isUserInRole() and getRemoteUser().
  • JAAS (Java Authentication and Authorization Service): Configuring login.conf and implementing custom LoginModules.
  • Servlet Security: Managing container-managed security constraints and authentication methods (FORM, BASIC, DIGEST).

9. Common coding errors and vulnerabilities

  • Insecure Deserialization: Assessing the risks posed by ObjectInputStream and the potential bypass of security checks.
  • Command Injection: Strategies for mitigating OS-level execution vulnerabilities.
  • Path Traversal: Sanitizing file system inputs to prevent directory traversal attacks.
  • Reflection Abuse: Evaluating risks associated with java.lang.reflect and potential access control bypasses.
  • Hardcoded Credentials: Identifying and removing secrets directly embedded in source code.
  • Cryptography Implementation Errors: Avoiding pitfalls such as using ECB mode, weak keys, or static IVs.

10. Knowledge sources

  • Static Analysis Tools: Leveraging SonarQube, Checkmarx, and Fortify for automated security scanning.
  • Dynamic Analysis Tools: An overview of Burp Suite and OWASP ZAP capabilities.
  • CVE Databases: Methods for tracking and responding to new Java framework vulnerabilities.
  • Recommended Readings: A curated list of books, documentation, and secure coding checklists.

Requirements

None.

 21 Hours

Number of participants


Price per participant

Testimonials (4)

Upcoming Courses

Related Categories