Guide to the Secure Configuration of Oracle Java Runtime Environment (JRE)
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 RHEL 6 is one example of a baseline created from this guidance.
Profile Title | Java Runtime Environment (JRE) STIG |
---|---|
Profile ID | stig-java-upstream |
Revision History
Current version: 1.0
- draft (as of 2015-06-18)
Platforms
- cpe:/a:oracle:jre:
- cpe:/a:sun:jre:
- cpe:/a:redhat:openjdk:
- cpe:/a:ibm:jre:
Table of Contents
Checklist
contains 11 rules |
IntroductiongroupThe 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 GuidegroupReaders should heed the following points when using the guide. |
Read Sections Completely and in OrdergroupEach 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 EnvironmentgroupThis 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
|
Formatting Conventionsgroup
Commands intended for shell execution, as well as configuration file text,
are featured in a |
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.
|
contains 11 rules |
Configure the deployment.config Filegroup
The references: DCBP-1, http://iase.disa.mil/cci/index.html |
contains 3 rules |
The Java Configuration File ExistsruleIf the Java configuration file does not exist, it can be added by running: $ sudo mkdir -p -m 755 /etc/.java/deployment $ sudo touch /etc/.java/deployment/deployment.config $ sudo chmod 644 /etc/.java/deployment/deployment.configRationale: The deployment.config file is used for specifying the location and execution of system-level properties for the Java Runtime Environment. By default no deployment.config file exists; thus, no system-wide deployment.properties file exists. Without the deployment.config file, setting particular options for the Java control panel is impossible. identifiers: CCE-, JRE0070-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
Configure the deployment.properties File Pathrule
To ensure that the Java properties file is set in
Without a proper path for the properties file, deployment would not be possible. If the path specified does not lead to a properties file, the value of the 'deployment.system.config.mandatory' key determines how to handle the situation. If the value of this key is true, JRE will not run if the path to the properties file is invalid. identifiers: CCE-, JRE0060-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
Configure The Java Deployment Mandatory Settingrule
To configure the Java mandatory deployment setting, add or modify
Without a proper path for the properties file, deployment would not be possible. If the path specified does not lead to a properties file, the value of the 'deployment.system.config.mandatory' key determines how to handle the situation. If the value of this key is true, JRE will not run if the path to the properties file is invalid. identifiers: CCE-, JRE0060-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
The Java Properties File ExistsruleIf the Java properties file does not exist, it can be added by running: $ sudo mkdir -p -m 755 /etc/.java/deployment $ sudo touch /etc/.java/deployment/deployment.properties $ sudo chmod 644 /etc/.java/deployment/deployment.propertiesRationale: Each option in the Java control panel is represented by property keys. These keys adjust the options in the Java control panel based on the value assigned to that key. By default no deployment.properties file exists; thus, no system-wide exists. Without the deployment.properties file, setting particular options for the Java control panel is impossible. identifiers: CCE-, JRE0080-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
Disable Java Execution From Untrusted Sourcesrule
To ensure that Java cannot execute from untrusted sources, set
Permitting execution of signed Java applets from un-trusted sources may result in acquiring malware, and risks system modification, invasion of privacy, or denial of service. identifiers: CCE-, JRE0001-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
Disable User Access to Untrusted Sources Settingsrule
To ensure that users cannot change the untrusted sources settings,
add Permitting execution of signed Java applets from un-trusted sources may result in malware running on the system, and risks system modification, invasion of privacy, or denial of service. As such, ensuring users cannot change the permission settings which control the execution of signed Java applets contributes to a more consistent security profile. identifiers: CCE-, JRE0010-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
Enable Revocation Checks for Publisher Certificatesrule
To ensure that certificate revocation checks are enabled, set
Certificates may be revoked due to improper issuance, compromise of the certificate, and failure to adhere to policy. Therefore, any certificate found on a CRL should not be trusted. Permitting execution of an applet published with a revoked certificate may result in spoofing, malware, system modification, invasion of privacy, and denial of service. identifiers: CCE-, JRE0020-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
Disable User Access to Revocation Check Settingsrule
To ensure that users cannot change certificate revocation check settings,
add Permitting execution of an applet published with a revoked certificate may result in spoofing, malware, system modification, invasion of privacy, and denial of service. As such, ensuring users cannot change settings contributes to a more consistent security profile. identifiers: CCE-, JRE0030-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
Enable Online Certificate Validationrule
To ensure that online certificate verification is enabled, set
Online certificate validation provides a greater degree of validation of certificates when running a signed Java applet. Permitting execution of an applet with an invalid certificate may result in malware execution , system modification, invasion of privacy, and denial of service. identifiers: CCE-, JRE0040-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
Disable User Access to Online Certificate Validation Settingsrule
To ensure that users cannot change the online certificate verification settings,
add Online certificate validation provides a greater degree of validation of certificates when running a signed Java applet. Permitting execution of an applet with an invalid certificate may result in malware execution , system modification, invasion of privacy, and denial of service. As such, ensuring users cannot change settings contributes to a more consistent security profile. identifiers: CCE-, JRE0050-UX references: DCBP-1, http://iase.disa.mil/cci/index.html Remediation script:
|
Ensure Java Patches InstalledruleIf the system is joined to the Red Hat Network, a Red Hat Satellite Server, or a yum server, run the following command to install updates: $ sudo yum updateIf the system is not configured to use one of these sources, updates (in the form of RPM packages) can be manually downloaded and installed using rpm .
Rationale:Running an older version of the JRE can introduce security vulnerabilities to the system. identifiers: CCE-, JRE0090-UX references: DCBP-1, http://iase.disa.mil/cci/index.html |