Guide to the Secure Configuration of Java Runtime Environment (JRE) of version 1.6.0, 1.7.0, and 1.8.0

This guide presents a catalog of security-relevant configuration settings for Java Runtime Environment (JRE) of versions 1.6.0, 1.7.0, and 1.8.0 formatted in the eXtensible Configuration Checklist Description Format (XCCDF).

Providing system administrators with such guidance informs them how to securely configure systems under their control in a variety of network roles. Policy makers and baseline creators can use this catalog of settings, with its associated references to higher-level security control catalogs, in order to assist them in security baseline creation. This guide is a catalog, not a checklist, and satisfaction of every item is not likely to be possible or sensible in many operational scenarios. However, the XCCDF format enables granular selection and adjustment of settings, and their association with OVAL and OCIL content provides an automated checking capability. Transformations of this document, and its associated automated checking content, are capable of providing baselines that meet a diverse set of policy objectives. Some example XCCDF Profiles, which are selections of items that form checklists and can be used as baselines, are available with this guide. They can be processed, in an automated fashion, with tools that support the Security Content Automation Protocol (SCAP). The DISA STIG for Red Hat Enterprise Linux 6 is one example of a baseline created from this guidance.
Do not attempt to implement any of the settings in this guide without first testing them in a non-operational environment. The creators of this guidance assume no responsibility whatsoever for its use by other parties, and makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic.
Profile ID(default)

Revision History

Current version: 1.0

  • draft (as of 2015-12-07)

Platforms

  • cpe:/a:oracle:jre:
  • cpe:/a:sun:jre:
  • cpe:/a:redhat:openjdk:
  • cpe:/a:ibm:jre:

Table of Contents

  1. Introduction
    1. How to Use This Guide
  2. Java
    1. Configure the deployment.config File

Checklist

Introductiongroup

The purpose of this guidance is to provide security configuration recommendations and baselines for the Java Runtime Environment (JRE) application. The guidance provided here should be applicable to all variants (IBM, OpenJDK, Oracle, Sun) of the product. Recommended settings for the basic application are provided. The guide is intended for system administrators. Readers are assumed to possess basic system administration skills for Unix-like systems, as well as some familiarity with Red Hat's documentation and administration conventions. Some instructions within this guide are complex. All directions should be followed completely and with understanding of their effects in order to avoid serious adverse effects on the system and its security.

How to Use This Guidegroup

Readers should heed the following points when using the guide.

Read Sections Completely and in Ordergroup

Each section may build on information and recommendations discussed in prior sections. Each section should be read and understood completely; instructions should never be blindly applied. Relevant discussion may occur after instructions for an action.

Test in Non-Production Environmentgroup

This guidance should always be tested in a non-production environment before deployment. This test environment should simulate the setup in which the system will be deployed as closely as possible.

Root Shell Environment Assumedgroup

Most of the actions listed in this document are written with the assumption that they will be executed by the root user running the /bin/bash shell. Commands preceded with a hash mark (#) assume that the administrator will execute the commands as root, i.e. apply the command via sudo whenever possible, or use su to gain root privileges if sudo cannot be used. Commands which can be executed as a non-root user are are preceded by a dollar sign ($) prompt.

Formatting Conventionsgroup

Commands intended for shell execution, as well as configuration file text, are featured in a monospace font. Italics are used to indicate instances where the system administrator must substitute the appropriate information into a command or configuration file.

Javagroup

Java is a general-purpose computer programming language. It is intended to let application developers "write once, run anywhere." Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. As such, the Java runtime environment (JRE) is required to be installed so that Java applications can run. This section provides settings for configuring Java policies to meet compliance settings for Java running on Red Hat Enterprise Linux systems.

    Refer to
  • https://docs.oracle.com/javase/6/docs/technotes/guides/deployment/deployment-guide/properties.html
  • for a list of currently supported Java version 6 settings.
    Refer to
  • https://docs.oracle.com/javase/7/docs/technotes/guides/jweb/jcp/properties.html
  • for a list of currently supported Java version 7 settings.
    Refer to
  • https://docs.oracle.com/javase/8/docs/technotes/guides/jweb/jcp/properties.html
  • for a list of currently supported Java version 8 settings.

Configure the deployment.config Filegroup

The deployment.config file if used for specifying the System-level deployment.properties file. The System-level configuration for Java is configured in /etc/.java/deployment. By default, no deployment.config file exists. To ensure that the Java /etc/.java/deployment/deployment.config file is configured correctly, deployment.system.config and deployment.system.config.mandatory need to be set correctly.

references:  DCBP-1, http://iase.disa.mil/stigs/cci/Pages/index.aspx

Red Hat and Red Hat Enterprise Linux are either registered trademarks or trademarks of Red Hat, Inc. in the United States and other countries. All other names are registered trademarks or trademarks of their respective companies.