Andaira Technology

Mejoramos los procesos, reducimos los costes

Combined Java, PHP and Web Application Security 


Certificación: N/A 

Acreditación: N/A 

Duración: 4 días 

Idioma del material: Inglés 

Formato: Presencial 

Créditos: N/A

Introducción:

Even experienced programmers do not master by all means the various security services offered by their development platforms, and are likewise not aware of the different vulnerabilities that are relevant for their developments. This course targets developers using both Java and PHP, providing them essential skills necessary to make their applications resistant to contemporary attacks through the Internet.

Levels of Java security architecture are walked through by tackling access control, authentication and authorization, secure communication and various cryptographic functions. Various APIs are also introduced that can be used to secure your code in PHP, like OpenSSL for cryptography or HTML Purifier for input validation. On server side, best practices are given for hardening and configuring the operating system, the web container, the file system, the SQL server and the PHP itself, while a special focus is given to client-side security through security issues of JavaScript, Ajax and HTML5.

General Web vulnerabilities are discussed by examples aligned to the OWASP Top Ten, showing various injection attacks, script injections, attacks against session handling, insecure direct object references, issues with file uploads, and many others. The various Java- and PHP-specific language problems and issues stemming from the runtime environment are introduced and are grouped into the standard vulnerability types of missing or improper input validation, improper use of security features, incorrect error and exception handling, time- and state-related problems, code quality issues and mobile code-related vulnerabilities.

Participants can try out the discussed APIs, tools and the effects of configurations for themselves, while the introduction of vulnerabilities are all supported by a number of hands-on exercises demonstrating the consequences of successful attacks, showing how to correct the bugs and apply mitigation techniques, and introducing the use of various extensions and tools.

Audiencia:

Java, PHP and Web application developers

Objetivos:

Individuals certified at this level will have demonstrated:

  • Understand basic concepts of security, IT security and secure coding
  • Learn Web vulnerabilities beyond OWASP Top Ten and know how to avoid them
  • Learn to use various security features of PHP and Java
  • Get information about some recent vulnerabilities of the PHP and Java frameworks
  • Learn about typical coding mistakes both in PHP and Java, and how to avoid them
  • Get practical knowledge in using security testing tools
  • Get sources and further reading on secure coding practices

Prerrequisitos:

None

Material del curso:

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)

Examen:

There are no exams associated with this course

Requisitos técnicos:

A preinstalled exercise environment in the form of desktop virtual machine will be distributed on USB sticks for the participants at the start of the course by the instructor.

Hardware and software specifications for the used host PCs are:

  • CPU equivalent to Core i5 with virtualization technology is recommended, minimum is Core i3 (or equivalent laptop processors)
  • 4GB is recommended, minimum is 2GB
  • At least 20 GB free space on the HDD.
  • Display resolution minimum 1024×768 (the larger the better)
  • Keyboard, mouse: any can be used as long as participants are familiar with them.
  • VMware Player minimal version is 3.2, preferred is 5.0.4.

Temario:

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 cyber crime
  • Classification of security flaws

Web application vulnerabilities

Client-side security

  • JavaScript security
  • Ajax security
  • HTML5 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
  • Authentication and authorization
  • Cryptographic services
  • Secure communication

PHP security services

  • Cryptography extensions in PHP
  • Input validation APIs

PHP Environment

  • Server configuration
  • Securing PHP configuration
  • Environment security
  • Hardening
  • Configuration management

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

Using security testing tools

  • Web vulnerability scanners
  • SQL injection tools
  • Static code analysis

Input validation

  • Input validation concepts
  • Remote PHP code execution
  • Variable scope errors in PHP

Improper use of security features

  • Problems related to the use of security features
  • Insecure randomness
  • Weak PRNGs in PHP
  • Stronger PRNGs we can use in PHP
  • Insecure randomness in Java
  • Using random numbers in Java – spot the bug!
  • Password management – stored passwords
  • Some usual password management problems
  • Accessing private fields with reflection in Java
  • Improper error and exception handling

Time and state problems

  • Concurrency and threading
  • Concurrency in PHP
  • Preventing file race condition
  • PHP session handling
  • A PHP design flaw – open_basedir race condition
  • Database race condition
  • Hashtable collision attack
  • Code quality problems
  • Mobile code

                                                                                 

Knowledge sources