Oracle Solaris Security Policy
with profile Solaris Baseline Security Policy
| Profile Title | Solaris Baseline Security Policy |
|---|---|
| Profile ID | Baseline |
Revision History
Current version: 1.13942
- accepted
Platforms
- cpe:/o:oracle:solaris:11
Table of Contents
- Verify the OS configuration
- Verify file system information.
- Enable required services
- Tune kernel and network parameters
- Verify user configuration
- Check various system configuration items
- Verify audit configuration
Checklist
| contains 141 rules |
Verify the OS configurationgroup
The Oracle Solaris OS is installed with packages from a repository.
The packages must arrive on the target system unmodified,
and a set of protections for default services and
executables be put in place.
In this section, you verify package integrity, ensure that the booted system is protected, and verify that default OS protections are in place. |
| contains 3 rules |
Package integrity is verifiedruleRun 'pkg verify' to check that all installed Oracle Solaris software matches the packaging database and that ownership, permissions and content are correct. Remediation description:
'pkg verify' has produced errors.
Rerun the command and evaluate the errors.
As appropriate, based on errors found,
you should run 'pkg fix <package-fmri>'
See the pkg(1) man page.
|
The OS version is currentruleSystems should be kept up to date to ensure that the latest security and operational updates are installed. You can run 'pkg update -n' to check the current state of the system against the configured repositories. Remediation description:
The system is not up to date. Update the system.
|
Package signature checking is globally activatedrulePackage signature checking should be globally activated. Remediation description:
The package signature policy should not be set to "ignore".
See the pkg(1) man page.
|
Verify file system information.group
Oracle Solaris uses the ZFS file system by default.
ZFS is robust, scalable, and easy to administer.
ZFS can lay out filesystems over multiple devices,
keeps the file system state consistent on disk,
and verifies the data and metadata
by using a user-selectable checksum algorithm.
ZFS filesystems can hold zettabytes of data,
and this data can be encrypted, compressed, mirrored,
and backed up easily.
|
| contains 4 rules |
All local filesystems are ZFSruleZFS is the default filesystem for Oracle Solaris. On most systems other filesystem types should not be mounted. See the zfs(7FS) man page. Remediation description:
Unmount any foreign file systems, such as UFS and HSFS.
See the umount(1M) man page.
|
Find and list .forward filesrule.forward files can provide easy transport of information outside the firewall or outside the user's home directory. Remediation description:
Remove inappropriate .forward files
|
Find and list .netrc filesruleThe .netrc file contains data for logging in to a remote host over the network for file transfers by FTP. Remediation description:
Remove unneeded .netrc files
|
Find and list .rhosts filesrule.rhosts files can provide easy access to remote hosts by bypassing the password requirement. These files should be removed. Remediation description:
While rhosts-based login is also preventable on the remote host,
it is best to remove any .rhosts files from user's home directories.
|
Enable required servicesgroup
The Service Management Facility (SMF) provides
an infrastructure to ease application
and system service management.
SMF augments the traditional UNIX startup scripts,
init run levels, and configuration files.
Management information for each service is stored
in a configuration repository,
which provides a simplified way to manage each service.
|
| contains 92 rules |
Service svc:/system/coreadm is enabledruleThe coreadm service manages the core files that are produced by processes that terminate abnormally. See the core(4) and coreadm(1M) man pages. Remediation description:
Use coreadm(1M) to configure the coreadm service,
then enable the service.
|
Service svc:/system/cron is enabledruleThe cron service manages the cron(1M) command, which runs processes that execute commands at specified dates and times. See the at(1), crontab(1), and cron(1M) man pages. Remediation description:
Configure your cron services, then enable the service.
|
Service svc:/system/cryptosvc is enabledruleThe cryptosvc service manages the use of cryptographic mechanisms from the Cryptographic Framework feature of Oracle Solaris. See the cryptoadm(1M) man page. Remediation description:
Enable the cryptosvc service.
|
Service svc:/system/dbus is enabledruleThe dbus service manages the D-Bus message bus daemon. Programs use the message bus daemon to exchange messages with one another. For example, the Hardware Abstraction Layer (HAL) uses dbus. See the dbus-daemon(1) and hal(5) man pages. Remediation description:
Enable the dbus service.
|
Service svc:/system/hal is enabled in global zoneruleThe Hardware Abstraction Layer (HAL) service manages dynamic hardware configuration changes. See the hal(5) man page. This service only runs in the global zone. Remediation description:
Enable the hal service.
|
Service svc:/system/identity:domain is enabledruleThe identity:domain service instance manages system identity. See the domainname(1M) man page. Remediation description:
Enable the identity:domain service.
|
Service svc:/system/intrd is enabled in global zoneruleThe interrupt balancer (intrd) service monitors the assignments between interrupts and CPUs to ensure optimal performance. See the intrd(1M) man page. This service only runs in the global zone. Remediation description:
Enable the intrd service.
|
Service svc:/system/keymap is enabled in global zoneruleThe keymap service manages the default configuration of the keyboard. See the kbd(1) man page. This service only runs in the global zone. Remediation description:
Enable the keymap service.
|
Service svc:/system/picl is enabled in global zoneruleThe platform information and control (picl) service manages the publishing of platform configuration information that can respond to client requests for information about the configuration. See the picld(1M) and prtcpicl(1M) man pages. This service only runs in the global zone. Remediation description:
Enable the picl service.
|
Service svc:/system/scheduler is enabled in global zoneruleThe system/scheduler service manages the process scheduler. See the dispadmin(1M) man page. This service only runs in the global zone. Remediation description:
Enable the system/scheduler service.
|
Service svc:/system/system-log is enabledruleThe system-log service reads and forwards system messages to the appropriate log files or users. See the syslogd(1M) and rsyslogd(1M) man pages. Remediation description:
The system-log service has two instances, rsyslog and default.
The rsyslog instance is installed with the pkg:/system/rsyslog package.
Enable the system-log:rsyslog or system-log:default service.
|
Service svc:/system/utmp is enabledruleThe utmp service manages a table of processes, detects when a process has terminated, and updates the table. See the utmpd(1M) man page. Remediation description:
Enable the utmp service.
|
Service svc:/system/zones is enabled in global zoneruleThe zones service manages the autoboot and graceful shutdown of zones. See the zones(5) and zonecfg(1M) man pages. This service only runs in the global zone. Remediation description:
Enable the zones service.
|
Service svc:/system/zones-install is enabledruleThe zones-install service manages the auto-installation of zones. Remediation description:
Enable the zones-install service.
|
Service svc:/network/rpc/bind is enabledruleThe rpc/bind service manages the conversion of RPC program numbers to universal addresses. See the rpcbind(1M) man page. Remediation description:
Enable the rpc/bind service.
|
Service svc:/system/name-service/switch is enabledruleThe name-service/switch service manages the databases that contain information about hosts, users, and groups. See the nsswitch.conf(4) man page. Remediation description:
Enable the name-service/switch service.
|
Service svc:/system/name-service/cache is enabledruleThe name-service/cache service manages the caching of name service information. See the nscd(1M) man page. Remediation description:
Enable the name-service/cache service.
|
Service svc:/network/nfs/status is disabled or not installedruleThe NFS status monitor service interacts with lockd(1M) to provide the crash and recovery functions for the locking services on NFS. Remediation description:
Disable this service if the system is not an NFS client or server.
|
Service svc:/network/nfs/nlockmgr is disabled or not installedruleThe NFS lock manager supports record locking operations on NFS files in NFSv2 and NFSv3. See the lockd(1M) and sharectl(1M) man pages. Remediation description:
Disable the service if you are either
1) not using NFS at all or 2) using NFSv4.
|
Service svc:/network/nfs/client:default is in disabled staterule
The NFS client service is needed only
if the system is mounting NFS file systems specified in /etc/vfstab.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/nfs/server:default is in disabled staterule
The NFS Server service handles client file system
requests over NFS version 2, 3, and 4.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/nfs/fedfs-client:default is in disabled staterule
The Federated Filesystem (FedFS) client service
manages defaults and connection information for LDAP servers
that store FedFS information.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/nfs/rquota is disabled or not installedruleThe remote quota server returns quotas for a user of a local file system which is mounted over NFS. The results are used by quota(1M) to display user quotas for remote file systems. The rquotad(1M) daemon is normally invoked by inetd(1M). Remediation description:
Disable the rquota service.
It provides information about the network
to potentially malicious users.
|
Service svc:/network/nfs/cbd:default is in disabled staterule
The NFS cbd service manages communication endpoints
for the NFS Version 4 protocol.
The nfs4cbd(1M) daemon runs on the NFS Version 4 client
and creates a listener port for callbacks.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/nfs/mapid:default is in disabled staterule
The NFS user and group ID mapping daemon service
maps to and from NFS version 4 owner and owner_group
identification attributes and local UID and GID numbers used by
both the NFS version 4 client and server.
See the nfsmapid(1M) man page.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/smb/client is disabled or not installedruleThe SMB/CIFS client allows an Oracle Solaris system to natively mount file systems by means of SMB shares from SMB enabled servers such as a Windows system. See the mount_smbfs(1M) man page. Remediation description:
Uninstall the pkg:/system/file-system/smb package
or disable the service.
|
Service svc:/network/ftp:default is in disabled staterule
The FTP service provides unencrypted file transfer service
and uses plain text authentication.
The secure copy program (scp(1)) program should be used
instead of FTP as it provides encrypted authentication
and file transfer.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/ssh:default is in enabled staterule
The ssh service manages the Secure Shell (ssh) daemon,
which provides secure encrypted communications
between two untrusted hosts over an insecure network.
By default, ssh is the only network service
that can send and receive network packets
on a newly-installed Oracle Solaris system.
See the sshd(1M) man page.
To manually remediate this failure, set the service state to enabled using the appropriate command.
|
Service svc:/network/smtp:sendmail is enabledruleThe sendmail service should be running. Otherwise, important system mail to root will not be delivered. If receipt of remote mail is not required, sendmail should be in local_only mode. See check OSC-68505-sendmail-local-only to verify that sendmail is running in local_only mode. See the sendmail(1M) man page. Remediation description:
Enable the smtp:sendmail service.
|
Service svc:/network/sendmail-client is enabledruleThe sendmail-client service manages email on a client. The sendmail-client service needs to be running to ensure delivery of mail to local accounts such as root. See the sendmail(1M) man page. Remediation description:
Enable the sendmail-client service.
|
Service svc:/network/inetd is enabledruleThe inetd service manages the restarting of inet services. See the inetd(1M) man page. Remediation description:
Enable the inetd service.
|
Service svc:/system/filesystem/autofs:default is in enabled staterule
The autofs service manages
the mount points for the automount(1M) daemon.
To manually remediate this failure, set the service state to enabled using the appropriate command.
|
Service svc:/system/power management is enabled in global zoneruleThe system/power service manages the power management configuration of an Oracle Solaris system. See the poweradm(1M) man page. This service only runs in the global zone. Remediation description:
Enable the power management service.
|
Service svc:/network/dns/multicast:default is in disabled staterule
Multicast DNS (mDNS) implements DNS in a small network
where no conventional DNS server has been installed.
DNS Service Discovery (DNS-SD) extends multicast DNS
to also provide simple service discovery (network browsing).
This service is disabled by default,
because while it can ease finding hosts and servers,
it can also provide information about the network to malicious users.
See the named(1M) and mdnsd(1M) man pages.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/dhcp-server:default is in disabled staterule
By default, the dhcp-server service is not installed.
If you are not using this system as a DHCP server,
you should not install or enable the service.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/rarp:default is in disabled staterule
This legacy service responds
to DARPA reverse address resolution protocol (RARP) requests.
Historically, RARP was used by machines at boot time
to discover their Internet Protocol (IP) address.
By default, this service is not installed.
See the rarpd(1M) and rarp(7P) man pages.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/slp:default is in disabled staterule
This legacy service provides common server functionality
for the Service Location Protocol (SLP) versions 1 and 2,
as defined by IETF in RFC 2165 and RFC 2608.
SLP discovers and selects network services.
By default, this service is not enabled.
See the slpd(1M), slp.conf(4), and slp(7P) man pages.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/security/kadmin:default is in disabled staterule
The Kerberos administration daemon service runs
on the master key distribution center (KDC),
which stores the principal and policy databases.
This service should not be run on a system that is not a KDC.
See the kadmind(1M) man page.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/security/krb5_prop:default is in disabled staterule
The Kerberos propagation daemon runs on slave KDC servers
to update the database from the master KDC.
See the kpropd(1M) man page.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/security/krb5kdc:default is in disabled staterule
The Kerberos key distribution center service manages
Kerberos tickets on the master and slave KDCs.
See the krb5kdc(1M) man page.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/application/management/net-snmp:default is in disabled staterule
The Simple Network Management Protocol (SNMP)
is a widely used protocol for monitoring
the health and welfare of network equipment.
The net-snmp SNMP daemon processes requests
from SNMP management software.
See the snmpd(8) and snmp_config(5) man pages.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/application/cups/in-lpd:default is in disabled staterule
This service supports the CUPS Line Printer Daemon (LPD)
for legacy client systems that use the LPD protocol.
By default, this service is not installed.
See the cups-lpd(8) man page.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/finger is disabled or not installedruleThis legacy service enables users to display information about local and remote users. By default, this service is not installed as part of solaris-small-server. It is however installed as part of solaris-large-server. This service is almost never needed and either should be removed or at least, disabled. See the fingerd(1M) and finger(1) man pages. Remediation description:
Uninstall the pkg:/service/network/finger and
pkg:/network/finger packages or disable the service.
|
Service svc:/network/login:rlogin is disabled or not installedruleThis legacy service enables users to log in remotely. By default, this service is not installed as part of solaris-small-server. See the rlogind(1M) and rlogin(1) man pages. Remediation description:
Uninstall the pkg:/service/network/legacy-remote-utilities package
or disable the service.
|
Service svc:/network/login:klogin is disabled or not installedruleThis service enables users to log in remotely with Kerberos authentication. By default, this service is not installed. See the rlogind(1M) and rlogin(1) man pages. Remediation description:
Uninstall the pkg:/service/network/legacy-remote-utilities package
or disable the service.
|
Service svc:/network/login:eklogin is disabled or not installedruleThis service enables users to log in remotely with Kerberos authentication over an encrypted line. By default, this service is not installed. See the rlogind(1M) and rlogin(1) man pages. Remediation description:
Uninstall the pkg:/service/network/legacy-remote-utilities package
or disable the service.
|
Service svc:/network/shell:default is disabled or not installedruleThe remote shell daemon provides remote execution facilities with authentication based on Kerberos V5 or privileged port numbers. The Secure Shell service, svc:/network/ssh, is the best choice for remote execution. See the rshd(1M) and sshd(1M) man pages. Remediation description:
Disable this service or uninstall the package.
To view the contents of the package,
run the 'pkg contents legacy-remote-utilities' command.
|
Service svc:/network/shell:kshell is disabled or not installedruleThe remote shell daemon provides remote execution facilities with authentication based on Kerberos V5 or privileged port numbers. The Secure Shell service, svc:/network/ssh, is the best choice for remote execution. See the rshd(1M) and sshd(1M) man pages. Remediation description:
Disable this service or uninstall the package.
To view the contents of the package,
run the 'pkg contents legacy-remote-utilities' command.
|
Service svc:/network/telnet is disabled or not installedruleThis legacy service supports the DARPA standard TELNET virtual terminal protocol to connect to a remote system over the TELNET port. By default, this service is not installed. See the telnetd(1M) and telnet(1) man pages. Remediation description:
Uninstall the telnet packages or disable the service.
|
Service svc:/network/uucp is disabled or not installedruleThis legacy service, UNIX to UNIX copy, provides a user interface for requesting file copy operations, typically used when constant connectivity is not possible. By default, this service is not installed. See the uucpd(1M) and uucp(1C) man pages. Remediation description:
Uninstall the uucp package or disable the service.
|
Service svc:/network/chargen:stream is disabled or not installedruleThis legacy service provides the server side of the Character Generator Protocol (RFC 864) for TCP. See the in.chargend(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/chargen:dgram is disabled or not installedruleThis legacy service provides the server side of the Character Generator Protocol (RFC 864) for UDP. See the in.chargend(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/daytime:stream is disabled or not installedruleThis legacy service provides the server side of the Daytime Protocol (RFC 867) for TCP. See the in.daytimed(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/daytime:dgram is disabled or not installedruleThis legacy service provides the server side of the Daytime Protocol (RFC 867) for UDP. See the in.daytimed(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/discard:stream is disabled or not installedruleThis legacy service provides the server side of the Discard Protocol (RFC 863) for TCP. See the in.discardd(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/discard:dgram is disabled or not installedruleThis legacy service provides the server side of the Discard Protocol (RFC 863) for UDP. See the in.discardd(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/echo:stream is disabled or not installedruleThis legacy service provides the server side of the Echo Protocol (RFC 862) for TCP. See the in.echod(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/echo:dgram is disabled or not installedruleThis legacy service provides the server side of the Echo Protocol (RFC 862) for UDP. See the in.echod(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/time:stream is disabled or not installedruleThis legacy service provides the server side of the Time Protocol (RFC 868) for TCP. See the in.timed(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/time:dgram is disabled or not installedruleThis legacy service provides the server side of the Time Protocol (RFC 868) for UDP. See the in.timed(1M) man page. Remediation description:
Remove the legacy-network-services package.
To view the contents of the package,
run the 'pkg contents legacy-network-services' command.
|
Service svc:/network/comsat is disabled or not installedruleThis legacy service process listens for reports of incoming mail and notifies interested users. By default, this service is not installed as part of solaris-small-server. See the comsat(1M) man page. Remediation description:
Uninstall the pkg:/service/network/comsat package
or disable the service.
|
Service svc:/network/rexec is disabled or not installedruleThis legacy service provides remote execution facilities with authentication based on user names and passwords. See the in.rexecd(1M) and rexec(3C) man pages. Remediation description:
Disable the rexec service.
You can also uninstall the legacy-remote-utilities package.
To view the contents of the package,
run the 'pkg contents legacy-remote-utilities' command.
|
Service svc:/network/talk is disabled or not installedruleThis legacy program enables two-way, screen-oriented communication. For more information, see the talk(1) and mesg(1) man pages. Remediation description:
Disable talk(1) by using the mesg(1) command.
|
Service svc:/network/stdiscover is disabled or not installedruleThis legacy program is used to locate the service tag listener. For more information, see the in.stdiscover(1M) man page. Remediation description:
Disable the stdiscover service.
|
Service svc:/network/stlisten is disabled or not installedruleThis legacy program is used to listen for discovery probes. See the in.stlisten(1M) man page. Remediation description:
Disable the stlisten service.
|
Service svc:/network/rpc/gss is enabled if and only if Kerberos is configuredruleThe generic security service (gss) service manages the generation and validation of Generic Security Service Application Program Interface (GSS-API) security tokens. The gssd(1M) daemon operates between the kernel rpc and the GSS-API. Kerberos uses this service. Remediation description:
Disable the rpc/gss service
if Kerberos is not configured and not in use.
|
Service svc:/network/rpc/rstat is disabled or not installedruleThis legacy service displays performance data from a remote system. By default, this service is not installed. See the rstatd(1M) and rstat(3RPC) man pages. Remediation description:
Uninstall the pkg:/service/network/legacy-remote-utilities package
or disable the service.
|
Service svc:/network/rpc/rusers is disabled or not installedruleThis legacy service displays information about users on a remote system. By default, this service is not installed. See the rusersd(1M) and rusers(1) man pages. Remediation description:
Uninstall the pkg:/service/network/legacy-remote-utilities package
or disable the service.
|
Service svc:/network/rpc/meta is disabled or not installedruleThis legacy service uses an rpc(4) daemon to manage local copies of metadevice diskset information. By default, this service is not installed. See the rpc.metad(1M) man page. Remediation description:
Uninstall the package or disable the service.
|
Service svc:/network/rpc/metamed is disabled or not installedruleThis legacy service manages mediator information for 2-string high availability configurations. See the rpc.metamedd(1M) man page. Remediation description:
Uninstall the package or disable the service.
|
Service svc:/network/rpc/metamh is disabled or not installedruleThis legacy service uses an rpc(4) daemon to manage multi-hosted disks. By default, this service is not installed. See the rpc.metamhd(1M) man page. Remediation description:
Uninstall the package or disable the service.
|
Service svc:/network/rpc/rex is disabled or not installedruleThis program is the Oracle Solaris RPC server for remote program execution. If this service is enabled, the daemon is started by inetd(1M) whenever a remote execution request is made. See the rpc.rexd(1M) man page. Remediation description:
Disable the rex service.
|
Service svc:/network/rpc/spray is disabled or not installedruleThis program is a server that records the packets sent by spray(1M). See the rpc.sprayd(1M) man page. Remediation description:
Disable the spray service.
|
Service svc:/network/rpc/wall is disabled or not installedruleThis program broadcasts messages to all logged-in users. See the rpc.rwalld(1M) and wall(1M) man pages. Remediation description:
Disable the wall service.
|
Service svc:/system/avahi-bridge-dsd is disabled or not installedruleThis program provides an object-oriented interface to DBUS-enabled applications. See the avahi-daemon-bridge-dsd(1) man page. Remediation description:
Disable the avahi-bridge-dsd service.
|
Service cde-ttdbserver is enabled, or not installedruleThe rpc.ttdbserver service is part of the Common Desktop Environment (CDE) which predates the use of GNOME in Solaris. If you are running CDE, then you should enable its services. You should have good reasons to choose CDE over GNOME as your desktop environment. Remediation description:
If installed, this service should be enabled.
|
Service svc:/application/graphical-login/gdm:default is in disabled staterule
The GNOME Display Manager manages the displays on a system,
including the console display, attached displays, XDMCP displays,
and virtual terminals.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service cde-calendar-manager is enabled, or not installedruleThe cde-calendar-manager service is part of the Common Desktop Environment (CDE) which predates the use of GNOME in Solaris. If you are running CDE, then you should enable its services. You should have good reasons to choose CDE over GNOME as your desktop environment. Remediation description:
If installed, this service should be enabled.
|
Service svc:/application/x11/xfs is disabled or not installedruleThis program provides fonts to X Window System display servers. The server is usually run by inetd(1M). See the xfs(1) and fsadmin(1) man pages. Remediation description:
Disable the xfs service.
|
Service xvnc-inetd is enabled, or not installedruleThe xvnc-inetd service runs the X VNC server from inetd(1M). See the Xvnc(1) man page. Remediation description:
To run Xvnc from inetd, this service must be enabled.
|
The GNOME desktop has suitable screensaver settingsruleThe timeout parameter for the xscreensaver application specifies the amount of time that the keyboard and mouse can be inactive before a password-protected screensaver appears. See the xscreensaver(1) man page. Remediation description:
A screensaver timeout provides protection for a desktop
that has not been locked by an absent user.
To help prevent session hijacking,
the timeout value should be set to a fairly short interval.
|
The NIS client service is disabled or not installedruleBy default, NIS client software is not installed. NIS is an RPC-based naming service that does not conform to current security requirements, so can be less secure than the LDAP naming service. See the nis(5) and ypbind(1M) man pages. Remediation description:
Disable the NIS client service
if it is not on a network with an NIS server.
|
The NIS server service is disabled or not installedruleBy default, NIS server software is not installed. NIS is an RPC-based naming service that does not conform to current security requirements, that can be less secure than the LDAP naming service. See the nis(5) and ypserv(1M) man pages. Remediation description:
Disable the NIS server service
if it is not being used to distribute
system and user configuration information.
|
The r-protocols services are disabled in PAMruleBy default, legacy services such as the r-protocols, rlogin(1) and rsh(1), are not installed. Their services, however, are defined in /etc/pam.d. See the pam.d(4) man page. Remediation description:
If you remove the service definitions from /etc/pam.d,
these services would use the "other" service
if these legacy services were enabled.
Therefore, specify pam_deny.so.1 as the module
for the authentication stack for the r-protocol services
in the /etc/pam.d directory.
|
Service svc:/network/http:apache22 is in disabled staterule
This program provides Apache web server services
by using the Apache hypertext transfer protocol (http).
See the httpd(8) man page.
To manually remediate this failure, set the service state to disabled using the appropriate command.
|
Service svc:/network/rpc/keyserv is disabled or not installedrulekeyserv is a daemon that is used for storing the private encryption keys of each user logged into the system. These encryption keys are used for accessing secure network services such as secure NFS. For more information, see the keyserv(1M) man page. Remediation description:
Disable the keyserv service.
|
ssh(1) is the only service binding a listener to non-loopback addressesruleBy default, ssh(1) is the only network service that can send and receive network packets on a newly-installed Oracle Solaris system. Of course, most useful servers will have some additional service such as a web server on port 80, etc. Also, rpcbind, if it is online, should be configured to listen only for local connections. See the sshd(1M) and rpcbind(1M) man pages. Remediation description:Disable any unneeded services listening on the network.
# svcadm disable <FMRI for unneeded service>
Additionally, rpcbind should be set to local only mode so that it does not respond to remote requests, using:
# /usr/sbin/svccfg -s svc:/network/rpc/bind:default setprop config/local_only = boolean: true
# svcadm refresh svc:/network/rpc/bind:default
|
ssh(1) requires passwordsruleLogins without a password put the system at risk. In the default remote login service, Secure Shell, the PermitEmptyPasswords parameter in the /etc/ssh/sshd_config file should remain set to no. See the sshd_config(4) man page. Remediation description:
Ensure that PermitEmptyPasswords value
in the /etc/ssh/sshd_config file has not been changed.
The default value is no.
If you reset the value, restart the ssh service.
|
rhost-based authentication in ssh(1) is disabledrulerhost-based authentication in Secure Shell allows users to remotely log in without supplying a password. The IgnoreRhosts parameter specifies whether .rhosts and .shosts files can be used rather than a password. See the sshd_config(4) and hosts.equiv(4) man pages. Remediation description:
Ensure that the default value of IgnoreRhosts has not been changed.
If the parameter is not in the /etc/ssh/sshd_config file,
the value is yes.
If IgnoreRhosts is in the file, set its value to yes.
Secure Shell parameters are case-sensitive.
If you reset the value, restart the ssh service.
|
root login by using ssh(1) is disabledruleBy default, remote root logins are not permitted because root is a role and roles cannot log in. If root has been changed to a user, the default value of the PermitRootLogin parameter in the /etc/ssh/sshd_config file prevents root from remotely logging in. See the sshd_config(4) man page. Remediation description:
If root is a user on your system,
ensure that the value of PermitRootLogin has not been changed to yes.
If you reset the value, restart the ssh service.
|
Service svc:/network/smtp:sendmail only listens on loopbackruleCheck that sendmail listens in local_only mode. This is also called listens on loopback. See the sendmail(1M) and svccfg(1M) man pages Remediation description:
Set the service to listen in local_only mode.
|
The umask(1) for SMF services is 022ruleFiles that the Service Management Facility (SMF) creates should be created with 644 file permissions. Remediation description:
Set the umask for SMF services to 022.
|
Tune kernel and network parametersgroup
Oracle Solaris is a multithreaded, scalable UNIX
operating system that runs on SPARC and x86 processors.
It is self-adjusting to system load and requires minimal tuning.
Kernel and network variables are tuned to secure values by default.
In some cases, however, tuning is necessary.
In this section, you verify that a TCP/IP kernel variable is still set to its default value, and that you modify network tunables for security reasons. |
| contains 9 rules |
Directed broadcasts are not forwardedruleBy default, Oracle Solaris forwards broadcast packets. To reduce the possibility of broadcast flooding, change the default. Note that you are also disabling broadcast pings. Remediation description:
Directed broadcasts are manged using the ipadm command.
See the ipadm(1M) man page.
|
Responses to ICMP netmask requests are disabledruleTo prevent the dissemination of information about the network topology, disable these responses if they are currently enabled. Remediation description:
Responses to ICMP netmask requests are managed using the ipadm command.
See the ipadm(1M) man page.
|
Responses to ICMP broadcast timestamp requests are disabledruleTo prevent the dissemination of information about the network topology, disable these responses if they are currently enabled. Remediation description:
Responses to ICMP broadcast timestamp requests are managed
using the ipadm command.
See the ipadm(1M) man page.
|
Responses to ICMP timestamp requests are disabledruleThe default value removes additional CPU demands on systems and prevents the dissemination of information about the network. Remediation description:
Responses to ICMP timestamp requests are managed using
the ipadm command.
See the ipadm(1M) man page.
|
Source-routed packets are not forwardedruleTo prevent DOS attacks from spoofed packets, ensure that source-routed packets are not forwarded. The default is not to forward them. Remediation description:
Forwarding of source-routed packets is managed using the ipadm command.
See the ipadm(1M) man page.
|
TCP reverse source routing is disabledruleThe default value prevents packets from bypassing network security measures. Source-routed packets allow the source of the packet to suggest a path different from the path configured on the router. Note - This parameter might be set to 1 for diagnostic purposes. After diagnosis is complete, return the value to 0. Remediation description:
TCP reverse source routing is managed using the ipadm command.
See the ipadm(1M) man page.
|
The maximum number of half-open TCP connections is set to the defaultruleSetting the maximum half-open TCP connections to 4096 per IP address per port helps to defend against SYN flood denial of service attacks. 1024 is the default. Remediation description:
The maximum number of half-open TCP connections is managed
using the ipadm command.
See the ipadm(1M) man page.
|
The maximum number of waiting TCP connections is set to the defaultruleSetting the maximun number of queued incoming connections TCP to at least 1024 can help prevent certain Distributed Denial of Service (DDoS) attacks. The default is 128. Remediation description:
The maximum number of waiting TCP connections is managed
using the ipadm command.
See the ipadm(1M) man page.
|
Strong TCP packet sequence numberingruleEnsure that the TCP initial sequence number generation parameter complies with RFC 6528 (http://www.ietf.org/rfc/rfc6528.txt). Remediation description:
TCP initial sequence number generation parameters are set in the
/etc/default/inetinit file using the TCP_STRONG_ISS parameter
which should be set to 2.
|
Verify user configurationgroup
Each user at a site must have a unique login and ID,
and be assigned a home directory.
User passwords must be as secure as possible,
and their files at creation must be protected
from modification by other users.
User configuration should protect regular users
and prevent or discourage malicious users.
|
| contains 25 rules |
DICTIONBDIR is set to /var/passwdruleDICTIONBDIR in the /etc/default/passwd file points to the /var/passwd dictionary by default. A password dictionary can strengthen users' password selection by preventing the use of common words or letter combinations. The passwd command performs dictionary lookups in the dictionary that DICTIONBDIR indicates. See the passwd(1) man page. Remediation description:
In the /etc/default/passwd file,
set the DICTIONBDIR variable to /var/passwd.
|
Passwords are hashed with a secure algorithmruleThe hash used is determined by values of CRYPT_ALGORITHMS_ALLOW and CRYPT_DEFAULT set in /etc/security/policy.conf file. The value for SHA-256 is "5", and the value for SHA-512 is "6". To confirm properly set, the second field in the /etc/shadow file indicates the algorithm that was used to create the password hash. If the algorithm is set to SHA-256, the entry begins with "$5$" If the algorithm is set to SHA-512, the entry begins with "$6$" See the crypt.conf(4) and policy.conf(4) man pages. Remediation description:
Save the /etc/security/policy.conf file to a new name.
Edit original policy.conf file to accept 5 (and 6 if desired) as values
for allowed algorithms, and 5 (or 6 if desired, and if added as allowed)
as the value for the default algorithm.
Set the password for your users, or set a deadline for password change.
After setting the password, or after the deadline, verify the $5$ or $6$
prefix for the second field of the users' entries in /etc/shadow file.
Once verified, you can safely remove the saved policy.conf file.
|
Passwords allow repeat charactersruleMAXREPEATS in the `/etc/default/passwd file allows users to repeat characters in passwords. The default is 0, which permits repeated characters. Any other value indicates how many characters can be repeated. See the passwd(1) man page. Remediation description:
In the /etc/default/passwd file, set the MAXREPEATS variable to 0.
|
Passwords must have at least 2 alphabetic charactersrule
MINALPHA in the /etc/default/passwd file indicates
the minimum number of alphabetic characters that passwords must contain.
Alphabetic characters provide more values
than numeric or special characters, so allow for more variation.
The default value is 2.
Edit the /etc/default/passwd file, set the MINALPHA parameter to the policy minimum password alphabetic character count, which is 2.
# pfedit /etc/default/passwd
MINALPHA=2
|
Passwords must differ by at least 3 charactersrule
MINDIFF in the /etc/default/passwd file indicates
the minimum number of characters that a password
must differ from the previous value.
Edit the /etc/default/passwd file, set the MINDIFF parameter to the policy minimum password character difference, which is 3.
# pfedit /etc/default/passwd
MINDIFF=3
|
Passwords must have at least 0 lower-case charactersrule
MINLOWER in the /etc/default/passwd file indicates
the minimum number of lower-case characters that a password must have.
Edit the /etc/default/passwd file, set the MINLOWER parameter to the policy minimum password lower-case character count, which is 0.
# pfedit /etc/default/passwd
MINLOWER=0
|
Passwords require at least 1 non-alphabetic charactersrule
MINNONALPHA in the /etc/default/passwd file indicates
the minimum number of non-alphabetic characters
that a password must contain.
Non-alphabetic characters provide
some protection against dictionary-based password attacks.
The default is 0.
Edit the /etc/default/passwd file, set the MINNONALPHA parameter to the policy minimum password non-alphabetic character count, which is 1.
# pfedit /etc/default/passwd
MINNONALPHA=1
|
Passwords must have at least 0 special charactersrule
MINSPECIAL in the /etc/default/passwd file indicates
the minimum number of special characters that a password must have.
Edit the /etc/default/passwd file, set the MINSPECIAL parameter to the policy minimum password special character count, which is 0.
# pfedit /etc/default/passwd
MINSPECIAL=0
|
NAMECHECK for passwords is set to YESruleNAMECHECK in the /etc/default/passwd file indicates whether login names are checked in the files naming service. The default, YES, prevents malicious users from using a login name that is not in a local file. See the passwd(1) man page. Remediation description:
In the /etc/default/passwd file, set the NAMECHECK variable to YES.
|
Passwords must be at least 8 characters longrule
PASSLENGTH in the /etc/default/passwd file indicates
the minimum number of characters that a password must contain.
A longer password length plus a strong password hashing algorithm
provides some protection against password attacks.
Edit the /etc/default/passwd file, set the PASSLENGTH parameter to the policy minimum password length, which is 8.
# pfedit /etc/default/passwd
PASSLENGTH=8
|
Passwords require at least six charactersrulePASSLENGTH in the /etc/default/login file indicates the minimum number of characters that a password must contain. A longer password length plus a strong password hashing algorithm provide some protection against password attacks. The default in Oracle Solaris 11 is 6. This test is deprecated. It is included solely for compatibility with existing tailorings, and is planned to be removed in a future release. Use test OSC-46000 to enforce a minimum password length, and adjust the required length by configuring the value for OSCV-46000. Remediation description:
In the /etc/default/login file, set the PASSLENGTH variable to 6.
|
Passwords allow whitespaceruleWHITESPACE in the /etc/default/login file indicates whether passwords can include the space character. The space character provides some protection against dictionary-based password attacks. The default is YES. See the passwd(1) man page. Remediation description:
In the /etc/default/login file, set the WHITESPACE variable to YES.
|
Role details are unchangedruleOracle Solaris ships with Role Based Access Control (RBAC). This feature enables administrators to delegate specific, limited, additional privileges and authorizations to individual users to administer parts of the system without giving them access to the root account. The provided rights databases should not be changed directly. To add rights to roles, use the roleadd and rolemod commands. These commands add entries to the /etc/user_attr file. See the profiles(1), auths(1), roles(1), rbac(5), roleadd(1M), rolemod(1M), and user_attr(4) man pages. Remediation description:
The files in /etc/user_attr.d/ should not be changed;
changes and additions should be made
using the roleadd(1M), rolemod(1M), profiles(1), auths(1),
and usermod(1M) commands.
|
Logins require passwordsrulePASSREQ in the /etc/default/login file indicates whether logins require passwords. Passwords are required for defense against computer attacks. The default is YES. See the login(1) man page. Remediation description:
In the /etc/default/login file, set the PASSREQ variable to YES.
|
shadow(4) password fields are not emptyruleThe second field in the /etc/shadow file contains passwords. When creating roles, you can easily forget to assign a password. See the shadow(4) and passwd(1) man pages. Remediation description:
Assign a password, or remove the account.
When creating roles, you can easily forget to assign a password.
|
Local users are assigned home directoriesruleUsers need a place to store and create files. A home directory enables a user to place configuration files, such as the .profile file, and ongoing work in a directory that is owned by the user. Remediation description:
Local users should have a local home directory created
automatically when useradd(1M) is run with the correct options.
Run 'useradd -D' to see the default "basedir" home directory location.
See the useradd(1M) man page.
|
root is the only user with UID=0ruleThe UID of 0 has superuser privileges. Only root should have those privileges. Remediation description:
Either remove additional UID=0 accounts
or assign different UIDs to them.
|
All groups specified in /etc/passwd are defined in /etc/groupruleUsers are assigned to at least one group and can be assigned to secondary groups. All groups must be defined in the /etc/group file. Remediation description:
All groups which are assigned to users must be defined in /etc/group.
See the man pages for group(4), groupadd(1M), groupmod(1M),
and groupdel(1M).
|
Home directories for all users existruleUsers need a place to store and create files. A home directory enables a user to place configuration files, such as the .profile file, and ongoing work in a directory that is owned by the user. Remediation description:
Local users should have a local home directory created
automatically when useradd(1M) is run with the correct options.
Run 'useradd -D' to see the default "basedir" home directory location.
See the useradd(1M) man page.
|
Reserved system accounts remain unusedruleAccounts whose ID is 100 or less are system accounts. These accounts should not be replaced or reconfigured. Remediation description:
Users should not be assigned UIDs less than 100
and existing system accounts should not be renamed or renumbered.
Undo any changes that have made involving these accounts.
See the usermod(1M) man page.
|
Find and list duplicate GIDsruleGroups, like users, are unique. Duplicate group IDs must be removed. Remediation description:
When duplicate GIDs are identified,
use groupmod or groupdel to eliminate the duplicates.
See the man pages for group(4), groupadd(1M), groupmod(1M),
and groupdel(1M).
|
Find and list duplicate group namesruleGroups, like users, are unique. Duplicate group names must be removed. Remediation description:
When duplicate group names are identified,
use groupmod or groupdel to eliminate the duplicates.
See the man pages for group(4), groupadd(1M), groupmod(1M),
and groupdel(1M).
|
Find and list duplicate UIDsruleUsers are identified by IDs, which must be unique. Duplicate user IDs must be removed. Remediation description:
When duplicate UIDs are identified,
use usermod or userdel to eliminate the duplicates.
See the man pages for passwd(4), useradd(1M), usermod(1M),
and userdel(1M).
|
Find and list duplicate usernamesruleUsers log in by name, which must be unique. Duplicate user names must be removed. Remediation description:
When duplicate user names are identified,
use usermod or userdel to eliminate the duplicates.
See the man pages for passwd(4), useradd(1M), usermod(1M),
and userdel(1M).
|
Default system accounts are lockedruleOracle Solaris is installed with correctly configured system accounts. These accounts should not be modified. Remediation description:
Certain system accounts, such as aiuser, dladm, etc.
are shipped as "locked" and should remain that way.
Use 'passwd -l' to lock accounts that need to be locked.
|
Check various system configuration itemsgroup |
| contains 7 rules |
The default user UMASK is 022ruleUMASK in the /etc/default/login file indicates the permissions on user files at creation. This value should not allow group or world write. The default value is 022, which allows group and world to read files owned by a user. See the login(1) man page. Remediation description:
In the /etc/default/login file, set the UMASK variable to 022.
|
root access is console-onlyruleThe root account should not be able to log in remotely, and its actions should be monitored. See the login(1) man page. Remediation description:
Ensure that the default value of CONSOLE=/dev/console
has not been changed in the /etc/default/login file.
|
DISABLETIME is set for loginsruleDISABLETIME in the /etc/default/login file is set to 20 by default. Any value greater than zero indicates the seconds before a login prompt appears after RETRIES failed login attempts. This delay can mitigate rapid-fire, brute force attacks on passwords. See the login(1) man page. Remediation description:
In the /etc/default/login file, set the DISABLETIME variable to 20.
|
SLEEPTIME following an invalid login attempt is set to 4ruleSLEEPTIME in the /etc/default/login file is set to 4 by default. This number indicates the number of seconds that elapse before the "login incorrect" message appears after an incorrect password is typed. The maximum number is 5. This delay can mitigate rapid-fire, brute force attacks on passwords. See the login(1) man page. Remediation description:
In the /etc/default/login file, set the SLEEPTIME variable to 4.
|
Address Space Layout Randomization (ASLR) is enabledrule
Oracle Solaris tags many of its userland binaries
to enable Address Space Layout Randomization (ASLR).
ASLR randomizes the starting address of key parts of an address space.
This security defense mechanism can cause
Return Oriented Programming (ROP) attacks to fail
when they try to exploit software vulnerabilities.
See the sxadm(1M) man page.
Restore ASLR to the default configuration.
To manually remediate this failure, perform the following actions:
|
Stacks are non-executablerule
Programs read and write data on the stack.
Typically, they execute from read-only portions of memory
that are specifically designated for code.
Some attacks that cause buffers on the stack to overflow
try to insert new code on the stack and cause the program to execute it.
This security extension removes execute permission from the stack memory,
preventing these attacks from succeeding.
See the sxadm(1M) man page.
To manually remediate this failure, perform the following actions:
|
Heaps are non-executablerulePrograms read and write data on the heap. Typically, they execute from read-only portions of memory that are specifically designated for code. Some attacks that cause buffers on the heap to overflow try to insert new code on the heap and cause the program to execute it. Removing execute permission from the heap memory prevents these attacks from succeeding. Properly written programs may function correctly without using executable heaps, but some older programs may rely on heap execution. Setting model=tagged-files (or default) ensures that unexpected heap execution attempts are prevented and enabling the nxheap log ensures that such attempts are recorded. Remediation description:To manually remediate this failure, perform the following actions:
|
Verify audit configurationgroup
Auditing is the collecting of data
about the use of system resources.
The audit data provides a record of security-related system events.
This data can then be used to assign responsibility for actions
that take place on a host.
|
| contains 1 rule |
Check all default audit propertiesruleCheck all default audit properties |