To use Cognos product documentation, you must enable JavaScript in your browser.

Securing the Application

Using the built-in security features, you can configure a Cognos 8 installation for maximum security.

The best practices provided here are not a complete list of all configuration tasks required to secure your application. However, they address the most critical issues that include Cognos Application Firewall , the cryptographic environment , the SSL protocol , and the temporary files . They also address securing access to Cognos Connection , Cognos PowerCubes , data source signons , and the content store .

Recommendation - Use Cognos Application Firewall

Cognos Application Firewall (CAF) supplements the existing Cognos 8 security infrastructure. By default, this supplemental security is enabled. To ensure that the Cognos 8 solution is secure, CAF should never be disabled in a production environment.

In a distributed environment, all CAF settings must be the same for all computers where Cognos 8 Application Tier Components are installed. If CAF is disabled on some computers and enabled on others, unexpected behavior and product errors may result.

CAF protects the Cognos 8 components from processing malicious data. The most common forms of malicious data are buffer overflows and cross-site scripting attacks (XSS links), either through script injection in valid pages or redirection to other Web sites.

Using Cognos Configuration, you can change settings for third-party XSS tool support, and add host and domain names to the Cognos list of valid names.

You can also track firewall activity by checking the log file, which contains rejected requests. By default, log messages are stored in the c8_location\logs\cogserver.log file.

Configuring the Cryptographic Environment

We recommend that you assess the level of security required for your environment before setting up the system. Typical factors that influence the decision how secure a system must be, include

For more information about cryptography in Cognos 8, see Cryptographic Services. For more information about configuring the cryptographic settings, see the Installation and Configuration Guide.

Cryptographic Providers and Cipher Strength

Cognos 8 components require a cryptographic provider to run . If you delete the default cryptographic provider, you must configure another provider .

The default cryptographic provider uses keys up to 56 bits for data encryption and secure sockets layer (SSL) protocol. If your organization needs stronger encryption, you can configure enhanced cryptographic providers that use key sizes greater than 56 bits, such as the Enhanced Encryption Module for OpenSSL or the Enhanced Encryption Module for Entrust. Both providers are available from Cognos.

When choosing the cryptographic provider, cipher strength should not be the main concern. The encryption provided by the standard Cognos provider is secure enough for most applications. A high-security setup relies not only on the cipher strength, but on the security of the whole system, which includes physical access to directories, password policies, and so on. Only if your environment is exposed to the Internet and deals with highly sensitive data, you should consider using the enhanced encryption modules.

The Certificate Authority (CA)

When you implement the standard or enhanced Cognos cryptographic provider , the Cognos 8 certificate authority, AutoCA, is used by default. AutoCA signs the internal certificates and provides all the functionality needed to establish the root of trust in the Cognos security infrastructure.

AutoCA is sufficient for simple setups and test environments, but has limitations in development and production environments. For example, it cannot provide full administration capabilities for issued and revoked certificates, issue certificates based on purpose, such as mail, server, and private certificates, or sign the Web server and client certificates.

If you intend to enable SSL for the Web server or application server, or use client certificates, you need a third-party CA. This can likely be a CA that your organization already implemented as part of its security infrastructure. When using a third party CA, the necessary certificates must be generated and imported. For more information, see the section about configuring Cognos 8 components to use a third-party certificate authority in the Installation and Configuration Guide.

For internal systems that are not exposed to the Internet, you can set up your own CA using the open source software OpenSSL.

Cognos 8 does not support self-signed certificates because they do not adhere to the public key infrastructure (PKI) principles.

Supported Cipher Suites and Application Servers

In distributed installations, you must specify the same set of cipher suites for all installation components. Mixing ciphers, especially weak and strong, can cause problems. The sets must contain at least one common suite. Otherwise, the SSL negotiation fails and the connection cannot be established.

The cipher suites are also affected by the application server that is used to run Cognos 8. If Tomcat is used, the Cognos code generates the server certificates and switches Tomcat to SSL listeners. The cipher suites configured in Cognos 8 are the only ciphers that can be used. If an application server other than Tomcat is used, SSL must be enabled on the application server before the cipher suites are configured in Cognos 8. Ensure that the set of cipher suites you specify in Cognos Configuration contains at least one of the cipher suites configured on the application server. Otherwise, the SSL connection will not initialize.

Specify the list of cipher suites in priority sequence where the stronger ciphers appear first.

The following cipher suites are supported for deployments that use standard or enhanced encryption:

Additionally, for deployments that use enhanced encryption, cipher suites with keys greater than 56 bits are supported.

Enabling SSL

When you use secure sockets layer (SSL), you protect the data crossing between the Web servers, application servers, and LDAP servers. Except for the Web servers, the servers are internal and protected by a firewall. You can usually rely on the network security for external network links. If this security is not enough, SSL should be enabled for communications between Cognos 8 components and other servers.

Enabling SSL requires a certificate authority (CA) , and an administrator with a good knowledge of the public key infrastructure (PKI) technology and SSL.

You can configure Cognos components to use the SSL protocol for

For more information about configuring the SSL protocol, see the Installation and Configuration Guide.

Securing Temporary Files

Cognos 8 uses temporary files during reporting activities to store recently viewed reports. The files are not encrypted. Because the reports can contain sensitive data, they should be secured.

We recommend that you implement the following measures:

For more information, see the section about configuring temporary files properties in the Installation and Configuration Guide.

Techniques for Securing Access to Cognos Connection

When you add an authentication provider in Cognos Configuration, all users in the directory have access to Cognos Connection. To secure Cognos 8, you must restrict this access.

The methods and best practices discussed in this section apply mostly to the LDAP authentication providers, Sun Java System directory server and Active Directory.

Use whichever of the following methods applies to your organization:

