Overview

The Certified Application Security Engineer (CASE) credential was developed in partnership with application and software development experts globally.

 

The CASE credential tests the critical security skills and knowledge required throughout a typical software development life cycle (SDLC), focusing on the importance of the implementation of secure methodologies and practices in today’s insecure operating environment.

 

The CASE certified training program was developed to prepare software professionals with the capabilities that are expected by employers and academia globally. It is designed to be a hands-on, comprehensive application security training course to teach software professionals to create secure applications.

 

The training program encompasses security activities involved in all phases of the secure SDLC: planning, creating, testing, and deploying an application.

 

Unlike other application security trainings, CASE goes beyond just the guidelines on secure coding practices and includes secure requirement gathering, robust application design, and handling security issues in the post development phases of application development.

 

This makes CASE one of the most comprehensive application security certifications for secure software development on the market today. It’s desired by software application engineers, analysts, and testers from around the world and is respected by hiring authorities.

 

Java Based Applications: The Most Popular and Yet the Most Vulnerable?

According to the 2017 State of Software Security Report, nearly 90% of Java applications contain one or more vulnerable components, making them ideal breach points for hostile attackers.

 

Although Java has come a long way from its development in 1995, cyber crime has also spread, reaching epidemic levels, increasing the need for secure Java developers, regardless of whether they’re creating a new program or upgrading an old one.

 

Objectives

  • In-depth understanding of secure SDLC and secure SDLC models.
  • Knowledge of OWASP Top 10, threat modelling, SAST and DAST.
  • Capturing security requirements of an application in development.
  • Defining, maintaining, and enforcing application security best practices.
  • Performing manual and automated code review of application.
  • Conducting application security testing for web applications to assess the vulnerabilities.
  • Driving development of a holistic application security program.
  • Rating the severity of defects and publishing comprehensive reports, detailing associated risks and mitigations.
  • Working in teams to improve security posture.
  • Application security scanning technologies such as AppScan, Fortify, WebInspect, static application security testing (SAST), dynamic application security testing (DAST), single sign on, and encryption.
  • Following secure coding standards that are based on industry-accepted best practices such as OWASP Guide, or CERT Secure Coding to address common coding vulnerabilities.
  • Creating a software source code review process that is a part of the development cycles (SDLC, Agile, CI/CD).

 

Audience

  • Java Developers with a minimum of 2 years of experience and individuals who want to become application security engineers, analysts, or testers.
  • Individuals involved in the role of developing, testing, managing, or protecting applications.

 

Prerequisites

Participants who wish to take up CASE Java must be well-versed with basic programming skills.

 

Outline

Module 1: Understanding Application Security, Threats, and Attacks

  • What is a Secure Application
  • Need for Application Security
  • Most Common Application Level Attacks
  • Why Applications become Vulnerable to Attacks
  • What Constitutes a Comprehensive Application Security?
  • Insecure Application: A Software Development Problem
  • Software Security Standards, Models, and Frameworks

 

Module 2: Security Requirements Gathering

  • Importance of Gathering Security Requirements
  • Security Requirement Engineering (SRE)
  • Abuse Case and Security Use Case Modeling
  • Abuser and Security Stories
  • Security Quality Requirements Engineering (SQUARE)
  • Operationally Critical Threat, Asset, and Vulnerability Evaluation (OCTAVE)

 

Module 3: Secure Application Design and Architecture

  • Relative Cost of Fixing Vulnerabilities at Different Phases of SDLC
  • Secure Application Design and Architecture
  • Goal of Secure Design Process
  • Secure Design Actions
  • Secure Design Principles
  • Threat Modeling
  • Decompose Application
  • Secure Application Architecture

 

Module 4: Secure Coding Practices for Input Validation

  • Input Validation Pattern
  • Validation and Security Issues
  • Impact of Invalid Data Input
  • Data Validation Techniques
  • Input Validation using Frameworks and APIs
  • Open Source Validation Framework for Java
  • Servlet Filters
  • Validation Filters for Servlet
  • Data Validation using OWASP ESAPI
  • Data Validation: Struts Framework
  • Data Validation: Spring Framework
  • Input Validation Errors
  • Common Secure Coding Practices

 

Module 5: Secure Coding Practices for Authentication and Authorization

  • Introduction to Authentication
  • Types of Authentication
  • Authentication Weaknesses and Prevention
  • Introduction to Authorization
  • Access Control Model
  • EJB Authorization
  • Java Authentication and Authorization (JAAS)
  • Java EE Security
  • Authorization Common Mistakes and Countermeasures
  • Authentication and Authorization in Spring Security Framework
  • Defensive Coding Practices against Broken Authentication and Authorization
  • Secure Development Checklists: Broken Authentication and Session Management

 

Module 6: Secure Coding Practices for Cryptography

  • Java Cryptography
  • Encryption and Secret Keys
  • Cipher Class
  • Digital Signatures
  • Secure Socket Layer (SSL)
  • Key Management
  • Digital Certificates
  • Signed Code Sources
  • Hashing
  • Java Card Cryptography
  • Spring Security: Crypto Module
  • Dos and Don’ts in Java Cryptography
  • Best Practices for Java Cryptography

 

Module 7: Secure Coding Practices for Session Management

  • Session Management
  • Session Tracking
  • Session Management in Spring Security
  • Session Vulnerabilities and their Mitigation Techniques
  • Best Practices and Guidelines for Secured Sessions Management
  • Checklist to Secure Credentials and Session IDs
  • Guidelines for Secured Session Management

 

Module 8: Secure Coding Practices for Error Handling

  • Introduction to Exceptions
  • Erroneous Exceptional Behaviors
  • Dos and Don’ts in Error Handling
  • Spring MVC Error Handling
  • Exception Handling in Struts 2
  • Best Practices for Error Handling
  • Introduction to Logging
  • Logging using Log4j
  • Secure Coding in Logging
  • Secured Practices in Logging

 

Module 9: Static and Dynamic Application Security Testing (SAST & DAST)

  • Static Application Security Testing
  • Manual Secure Code Review for Most Common Vulnerabilities
  • Code Review: Check List Approach
  • SAST Finding
  • SAST Report
  • Dynamic Application Security Testing
  • Automated Application Vulnerability Scanning Tools
  • Proxy-based Security Testing Tools
  • Choosing Between SAST and DAST

 

Module 10: Secure Deployment and Maintenance

  • Secure Deployment
  • Prior Deployment Activity
  • Deployment Activities: Ensuring Security at Various Levels
  • Ensuring Security at Host Level
  • Ensuring Security at Network Level
  • Ensuring Security at Application Level
  • Ensuring Security at Web Container Level (Tomcat)
  • Ensuring Security in Oracle
  • Security Maintenance and Monitoring

 

Related Certification

  • Certified Application Security Engineer (CASE) Java