Even the most secure back-end infrastructures face risks if front-end setups don’t support their high security standards. Yellowfin software can be further secured by tweaking some settings and disabling the ones you don’t expect to use to help maintain very high security.
Set up HTTPS
HTTPS can be configured at a Tomcat level, allowing full control over available protocols and whether the service is accessible via HTTP. A detailed walk-through can be found here on the Yellowfin Community site.
Improve Yellowfin web.xml hardening configurations
There are several considerations when hardening at the application server level. Your needs will depend on different factors, such as public or private deployment, whether Yellowfin is embedded into another application, network configurations, and which APIs will be used.
The Yellowfin web.xml file is found at
When Yellowfin is configured to serve over HTTPS, it can also be configured to automatically redirect to the secure port.
Secure session cookies
To set the secure attribute on JSESSION cookies, insert the following into your web.xml. This attribute declares that the cookie should be sent over secure channels only, such as HTTPS.
OWASP secure headers
Yellowfin has implemented an OWASP Secure Headers filter that can be used to configure security headers as per these standards. An example configuration can be found below; however, these values should be adjusted to meet organizational standards or policies. Note that for
Content-Security-Policy, the set of values defined below in
value> is the minimum entry for Yellowfin functionality.
Enabling Yellowfin’s CSRF filter adds a nonce to application requests, protecting your instance from cross-site request forgery attacks.
Of particular importance here is the
AllowedEntry parameter. This comma-separated list of URLs will instruct Yellowfin to bypass the nonce check and allow entry to any of the pages from these URLs.
The referrer filter is offered as an additional layer of security further to the CSRF filter. This validates the referrer field in a request against the
hostingdomainURL parameter before processing the request. The
ignore parameter should have the items listed below at a minimum, as well as any other entry points from external applications, such as when integrating Yellowfin.
Disable or restrict access to unused APIs
Yellowfin 9.3 and later releases feature the new REST API. The legacy SOAP Web Services API can be disabled if REST is to be used. Search for
AxisServlet — the snippet that enables the legacy API — and comment out this block to turn this off.
Or for the REST and JS API, if not in use, add the following:
A collection of informational pages is available for support and analyses. These pages may contain system information such as OS version, RDBMS types, or running application threads.
Provides details of the operating environment including system, application, locale, license, server-side software details and library versions.
Displays the Yellowfin cache status and capacity information.
Displays information on Yellowfin cluster configuration, where applicable.
Displays available and default locales.
Outputs JVM threads and their status.
Expands on the above by including thread ownership, when applicable, and CPU time.
You can disable these by adding the snippet below.
Keep in mind that these pages may be requested by Support when encountering an issue. There are alternatives to disabling these pages that will allow you to restrict access based on different factors. One example is the
RemoteAddrFilter, which will restrict access by IP address.
This will allow the page to be accessed from any 127.x.x.x address. See more in the Tomcat Documentation under the Access Control heading.