Using the Cognos Namespace to Restrict Access

You can restrict access to Cognos Connection only to users who belong to any group or role defined in the Cognos namespace. This is a quick method of securing access to Cognos Connection that can be used with any type of authentication provider. Several built-in groups and roles in the Cognos namespace can be used. You can also create new groups and roles.

Tip: In Cognos Configuration, set the value of the Restrict access to members of the built-in namespace property to True.

Before you use this method, you must

For more information about managing groups and roles in Cognos 8, see the Administration and Security Guide. For more information about configuring Cognos 8 to use an authentication provider, see the Installation and Configuration Guide.

Using LDAP Groups or Roles to Restrict Access

Not all users in your LDAP directory must use Cognos 8. Grant only designated users access to Cognos Connection. This can be done by creating a Cognos 8-specific group or role in your directory server, adding the required users to its membership, and granting the group or role access to Cognos Connection.

An alternative method is based on using the LDAP organizational units (OUs) .

Whether you must create a group or a role depends on your authentication provider. If you use Sun Java System directory server, you must create roles because this provider uses role membership as part of its user account information. If you use Active Directory, you must create groups because this provider uses group membership as part of its user account information.

Using Roles

The roles for this technique are created using Sun Java System directory server. For more information about creating this type of roles, see the Sun Java System documentation.

Ensure that the following parameters are properly defined in Cognos Configuration, in the Security, Authentication category.

After the role is created, configure it for access to Cognos Connection using Cognos Configuration. The role can also be added to the Cognos namespace.

Using Groups

The groups for this technique are created using Active Directory. This technique involves modifications to the user lookup string. Because Active Directory does not have this property, it cannot be used. Instead, the associated LDAP provider is used.

Ensure that the following parameters are properly specified in Cognos Configuration, in the Security, Authentication category.

After the group is created, configure it for access to Cognos Connection using Cognos Configuration. The group can also be added to the Cognos namespace.

Using LDAP OUs to Restrict Access

You can grant access to Cognos Connection for a particular Organizational Unit (OU) or children of a particular OU in an LDAP directory. An OU usually represents a segment of an organization.

For this method to work, you must properly set up the Base Distinguished Name and User lookup properties in Cognos Configuration, under the Security, Authentication category. By using different values for these properties, you can grant access for different OUs in your LDAP directory structure.

Consider the following directory tree:

If users from only the East OU need access to Cognos Connection, the values can be specified as follows.

PropertyValue
Base Distinguished Nameou=East, ou=people, dc=abc, dc=com
User lookupuid=${userID}

If users from both East and West OUs require access, the values can be specified as follows.

PropertyValue
Base Distinguished Nameou=people, dc=abc, dc=com
User lookup(uid=${userID})

The parentheses () in the User lookup property are used as a filter that can search all OUs located under the specified Base DN. In the first example, only the East OU is searched for user accounts. In the second example, both the East and West OUs are searched.

However, in both of the above examples, groups are excluded from access to Cognos Connection because they are located in a different branch of the directory tree than users. To include both the groups and users, the Base DN must be the root of the directory tree. The values would then be as follows.

PropertyValue
Base Distinguished Namedc=abc, dc=com
User lookup(uid=${userID})

As a result, all users in the directory have access to Cognos Connection.

The last example shows that using OUs may not always be the most efficient way of securing access to Cognos Connection. You can use this method if you want to grant access for all users in a particular OU. If you want to grant access only for specific users, you may want to consider creating a designated Cognos 8 group or role in your directory server, and granting this group or role access to Cognos Connection .

Securing Cognos PowerCubes

Cognos Series 7 PowerCubes are secured using the user class views based on the user classes that exist in the Series 7 namespace. After the PowerCubes are deployed into Cognos 8, the MDC files continue to reside in the file system.

As an additional security measure, we recommend that you

To use secured PowerCubes from Cognos Series 7 in Cognos 8, you must have a Series 7 namespace configured as an available authentication provider. PowerCubes that you create in Cognos 8 can be secured against any available authentication provider.

For more information, see the Transformer User Guide or the Administration and Security Guide.

Securing Data Source Signons

Cognos 8 uses data source signons to access the underlying data located in the reporting databases.

To protect against unwanted access to the data, we recommend that you

For more information about data source signons, see the Administration and Security Guide.

Securing the Content Store

To ensure its security and integrity, the content store is accessed by the Content Manager service using single database signon specified in Cognos Configuration. The database signon is encrypted according to your encryption standards. However, the content store security relies not only on the Cognos 8 security but also on the native database security, operating system security, and network security.

For securing your database, we recommend that you follow these guidelines:

      

Secure the database and the database API using the mechanisms provided by the database, the network, and the operating system.

      

Assign a limited number of users to maintain the database.

      

Use your database native security to grant only minimum permissions to the user accounts that access the database, as follows:

  • MS SQL Server

    Users must have create and drop table permissions for the database. Ensure that the user account is a member of the db_ddladmin, db_datareader, and db_datawriter roles, and the owner of their default schema.

  • ORACLE

    Users must have permissions to connect to the database. Also, they must be able to create, alter, and drop tables, triggers, views, procedures, and sequences, as well as insert, update, and delete data in the database tables. The permissions must be granted to the user account directly, and not through a group or role membership.

  • DB2

    Users must have the create, drop table, CREATETAB, CONNECT and IMPLICITSCHEMA permissions for the database. Also, they must have USE permissions for the USER TEMPORARY tablespace and other appropriate tablespaces associated with the database.

  • Sybase Adaptive Server Enterprise

    Users must have create, drop table, create default, create procedure, create rule, create table, and create view permissions for the database.

      

Limit the number of users who have read or write access for the Content Manager tables.

      

Follow other recommendations on securing the database provided by the database vendor.