Security
Data loss, electronic snooping, hacker attacks, unauthorized access, stolen passwords, and denial of service are just a few of the security issues a portal solution can face. Protecting the integrity and confidentiality of information is critical. To do this, the networking environment in which the portal resides must be secure. This section includes descriptions of how security should affect the configuration of each component in a Portal Server system.
Security is not just about the infrastructure of a system, it is also about the people, processes, policies, and architectures. System administrators must be trained in security-related issues. The processes must account for security issues, and the policies must include directives that will help to prevent security attacks. Finally, the architectures must be secured against both external and internal attacks.
Hardening and Minimization
Minimization is especially important in an environment that is exposed to the Internet or any untrusted network. This is the case on most implementations of the Sun ONE Portal Server software. In these environments, it is very important to reduce the Solaris OS installation to the minimum number of packages necessary to support the hosted applications. This minimization in services, libraries, and applications helps increase security by reducing the number of subsystems that must be disabled, patched, and maintained.
Solaris Security Toolkit
The Solaris™ Security Toolkit software, also known as JASS, is a tool designed to assist in the development, deployment, and maintenance of a secured Solaris OS. The Toolkit includes a set of shell scripts that implement the recommendations that are outlined in "Solaris Operating Environment Network Settings for Security: Updated for Solaris 9 Operating Environment" (Sun BluePrints OnLine, June 2003).
For detailed information about the Toolkit, refer to Securing Systems with the Solaris Security Toolkit (Prentice Hall, 2003). Used in conjunction with a JumpStart™ software server, the Toolkit can be used to install, minimize, and harden a Solaris OS server. The Toolkit is used during the OS installation process by using JumpStart software finish scripts. These scripts are executed after all of the software packages are installed.
Required Solaris OS Packages
The Sun ONE Portal Server software framework requires only an small subset of the Solaris OS packages to work properly. For Sun ONE Portal Server software, version 6.1, in addition to packages bundled in the Solaris OS Core software group (SUNWreq), only SUNWlibC, SUNWadmc, and SUNWadmfw are required to support most of the Sun ONE Portal Server software components. In addition, if the web container used by the Sun ONE Portal Server software, version 6.1, is the Sun ONE Application Server 7 software, a number of extra packages are required (see TABLE 1).
TABLE 1 Required Packages for Use With the Sun ONE Application Server 7 Software
Package |
Description |
SUNWpl5u |
Perl 5.6.1 (core) |
SUNWuiu8 |
Iconv modules for UTF-8 Locale |
SUNWuiu8x |
Iconv modules for UTF-8 Locale (64-bit) |
The Sun ONE Portal Server software, version 6.2, is part of the Java™ Enterprise System, which uses a common installer for all Sun ONE software applications. To install version 6.2 of the Sun ONE Portal Server, the packages in TABLE 2 are required.
TABLE 2 Required Packages for Use With the Sun ONE Portal Server 6.2 Software
Package |
Description |
SUNWadmc |
System administration (core) |
SUNWadmfw |
System and Network Administration Framework |
SUNWlibC |
Sun Workshop Compilers bundled (libC) |
SUNWlibCx |
Sun Workshop Compilers bundled (64-bit, libC) |
SUNWgzip |
The GNU Zip (gzip) compression utility |
SUNWfns |
Federated naming system |
SUNWfnsx |
Federated naming system (64-bit) |
SUNWgss |
GSSAPI V2 |
SUNWgssx |
GSSAPI V2 (64-bit) |
SUNWzlib |
The Zip compression library |
SUNWzlibx |
The Zip compression library (64-bit) |
SUNWscpu |
Source compatibility (usr) |
Netmail is a Java™ technology-based applet that implements a GUI that serves as a front end to an IMAP4-compliant mail server. The applet uses a servlet to interface with the mail server. This servlet is installed on the same web container that supports the Sun ONE Portal Server and Sun ONE Identity Server software. The servlet uses JNI and the AWT graphic toolkit that is part of the OpenWindows™ software and Motif windowing environments. Consequently, the Solaris OS packages that contain the AWT libraries and its dependencies also must be installed on the system if Netmail is used. TABLE 3 lists the required Solaris 9 OS packages.
TABLE 3 Required Packages for Netmail
Package |
Description |
SUNWxwpllt |
X Window system platform software |
SUNWxwice |
X Window system Inter-Client Exchange (ICE) components |
SUNWmfrun |
Motif runtime kit |
Netfile is a Java technology-based file manager application that enables users to have remote access to FTP, SMB, and NFS based file servers. For Sun ONE Portal Server 6.1 software, to access Microsoft Windows file servers, Netfile uses the smbclient program that is included in the SAMBA open source software suite. For convenience, a version of SAMBA is included in the Sun ONE Portal Server software third-party CD in the SUNWsmbac package. Version 6.2 of the Sun ONE Portal Server software uses the jCIFS toolkit of the SAMBA suite, so there is no need for this additional package.
To access NFS servers, the Solaris OS packages that contain the NFS client application and libraries must be installed on the system. TABLE 4 contains the list of required packages.
TABLE 4 Required Packages for NFS Support
Package |
Description |
SUNWnfscr |
NFS client support (root) |
SUNWnfscu |
NFS client support (usr) |
SUNWnfscx |
NFS client support for 64-bit systems (root) |
Application Ownership
By default, the installation of the Sun ONE Portal Server software is done as the system superuser (root). All of the components of the Sun ONE Portal Server are installed and configured to run as root. Unfortunately, there are some security implications for having the processes running as root. An application bug can be exploited to gain root access to the system. root access is required to maintain the Sun ONE Portal Sever software application. This raises potential security concerns because this responsibility is typically delegated to non-system administrators who might pose a threat to the system security and integrity.
The Sun ONE Portal Server software documentation contains instructions on how to change the user ownership of the Sun ONE Portal Server software processes and files. The document assumes that the same UNIX_ user will run all of the services. In general, it is not recommended to run any application service as the nobody user. A better approach is to run the different applications under different users. This ensures that the maintenance of the different components will be done by different groups of administrators. Instead of creating dedicated or functional users for each application, it is better to assign the applications to different UNIX roles so that users can be assigned and removed from the role as needed.
While the traditional UNIX security model is generally viewed as all or nothing, there are tools that can be used as an alternative to provide additional flexibility. These tools provide the mechanisms needed to create a fine-grained access control system in which users can be selectively granted access to individual resources, such as different UNIX commands.
The Solaris 8 OS and the Solaris 9 OS support Role-Based Access Control (RBAC), which provides the ability to package superuser privileges and assign them to user accounts. RBAC enables separation of powers, controlled delegation of privileged operations to other users, and a variable degree of access control. This feature of RBAC enables you to configure the system using default ports (389 for the Directory Server and 80 for the Portal Server) and have a non-superuser role dedicated to the management of the application.
Secure Shell
As part of the Solaris Security Toolkit software minimization process, the common network access protocols, such as Telnet and FTP, are disabled because there is no way to prevent passwords and data from being transmitted in clear text. Thus, these protocols are susceptible to eavesdropping. The Toolkit also disables the rlogin, rcp, and rsh commands. The recommended tool used to provide remote access to a server is Secure Shell.
Secure Shell encrypts all network traffic, provides strong authentication, and monitors the integrity of the network session. It provides equivalent replacements for common commands such as telnet, ftp, and rcp. A description of the features and different configuration options for Secure Shell can be found in Secure Shell in the Enterprise (Prentice Hall, 2003). The Solaris™ Secure Shell software is a bundled component of the Solaris 9 OS, and it is part of the companion CD in the Solaris 8 OS.
Secure Socket Layer (SSL)
To increase the security of the Portal Server, HTTP over SSL (HTTPS) can be enabled on the Portal Server nodes. The Sun ONE Web Server 6 software supports multiple listening sockets that can be associated with the same virtual server. These listening sockets can be configured to use either HTTP or HTTPS protocols. Thus, it is possible to configure the Portal Server to user only HTTP, only HTTPS, or both at the same time on different ports.
The best option to create a portal site that will use SSL is to do it during the software installation. The installer will configure all of the Sun ONE Portal Server and Sun ONE Identity Service software services to use HTTPS. After the software is installed, everything is configured to use HTTPS, but the X.509 certificate for the server and the security for the listening socket on the Web Server must be manually enabled using the administration console on the Web Server.
LDAP over SSL (LDAPS) can also be used to guarantee integrity and confidentiality in the access to the information stored in the Directory Server. The Sun ONE Directory Server software can be configured to listen on both LDAP and LDAPS default ports simultaneously (ports 389 and 636, respectively).
Setting the LDAP port to 0 completely disables the non-SSL access. This is the recommended configuration because it guarantees that all LDAP requests will be protected by the SSL protocol. In this configuration, the Directory Server administration server also must be configured to use LDAPS to access the directory. At the same time, access to the administration server should be done using HTTPS.
SSL version 2 and 40-bit and 56-bit ciphers are disabled by default because of known deficiencies in the protocol implementation and the poor security that those weak ciphers provide. Most browsers use RC4 as the default cipher for encryption because it is the fastest cipher and because at the time SSL version 3 was published, RC4 was fairly secure. However, since its release, some vulnerabilities have been discovered that might make it theoretically possible to recover the encryption key from the encrypted data. The 3DES cipher is slower, but it is more secure because it has no known vulnerabilities. You will need to take the customer's need for performance versus the customer's need for security into account when you decide which cipher to enable or disable.
Firewalls
Usually, firewalls are configured to drop connections that have been idle for some predefined time, which varies from minutes to hours. This can cause a problem for Netlet connections if a firewall is between the user's browser and the gateway. To avoid this problem, the Netlet keep-alive attribute must be set to a time shorter than the firewall timeout. This will force the gateway to send a package to the Netlet applet that will reset the idle timer of the firewall.
The same problem can occur if there is a firewall between the Sun ONE Portal Server software node and the server that hosts the Directory Server. The Sun ONE Identity Server software uses a pool of open connections to access the LDAP server. If any connection is idle for a longer time than the idle timeout of the firewall, the connection will be closed. The Identity Server will believe the LDAP server is down and will failover to the next LDAP server if it is configured. To prevent this problem, you should set the maximum connection time in the LDAP server.
In previous versions of the Sun ONE Portal Server software (prior to version 6.2), the Netlet used a proprietary protocol that mimics the SSL semantics, but did not implement the SSL handshake protocol, which is required for some firewalls to keep track of the valid SSL sessions. Because of this reason, the Netlet component did not work with proxy firewalls. These firewalls analyze every protocol encapsulated in the network packet, and because the Netlet packet did not have a valid SSL session ID, a proxy firewall would drop the packets. This limitation has been removed in the latest version of the Sun ONE Portal Server Secure Remote Access software. In this version, the Netlet uses the SSL protocol as a transport.
Identity Server Administration Console
The administration console in the Sun ONE Identity Server software is used to configure every aspect of the Identity Server software. It is used to create organization, users, and policies and to modify services. In most cases, it is not desirable that ordinary users have access to the administration console. The best option is to completely disable the administration console on the servers that will be accessed from the Internet and to install it on a dedicated server on a protected network. In version 6.1 of the Sun ONE Portal Server software, there is no option during the installation to not install the administration console. To disable the administrative console, it was necessary to remove the administration console application (amconsole) from the web container. In the Sun ONE Web Server 6 software, this can be done using the following command:
# /opt/SUNWam/servers/bin/https/httpadmin/bin/wdeploy delete u /amconsole\ -i https-<Server FQDN> -v https-<Server FQDN> soft
The delegated administration and self-service features of the Sun ONE Identity Server software are also accessed through the administration console URL. Removing the administration console will also remove these features from the system.
Penetration Testing
It is common for companies to perform penetration testing to verify that the system complies with all of the security policies and that there are no exploitable security holes. Penetration testing involves intentional hacking into a system to find failures and/or misconfigurations that enable users to open a valid session on the Portal Server or to gain illegal access to the system. This testing must be done by someone who is very familiar with hacking tools and is able to analyze the output of the tools. Even though most, if not all, of the tools are available on the Internet, the planning, execution, and result analysis must be done by a certified UNIX security consultant.
Intrusion Detection
Despite the use of firewalls, a second level of defense is needed. Firewalls are usually configured to allow common Internet traffic (for example, SSL, HTTP, and SMTP). Network attacks can still be made using one of these protocols. For example, HTTP is being used as a transport not only for HTML, but also for SOAP, SAML, and other protocols that can be used to interact with applications. These protocols can be exploited to carry some specific attacks to try to exploit software vulnerabilities.
Intrusion detection involves detecting network security attacks within the system. Specific tools are used to detect the intrusions, and after an intrusion is detected, additional tools are needed to conduct intrusion forensics, nonrepudiation, and selective logging. None of these tools are provided with the Portal Server software. When any of these attacks occur, the intrusion detection system will notice them and will stop the attackers before they can reach systems and data.
In maintaining a secure system, it is important to monitor the system to ensure that files have not been changed. You can use Tripwire to check every file on the system. Tripwire (http://www.tripwire.com) can be used to monitor file changes, verify integrity of data, and notify the system administrator of any violations. Tripwire makes it possible to establish network policies that detect intentional tampering, user error, software failure, malicious software, and open-door systems.
In addition, the Solaris OS Software Fingerprint Database (sfpDB) is a free SunSolve OnlineSM service that enables users to verify the integrity of files distributed with the Solaris OS. The checksums of the system files must be updated after the system is modified by patch or software installations. The issue with existing tools has always been verifying that the files used to generate the baseline checksums are correct and current.
The Fingerprint Database addresses the issue of validating the base files provided by Sun. This includes files distributed with the Solaris OS media kits, unbundled software, and patches. The Fingerprint Database provides a mechanism to verify that a true file in an official binary distribution is being used and not an altered version that compromises system security and causes other problems.