Select any two versions of this STIG to compare the individual requirements
Select any old version/release of this STIG to view the previous requirements
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. For a standalone configuration run the following command: "ls /core-service=management/management-interface=http-interface" If "secure-socket-binding"=undefined, this is a finding. For a domain configuration run the following command: "ls /host=master/core-service=management/management-interface=http-interface" If "secure-port" is undefined, this is a finding.
Follow the specific instructions in the Red Hat Security Guide for EAP version 6.3 to configure the management console for HTTPS. This involves the following steps. 1. Create a keystore in JKS format. 2. Ensure the management console binds to HTTPS. 3. Create a new Security Realm. 4. Configure Management Interface to use new security realm. 5. Configure the management console to use the keystore. 6. Restart the EAP server.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Review the web subsystem and ensure that HTTPS is enabled. Run the command: For a managed domain: "ls /profile=<PROFILE_NAME>/subsystem=web/connector=" For a standalone system: "ls /subsystem=web/connector=" If "https" is not returned, this is a finding.
Follow procedure "4.4. Configure the JBoss Web Server to use HTTPS." The detailed procedure is found in the JBoss EAP 6.3 Security Guide available at the vendor's site, RedHat.com. An overview of steps is provided here. 1. Obtain or generate DoD-approved SSL certificates. 2. Configure the SSL certificate using your certificate values. 3. Set the SSL protocol to TLS V1.2 or greater.
Obtain documentation from the admin that identifies the applications hosted on the JBoss server as well as the corresponding rights the application requires. For example, if the application requires network socket permissions and file write permissions, those requirements should be documented. 1. Identify the JBoss installation as either domain or standalone and review the relevant configuration file. For domain installs: JBOSS_HOME/bin/domain.conf For standalone installs: JBOSS_HOME/bin/standalone.conf 2. Identify the location and name of the security policy by reading the JAVA_OPTS flag -Djava.security.policy=<file name> where <file name> will indicate name and location of security policy. If the application uses a policy URL, obtain URL and policy file from system admin. 3. Review security policy and ensure hosted applications have the appropriate restrictions placed on them as per documented application functionality requirements. If the security policy does not restrict application access to host resources as per documented requirements, this is a finding.
Configure the Java security manager to enforce access restrictions to the host system resources in accordance with application design and resource requirements.
To determine if the Java Security Manager is enabled for JBoss, you must examine the startup commands. JBoss can be configured to run in either "domain" or a "standalone" mode. JBOSS_HOME is the variable home directory for the JBoss installation. Use relevant OS commands to navigate the file system. A. For a managed domain installation, review the domain.conf and domain.conf.bat files: JBOSS_HOME/bin/domain.conf JBOSS_HOME/bin/domain.conf.bat In domain.conf file, ensure there is a JAVA_OPTS flag that loads the Java Security Manager as well as a relevant Java Security policy. The following is an example: JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy==$PWD/server.policy -Djboss.home.dir=/path/to/JBOSS_HOME -Djboss.modules.policy-permissions=true" In domain.conf.bat file, ensure JAVA_OPTS flag is set. The following is an example: set "JAVA_OPTS=%JAVA_OPTS% -Djava.security.manager -Djava.security.policy==/path/to/server.policy -Djboss.home.dir=/path/to/JBOSS_HOME -Djboss.modules.policy-permissions=true" B. For a standalone installation, review the standalone.conf and standalone.conf.bat files: JBOSS_HOME/bin/standalone.conf JBOSS_HOME/bin/standalone.conf.bat In the standalone.conf file, ensure the JAVA_OPTS flag is set. The following is an example: JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy==$PWD/server.policy -Djboss.home.dir=$JBOSS_HOME -Djboss.modules.policy-permissions=true" In the standalone.conf.bat file, ensure the JAVA_OPTS flag is set. The following is an example: set "JAVA_OPTS=%JAVA_OPTS% -Djava.security.manager -Djava.security.policy==/path/to/server.policy -Djboss.home.dir=%JBOSS_HOME% -Djboss.modules.policy-permissions=true" If the security manager is not enabled and a security policy not defined, this is a finding.
For a domain installation: Enable the respective JAVA_OPTS flag in both the domain.conf and the domain.conf.bat files. For a standalone installation: Enable the respective JAVA_OPTS flag in both the standalone.conf and the standalone.conf.bat files.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the following command: For standalone servers: "ls /core-service=management/access=authorization/" For managed domain installations, target the domain-management resource (the core management service for the entire domain): "ls /core-service=management/access=authorization/" If the "provider" attribute is not set to "rbac", this is a finding. (Default, the access control is "provider=simple")
Run the following command. <JBOSS_HOME>/bin/jboss-cli.sh -c -> connect -> cd /core-service=management/access-authorization :write-attribute(name=provider, value=rbac) Restart JBoss. Map users to roles by running the following command. Uppercase words are variables. role-mapping=ROLENAME/include=ALIAS:add(name-USERNAME, type=USER ROLE)
Review the mgmt-users.properties file. Also review the <management /> section in the standalone.xml or domain.xml configuration files. The relevant xml file will depend on if the JBoss server is configured in standalone or domain mode. Ensure all users listed in these files are approved for management access to the JBoss server and are in the appropriate role. For domain configurations: <JBOSS_HOME>/domain/configuration/mgmt-users.properties. <JBOSS_HOME>/domain/configuration/domain.xml For standalone configurations: <JBOSS_HOME>/standalone/configuration/mgmt-users.properties. <JBOSS_HOME>/standalone/configuration/standalone.xml If the users listed are not in the appropriate role, this is a finding.
Document approved management users and their roles. Configure the application server to use RBAC and ensure users are placed into the appropriate roles.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Verify that Silent Authentication has been removed from the default Application security realm. Run the following command. For standalone servers, run the following command: "ls /core-service=management/security-realm=ApplicationRealm/authentication" For managed domain installations, run the following command: "ls /host=HOST_NAME/core-service=management/security-realm=ApplicationRealm/authentication" If "local" is returned, this is a finding.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Remove the local element from the Application Realm. For standalone servers, run the following command: /core-service=management/security-realm= ApplicationRealm/authentication=local:remove For managed domain installations, run the following command: /host=HOST_NAME/core-service=management/security-realm= ApplicationRealm/authentication=local:remove
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Verify that Silent Authentication has been removed from the default Management security realm. Run the following command. For standalone servers run the following command: "ls /core-service=management/security-realm=ManagementRealm/authentication" For managed domain installations run the following command: "ls /host=HOST_NAME/core-service=management/security-realm=ManagementRealm/authentication" If "local" is returned, this is a finding.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Remove the local element from the Management Realm. For standalone servers run the following command: /core-service=management/security-realm= ManagementRealm/authentication=local:remove For managed domain installations run the following command: /host=HOST_NAME/core-service=management/security-realm= ManagementRealm/authentication=local:remove
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Identify the management interfaces. To identity the management interfaces, run the following command: For standalone servers: "ls /core-service=management/management-interface=" For managed domain installations: "ls /host=HOST_NAME/core-service=management/management-interface=" By default, JBoss provides two management interfaces; they are named "NATIVE-INTERFACE" and "HTTP-INTERFACE". The system may or may not have both interfaces enabled. For each management interface listed as a result of the previous command, append the name of the management interface to the end of the following command. For a standalone system: "ls /core-service=management/management-interface=<MANAGEMENT INTERFACE NAME>" For a managed domain: "ls /host=HOST_NAME/core-service=management/management-interface=<MANAGEMENT INTERFACE NAME>" If the "security-realm=" attribute is not associated with a management realm, this is a finding.
Identify the security realm used for management of the system. By default, this is called "Management Realm". If a management security realm is not already available, reference the Jboss EAP 6.3 system administration guide for instructions on how to create a security realm for management purposes. Create the management realm, and assign authentication and authorization access restrictions to the management realm. Assign the management interfaces to the management realm.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a managed domain configuration: "host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=authorization/role-mapping=Auditor/include=" For a Standalone configuration: "ls /core-service=management/access=authorization/role-mapping=Auditor/include=" If the list of users in the Auditors group is not approved by the ISSM, this is a finding.
Obtain documented approvals from ISSM, and assign the appropriate personnel into the "Auditor" role.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Application logs are a configurable variable. Interview the system admin, and have them identify the applications that are running on the application server. Have the system admin identify the log files/location where application activity is stored. Review the log files to ensure each application is uniquely identified within the logs or each application has its own unique log file. Generate application activity by either authenticating to the application or generating an auditable event, and ensure the application activity is recorded in the log file. Recently time stamped application events are suitable evidence of compliance. If the log records do not indicate which application hosted on the application server generated the event, or if no events are recorded related to application activity, this is a finding.
Configure log formatter to audit application activity so individual application activity can be identified.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. The PROFILE NAMEs included with a Managed Domain JBoss configuration are: "default", "full", "full-ha" or "ha" For a Managed Domain configuration, you must check each profile name: For each PROFILE NAME, run the command: "ls /profile=<PROFILE NAME>/subsystem=logging/root-logger=ROOT" If ROOT logger "level" is not set to INFO, DEBUG or TRACE This is a finding for each <PROFILE NAME> (default, full, full-ha and ha) For a Standalone configuration: "ls /subsystem=logging/root-logger=ROOT" If "level" not = INFO, DEBUG or TRACE, this is a finding.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. The PROFILE NAMEs included with a Managed Domain JBoss configuration are: "default", "full", "full-ha" or "ha" For a Managed Domain configuration, you must check each profile name: For each PROFILE NAME, run the command: "/profile=<PROFILE NAME>/subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=INFO)" For a Standalone configuration: "/subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=INFO)"
Examine the log file locations and inspect the file permissions. Interview the system admin to determine log file locations. The default location for the log files is: Standalone configuration: <JBOSS_HOME>/standalone/log/ Managed Domain configuration: <JBOSS_HOME>/domain/servers/<servername>/log/ <JBOSS_HOME>/domain/log/ Review the file permissions for the log file directories. The method used for identifying file permissions will be based upon the OS the EAP server is installed on. Identify all users with file permissions that allow them to read log files. Request documentation from system admin that identifies the users who are authorized to read log files. If unauthorized users are allowed to read log files, or if documentation that identifies the users who are authorized to read log files is missing, this is a finding.
Configure the OS file permissions on the application server to protect log information from unauthorized read access.
Examine the log file locations and inspect the file permissions. Interview the system admin to determine log file locations. The default location for the log files is: Standalone configuration: <JBOSS_HOME>/standalone/log/ Managed Domain configuration: <JBOSS_HOME>/domain/servers/<servername>/log/ <JBOSS_HOME>/domain/log/ Review the file permissions for the log file directories. The method used for identifying file permissions will be based upon the OS the EAP server is installed on. Identify all users with file permissions that allow them to modify log files. Request documentation from system admin that identifies the users who are authorized to modify log files. If unauthorized users are allowed to modify log files, or if documentation that identifies the users who are authorized to modify log files is missing, this is a finding.
Configure the OS file permissions on the application server to protect log information from unauthorized modification.
Examine the log file locations and inspect the file permissions. Interview the system admin to determine log file locations. The default location for the log files is: Standalone configuration: <JBOSS_HOME>/standalone/log/ Managed Domain configuration: <JBOSS_HOME>/domain/servers/<servername>/log/ <JBOSS_HOME>/domain/log/ Review the file permissions for the log file directories. The method used for identifying file permissions will be based upon the OS the EAP server is installed on. Identify all users with file permissions that allow them to delete log files. Request documentation from system admin that identifies the users who are authorized to delete log files. If unauthorized users are allowed to delete log files, or if documentation that identifies the users who are authorized to delete log files is missing, this is a finding.
Configure the OS file permissions on the application server to protect log information from unauthorized deletion.
Interview the system admin and obtain details on how the log files are being off-loaded to a different system or media. If the log files are not off-loaded a minimum of every 7 days, this is a finding.
Configure the application server to off-load log records every seven days onto a different system or media from the system being logged.
The mgmt-users.properties files are located in the standalone or domain configuration folder. <JBOSS_HOME>/domain/configuration/mgmt-users.properties. <JBOSS_HOME>/standalone/configuration/mgmt-users.properties. Identify users who have access to the files using relevant OS commands. Obtain documentation from system admin identifying authorized users. Owner can be full access. Group can be full access. All others must have execute permissions only. If the file permissions are not configured so as to restrict access to only authorized users, or if documentation that identifies authorized users is missing, this is a finding.
Configure the file permissions to allow access to authorized users only. Owner can be full access. Group can be full access. All others must have execute permissions only.
Identify the user account used to run the JBoss server. Use relevant OS commands to determine logon rights to the system. This account should not have full shell/interactive access to the system. If the user account used to operate JBoss can log on interactively, this is a finding.
Use the relevant OS commands to restrict JBoss user account from interactively logging on to the console of the JBoss system. For Windows systems, use GPO. For UNIX like systems using ssh DenyUsers <account id> or follow established procedure for restricting access.
Open the EAP web console by pointing a web browser to HTTPS://<SERVERNAME>:9443 or HTTP://<SERVERNAME>:9990 Log on to the admin console using admin credentials. On the bottom right-hand side of the screen, select "Settings". If the "Enable Data Usage Collection" box is checked, this is a finding.
Using the EAP web console, log on using admin credentials. On the bottom right-hand side of the screen, select "Settings", uncheck the "Enable Data Usage Collection" box, and save the configuration.
The script that is used to start JBoss determines the mode in which JBoss will operate, which will be in either in standalone mode or domain mode. Both scripts are installed by default in the <JBOSS_HOME>/bin/ folder. In addition to running the JBoss server as an interactive script launched from the command line, JBoss can also be started as a service. The scripts used to start JBoss are: Red Hat: standalone.sh domain.sh Windows: standalone.bat domain.bat Use the relevant OS commands to determine JBoss ownership. When running as a process: Red Hat: "ps -ef|grep -i jboss". Windows: "services.msc". Search for the JBoss process, which by default is named "JBOSSEAP6". If the user account used to launch the JBoss script or start the JBoss process has admin rights on the system, this is a finding.
Run the JBoss server with non-admin rights.
Examine the <JBOSS_HOME> folder. If a jboss-eap-6.3.0-GA-quickstarts folder exits, this is a finding.
Delete the QuickStarts folder.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. For a Managed Domain configuration, you must check each profile name: For each PROFILE NAME, run the command: "ls /profile=<PROFILE NAME>/subsystem=jmx/remoting-connector" For a Standalone configuration: "ls /subsystem=jmx/remoting-connector" If "jmx" is returned, this is a finding.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. For a Managed Domain configuration you must check each profile name: For each PROFILE NAME, run the command: "/profile=<PROFILE NAME>/subsystem=jmx/remoting-connector=jmx:remove" For a Standalone configuration: "/subsystem=jmx/remoting-connector=jmx:remove"
Use a web browser and browse to HTTP://JBOSS SERVER IP ADDRESS:8080 If the JBoss Welcome page is displayed, this is a finding.
Use the Management CLI script JBOSS_HOME/bin/jboss-cli.sh to run the following command. You may need to change the profile to modify a different managed domain profile, or remove the "/profile=default" portion of the command for a standalone server. "/profile=default/subsystem=web/virtual-server=default-host:writeattribute(name=enable-welcome-root,value=false)" To configure your web application to use the root context (/) as its URL address, modify the applications jboss-web.xml, which is located in the applications META-INF/ or WEB-INF/ directory. Replace its <context-root> directive with one that looks like the following: <jboss-web> <context-root>/</context-root> </jboss-web>
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the command: ls /deployment The list of deployed applications is displayed. Have the system admin identify the applications listed and confirm they are approved applications. If the system admin cannot provide documentation proving their authorization for deployed applications, this is a finding.
Identify, authorize, and document all applications that are deployed to the application server. Remove unauthorized applications.
Open the EAP web console by pointing a web browser to HTTPS://<Servername>:9443 or HTTP://<Servername>:9990 Log on to the admin console using admin credentials Select the "Configuration" tab Expand the "General Configuration" sub system by clicking on the + Select "Socket Binding" Select the "View" option next to "standard-sockets" Select "Inbound" Review the configured ports and determine if they are all approved by the PPSM CAL. If all the ports are not approved by the PPSM CAL, this is a finding.
Open the EAP web console by pointing a web browser to HTTPS://<Servername>:9990 Log on to the admin console using admin credentials Select the "Configuration" tab Expand the "General Configuration" sub system by clicking on the + Select "Socket Binding" Select the "View" option next to "standard-sockets" Select "Inbound" Select the port that needs to be reconfigured and select "Edit".
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. To obtain the list of security realms run the command: "ls /core-service=management/security-realm=" Review each security realm using the command: "ls /core-service=management/security-realm=<SECURITY_REALM_NAME>/authentication" If this command does not return a security realm that uses LDAP for authentication, this is a finding.
Follow steps in section 11.8 - Management Interface Security in the JBoss_Enterprise_Application_Platform-6.3-Administration_and_Configuration_Guide-en-US document. 1. Create an outbound connection to the LDAP server. 2. Create an LDAP-enabled security realm. 3. Reference the new security domain in the Management Interface.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Follow these steps: 1. Identify the security realm assigned to the management interfaces by using the following command: For standalone systems: "ls /core-service=management/management-interface=<INTERFACE-NAME>" For managed domain systems: "ls /host=master/core-service=management/management-interface=<INTERFACE-NAME>" Document the name of the security-realm associated with each management interface. 2. Review the security realm using the command: For standalone systems: "ls /core-service=management/security-realm=<SECURITY_REALM_NAME>/authentication" For managed domains: "ls /host=master/core-service=management/security-realm=<SECURITY_REALM_NAME>/authentication" If the command in step 2 does not return a security realm that uses certificates for authentication, this is a finding.
Configure the application server to authenticate privileged users via multifactor/certificate-based authentication mechanisms when using network access to the management interface.
If the application server management interface is configured to use LDAP authentication this requirement is NA. Determine the mode in which the JBoss server is operating by authenticating to the OS, changing to the <JBOSS_HOME>/bin/ folder and executing the jboss-cli script. Connect to the server and authenticate. Run the command: "ls" and examine the "launch-type" setting. User account information is stored in the following files for a JBoss server configured in standalone mode. The command line flags passed to the "standalone" startup script determine the standalone operating mode: <JBOSS_HOME>/standalone/configuration/standalone.xml <JBOSS_HOME>/standalone/configuration/standalone-full.xml <JBOSS_HOME>/standalone/configuration/standalone.-full-ha.xml <JBOSS_HOME>/standalone/configuration/standalone.ha.xml For a Managed Domain: <JBOSS_HOME>/domain/configuration/domain.xml. Review file(s) for generic or shared user accounts. Open each xml file with a text editor and locate the <management-interfaces> section. Review the <user name = "xxxxx"> sub-section where "xxxxx" will be a user name. Have the system administrator identify the user of each user account. If user accounts are not assigned to individual users, this is a finding.
Configure the application server so required users are individually authenticated by creating individual user accounts. Utilize an LDAP server that is configured according to DOD policy.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Obtain the list of management interfaces by running the command: "ls /core-service=management/management-interface" Identify the security realm used by each management interface configuration by running the command: "ls /core-service=management/management-interface=<MANAGEMENT-INTERFACE-NAME>" Determine if the security realm assigned to the management interface uses LDAP for authentication by running the command: "ls /core-service=management/security-realm=<SECURITY_REALM_NAME>/authentication" If the security realm assigned to the management interface does not utilize LDAP for authentication, this is a finding.
Follow steps in section 11.8 - Management Interface Security in the JBoss_Enterprise_Application_Platform-6.3-Administration_and_Configuration_Guide-en-US document. 1. Create an outbound connection to the LDAP server. 2. Create an LDAP-enabled security realm. 3. Reference the new security domain in the Management Interface.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Based on your installation, use the relevant OS commands and syntax to access the standalone or domain configuration folder. <JBOSS_HOME>/standalone/configuration folder. Review the standalone.xml file. <JBOSS_HOME>/domain/configuration folder. Review the domain.xml file If the <vault> section does not exist or if the <vault-option> settings are not configured, this is a finding. If the <vault> section does not exist or if the <vault-option> settings are not configured, this is a finding.
Configure the application server to use the java keystore and JBoss vault as per section 11.13.1 -Password Vault System in the JBoss_Enterprise_Application_Platform-6.3-Administration_and_Configuration_Guide-en-US document. 1. Create a java keystore. 2. Mask the keystore password and initialize the password vault. 3. Configure JBoss to use the password vault.
The default location for the keystore used by the JBoss vault is the <JBOSS_HOME>/vault/ folder. If a vault keystore has been created, by default it will be in the file: <JBOSS_HOME>/vault/vault.keystore. The file stores a single key, with the default alias vault, which will be used to store encrypted strings, such as passwords, for JBoss EAP. Have the system admin provide the procedure used to encrypt the keystore password that unlocks the keystore. If the system administrator is unable to demonstrate or provide written process documentation on how to encrypt the keystore password, this is a finding.
Configure the application server to mask the java keystore password as per the procedure described in section 11.13.3 -Password Vault System in the JBoss_Enterprise_Application_Platform-6.3-Administration_and_Configuration_Guide-en-US document.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the command: "ls /core-service=management/security-realm=ldap_security_realm/authentication=ldap" If "allow-empty-passwords=true", this is a finding.
Configure the LDAP Security Realm using default settings that sets "allow-empty-values" to false. LDAP Security Realm creation is described in section 11.9 -Add an LDAP Security Realm in the JBoss_Enterprise_Application_Platform-6.3-Administration_and_Configuration_Guide-en-US document.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the following command: For standalone servers: "ls /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=ldap_connection" For managed domain installations: "ls /socket-binding-group=<PROFILE>/remote-destination-outbound-socket-binding=" The default port for secure LDAP is 636. If 636 or secure LDAP protocol is not utilized, this is a finding.
Follow steps in section 11.8 - Management Interface Security in the JBoss_Enterprise_Application_Platform-6.3-Administration_and_Configuration_Guide-en-US document. 1. Create an outbound connection to the LDAP server. 2. Create an LDAP-enabled security realm. 3. Reference the new security domain in the Management Interface.
The default location for the keystore used by the JBoss vault is the <JBOSS_HOME>/vault/ folder. If a vault keystore has been created, by default it will be in the file: <JBOSS_HOME>/vault/vault.keystore. The file stores a single key, with the default alias vault, which will be used to store encrypted strings, such as passwords, for JBoss EAP. Browse to the JBoss vault folder using the relevant OS commands. Review the file permissions and ensure only system administrators and JBoss users are allowed access. Owner can be full access Group can be full access All others must be restricted to execute access or no permission. If non-system administrators are allowed to access the <JBOSS_HOME>/vault/ folder, this is a finding.
Configure the application server OS file permissions on the corresponding private key to restrict access to authorized accounts or roles.
If JBoss is not started with separate management and public interfaces, this is a finding. Review the network design documents to identify the IP address space for the management network. Use relevant OS commands and administrative techniques to determine how the system administrator starts the JBoss server. This includes interviewing the system admin, using the "ps -ef|grep" command for UNIX like systems or checking command line flags and properties on batch scripts for Windows systems. Ensure the startup syntax used to start JBoss specifies a management network address and a public network address. The "-b" flag specifies the public address space. The "-bmanagement" flag specifies the management address space. Example: <JBOSS_HOME>/bin/standalone.sh -bmanagement 10.10.10.35 -b 192.168.10.25 If JBoss is not started with separate management and public interfaces, this is a finding.
Start the application server with a -bmanagement and a -b flag so that admin management functionality and hosted applications are separated. Refer to section 4.9 in the JBoss EAP 6.3 Installation Guide for specific instructions on how to start the JBoss server as a service.
By default, JBoss installs its files into a folder called "jboss-eap-6.3". This folder by default is stored within the home folder of the JBoss user account. The installation process, however, allows for the override of default values to obtain folder and user account information from the system admin. Log on with a user account with JBoss access and permissions. Navigate to the "Jboss-eap-6.3" folder using the relevant OS commands for either a UNIX-like OS or a Windows OS. Examine the permissions of the JBoss folder. Owner can be full access. Group can be full access. All others must be restricted to execute access or no permission. If the JBoss folder is world readable or world writeable, this is a finding.
Configure file permissions on the JBoss folder to protect from unauthorized access.
If the JBoss log folder is installed in the default location and 213514 (JBOS-AS-000170) is not a finding, the log folders are protected and this requirement is not a finding. By default, JBoss installs its log files into a sub-folder of the "jboss-eap-6.3" home folder. Using a UNIX like OS example, the default location for log files is: JBOSS_HOME/standalone/log JBOSS_HOME/domain/log For a standalone configuration: JBOSS_HOME/standalone/log/server.log" Contains all server log messages, including server startup messages. For a domain configuration: JBOSS_HOME/domain/log/hostcontroller.log Host Controller boot log. Contains log messages related to the startup of the host controller. JBOSS_HOME/domain/log/processcontroller.log Process controller boot log. Contains log messages related to the startup of the process controller. JBOSS_HOME/domain/servers/SERVERNAME/log/server.log The server log for the named server. Contains all log messages for that server, including server startup messages. Log on with an OS user account with JBoss access and permissions. Navigate to the "Jboss-eap-6.3" folder using the relevant OS commands for either a UNIX like OS or a Windows OS. Examine the permissions of the JBoss logs folders. Owner can be full access. Group can be full access. All others must be restricted. If the JBoss log folder is world readable or world writeable, this is a finding.
Configure file permissions on the JBoss log folder to protect from unauthorized access.
Log on to each of the JBoss domain member servers. Note: Sites that manage systems using the JBoss Operations Network client require HTTP interface access. It is acceptable that the management console alone be disabled rather than disabling the entire interface itself. Run the <JBOSS_HOME>/bin/jboss-cli command line interface utility and connect to the JBoss server. Run the following command: ls /core-service=management/management-interface=httpinterface/ If "console-enabled=true", this is a finding.
Run the <JBOSS_HOME>/bin/jboss-cli command line interface utility. Connect to the JBoss server and run the following command. /core-service=management/management-interface=httpinterface/:write-attribute(name=console-enabled,value=false) Successful command execution returns {"outcome" => "success"}, and future attempts to access the management console via web browser at <SERVERNAME>:9990 will result in no access to the admin console.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the following command: For standalone servers: "ls /core-service=management/access=authorization/" For managed domain installations: "ls /host=master/core-service=management/access=authorization/" If the "provider" attribute is not set to "rbac", this is a finding.
Run the following command. <JBOSS_HOME>/bin/jboss-cli.sh -c -> connect -> cd /core-service=management/access-authorization :write-attribute(name=provider, value=rbac) Restart JBoss. Map users to roles by running the following command. Upper-case words are variables. role-mapping=ROLENAME/include=ALIAS:add(name-USERNAME, type=USER ROLE)
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the command: /core-service=management/access=audit:read-resource(recursive=true) Under the "logger" => {audit-log} section of the returned response: If "enabled" => false, this is a finding
Launch the jboss-cli management interface substituting standalone or domain for <CONFIG> based upon the server installation. <JBOSS_HOME>/<CONFIG>/bin/jboss-cli connect to the server and run the following command: /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the command: Standalone configuration: "ls /subsystem=logging/syslog-handler=" Domain configuration: "ls /profile=<specify>/subsystem=logging/syslog-handler=" Where <specify> = the selected application server profile of; default,full, full-ha or ha. If no values are returned, this is a finding.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the “<JBOSS_HOME>/bin/” folder. Run the “jboss-cli” script. Connect to the server and authenticate. To add a syslog handler: Standalone configuration: "/subsystem=logging/syslog-handler=<HANDLER_NAME:add>" Domain configuration: "/profile=default/subsystem=logging/syslog-handler=<HANDLER_NAME:add>" To configure a syslog handler: Standalone configuration. "/subsystem=logging/syslog-handler=<HANDLER_NAME:write-attribute(name=ATTRIBUTE_NAME, value=ATTRIBUTE_VALUE)" Domain configuration. "/profile=default/subsystem=logging/syslog-handler=<HANDLER_NAME:write-attribute(name=ATTRIBUTE_NAME, value=ATTRIBUTE_VALUE)" *reference the RedHat web-site for the list of syslog handler attributes and corresponding values. Sample attributes include but are not limited to: port, enabled, app-name, level, server-address, hostname, etcetera.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the command: ls /subsystem=deployment-scanner/scanner=default If "scan-enabled"=true, this is a finding.
Determine the JBoss server configuration as being either standalone or domain. Launch the relevant jboss-cli management interface substituting standalone or domain for <CONFIG> <JBOSS_HOME>/<CONFIG>/bin/jboss-cli connect to the server and run the command: /subsystem=deployment-scanner/scanner=default:write-attribute(name=scan-enabled,value=false)
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the command: ls /core-service=management/access=audit/logger=audit-log If "enabled" = false, this is a finding.
Launch the jboss-cli management interface substituting standalone or domain for <CONFIG> based upon the server installation. <JBOSS_HOME>/<CONFIG>/bin/jboss-cli connect to the server and run the following command: /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Run the command: ls /core-service=management/access=audit/logger=audit-log If "enabled" = false, this is a finding.
Launch the jboss-cli management interface substituting standalone or domain for <CONFIG> based upon the server installation. <JBOSS_HOME>/<CONFIG>/bin/jboss-cli connect to the server and run the following command: /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
Locate the cacerts file for the JVM. This can be done using the appropriate find command for the OS and change to the directory where the cacerts file is located. To view the certificates stored within this file, execute the java command "keytool -list -v -keystore ./cacerts". Verify that the Certificate Authority (CA) for each certificate is DoD-approved. If any certificates have a CA that are not DoD-approved, this is a finding.
Locate the cacerts file for the JVM. This can be done using the appropriate find command for the OS and change to the directory where the cacerts file is located. Remove the certificates that have a CA that is non-DoD approved, and import DoD CA-approved certificates.
Interview the system admin and determine if the applications hosted on the application server are mission critical and require load balancing (LB) or high availability (HA). If the applications do not require LB or HA, this requirement is NA. If the documentation shows the LB or HA services are being provided by another system other than the application server, this requirement is NA. If applications require LB or HA, request documentation from the system admin that identifies what type of LB or HA configuration has been implemented on the application server. Ask the system admin to identify the components that require protection. Some options are included here as an example. Bear in mind the examples provided are not complete and absolute and are only provided as examples. The components being made redundant or HA by the application server will vary based upon application availability requirements. Examples are: Instances of the Application Server Web Applications Stateful, stateless and entity Enterprise Java Beans (EJBs) Single Sign On (SSO) mechanisms Distributed Cache HTTP sessions JMS and Message Services. If the hosted application requirements specify LB or HA and the JBoss server has not been configured to offer HA or LB, this is a finding.
Configure the application server to provide LB or HA services for the hosted application.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Validate that the TLS protocol is used for HTTPS connections. Run the command: "ls /subsystem=web/connector=https/ssl=configuration" If a TLS V1.2 or higher protocol is not returned, this is a finding.
Reference section 4.6 of the JBoss EAP 6.3 Security Guide located on the Red Hat vendor's web site for step-by-step instructions on establishing SSL encryption on JBoss. The overall steps include: 1. Add an HTTPS connector. 2. Configure the SSL encryption certificate and keys. 3. Set the protocol to TLS V1.2 or greater.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Validate that the TLS protocol is used for HTTPS connections. Run the command: "ls /subsystem=web/connector=https/ssl=configuration" Review the cipher suites. The following suites are acceptable as per NIST 800-52r1 section 3.3.1 - Cipher Suites. Refer to the NIST document for a complete list of acceptable cipher suites. The source NIST document and approved encryption algorithms/cipher suites are subject to change and should be referenced. AES_128_CBC AES_256_CBC AES_128_GCM AES_128_CCM AES_256_CCM If the cipher suites utilized by the TLS server are not approved by NIST as per 800-52r1, this is a finding.
Reference section 4.6 of the JBoss EAP 6.3 Security Guide located on the Red Hat vendor's website for step-by-step instructions on establishing SSL encryption on JBoss. The overall steps include: 1. Add an HTTPS connector. 2. Configure the SSL encryption certificate and keys. 3. Set the Cipher to an approved algorithm.
Interview the system admin and have them either show documented proof of current support, or have them demonstrate their ability to access the Red Hat Enterprise Support portal. Verify Red Hat support includes coverage for the JBoss product. If there is no current and active support from the vendor, this is a finding.
Obtain vendor support from Red Hat.
Interview the system admin and obtain details on their patch management processes as it relates to the OS and the Application Server. If there is no active, documented patch management process in use for these components, this is a finding.
Configure the operating system and the application server to use a patch management system or process that ensures security-relevant updates are installed within the time period directed by the ISSM.
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script to start the Command Line Interface (CLI). Connect to the server and authenticate. Run the command: For a Managed Domain configuration: "ls host=master/server=<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "ls /core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" If "enabled" = false, this is a finding.
Launch the jboss-cli management interface. Connect to the server by typing "connect", authenticate as a user in the Superuser role, and run the following command: For a Managed Domain configuration: "host=master/server/<SERVERNAME>/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)" For a Standalone configuration: "/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)"
Interview the administrator to determine if JBoss is using certificates for PKI. If JBoss is not performing any PKI functions, this finding is NA. The CA certs are usually stored in a file called cacerts located in the directory $JAVA_HOME/lib/security. If the file is not in this location, use a search command to locate the file, or ask the administrator where the certificate store is located. Open a dos shell or terminal window and change to the location of the certificate store. To view the certificates within the certificate store, run the command (in this example, the keystore file is cacerts.): keytool -list -v -keystore ./cacerts Locate the "OU" field for each certificate within the keystore. The field should contain either "DoD" or "CNSS" as the Organizational Unit (OU). If the OU does not show that the certificates are DoD or CNSS supplied, this is a finding.
Configure the application server to use DoD- or CNSS-approved Class 3 or Class 4 PKI certificates.
If the JBoss server is configured to use a Syslog Handler, this is not a finding. Log on to the OS of the JBoss server with OS permissions that allow access to JBoss. Using the relevant OS commands and syntax, cd to the <JBOSS_HOME>/bin/ folder. Run the jboss-cli script. Connect to the server and authenticate. Determine if there is a periodic rotating file handler. For a domain configuration run the following command; where <SERVERNAME> is a variable for all of the servers in the domain. Usually "server-one", "server-two", etc.: "ls /host=master/server=<SERVERNAME>/subsystem=logging/periodic-rotating-file-handler=" For a standalone configuration run the command: "ls /subsystem=logging/periodic-rotating-file-handler=" If the command does not return "FILE", this is a finding. Review the <JBOSS_HOME>/standalone/log folder for the existence of rotated logs, and ask the admin to demonstrate how rotated logs are packaged and transferred to another system on at least a weekly basis.
Open the web-based management interface by opening a browser and pointing it to HTTPS://<EAP_SERVER>:9990/ Authenticate as a user with Admin rights. Navigate to the "Configuration" tab. Expand + Subsystems. Expand + Core. Select "Logging". Select the "Handler" tab. Select "Periodic". If a periodic file handler does not exist, reference JBoss admin guide for instructions on how to create a file handler that will rotate logs on a daily basis. Create scripts that package and off-load log data at least weekly.
Obtain documentation and network drawings from system admin that shows the network interfaces on the JBoss server and the networks they are configured for. If a management network is not used, you may substitute localhost/127.0.0.1 for management address. If localhost/127.0.0.1 is used for management interface, this is not a finding. From the JBoss server open the web-based admin console by pointing a browser to HTTP://127.0.0.1:9990. Log on to the management console with admin credentials. Select "RUNTIME". Expand STATUS by clicking on +. Expand PLATFORM by clicking on +. In the "Environment" tab, click the > arrow until you see the "jboss.bind.properties" and the "jboss.bind.properties.management" values. If the jboss.bind.properties and the jboss.bind.properties.management do not have different IP network addresses assigned, this is a finding. Review the network documentation. If access to the management IP address is not restricted, this is a finding.
Refer to Section 4.9 of the JBoss EAP 6.3 Installation guide for detailed instructions on how to start JBoss as a service. Use the following command line parameters to assign the management interface to a specific management network. These command line flags must be added both when starting JBoss as a service and when starting from the command line. Substitute your actual network address for the 10.x.x.x addresses provided as an example below. For a standalone configuration: JBOSS_HOME/bin/standalone.sh -bmanagement=10.2.2.1 -b 10.1.1.1 JBOSS_HOME/bin/domain.sh -bmanagement=10.2.2.1 -b 10.1.1.1 If a management network is not available, you may substitute localhost/127.0.0.1 for management address. This will force you to manage the JBoss server from the local host.