Control: 9.9 Ensure that 'Java version' is currently supported (if in use)
Description
Periodically, older versions of Java may be deprecated and no longer supported. Using a supported version of Java for app services is recommended to avoid potential unpatched vulnerabilities.
Deprecated and unsupported versions of programming and scripting languages can present vulnerabilities which may not be addressed or may not be addressable.
Remediation
From Azure Portal
- Login to Azure Portal using https://portal.azure.com.
- Go to
App Services
. - Click on each App.
- Under
Settings
section, click onConfiguration
. - Click on the
General settings
pane and ensure that for aStack
ofJava
theMajor Version
andMinor Version
reflect a currently supported release, and that theJava web server version
is set to theauto-update
option.
NOTE: No action is required if Java version
is set to Off
, as Java is not used by your app.
From Azure CLI
To see the list of supported runtimes:
az webapp list-runtimes
To set a currently supported Java version for an existing app, run the following command:
az webapp config set --resource-group <RESOURCE_GROUP_NAME> --name <APP_NAME> [--java-version <JAVA_VERSION> --java-container <JAVA_CONTAINER> --java-container-version <JAVA_CONTAINER_VERSION> [--windows-fx-version <JAVA_RUNTIME_VERSION>] [--linux-fx-version <JAVA_RUNTIME_VERSION>]
If creating a new application to use a currently supported version of Java, run the following commands.
To create an app service plan:
az appservice plan create --resource-group <RESOURCE_GROUP_NAME> --name <PLAN_NAME> --location <LOCATION> [--is-linux --number-of-workers <INT> --sku <PRICING_TIER>] [--hyper-v --sku <PRICING_TIER>]
Get the app service plan ID:
az appservice plan list --query "[].{Name:name, ID:id, SKU:sku, Location:location}"
To create a new Java web application using the retrieved app service ID:
az webapp create --resource-group <RESOURCE_GROUP_NAME> --plan <APP_SERVICE_PLAN_ID> --name <app name> [--linux-fx-version <JAVA_RUNTIME_VERSION>] [--windows-fx-version <JAVA_RUNTIME_VERSION>]
From PowerShell
As of this writing, there is no way to update an existing application's SiteConfig
or set a new application's SiteConfig
settings during creation via PowerShell.
Default Value
The default setting is whichever setting was chosen in the creation of the webapp.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.cis_v300_9_9
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.cis_v300_9_9 --share
SQL
This control uses a named query:
appservice_web_app_latest_java_version