|
Managing Secure Oracle Applications
Environment
In this article, we will be
presenting a systematic methodology and best practices for managing a highly
secure Oracle E-Business Suite environment. The attendees will come out
understanding how to secure all aspects of the E-Business Suite technology
stack. We will present how to secure the data center, the network, the server,
the database, the middleware, and the applications. We will also present how
to run a secure Applications environment from functional perspective from
within the applications.
Introduction top
This paper discusses some of the
systematic methodologies and best practices used by both AppsHosting and
Experian in managing highly secure Oracle E-Business Suite environments. AppsHosting
is a managed hosting provider specializing in Oracle E-Business Suite and other
enterprise applications. In safeguarding sensitive customer data, all
operations at AppsHosting revolve around high levels of security. Experian,
known as one of the “big three” consumer credit bureaus in the United States,
is a global information solutions company collecting, rating, and providing
consumer credit information. Information security is at the core of both
companies.
According to the online privacy
rights advocacy group PrivacyRights.org, over 150 million data records of US
residents have been exposed due to data security breaches since 2005 when the
group started to keep track. The cost of such data breaches is hard to
measure, yet still very real and high. The costs can be tangible, such as fines
and other remediation costs, or intangible, such as diminished consumer
confidence and productivity loss. In the wrong hands, stolen data could be
used to conduct fraudulent transactions or be left floating around somewhere
waiting to be abused.
With the rapid deployment of network
centric applications, security risks have become magnified. Security threats can
come at every layer of information technology (IT) infrastructure - the data
center, the network, the operating systems, the databases, the middleware, and
the applications. In essence, the applications and the technology components
form a chain link, where a vulnerability in any one of the links can jeopardize
the entire application ecosystem.
This paper is intended for
those looking to make their Oracle Applications environments more secure. In
particular, this paper focuses on securing all technology components of the
Oracle E-Business Suite and the underlying infrastructure. Most (if not all) of
the concepts and practices presented here can be used for other applications as
well.
Why Secure? top
In this section, we will be
covering the reasons why companies need to be committed to securing the
application and data. Companies need to take proactive approach to securing
the perimeter and the applications before security attacks are instigated. In
this day and age, companies will suffer greatly for taking reactive approach to
information security.
Today, companies have become
increasingly dependent on IT to run their businesses, the need to secure
applications has become ever more pressing. Recently, there has been a much higher
awareness of information security, due to several high profile incidents where security
breaches have caused harm to many unsuspecting people. One of the biggest
information system breaches occurred on May 22nd, 2005, when up to 40
million credit card numbers were stolen by hackers according to statements made
by the MasterCard International.1 Data breaches of sensitive and
personal information hit home because they can put anyone at risk.
Most publicized security
breaches have originated externally, in that the unauthorized access into the information
system came from the outside. The security breach of the card processor for
MasterCard came from an unauthorized outsider who “infiltrated” the payment
processor network to steal personal and sensitive data. As seen by the recent
wave of data security breaches, companies in all industries, both public and
private sector, are targets for security attacks.
Security breaches that
originate from the inside pose a serious threat to companies because they come
from trusted users. In its 2005 survey, “The Global State of Information
Security,” PricewaterhouseCoopers found that 33 percent of information security
attacks originated from internal employees, while 28 percent came from
ex-employees and partners. The terms “delinquents,” “renegades,” and “rogues”
are used to describe internal data and security attackers3. Insider
threats can be minimized by analyzing user access requirements and by instituting
a proper infrastructure and application security policy.
As the old saying goes, “to
err is human.” There have been many recent high profile cases where personal
and confidential information has leaked out due to human error. According to
PrivacyRights.org, in 2006 between 20 to 44% of data breaches were due to human
or software incompetence. It only takes one click of the mouse to inadvertently
send sensitive data all over the world. It also takes a few key strokes to
wipe out the entire application and the operating system. (We wont’be demoing
this.) Since at the center of every information system are humans, the system
must be designed and implemented to guard against human mistakes whenever
possible.
Oops! Tech error wipes out Alaska info By ANNE SUTTON, Associated Press Writer, Yahoo! News
Tue Mar 20, 10:28 AM ET
JUNEAU, Alaska -
Perhaps you know that sinking feeling when a single keystroke accidentally
destroys hours of work. Now imagine wiping out a disk drive containing
information for an account worth $38 billion.
That's
what happened to a computer technician reformatting a disk drive at the Alaska
Department of Revenue. While doing routine maintenance work, the technician
accidentally deleted applicant information for an oil-funded account — one of Alaska residents' biggest perks — and mistakenly reformatted the backup drive, as well.
There
was still hope, until the department discovered its third line of defense,
backup tapes, were unreadable.
Financial impacts of security
breaches are real as seen in the “2006 Annual Study: Cost of a Data Breach,” a
benchmark study conducted by Ponemon Institute on actual cost incurred by 31
companies that lost confidential data. According to the study, the total cost
of data breach averaged $182 per lost customer record, and the average total
cost per company was $4.8 million per breach and ranged from $226,000 to $22
million.4 Consumer data broker ChoicePoint, Inc., which last year
acknowledged that the personal financial records of more than 163,000 consumers
in its database had been compromised, will pay $10 million in civil penalties
and $5 million in consumer redress to settle Federal Trade Commission charges
that its security and record-handling procedures violated consumers’ privacy
rights and federal laws.5
TJX breach
could cost company $1B
InfoWorld.com, April 12, 2007
How
much will it cost to clean up the mess caused by TJX Company's loss of
financial records on 45 million customers? What would you think if I told you
it would cost, in the words of Dr.
Evil, $1 million dollars?!!!!?
Not too bad? *Ahem* Sorry. How about $1 billion dollars?!!?! Now that's more like it! And that's the number that security
industry analysts are bandying about in today's
Boston Globe. How'd they get to the $1B figure? Well, it's all pretty
fishy, but the formula looks something like this: (cost_per_lost_record x
(number_of_lost_records) + cost_of_IT_cleanup = total_cost_of_breach.
Not
surprisingly, there are a lot of caveats with at least one expert, Larry
Ponemon of the Ponemon Institute, putting the figure in the hundreds of
millions of dollars, and a Forrester analyst, Khalid Kark, putting it as high
as $1.35 billion.
Forrester's
number comes from that firm's estimate of a cost per lost record of $90 and an
estimate that around 15 million of the 45 million stolen credit records were
for unexpired debit and credit cards.
Curiously,
Ponemon estimates that the cost to replace stolen records is a lot higher --
$182 per card, but that no company who has experienced a data loss has spent
more than $22 million to recover from it. Given that other companies have experienced
similar sized breaches -- ChoicePoint, CardSystems -- it's hard to see how $22
million could be the ceiling, but that's what the article says.
Other
cleanup costs -- computer forensics and new consulting fees, better intrusion
detection products....a database firewall anyone -- are just the cost of doing business and would be no more or less had
a breach not occurred (translation: "they need this stuff anyway, so who
cares why they're buying it?")
Besides,
the costs to the company would be amortized over one or two years -- or more,
depending on the outcome of lawsuits filed against TJX and the aftermath of the
breach (in other words, how many consumers are victims of ID theft that can be
traced back to TJX).
So,
if security analysts are bearish on TJX, Wall Street certainly isn't. As the
Globe story points out, the company's stock is trading within five or ten
percent of where it was the day before news of the leak was disclosed.
Add
it all up, and you've got to ask: "Is there really a price to pay for
violating your customers' privacy?"
Data and security breaches
have been receiving increased awareness from the public and law makers are
following suit. California state legislators took early lead in security and
disclosure laws since then other state statutes have proliferated. California was the first in enacting legislations that protect the residents and making
companies protect personal and confidential data. The Senate Bill No. 1386
("SB 1386") requires any company that stores customer data
electronically to notify its California customers of a security breach to the
company's computer system if the company knows or reasonably believes that
unencrypted information about the customer has been stolen. The Senate Bill No.
1 ("SB 1") commonly known as the California Financial Information
Privacy Act, creates new limits on the ability of financial institutions to
share nonpublic personal information about their clients with affiliates and third
parties.6
To get to the point, all
companies need to have the infrastructure, policies, and procedures, to secure
their applications. It will take effort and cultural change to build such an environment,
but the cost of not securing is far greater. It does pay in the long run to
have secure application environments.
Chronology
of Data Breaches 2006: Analysis
(PrivacyRights.org,
February 2, 2007)
|
Private
Sector
(incidents n=126) |
Public
Sector
(inc. military) (incidents n=114) |
Higher
Education
(incidents n=52) |
Medical
Centers
(incidents n=30) |
Outside Hackers |
15% |
13% |
52% |
3% |
Insider Malfeasance |
10% |
5% |
2% |
20% |
Human/Software Incompetence |
20% |
44% |
21% |
20% |
Theft (non-laptop) |
15% |
17% |
17% |
17% |
Laptop Theft |
40% |
21% |
20% |
40% |
Design a Secure Architecture top
A secure application
environment starts with a secure architecture. The security of the overall
infrastructure must be embedded into the application environment design and implementation.
It cannot be an afterthought! Each technology component of the application
environment must be segregated at each layer. At the broadest level, the
network must separate each application environment and each technology layer. The
server must also be hardened from a security perspective.
For Internet facing
applications or any other externally facing applications, secure proxies must
be used to protect the internal network and application environment. No
customer or sensitive data should reside in any areas exposed directly to the Internet.
To further protect sensitive data and ensure integrity, Secure Socket Layer
(SSL) protocol and certificates can be used. Single Sign-On (SSO) and Identity
Management (IM) infrastructure can enhance application security and reduce the
risk of password compromise.

Two factor authentication can
be used to virtually eliminate password compromise. A secure architecture is
achieved by designing security into all components of the application
infrastructure, i.e. the network, the server, the database, and the applications.
Secure Infrastructure top
Data Center
A secure data
center is the backbone of a successful IT security policy. A secure data center
requires various physical devices and operational procedures to be in place,
allowing for controlled access, logging, monitoring, and accountability. Employee
background screening should be a routine part of the hiring process. Obtaining
Statement on Auditing Standard 70 (SAS70) certification for the data center is
one of the better ways to ensure that high levels of internal controls and
security procedures have been implemented and verified. For many public
companies especially those that deal with sensitive data, SAS70 certification
is usually a requirement.
Physical security
in the data center will typically consist of the following:
- Controlled
access to data center (using key cards, biometric readers, and other
devices)
- Controlled
access to servers, storage, and networking devices
- Controlled
access to back up media
- Round-the-clock
staffing in the data center
- Active
monitoring using video camera
- Logging
and monitoring of all activity within the data center
Devices
Physical controls
must be in place to secure devices. Device access includes access to consoles,
access to internal disk drives and other device components, and access to the
device as a whole. These controls can include controlled access to cabinets,
cages, locked faceplates, etc. and are aimed at preventing the tampering of,
removal or physical access to devices. Access to tape backup media must also
be controlled.
Network
Networks are
passage ways, comprised of bidirectional traffic, that lead to company data. Network
access control (NAC) In a perfect world, establishing a secure network policy
is absolutely simple. Simply block all traffic traveling in both directions.
Unfortunately, this is usually not an option! So we must come up with
workarounds. Fortunately, it is possible for a company to implement a secure
network policy, using established procedures and protocols.
Network access
requirements
The development
of a company network security policy begins with clearly defined access
requirements. Access requirements generally center around company applications
and servers that host the applications. These requirements specify which
applications and servers need to be accessed by whom (from a networking
perspective), and must contain detailed criteria.
Network zones
The next step
involves the partitioning of the company network into various zones and
subzones. Zones allow for segregation and control of traffic. Access controls
should be set up between zones, only allowing essential traffic to flow between
zones, in accordance with the access requirements that were documented
earlier. Zones (if implemented properly) can minimize exposure to risks
associated with untrusted traffic, and also help to quarantine areas that have
been compromised.
Inbound access
control
Using perimeter
firewalls and routers, inbound network access should be controlled.
For the most
part, inbound access to internal zones should be disallowed.
Exceptions would
include the following:
- Access
to Internet facing services. Examples include external access to Web
sites, Web applications, FTP sites, etc.
- Remote
user access. Examples include access to company applications for
employees, external vendors, contractors etc. via virtual private
networks.
- Remote
location access. Examples include satellite offices, external vendors,
international offices etc. connected with site to site VPN tunnels, or
dedicated site to site network circuits.
TCP stateful
packet inspection should be implemented for open ports at the firewall level.
Packet filtering helps to control malformed packets, which can be used for DOS
(denial of service) attacks, as well as to exploit vulnerabilities in various
application services. Other applications that can be implemented include
intrusion detection services, packet sniffing etc.
Outbound
access control
Similar to
inbound access restrictions, outbound network access must also be controlled.
Direct outbound network access should never be allowed, as even a single
outbound open port can be used to set up malicious forward and reverse proxies,
compromising the entire corporate network. This can be done intentionally
(i.e. by current and former employees/contractors) or unintentionally (i.e. by
spyware, viruses etc.).
All outbound
access should be permitted only via outbound proxies. Proxy servers can be
implemented for various TCP protocols, and can be set up for employee web
surfing, outbound FTP access, instant messaging, etc. Proxy servers allow for
access control, logging, monitoring etc. and can also provide performance
benefits.
Operating
system
The benefits of a
secure operating system cannot be understated. In the absence of high security
levels in other areas of IT infrastructure, it is still possible to maintain a
reasonable level of security if the operating system is locked down well. The
first step in securing the operating system involves keeping up to date with
vendor recommended security patches. This goes hand-in-hand with being aware of
operating system vulnerabilities as they become published.
Disable
unnecessary processes
An inventory
should be taken of all active processes to figure out which processes are
absolutely required. Once this is done, unnecessary processes should be
disabled. Every service/process that runs on an operating system poses a
security risk. Most operating systems have unnecessary processes enabled by
default. This risk is magnified when a process runs under a privileged user
account. For this reason, any processes that run under a privileged user
account such as root, should be modified to run under a different user account.
Sometimes, this is not possible because the process will need certain
permissions that are only available to a privileged user account.
Disable
unnecessary network ports and network services
All unused and
unnecessary network ports should be disabled via the Unix ‘/etc/services’ file or
the Windows ‘C:\WINDOWS\system32\drivers\etc\services’ file. As with active
processes, open ports also pose a security risk. Unnecessary network services
such as Telnet and FTP should be disabled (using inetd.conf in Unix or
‘Services’ Microsoft Management Console (MMC) in Windows. Access controls should
be put in place for TCP services, Using the ‘tcpwrappers’ tool (This can also
be done via the operating system firewall).
Monitor file
system integrity
Being the heart
of the operating system, the filesystem contains critical files necessary for
the sane operation of a server. The filesystem contains user data,
authorization information, configuration information, etc., and is a common
target for compromising systems. It is important to ensure that a rogue process
does not replace files with malicious versions. There are many applications
that can be used for checking file system integrity, including Tripwire, Aide,
Integrit, etc.
Maintain
secure permissions and ownerships
File system
permissions dictate the level of access that each system user has to a
particular file or directory. Thus it is important to protect files that
contain sensitive information, by using appropriate filesystem permissions. In
addition, no files should have universal write access (i.e. 777 or 666). This
is especially true of data files which contain sensitive data. Scripts should
be run periodically to detect insecure permissions and ownerships.
Secure the
server console
The server
console, whether keyboard and display or a serial/Lights Out Management (LOM)
console, should be protected. In the case of a serial or LOM console, the connections
should be encrypted and protected using access control lists.
Encryption of
inbound and outbound network connections
Inbound network
connections to the server such as login sessions and connections from external
interfaces should be encrypted. SSH or similar mechanism should be used for
user logins, while SCP or similar mechanism should be used for file transfer
purposes. The SSH server on the operating system should be configured such
that port forwarding is disabled and private keys are secured. If SecurID or
another form of two factor authentication is in place, private keys should be
disabled, as two factor authentication can be bypassed using private key
authentication. Outbound network connections should also be encrypted, such as
interfaces with other servers.
Two factor
authentication
Two factor
authentication refers to when more than one authentication are used for log-in
using SecurID or another method. Two factor authentication virtually eliminates
the risk of password compromise, and reduces the need for scheduled password
changes. There is also another important problem that is solved by requiring
two factor authentication: multiple users will not be able to login using a
single user account.
Operating
system firewall
Although a server
may reside within a trusted network zone, a perimeter operating system firewall
is invaluable. Operating system firewalls can minimize or eliminate risks posed
by compromised servers within a network zone. They can also be used to control
access for inbound and outbound network connections.
Password
policy
If a traditional
password authentication mechanism is used to log into a server, it is important
to maintain and enforce a password complexity and a password change policy. Password
complexity checkers may be done on a periodic basis to weed out weak passwords
( ‘John the Ripper’ is an example of such a tool). The OS password management
can be integrated into company wide single sign-on environment to reduce
password exposure.
Auditing
The operating
system should be configured such that adequate logging is taking place. This is
done via syslog configuration. In addition to adequate logging, it is also
important to monitor log files on a regular basis. If an abnormal event is
detected, an efficient incident management protocol should be in place to
notify appropriate personnel.
Secure Database top
Oracle as a company prides
itself on having the most secure database in the market, reportedly having gone
through 20 or so third-party security evaluations. Companies can advantage of
the security features of Oracle by setting up the database properly with
security in mind. The first step in securing the database is to lock down default
Oracle accounts as the passwords for them are widely circulated. Change the
default passwords immediately when the database is created and also on a
scheduled basis going forward. For unused schemas, lock the account or revoke
CREATE SESSION and/or CONNECT role. Keep track of the database accounts and
either disable or remove unused or unneeded accounts.
Create password profiles to
enforce password security using the following:
Password lifetime Allows a
password to exist for a specific period of time
Grace period Time at which
Database begins to warn users to change their password
Reuse time/max Supports password
history and forces users to use new passwords
Failed login attempts Locks the
account if the incorrect password is given after specified number of times
Account lockout Disables the
account (combined with failed attempts to help prevent brute force attempts
into user accounts)
Password Verify Function Defines the password complexity
function that will be called when the user changes the password
Even though the
network itself can be secured through the firewalls, the network traffic in and
out of the database is not secure by default. Anyone can put a packet sniffer
on a machine that connects to the database and capture all the sensitive data
that goes in and out of the database. The encryption of the database traffic
over the network is done by the Advanced Networking Option (ANO) that is part
of the Advanced Security Option (ASO) and requires Oracle Applications 11.5.10
with Technology (ATG) RUP3 or later running Forms Listener Servlet.
Encryption of SQL*Net traffic
is done by setting the following parameters in SQLNET.ORA:
SQLNET.ENCRYPTION_TYPES_SERVER= (RC4_40,RC4_128)
SQLNET.ENCRYPTION_TYPES_CLIENT= (RC4_40,RC4_128)
SQLNET.ENCRYPTION_SERVER = REQUIRED
SQLNET.ENCRYPTION_CLIENT = REQUIRED
SQLNET.CRYPTO_SEED =
somelongandrandomstringfordeployment
The corresponding directives
for JDBC drivers used in self-service Applications modules are made in
jserv.properties:
wrapper.bin.parameters=-Doracle.net.encryption_types_client=(RC4_40)
wrapper.bin.parameters=-Doracle.net.encryption_client=REQUIRED
The listener is critical to the database as it handles the user
connection into the database. One great way to secure the database listener is
to set up encrypted password by using LSNRCTL utility:
LSNRCTL>
set current_listener listener
Current
Listener is listener
LSNRCTL>
change_password
Old
password:
New
password:
Reenter
new password:
Connecting
to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
Password
changed for listener
The
command completed successfully
LSNRCTL>
set password
Password:
The
command completed successfully
LSNRCTL>
save_config
Connecting
to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
Saved
LISTENER configuration parameters.
Listener
Parameter File <ORACLE_HOME>/network/admin/listener.ora
Review the generated listener configuration file to make sure the
encrypted password was generated as in the example below
----ADDED BY
TNSLSNR 07-MAR-2007 19:58:05---
PASSWORDS_listener
= 04DB10069B99C286
Starting with 10g, local OS authentication is enabled by default
allowing the user who started the listener to administer fully without
providing a valid password. With local OS authentication enabled, some say 10g
listener is secure out of the box. Still, the following parameter can be set
to force the listener password to be entered for administration:
LOCAL_OS_AUTHENTICATION_listener
= OFF
Additionally, enable admin restrictions by setting to avoid listener
settings from being modified through lsnrctl commands.
ADMIN_RESTRICTIONS_<listener>=ON
One sure way to
shield the database from unwanted users is by setting up valid node checking.
The configuration can again be completed using the Oracle Net Manager. The
settings are placed in the SQLNET.ORA file. For example, the following
configuration will only allow a network connection from a single computer with
the IP address of 192.168.1.2:
TCP.VALIDNODE_CHECKING = YES
TCP.INVITED_NODES= (192.168.1.2)
The strategy for securing the
Oracle environment should include auditing of the database for intrusion
detection. Database auditing can thwart and/or detect unauthorized access or
misuse of data. Auditing the database can be done by any combination of audit
commands, system and object triggers, and fine-grained auditing.
In order to avoid performance
problems and useless clutter, only pertinent actions should be audited. If the
default SYS.AUD$ is used to hold the audit data, then the growth of audit table
must be carefully monitored to avoid space problems. If auditing is done to
the file system, one should protect the audit file designated by
AUDIT_FILE_DEST parameter.
Auditing database sessions
helps to identify suspicious connections to highly privileged schemas (audit
session). Auditing schemas and user changes help detect malicious or
inappropriate changes (audit user; audit create user; audit alter user; audit
drop user). Three other important auditing events for Oracle Applications
include create database link, alter system, and system audit and are set by the
following commands:
SQL> AUDIT
DATABASE LINK; -- Audit create or drop database links
SQL> AUDIT
PUBLICDATABASE 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
For those who are willing to
put in more time and effort on security, Oracle offers optional products that
will make the database even more secure. Starting with 10g Release 2
Enterprise Edition, Oracle Database Vault option is available to companies to
protect against internal threats from privileged users like the database
administrators. Oracle Label Security (OLS)
which is available for Oracle 9i and higher offers a way to implement very
granular level of security down to specific data records. Also, available for Oracle
9i and higher is the Oracle Secure Backup option which can be used to encrypt
and back up the data to the tape storage device. The database can be
integrated with Oracle Internet Directory for centralized user and password
management.
Secure Middleware top
The middleware refers to the
application server component of Oracle E-Business Suite, specifically Internet
Application Server (iAS). As a critical component of the Oracle E-Business
Suite, the middle-tier application servers need to be safeguarded. The
middleware servers are made more secure by enabling Secure Socket Layer (SSL)
protocol. The SSL protocol can be configured at reverse proxy, Apache web
server and/or the Forms server level. SSL-enabled applications communicate via
encrypted protocol and are accessed by HTTPS mode instead of HTTP.
In E-Business Suite
environment, Oracle Application Serve can be configured for SSL by using
AutoConfig utility and then performing additional tasks for the secure
certificates. The following SSL parameters need to be set in the context file
(<ORACLE_SID>_<server>.xml) for Applications:
"s_url_protocol"
– SSL protocol, i.e. HTTPS
"s_local_url_protocol"
– SSL protocol, i.e. HTTPS
"s_webssl_port"
– SSL port, i.e. 443
"s_web_ssl_certfile"
– Directory for server certificate, can be encrypted to require pass phrase
"s_web_ssl_keyfile"
– Directory for SSL private key file, if not included with the server
certificate
"s_web_ssl_certchainfile"
– Concatenation of certificate files forming certificate chain
After AutoConfig is done, the
httpd.conf for the AS needs to be reviewed and SSL changes need to be made
before starting up the middle tier services. In particular, if the certificate
chain is not used, then SSLCertificateChainFile needs to be commented out.
Additionally, the Certificate Authority verification path for client
authentication needs to be set to point to ca-bundle.crt file.
With Internet-facing applications,
a combination of network segregation and reverse proxy should be configured in
order to protect the internal applications server and database from outside
exposure. Reverse proxy is used to secure the applications server by hiding
the physical address of the server. A separate external applications tier
should be configured to service the external users accessing Oracle E-Business
Suite. The external app server must be tightly controlled and restricted to
minimize the risk to the database. Each tier in Figure 1 must be segregated by
firewalls for enhanced security.

Figure 1 - Externally
Facing Oracle E-Business Suite Architecture
Figure 1 above shows an
Oracle E-Business Suite architecture where Oracle Forms Servlet is enabled so
that complete applications environment can be run on SSL with just Apache SSL
certificates. The benefits of such architecture are easy of management and
cost savings derived from not having to maintain a separate Forms Wallet
certificate. Figure 1 also shows a more flexible architecture where the
external Applications server cluster can be used to service external users
through the reverse proxy or to connect with third-party services through
secure connection.
Oracle Single Sign-On (SSO) configuration
makes the application environments more secure by centralizing password
management and minimizing password exposure. With SSO in place, users only
have to authenticate once, and the log-in information is carried through other
partner applications. SSO with SSL is most secure due to reduction in password
exposure and added encryption. Single sign-on enables the sharing of user
authentication across the enterprise by linking the user accounts in the
different directories through a common user definition called Globally Unique
Identifier (GUID). Oracle uses the Lightweight Directory Access Protocol
(LDAP) directory known as Oracle Internet Directory (OID) as the repository for
user information.

Figure 2 - Single Sign-On
Architecture
When users log in to SSO
enabled Oracle Applications, they are automatically directed to the SSO login
page to get authenticated. Once successfully authenticated, the users are
redirected back to the Applications with “security cookie” to proceed on. From
this point forward, the user can log in to any “partner” application without
having to re-enter the password. By configuring Oracle Applications and Oracle
Internet Directory as “provisioning integrated applications,” the changes from
either system are provisioned (sent) to the other as set up by the
“provisioning profiles.” The provisioning profiles specify what user events are
provisioned, the direction of provisioning, and the user attributes involved. 8
The password policies must be
reviewed to ensure that passwords are propagated properly during provisioning.
The passwords in OID are case sensitive where as the passwords in Applications
are case insensitive by default but can be set to be case sensitive. Case
insensitive Applications passwords become lower case passwords in OID. The
timeout settings must also be reviewed to ensure seamless user experience. If
the Application session times before Single Sign-On session, then the session
user is directed to the SSO page then back to the Applications page maintaining
the active SSO authentication. If both Applications and SSO pages timed out, then
the user needs to re-authenticate before continuing with the Applications. One
thing to remember is that the Applications timeout settings take precedence
over the SSO timeout settings such that user will be able to log on to other
partner applications without having to re-authenticate even after the SSO
session has timed but the Applications session has not.
Oracle Single Sign-On can be
integrated with other authentication systems such as Microsoft Windows (Windows
Native Authentication/Kerberos) or Sun ONE Identity Server. Oracle’s LDAP
directory OID can be integrated with other LDAP-compliant directories such as
Microsoft Active Directory or Entrust Critical Path Directory Server. Even
with other third-party authentication solutions or LDAP servers in place,
Oracle E-Business Suite still requires Oracle SSO server and OID to act as a
bridge.
Secure Applications top
One of the first steps in
securing the Applications is to tighten the access into the Applications. Change
the SYSADMIN and other default account passwords (AUTOINSTALL, ANONYMOUS,
CONCURRENT, MANAGER, APPSMGR, FEEDER SYSTEM, INITIAL SETUP). Make sure GUEST
user has no responsibility. Review all seeded and new user accounts, and
disable any unused or obsolete accounts. Minimize the use of shared accounts,
but balance that out with the need to have a dedicated account that owns
scheduled jobs. Regularly change the passwords for privileged accounts to
protect against password compromise.
Oracle E-Business Suite is a
complex application made up of multiple products and technology stacks. For
Applications administrators, one of the first steps to take in making the
Applications more secure is to set the security profiles. The following are
recommended profile options to enhance security:
Signon Password Length: Minimum length of password.
Default is 5. Recommended value is 8.
Signon Password No Reuse : Minimum number of days
that a user must wait before being allowed to reuse a password. Recommended
value is 180.
Signon Password Hard to Guess: Set the rules for
choosing passwords to ensure that they will be ”hard to guess.” Default is
No. Recommended value is Yes. A password is considered hard-to-guess if it
follows these rules:
- The password contains at
least one letter and at least one number.
- The password does not contain
the username.
- The password does not contain
repeating characters.
Signon Password Failure Limit: Set the number of
times a user can try to log in with wrong password before being locked out.
The default is no lockout. Recommended value is 3.
Signon Password Custom: Write custom java code to
validate signon passwords further. Run loadjava to load the code and adadmin
to recompile apps schema afterwards. Make sure Signon Password Hard to Guess
is blank.9
Password Case Option/Signon Password Case: Makes
user passwords case sensitive. The default is Insensitive. Recommended value
is Sensitive.
Sign-On:Audit Level: Log user sign-on,
responsibility selection, and forms usage. Purge user sign-on data by running
Purge Signon Audit Data program, and periodically truncate FND_SIGNON_xxx tables
periodically to free up space. Default value is None, and recommended value is
FORM.
Sign-On:Notification: Set to detect the following
failures when the profile is set to Yes:
- Unsuccessful attempts have been made to log in
with wrong password.
- Requests failed since last login.
- Default printer is not valid.
The following standard reports
are used to view the audit data:
- Signon Audit Concurrent Requests
- Signon Audit Forms
- Signon Audit Responsibilities
- Signon Audit Unsuccessful
Logins
- Signon Audit Users
Starting with 11.5.10, Oracle
has implemented a new user access control model called Role Based Access
Control (RBAC) based on American National Standards Institute standard (ANSI
INCITS 359-2004) supported by National Institute of Standards and Technology
(NIST). RBAC maps the user access control to the role or job function the user
performs rather than the user’s identity. By doing so, RBAC streamlines the
user administration process and security policy enforcement. By using role
inheritance, roles can be used to consolidate responsibilities as well as
enforce lower level permissions and data security policies with just a one-time
setup.10
Role vs. Responsibility
|
Role |
Responsibility |
Based on |
Job function within the
company |
Identity of the user |
Used for |
Determine what parts of an
application and the corresponding a user has access |
Represent a set of
navigation menus with in an application used to grant privileges and
permissions within the application |
Administration |
One time setup inherited to
other roles |
Many similar
responsibilities to carve out data and functional security access |
The credit card encryption
feature of Oracle E-Business Suite offers a way to protect sensitive credit
card information. Using the feature also assists with compliance with the
cardholder data protection requirements of the Payment Card Industry (PCI) Data
Security Standard, and the Visa's Cardholder Information Security Program
(CISP). The Visa program is based on the PCI Data Security Standard. When the
feature is enabled, credit card numbers for external third-party payers, such
as customers or students, are encrypted. One limitation currently is that any
internal credit card numbers, such as company-owned or employee credit cards,
are not impacted by the Credit Card Encryption feature.11
Applications specific data
auditing can be done using Audit Trail feature of E-Business Suite. Be
selective on what data to audit making sure to avoid auditing high volume
transaction tables and regularly purge audit tables after disabling audit
trail.
To enable Audit Trail, follow
these steps12:
1. Set System profile option
AuditTrail: Activate to True
2. Navigate through Security
-> AuditTrail -> Install to set schemas for auditing
3. Navigate through Security
-> AuditTrail -> Groups to create audit groups and set tables to be audit
4. Navigate through Security
-> AuditTrail -> Tables to set columns in tables to be audited
5. Run AuditTrail Update Tables
to activate auditing
Protect the workstation and
browser by keeping up-to-date with the latest security patches from the
respective vendor companies. Ensure the browser security settings are set
properly to enable the download of JInitiator and forms to open up properly.
Add the application servers to the Trusted Site zone on the browser. Make sure
you are using certified version of the workstation operating system and browser
to ensure compatibility with Oracle JInitiator13.
More Best Practices top
In addition to the specific
best practices that were covered in this paper, there are some other practices
which will ensure that the applications and infrastructure are even more robust
and secure. After securing the environment and setting up auditing, round-the-clock
monitoring and notification should be in place to address component failures or
security breaches. In addition to running scanners during the initial rollout
of the application, Intrusion Detection Systems (IDS) should be put in place to
constantly monitor the inbound and outbound network packets in real time. Host-Based
Intrusion Prevention Systems (HIPS) can be used for perimeter protection. Oracle
Enterprise Manager or Grid Control along with custom scripts can be implemented
for proactive monitoring of running services.
To minimize unauthorized data
access from the inside, companies should scramble sensitive data in development
environments since developers have full access to these environments. Custom
scramble scripts or third-party tools can be used. Balance out the need to
scramble with ensuring the Applications function properly. For example,
scrambling the employee data can make the employee hierarchy difficult, if not
impossible, to use.
Security diagnostic tools
such as COPS, crack, and tcpd can be used to validate and report on the
performance of implemented security measures. Companies should also conduct
regular audits by various groups. The systems group should conduct self-audits,
while the IT security group should conduct internal audits. Outside firms can be
brought in to perform full external audits.
Companies should have a process
in place to evaluate and apply quarterly Critical Patch Updates (CPU) from
Oracle. The CPU patches fix security bugs in the applications technology stack
and are needed to maintain a secure environment. Applying the CPU patches
should be done in addition to keeping up to date with security patches for
other technology components. Although it is common knowledge, companies
should ensure that good backups are taken in case a restore is required for any
reason. (Check out the $23 billion mishap). Companies should also conduct
regular restore exercises to ensure the integrity of backups.
Securing applications should
be considered an ongoing work. Adhering to the recommendations presented in
this white paper will provide the essentials required to secure the applications.
Security threats arise daily, and security measures must constantly be reevaluated
to ensure that all components of the Applications environment are protected.
References
- Credit card breach exposes 40 million
accounts, Joris Evers Staff Writer (CNET News.com), June 17, 2005
- A Chronology of Data Breaches
(http://www.privacyrights.org/ar/ChronDataBreaches.htm)
- Coping With Insider Threats, Melisa
Bleasdale, May 9, 2006
- 2006 Annual Study: Cost of a Data
Breach, Ponemon Institute
- ChoicePoint Settles Data Security
Breach Charges; to Pay $10 Million in Civil Penalties, $5 Million for
Consumer Redress (http://www.ftc.gov/opa/2006/01/choicepoint.htm), January
26, 2006
- California Raises the
Bar on Data Security and Privacy, James F. Brelsford
(http://library.findlaw.com/2003/Sep/30/133060.html)
- Encrypting EBS 11i Network Traffic
using Advanced Security Option/Advanced Networking Option (Metalink
Note:391248.1, February 23, 2007)
- Integrating Oracle E-Business Suite
Release 11i with Oracle Internet Directory and Oracle Single Sign-On
- How to implement (Signon Password Custom) Profile Option in
Oracle Applications 11i (Metalink Note 362663.1)
- Oracle
User Management FAQ (Metalink Note:290525.1, 09-AUG-2006)
- Oracle Applications Credit Card
Encryption (Metalink Note 338756.1, 12-DEC-2006)
- Best Practices for Securing E-Business
Suite (Metalink Note 189367.1, 15-NOV-2006)
- Recommended Browsers for Oracle
Applications 11i (Metalink Note 285218.1, 28-DEC-2006)
|