Oracle FLEXCUBE Core Banking Security Guide
Oracle FLEXCUBE Core Banking Security Guide
Oracle FLEXCUBE Core Banking Security Guide
Banking
Security Guide
Release 11.7.0.0.0
May 2017
[May] [2017]
www.oracle.com/financialservices/
Copyright © [2014], [2017], Oracle and/or its affiliates. All rights reserved.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be
trademarks of their respective owners.
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated
software, any programs installed on the hardware, and/or documentation, delivered to U.S.
Government end users are “commercial computer software” pursuant to the applicable Federal
Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication,
disclosure, modification, and adaptation of the programs, including any operating system, integrated
software, any programs installed on the hardware, and/or documentation, shall be subject to license
terms and license restrictions applicable to the programs. No other rights are granted to the U.S.
Government.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in
dangerous applications, then you shall be responsible to take all appropriate failsafe, backup,
redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim
any liability for any damages caused by use of this software or hardware in dangerous applications.
This software and related documentation are provided under a license agreement containing
restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly
permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate,
broadcast, modify, license, transmit, distribute, exhibit, perform, publish or display any part, in any
form, or by any means. Reverse engineering, disassembly, or recompilation of this software, unless
required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-
free. If you find any errors, please report them to us in writing.
This software or hardware and documentation may provide access to or information on content,
products and services from third parties. Oracle Corporation and its affiliates are not responsible for
and expressly disclaim all warranties of any kind with respect to third-party content, products, and
services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages
incurred due to your access to or use of third-party content, products, or services.
Table of Contents
1. INTRODUCTION ........................................................................................................................................... 1-1
1.1 WARNINGS ................................................................................................................................................. 1-1
1.2 INTRODUCTION ........................................................................................................................................... 1-1
1.2.1 Purpose .............................................................................................................................................. 1-1
1.2.2 Audience ............................................................................................................................................ 1-1
1.2.3 Scope.................................................................................................................................................. 1-1
1.2.4 General Principles ............................................................................................................................. 1-2
1.2.5 Glossary of Icons ............................................................................................................................... 1-2
1.2.6 Comments .......................................................................................................................................... 1-3
2. PRE INSTALLATION STEPS....................................................................................................................... 2-4
2.1 SSL ENABLING ON FLEXCUBE ............................................................................................................ 2-4
2.1.1 Introduction ....................................................................................................................................... 2-4
2.1.2 Install Certificate Services ................................................................................................................. 2-4
3. INSTALLATION............................................................................................................................................. 3-6
3.1 DATA CENTER PRACTICES .......................................................................................................................... 3-6
3.1.1 Overview ............................................................................................................................................ 3-6
3.1.2 Physical System Security ................................................................................................................... 3-6
3.1.3 Minimize the Server Footprint ........................................................................................................... 3-6
3.1.4 Operating System Users and Groups ................................................................................................. 3-6
3.1.5 Restrict File System Access ................................................................................................................ 3-7
3.1.6 Network Perimeter Protection(For Production Mode Only) ............................................................. 3-7
3.1.7 Network Service Protection(For Production Mode Only) ................................................................. 3-7
3.1.8 Usage of Protected Ports(For Production Mode Only) ..................................................................... 3-7
3.1.9 Installation of Software in Production Mode(For Production Mode Only)....................................... 3-7
3.1.10 Software Updates and Patches .......................................................................................................... 3-8
3.1.11 Usage of Security Appliances and Software ...................................................................................... 3-8
3.1.12 Configure Security Auditing(For Production Mode Only) ................................................................ 3-8
3.1.13 Separation of concerns ...................................................................................................................... 3-8
3.1.14 Separation of concerns(For Production Mode Only) ........................................................................ 3-8
3.2 ORACLE DATABASE SECURITY(FOR PRODUCTION MODE ONLY) ................................................................ 3-9
3.2.1 Overview ............................................................................................................................................ 3-9
3.2.2 Hardening .......................................................................................................................................... 3-9
3.2.3 Authentication .................................................................................................................................... 3-9
3.2.4 Authorization ..................................................................................................................................... 3-9
3.2.5 Secure Database Backups ................................................................................................................ 3-10
3.2.6 Separation of Roles .......................................................................................................................... 3-10
3.2.7 Advanced Security............................................................................................................................ 3-10
3.2.8 Audit................................................................................................................................................. 3-10
3.3 DATABASE OPERATING ENVIRONMENT SECURITY(FOR PRODUCTION MODE ONLY) ................................ 3-12
3.3.1 Overview .......................................................................................................................................... 3-12
3.3.2 Hardening ........................................................................................................................................ 3-12
3.3.3 Authentication .................................................................................................................................. 3-13
3.3.4 Authorization ................................................................................................................................... 3-14
3.3.5 Maintenance .................................................................................................................................... 3-14
3.4 DATABASE PRACTICES FOR RISK MITIGATION IN PRODUCTION(FOR PRODUCTION MODE ONLY) ............. 3-15
3.4.1 Production Database – Access Prevention ...................................................................................... 3-15
3.4.2 Production Database – Data Protection ......................................................................................... 3-16
3.4.3 Production Database – Release Management ................................................................................. 3-16
3.5 APPLICATION SERVER SECURITY.............................................................................................................. 3-17
3.5.1 Overview .......................................................................................................................................... 3-17
As with any other information system, do not attempt to implement any of the recommendations
in this guide without first testing in a non-production environment.
This document is only a guide containing recommendations. It is not meant to replace well
structured policy or sound judgment. Furthermore this guide does not address site specific
optimization, configuration concerns.
Care must be taken when implementing this guide to address local operational and policy
concerns.
The configuration settings described in the document apply only to the limited scope, version etc.
The guidance may not translate gracefully to other systems or versions, although applying vendor
updates is always recommended.
For further details on each suggested setting always refer the vendor specific sites.
1.2 Introduction
1.2.1 Purpose
1.2.2 Audience
1.2.3 Scope
The following general principles motivate much of the advice in this guide and should also
influence any configuration decisions that are not explicitly addressed.
This User Manual may refer to all or some of the following icons:
Icons Function
New
Copy
Save
Delete
Unlock
Close
Re-open
Reverse
Template
Roll-over
Hold
Authorize
Liquidate
Exit
Sign-off
Help
Add row
Delete row
Refer the Procedures User Manual for further details about the icons.
1.2.6 Comments
Please provide comments concerning the improvement of this solution though support channel.
About Oracle Software Security assurance refer below link:
http://www.oracle.com/us/support/assurance/overview/index.html
2.1.1 Introduction
HTTP communications are fine for the average Web server, which just contains informational
pages. But if you’re thinking about running an application that requires secure transactions, you
need to be able to encrypt communications between your Web server and its clients. The most
common means is by the use of Secure Sockets Layer (SSL), which uses public key
cryptography to protect confidential user information that is transmitted across the Web. Below
we will understand how to implement SSL on Branch server. By Branch server SSL, we imply
SSL security on connections established between the client workstations and the branch server.
2.1.2.1 Prerequisites
Before you install Certificate Services, you should be aware of the system requirements. These
will vary depending on the type of Certificate Authority (CA) you are installing.
Where as stand-alone CA requires only administrative permissions on the server which you will
install the certificate service.
ORACLE FLEXCUBE Installer performs SSL Enabling configurations using Self Created Dummy
Certificates. For production Environment, Valid Certificates from Certificate Authority (CA) needs
to be installed. Detail steps to perform SSL Enabling configuration can be referred from “SSL
Configuration Doc”.
SSL_Configuration_G
uide_1.0.docx
3.1.1 Overview
The following guidelines are recommended to secure the host servers (Application Server,
Database Server and others) in an installation of Oracle FLEXCUBE Core Banking.
Each logical software component (Application Server, Database Server etc.) in the installation
should preferably operate in a dedicated server. It is not recommended to operate multiple
services like mail, FTP, LDAP etc. on the same server, unless absolutely necessary.
It is preferable to customize the operating system installation so that only the minimum set of
software components is installed.
Development tools should not be installed on the production servers. In cases where a software
package should be compiled and built before installation, it is advisable to perform the build
process on a separate machine, following which installation of the binary can be performed on the
server.
Samples and demos should not be deployed on a production server, since they are bound to be
developed without considering security. Any bugs in such software can be exploited by an
attacker resulting in a security incident.
It is recommended to minimize the number of user accounts on the host, for easier auditing and
management. Besides, it reduces the risk of unauthorized personnel accessing the server.
It is recommended to create user accounts with names that are not easily guessable. There
should be at least two system administrator accounts for a server, to ensure backup in the
eventuality of one account being locked.
Passwords for all accounts should be strong passwords – this should be enforced by the
operating system, for instance, via the pam configuration in UNIX. Passwords should not be easy
to guess, and neither should they be stored in an insecure media, or written down for easy
remembrance.
Passwords should be set to expire periodically; 60-90 days is the recommended period.
Passwords for privileged accounts may have a shorter lifecycle.
In Windows, NTFS allows for ACLs to be maintained at the most granular level; however, due
care should be exercised when granting file system privileges to the “Everyone” group. Similarly,
in UNIX like operating systems, privileges should not be granted to the “Nobody” user and group,
unless absolutely required.
Firewall rules should be established to ensure that only a required set of services is accessible to
machines outside the data centre. Network access can be further restricted to ensure that only
certain subnets with trusted machines, and not all machines, can access machines in the data
centre.
Oracle Financial Services does not recommend exposing the application server hosting Oracle
FLEXCUBE Core Banking to the Internet.
Network services installed on the server should be enabled only to serve the primary business
function(s) that the server must provide. Disable all services that are not needed to serve a
justified business need.
Review the network services (like mail and directory services) running on the servers to ensure
that they are adequately protected from abuse by an attacker.
Also review and limit the network file shares on the servers, to reduce the risk of an attack on the
file system. It is recommended to share files and directories on servers only to trusted machines
in the network.
It is not recommended to execute long processes like application servers and database servers
under the root account, since a compromise of such processes will result in an attacker gaining
elevated privileges.
Therefore, limit the use of protected ports (port numbers less than 1024 on UNIX like operating
systems), since they require the use of a privileged user account (in most cases, this is only the
root account). Consider the use of NAT to map protected ports to unprotected ones.
It is highly recommended to install production builds of any software on production servers. For
example, Oracle WebLogic Server should be installed in the production mode, as opposed to the
default of development mode. The Oracle Database Server should be installed with options
required for production usage (for instance, do not install the sample schemas).
Moreover, it is highly recommended to refer to the manuals and documentation provided by the
software supplier, for installing and operating such software securely in a production environment.
Oracle Financial Services recommends that patches be tested to ensure that they do not conflict
with the normal operation of the system.
Consider the usage of security appliances and software to monitor and ensure that the production
environment continues to be secure after the process of server preparation.
Intrusion Detection Systems can be employed to monitor for security sensitive changes in the
system and alert personnel. Antivirus scanners can be used to prevent the server(s) from being
compromised. Note that, although UNIX like operating systems may have better defences against
viruses (and other malware), consider running antivirus scanners on servers regardless of the
OS.
Most server operating systems (Linux OS with kernel version 2.6 onwards, IBM AIX, Microsoft
Windows Server 2008 etc.) allow for auditing file and directory access. Oracle Financial Services
recommends enabling this feature in order to track file system access violations. It is not
recommended to enable audit for normal file access operations; audits should preferably contain
records of violations to reduce the amount of noise in the logs.
Administrators should ensure sufficient disk space for the audit log. Additionally, administrators
should factor the increase on server load due to auditing being enabled.
Back-ups should be taken regularly. This will minimize downtime if there is an emergency.
Access to the application areas should not be at the operating system level. On-line archival of
redologs should be set up from the date of going live. It is recommended that:
Backup of all database related files viz., data files, control files, redo logs, archived files, init.ora,
config.ora etc should be taken at the end of the day.
The tape can be recycled every week by having day-specific tapes.
On-line backup of archived redo-log files onto a media to achieve to the point recovery in case of
crash, shutdown etc.(recycled every day )
Complete export of database and soft base should be done at least once in a week and this can be
stored off-site (media can be recycled in odd and even numbers).
Complete backup of the Oracle directory (excluding the database related files) to be taken once in a
month. This media can be recycled bimonthly.
The above strategy may be improvised by the Oracle DBA, depending on the local needs. The
backup operations are to be logged and tapes to be archived in fireproof storages.
3.2.1 Overview
3.2.2 Hardening
Review database links in both production environments. Unwanted links need to be dropped.
3.2.3 Authentication
Middle-tier applications logon to the database through application schemas rather than end-user
accounts. Some individuals (IT Administrators) may require direct access to the application
database via their own schema.
This setting prevents the database from using an insecure logon protocol. Make sure init.ora
contains:
REMOTE_OS_AUTHENT=FALSE
Following an installation, the application database instance contains default, open schemas with
default passwords. These accounts and corresponding passwords are well-known, and they
should be changed, especially for a database to be used in a production environment.
Metalink Patch note 4926128 contains a SQL script that will list all open accounts with default
password in your database.
In addition, the password to the default accounts like SYS, SYSTEM etc. should be complex and
securely stored by the bank.
3.2.4 Authorization
The init.ora parameter _TRACE_FILES_PUBLIC grants file system read access to anyone who
has activated SQL tracing. Set this to its default value of False.
_TRACE_FILES_PUBLIC=FALSE
Set the init.ora parameter REMOTE_OS_ROLES to False to prevent insecure remote roles.
REMOTE_OS_ROLES=FALSE
RMAN secure backup should be used to ensure that the backups stolen from your system cannot
be restored in another remote system. Additionally, data masking - a feature offered by Oracle
Enterprise Manager – can be used to move data from your production environment to a test
environment. Both these are very crucial steps towards securing confidential customer data.
The database backups should be stored for the required period as per the regulations and bank’s
history retention policies. These backups should be securely stored and access should be
controlled to authorized users only.
It is vital to ensure that roles and responsibilities of database administrators and application
users/administrators are clearly segregated. Database administrators should not be allowed to
view or access customer data. Oracle Database vault helps to achieve this separation of duty by
creating different realms, factors and rule sets. It can enforce policies that prevent a DBA from
accessing an application realm. The product has a set of configuration policies that can be
directly implemented with database vault. Implementation specific requirements can be imposed
over and above these.
3.2.8 Audit
This section describes the auditing capabilities available in Oracle database. These
recommendations should not have a measurable performance impact.
In init.ora, set AUDIT_TRAIL to DB, OS or TRUE. Consult with the Applications Database
Administrator before setting this value to TRUE. When set to OS, the database stores its audit
records on the file system:
AUDIT_TRAIL = DB
Monitoring and auditing database sessions, provides valuable information on database activity
and is the only way to identify certain types of attacks (for example, password guessing attacks
on an application schema). By auditing database sessions, suspicious connections to highly
privileged schemas may be identified.
To audit sessions, login through sqlplus as SYSTEM and issue the following command:
SQL> audit session;
Audit any changes to the standard FCFLEXCUBE database schema or creation of new schemas.
As rare events, these changes may indicate inappropriate or malicious activity.
To audit schema changes, login through sqlplus as SYSTEM and issue the following command:
SQL> audit user;
To complete the recommended auditing, enable three other audit events: create database link,
alter system and system audit. The remaining audit options generate significant entries of little
value. Auditing these other actions provides little meaningful information.
To audit the other events, login through sqlplus as SYSTEM and issue the following commands:
SQL> AUDIT DATABASE LINK; -- Audit create or drop database links
SQL> AUDIT PUBLIC DATABASE LINK; -- Audit create or drop public database links
SQL> AUDIT SYSTEM AUDIT; -- Audit statements themselves
SQL> AUDIT ALTER ANY ROLE by ACCESS; -- Audit alter any role statements
SQL> AUDIT ALTER DATABASE by ACCESS; -- Audit alter database statements
SQL> AUDIT ALTER SYSTEM by ACCESS; -- Audit alter system statements
SQL> AUDIT CREATE ROLE by ACCESS; -- Audit create role statements
SQL> AUDIT DROP ANY ROLE by ACCESS; -- Audit drop any role statements
SQL> AUDIT PROFILE by ACCESS; -- Audit changes to profiles
SQL> AUDIT PUBLIC SYNONYM by ACCESS; -- Audit public synonyms statements
SQL> AUDIT SYSDBA by ACCESS; -- Audit SYSDBA privileges
SQL> AUDIT SYSOPER by ACCESS; -- Audit SYSOPER privileges
SQL> AUDIT SYSTEM GRANT by ACCESS; -- Audit System grant privileges
If AUDIT_TRAIL is set to OS, review audit records stored in the file name; in AUDIT_FILE_DEST.
If AUDIT_TRAIL is set to DB, retrieve audit records from the SYS.AUD$ table. The contents can
be viewed directly or via the following views:
The audit trail contains a lot of data; begin by focusing on the following:
Username: Oracle Username.
Terminal: Machine from which the user originated.
Timestamp: Time the action occurred.
Object Owner: The owner of the object that the user touched.
Object Name: The name of the object that the user touched.
Action Name: The action that occurred against the object (INSERT, UPDATE, DELETE,
SELECT, EXECUTE).
Archive and purge the audit trail on a regular basis, at least every 90 days. The database
connection entries take up significant space. Backup the audit file before purging.
Audit data may contain confidential or privacy related data. Restrict audit trail access
appropriately.
It must be noted that auditing features can impose a significant performance overhead. Auditing
should thus be limited to the set of items outlined above. Auditing application schema objects
should be strictly avoided.
3.3.1 Overview
The environment in which Oracle Applications run contributes to or detracts from overall system
security. This section contains security recommendations for tightening Oracle file system
security along with more general advice for overall system hardening.
3.3.2 Hardening
The directory $ORACLE_HOME/bin contains Oracle executables. Check that the operating system
owner of these executables matches the operating system user under which the files have been
installed. A typical mistake is to install the executables in user oracle’s directory but owned by root.
Prevent remote login to the Oracle (and root) accounts. Instead, require that legitimate users
connect to their own accounts and to the Oracle account. Better yet, use pseudo to restrict access
to executables.
On UNIX systems:
Set the permissions on $ORACLE_HOME/bin to 0751 or less. Set all other directories in
$ORACLE_HOME to 0750 or less. Note, this limits access to the Oracle user and its groups
(probably DBA).
Set file permissions for listener.ora and sqlnet.ora to 0600.
Set file permissions for tnsnames.ora to 0644.
Ensure that the owner, group and modes of the Oracle files created upon installation are set to
allow minimum privilege. The following commands make this change. Note, the group and owner
are for illustration only, the correct group and owner should be substituted.
$chgrp -R <dba> $ORACLE_HOME
$chown -R <oracle> $ORACLE_HOME
Review owners and groups when cloning a database
Protect the $ORACLE_HOME/rdbms/admin directory including catalog.sql, catproc.sql and backup
scripts.
Secure scripts containing usernames and passwords
Verify that set user id (SUID) and set group id (SGID) are not set on binaries. In general, Oracle
recommends that the SUID and SGID bits to be removed from binaries shipped by Oracle.
On windows systems, NTFS must be used. The FAT/FAT32 file system provides no security.
Use secure shell (ssh) to access middle-tier and database hosts. This replaces telnet, rsh, rlogin,
rcp and ftp.
3.3.3 Authentication
Do not share user accounts. Remove or disable user accounts upon termination. Disable login for
well known accounts that do not need direct login access (bin, daemon, sys, uucp, lp, adm).
Require strong passwords and, in some cases, a restricted shell.
It is hard to imagine what kind of guests should have access to a production system. For this
reason do not allow guest access.
3.3.4 Authorization
Only run NFS as needed, apply latest patches. When creating the /etc/exports file, use limited
access flags when possible (such as readonly or nosuid). By using fully qualified hostnames, only
the named host may access the file system.
Device files /dev/null, /dev/tty and /dev/console should be world writable but NEVER executable.
Most other device files should be unreadable and non-writable by regular users.
Always get programs from a known source. Use a checksum to verify they have not been altered.
Create minimal writable file systems (esp. system files/directories). Limit user file writes to their
own directories and /tmp. Add directories for specific groups. Limit important file access to
authorized personnel. Use setuid/setgid only where absolutely necessary.
3.3.5 Maintenance
Good security practice does not end after installation. Continued maintenance tasks include:
Install the latest software patches.
Install latest operating system patches.
Verify user accounts - delete or lock accounts no longer required.
Run security software and review output.
Keep up to date on security issues by subscribing to security mailing lists, reading security news
groups and following the latest security procedures.
Implement trusted file systems like NIS, NIS+ or others such as HP-UX trusted system.
Test the system with tools like NESSUS (network security) and CRACK (password checker).
Install Tripwire to detect changes to files
Monitor log files including btmp, wtmp, syslog, sulog, etc. Also check the snort logs.
The environment in which Oracle Applications run contributes to or detracts from overall system
security. This section contains security recommendations for tightening Oracle file system
security along with more general advice for overall system hardening.
3.5.1 Overview
This section describes how to secure the Oracle WebLogic Server production environment that
hosts the Oracle FLEXCUBE Core Banking environment.
By default, Oracle WebLogic Server is installed with a JDK and several development utilities.
These are not required in a production environment.
The installation footprint of Oracle WebLogic Server can be reduced via the following measures:
During installation of Oracle WebLogic Server, customize the components to be installed. The
following components are not required by Oracle FLEXCUBE Core Banking in a production
environment:
Oracle WebLogic Workshop
Web 2.0 HTTP Pub-Sub Server
Third Party JDBC Drivers (for MySQL and Sybase)
WebLogic Server examples
Delete the Pointbase database which is not required for production usage.
Once installed, the measures listed below can be employed to secure the WebLogic Server
installation.
It is highly recommended to employ the use of a firewall (as hardware or software) to lockdown
the network access to the WebLogic cluster.
For additional information on planning the firewall configuration for a WebLogic Cluster, refer to
the section “Security Options for Cluster Architectures” in the “Using Clusters” guide of the Oracle
WebLogic Server documentation.
It is highly recommended to run the WebLogic Server as a limited user process. The root user
account in Unix/Linux and the Administrator account in Windows should not be used to run
WebLogic Server since they are privileged user accounts. Other privileged accounts should also
not be used to run the WebLogic server.
Hence, it is preferable to create a limited user account say “WebLogic Owner” for running the
application server. Additional user accounts are not recommended; in the eventuality, that an
additional account is required (say, if the WebLogic owner account is locked out), one of the
system administrator accounts can be used to remedy the situation. Having two system
administrator accounts is recommended, as it always ensures backup.
Access rights to the Oracle Home, WebLogic Server product directory, and the WebLogic domain
directories should be provided only to the “WebLogic Owner” user. Privileged users will anyway
have access to the WebLogic Server installation, by default.
Users in the “Others” category can be restricted from reading the afore-mentioned directories.
Ensure that the following files in the WebLogic installation are available only to the WebLogic
owner:
The security LDAP database which is usually located in the WL_HOME\user_projects\domains\
DOMAIN_NAME\servers\SERVER_NAME\data\ldap\ldapfiles directory
The keystore used in the keystore configuration of the server(s)
The Root Certificate Authority keystore
Oracle WebLogic Server provides persistent stores for several FLEXCUBE systems, some of
which are utilized by Oracle FLEXCUBE Core Banking. Ensure that access to the persistent file
stores based on files is restricted to the WebLogic owner OS user. The default persistent file
store is located in the data\store\default directory under the server name subdirectory under the
WebLogic domain’s root directory. If custom (user-defined) persistence stores have been created,
the same restrictions should be applied on the files and directories used by such stores.
Although firewalls restrict the ability of machines to communicate with the WebLogic Server,
machines in the data center can still access network services provided by the WebLogic Server.
In a WebLogic Server cluster, restrict access to the embedded LDAP server port only to
machines in the WebLogic Server cluster, through the user of connection filters.
Consider enforcing constraints on size and on the amount of time taken for a message to arrive at
the server. This will ensure protection against denial-of-service attacks against WebLogic Server.
Additional details are provided in the Oracle WebLogic Server documentation, in the guide
“Securing a Production Environment”, and also in the “Administration Console Online Help”.
Oracle Financial Services recommends that changes, once done in this regard, be tested
thoroughly for impact on business continuity – it is quite possible that WebLogic Server receive
valid messages that are large enough to be considered as an attack, when such is not the case.
The Oracle WebLogic Server guide on “Securing a Production Environment” has a section on
configuring user lockouts and login time limits to prevent attacks on user accounts. In general,
Oracle FLEXCUBE Core Banking does not utilize the WebLogic Security Service for managing
FLEXCUBE Core Banking user accounts.
Therefore, changes recommended by the WebLogic Server guide should be applied only after
assessing the impact on production. The changes applied would be suitable for accounts
managed by Oracle WebLogic Server. Note that the WebLogic Server Online Console guide will
reference “Compatibility Security” which is deprecated in Oracle WebLogic Server 12c (12.2.1.2.0
).
Generally, Oracle FLEXCUBE Core Banking employs its own protection mechanisms with
respect to user lockouts.
Configuration auditing can be enabled to ensure that changes to any WebLogic resource
configuration in the WebLogic domain are audited. Enabling this option also allows for auditing of
management operations performed by a user on any WebLogic resource.
For additional details, refer to the “Administration Console Online Help”, and the “Configuring
WebLogic Security Providers” section in the “Securing WebLogic Server” guide of the Oracle
WebLogic Server documentation.
Note that enabling configuration auditing will affect the performance of the system, even though
auditing may be enabled for auditing a few events (including configuration changes).
Create at least two system administrator accounts (WebLogic user accounts) for administration of
the WebLogic server. The first administrator account will be created when the WebLogic domain
is created. Create the second account with the Admin security role.
Provide unique names to the administrator accounts that cannot be easily guessed. Oracle
Financial Services discourages naming the WebLogic administrator account as ‘weblogic’ with a
password of ‘weblogic’.
Again, having two system administrators ensures that at least one system administrator has
access to the WebLogic server in the event of the other being locked out.
When we run WebLogic Server under Java 2 (SDK 1.2 or later), WebLogic Server can use the
Java Security Manager in Java 2, which prevents untrusted code from performing actions that are
restricted by the Java security policy file.
The JVM has security mechanisms built into it that allow you to define restrictions to code through
a Java security policy file. The Java Security Manager uses the Java security policy file to enforce
a set of permissions granted to classes. The permissions allow specified classes running in that
instance of the JVM to permit or not permit certain runtime operations. In many cases, where the
threat model does not include malicious code being run in the JVM, the Java Security Manager is
unnecessary. However, when untrusted third-parties use WebLogic Server and untrusted classes
are being run, the Java Security Manager may be useful.
To use the Java Security Manager with WebLogic Server, specify the -Djava.security.policy and -
Djava.security.manager arguments when starting WebLogic Server. The -
Djava.security.policy argument specifies a filename (using a relative or fully-qualified pathname)
that contains Java 2 security policies.
WebLogic Server provides a sample Java security policy file, which you can edit and use. The file
is located at WL_HOME\server\lib\weblogic.policy.
Currently In FC Core application, we are using default weblogic.policy file and no specific
application related changes has been done.
Oracle FLEXCUBE Core Banking is certified for usage in Microsoft Internet Explorer 11. The
browser provides recommendations from a security perspective and customers are encouraged
to employ the recommendations provided by them.
In all browsers, it is recommended to enable the popup blocker with a specific rule to disable
popup-blocking for the FLEXCUBE web application.
For Internet Explorer, Microsoft has provided guidance for enhancing Internet Explorer security in
the following documents for IE10, Same is applicable IE 11.
Internet Explorer 10
Security Guide.docx
Among the guidelines provided in these documents, Oracle specifically recommends the following
settings to all customers of FLEXCUBE :
Certificate Security - Ensure the usage of SSL 3.0 and TLS 1.0. Disable SSL 2.0 as it is an insecure
protocol.
Privacy Settings - Set Form auto complete options to Disabled. This will prevent inadvertent caching
of data keyed by users.
5. In the AutoComplete Settings window, uncheck all the boxes, and then click OK.
6. Click OK again.
For the IIS configuration kindly refer the installation manual sections 3.3 and 3.5
oracle FLEXCUBE
Branch Installation Guide.docx
Some general methods like Options, Trace and Delete which are enabled can expose the system to
risk.Hence these should be disabled at the server level itself.
Open the IIS Management console, Right click on your website in the sidebar and go to properties. Go to
the "Home Directory" Tab. In the "applications settings", click on the "configuration" button In the
"Applications configuration" Window, there should be a Mappings Tab Simply choose which file
extensions you want to have mapped (in our case we wanted ASP to map GET, PUT, POST) comma
delimited.
There is a by default option to create some users by the FLEXCUBE 11.7.0.0.0 during the installation.
Using these users the client can create various tellers and supervisors. Once this activity is completed, as
per best practices it is mandatory to lock these users created during installation process. Also every user
should be enforced to change password at first login itself.
Clickjacking is a way to trick visitors into interacting with a victim website without the user knowing he's
doing it by e.g. overlaying other things such as images over the elements.Framebusting is a common
technique to prevent clickjacking.In addition to that X-Frame-Options was introduced as an alternative. It
can be used to prevent framing of the pages that are delivered to browsers in the browser: the browser
simply refuses to render the page in a frame if the header is present depending on the set value. Values
are DENY: Stops all framing and SAMEORIGIN: Stops framing except for the same website that
delivered the page itself. In FLEXCUBE 11.7.0.0.0, we are using Javacript Framebreakers to avoid
clickjacking.
Changes can be provided for the same at server level itself. Within IIS, open the web site properties then
go to the HTTP Headers tab. Most of the X- headers can be found and removed here. This can be done
for individual sites, or for the entire server (modify the properties for the Web Sites object in the tree). For
the Server header, on IIS6 you can use Microsoft's URLScan tool to remote that. Also there is Port 80
Software called as ServerMask that will take care of that.
4.3.1 Overview
This chapter describes the various programs available within Oracle FLEXCUBE 11.7.0.0.0, to
help in the maintenance of security.
Access to the system is possible only if the user logs in with a valid ID and the correct password.
The activities of the users can be reviewed by the Security Officer in the Event Log and the
Violation Log reports.
It is recommended that the debug logging facility of the application be turned off, once the system
is in production. This is achieved by updating the property file of the application.
The above described practice does not disable logging performed by the application in the
database tier. This can be disabled by running the lockdown scripts provided. The lockdown
scripts will disable logging across all modules and across all users in the system.
Message Explanation
User Already Logged In The user has already logged into the system and is attempting a
login through a different terminal.
User Status is Locked. The user profile has been disabled due to an excessive number of
Please contact your attempts to login, using an incorrect user ID or password. The
System Administrator number of attempts could have matched either the successive or
cumulative number of login failures (configured for the system).
This function provides an on-line display of user profiles and their access rights. The information
includes:
The type (customer / staff)
The status of the profile - enabled or disabled or on-hold
The time of the last login
The date of the last password /status change
The number of invalid login attempts
A user ID can get locked into the system due to various reasons like invalid attempts, improper
logout or a system failure. Invalid attempts get tracked in the application tables for audit in case of
any security breach or analysis.
The System administrator user can reset the status of the user who got locked in. To accomplish
this task, System Administrator uses the “Modify Login Status” screen (codTask=755).Here the
login status of the locked user ID can be changed to unlocked.
Users can use this function to change their passwords. A user password should contain a
minimum of eight characters and a maximum of twelve characters (both parameterizable). It
should be different from the current and one previous password. The program will prompt the
user to confirm the new password when the user will have to sign-on again with the new
password.
The number of characters in a user password is not allowed to exceed the maximum
length, or fall below the minimum length that has been specified.
The minimum length is 1, and the maximum length to 10.
The Password should be alphanumeric, including special characters.
The Minimum No of Special Characters allowed is 1.
The Minimum No of Numeric Characters allowed is 1.
The Minimum No of Lower Case Characters allowed is 1.
Minimum No of Upper Case Characters allowed is 1.
It is strongly recommended to change the user password during first login itself.
The System administrator user can see which users are in use within Oracle FLEXCUBE
11.7.0.0.0 at that point of time. The information includes the following:
The ID of the terminal
The ID of the user
If the user logging into the system is a valid user or not via a password
Is the given user is already logged in then it will give the popup “User Already Logged In”
For the server being down it will give the popup “Login Failed .Try again later”.
If a user tries to login with a user-id which is logged in from another browser, even if the
session has been timed out the system will not allow the user to login until the user gets
logged out.
Audit Reports for any transaction that is done is present and can be viewed via the Audit trail
Inquiry screen. The information logged includes Branch, Task Id, Posting Date, Teller Id,
Authorizer id, Action, Transaction date, Account No, Customer Id and Audit Comments.
Various type of transactions like Cash, transfer and clearing are posted to accounts across the
modules. An adhoc report is generated which provides MIS information listing the transactions
performed by all the tellers logged in for the day. This is the teller transaction report for all the
tellers. Each column of this report provides details on User ID, Currency, Type, Description,
Literal, Number of Transactions, Total Amount , Commission and Charges.
Sessions are given a timeout period. This timeout period is set in milliseconds ,this timeout period
is set by a “interval” property on the branch side day 0 .Important to note here is that the Timeout
functionality of FLEXCUBE side will work only when the window of UBS is closed.
Oracle recommends that a terminal lockout policy be put in place to automatically lockout
unattended PC sessions after a certain duration. This is primarily because Oracle FLEXCUBE
11.7.0.0.0 will not lock out the browser session, although it does expire the browser session after
certain period of inactivity. Users may however be able to access unattended sessions while the
FLEXCUBE 11.7.0.0.0 user is still logged in. Hence, organizations are expected to set a
corporate policy for handling unattended PC sessions; it is recommended to enable the feature to
lock workstations, or to enable password-protected screensavers.
4.3.13 To Remove IIS Version and ASP.NET Version from Response Header
Please follow the below document for applying the settings in IIS server.
Steps.docx
Message Explanation
User Already Logged In The user has already logged into the system and is attempting a
login through a different terminal.
User Status is Locked. The user profile has been disabled due to an excessive number of
Please contact your attempts to login, using an incorrect user ID or password. The
System Administrator number of attempts could have matched either the successive or
cumulative number of login failures (configured for the system).
3) The Display /Print user profile provides the on-line display of user profiles and their access rights
which includes following information:
4) The User Id gets locked due to various reasons like an improper logout or a system failure,
whose status can only be reset by the System Administrator.
5) Strong password Creation features allowing creating password having combination of small, large
characters, special characters and numbers.
6) System Administrator can keep tab on the users logged in that point of time and can view
information such as Terminal Id, user Id, Login time of the User’s Logged in.
7) Following Security Violations are reported while trying to log in to the system:
1. If the user logging into the system is a valid user or not via a password
2. Is the given user is already logged in then it will give the popup “User Already Logged In”
3. For the server being down it will give the popup “Login Failed .Try again later”.
4. If a user tries to login with a user-id which is logged in from another browser, even if the
session has been timed out the system will not allow the user to login until the user gets
logged out.
11) Audit Reports for any transaction that is done is present and can be viewed via the Audit trail
Inquiry screen. The information logged includes Branch, Task Id, Posting Date, Teller Id,
Authorizer id, Action, Transaction date, Account No, Customer Id and Audit Comments.
Various types of transactions like Cash, transfer and clearing are posted to accounts across the
modules. An adhoc report is generated which provides MIS information listing the transactions
performed by all the tellers logged in for the day. This is the teller transaction report for all the
tellers. Each column of this report provides details on User ID, Currency, Type, Description,
Literal, Number of Transactions, Total Amount, Commission and Charges.
Sessions are given a timeout period. This timeout period is set in milliseconds; this timeout period
is set by a “GlobalSessionTimeout” property on the branch server registry as can be seen below:
There is no limit on the maximum/minimum limit for session interval timeout. But we set it to
600sec.The Session interval validation is performed at the branch server only.
12) Frame-Busting Logic is implemented to prevent Click jacking and prevent framing of the pages
that are delivered to browsers, in the browser: the browser simply refuses to render the page in a
frame if the header is present depending on the set value.
The User's are authenticated during Application Login itself. Users are also
authenticated during Local Authorization of transactions.
Authorization can be performed with Consolidated Authorization Reasons i.e. Local and Host
Auth Reason.
Parallel Authorization.
Seniority of users for authorization of transactions can be defined using the Access Profile level.
A higher Access profile level is indicative of higher level of the user attached to it within the bank.
Transactions posted by a teller can be authorized only by those supervisors whose Access profile
have a higher level than that of the teller posting the transaction.
Using this option limits on financial transactions can be maintained in the system for all
users of the system. The limits can be maintained for a group of users under a particular
access profile and currency combination. The online and offline limits for same branch
and for inter branch are maintained in this option. Business can also populate the limits
that are assigned to the transaction group to the individual transaction mnemonics.
Transaction group will list core banking transactions only, hence these limits will be
applicable to core banking transactions only
Using this option user can maintain a transaction group code and linkage of branches to this
code. This group code is linked to the access profiles in the Access Profile Definition (PUC:
SMDTMPRO) option. If user performs any transactions on an account that belongs to a branch
which is in the group code linked to the user access profile, the system will allow transactions on
that account; else the transaction will be rejected. This validation is applicable only to financial
transactions.
5.2 Validation
The client side validations comprise of the screen level input validations to validate the user
inputs for host processing.
The host side validations comprise of the Input Data validations along the with Business
validations.
Session ID is created during login by encoding a random number using Base64Encoder and
concatenating it with the encoded User Id . The maximum length of the session ID is 32.For every
login a fresh session ID is created. No session tokens are associated with the sessions created.
We don’t have 302 redirect page at logout.
During Login process, this Session Id is then maintained against the user no of the logged in
user. This entry is used to validate the user session, based on the logged session-Id and user no.
The user session is logged in tables in the branch database tables. Session Logging for
invalid sessions are not logged and validated.
1. The host database password is stored in the properties file/ registry. These passwords are
encrypted using the AES Algorithm and the encrypted passwords are then stored in the
property file/registry.
2. The user passwords are encrypted using PBKDF2 hashing algorithm and are stored in the
database.
3. Passwords are not transmitted directly from the browser to database. The credentials are
maintained in encrypted format within host property files.
4. For all kind of transactions the password sent across the network is in encrypted format,
except for the case where a transaction requires the resetting of the password (eg:768
screen)
5. For all transactions over the network we rely on SSL(Secured Socket Layer).
6. In the current scenario we don’t have any credential storage framework.
7. We do not support the functionality to email the password of the user.
All the Exceptions are handled using requisite catch Blocks in java, VB, Java script & C++ code.
All the SQL statements, procedure/functions calls are enclosed with PL/SQL Block statements.
Most of the Exception blocks handles requisite exceptions and raise proper errors.In FLEXCUBE
CORE BANKING, in some situations explicit object locks are obtained to maintain data
concurrency. In such cases the handling is done in the exception block, either by raising proper
errors or setting the retries to acquire the objects till max retry counter is reached (i.e. 10).
The Debugs are written in the Debug Logs which are present on the host servers, in the
application deployment area. The branch dump logs are written on the branch server and are
created in temp folder of the branch server. These logs are not publicly accessible and have
restricted access. Audits logs are maintained separately for maintenance screens and oltp
transactions. On screen level we use BA777 to maintain the audit handling and for OLTP
transactions same can be viewed through screen 6006.Regarding plain password stored in
XML’s we do not have any handling for the same to protect sensitive transaction. It is not
recommended to execute long processes like application servers and database servers under the
root account, since a compromise of such processes will result in an attacker gaining elevated
privileges. Therefore, limit the use of protected ports (port numbers less than 1024 on UNIX like
operating systems), since they require the use of a privileged user account (in most cases, this is
only the root account). Consider the use of NAT to map protected ports to unprotected ones.
There are some other Oracle products offering Security that are qualified with the FLEXCUBE
product. These can be used to enhance the security of the Product and environment.
FLEXCUBE is qualified with following ORACLE Products that offers enhanced Security:
a. Database vault
Database Vault provides enterprises with protection from the insider threats and in advantage
leakage of sensitive application data. Access to application data by users and administrators
is controlled using DV realms, command rules and multi factor authorization. DV also address
Access privilege by separating responsibilities. Some of the features of database vault:
Restriction to ANY-type privileges
Support to restricted base access using IP, TIME and other
Out-of-the-box reports to address Security matrix
Configuration of Policy, Rules based on requirement
b. Audit vault
Audit Vault transparently collects and consolidate audit data from multiple databases across
the enterprise, does provide valuable insight into who did what with which data & when
including privilege users. The integrity of the audit data is ensured using controls including
DV, Advance Security. Access to AV data is strictly controlled. It also does provide graphical
summaries of activity causing alerts, in addition database audit setting are centrally managed
and monitored. Some of the features of database vault:
Prevents modifying audit data including privileged users like DBA and Auditors
Provides proactive threat detection thought Alerting
Event alert help mitigating risk and protect from insider threats
Continuous monitoring and evolutions of audit data against alert condition
1. Accurately detects and blocks unauthorized database activity including SQL injection attacks
by monitoring traffic to Oracle and non-Oracle databases
2. Provides enterprise security intelligence and efficient compliance reporting by combining
monitoring and audit data
3. Utilizes a unique SQL grammar analysis engine and easy-to-define whitelists and blacklists to
ensure high accuracy and performance
4. Delivers horizontal and vertical scalability through easy-to-deploy "software appliances"
Label Security
1. Ensure access to sensitive data is restricted to users with the appropriate clearance level
2. Enforce regulatory compliance with a policy-based administration model
3. Establish custom data classification schemes for implementing “need to know” access for
applications
4. Labels can be used as factors within Oracle Database Vault command rules for multifactor
authorization policies
5. Integrates with Oracle Identity Management, enabling centralized management of policy
definitions
1. Sensitive information, such as credit card or social security numbers, can be replaced with
realistic values
2. Production data can be safely used for development, testing, or sharing with out-source or off-
shore partners
3. Uses a template library and format rules, consistently transforming data in order to maintain
referential integrity for applications
4. Extensive search capabilities scan enterprise databases for sensitive data and rank results
based on probability of match
5. Helps comply with data privacy mandates such as Sarbanes-Oxley, Payment Card Industry
(PCI) Data Security Standard (DSS) and Health Insurance Portability and Accountability Act
(HIPAA)
5.8 References
http://docs.oracle.com/cd/B14099_19/core.1012/b13999/rectop.htm
http://www.sas70.us.com/industries/data-center-colocations.php
http://www.anixter.com/content/dam/Anixter/White%20Papers/12F0010X00-Four-Layers-Data-
Center-Security-WP-EN-US.pdf
Please refer the below links to understand more on Database Security considerations
recommended to be followed
http://www.oracle.com/us/products/database/security/overview/index.html
http://www.oracle.com/technetwork/products/secure-backup/overview/index.html
http://www.oracle.com/technetwork/database/security/twp-security-checklist-database-1-
132870.pdf
http://www.red-database-security.com/wp/sentrigo_webinar.pdf
http://www.databasesecurity.com/oracle/twp_security_checklist_db_database.pdf
http://www.checklist20.com/pdfs/Databases/Oracle%20Database.pdf
http://www.applicure.com/blog/database-security-best-practice
Please refer the below mentioned links to understand more on Security recommendations /
practices followed for Database Environment
http://docs.oracle.com/cd/B28359_01/network.111/b28531/guidelines.htm
http://ecomputernotes.com/database-system/adv-database/security-in-database-environment
https://security.berkeley.edu/node/138?destination=node/138
http://docs.oracle.com/cd/B14099_19/core.1012/b28654.pdf
http://docs.oracle.com/cd/E14899_01/doc.9102/e14761/tuningforappserver.htm
http://docs.oracle.com/cd/E13222_01/wls/docs81b/lockdown/practices.html
http://docs.oracle.com/cd/E23943_01/web.1111/e14529/security.htm
http://www.oracle.com/us/solutions/oos/weblogic-server/overview/index.html
http://isu.ifmo.ru/docs/IAS904/core.904/b10377/arch.htm#1005544
http://www.ibm.com/developerworks/websphere/library/techarticles/0209_oberlin/oberlin.html
http://cnc.ucr.edu/security/desktop.html
http://makeitsafe.missouri.edu/best-practices/windows.html
https://security.tennessee.edu/pdfs/sdlbp.pdf