AIX 6.1 SECURITY TECHNICAL IMPLEMENTATION GUIDE
Version 1 Release |
U_AIX_6 |
The AIX Security Technical Implementation Guide (STIG) is published as a tool to improve the security of Department of Defense (DoD) information systems. Comments or proposed revisions to this document should be sent via email to the following address: disa.letterkenny.FSO.mbx.stig-customer-support-mailbox@mail.mil. |
- All
- Updated 6
- Added 4
- Removed 0
Vulnerabilities (510)
V-850
Any X Windows host must write .Xauthority files.
Discussion
.Xauthority files ensure the user is authorized to access the specific X Windows host. If .Xauthority files are not used, it may be possible to obtain unauthorized access to the X Windows host.
Fix Text
Ensure the X Windows host is configured to write .Xauthority files into user home directories. Edit the Xaccess file. Ensure the line that writes the .Xauthority file is uncommented.
Check Content
Check for .Xauthority files being utilized by looking for such files in the home directory of a user that uses X. Procedure: # cd ~someuser # ls -la .Xauthority If the .Xauthority file does not exist, ask the SA if the user is using X Windows. If the user is utilizing X Windows and the .Xauthority file does not exist, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-904
All local initialization files must be owned by the user or root.
Discussion
Local initialization files are used to configure the user's shell environment upon login. Malicious modification of these files could compromise accounts upon logon.
Fix Text
Change the ownership of the startup and login files in the user's directory to the user or root, as appropriate. Examine each user's home directory and verify all file names beginning with "." are owned by the owner of the directory or root. If they are not, use the chown command to change the owner to the user and research the reasons why the owners were not assigned as required. Procedure: # chown username .filename Document all changes.
Check Content
NOTE: The following commands must be run in the BASH shell. Check the ownership of local initialization files. Procedure (using a shell that supports ~USER as USER's home directory): # cut -d : -f 1 /etc/passwd | xargs -n1 -IUSER sh -c "ls -l ~USER/.[a-z]*" # cut -d : -f 1 /etc/passwd | xargs -n1 -IUSER find ~USER/.dt ! -fstype nfs ! -user USER -exec ls -ld {} \; If local initialization files are not owned by the home directory's user, this is a finding.
Responsibility
System Administrator
V-935
The NFS server must not allow remote root access.
Discussion
If the NFS server allows root access to local file systems from remote hosts, this access could be used to compromise the system.
Fix Text
Edit /etc/exports and remove the root= option for all exports. Re-export the file systems.
Check Content
Determine if the NFS server is exporting with the root access option. Procedure: # exportfs -v | grep "root=" If an export with the root option is found, this is a finding.
Responsibility
System Administrator
IA Controls
EBRP-1
V-941
The system's access control program must log each system access attempt.
Discussion
If access attempts are not logged, then multiple attempts to log on to the system by an unauthorized user may go undetected.
Fix Text
Configure the access restriction program to log every access attempt. Ensure the implementation instructions for TCP_WRAPPERS are followed, so system access attempts are logged into the system log files. If an alternate application is used, it must support this function.
Check Content
Normally, TCPD logs to the mail facility in /etc/syslog.conf. Determine if syslog is configured to log events by TCPD. Procedure: # more /etc/syslog.conf Look for entries similar to the following: mail.debug /var/adm/maillog mail.none /var/adm/maillog mail.* /var/log/mail auth.info /var/log/messages The above entries would indicate mail alerts are being logged. If no entries for mail exist, then TCPD is not logging and this is a finding.
Responsibility
System Administrator
IA Controls
ECAR-2, ECAR-3
The operating system must be a supported release.
Discussion
An operating system release is considered "supported" if the vendor continues to provide security patches for the product. With an unsupported release, it will not be possible to resolve security issues discovered in the system software.
Fix Text
Upgrade to a supported version of the operating system.
Check Content
# oslevel
Vendor- supported versions are 75.13 and later at the time of writing.
AIX 65.13 End of Support:support 30 April 20172012
AIX 5.2 End of support 30 April 2009
AIX 5.1 End of support 1 April 2006
If the release is not supported, this is a finding.
Security Override Guidance
If an extended support agreement providing security patches for the unsupported product is procured from the vendor, this finding may be downgraded to a CAT III.
Responsibility
System Administrator
IA Controls
VIVM-1
Unencrypted FTP must not be used on the system.
Discussion
FTP is typically unencrypted and, therefore, presents confidentiality and integrity risks. FTP may be protected by encryption in certain cases, such as when used in a Kerberos environment. SFTP and FTPS are encrypted alternatives to FTP.
Fix Text
Edit /etc/inetd.conf and comment out or remove the ftp and telnet service linelines.
# vi /etc/inetd.conf
Restart the inetd service.
# refresh -s inetd
Check Content
Determine if unencrypted ftp isor telnet are enabled.
Procedure:
# grep ftp /etc/inetd.conf
# grep telnet /etc/inetd.conf
If theeither serviceof isthese services are found, and isare active, ask the SA if itthey is encrypted. If itthey isare not, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must use and update a DoD-approved virus scan program.
Discussion
Virus scanning software can be used to protect a system from penetration by computer viruses and to limit their spread through intermediate systems. Virus scanning software is available to DoD on the JTF-GNO web site. The virus scanning software should be configured to perform scans dynamically on accessed files. If this capability is not available, the system must be configured to scan, at a minimum, all altered files on the system on a daily basis. If the system processes inbound SMTP mail, the virus scanner must be configured to scan all received mail.
Fix Text
TheInstall operatorMcAfee willcommand ensureline thatvirus anti-scan tool, or an appropriate alternative from https://www.jtfgno.mil.
Ensure the virus softwaresignature definition files are no older than seven (7) days.
Updates are also available from https://www.jtfgno.mil.
Ensure the command line virus scan tool is installedrun andon operatinga regular basis using a utility, such as cron.
Check Content
TheCheck operatorfor willthe ensureexistence thatof anti-virusthe softwareMcAfee iscommand installedline scan tool to be executed daily in the cron file. Additional tools specific for each operating system are also available and operatingwill have to be manually reviewed if installed. IfIn addition, the operatordefinitions file should not be older than seven (7) days.
Check if uvscan is unablescheduled to providerun:
a# documentedgrep configurationuvscan for/var/spool/cron/crontabs/*
anPerform installedthe antifollowing command to ensure the virus definition signature files are not older than seven (7) days.
# ls -la avvclean.dat avvnames.dat avvscan.dat
If a virus softwarescanner systemis not being run daily or ifthe notvirus properlydefinitions usedare older than seven (7) days, this is a finding.
Responsibility
System Administrator
The portmap or rpcbind service must not be running unless needed.
Discussion
The portmap and rpcbind services increase the attack surface of the system and should only be used when needed. The portmap or rpcbind services are used by a variety of services using Remote Procedure Calls (RPCs).
Fix Text
Disable the portmap service from auto starting by commenting out portmap from /etc/rc.tcpip. # vi /etc/rc.tcpip Shutdown the portmap service. # ps -ef | grep portmap # kill <pid of portmap>
Check Content
If the portmap service is required for system operations, this is not a finding. Determine if the portmap service is running. #ps -ef|grep portmap If portmap is running, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The rexec daemon must not be running.
Discussion
The rexecd process provides a typically unencrypted, host-authenticated remote access service. SSH should be used in place of this service.
Fix Text
Edit /etc/inetd.conf and comment out the line for the rexec service. Refresh the inetd daemon. # refresh -s inetd
Check Content
# grep -v "^#" /etc/inetd.conf |grep rexec If any results are returned, this is a finding.
Responsibility
InformationSystem Assurance OfficerAdministrator
IA Controls
ECSC-1
Device files and directories must only be writable by users with a system account or as configured by the vendor.
Discussion
System device files in writable directories could be modified, removed, or used by an unprivileged user to control system hardware.
Fix Text
Remove the world-writable permission from the device file(s). Procedure: # chmod o-w <device file> Document all changes.
Check Content
Find all device files existing anywhere on the system.
Procedure:
# find / -type b -print > devicelist
# find / -type c -print >> devicelist
Check the permissions on the directories above subdirectories containing device files. TheIf followingany list of the device files are intended to be world-writable and if present are not a finding.
/dev/arp
/dev/conslog
/dev/crypto
/dev/dtrace/dtrace
/dev/dtrace/helper
/dev/dtrace/provider/fasttrap
/dev/fd/*
/dev/kstat
/dev/null
/dev/poll
/dev/pool
/dev/ptmx
/dev/sad/user
/dev/tcp
/dev/tcp6
/dev/ticlts
/dev/ticots
/dev/ticotsord
/dev/tty
/dev/udp
/dev/udp6
/dev/zero
/dev/zfs
If any device file or their parent directorydirectories is world-writable, andexcepting itdevice isfiles notspecifically intended to be world-writable, such as /dev/null, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Public directories must be the only world-writable directories and world-writable files must be located only in public directories.
Discussion
World-writable files and directories make it easy for a malicious user to place potentially compromising files on the system. The only authorized public directories are those temporary directories supplied with the system or those designed to be temporary file repositories. The setting is normally reserved for directories used by the system and by users for temporary file storage (e.g., /tmp) and for directories requiring global read/write access.
Fix Text
Remove or change the mode for any world-writable file or directory on the system that is not required to be world-writable. Procedure: # chmod o-w <file/directory> Document all changes.
Check Content
Check the system for world-writable files and directories. Procedure: # find / -perm -2 -a \( -type d -o -type f \) -exec ls -ld {} \; If any world-writable files or directories are located, except those required for proper system or application operation, such as /tmp and /dev/null, this is a finding.
Responsibility
System Administrator
Inetd or xinetd logging/tracing must be enabled.
Discussion
Inetd or xinetd logging and tracing allows the system administrators to observe the IP addresses that are connecting to their machines and to observe what network services are being sought. This provides valuable information when trying to find the source of malicious users and potential malicious users.
Fix Text
Edit the inetd startup script to contain the "-d" parameter for the inetd process. #vi /etc/rc.tcpip # chssys -s inetd -a '-d'
Check Content
Determine if inetd or xinetd has logging or tracing enabled. # ps -ef |grep inetd |grep -e "-d" If no results are returned, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must be configured to only boot from the system boot device.
Discussion
The ability to boot from removable media is the same as being able to boot into single user, or maintenance, mode without a password. This ability could allow a malicious user to boot the system and perform changes that could compromise or damage the system. It could also allow the system to be used for malicious purposes by a malicious anonymous user.
Fix Text
Configure the system to only boot from system startup media. # bootlist -m normal hdisk< x > Set multi-boot to off in the SMS application.
Check Content
Determine if the system is configured to boot from devices other than the system startup media. # bootlist -m normal -o The returned values should be hdisk{x}. If the system is setup to boot from a non-hard disk device, this is a finding. Additionally, ask the SA if the machine is setup for multi-boot in the SMS application. If multi-boot is enabled, the firmware will stop at boot time and request which image to boot from the user. If multi-boot is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not run an Internet Network News (INN) server.
Discussion
Internet Network News (INN) servers access Usenet newsfeeds and store newsgroup articles. INN servers use the Network News Transfer Protocol (NNTP) to transfer information from the Usenet to the server and from the server to authorized remote hosts. If this function is necessary to support a valid mission requirement, its use must be authorized and approved in the system accreditation package.
Fix Text
Disable the INN server.
Check Content
# ps -ef | egrep "innd|nntpd" If an INN server is running, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The Samba Web Administration Tool (SWAT) must be restricted to the local host or require SSL.
Discussion
SWAT is a tool used to configure Samba. As it modifies Samba configuration, which can impact system security, it must be protected from unauthorized access. SWAT authentication may involve the root password, which must be protected by encryption when traversing the network. Restricting access to the local host allows for the use of SSH TCP forwarding, if configured, or administration by a web browser on the local system.
Fix Text
Disable SWAT (e.g., remove the "swat" line from inetd.conf or equivalent, and restart the service) or configure SSL protection for the SWAT service.
Check Content
Check the system for an enabled SWAT service. # grep -i swat /etc/inetd.conf If SWAT is found enabled, it must be utilized with SSL to ensure a secure connection between the client and the server. Ask the SA to identify the method used to provide SSL protection for the SWAT service. Verify (or ask the SA to demonstrate) this configuration is effective by accessing SWAT using an HTTPS connection from a web browser. If SWAT is found enabled and has no SSL protection, this is a finding.
Responsibility
System Administrator
IA Controls
EBRP-1
The /usr/lib/smb.conf file must be owned by root.
Discussion
The /usr/lib/smb.conf file allows access to other machines on the network and grants permissions to certain users. If it is owned by another user, the file may be maliciously modified and the Samba configuration could be compromised.
Fix Text
Change the ownership of the smb.conf file. Procedure: # chown root /usr/lib/smb.conf
Check Content
Check the ownership of the /usr/lib/smb.conf file. Procedure: # ls -l /usr/lib/smb.conf If an smb.conf file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /usr/lib/smb.conf file must have mode 0644 or less permissive.
Discussion
If the smb.conf file has excessive permissions, the file may be maliciously modified and the Samba configuration could be compromised.
Fix Text
Change the mode of the smb.conf file to 0644 or less permissive. Procedure: # chmod 0644 /usr/lib/smb.conf
Check Content
Check the mode of the smb.conf file. Procedure: # ls -lL /usr/lib/smb.conf If the smb.conf has a mode more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /var/private/smbpasswd file must be owned by root.
Discussion
If the smbpasswd file is not owned by root, the smbpasswd file may be maliciously accessed or modified, potentially resulting in the compromise of Samba accounts.
Fix Text
Change the owner of the smbpasswd file to root. # chown root /var/private/smbpasswd
Check Content
Check the ownership of the smbpasswd file. # ls -l /var/private/smbpasswd If an smbpasswd file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The smb.conf file must use the hosts option to restrict access to Samba.
Discussion
Samba increases the attack surface of the system and must be restricted to communicate only with systems requiring access.
Fix Text
Edit the smb.conf file and set the hosts option to permit only authorized hosts to access Samba.
Check Content
Examine the smb.conf file. # more /usr/lib/smb.conf If the hosts option is not present to restrict access to a list of authorized hosts and networks, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
Users must not be able to change passwords more than once every 24 hours.
Discussion
The ability to change passwords frequently facilitates users reusing the same password. This can result in users effectively never changing their passwords. This would be accomplished by users changing their passwords when required and then immediately changing it to the original value.
Fix Text
Use SMIT or the chsec command to set the minimum password age to 1 week. # chsec -f /etc/security/user -s default -a minage=1 # chsec -f /etc/security/user -s <user id> -a minage=1 OR # smitty chuser
Check Content
Check the minage field for each user. # /usr/sbin/lsuser -a minage ALL If the minage field is less than 1 for any user, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
Root passwords must never be passed over a network in clear text form.
Discussion
If a user accesses the root account (or any account) using an unencrypted connection, the password is passed over the network in clear text form and is subject to interception and misuse. This is true even if recommended procedures are followed by logging on to a named account and using the su command to access root.
Fix Text
Install OpenSSH from AIX installation media or AIX Expansion Pack. #smitty installp Enable SSH on the system and use it for all remote connections used to attain root access. Disable direct root login. # chsec -f /etc/security/user -s root -a rlogin=false
Check Content
Determine if root has logged in over an unencrypted network connection. First, determine if root has logged in over a network. Procedure: # last | grep "^root " | egrep -v "reboot|console" | more Next, determine if the SSH daemon is running. Procedure: # ps -ef |grep sshd If root has logged in over the network and SSHD is not running, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
The system must not permit root logins using remote access programs, such as ssh.
Discussion
Even though communications are encrypted, an additional layer of security may be gained by extending the policy of not logging directly on as root. In addition, logging in with a user-specific account preserves the audit trail.
Fix Text
Edit the /etc/ssh/sshd_config file and set the PermitRootLogin option to no and refresh sshd. #kill -1 <pid of sshd>
Check Content
Determine if the SSH daemon is configured to permit root logins. Procedure: # find / -name sshd_config -ls # grep -v "^#" <sshd_config path and file> | grep -i permitrootlogin If the PermitRootLogin entry is not found or is not set to no, this is a finding.
Responsibility
System Administrator
IA Controls
ECPA-1
Audio devices must have mode 0660 or less permissive.
Discussion
Audio and video devices that are globally accessible have proven to be another security hazard. There is software that can activate system microphones and video devices connected to user workstations and/or X terminals. Once the microphone has been activated, it is possible to eavesdrop on otherwise private conversations without the victim being aware of it. This action effectively changes the user's microphone to a bugging device.
Fix Text
Change the mode of audio devices. # chmod o-w <audio device>
Check Content
Check the mode of audio devices. # /usr/sbin/lsdev -C | grep -i audio # ls -lL /dev/*aud0 If the mode of audio devices are more permissive than 0660, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Audio devices must be owned by root.
Discussion
Audio and video devices that are globally accessible have proven to be another security hazard. There is software that can activate system microphones and video devices connected to user workstations and/or X terminals. Once the microphone has been activated, it is possible to eavesdrop on otherwise private conversations without the victim being aware of it. This action effectively changes the user's microphone to a bugging device.
Fix Text
Change the owner of the audio device. # chown root <audio device>
Check Content
Check the owner of audio devices. Procedure: # /usr/sbin/lsdev -C | grep -i audio # ls -lL /dev/*aud0 If the owner of any audio device file is not root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /usr/lib/smb.conf file must be group-owned by bin, sys, or system.
Discussion
If the group-owner of the smb.conf file is not root or a system group, the file may be maliciously modified and the Samba configuration could be compromised.
Fix Text
Change the group owner of the smb.conf file. Procedure: # chgrp system /usr/lib/smb.conf
Check Content
Check the group ownership of the smb.conf file. Procedure: # ls -l /usr/lib/smb.conf If an smb.conf file is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /var/private/smbpasswd file must be group-owned by sys or system.
Discussion
If the smbpasswd file is not group-owned by root, the smbpasswd file may be maliciously accessed or modified, potentially resulting in the compromise of Samba accounts.
Fix Text
Use the chgrp command to change the group owner of the smbpasswd file to system. # chgrp system /var/private/smbpasswd
Check Content
Check smbpasswd ownership. # ls -lL /var/private/smbpasswd If smbpasswd is not group-owned by sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /var/private/smbpasswd file must have mode 0600 or less permissive.
Discussion
If the smbpasswd file has a mode more permissive than 0600, the smbpasswd file may be maliciously accessed or modified, potentially resulting in the compromise of Samba accounts.
Fix Text
Change the mode of the smbpasswd file to 0600. Procedure: # chmod 0600 /var/private/smbpasswd
Check Content
Check smbpasswd mode. Procedure: # ls -lL /var/private/smbpasswd If smbpasswd has a mode more permissive than 0600, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Audio devices must be group-owned by root, sys, bin, or system.
Discussion
Without privileged group owners, audio devices will be vulnerable to being used as eaves-dropping devices by malicious users or intruders to possibly listen to conversations containing sensitive information.
Fix Text
Change the group owner of the audio device. Procedure: # chgrp system <audio device>
Check Content
Check the group owner of audio devices. Procedure: # /usr/sbin/lsdev -C | grep -i audio # ls -lL /dev/*aud0 If the group owner of an audio device is not root, sys, bin, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
A file integrity baseline must be created and maintained.
Discussion
A file integrity baseline is a collection of file metadata which is to evaluate the integrity of the system. A minimal baseline must contain metadata for all device files, setuid files, setgid files, system libraries, system binaries, and system configuration files. The minimal metadata must consist of the mode, owner, group owner, and modification times. For regular files, metadata must also include file size and a cryptographic hash of the file’s contents.
Fix Text
Create a file integrity baseline, including cryptographic hashes, for the system. # find / -depth -print | tee Baseline Open the above file and either manually execute md5sum, csum, or the chksum command on each file. Alternatively, write a script to perform the above. NOTE: For security purposes, "md5sum" is preferred over "chksum". The md5sum command can be loaded from the Linux Tool Kit for AIX. Alternatively, OpenSSL can be used to create hashes. #openssl dgst -md5 < file >
Check Content
Determine if a file integrity baseline, which includes cryptographic hashes, has been created and maintained for the system. If no file integrity baseline exists for the system, this is a finding. If the file integrity baseline contains no cryptographic hashes, this is a finding. If the file integrity baseline is not maintained (has not been updated to be consistent with the latest approved system configuration changes), this is a finding.
Responsibility
System Administrator
IA Controls
DCSW-1
A file integrity tool must be used at least weekly to check for unauthorized file changes, particularly the addition of unauthorized system libraries or binaries, or for unauthorized modification to authorized system libraries or binaries.
Discussion
Changes in system libraries and binaries can indicate compromise or significant system events, such as patching needing to be checked by automated processes and the results reviewed by the SA. NOTE: The frequency may be increased to daily, if necessary, in accordance with the contingency plan.
Fix Text
Create a cron job, scheduled to run weekly or more frequently, to run the file integrity tool to check for unauthorized system libraries or binaries, or unauthorized modification to authorized system libraries or binaries. NOTE: The frequency may be increased to daily, if necessary, in accordance with the contingency plan.
Check Content
Determine if there is a cron job, scheduled to run weekly or more frequently, to run the file integrity tool to check for unauthorized system libraries or binaries, or unauthorized modification to authorized system libraries or binaries. Procedure: # crontab -l If there is no cron job meeting these requirements, this is a finding. NOTE: The frequency may be increased to daily, if necessary, in accordance with the contingency plan.
Responsibility
System Administrator
UIDs reserved for system accounts must not be assigned to non-system accounts.
Discussion
Reserved UIDs are typically used by system software packages. If non-system accounts have UIDs in this range, they may conflict with system software, possibly leading to the user having permissions to modify system files.
Fix Text
Using the usermod command, change the UID numbers for non-system accounts with reserved UIDs (those less or equal to 128). # usermod -u <uid> login Alternatively, smit can be used for this same purpose. #smitty users
Check Content
Check the UID assignments of all accounts. # more /etc/passwd Confirm all accounts with a UID of 128 and below are used by a system account. If a UID reserved for system accounts (0-128) is used by a non-system account, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must require passwords to contain a minimum of 15 characters.
Discussion
The use of longer passwords reduces the ability of attackers to successfully obtain valid passwords using guessing or exhaustive search techniques by increasing the password search space.
Fix Text
Change the minimum password length to 15 or more. # chsec -f /etc/security/user -s default -a minlen=15 # chuser minlen=15 <user id>
Check Content
Check the system password length setting. # /usr/sbin/lsuser -a minlen ALL If minlen is not set to 15 or more, this is a finding.
Responsibility
System Administrator
The system must require that passwords contain at least one special character.
Discussion
To enforce the use of complex passwords, minimum numbers of characters of different classes are mandated. The use of complex passwords reduces the ability of attackers to successfully obtain valid passwords using guessing or exhaustive search techniques. Complexity requirements increase the password search space by requiring users to construct passwords from a larger character set than they may otherwise use.
Fix Text
Use the chsec command to set the minother setting to 1. # chsec -f /etc/security/user -s default -a minother=1 # chuser minother=1 < user id >
Check Content
Check the minother setting. Procedure: # grep minother /etc/security/user OR # lsuser -a minother ALL If the minother setting is less than 1, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
The system must require passwords to contain no more than three consecutive repeating characters.
Discussion
To enforce the use of complex passwords, the number of consecutive repeating characters is limited. Passwords with excessive repeated characters may be more vulnerable to password-guessing attacks.
Fix Text
Use the chsec command to set maxrepeats to 3. # chsec -f /etc/security/user -s default -a maxrepeats=3 # chuser maxrepeats=3 < user id >
Check Content
Check the maxrepeats setting. Procedure: # grep -i maxrepeats /etc/security/user OR # lsuser -a maxrepeats ALL If the maxrepeats setting is greater than 3, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
User passwords must be changed at least every 60 days.
Discussion
Limiting the lifespan of authenticators limits the period of time an unauthorized user has access to the system while using compromised credentials and reduces the period of time available for password-guessing attacks to run against a single password.
Fix Text
Use the chsec command to set the maxage field to 8 for each user. # chsec -f /etc/security/user -s default -a maxage=8 # chuser maxage=8 < user id >
Check Content
Check the maxage field for each user. The field represents the number of weeks a password is valid. Procedure: # /usr/sbin/lsuser -a maxage ALL If the maxage field is 0 or greater than 8 for any user, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
All non-interactive/automated processing account passwords must be changed at least once per year or be locked.
Discussion
Limiting the lifespan of authenticators limits the period of time an unauthorized user has access to the system while using compromised credentials and reduces the period of time available for password-guessing attacks to run against a single password. Locking the password for non-interactive and automated processing accounts is preferred as it removes the possibility of accessing the account by a password. On some systems, locking the passwords of these accounts may prevent the account from functioning properly. Passwords for non-interactive/automated processing accounts must not be used for direct logon to the system.
Fix Text
Implement or establish procedures to change the passwords of automated processing accounts at least once per year. #passwd account
Check Content
NOTE: This will always require a manual review. This is a local policy issue/question. Ask the SA if there are any automated processing accounts on the system. If there are automated processing accounts on the system, ask the SA if the passwords for those automated accounts are changed at least once a year. If the SA indicates passwords for automated processing accounts are not changed once per year, this is a finding. Procedure: Go to last password change date for the system account. # grep -p <account_name> /etc/security/passwd | grep lastupdate To examine the time a password was last changed, the following perl script has been provided. Put the lastupdate value in the <lastupdate>. #perl -e 'use POSIX; print strftime("%c\n" , localtime(<lastupdate>));'
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
The root account must not be used for direct logins.
Discussion
Direct login with the root account prevents individual user accountability. Acceptable non-routine uses of the root account for direct login are limited to emergency maintenance, the use of single-user mode for maintenance, and situations where individual administrator accounts are not available.
Fix Text
Enforce policy requiring all root account access is attained by first logging into a user account and then becoming root (using su, for example).
Check Content
Check if the root is used for direct logins. Procedure: # last root | grep -v reboot If any direct login records for root exist, this is a finding.
Responsibility
System Administrator
IA Controls
ECPA-1
The system must log successful and unsuccessful access to the root account.
Discussion
If successful and unsuccessful logins and logouts are not monitored or recorded, access attempts cannot be tracked. Without this logging, it may be impossible to track unauthorized access to the system.
Fix Text
Troubleshoot the system logging configuration to provide for logging of root account login attempts.
Check Content
Check the following log files to determine if access to the root account is being logged. Try to su - and enter an incorrect password. # more /var/adm/sulog If root login accounts are not being logged, this is a finding.
Responsibility
System Administrator
IA Controls
ECAR-1, ECAR-2, ECAR-3
All global initialization files must have mode 0644 or less permissive.
Discussion
Global initialization files are used to configure the user's shell environment upon login. Malicious modification of these files could compromise accounts upon logon.
Fix Text
Change the mode of the global initialization file(s) to 0444. # chmod 0444 <global initialization file>
Check Content
Check global initialization files permissions: # ls -l /etc/.login /etc/profile /etc/bashrc /etc/environment /etc/security/environ /etc/security/.profile /etc/csh.login /etc/csh.cshrc If global initialization files are more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All global initialization files must be owned by root.
Discussion
Global initialization files are used to configure the user's shell environment upon login. Malicious modification of these files could compromise accounts upon logon. Failure to give ownership of sensitive files or utilities to root or bin provides the designated owner and unauthorized users with the potential to access sensitive information or change the system configuration which could weaken the system's security posture.
Fix Text
Change the ownership of global initialization files with incorrect ownership. Procedure: # chown bin <global initialization files>
Check Content
Check the ownership of global initialization files. Procedure: # ls -lL /etc/.login /etc/profile /etc/bashrc /etc/environment /etc/security/environ /etc/security/.profile /etc/csh.login /etc/csh.cshrc If any global initialization file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All global initialization files must be group-owned by sys, bin, system, or security.
Discussion
Global initialization files are used to configure the user's shell environment upon login. Malicious modification of these files could compromise accounts upon logon. Failure to give ownership of sensitive files or utilities to root or bin provides the designated owner and unauthorized users with the potential to access sensitive information or change the system configuration which could weaken the system's security posture.
Fix Text
Change the group ownership of the global initialization file(s) with incorrect group ownership. Procedure: # chgrp system <global initialization file>
Check Content
Check the group ownership of global initialization files. Procedure: # ls -lL /etc/.login /etc/profile /etc/bashrc /etc/environment /etc/security/environ /etc/security/.profile /etc/csh.login /etc/csh.cshrc If any global initialization file is not group-owned by sys, bin, system, or security, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All skeleton files and directories (typically in /etc/skel) must be owned by root or bin.
Discussion
If the skeleton files are not protected, unauthorized personnel could change user startup parameters and possibly jeopardize user files. Failure to give ownership of sensitive files or utilities to root or bin provides the designated owner and unauthorized users with the potential to access sensitive information or change the system configuration which could weaken the system's security posture.
Fix Text
Change the ownership of skeleton files with incorrect mode. # chown root /etc/security/.profile /etc/security/mkuser.sys
Check Content
Check skeleton files ownership. Procedure: # ls -l /etc/security/.profile /etc/security/mkuser.sys If a skeleton file is not owned by root or bin, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All global initialization files executable search paths must contain only authorized paths.
Discussion
The executable search path (typically the PATH environment variable) contains a list of directories for the shell to search to find executables. If this path includes the current working directory or other relative paths, executables in these directories may be executed instead of system commands. This variable is formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon, two consecutive colons, or a single period, this is interpreted as the current working directory. Paths starting with a slash (/) are absolute paths.
Fix Text
Edit the global initialization file(s) with PATH variables containing relative paths and remove any relative path form the PATH variables that have not been documented with the ISSO. Edit the global initialization file(s) and remove any empty entry that is defined.
Check Content
Check the global initialization files' executable search paths. Procedure: # grep -i PATH /etc/profile /etc/bashrc /etc/csh.login /etc/csh.cshrc /etc/environment /etc/.login /etc/security/environ This variable is formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon, or two consecutive colons, this is a finding. If an entry begins with a character other than a slash (/), or has not been documented with the ISSO, this is a finding.
Responsibility
System Administrator
All local initialization files executable search paths must contain only authorized paths.
Discussion
The executable search path (typically the PATH environment variable) contains a list of directories for the shell to search to find executables. If this path includes the current working directory or other relative paths, executables in these directories may be executed instead of system commands. This variable is formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon, two consecutive colons, or a single period, this is interpreted as the current working directory. Paths starting with a slash (/) are absolute paths.
Fix Text
Edit the local initialization file(s) and remove the relative path entries from the PATH variable that have not been documented with the ISSO. Edit the local initialization file(s) and remove any empty entry that is defined.
Check Content
NOTE: The following must be done in the BASH shell. Examine the PATH variable contained in any user's local initialization files using a command shell that supports the use of ~USER as USER's home directory. # cat /etc/passwd | cut -f 1,1 -d ":" | xargs -n1 -IUSER sh -c 'grep -i PATH ~USER/.*' The PATH variable is a colon-delimited directory list. If there is an empty entry, such as a leading or trailing colon, or two consecutive colons, this is a finding. If an entry begins with a character other than a slash (/), or has not been documented with the ISSO, this is a finding.
Responsibility
System Administrator
The .rhosts, .shosts, hosts.equiv, shosts.equiv, /etc/passwd, /etc/shadow, and/or /etc/group files must not contain a plus (+) without defining entries for NIS+ netgroups or LDAP netgroups.
Discussion
A plus (+) in system accounts files causes the system to lookup the specified entry using NIS or LDAP. If the system is not using NIS or LDAP, no such entries should exist.
Fix Text
Edit the .rhosts, .shosts, hosts.equiv, shosts.equiv, /etc/passwd, /etc/security/passwd, and/or /etc/group files and remove entries containing a plus (+).
Check Content
Check system configuration files for plus (+) entries. Procedure: # find / -name .rhosts # cat /<directorylocation>/.rhosts | grep -v "^#" | grep "\+" # find / -name .shosts # cat /<directorylocation>/.shosts | grep -v "^#" | grep "\+" # find / -name hosts.equiv # cat /<directorylocation>/hosts.equiv | grep -v "^#" | grep "\+" # find / -name shosts.equiv # cat /<directorylocation>/shosts.equiv | grep -v "^#" | grep "\+" # cat /etc/passwd | grep -v "^#" | grep "\+" # cat /etc/security/passwd | grep -v "^#" | grep "\+" # cat /etc/group | grep -v "^#" | grep "\+" If the .rhosts, .shosts, hosts.equiv, shosts.equiv, /etc/passwd, /etc/shadow, and/or /etc/group files contain a plus (+) and do not define entries for NIS+ netgroups or LDAP netgroups, this is a finding.
Responsibility
System Administrator
There must be no .rhosts, .shosts, hosts.equiv, or shosts.equiv files on the system.
Discussion
The .rhosts, .shosts, hosts.equiv, and shosts.equiv files are used to configure host-based authentication for individual users or the system. Host-based authentication is not sufficient for preventing unauthorized access to the system.
Fix Text
Remove the .rhosts, .shosts, hosts.equiv, and/or shosts.equiv files.
Check Content
Check for the existence of the files. # find / -name .rhosts # find / -name .shosts # find / -name hosts.equiv # find / -name shosts.equiv If .rhosts, .shosts, hosts.equiv, or shosts.equiv are found, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
The .rhosts file must not be supported in PAM.
Discussion
The .rhosts files are used to specify a list of hosts permitted remote access to a particular account without authenticating. The use of such a mechanism defeats strong identification and authentication requirements.
Fix Text
Edit /etc/pam.conf and remove the reference(s) to the rhosts_auth module.
Check Content
Check the PAM configuration for rhosts_auth. Procedure: # grep rhosts_auth /etc/pam.conf |grep -v \# If a rhosts_auth entry is found, this is a finding.
Responsibility
Information Assurance Officer
IA Controls
ECCD-1, ECCD-2
All public directories must be group-owned by system or an application group.
Discussion
If a public directory has the sticky bit set and is not group-owned by a system GID, unauthorized users may be able to modify files created by others. The only authorized public directories are those temporary directories supplied with the system or those designed to be temporary file repositories. The setting is normally reserved for directories used by the system and by users for temporary file storage (e.g., /tmp) and for directories requiring global read/write access.
Fix Text
Change the group ownership of the public directory. Procedure: # chgrp system /tmp (Replace system with a different system group and/or /tmp with a different public directory as necessary.)
Check Content
Check the group ownership of public directories. Procedure: # find / -type d -perm -1002 -exec ls -ld {} \; If any public directory is not group-owned by system, sys, bin, or an application group, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Crontabs must be owned by root or the crontab creator.
Discussion
To protect the integrity of scheduled system jobs and prevent malicious modification to these jobs, crontab files must be secured.
Fix Text
Change the crontab owner to root or the crontab creator. # chown root <crontab file>
Check Content
List all crontabs on the system. # ls -lL /var/spool/cron/crontabs/ If any crontab is not owned by root or the creating user, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
Default system accounts (with the exception of root) must not be listed in the cron.allow file or must be included in the cron.deny file, if cron.allow does not exist.
Discussion
To centralize the management of privileged account crontabs, of the default system accounts, only root may have a crontab.
Fix Text
Remove default system accounts (such as bin, sys, adm, or others) from the cron.allow file if it exists, or add those accounts to the cron.deny file.
Check Content
Check the cron.allow and cron.deny files for the system. # more /var/adm/cron/cron.allow # more /var/adm/cron/cron.deny If a default system account (such as bin, sys, adm, or others) is listed in the cron.allow file, or not listed in the cron.deny file if no cron.allow file exists, this is a finding.
Responsibility
System Administrator
IA Controls
ECPA-1
Process core dumps must be disabled unless needed.
Discussion
Process core dumps contain the memory in use by the process when it crashed. Process core dump files can be of significant size and their use can result in file systems filling to capacity, which may result in Denial of Service. Process core dumps can be useful for software debugging.
Fix Text
# chsec -f /etc/security/limits -s default -a core=0
Check Content
# lsuser -a core ALL If any user does not have a value of core = 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
The kernel core dump data directory must be owned by root.
Discussion
Kernel core dumps may contain the full contents of system memory at the time of the crash. As the system memory may contain sensitive information, it must be protected accordingly. If the kernel core dump data directory is not owned by root, the core dumps contained in the directory may be subject to unauthorized access.
Fix Text
Change the owner of the kernel core dump data directory to root. # chown root /var/adm/ras Supplementary Information: The location of the kernel dump area should be moved out of /var/adm/ras. This directory may be world read/writeable. A suggestion would be to create /var/adm/kcore; chown root:sys /var/adm/kcore; chmod 700 /var/adm/kcore. Change where the system copies its kernel core files to. sysdumpdev -d /var/adm/kcore
Check Content
Determine the core file copy location. #sysdumpdev -l | grep -i "core dir" Check the ownership of the kernel core dump data directory. # ls -ld < dump file location > If the kernel core dump data directory is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The system must implement non-executable program stacks.
Discussion
A common type of exploit is the stack buffer overflow. An application receives, from an attacker, more data than it is prepared for and stores this information on its stack, writing beyond the space reserved for it. This can be designed to cause execution of the data written on the stack. One mechanism to mitigate this vulnerability is for the system to not allow the execution of instructions in sections of memory identified as part of the stack.
Fix Text
Change the sed_config setting to disable stack execution for all processes. # chdev -l sys0 -a sed_config=all To assess the impact of updating sed_config, the "all+monitor" setting may be used temporarily. This temporary update does not mitigate the finding. Reboot the system for the new setting to take effect.
Check Content
On 64-bit systems, verify the sed_config (Stack Execution Disable) setting is "all". # lsattr -El sys0 -a sed_config If the second field is not "all", this is a finding. (32-bit systems do not support sed_config. This is a permanent finding on 32-bit AIX systems.)
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not forward IPv4 source-routed packets.
Discussion
Source-routed packets allow the source of the packet to suggest routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the forwarding of source-routed traffic, such as when IPv4 forwarding is enabled and the system is functioning as a router.
Fix Text
# /usr/sbin/no -po "ipsrcrouteforward=0"
Check Content
# /usr/sbin/no -o ipsrcrouteforward If the returned value is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
A separate file system must be used for user home directories (such as /home or equivalent).
Discussion
The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.
Fix Text
Migrate the /home (or equivalent) path onto a separate file system.
Check Content
Determine if the /home path is a separate file system. #df -k /home If /home is not on its own file system, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must log authentication informational data.
Discussion
Monitoring and recording successful and unsuccessful logins assists in tracking unauthorized access to the system.
Fix Text
Edit /etc/syslog.conf and add local log destinations for auth.* or both auth.notice and auth.info.
Check Content
Check /etc/syslog.conf and verify the auth facility is logging both the notice and info level messages by using one of the procedures below. # grep "auth.notice" /etc/syslog.conf # grep "auth.info" /etc/syslog.conf OR # grep 'auth.*' /etc/syslog.conf If auth.* is not found, and either auth.notice or auth.info is not found, this is a finding.
Responsibility
System Administrator
IA Controls
ECAR-2, ECAR-3
Inetd and xinetd must be disabled or removed if no network services utilizing them are enabled.
Discussion
Unnecessary services should be disabled to decrease the attack surface of the system.
Fix Text
Remove or disable the inetd startup scripts and kill the service.
Check Content
First, determine if inetd/xinetd is running. # ps -ef |grep inetd If inetd is not running, this is not a finding. # grep -v "^#" /etc/inetd.conf If no active services are found, yet the inetd daemon is running, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SMTP service HELP command must not be enabled.
Discussion
The HELP command should be disabled to mask version information. The version of the SMTP service software could be used by attackers to target vulnerabilities present in specific software versions.
Fix Text
To disable the SMTP HELP command create an empty Sendmail help file. # > /etc/mail/help
Check Content
Check to see if help is disabled in Sendmail. Procedure: # telnet <host> 25 help If the help command returns any Sendmail version information, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
All FTP users must have a default umask of 077.
Discussion
The umask controls the default access mode assigned to newly created files. An umask of 077 limits new files to mode 700 or less permissive. Although umask is stored as a 4-digit number, the first digit representing special access modes is typically ignored or required to be zero (0).
Fix Text
Add the arguments -u077 to the ftpd on the /etc/inetd.conf and refresh inetd. #vi /etc/inetd.conf #refresh -s inetd Change the umask of the ftp user. #chuser umask=077 ftp
Check Content
Check the umask setting for the "ftp" user. Procedure: # lsuser -a umask ftp If the umask value does not return 077 or 77, this is a finding. Check the default umask that the ftpd daemon is running with # grep ftpd /etc/inetd.conf If there is not a -u077 argument on the ftpd, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
All .Xauthority files must have mode 0600 or less permissive.
Discussion
.Xauthority files ensure the user is authorized to access the specific X Windows host. Excessive permissions may permit unauthorized modification of these files, which could lead to Denial of Service to authorized access or allow unauthorized access to be obtained.
Fix Text
Change the mode of the .Xauthority files. Procedure: # chmod 0600 .Xauthority
Check Content
Check the file permissions for the .Xauthority files in the home directories of users of X. Procedure: # cd ~<X user> # ls -lL .Xauthority If the file mode is more permissive than 0600, this is finding.
Responsibility
System Administrator
IA Controls
ECLP-1
.Xauthority or X*.hosts (or equivalent) file(s) must be used to restrict access to the X server.
Discussion
If access to the X server is not restricted, a user's X session may be compromised.
Fix Text
Create an X*.hosts file, where * is a display number that may be used to limit X window connections. Add the list of authorized X clients to the file.
Check Content
Determine if the X server is running. Procedure: # ps -ef |grep X Determine if xauth is being used. Procedure: # xauth xauth> list If the above command sequence does not show any host other than the localhost, then xauth is not being used. Search the system for an X*.hosts files, where * is a display number that may be used to limit X window connections. If no files are found, X*.hosts files are not being used. If the X*.hosts files contain any unauthorized hosts, this is a finding. If both xauth and X*.hosts files are not being used, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
The .Xauthority utility must only permit access to authorized hosts.
Discussion
If unauthorized clients are permitted access to the X server, a user's X session may be compromised.
Fix Text
Remove unauthorized clients from the xauth configuration. # xauth remove <display name>
Check Content
Check the X Window system access is limited to authorized clients. Procedure: # xauth xauth> list Ask the SA if the clients listed are authorized. If any are not, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
X Window System connections not required must be disabled.
Discussion
If unauthorized clients are permitted access to the X server, the user's X session may be compromised.
Fix Text
Disable the X Windows server on the system. Comment out /etc/rc.dt out of /etc/inittab
Check Content
Determine if the X Window system is running. Procedure: # ps -ef |grep X Ask the SA if the X Window system is an operational requirement. If it is not, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The snmpd.conf file must be owned by root.
Discussion
The snmpd.conf file contains authenticators and must be protected from unauthorized access and modification. If the file is not owned by root, it may be subject to access and modification from unauthorized users.
Fix Text
Change the owner of the snmpd.conf file to bin. Procedure: # chown bin <snmpd.conf file>
Check Content
Determine the owner of the SNMP configuration file. Consult vendor documentation to determine the location and name of the file. Procedure: # find / -name "snmpd*.conf" # ls -lL <snmpd.conf> If the snmpd.conf file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The system must not be used as a syslog server (loghost) for systems external to the enclave.
Discussion
Syslog messages are typically unencrypted and may contain sensitive information and are, therefore, restricted to the enclave.
Fix Text
Configure the hosts outside of the local enclave to not log to this system.
Check Content
NOTE: This will virtually always require a manual review. Ask the SA if the loghost server is collecting data for hosts outside the local enclave. If it is, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The syslog daemon must not accept remote messages unless it is a syslog server documented using site-defined procedures.
Discussion
Unintentionally running a syslog server that accepts remote messages puts the system at increased risk. Malicious syslog messages sent to the server could exploit vulnerabilities in the server software itself, could introduce misleading information in to the system's logs, or could fill the system's storage leading to a Denial of Service.
Fix Text
Change the syslogd arguments in the src subsystem control and restart the syslogd daemon. # chssys -s syslogd -a '-R' # stopsrc -s syslogd # startsrc -s syslogd
Check Content
Verify syslogd is running with the -R option. #ps -ef | grep syslogd | grep -v grep If the -R option is not present, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SSH daemon must be configured for IP filtering.
Discussion
The SSH daemon must be configured for IP filtering to provide a layered defense against connection attempts from unauthorized addresses.
Fix Text
Add appropriate IP restrictions for SSH to the /etc/hosts.deny and/or /etc/hosts.allow files. TCP Wrappers can be installed using SMIT from the AIX expansion pack as fileset netsec.options.tcpwrappers.
Check Content
Check the TCP wrappers configuration files to determine if SSHD is configured to use TCP wrappers. Procedure: # grep sshd /etc/hosts.deny # grep sshd /etc/hosts.allow If no entries are returned, the TCP wrappers are not configured for SSHD and this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
IP forwarding for IPv4 must not be enabled, unless the system is a router.
Discussion
If the system is configured for IP forwarding and is not a designated router, it could be used to bypass network security by providing a path for communication not filtered by network devices.
Fix Text
Disable IPv4 forwarding on the system. #no -p -o ipforwarding=0
Check Content
#no -o ipforwarding If the value returned is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have a public Instant Messaging (IM) client installed.
Discussion
Public Instant Messaging (IM) systems are not approved for use and may result in the unauthorized distribution of information. IM clients provide a way for a user to send a message to one or more other users in real time. Additional capabilities may include file transfer and support for distributed game playing. Communication between clients and associated directory services are managed through messaging servers. Commercial IM clients include AOL Instant Messenger (AIM), MSN Messenger, and Yahoo! Messenger. IM clients present a security issue when the clients route messages through public servers. The obvious implication is potentially sensitive information could be intercepted or altered in the course of transmission. This same issue is associated with the use of public email servers. In order to reduce the potential for disclosure of sensitive Government information and to ensure the validity of official government information, IM clients connecting to public IM services will not be installed. Clients used to access internal or DoD-controlled IM services are permitted.
Fix Text
Uninstall the IM client from the system, or configure the client to only connect to DoD-approved IM services.
Check Content
If an IM client is installed, ask the SA if it has access to any public domain IM servers. If it does have access to public servers, this is a finding.
Responsibility
System Administrator
IA Controls
ECIM-1
The system must not have any peer-to-peer file-sharing application installed.
Discussion
Peer-to-peer file-sharing software can result in the unintentional exfiltration of information. There are also many legal issues associated with these types of utilities including copyright infringement or other intellectual property issues. The ASD Memo "Use of Peer-to-Peer (P2P) File-Sharing Applications across the DoD" states the following: “P2P file-sharing applications are authorized for use on DoD networks with approval by the appropriate Designated Approval Authority (DAA). Documented requirements, security architecture, configuration management process, and a training program for users are all requirements within the approval process. The unauthorized use of application or services, including P2P applications, is prohibited, and such applications or services must be eliminated.” P2P applications include, but are not limited to, the following: -Napster, -Kazaa, -ARES, -Limewire, -IRC Chat Relay, and -BitTorrent.
Fix Text
Uninstall the peer-to-peer file sharing application(s) from the system.
Check Content
Ask the SA if any peer-to-peer file-sharing applications are installed. Some examples of these applications include: - Napster, - Kazaa, - ARES, - Limewire, - IRC Chat Relay, and - BitTorrent. If any of these applications are installed, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
NIS maps must be protected through hard-to-guess domain names.
Discussion
The use of hard-to-guess NIS domain names provides additional protection from unauthorized access to the NIS directory information.
Fix Text
Change the NIS domain name to a value difficult to guess. Consult vendor documentation for the required procedure.
Check Content
Check the domain name for NIS maps. Procedure: # domainname If the name returned is simple to guess, such as the organization name, building, or room name, etc., this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system vulnerability assessment tool, host-based intrusion detection tool, and file integrity tool must notify the SA and the IAO of a security breach or a suspected security breach.
Discussion
Timely notifications of potential security compromises minimize the potential damage. Minimally, the system must log these events and the SA and the IAO will receive the notifications during the daily system log review. If feasible, active alerting (such as email or paging) should be employed consistent with the site’s established operations management systems and procedures.
Fix Text
Configure the security tools on the system to notify the IAO and SA when any security issues are detected.
Check Content
For each security tool on the system, determine if the tool is configured to notify the IAO and SA of any detected security problem. If such notifications are not configured, this is a finding.
Responsibility
Information Assurance Officer
IA Controls
ECAT-1, ECAT-2
The system's access control program must be configured to grant or deny system access to specific hosts.
Discussion
If the system's access control program is not configured with appropriate rules for allowing and denying access to system network resources, services may be accessible to unauthorized hosts.
Fix Text
Edit the /etc/hosts.allow and /etc/hosts.deny files to configure access restrictions.
Check Content
Check for the existence of the /etc/hosts.allow and /etc/hosts.deny files. Procedure: # ls -la /etc/hosts.allow # ls -la /etc/hosts.deny If either file does not exist, this is a finding. Check for the presence of a default deny entry. Procedure: # grep "ALL: ALL" /etc/hosts.deny If the "ALL: ALL" entry is not present in the /etc/hosts.deny file, any TCP service from a host or network not matching other rules will be allowed access. If the entry is not in /etc/hosts.deny, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SYSTEM attribute must not be set to NONE for any account.
Discussion
The SYSTEM attribute in /etc/security/user defines the mechanisms used to authenticate specific user accounts. If the value is set to NONE, other attributes will be used to determine the authentication mechanisms, but if these attributes are not present, no authentication will be performed. To ensure authentication is always used for the system's accounts, the SYSTEM attribute must always be set to a valid setting other than NONE.
Fix Text
Edit /etc/security/user and change any SYSTEM=NONE settings to a valid authentication setting.
Check Content
Examine the /etc/security/user file. # grep SYSTEM /etc/security/user If the line contains SYSTEM=NONE, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
Network analysis tools must not be installed.
Discussion
Network analysis tools allow for the capture of network traffic visible to the system.
Fix Text
Remove the network analysis tool binary from the system. Procedure: # rm /usr/sbin/tcpdump
Check Content
Determine if any network analysis tools are installed. Procedure: # find / -name ethereal # find / -name wireshark # find / -name tshark # find / -name netcat # find / -name tcpdump # find / -name snoop If any network analysis tools are found, this is a finding. Additional Information: The binary tcpdump is provided in the bos.net.tcp.server fileset and this fileset cannot be uninstalled.
Responsibility
System Administrator
IA Controls
DCPA-1
The system clock must be synchronized continuously, or at least daily.
Discussion
A synchronized system clock is critical for the enforcement of time-based policies and the correlation of logs and audit records with other systems. Internal system clocks tend to drift and require periodic resynchronization to ensure their accuracy. Software, such as ntpd, can be used to continuously synchronize the system clock with authoritative sources. Alternatively, the system may be synchronized periodically, with a maximum of one day between synchronizations. If the system is completely isolated (no connections to networks or other systems), time synchronization is not required as no correlation of events or operation of time-dependent protocols between systems will be necessary. If the system is completely isolated, this requirement is not applicable.
Fix Text
Enable the NTP daemon for continuous synchronization. Edit /etc/rc.tcpip and enable xntpd daemon. Edit /etc/ntp.conf and add the ntp server entry. # startsrc -s xntpd OR Add a daily or more frequent cronjob to perform synchronization using ntpdate. NOTE: While it is possible to run ntpdate from a cron script, it is important to mention that ntpdate with contrived cron scripts is no substitute for the NTP daemon, which uses sophisticated algorithms to maximize accuracy and reliability while minimizing resource use. Finally, since ntpdate polling does not discipline the host clock frequency as does xntpd, the accuracy using ntpdate is limited. The process of passively listening for NTP broadcasts (i.e., placing the line broadcastclient yes in the /etc/ntp.conf file) is preferred over any procedural form of direct server polling for a large network with many nodes needing to be time synchronized. This method is preferred because it significantly reduces the network traffic load related to NTP.
Check Content
Check the root crontab for ntpdate jobs running at least daily. # crontab -l | grep ntpdate Columns 3, 4, and 5 must be an asterisk (*) for the job to be run daily. If this job exists, this is not a finding. OR Verify the auto-startup of xntpd in /etc/rc.tcpip. # cat /etc/rc.tcpip | grep -v "^#" Check the system for a running NTP daemon, which is the preferred method. # ps -ef | grep ntp If an (x)ntpd process exists, this is not a finding. Otherwise, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must use at least two time sources for clock synchronization.
Discussion
A synchronized system clock is critical for the enforcement of time-based policies and the correlation of logs and audit records with other systems. For redundancy, two time sources are required so synchronization continues to function if one source fails. If the system is completely isolated (no connections to networks or other systems), time synchronization is not required as no correlation of events or operation of time-dependent protocols between systems will be necessary. If the system is completely isolated, this requirement is not applicable. NOTE: For the Network Time Protocol (NTP), the requirement is two servers, but it is recommended to configure at least four distinct time servers which allow NTP to effectively exclude a time source not consistent with the others. The system's local clock must be excluded from the count of time sources.
Fix Text
If auto-starting xntpd, add (when necessary) the correct number of (at least two) external servers to the /etc/ntp.conf file. If using ntpdate, add additional NTP servers (at least two are required) to the cron job running ntpdate.
Check Content
Check the system for a running NTP daemon. # ps -ef | grep ntp Verify the auto-startup of xntpd in /etc/rc.tcpip. # cat /etc/rc.tcpip | grep -v "^#" Verify at least two external NTP servers are listed in the /etc/ntp.conf file. # cat /etc/ntp.conf | grep -v "^#" | grep -i server | egrep -v "127.127.1.1|127.127.1.0" If xntpd is not invoked with at least two external NTP servers listed (127.127.1.0 or 127.127.1.1 are local clock references and therefore not allowed), this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must use time sources local to the enclave.
Discussion
A synchronized system clock is critical for the enforcement of time-based policies and the correlation of logs and audit records with other systems. The network architecture should provide multiple time servers within an enclave providing local service to the enclave and synchronize with time sources outside of the enclave. If this server is an enclave time server, this requirement is not applicable. If the system is completely isolated (no connections to networks or other systems), time synchronization is not required as no correlation of events or operation of time-dependent protocols between systems will be necessary. If the system is completely isolated, this requirement is not applicable.
Fix Text
If using ntpdate, remove NTP servers external to the enclave from the cron job running ntpdate. If using the NTP daemon, remove the server line from ntp.conf for each NTP server external to the enclave.
Check Content
Check the root crontab for ntpdate entries. # crontab -l | grep ntpdate If the ntpdate command is invoked with NTP servers outside of the enclave, this is a finding. Check the NTP daemon configuration. # grep '^server' ntp.conf If an NTP server is listed outside of the enclave, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The time synchronization configuration file (such as /etc/ntp.conf) must be owned by root.
Discussion
A synchronized system clock is critical for the enforcement of time-based policies and the correlation of logs and audit records with other systems. If an illicit time source is used for synchronization, the integrity of system logs and the security of the system could be compromised. If the configuration files controlling time synchronization are not owned by a system account, unauthorized modifications could result in the failure of time synchronization.
Fix Text
Change the owner of the ntp.conf file. # chown root ntp.conf
Check Content
Determine the owner of the ntp.conf file. # ls -l /etc/ntp.conf If the owner is not root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The time synchronization configuration file (such as /etc/ntp.conf) must be group-owned by bin, sys, or system.
Discussion
A synchronized system clock is critical for the enforcement of time-based policies and the correlation of logs and audit records with other systems. If an illicit time source is used for synchronization, the integrity of system logs and the security of the system could be compromised. If the configuration files controlling time synchronization are not owned by a system group, unauthorized modifications could result in the failure of time synchronization.
Fix Text
Change the group owner of the NTP configuration file. Procedure: # chgrp system /etc/ntp.conf
Check Content
Check the group ownership of the NTP configuration file. Procedure: # ls -lL /etc/ntp.conf If the group owner is not bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The time synchronization configuration file (such as /etc/ntp.conf) must have mode 0640 or less permissive.
Discussion
A synchronized system clock is critical for the enforcement of time-based policies and the correlation of logs and audit records with other systems. If an illicit time source is used for synchronization, the integrity of system logs and the security of the system could be compromised. If the configuration files controlling time synchronization are not protected, unauthorized modifications could result in the failure of time synchronization.
Fix Text
Change the mode of the ntp.conf file to 0640 or less permissive. # chmod 0640 /etc/ntp.conf
Check Content
Determine the mode of the ntp.conf file. # ls -l /etc/ntp.conf If the mode is more permissive than 0640, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The time synchronization configuration file (such as /etc/ntp.conf) must not have an extended ACL.
Discussion
A synchronized system clock is critical for the enforcement of time-based policies and the correlation of logs and audit records with other systems. If an illicit time source is used for synchronization, the integrity of system logs and the security of the system could be compromised. If the configuration files controlling time synchronization are not protected, unauthorized modifications could result in the failure of time synchronization.
Fix Text
Remove the extended ACL from the ntp.conf file. #acledit /etc/ntp.conf
Check Content
Check for an extended ACL on the NTP configuration file. # aclget /etc/ntp.conf If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The system must limit users to 10 simultaneous system logins, or a site-defined number, in accordance with operational requirements.
Discussion
Limiting simultaneous user logins can insulate the system from Denial of Service problems caused by excessive logins. Automated login processes operating improperly or maliciously may result in an exceptional number of simultaneous login sessions. If the defined value of 10 logins does not meet operational requirements, the site may define the permitted number of simultaneous login sessions based on operational requirements. This limit is for the number of simultaneous login sessions for EACH user account. This is NOT a limit on the total number of simultaneous login sessions on the system.
Fix Text
Configure the system to limit the number of simultaneous logins for user accounts with the chsec command. # chsec -f /etc/security/user -s default -a maxulogs=10 # chsec -f /etc/security/user –s [user] -a maxulogs=10
Check Content
#grep maxulogs /etc/security/user | grep -v \* If no values are returned, or any value returned is not between 1 and 10, this is a finding.
Responsibility
System Administrator
The system must display the date and time of the last successful account login upon login.
Discussion
Providing users with feedback on when account accesses last occurred facilitates user recognition and reporting of unauthorized account use.
Fix Text
Configure the system to display the date and time of the last successful login upon logging in. Consult OS documentation for the configuration procedure. Enable PrintLastLog in the SSH daemon. To enable PrintLastLog in the SSH daemon, remove any comment disabling this option from /etc/ssh/sshd_config. The line should look like: "PrintLastLog yes". Restart sshd. # kill -1 <PID of sshd>
Check Content
Determine if the system displays the date and time of the last successful login upon logging in. This can be accomplished by logging into the system and verifying whether or not the necessary information is displayed. If the system does not provide this information upon login, this is a finding. Verify the SSH daemon is configured to display last login information. # cat /etc/ssh/sshd_config | grep -i PrintLastLog If PrintLastLog is disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must display a publicly-viewable pattern during a graphical desktop environment session lock.
Discussion
To protect the on-screen content of a session, it must be replaced with a publicly-viewable pattern upon session lock. Examples of publicly viewable patterns include screen saver patterns, photographic images, solid colors, or a blank screen, so long as none of those patterns convey sensitive information. This requirement applies to graphical desktop environments provided by the system to locally attached displays and input devices, as well as, to graphical desktop environments provided to remote systems using remote access protocols.
Fix Text
Configure the system to display a publicly-viewable pattern during a session lock.
Check Content
Determine if a publicly-viewable pattern is displayed during a session lock. If the session lock pattern is not publicly-viewable, this is a finding.
Responsibility
System Administrator
IA Controls
PESL-1
The system must enforce the entire password during authentication.
Discussion
Some common password hashing schemes only process the first eight characters of a user's password, which reduces the effective strength of the password.
Fix Text
Configure the system to enforce the correctness of the entire password during authentication. Configure the system to use sha password hashing. #chsec -f /etc/security/login.cfg -s usw -a pwd_algorithm=ssha256
Check Content
Verify no password hashes in /etc/passwd. # cat /etc/passwd | cut -f2,2 -d":" If there are password hashes present, this is a finding. Verify no password hashes in the /etc/security/passwd file begin with the characters other than {ssha256} or {ssha512} #cat /etc/security/passwd | grep password If there are password hashes that do not begin with {ssha256} or {ssha512}, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
The system must use a FIPS 140-2 approved cryptographic hashing algorithm for generating account password hashes.
Discussion
Systems must employ cryptographic hashes for passwords using the SHA-2 family of algorithms or FIPS 140-2 approved successors. The use of unapproved algorithms may result in weak password hashes that are more vulnerable to compromise.
Fix Text
Configure the system to use a FIPS 140-2 approved cryptographic hash algorithm for creating password hashes. # chsec -f /etc/security/login.cfg -s usw -a pwd_algorithm=ssha256
Check Content
Determine if the system creates password hashes using a FIPS 140-2 approved cryptographic hashing algorithm by verifying the value of pwd_algorithm in /etc/security/login.cfg. # grep pwd_algorithm /etc/security/login.cfg If the system is not configured to generate password hashes using a FIPS 140-2 approved algorithm, such as SHA256 or a successor, this is a finding.
Responsibility
System Administrator
IA Controls
DCNR-1, IAIA-1, IAIA-2
The password hashes stored on the system must have been generated using a FIPS 140-2 approved cryptographic hashing algorithm.
Discussion
Systems must employ cryptographic hashes for passwords using the SHA-2 family of algorithms or FIPS 140-2 approved successors. The use of unapproved algorithms may result in weak password hashes that are more vulnerable to compromise.
Fix Text
Change the passwords for all accounts using non-compliant password hashes. # passwd account OR # smitty passwd (This requires that GEN000590 is already met.)
Check Content
Verify no password hashes in /etc/passwd. # cat /etc/passwd | cut -f2,2 -d":" If there are password hashes present, this is a finding. Verify all password hashes in /etc/security/passwd begin with {ssha256} or {ssha512}. Procedure: # cat /etc/passwd | cut -f2,2 -d ":" # cat /etc/security/passwd | grep password If any password hashes are present not beginning with {ssha256} or {ssha512}, this is a finding.
Responsibility
System Administrator
IA Controls
DCNR-1, IAIA-1, IAIA-2
The system must require at least eight characters be changed between the old and new passwords during a password change.
Discussion
To ensure password changes are effective in their goals, the system must ensure old and new passwords have significant differences. Without significant changes, new passwords may be easily guessed based on the value of a previously compromised password.
Fix Text
Use the chsec command to change mindiff to 8. # chsec -f /etc/security/user -s default -a mindiff=8 # chuser mindiff=8 < user id >
Check Content
Check the value of the mindiff parameter. Procedure: #lsuser -a mindiff ALL If any user's mindiff is less than 8, this is a finding.
Responsibility
System Administrator
The system must prevent the use of dictionary words for passwords.
Discussion
An easily guessable password provides an open door to any external or internal malicious intruder. Many computer compromises occur as the result of account name and password guessing. This is generally done by someone with an automated script using repeated logon attempts until the correct account and password pair is guessed. Utilities, such as cracklib, can be used to validate that passwords are not dictionary words and meet other criteria during password changes.
Fix Text
Install the default dictionary of words from the 'bos.data' fileset with smitty or installp. # smitty installp #installp bos.data Customize or modify the dictionary in /usr/share/dict/words as necessary. #vi /usr/share/dict/words Add a dictionary list to /etc/security/user file with the chsec command. #chsec -f /etc/security/user -s default -a dictionlist=/usr/share/dict/words
Check Content
Procedure: #lsuser -a dictionlist ALL If the dictionlist is blank or not listed, the system is not checking against a dictionary of words that are not to be used for passwords. This is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
The system must restrict the ability to switch to the root user to members of a defined group.
Discussion
Configuring a supplemental group for users permitted to switch to the root user prevents unauthorized users from accessing the root account, even with knowledge of the root credentials.
Fix Text
Use the chsec command to only allow users in the adm group to su to root. #chsec -f /etc/security/user -s root -a sugroups=adm
Check Content
Examine the sugroups of the root user. Generally only users in the adm group should have su to root capacity. Procedure: #lsuser -a sugroups root If this is blank or ALL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The root account's home directory must not have an extended ACL.
Discussion
File system extended ACLs provide access to files beyond what is allowed by the mode numbers of the files.
Fix Text
Remove the extended ACL from the root account's home directory. #acledit ~root Change extended attributes to disabled.
Check Content
Verify the root account's home directory has no extended ACL. Procedure: # aclget ~root If extended permissions are enabled, the directory has an extended ACL, and this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The root account's library search path must be the system default and must contain only absolute paths.
Discussion
The library search path environment variable(s) contains a list of directories for the dynamic linker to search to find libraries. If this path includes the current working directory or other relative paths, libraries in these directories may be loaded instead of system libraries. This variable is formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon or two consecutive colons, this is interpreted as the current working directory. Entries starting with a slash (/) are absolute paths.
Fix Text
Edit the root user's initialization files and remove any definition of LD_LIBRARY_PATH and LIBPATH.
Check Content
Verify the LIBPATH and LD_LIBRARY_PATH variables are empty or not defined for the root user. # echo $LD_LIBRARY_PATH # echo $LIBPATH If a path list is returned, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The root account's list of preloaded libraries must be empty.
Discussion
The library preload list environment variable contains a list of libraries for the dynamic linker to load before loading the libraries required by the binary. If this list contains paths to libraries relative to the current working directory, unintended libraries may be preloaded. This variable is formatted as a space-separated list of libraries. Paths starting with (/) are absolute paths.
Fix Text
Edit the root user's initialization files and remove any definition of LDR_PRELOAD.
Check Content
Verify the LDR_PRELOAD environment variable is empty or not defined for the root user. # env | grep LDR_PRELOAD If a path is returned, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
All files and directories must have a valid group owner.
Discussion
Files without a valid group owner may be unintentionally inherited if a group is assigned the same GID as the GID of the files without a valid group owner.
Fix Text
Change the group owner for each file without a valid group owner. # chgrp <a-valid-group> /tmp/a-file-without-a-valid-group-owner
Check Content
Determine if any file on the system does not have a valid group owner. # find / -nogroup -print If any such files are found, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
All network services daemon files must not have extended ACLs.
Discussion
Restricting permission on daemons will protect them from unauthorized modification and possible system compromise.
Fix Text
Remove the extended ACL(s) from the network service daemon file(s). #acledit < directory >/< network service daemon > Disable extended permissions.
Check Content
Verify network services daemon files have no extended ACLs. # aclget <directory>/<network service daemon> NOTE: Network daemons that may not reside in these directories (such as httpd or sshd) must also be checked for extended ACLs. If any of the service daemons have extended attributes enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All system command files must not have extended ACLs.
Discussion
Restricting permissions will protect system command files from unauthorized modification. System command files include files present in directories used by the operating system for storing default system executables and files present in directories included in the system's default executable search paths.
Fix Text
Remove the extended ACL(s) from the system command file(s) and set the extended permissions to disabled. #acledit < command path >/< command file>
Check Content
Verify all system command files have no extended ACLs. # aclget /etc # aclget /bin # aclget /usr/bin # aclget /usr/lbin # aclget /usr/ucb # aclget /sbin # aclget /usr/sbin If any of the command files have extended permissions enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
System log files must not have extended ACLs, except as needed to support authorized software.
Discussion
If the system log files are not protected, unauthorized users could change the logged data, eliminating its forensic value. Authorized software may be given log file access through the use of extended ACLs when needed and configured to provide the least privileges required.
Fix Text
Remove the extended ACL(s) from the system log file(s) and disable extended permissions. # acledit < directory >/< file>
Check Content
Determine if any system log file has an extended ACL. If an extended ACL exists, verify with the SA if the ACL is required to support authorized software and provides the minimum necessary permissions. If an extended ACL exists that provides access beyond the needs of authorized software, this is a finding. Check to see if extended permissions are disabled. #aclget <directory>/<file>
Responsibility
System Administrator
IA Controls
ECLP-1, ECTP-1
All manual page files must not have extended ACLs.
Discussion
If manual pages are compromised, misleading information could be inserted, causing actions that may compromise the system.
Fix Text
Remove the extended ACLs from system manual page file(s) and disable extended permissions. #acledit < directory >/< file >
Check Content
Determine if any manual page files on the system have extended ACLs. Check to see if extended permissions are disabled. #aclget < directory >/< file > If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All library files must not have extended ACLs.
Discussion
Unauthorized access could destroy the integrity of the library files.
Fix Text
Remove the extended ACL(s) from the system library file(s) and disable extended permissions. #acledit < directory >/< file >
Check Content
Determine if any system library file has an extended ACL. If so, this is a finding. Check to see if extended permissions are disabled. If extended permissions are not disabled, this is a finding. #aclget < directory >/< file >
Responsibility
System Administrator
IA Controls
ECLP-1
NIS/NIS+/yp command files must not have extended ACLs.
Discussion
NIS/NIS+/yp files are part of the system's identification and authentication processes and are, therefore, critical to system security. ACLs on these files could result in unauthorized modification, which could compromise these processes and the system.
Fix Text
Remove the extended ACL from the NS/NIS+/yp command file(s) and disable extended permissions. #acledit < directory >/< file >
Check Content
Determine if any NIS/NIS+/yp command files have an extended ACL. Check if extended permissions are disabled. Procedure: # aclget /var/nis # aclget /var/yp If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/resolv.conf file must be owned by root.
Discussion
The resolv.conf (or equivalent) file configures the system's DNS resolver. DNS is used to resolve host names to IP addresses. If DNS configuration is modified maliciously, host name resolution may fail or return incorrect information. DNS may be used by a variety of system security functions, such as time synchronization, centralized authentication, and remote system logging.
Fix Text
Change the owner of the /etc/resolv.conf file to root. # chown root /etc/resolv.conf
Check Content
Verify the /etc/resolv.conf file is owned by root. Procedure: # ls -l /etc/resolv.conf If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/resolv.conf file must be group-owned by bin, sys, or system.
Discussion
The resolv.conf (or equivalent) file configures the system's DNS resolver. DNS is used to resolve host names to IP addresses. If DNS configuration is modified maliciously, host name resolution may fail or return incorrect information. DNS may be used by a variety of system security functions, such as time synchronization, centralized authentication, and remote system logging.
Fix Text
Change the group owner of the /etc/resolv.conf file to bin, sys, or system. Procedure: # chgrp system /etc/resolv.conf
Check Content
Check the group ownership of the resolv.conf file. Procedure: # ls -lL /etc/resolv.conf If the file is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/resolv.conf file must have mode 0644 or less permissive.
Discussion
The resolv.conf (or equivalent) file configures the system's DNS resolver. DNS is used to resolve host names to IP addresses. If DNS configuration is modified maliciously, host name resolution may fail or return incorrect information. DNS may be used by a variety of system security functions, such as time synchronization, centralized authentication, and remote system logging.
Fix Text
Change the mode of the /etc/resolv.conf file to 0644 or less permissive. # chmod 0644 /etc/resolv.conf
Check Content
Check the mode of the /etc/resolv.conf file. Procedure: # ls -l /etc/resolv.conf If the file mode is more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/resolv.conf file must not have an extended ACL.
Discussion
The resolv.conf (or equivalent) file configures the system's DNS resolver. DNS is used to resolve host names to IP addresses. If DNS configuration is modified maliciously, host name resolution may fail or return incorrect information. DNS may be used by a variety of system security functions such as time synchronization, centralized authentication, and remote system logging.
Fix Text
Remove the extended ACL from /etc/resolv.conf file and disable extended permissions. #acledit /etc/resolv.conf
Check Content
Verify /etc/resolv.conf has no extended ACL. Check if extended permissions are disabled. Procedure: #aclget /etc/resolv.conf If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/hosts file must be owned by root.
Discussion
The /etc/hosts file (or equivalent) configures local host name to IP address mappings that typically take precedence over DNS resolution. If this file is maliciously modified, it could cause the failure or compromise of security functions requiring name resolution, which may include time synchronization, centralized authentication, and remote system logging.
Fix Text
Change the owner of the /etc/hosts file to root. # chown root /etc/hosts
Check Content
Verify the /etc/hosts file is owned by root. Procedure: # ls -lL /etc/hosts If the file is not owned by root, this is a finding.
Responsibility
System Administrator
The /etc/hosts file must be group-owned by bin, sys, or system.
Discussion
The /etc/hosts file (or equivalent) configures local host name to IP address mappings that typically take precedence over DNS resolution. If this file is maliciously modified, it could cause the failure or compromise of security functions requiring name resolution, which may include time synchronization, centralized authentication, and remote system logging.
Fix Text
Change the group owner of the /etc/hosts file to sys, bin, or system. Procedure: # chgrp system /etc/hosts
Check Content
Check the /etc/hosts file's group ownership. Procedure: # ls -lL /etc/hosts If the file is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/hosts file must have mode 0644 or less permissive.
Discussion
The /etc/hosts file (or equivalent) configures local host name to IP address mappings that typically take precedence over DNS resolution. If this file is maliciously modified, it could cause the failure or compromise of security functions requiring name resolution, which may include time synchronization, centralized authentication, and remote system logging.
Fix Text
Change the mode of the /etc/hosts file to 0644 or less permissive. # chmod 0644 /etc/hosts
Check Content
Check the mode of the /etc/hosts file. Procedure: # ls -l /etc/hosts If the file mode is more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/hosts file must not have an extended ACL.
Discussion
The /etc/hosts file (or equivalent) configures local host name to IP address mappings that typically take precedence over DNS resolution. If this file is maliciously modified, it could cause the failure or compromise of security functions requiring name resolution, which may include time synchronization, centralized authentication, and remote system logging.
Fix Text
Remove the extended ACL from the /etc/hosts file and disable extended permissions. #acledit /etc/hosts
Check Content
Verify /etc/hosts has no extended ACL. Check to see if extended permissions are disabled. Procedure: #aclget /etc/hosts If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/nsswitch.conf file must be owned by root.
Discussion
The nsswitch.conf file (or equivalent) configures the source of a variety of system security information including account, group, and host lookups. Malicious changes could prevent the system from functioning or compromise system security.
Fix Text
Change the owner of the /etc/nsswitch.conf file to root. # chown root /etc/nsswitch.conf
Check Content
Verify the /etc/nsswitch.conf file is owned by root. AIX does not use the /etc/nsswitch.conf file. This check is not applicable. Procedure: # ls -l /etc/nsswitch.conf If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/nsswitch.conf file must be group-owned by root, bin, sys, or system.
Discussion
The nsswitch.conf file (or equivalent) configures the source of a variety of system security information including account, group, and host lookups. Malicious changes could prevent the system from functioning or compromise system security.
Fix Text
Change the group owner of the /etc/nsswitch.conf file to root, bin, sys, or system. Procedure: # chgrp system /etc/nsswitch.conf
Check Content
Check the group ownership of the nsswitch.conf file. AIX does not use the /etc/nsswitch.conf file. This check is not applicable. Procedure: # ls -lL /etc/nsswitch.conf If the file is not group-owned by root, bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/nsswitch.conf file must have mode 0644 or less permissive.
Discussion
The nsswitch.conf file (or equivalent) configures the source of a variety of system security information including account, group, and host lookups. Malicious changes could prevent the system from functioning or compromise system security.
Fix Text
Change the mode of the /etc/nsswitch.conf file to 0644 or less permissive. # chmod 0644 /etc/nsswitch.conf
Check Content
Check the mode of the /etc/nsswitch.conf file. AIX does not use the /etc/nsswitch.conf file. This check is not applicable. Procedure: # ls -l /etc/nsswitch.conf If the file mode is more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/nsswitch.conf file must not have an extended ACL.
Discussion
The nsswitch.conf file (or equivalent) configures the source of a variety of system security information including account, group, and host lookups. Malicious changes could prevent the system from functioning or compromise system security.
Fix Text
Remove the extended ACL from the /etc/nsswitch.conf file. # acledit /etc/nsswitch.conf
Check Content
Verify /etc/nsswitch.conf has no extended ACL. AIX does not use the /etc/nsswitch.conf file. This check is not applicable. Procedure: # aclget /etc/nsswitch.conf If extended permissions are enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/passwd file must be owned by root.
Discussion
The /etc/passwd file contains the list of local system accounts. It is vital to system security and must be protected from unauthorized modification.
Fix Text
Change the owner of the /etc/passwd file to root. # chown root /etc/passwd
Check Content
Verify the /etc/passwd file is owned by root. Procedure: # ls -l /etc/passwd If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/passwd file must be group-owned by bin, security, sys, or system.
Discussion
The /etc/passwd file contains the list of local system accounts. It is vital to system security and must be protected from unauthorized modification.
Fix Text
Change the group owner of the /etc/passwd file to security, bin, sys, or system. Procedure: # chgrp security /etc/passwd
Check Content
Check the group ownership of the password file. Procedure: # ls -lL /etc/passwd If the file is not group-owned by security, bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/passwd file must not have an extended ACL.
Discussion
File system ACLs can provide access to files beyond what is allowed by the mode numbers of the files. The /etc/passwd file contains the list of local system accounts. It is vital to system security and must be protected from unauthorized modification.
Fix Text
Remove the extended ACL from the /etc/passwd file and disable extended permissions. #acledit /etc/passwd
Check Content
Verify the /etc/passwd file has no extended ACL. Procedure: #aclget /etc/passwd Check to see if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/group file must be owned by root.
Discussion
The /etc/group file is critical to system security and must be owned by a privileged user. The group file contains a list of system groups and associated information.
Fix Text
Change the owner of the /etc/group file to root. # chown root /etc/group
Check Content
Verify the /etc/group file is owned by root. Procedure: # ls -l /etc/group If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/group file must be group-owned by security, bin, sys, or system.
Discussion
The /etc/group file is critical to system security and must be protected from unauthorized modification. The group file contains a list of system groups and associated information.
Fix Text
Change the group owner of the /etc/group file to security, bin, sys, or system. # chgrp security /etc/group
Check Content
Check the group ownership of the /etc/group file. Procedure: # ls -lL /etc/group If the file is not group-owned by security, bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/group file must have mode 0644 or less permissive.
Discussion
The /etc/group file is critical to system security and must be protected from unauthorized modification. The group file contains a list of system groups and associated information.
Fix Text
Change the mode of the /etc/group file to 0644 or less permissive. # chmod 0644 /etc/group
Check Content
Check the mode of the /etc/group file. Procedure: # ls -l /etc/group If the file mode is more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/group file must not have an extended ACL.
Discussion
The /etc/group file is critical to system security and must be protected from unauthorized modification. The group file contains a list of system groups and associated information.
Fix Text
Remove the extended ACL from the /etc/group file and disable extended permissions. #acledit /etc/group
Check Content
Verify the /etc/group file has no extended ACL. Procedure: #aclget /etc/group Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/security/passwd file must be group-owned by security, bin, sys, or system.
Discussion
The /etc/security/passwd file contains the list of local system accounts. It is vital to system security and must be protected from unauthorized modification. The file also contains password hashes which must not be accessible to users other than root.
Fix Text
Change the group owner of the /etc/security/passwd file to security, bin, sys, or system. Procedure: # chgrp security /etc/security/passwd
Check Content
Check the ownership of the /etc/security/passwd file. Procedure: # ls -lL /etc/security/passwd If the file is not group-owned by security, bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/security/passwd file must not have an extended ACL.
Discussion
The /etc/security/passwd file contains the list of local system accounts. It is vital to system security and must be protected from unauthorized modification. The file also contains password hashes which must not be accessible to users other than root.
Fix Text
Remove the extended ACL from the /etc/security/passwd file and disable extended permissions. #acledit /etc/security/passwd
Check Content
Verify the /etc/security/passwd file has no extended ACL and check if extended permissions are disabled. Procedure: #aclget /etc/security/passwd If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/group file must not contain any group password hashes.
Discussion
Group passwords are typically shared and should not be used. Additionally, if password hashes are readable by non-administrators, the passwords are subject to attack through lookup tables or cryptographic weaknesses in the hashes.
Fix Text
Edit /etc/group and change the password field to an exclamation point (!) to lock the group password.
Check Content
Check the /etc/group file for password hashes. Procedure: # cut -d : -f 2 /etc/group | egrep -v '^(x|!)$' If any password hashes are returned, this is a finding. If no password hashes are returned, there is no finding.
Responsibility
System Administrator
IA Controls
ECLP-1
User home directories must not have extended ACLs.
Discussion
Excessive permissions on home directories allow unauthorized access to user files.
Fix Text
Remove the extended ACL from the user home directory and disable extended permissions. #acledit <directory>/<file>
Check Content
Verify user home directories have no extended ACLs. Procedure: # cat /etc/passwd | cut -f 6,6 -d ":" | xargs -n1 aclget Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All files and directories contained in user's home directories must be group-owned by a group the home directory's owner is a member.
Discussion
If a user's files are group-owned by a group where the user is not a member, unintended users may be able to access them.
Fix Text
Change the group of a file not group-owned by a group where the home directory's owner is a member. # chgrp [user's primary group] [file with bad group ownership]
Check Content
Check the contents of user home directories for files group-owned by a group of which the home directory's owner is not a member. 1. List the user accounts. # cut -d : -f 1/etc/passwd 2. For each user account, get a list of GIDs for files in the user's home directory. # find < users home directory > -exec ls -lLd 3. Obtain the list of GIDs associated with the user's account. # id < user name > 4. Check the GID lists. If there are GIDs in the file list not present in the user list, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All files and directories contained in user home directories must not have extended ACLs.
Discussion
Excessive permissions allow unauthorized access to user files.
Fix Text
Remove the extended ACL(s) from the files and directories in user home directories and disable extended permissions. #acledit <directory>/<file>
Check Content
Check the contents of user home directories for files with extended ACLs. Procedure: # cat /etc/passwd | cut -f 6,6 -d ":" | xargs -n1 -IDIR aclget DIR OR #aclget <directory>/<file> Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All run control scripts must have no extended ACLs.
Discussion
If the startup files are writable by other users, they could modify the startup files to insert malicious commands into the startup files.
Fix Text
Remove the extended ACL from the run control script(s) and disable extended permissions. #acledit <directory>/<file>
Check Content
Verify run control scripts have no extended ACLs. Check if extended permissions are disabled. # ls -l /etc/rc* # aclget /etc/rc* # aclget /etc/init.d If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Run control scripts library search paths must contain only authorized paths.
Discussion
The library search path environment variable(s) contains a list of directories for the dynamic linker to search to find libraries. If this path includes the current working directory or other relative paths, libraries in these directories may be loaded instead of system libraries. This variable is formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon, two consecutive colons, or a single period, this is interpreted as the current working directory. Paths starting with a slash (/) are absolute paths.
Fix Text
Edit the run control script and remove the relative path entries from the library search path variables that have not been documented with the ISSO. Edit the run control script and remove any empty entry that is defined.
Check Content
Verify run control scripts' library search paths. Procedure: # grep -r LIBPATH /etc/rc* This variable is formatted as a colon-separated list of paths. If there is an empty entry, such as a leading or trailing colon, or two consecutive colons, this is a finding. If an entry begins with a character other than a slash (/), or has not been documented with the ISSO, this is a finding.
Responsibility
System Administrator
Run control scripts lists of preloaded libraries must contain only authorized paths.
Discussion
The library preload list environment variable contains a list of libraries for the dynamic linker to load before loading the libraries required by the binary. If this list contains paths to libraries to the current working directory that have not been authorized, unintended libraries may be preloaded. This variable is formatted as a space-separated list of libraries. Paths starting with a slash (/) are absolute paths.
Fix Text
Edit the run control scripts' library preload list and remove relative paths that have not been documented with the ISSO. Edit the run control script and remove any empty entry that is defined.
Check Content
Verify run control scripts' library preload list. # grep -r LDR_PRELOAD /etc/rc* This variable is formatted as a colon-separated list of paths. If there is an empty entry, such as a leading or trailing colon, or two consecutive colons, this is a finding. If an entry begins with a character other than a slash (/), or has not been documented with the ISSO, this is a finding.
Responsibility
System Administrator
All global initialization files must not have extended ACLs.
Discussion
Global initialization files are used to configure the user's shell environment upon login. Malicious modification of these files could compromise accounts upon logon.
Fix Text
Remove the extended ACL from the global initialization file(s) and disable extended permissions. #acledit <directory>/<file>
Check Content
Check global initialization files for extended ACLs. Procedure: #aclget /etc/profile /etc/bashrc /etc/csh.login /etc/csh.cshrc /etc/environment /etc/.login /etc/security/environ /etc/security/.profile Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Skeleton files must not have extended ACLs.
Discussion
If the skeleton files are not protected, unauthorized personnel could change user startup parameters and possibly jeopardize user files.
Fix Text
Remove the extended ACL from the skeleton file(s) and disable extended permissions. #acledit /etc/security/.profile #acledit /etc/security/mkuser.sys
Check Content
Check skeleton files for extended ACLs. Procedure: #aclget /etc/security/.profile #aclget /etc/security/mkuser.sys Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All skeleton files (typically in /etc/skel) must be group-owned by security.
Discussion
If the skeleton files are not protected, unauthorized personnel could change user start-up parameters and possibly jeopardize user files.
Fix Text
Change the group owner of the skeleton file to security. Procedure: # chgrp security /etc/security/.profile /etc/security/mkuser.sys
Check Content
Verify the skeleton files are group-owned by security. Procedure: # ls -alL /etc/security/.profile /etc/security/mkuser.sys If a skeleton file is not group-owned by security, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Global initialization files library search paths must contain only authorized paths.
Discussion
The library search path environment variable(s) contain a list of directories for the dynamic linker to search to find libraries. If this path includes the current working directory or other relative paths, libraries in these directories may be loaded instead of system libraries. This variable is formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon, two consecutive colons, or a single period, this is interpreted as the current working directory. Paths starting with a slash (/) are absolute paths.
Fix Text
Edit the global initialization files /etc/profile /etc/bashrc /etc/security/.login /etc/environment /etc/security/environ and remove relative entries from the library search path variables. #vi /etc/profile /etc/bashrc /etc/security/.login /etc/environment /etc/security/environ
Check Content
Edit the global initialization files /etc/profile /etc/bashrc /etc/security/.login /etc/environment /etc/security/environ and remove relative entries from the library search path that have not been documented with the ISSO. Edit the run control script and remove any empty entry that is defined. #vi /etc/profile /etc/bashrc /etc/security/.login /etc/environment /etc/security/environ
Responsibility
System Administrator
Global initialization files lists of preloaded libraries must contain only authorized paths.
Discussion
The library preload list environment variable contains a list of libraries for the dynamic linker to load before loading the libraries required by the binary. If this list contains paths to libraries to the current working directory that have not been authorized, unintended libraries may be preloaded. This variable is formatted as a space-separated list of libraries. Paths starting with a slash (/) are absolute paths.
Fix Text
Edit the global initialization files and remove any relative path entries from the library preload list variable "LDR_PRELOAD" that have not been documented with the ISSO. Edit the run control script and remove any empty entry that is defined.
Check Content
Check the global initialization files' library preload list. # grep LDR_PRELOAD /etc/profile /etc/bashrc /etc/security/.login /etc/environment /etc/security/environ This variable is formatted as a colon-separated list of paths. If there is an empty entry, such as a leading or trailing colon, or two consecutive colons, this is a finding. If an entry begins with a character other than a slash (/), or has not been documented with the ISSO, this is a finding.
Responsibility
System Administrator
Local initialization files must be group-owned by the user's primary group or root.
Discussion
Local initialization files are used to configure the user's shell environment upon login. Malicious modification of these files could compromise accounts upon logon.
Fix Text
Change the group owner of the local initialization file to the user's primary group, or root. # chgrp [USER's primary GID] ~USER/[local initialization file]
Check Content
Check user home directories for local initialization files group-owned by a group other than the user's primary group or root. 1. List user accounts and their primary GID. # cut -d : -f 1,4 /etc/passwd 2. Check local initialization files for each user. # ls -alL ~USER/.login ~USER/.cshrc ~USER/.logout ~USER/.profile ~USER/.bash_profile ~USER/.bashrc ~USER/.bash_logout ~USER/.env ~USER/.dtprofile ~USER/.dispatch ~USER/.emacs ~USER/.exrc 3. If any file is not group-owned by root or the user's primary GID, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Local initialization files must not have extended ACLs.
Discussion
Local initialization files are used to configure the user's shell environment upon login. Malicious modification of these files could compromise accounts upon logon.
Fix Text
Remove the extended ACL from the local initialization file(s) and disable extended permissions. #acledit <directory>/<file>
Check Content
Check user home directories for local initialization files with extended ACLs. Procedure: # cat /etc/passwd | cut -f 6,6 -d ":" | xargs -n1 -IDIR ls -le DIR/.login DIR/.cshrc DIR/.logout DIR/.profile DIR/.bash_profile DIR/.bashrc DIR/.bash_logout DIR/.env DIR/.dtprofile DIR/.dispatch DIR/.emacs DIR/.exrc Procedure: #aclget <directory>/<file> and check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Local initialization files library search paths must contain only authorized paths.
Discussion
The library search path environment variable(s) contain a list of directories for the dynamic linker to search to find libraries. If this path includes the current working directory or other relative paths, libraries in these directories may be loaded instead of system libraries. This variable is formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon, two consecutive colons, or a single period, this is interpreted as the current working directory. Paths starting with a slash (/) are absolute paths.
Fix Text
Edit the local initialization file and remove the relative path entries from the library search path variables that have not been documented with the ISSO. Edit the local initialization file(s) and remove any empty entry that is defined.
Check Content
Verify local initialization files have library search path containing only authorized paths. # cat /etc/passwd | cut -f 1,1 -d ":" | xargs -n1 -IUSER sh -c 'grep -l LIB ~USER/.*' The LIBPATH and LD_LIBRARY_PATH variables are formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon, or two consecutive colons, this is a finding. If an entry begins with a character other than a slash (/), or has not been documented with the ISSO, this is a finding.
Responsibility
System Administrator
Local initialization files lists of preloaded libraries must contain only authorized paths.
Discussion
The library preload list environment variable contains a list of libraries for the dynamic linker to load before loading the libraries required by the binary. If this list contains paths to libraries to the current working directory that have not been authorized, unintended libraries may be preloaded. This variable is formatted as a space-separated list of libraries. Paths starting with a slash (/) are absolute paths.
Fix Text
Edit the local initialization file and remove any relative path entries from the library preload variable "LDR_PRELOAD" that have not been documented with the ISSO. Edit the local initialization file and remove any empty entry that is defined for the “LDR_PRELOAD” variable.
Check Content
Verify local initialization files have library preload list containing only authorized paths. Procedure: # cat /etc/passwd | cut -f 1,1 -d ":" | xargs -n1 -IUSER sh -c "grep -l LDR_PRELOAD ~USER/.*" This variable is formatted as a colon-separated list of paths. If there is an empty entry, such as a leading or trailing colon, or two consecutive colons, this is a finding. If an entry begins with a character other than a slash (/), or has not been documented with the ISSO, this is a finding.
Responsibility
System Administrator
All shell files must be group-owned by root, bin, sys, or system.
Discussion
If shell files are group-owned by users other than root or a system group, they could be modified by intruders or malicious users to perform unauthorized actions.
Fix Text
Change the group owner of the shell to root, bin, sys, or system. # chgrp system < shell >
Check Content
Check the group ownership of each shell referenced. Procedure: # cat /etc/shells | xargs -n1 ls -l If any shell is not group owned by root, bin, sys, or system, this is a finding. #grep shells /etc/security/login.cfg | grep -v \* | cut -f 2 -d = | sed s/,/\ /g | xargs -n1 ls -l If any shell is not group owned by root, bin, sys, or system, this is a finding. Otherwise, check any shells found on the system. Procedure: # find / -name "*sh" | xargs -n1 ls -l If a shell is not group-owned by root, bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All shell files must not have extended ACLs.
Discussion
Shells with world/group write permissions give the ability to maliciously modify the shell to obtain unauthorized access.
Fix Text
Remove the extended ACL from the shell file(s) and disable extended permissions. #acledit <directory>/<file>
Check Content
Check the permissions of each shell referenced in /etc/shells. Procedure: # cat /etc/shells For each shell listed, run aclget <shell path> #aclget <shell> Check the permissions of each shell referenced in /etc/security/login.cfg. Procedure: #grep shells /etc/security/login.cfg For each shell listed, run aclget <shell path> # aclget <shell> Otherwise, check any shells found on the system. # find / -name "*sh #aclget <directory>/<file> If extended permissions are enabled on any shell, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Audio devices must not have extended ACLs.
Discussion
File system ACLs can provide access to files beyond what is allowed by the mode numbers of the files.
Fix Text
Remove the extended ACL from the audio device file(s) and disable extended permissions. #acledit <directory>/<file>
Check Content
Determine the audio device files for the system. Procedure: # /usr/sbin/lsdev -C | grep -i audio #aclget /dev/*aud0 Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Removable media, remote file systems, and any file system not containing approved device files must be mounted with the nodev option.
Discussion
The nodev (or equivalent) mount option causes the system to not handle device files as system devices. This option must be used for mounting any file system not containing approved device files. Device files can provide direct access to system hardware and can compromise security if not protected.
Fix Text
Edit /etc/filesystems and add the options = nodev to all entries for remote or removable media file systems, and file systems containing no approved device files.
Check Content
If the system does not support a nodev option, this is not applicable. Check /etc/filesystems and verify the nodev mount option (options = ) is used on any file systems mounted from removable media or network shares, or file systems not containing any approved device files. If any such file system is not using the nodev option, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
All system audit files must not have extended ACLs.
Discussion
If a user can write to the audit logs, then audit trails can be modified or destroyed and system intrusion may not be detected.
Fix Text
Remove the extended ACL from the system audit file(s) and disable extended permissions. #acledit <directory>/<file> and disable extended permissions
Check Content
Procedure: # grep -p bin: /etc/security/audit/config Directories and files to search will be listed under the bin stanza. #aclget <directory>/<file> Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECTP-1
System audit tool executables must be owned by root.
Discussion
To prevent unauthorized access or manipulation of system audit logs, the tools for manipulating those logs must be protected.
Fix Text
Change the owner of the system audit tool executables to root. #chown root <system audit tool executable>
Check Content
Determine if the system audit tool executables are owned by root. Audit tools include, but are not limited to, audit, auditcat, auditconv, auditpr, auditselect, auditstream, auditbin, and auditmerge. Procedure: ls -lL `which <audit tool executable>` If any system audit tool executable is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
System audit tool executables must be group-owned by bin, sys, or system.
Discussion
To prevent unauthorized access or manipulation of system audit logs, the tools for manipulating those logs must be protected.
Fix Text
Change the group owner of system audit tool executables to root, bin, sys, or system. Procedure: # chgrp system < system audit tool executable>
Check Content
Determine the group ownership of system audit tool executables. Audit tools include, but are not limited to, audit, auditcat, auditconv, auditpr, auditselect, auditstream, auditbin, and auditmerge. Procedure: # ls -lL `which <audit tool executable>` If any system audit tool executable is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
System audit tool executables must have mode 0750 or less permissive.
Discussion
To prevent unauthorized access or manipulation of system audit logs, the tools for manipulating those logs must be protected.
Fix Text
Many audit tools have SUID bit set. Before changing permissions on system audit tool executables, check the file permissions for SUID bits. Change the mode of system audit tool executables to 0750. #chmod 0750 or 4750 <system audit tool executable> Document all changes made.
Check Content
Determine if system audit tool executables have a mode more permissive than 0750. If any do, this is a finding. Audit tools include, but are not limited to, audit, auditcat, auditconv, auditpr, auditselect, auditstream, auditbin, and auditmerge.
Responsibility
System Administrator
IA Controls
ECLP-1
System audit tool executables must not have extended ACLs.
Discussion
To prevent unauthorized access or manipulation of system audit logs, the tools for manipulating those logs must be protected.
Fix Text
Remove the extended ACL from the system audit tool executable(s) and disable extended permissions. #acledit <system audit tool executable>
Check Content
Determine if system audit tool executables have extended ACLs Audit tools include, but are not limited to audit, auditcat, auditconv, auditpr, auditselect, auditstream, auditbin, and auditmerge. Procedure: #aclget <system audit tool executable> Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The audit system must be configured to audit account creation.
Discussion
If the system is not configured to audit certain activities and write them to an audit log, it is more difficult to detect and track system compromises, and damages incurred during a system compromise.
Fix Text
Configure the audit system to audit account creation. Edit /etc/security/audit/events and add the User_Create event to the list of audited events. Edit /etc/security/audit/config and add the USER_Create audit event to an audit class in the classes: stanza. Edit the /etc/security/audit/config and assign the audit classes with the USER_Create event to the all users listed in the users: stanza.
Check Content
Determine if the audit system is configured to audit account creation. Procedure: # more /etc/security/audit/events If auditing of the USER_Create event is not configured, check the USER_Create audit event is defined in the audit classes' stanza of the /etc/security/audit/config file. Procedure: #more /etc/security/audit/config Make note of the audit class the USER_Create event is associated with. If the USER_Create event is not associated with any audit classes in the classes: stanza, this is a finding. Verify the audit class is associated with the default user and all other user ids listed in the users: stanza of the /etc/security/audit/config file. Procedure: #more /etc/security/audit/config If the class(es) the USER_Create event is not associated with the default user and all the system users in the 'users:' stanza, this is a finding.
Responsibility
System Administrator
IA Controls
ECAT-1
The audit system must be configured to audit account modification.
Discussion
If the system is not configured to audit certain activities and write them to an audit log, it is more difficult to detect and track system compromises and damages incurred during a system compromise.
Fix Text
Configure the system to audit account modification. Edit /etc/security/audit/events and add the USER_Change event to the list of audited events. Edit /etc/security/audit/config and add the USER_Change audit event to an audit class in the classes: stanza. Edit /etc/security/audit/config and assign the audit classes with the USER_Change event to the all users listed in the users: stanza.
Check Content
Determine if the audit system is configured to audit account modification. Procedure: # more /etc/security/audit/events If auditing of the USER_Change event is not configured, this is a finding. Verify the USER_Change audit event is defined in the audit classes' stanza classes: of the /etc/security/audit/config file. Procedure: #more /etc/security/audit/config Make note of the audit class(es) the USER_Change event is associated with. If the USER_Change event is not associated with any audit classes in the classes: stanza, this is a finding. Verify the audit class is associated with the default user and all other user ids listed in the users: stanza of the /etc/security/audit/config file. Procedure: #more /etc/security/audit/config If the class(es) the USER_Change event is not associated with the default user and all the system users in the users: stanza, this is a finding.
Responsibility
System Administrator
IA Controls
ECAT-1
The audit system must be configured to audit account disabling.
Discussion
If the system is not configured to audit certain activities and write them to an audit log, it is more difficult to detect and track system compromises and damages incurred during a system compromise.
Fix Text
Configure the system to audit account disabling. Edit /etc/security/audit/events and add the USER_Change and USER_Locked events to the list of audited events. Edit /etc/security/audit/config and add the USER_Change and USER_Locked audits event to an audit class in the classes: stanza. Edit the /etc/security/audit/config and assign the audit classes with the USER_Change and USER_Locked events to the all users listed in the users: stanza.
Check Content
Determine if the system is configured to audit account disabling. Procedure: # more /etc/security/audit/events If auditing of the USER_Change and USER_Locked events are not configured, this is a finding. Check the USER_Change and USER_Locked audit event(s) are defined in the audit classes' stanza classes: of the /etc/security/audit/config file. Procedure: #more /etc/security/audit/config Make note of the audit class(es) the USER_Change and USER_Locked events are associated with. If the USER_Change and USER_Locked events are not associated with any audit classes in the classes: stanza, this is a finding. Verify the audit class is associated with the default user and all other user ids listed in the users: stanza of the /etc/security/audit/config file. Procedure: #more /etc/security/audit/config If the class(es) the USER_Change and USER_Locked events are not associated with the default user and all the system users in the users: stanza, this is a finding.
Responsibility
System Administrator
IA Controls
ECAT-1
The audit system must be configured to audit account termination.
Discussion
If the system is not configured to audit certain activities and write them to an audit log, it is more difficult to detect and track system compromises and damages incurred during a system compromise.
Fix Text
Configure the system to audit account termination. Edit /etc/security/audit/events and add the USER_Remove event to the list of audited events Edit /etc/security/audit/config and add the USER_Remove audit event to an audit class in the classes: stanza. Edit the /etc/security/audit/config and assign the audit classes with the USER_Remove event to the all users listed in the users: stanza.
Check Content
Determine if the system is configured to audit account termination. Procedure: # more /etc/security/audit/events If auditing of the USER_Remove event is not configured, this is a finding. Verify the USER_Remove audit event is defined in the audit classes' stanza classes: of the /etc/security/audit/config file. Procedure: #more /etc/security/audit/config Make note of the audit class(es) the USER_Remove event is associated with. If the USER_Remove event is not associated with any audit classes in the classes: stanza, this is a finding. Verify that the audit class is associated with the default user and all other user ids listed in the 'users:' stanza of the /etc/security/audit/config file. Procedure: #more /etc/security/audit/config If the class(es) that the USER_Remove event is not associated with the default user and all the system users in the users: stanza, this is a finding.
Responsibility
System Administrator
IA Controls
ECAT-1
The audit system must be configured to audit the loading and unloading of dynamic kernel modules.
Discussion
Actions concerning dynamic kernel modules must be recorded as they are substantial events. Dynamic kernel modules can increase the attack surface of a system. A malicious kernel module can be used to substantially alter the functioning of a system, often with the purpose of hiding a compromise from the SA.
Fix Text
Configure the system to audit the loading and unloading of dynamic kernel modules. Edit /etc/security/audit/events and add the DEV_Create, FILE_Mknod, DEV_Configure, DEV_Stop, DEV_Unconfigure, and DEV_Remove events to the list of audited events. Edit /etc/security/audit/config and add the DEV_Create, FILE_Mknod, DEV_Configure, DEV_Stop, DEV_Unconfigure, and DEV_Remove audit events to an audit class in the classes: stanza. Edit the /etc/security/audit/config and assign the audit classes that has the DEV_Create, FILE_Mknod, DEV_Configure, DEV_Stop, DEV_Unconfigure and DEV_Remove events to the all users listed in the 'users:' stanza.
Check Content
Determine if the system is configured to audit the loading and unloading of dynamic kernel modules. Check the system's audit configuration. # more /etc/security/audit/events Confirm the following events are configured: DEV_Create, FILE_Mknod, DEV_Configure, DEV_Stop, DEV_Unconfigure, and DEV_Remove. If any of these events are not configured, this is a finding. Check the File DEV_Create, FILE_Mknod, DEV_Configure, DEV_Stop, DEV_Unconfigure, and DEV_Remove. Audit events are defined in the audit classes stanza classes: of the /etc/security/audit/config file. #more /etc/security/audit/config Make note of the audit class(es) the DEV_Create, FILE_Mknod, DEV_Configure, DEV_Stop, DEV_Unconfigure, and DEV_Remove events are associated with. If the DEV_Create, FILE_Mknod, DEV_Configure, DEV_Stop, DEV_Unconfigure, and DEV_Remove events are not associated with any audit classes in the classes: stanza, this is a finding. Verify the audit class is associated with the default user and all other user ids listed in the users: stanza of the /etc/security/audit/config file. #more /etc/security/audit/config If the class(es) that the DEV_Create, FILE_Mknod, DEV_Configure, DEV_Stop, DEV_Unconfigure, and DEV_Remove events are not associated with the default user and all the system users in the users: stanza, this is a finding.
Responsibility
System Administrator
IA Controls
ECAR-1
The cron.allow file must not have an extended ACL.
Discussion
A cron.allow file that is readable and/or writable by other than root could allow potential intruders and malicious users to use the file contents to help discern information, such as who is allowed to execute cron programs, which could be harmful to overall system and network security.
Fix Text
Remove the extended ACL from the cron.allow file and disable extended permissions. #acledit /var/adm/cron/cron.allow
Check Content
Check the permissions of the cron.allow file. #aclget /var/adm/cron/cron.allow Verify if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Crontab files must be group-owned by system, cron, or the crontab creator's primary group.
Discussion
To protect the integrity of scheduled system jobs and prevent malicious modification to these jobs, crontab files must be secured.
Fix Text
Change the group owner of the crontab file to system, cron, or the crontab's primary group. Procedure: # chgrp cron [crontab file]
Check Content
Check the group ownership of the crontab files. # ls -lL /var/spool/cron/crontabs/ If the group owner is not system, cron, or the crontab owner's primary group, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Crontab files must not have extended ACLs.
Discussion
To protect the integrity of scheduled system jobs and to prevent malicious modification to these jobs, crontab files must be secured. ACLs on crontab files may provide unauthorized access to the files.
Fix Text
Remove the extended ACL from the crontab file(s) and disable extended permissions. #acledit <directory>/<file>
Check Content
Check the permissions of the crontab files. Get a listing of crontab files. # ls /var/spool/cron/crontabs Check all of the crontabs listed for an extended ACL. # aclget <directory>/<file> Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Cron and crontab directories must not have extended ACLs.
Discussion
To protect the integrity of scheduled system jobs and to prevent malicious modification to these jobs, crontab files must be secured. ACLs on cron and crontab directories may provide unauthorized access to these directories. Unauthorized modifications to these directories or their contents may result in the addition of unauthorized cron jobs or deny service to authorized cron jobs.
Fix Text
Remove the extended ACL from the crontab file(s) and disable extended permissions. #acledit <directory>/<file>
Check Content
Check the permissions of the crontab directories. # ls -lL /var/spool/cron/crontabs # aclget < crontab > # aclget /var/spool/cron Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The cron log files must not have extended ACLs.
Discussion
Cron logs contain reports of scheduled system activities and must be protected from unauthorized access or manipulation.
Fix Text
Remove the extended ACL from the cronlog file and disable extended permissions. #acledit /var/adm/cron/log
Check Content
#aclget /var/adm/cron/log Verify if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1, ECTP-1
The cron.deny file must not have an extended ACL.
Discussion
If there are excessive file permissions for the cron.deny file, sensitive information could be viewed or edited by unauthorized users.
Fix Text
Remove the extended ACL from the cron.deny file and disable extended permissions. #acledit /var/adm/cron/cron.deny
Check Content
#aclget /var/adm/cron/cron.deny Verify if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The at.allow file must not have an extended ACL.
Discussion
File system extended ACLs provide access to files beyond what is allowed by the mode numbers of the files. Unauthorized modification of the at.allow file could result in Denial of Service to authorized at users and the granting of the ability to run at jobs to unauthorized users.
Fix Text
Remove the extended ACL from the at.allow file and disable extended permissions. #acledit /var/adm/cron/at.allow
Check Content
#aclget /var/adm/cron/at.allow Verify if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The cron.allow file must be group-owned by system, bin, sys, or cron.
Discussion
If the group of the cron.allow is not set to system, bin, sys, or cron, the possibility exists for an unauthorized user to view or edit the list of users permitted to use cron. Unauthorized modification of this file could cause Denial of Service to authorized cron users or provide unauthorized users with the ability to run cron jobs.
Fix Text
Change the group owner of the cron.allow file to bin, sys, system, or cron. Procedure: # chgrp cron /var/adm/cron/cron.allow
Check Content
Determine the group owner of the cron.allow file. Procedure: # ls -lL /var/adm/cron/cron.allow If the group owner is not bin, sys, system, or cron, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The at.deny file must have mode 0640 or less permissive.
Discussion
The at daemon control files restrict access to scheduled job manipulation and must be protected. Unauthorized modification of the at.deny file could result in Denial of Service to authorized at users or provide unauthorized users with the ability to run at jobs.
Fix Text
Change the mode of the at.deny file to 0640. # chmod 0640 /var/adm/cron/at.deny
Check Content
Determine the mode of the at.deny file. # ls -lL /var/adm/cron/at.deny If the mode of the at.deny file is more permissive than 0640, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The at.deny file must not have an extended ACL.
Discussion
The at daemon control files restrict access to scheduled job manipulation and must be protected. Unauthorized modification of the at.deny file could result in Denial of Service to authorized at users or provide unauthorized users with the ability to run at jobs.
Fix Text
Remove the extended ACL from the at.deny file and disable extended permissions. #acledit /var/adm/cron/at.deny
Check Content
Determine if the at.deny file has an extended ACL. #aclget /var/adm/cron/at.deny Verify if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The cron.deny file must be group-owned by system, bin, sys, or cron.
Discussion
Cron daemon control files restrict the scheduling of automated tasks and must be protected. Unauthorized modification of the cron.deny file could result in Denial of Service to authorized cron users or could provide unauthorized users with the ability to run cron jobs.
Fix Text
Change the group owner of the cron.deny file to sys, system, bin, or cron. Procedure: # chgrp cron /var/adm/cron/cron.deny
Check Content
Determine the cron.deny file's group owner. Procedure: # ls -lL /var/adm/cron/cron.deny If the file is not group-owned by system, bin, sys, or cron, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The at directory must not have an extended ACL.
Discussion
If the at directory has an extended ACL, unauthorized users could be allowed to view or to edit files containing sensitive information within the at directory. Unauthorized modifications could result in Denial of Service to authorized at jobs.
Fix Text
Remove the extended ACL from the at directory and disable extended permissions. #acledit /var/spool/cron/atjobs
Check Content
Check the permissions of the file. #aclget /var/spool/cron/atjobs Verify if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The "at" directory must be group-owned by system, bin, sys, or cron.
Discussion
If the group of the "at" directory is not system, bin, sys, or cron, unauthorized users could be allowed to view or edit files containing sensitive information within the directory.
Fix Text
Change the group ownership of the file to bin, sys, system, or cron. Procedure: # chgrp cron /var/spool/cron/atjobs
Check Content
Check the group ownership of the file. Procedure: # ls -ld /var/spool/cron/atjobs If the file is not group-owned by bin, sys, system, or cron, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The at.allow file must be group-owned by system, bin, sys, or cron.
Discussion
If the group-owner of the at.allow file is not set to system, bin, sys, or cron, unauthorized users could be allowed to view or edit the list of users permitted to run at jobs. Unauthorized modification could result in Denial of Service to authorized at users or provide unauthorized users with the ability to run at jobs.
Fix Text
Change the group owner of the at.allow file to sys, system, bin, or cron. Procedure: # chgrp cron /var/adm/cron/at.allow
Check Content
Determine the group owner of the at.allow file. Procedure: # ls -lL /var/adm/cron/at.allow If the group-owner is not bin, sys, system, or cron, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The at.deny file must be group-owned by system, bin, sys, or cron.
Discussion
If the group owner of the at.deny file is not set to system, bin, sys, or cron, unauthorized users could be allowed to view or edit sensitive information contained within the file. Unauthorized modification could result in Denial of Service to authorized at users or provide unauthorized users with the ability to run at jobs.
Fix Text
Change the group owner of the at.deny file to bin, sys, system, or cron. Procedure: # chgrp cron /var/adm/cron/at.deny
Check Content
Determine the group owner of the at.deny file. Procedure: # ls -lL /var/adm/cron/at.deny If the group owner is not bin, sys, system, or cron, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Kernel core dumps must be disabled unless needed.
Discussion
Kernel core dumps may contain the full contents of system memory at the time of the crash. Kernel core dumps may consume a considerable amount of disk space and may result in Denial of Service by exhausting the available space on the target file system. The kernel core dump process may increase the amount of time a system is unavailable due to a crash. Kernel core dumps can be useful for kernel debugging.
Fix Text
Disable kernel core dumps on the system by setting primary and secondary dump devices to sysdumpnull. #sysdumpdev -P -p /dev/sysdumpnull #sysdumpdev -P -s /dev/sysdumpnull
Check Content
Determine if kernel core dumps are enabled on the system. #sysdumpdev -l Look at both the primary and secondary dump devices. If either the primary or secondary dump device is not /dev/sysdumpnull, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The kernel core dump data directory must be group-owned by bin, sys, or system.
Discussion
Kernel core dumps may contain the full contents of system memory at the time of the crash. As the system memory may contain sensitive information, it must be protected accordingly. If the kernel core dump data directory is not group-owned by a system group, the core dumps contained in the directory may be subject to unauthorized access.
Fix Text
Change the group owner of the kernel core dump data directory to bin, sys, or system. # chgrp sys < directory >
Check Content
Determine the core file copy location. #sysdumpdev -l | grep -i "core dir" Determine the group owner of the kernel core dump data directory. # ls -lLd < directory > If the group owner is not bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The kernel core dump data directory must have mode 0700 or less permissive.
Discussion
Kernel core dumps may contain the full contents of system memory at the time of the crash. As the system memory may contain sensitive information, it must be protected accordingly. If the mode of the kernel core dump data directory is more permissive than 0700, unauthorized users may be able to view or to modify kernel core dump data files.
Fix Text
Change the mode of the kernel core dump data directory to 0700. # chmod 0700 < directory >
Check Content
Determine the core file copy location. # sysdumpdev -l | grep "core dir" Determine the mode of the kernel core dump data directory. # ls -lLd < directory > If the mode is more permissive than 0700, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The kernel core dump data directory must not have an extended ACL.
Discussion
Kernel core dumps may contain the full contents of system memory at the time of the crash. As the system memory may contain sensitive information, it must be protected accordingly. If there is an extended ACL for the kernel core dump data directory, unauthorized users may be able to view or to modify kernel core dump data files.
Fix Text
Remove the extended ACL from the kernel core dump data directory and disable extended permissions. #acledit < directory >
Check Content
Determine the core file copy location from the sysdumpdev command. #sysdumpdev -l | grep -I "core dir" Determine if the kernel core dump data directory has an extended ACL. #aclget < directory > Verify if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The system must not process ICMP timestamp requests.
Discussion
The processing of Internet Control Message Protocol (ICMP) timestamp requests increases the attack surface of the system.
Fix Text
Use SMIT or genfilt commands to configure the system firewall to block ICMP packet types 13, and 14.
Check Content
Determine if the system is configured to respond to ICMP Timestamp requests. #lsfilt If there is no rule blocking ICMP packet type of 13 and ICMP packet type of 14, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not respond to ICMPv4 echoes sent to a broadcast address.
Discussion
Responding to broadcast Internet Control Message Protocol (ICMP) echoes facilitates network mapping and provides a vector for amplification attacks.
Fix Text
Configure the system to ignore ICMP ECHO_REQUESTs sent to broadcast addresses. # no -po bcastping=0
Check Content
# /usr/sbin/no -o bcastping If the value returned is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not respond to ICMP timestamp requests sent to a broadcast address.
Discussion
The processing of Internet Control Message Protocol (ICMP) timestamp requests increases the attack surface of the system. Responding to broadcast ICMP timestamp requests facilitates network mapping and provides a vector for amplification attacks.
Fix Text
Configure the system to ignore ICMP Timestamp requests sent to broadcast addresses. #no -po bcastping=0
Check Content
# /usr/sbin/no -o bcastping If the value returned is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not apply reversed source routing to TCP responses.
Discussion
Source-routed packets allow the source of the packet to suggest routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures.
Fix Text
Configure the system to not apply reverse source routing to TCP responses to source-routed packets. # /usr/sbin/no -po nonlocsrcroute=0
Check Content
Determine if the system is configured to apply reverse source routing to TCP responses to source-routed packets. # /usr/sbin/no -o nonlocsrcroute If the value is not 0, this is a finding.
Responsibility
System Administrator
The system must prevent local applications from generating source-routed packets.
Discussion
Source-routed packets allow the source of the packet to suggest routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures.
Fix Text
# /usr/sbin/no -po "ipsrcroutesend=0"
Check Content
# /usr/sbin/no -o ipsrcroutesend If the result is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not accept source-routed IPv4 packets.
Discussion
Source-routed packets allow the source of the packet to suggest routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the handling of source-routed traffic destined to the system itself, not to traffic forwarded by the system to another, such as when IPv4 forwarding is enabled and the system is functioning as a router
Fix Text
Configure the system to not accept source-routed IPv4 packets. #/usr/sbin/no -p -o ipsrcrouterecv=0
Check Content
# /usr/sbin/no -o ipsrcrouterecv If the result is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
Proxy ARP must not be enabled on the system.
Discussion
Proxy ARP allows a system to respond to ARP requests on one interface on behalf of hosts connected to another interface. If this function is enabled when not required, addressing information may be leaked between the attached network segments.
Fix Text
Remove any non-local published ARP entries. # arp -d < host > Check system initialization scripts for any commands configuring published ARP entries (such as "arp -s <host> <addr> pub") and remove them.
Check Content
Determine if the system has proxy ARP enabled. Check Content: Check the system for non-local published ARP entries. # arp -a If any entries are listed as published, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must ignore IPv4 ICMP redirect messages.
Discussion
ICMP redirect messages are used by routers to inform hosts a more direct route exists for a particular destination. These messages modify the host's route table and are unauthenticated. An illicit ICMP redirect message could result in a man-in-the-middle attack.
Fix Text
Configure the system to ignore IPv4 ICMP redirect messages. #/usr/sbin/no -p -o ipignoreredirects=1
Check Content
# /usr/sbin/no -o ipignoreredirects If the value returned is not 1, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not send IPv4 ICMP redirects.
Discussion
ICMP redirect messages are used by routers to inform hosts a more direct route exists for a particular destination. These messages contain information from the system's route table possibly revealing portions of the network topology.
Fix Text
#/usr/sbin/no -p -o ipsendredirects=0
Check Content
# /usr/sbin/no -o ipsendredirects If the value is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must log martian packets.
Discussion
Martian packets are packets containing addresses known by the system to be invalid. Logging these messages allows the SA to identify misconfigurations or attacks in progress.
Fix Text
Configure the system to log martian packets. Add rules to log inbound traffic containing invalid source addresses, which minimally include the system's own addresses and broadcast addresses for attached subnets. For example, consider a system with a single network connection having IP address 192.168.1.10 with a local subnet broadcast address of 192.168.1.255. Packets with source addresses of 192.168.1.10 and 192.168.1.255 must be logged if received by the system from the network connection. Use the smit utility or genfilt command to add logging of martian packets (packets with a source address of 192.168.1.10 and 192.168.1.255). # smitty ipsec4 OR # genfilt -v4 -a P -s 192.168.1.10 -m 0.0.0.0 -d 0.0.0.0 -M -0.0.0.0 -c all -o any -O any -p 0 -P 0 -w I -l y -i en0 # genfilt -v4 -a P -s 192.168.1.255 -m 0.0.0.0 -d 0.0.0.0 -M -0.0.0.0 -c all -o any -O any -p 0 -P 0 -w I -l y -i en0
Check Content
Determine if the system is configured to log martian packets. Examine the IPF rules on the system. # lsfilt -a There must be rules to log inbound traffic containing invalid source addresses, which minimally include the system's own addresses and broadcast addresses for attached subnets. If no such rules exist, this is a finding.
Responsibility
System Administrator
IA Controls
ECAT-1
The system must be configured to use TCP syncookies when experiencing a TCP SYN flood.
Discussion
A TCP SYN flood attack can cause Denial of Service by filling a system's TCP connection table with connections in the SYN_RCVD state. Syncookies are a mechanism used to not track a connection until a subsequent ACK is received, verifying the initiator is attempting a valid connection and is not a flood source. This technique does not operate in a fully standards-compliant manner, but is only activated when a flood condition is detected, and allows defense of the system while continuing to service valid requests.
Fix Text
#/usr/sbin/no -p -o clean_partial_conns=1
Check Content
# /usr/sbin/no -o clean_partial_conns If the value returned is not 1, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
All local file systems must employ journaling or another mechanism ensuring file system consistency.
Discussion
File system journaling, or logging, can allow reconstruction of file system data after a system crash, thus preserving the integrity of data that may have otherwise been lost. Journaling file systems typically do not require consistency checks upon booting after a crash, which can improve system availability. Some file systems employ other mechanisms to ensure consistency which also satisfy this requirement.
Fix Text
Convert local file systems to use journaling or another mechanism ensuring file system consistency.
Check Content
Determine if the local file systems employ journaling or another mechanism ensuring file system consistency. Procedure: List all local file system mount points. #/usr/sysv/bin/df -l | grep -v “/proc” #lsfs < each file system returned> If any file systems are not jfs or jfs2, this is a finding.
Responsibility
System Administrator
The inetd.conf file, xinetd.conf file, and the xinetd.d directory must be group-owned by bin, sys, or system.
Discussion
Failure to give ownership of sensitive files or utilities to system groups may provide unauthorized users with the potential to access sensitive information or change the system configuration which could weaken the system's security posture.
Fix Text
Change the group ownership of the inetd configuration file. Procedure: # chgrp system /etc/inetd.conf
Check Content
Check the group ownership of the inetd and xinetd configuration files, and xinetd directory. Procedure: # ls -alL /etc/inetd.conf /etc/xinetd.conf /etc/xinetd.d If a file or directory is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The inetd.conf and xinetd.conf files must not have extended ACLs.
Discussion
The Internet service daemon configuration files must be protected as malicious modification could cause Denial of Service or increase the attack surface of the system.
Fix Text
Remove the extended ACL from the /etc/inetd.conf file and disable extended permissions. #acledit /etc/inetd.conf
Check Content
Check the permissions of the inetd configuration file. #aclget /etc/inetd.conf Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The services file must be group-owned by bin, sys, or system.
Discussion
Failure to give ownership of system configuration files to root or a system group provides the designated owner and unauthorized users with the potential to change the system configuration which could weaken the system's security posture.
Fix Text
Change the group owner of the services file. Procedure: # chgrp system /etc/services
Check Content
Check the group ownership of the services file. Procedure: # ls -lL /etc/services If the file is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The services file must not have an extended ACL.
Discussion
The services file is critical to the proper operation of network services and must be protected from unauthorized modification. If the services file has an extended ACL, it may be possible for unauthorized users to modify the file. Unauthorized modification could result in the failure of network services.
Fix Text
Remove the extended ACL from the services file and disable extended permissions. #acledit /etc/services
Check Content
Check the permissions of the /etc/services file. #aclget /etc/services Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The portmap or rpcbind service must not be installed unless needed.
Discussion
The portmap and rpcbind services increase the attack surface of the system and should only be used when needed. The portmap or rpcbind services are used by a variety of services using Remote Procedure Calls (RPCs).
Fix Text
If the portmap or rpcbind service is part of a removable package, consult vendor documentation for the procedure to remove the package. If the service cannot be removed, prevent service activation by removing all permissions from the executable. Procedure: # chmod 0000 /usr/sbin/portmap
Check Content
If the system needs the portmap service to operate, this is not applicable. Consult vendor documentation to determine the name and location of the portmap service. The portmap executable is part of fileset bos.net.tcp.client and is not removable, so this will always be a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The rlogind service must not be running.
Discussion
The rlogind process provides a typically unencrypted, host-authenticated remote access service. SSH should be used in place of this service.
Fix Text
Disable the rlogind service out of the '/etc/inetd.conf' file. # vi /etc/inetd.conf Comment out the rlogind service. Restart the inetd service. # refresh -s inetd
Check Content
Determine if the rlogind service is running. If it is, this is a finding. # grep -v "^#" /etc/inetd.conf |grep rlogin If any results are returned, this is a finding
Responsibility
System Administrator
IA Controls
DCPP-1
The hosts.lpd (or equivalent) file must be group-owned by bin, sys, or system.
Discussion
Failure to give group ownership of the hosts.lpd file to bin, sys, or system provides the members of the owning group and possible unauthorized users, with the potential to modify the hosts.lpd file. Unauthorized modifications could disrupt access to local printers from authorized remote hosts or permit unauthorized remote access to local printers.
Fix Text
Change the group owner of the hosts.lpd file. Procedure: # chgrp sys /etc/hosts.lpd
Check Content
Check the group ownership of the /etc/hosts.lpd file. Procedure: # ls -lL /etc/hosts.lpd If the file is not group owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The hosts.lpd (or equivalent) file must not have an extended ACL.
Discussion
Excessive permissions on the hosts.lpd (or equivalent) file may permit unauthorized modification. Unauthorized modifications could disrupt access to local printers from authorized remote hosts or permit unauthorized remote access to local printers.
Fix Text
Remove the extended ACL from the hosts.lpd file and disable extended permissions. #acledit /etc/hosts.lpd
Check Content
Check the permissions of the /etc/hosts.lpd file. #aclget /etc/hosts.lpd Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The traceroute file must not have an extended ACL.
Discussion
If an extended ACL exists on the traceroute executable file, it may provide unauthorized users with access to the file. Malicious code could be inserted by an attacker and triggered whenever the traceroute command is executed by authorized users. Additionally, if an unauthorized user is granted executable permissions to the traceroute command, it could be used to gain information about the network topology behind the firewall. This information may allow an attacker to determine trusted routers and other network information possibly leading to system and network compromise.
Fix Text
Remove the extended ACL from the traceroute file and disable extended permissions. #acledit /usr/sbin/traceroute
Check Content
Check the permissions of the /usr/sbin/traceroute file. #aclget /usr/sbin/traceroute Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The aliases file must be group-owned by sys, bin, or system.
Discussion
If the alias file is not group-owned by a system group, an unauthorized user may modify the file to add aliases to run malicious code or redirect e-mail.
Fix Text
Change the group owner of the /etc/mail/aliases file. Procedure: # chgrp system /etc/mail/aliases
Check Content
Check the group ownership of the /etc/mail/aliases file. Procedure: # ls -lL /etc/mail/aliases If the file is not group-owned by sys, bin, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The alias file must not have an extended ACL.
Discussion
Excessive permissions on the aliases file may permit unauthorized modification. If the alias file is modified by an unauthorized user, they may modify the file to run malicious code or redirect e-mail.
Fix Text
Remove the extended ACL from the alias file and disable extended permissions. #acledit /etc/mail/aliases
Check Content
Check the permissions of the /etc/mail/aliases file. #aclget /etc/mail/aliases Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Files executed through a mail aliases file must be group-owned by root, bin, sys, or other, and must reside within a directory group-owned by root, bin, sys, or other.
Discussion
If a file executed through a mail aliases file is not group-owned by root or a system group, it may be subject to unauthorized modification. Unauthorized modification of files executed through aliases may allow unauthorized users to attain root privileges.
Fix Text
Change the group ownership of the file referenced from /etc/mail/aliases. # chgrp root <file referenced from aliases>
Check Content
Examine the contents of the /etc/mail/aliases file. # cat /etc/mail/aliases | cut -f 2,2 -d ":" | grep "|" For each file referenced, check the group ownership of the file. # ls -lL <file referenced from aliases> If the group owner of any file is not root, bin, sys or other, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Files executed through a mail aliases file must not have extended ACLs.
Discussion
Excessive permissions on files executed through a mail alias file could result in modification by an unauthorized user, execution of malicious code, and/or system compromise.
Fix Text
Remove the extended ACL from the file(s) referenced from the aliases file and disable extended permissions. #acledit [File referenced from aliases]
Check Content
Examine the contents of the /etc/mail/aliases file. For each file referenced, check the permissions of the file. #aclget [File referenced from alias] Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The SMTP service log file must not have an extended ACL.
Discussion
If the SMTP service log file has an extended ACL, unauthorized users may be allowed to access or to modify the log file.
Fix Text
Remove the extended ACL from the SMTP service log file and disable extended permissions. #acledit [ log file ]
Check Content
Examine /etc/syslog.conf and determine the log file(s) receiving logs for mail.crit, mail.debug, mail.*, or *.crit. Check the permissions on these log files. #aclget [log file] Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The ftpusers file must be group-owned by bin, sys, or system.
Discussion
If the ftpusers file is not group-owned by a system group, an unauthorized user may modify the file to allow unauthorized accounts to use FTP.
Fix Text
Change the group owner of the ftpusers file. Procedure: # chgrp system /etc/ftpusers
Check Content
Check the group ownership of the ftpusers file. Procedure: # ls -lL /etc/ftpusers If the file is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The ftpusers file must not have an extended ACL.
Discussion
Excessive permissions on the ftpusers file could permit unauthorized modification. Unauthorized modification could result in Denial of Service to authorized FTP users or permit unauthorized users to access the FTP service.
Fix Text
Remove the extended ACL from the ftpusers file and disable extended permissions. #acledit /etc/ftpusers
Check Content
Check the permissions of the /etc/ftpusers file. #aclget /etc/ftpusers Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The .Xauthority files must not have extended ACLs.
Discussion
.Xauthority files ensure the user is authorized to access that specific X Windows host. Extended ACLs may permit unauthorized modification of these files, which could lead to Denial of Service to authorized access or allow unauthorized access to be obtained.
Fix Text
Remove the extended ACL from the .Xauthority file(s) and disable extended permissions. #acledit .Xauthority
Check Content
Get a list of (non-system account) users and the associated home directories. # cat /etc/passwd | cut -f 1,6 -d ":" Check the file permissions for the user .Xauthority files. #aclget .Xauthority Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The SNMP service must use only SNMPv3 or its successors.
Discussion
SNMP Versions 1 and 2 are not considered secure. Without the strong authentication and privacy provided by the SNMP Version 3 User-based Security Model (USM), an attacker or other unauthorized users may gain access to detailed system management information and use the information to launch attacks against the system.
Fix Text
Configure the system's SNMP service to only use SNMPv3 with encryption or its successors. The SNMP version supporting encryption is an installable fileset on the expansion cd as fileset 'snmp.crypto'. Enable snmpv3 with encryption. # snmpv3_ssw -e
Check Content
Determine if the system's SNMP service only uses SNMPv3 or its successors. Consult vendor documentation to determine if earlier versions of SNMP are supported and what configuration is necessary to enable or disable the protocols. Snmpd version 1 was the only version available in AIX versions prior to AIX 5.2. #which snmpd #ls -l <path to snmpd> If the results are not /usr/sbin/snmpdv3e or /usr/sbin/snpdv3ne this is an earlier version of the protocol used by the service, this is a finding.
Responsibility
System Administrator
IA Controls
DCPP-1
The SNMP service must require the use of a FIPS 140-2 approved cryptographic hash algorithm as part of its authentication and integrity methods.
Discussion
The SNMP service must use SHA-1 or a FIPS 140-2 approved successor for authentication and integrity.
Fix Text
Edit the /etc/snmpdv3.conf file. Change any instances of the HMAC-MD5 authentication protocol in USM_USER entries to HMAC-SHA. For all changed USM_USER entries, regenerate authentication keys using the "pwtokey" command and replace the keys in the /etc/snmpdv3.conf file.
Check Content
Check all SNMPv3 users for configured authentication protocols. # grep USM_USER /etc/snmpdv3.conf The 4th field contains the hash used in the authentication protocol. If an entry exists that does not use HMAC-SHA for the authentication protocol, this is a finding.
Responsibility
System Administrator
IA Controls
DCNR-1
Management Information Base (MIB) files must not have extended ACLs.
Discussion
The ability to read the MIB file could impart special knowledge to an intruder or malicious user about the ability to extract compromising information about the system or network.
Fix Text
Remove the extended ACL from the MIB file(s) and change extended attributes to disabled. #acledit [mib file]
Check Content
Check the file permissions for the MIB files. # find / -name *.mib -print # aclget [mib file] If the extended attributes are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The snmpd.conf file must be group-owned by bin, sys, or system.
Discussion
The snmpd.conf file contains authenticators and must be protected from unauthorized access and modification. If the file is not group-owned by a system group, it may be subject to access and modification from unauthorized users.
Fix Text
Change the group owner of the SNMP configuration files. Procedure: # chgrp system /etc/snmpd.conf # chgrp system /etc/snmpdv3.conf
Check Content
Determine the group owner of the SNMP configuration files. Procedure: # ls -lL /etc/snmpd.conf /etc/snmpdv3.conf If the file is not group owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The snmpd.conf file must not have an extended ACL.
Discussion
The snmpd.conf file contains authenticators and must be protected from unauthorized access and modification.
Fix Text
Remove the extended ACL from the snmpd.conf file (or equivalent) and change extended attributes to disabled. #acledit < snmpd conf >
Check Content
Determine if the snmpd.conf file or equivalent has an extended ACL. Procedure: # find / -name "snmpd*.conf" # aclget < snmpd conf > If the extended attributes are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/syslog.conf file must have mode 0640 or less permissive.
Discussion
Unauthorized users must not be allowed to access or modify the /etc/syslog.conf file.
Fix Text
Change the permissions of the syslog configuration file. # chmod 0640 /etc/syslog.conf
Check Content
Check the permissions of the syslog configuration file. # ls -lL /etc/syslog.conf If the mode of the file is more permissive than 0640, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/syslog.conf file must not have an extended ACL.
Discussion
Unauthorized users must not be allowed to access or modify the /etc/syslog.conf file.
Fix Text
Remove the extended ACL from the syslog.conf file and change extended attributes to disabled. #acledit /etc/syslog.conf
Check Content
Check the permissions of the syslog configuration file. # aclget /etc/syslog.conf If the extended attributes are not disabled, this is a finding
Responsibility
System Administrator
IA Controls
ECLP-1
The system must use a remote syslog server (log host).
Discussion
A syslog server (log host) receives syslog messages from one or more systems. This data can be used as an authoritative log source in the event a system is compromised and its local logs are suspect.
Fix Text
Edit the syslog configuration file and add an appropriate remote syslog server.
Check Content
Check the syslog configuration file for remote syslog servers. # grep '@' /etc/syslog.conf | grep -v '^#' If no line is returned, this is a finding.
Responsibility
System Administrator
IA Controls
ECAT-1
The SSH client must be configured to only use the SSHv2 protocol.
Discussion
SSHv1 is not a DoD-approved protocol and has many well-known vulnerability exploits. Exploits of the SSH client could provide access to the system with the privileges of the user running the client.
Fix Text
Edit the /etc/ssh/ssh_config file and add or edit a Protocol configuration line that does not allow versions less than 2.
Check Content
Check the SSH client configuration for allowed protocol versions. # grep -i protocol /etc/ssh/ssh_config | grep -v '^#' If the variables Protocol 2,1 or Protocol 1 are defined on a line without a leading comment, this is a finding. If the SSH client is F-Secure, the variable name for SSH 1 compatibility is Ssh1Compatibility, not protocol. If the variable Ssh1Compatiblity is set to yes, this is a finding.
Responsibility
System Administrator
IA Controls
DCPP-1
The SSH daemon must only listen on management network addresses unless authorized for uses other than management.
Discussion
The SSH daemon should only listen on network addresses designated for management traffic. If the system has multiple network interfaces and SSH listens on addresses not designated for management traffic, the SSH service could be subject to unauthorized access. If SSH is used for purposes other than management, such as providing an SFTP service, the list of approved listening addresses may be documented.
Fix Text
Edit the SSH daemon configuration to specify listening network addresses designated for management traffic.
Check Content
Check the SSH daemon configuration for listening network addresses. # grep -i Listen /etc/ssh/sshd_config | grep -v '^#' If no configuration is returned, or if a returned Listen configuration contains addresses not designated for management traffic, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SSH daemon must be configured to only use FIPS 140-2 approved ciphers.
Discussion
DoD information systems are required to use FIPS 140-2 approved ciphers. SSHv2 ciphers meeting this requirement are 3DES and AES.
Fix Text
Edit /etc/ssh/sshd_config and add or edit the "Ciphers" line. Only include ciphers that start with "3des" or "aes" and do not contain "cbc". For the list of available ciphers for the particular version of your software, consult the sshd_config manpage. Restart the SSH daemon.
Check Content
Check the SSH daemon configuration for allowed ciphers. # grep -i ciphers /etc/ssh/sshd_config | grep -v '^#' If no lines are returned, or the returned ciphers list contains any cipher not starting with 3des or aes, this is a finding.
Responsibility
System Administrator
IA Controls
DCNR-1
The SSH daemon must be configured to not use Cipher-Block Chaining (CBC) ciphers.
Discussion
The Cipher-Block Chaining (CBC) mode of encryption as implemented in the SSHv2 protocol is vulnerable to chosen plain text attacks and must not be used.
Fix Text
Edit /etc/ssh/sshd_config and add or edit the "Ciphers" line. Only include ciphers that start with "3des" or "aes" and do not contain "cbc". For the list of available ciphers for the particular version of your software, consult the sshd_config manpage. Restart the SSH daemon.
Check Content
Check the SSH daemon configuration for allowed ciphers. # grep -i ciphers /etc/ssh/sshd_config | grep -v '^#' If no lines are returned, or the returned ciphers list contains any cipher ending with cbc, this is a finding.
Responsibility
System Administrator
The SSH daemon must be configured to only use Message Authentication Codes (MACs) employing FIPS 140-2 approved cryptographic hash algorithms.
Discussion
DoD information systems are required to use FIPS 140-2 approved cryptographic hash functions.
Fix Text
Edit the SSH daemon configuration and remove any MACs that are not hmac-sha1 or a better hmac algorithm that is on the FIPS 140-2 approved list. If necessary, add a MACs line.
Check Content
Check the SSH daemon configuration for allowed MACs. Procedure: # grep -i macs /etc/ssh/sshd_config | grep -v '^#' If no lines are returned, or the returned MACs list contains any MAC that is not hmac-sha1 or a better hmac algorithm that is on the FIPS 140-2 approved list, this is a finding.
Responsibility
System Administrator
The SSH client must be configured to only use FIPS 140-2 approved ciphers.
Discussion
DoD information systems are required to use FIPS 140-2 approved ciphers. SSHv2 ciphers meeting this requirement are 3DES and AES.
Fix Text
Edit /etc/ssh/ssh_config and add or edit the "Ciphers" line. Only include ciphers that start with "3des" or "aes" and do not contain "cbc". For the list of available ciphers for the particular version of your software, consult the ssh_config manpage.
Check Content
Check the SSH client configuration for allowed ciphers. # grep -i ciphers /etc/ssh/ssh_config | grep -v '^#' If no lines are returned, the returned ciphers list contains any cipher not starting with 3des or aes, this is a finding.
Responsibility
System Administrator
IA Controls
DCNR-1
The SSH client must be configured to not use CBC-based ciphers.
Discussion
The Cipher-Block Chaining (CBC) mode of encryption as implemented in the SSHv2 protocol is vulnerable to chosen plain text attacks and must not be used.
Fix Text
Edit /etc/ssh/ssh_config and add or edit the "Ciphers" line. Only include ciphers that start with "3des" or "aes" and do not contain "cbc". For the list of available ciphers for the particular version of your software, consult the ssh_config manpage.
Check Content
Check the SSH client configuration for allowed ciphers. # grep -i ciphers /etc/ssh/ssh_config | grep -v '^#' If no lines are returned, or the returned ciphers list contains any cipher ending with cbc, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SSH client must be configured to only use Message Authentication Codes (MACs) employing FIPS 140-2 approved cryptographic hash algorithms.
Discussion
DoD information systems are required to use FIPS 140-2 approved cryptographic hash functions.
Fix Text
Edit the SSH client configuration and remove any MACs that are not hmac-sha1 or a better hmac algorithm that is on the FIPS 140-2 approved list. If necessary, add a MACs line.
Check Content
Check the SSH client configuration for allowed MACs. Procedure: # grep -i macs /etc/ssh/ssh_config | grep -v '^#' If no lines are returned, or the returned MACs list contains any MAC that is not hmac-sha1 or a better hmac algorithm that is on the FIPS 140-2 approved list, this is a finding.
Responsibility
System Administrator
The SSH daemon must restrict login ability to specific users and/or groups.
Discussion
Restricting SSH logins to a limited group of users, such as system administrators, prevents password-guessing and other SSH attacks from reaching system accounts and other accounts not authorized for SSH access.
Fix Text
Edit the SSH daemon configuration and add an AllowGroups directive.
Check Content
Check the SSH daemon configuration for the AllowGroups setting. # grep -i AllowGroups /etc/ssh/sshd_config | grep -v '^#' If no lines are returned, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The SSH public host key files must have mode 0644 or less permissive.
Discussion
If a public host key file is modified by an unauthorized user, the SSH service may be compromised.
Fix Text
Change the permissions for the SSH public host key files. # chmod 0644 /etc/ssh/*key.pub
Check Content
Check the permissions for SSH public host key files. # ls -lL /etc/ssh/*key.pub If any file has a mode more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The SSH private host key files must have mode 0600 or less permissive.
Discussion
If an unauthorized user obtains the private SSH host key file, the host could be impersonated.
Fix Text
Change the permissions for the SSH private host key files. # chmod 0600 /etc/ssh/*key
Check Content
Check the permissions for SSH private host key files. # ls -lL /etc/ssh/*key If any file has a mode more permissive than 0600, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The SSH daemon must not permit GSSAPI authentication unless needed.
Discussion
GSSAPI authentication is used to provide additional authentication mechanisms to applications. Allowing GSSAPI authentication through SSH exposes the system’s GSSAPI to remote hosts, increasing the attack surface of the system. GSSAPI authentication must be disabled unless needed.
Fix Text
Edit /etc/ssh/sshd_config and remove the GSSAPIAuthentication setting or change the value to "no".
Check Content
Ask the SA if GSSAPI authentication is used for SSH authentication to the system. If so, this is not applicable. Check the SSH daemon configuration for the GSSAPI authentication setting. # grep -i GSSAPIAuthentication /etc/ssh/sshd_config | grep -v '^#' If the setting is present and set to "yes", this is a finding. If the setting is absent or set to "no", this is not a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SSH client must not permit GSSAPI authentication unless needed.
Discussion
GSSAPI authentication is used to provide additional authentication mechanisms to applications. Allowing GSSAPI authentication through SSH exposes the system’s GSSAPI to remote hosts, increasing the attack surface of the system. GSSAPI authentication must be disabled unless needed.
Fix Text
Edit the /etc/ssh/ssh_config file and remove the GSSAPIAuthentication setting or change the GSSAPIAuthentication setting to "no".
Check Content
Check the SSH clients configuration for the GSSAPI authentication setting. # grep -i GSSAPIAuthentication /etc/ssh/ssh_config | grep -v '^#' If the setting is present and set to "yes", this is a finding. If the setting is absent or set to "no", this is not a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SSH daemon must not permit Kerberos authentication unless needed.
Discussion
Kerberos authentication for SSH is often implemented using GSSAPI. If Kerberos is enabled through SSH, the SSH daemon provides a means of access to the system's Kerberos implementation. Vulnerabilities in the system's Kerberos implementation may then be subject to exploitation. To reduce the attack surface of the system, the Kerberos authentication mechanism within SSH must be disabled for systems not using this capability.
Fix Text
Edit the /etc/ssh/sshd_config file and remove the KerberosAuthentication setting or change the value of the setting to "no".
Check Content
Ask the SA if Kerberos authentication is used by the system. If it is, this is not applicable. Check the SSH daemon configuration for the Kerberos authentication setting. # grep -i KerberosAuthentication /etc/ssh/sshd_config | grep -v '^#' If the setting is present and set to "yes", this is a finding. If the setting is missing or set to "no", this is not a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SSH daemon must limit connections to a single session.
Discussion
The SSH protocol has the ability to provide multiple sessions over a single connection without reauthentication. A compromised client could use this feature to establish additional sessions to a system without consent or knowledge of the user. Alternate per-connection session limits may be documented if needed for a valid mission requirement. Greater limits are expected to be necessary in situations where TCP or X11 forwarding are used.
Fix Text
Edit the SSH daemon configuration and add or edit the MaxSessions setting value to 1.
Check Content
Check the SSH daemon configuration for the MaxSessions setting. # grep -i MaxSessions /etc/ssh/sshd_config | grep -v '^#' If the setting is not present, or not set to 1, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SSH daemon must perform strict mode checking of home directory configuration files.
Discussion
If other users have access to modify user-specific SSH configuration files, they may be able to log into the system as another user.
Fix Text
Edit the /etc/sshd/sshd_config file and remove the StrictModes setting or change the value of the StrictModes setting to "yes".
Check Content
Check the SSH daemon configuration for the StrictModes setting. # grep -i StrictModes /etc/ssh/sshd_config | grep -v '^#' If the setting is present and set to "no", this is a finding. If the setting is not present or is set to "yes", this is not a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The SSH daemon must use privilege separation.
Discussion
SSH daemon privilege separation causes the SSH process to drop root privileges when not needed, which would decrease the impact of software vulnerabilities in the unprivileged section.
Fix Text
Edit the /etc/ssh/sshd_config file and remove the UsePrivilegeSeparation setting or change the value of the UsePrivilegeSeparation setting to "yes".
Check Content
Check the SSH daemon configuration for the UsePrivilegeSeparation setting. # grep -i UsePrivilegeSeparation /etc/ssh/sshd_config | grep -v '^#' If the setting is present and set to "no", this is a finding. If the setting is not present or is set to "yes", this is not a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The SSH daemon must not allow rhosts RSA authentication.
Discussion
If SSH permits rhosts RSA authentication, a user may be able to log in based on the keys of the host originating the request and not any user-specific authentication.
Fix Text
Edit the /etc/ssh/sshd_config file and remove the RhostsRSAAuthentication setting or change the value of the RhostsRSAAuthentication setting to "no".
Check Content
Check the SSH daemon configuration for the RhostsRSAAuthentication setting. # grep -i RhostsRSAAuthentication /etc/ssh/sshd_config | grep -v '^#' If the setting is present and set to "yes", this is a finding. If the setting is absent or set to "no", this is not a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SSH daemon must not allow compression or must only allow compression after successful authentication.
Discussion
If compression is allowed in an SSH connection prior to authentication, vulnerabilities in the compression software could result in compromise of the system from an unauthenticated connection, potentially with root privileges.
Fix Text
Edit the /etc/ssh/sshd_config file and remove the Compression setting or set the Compression setting to "delayed" or "no".
Check Content
Check the SSH daemon configuration for the Compression setting. # grep -i Compression /etc/ssh/sshd_config | grep -v '^#' If the setting is present and set to "yes", this is a finding. If the setting is absent or set to "no" or "delayed", this is not a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The SSH daemon must be configured with the Department of Defense (DoD) logon banner.
Discussion
Failure to display the DoD logon banner prior to a log in attempt will negate legal proceedings resulting from unauthorized access to system resources. The SSH service must be configured to display the DoD logon warning banner either through the SSH configuration or a wrapper program, such as TCP_WRAPPERS. The SSH daemon may also be used to provide SFTP service. The warning banner configuration for SSH will apply to SFTP.
Fix Text
Edit the SSH daemon configuration and add (or edit) a banner setting referencing a file containing a logon warning banner. DoD Login Banners: "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." OR "I've read & consent to terms in IS user agreem't."
Check Content
Verify the SSH daemon is configured for logon warning banners. # grep -i banner /etc/ssh/sshd_config | grep -v '^#' # cat [banner file] Verify the banner configuration line is present and the file it references contains a logon warning banner. Check for either of the following login banners based on the character limitations imposed by the system. An exact match is required. If one of these banners is not displayed, this is a finding. "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." OR "I've read & consent to terms in IS user agreem't." If the SSH daemon is not configured to display the logon warning banner, this is a finding.
Responsibility
System Administrator
IA Controls
ECWM-1
The system must be configured with a default gateway for IPv6 if the system uses IPv6, unless the system is a router.
Discussion
If a system has no default gateway defined, the system is at increased risk of man-in-the-middle, monitoring, and Denial of Service attacks.
Fix Text
Configure an IPv6 default route on the system. # smitty route
Check Content
If the system is a router, this is not applicable. If the system does not use IPv6, this is not applicable. Determine if the system has a default route configured for IPv6. # netstat -r | grep default If a default route is not defined, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have IP forwarding for IPv6 enabled, unless the system is an IPv6 router.
Discussion
If the system is configured for IP forwarding and is not a designated router, it could be used to bypass network security by providing a path for communication not filtered by network devices.
Fix Text
Disable IPv6 forwarding on the system. # /usr/sbin/no -p -o ip6forwarding=0
Check Content
# /usr/sbin/no -o ip6forwarding If the value returned is 1, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The NFS export configuration file must be group-owned by root, bin, sys, or system.
Discussion
Failure to give group ownership of the NFS export configuration file to root or a system group provides the designated group owner and possible unauthorized users with the potential to change system configuration which could weaken the system's security posture.
Fix Text
Change the group ownership of the NFS export configuration file to root, bin, sys, or system. Procedure: # chgrp root /etc/exports
Check Content
Check the group ownership of the NFS export configuration file. Procedure: # ls -lL /etc/exports If the file is not group-owned by root, bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The NFS exports configuration file must not have an extended ACL.
Discussion
File system extended ACLs provide access to files beyond what is allowed by the mode numbers of the files. Excessive permissions on the NFS export configuration file could allow unauthorized modification of the file, which could result in Denial of Service to authorized NFS exports and the creation of additional unauthorized exports.
Fix Text
Remove the extended ACL from the NFS export configuration file and change extended attributes to disabled. #acledit /etc/exports
Check Content
# aclget /etc/exports If the extended attributes are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All NFS-exported system files and system directories must be group-owned by root, bin, sys, or system.
Discussion
Failure to give group ownership of sensitive files or directories to root provides the members of the owning group with the potential to access sensitive information or change system configuration which could weaken the system's security posture.
Fix Text
Change the group owner of NFS exported directories to root.
Check Content
Determine if the NFS exported directories on the system are group-owned by root. If any are not, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /usr/lib/smb.conf file must not have an extended ACL.
Discussion
Excessive permissions could endanger the security of the Samba configuration file and, ultimately, the system and network.
Fix Text
Remove the extended ACL from the /usr/lib/smb.conf file and change extended attributes to disabled. #acledit /usr/lib/smb.conf
Check Content
Check the group ownership of the Samba configuration file. # aclget /usr/lib/smb.conf If the extended attributes are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /var/private/smbpasswd file must not have an extended ACL.
Discussion
If the permissions of the smbpasswd file are too permissive, the smbpasswd file may be maliciously accessed or modified, potentially resulting in the compromise of Samba accounts.
Fix Text
Remove the extended ACL from the /var/private/smbpasswd file. # acledit /var/private/smbpasswd
Check Content
Check the group ownership of the Samba configuration file. # aclget /var/private/smbpasswd If the extended attributes are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Samba must be configured to use an authentication mechanism other than share.
Discussion
Samba share authentication does not provide for individual user identification and must not be used.
Fix Text
Edit the /usr/lib/smb.conf file and change the security setting to user or another valid setting other than share. # vi /usr/lib/smb.conf
Check Content
Check the security mode of the Samba configuration. # grep -i security /usr/lib/smb.conf If the security mode is share, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
Samba must be configured to use encrypted passwords.
Discussion
Samba must be configured to protect authenticators. If Samba passwords are not encrypted for storage, plain-text user passwords may be read by those with access to the Samba password file.
Fix Text
Edit the smb.conf file and change the encrypt passwords setting to yes. # vi /usr/lib/smb.conf
Check Content
Check the encryption setting the Samba configuration. # grep -i 'encrypt passwords' /usr/lib/smb.conf If the setting is not present, or not set to yes, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
Samba must be configured to not allow guest access to shares.
Discussion
Guest access to shares permits anonymous access and is not permitted.
Fix Text
Edit the smb.conf file and change the guest ok setting to no. # vi /usr/lib/smb.conf
Check Content
Check the encryption setting the Samba configuration. # grep -i 'guest ok' /usr/lib/smb.conf If the setting exists and is set to yes, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The /etc/news/hosts.nntp file must not have an extended ACL.
Discussion
File system extended ACLs provide access to files beyond what is allowed by the numbers of the files. Excessive permissions on the hosts.nntp file may allow unauthorized modification which could lead to Denial of Service to authorized users or provide access to unauthorized users.
Fix Text
Remove the extended ACL from the hosts.nntp file. #acledit < hosts.nntp file >
Check Content
Check the permissions of the hosts.nntp file. # find / -type f -name hosts.nntp # aclget < hosts.nntp file > If extended permissions are enabled, the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/news/hosts.nntp.nolimit file must not have an extended ACL.
Discussion
File system extended ACLs provide access to files beyond what is allowed by the mode numbers of the files. Excessive permissions on the hosts.nntp.nolimit file may allow unauthorized modification which could lead to Denial of Service to authorized users or provide access to unauthorized users.
Fix Text
Remove the extended ACL from the hosts.nntp.nolimit file. # acledit < hosts.nntp.nolimit > Set the extended permissions to disabled.
Check Content
Check the permissions of the file. # find / -name hosts.nntp.nolimit # aclget < hosts.nntp.nolimit > If the extended permissions are enabled the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/news/nnrp.access file must not have an extended ACL.
Discussion
File system extended ACLs provide access to files beyond what is allowed by the mode numbers of the files. Excessive permissions on the nnrp.access file may allow unauthorized modification which could lead to Denial of Service to authorized users or provide access to unauthorized users.
Fix Text
Remove the extended ACL from the nnrp.access file. # acledit < nnrp.access >
Check Content
Check the permissions of the file. # find / -name nnrp.access # ls -lL < nnrp.access > If extended permissions are enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/news/passwd.nntp file must not have an extended ACL.
Discussion
Extended ACLs may provide excessive permissions on the /etc/news/passwd.nntp file, which may permit unauthorized access or modification to the NNTP configuration.
Fix Text
Remove the extended ACL from the passwd.nntp file. # acledit < passwd.nntp >
Check Content
Check the permissions of the file. # find / -name passwd.nntp # ls -lL < passwd.nntp > If extended permissions are enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The system package management tool must be used to verify system software periodically.
Discussion
Verification using the system package management tool can be used to determine that system software has not been tampered with. This requirement is not applicable to systems that do not use package management tools.
Fix Text
Add a job to the root crontab invoking the system package management tool to verify the integrity of installed packages. # lppchk -c
Check Content
Check the root crontab for a job invoking the system package management tool to verify the integrity of installed packages. # crontab -l | grep lppchk If no such job exists, this is a finding.
Responsibility
System Administrator
IA Controls
ECAT-1
The file integrity tool must be configured to verify ACLs.
Discussion
ACLs can provide permissions beyond those permitted through the file mode and must be verified by file integrity tools.
Fix Text
If using AIDE, edit the configuration and add the acl option for all monitored files and directories. If using a different file integrity tool, configure ACL checking per the tool's documentation.
Check Content
If using AIDE, verify the configuration contains the acl option for all monitored files and directories. Here is an example AIDE configuration fragment. SampleRule = p+i+l+n+u+g+s+m+c+acl+xattrs+sha256 /bin SampleRule If the acl option is not present, this is a finding. If using a different file integrity tool, check the configuration per tool documentation.
Responsibility
System Administrator
IA Controls
ECAT-1
The file integrity tool must be configured to verify extended attributes.
Discussion
Extended attributes in file systems are used to contain arbitrary data and file metadata with security implications.
Fix Text
If using AIDE, edit the configuration and add the xattrs option for all monitored files and directories. If using a different file integrity tool, configure extended attributes checking per the tool's documentation.
Check Content
If using AIDE, verify the configuration contains the xattrs option for all monitored files and directories. Here is an example AIDE configuration fragment. SampleRule = p+i+l+n+u+g+s+m+c+acl+xattrs+sha256 /bin SampleRule If the xattrs option is not present, this is a finding. If using a different file integrity tool, check the configuration per tool documentation.
Responsibility
System Administrator
IA Controls
ECAT-1
The file integrity tool must use FIPS 140-2 approved cryptographic hashes for validating file contents.
Discussion
File integrity tools often use cryptographic hashes for verifying that file contents have not been altered. These hashes must be FIPS 140-2 approved.
Fix Text
If using AIDE, edit the configuration and add the sha256 or sha512 option for all monitored files and directories. If using a different file integrity tool, configure FIPS 140-2 approved cryptographic hashes per the tool's documentation.
Check Content
If using AIDE, verify the configuration contains the sha256 or sha512 options for all monitored files and directories. Here is an example AIDE configuration fragment. SampleRule = p+i+l+n+u+g+s+m+c+acl+xattrs+sha256 /bin SampleRule If either the sha256 or sha512 option is not present, this is a finding. If using a different file integrity tool, check the configuration per tool documentation.
Responsibility
System Administrator
IA Controls
ECSC-1
The Stream Control Transmission Protocol (SCTP) must be disabled unless required.
Discussion
The Stream Control Transmission Protocol (SCTP) is an IETF-standardized transport layer protocol. This protocol is not yet widely used. Binding this protocol to the network stack increases the attack surface of the host. Unprivileged local processes may be able to cause the system to dynamically load a protocol handler by opening a socket using the protocol.
Fix Text
If SCTP is installed and not required, unload it from the kernel and uninstall it from the system. # sctpctrl unload Use SMIT to uninstall the bos.net.sctp fileset.
Check Content
Check the system to determine if SCTP is installed. # lslpp -L bos.net.\* If the bos.net.sctp fileset is not listed, SCTP is not installed, and this is not a finding. If the bos.net.sctp fileset is installed, ask the SA if SCTP is required for the system. If it is not, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The Reliable Datagram Sockets (RDS) protocol must be disabled or not installed unless required.
Discussion
The Reliable Datagram Sockets (RDS) protocol is a relatively new protocol developed by Oracle for communication between the nodes of a cluster. Binding this protocol to the network stack increases the attack surface of the host. Unprivileged local processes may be able to cause the system to dynamically load a protocol handler by opening a socket using the protocol.
Fix Text
Configure the system to not automatically load the RDS protocol handler. Check startup scripts for 'bypassctrl load rds' and comment out the bypassctrl commands. Unload the driver from the kernel. # bypassctrl unload rds
Check Content
AIX has RDS protocol installed as part of the 'bos.net.tcp.client' fileset. The RDS protocol in primarily used for communication on INFI-Band interfaces. The protocol is manually loaded with the bypassctrl command. Determine if RDS is currently loaded. #genkex | grep rds If the RDS protocol is loaded, ask the SA if RDS is required by application software running on the system. If so, this is not applicable. If the RDS protocol is loaded and the protocol is not used by application software, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
Proxy Neighbor Discovery Protocol (NDP) must not be enabled on the system.
Discussion
Proxy Neighbor Discovery Protocol (NDP) allows a system to respond to NDP requests on one interface on behalf of hosts connected to another interface. If this function is enabled when not required, addressing information may be leaked between the attached network segments.
Fix Text
Remove non-local published NDP entries from the system. # ndp -d <host> Check system startup scripts for commands publishing NDP entries (such as "ndp -s <int> <host> <hwaddr> pub") and remove them.
Check Content
If the system does not support proxy NDP, this is not applicable. Determine if the system has proxy NDP enabled. If IPv6 is enabled, determine if any non-local published NDP entries exist on the system. # ndp -a If any NDP entries contain non-local published entries, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have 6to4 enabled.
Discussion
6to4 is an IPv6 transition mechanism involving tunneling IPv6 packets encapsulated in IPv4 packets on an ad-hoc basis. This is not a preferred transition strategy and increases the attack surface of the system.
Fix Text
Remove the configuration for any 6to4 tunnels on the system. #ifconfig sit0 detach #rmdev -dl sit0 #ifconfig cit0 detach #rmdev -dl cit0 Set the startup script /etc/rc.net to call autoconf6 with the -6 argument to prevent setting up 6 to 4 tunnels.
Check Content
Determine if there are any 6to4 tunnels configured on the system. #ifconfig -a If there are any sit or cit adapters in the ifconfig listing, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have IP tunnels configured.
Discussion
IP tunneling mechanisms can be used to bypass network filtering.
Fix Text
Remove the configuration for any IP tunnels from the system. Remove tunnels listed with the lstun command. #rmtun -t <Tunnel id> -d Remove the tunneled IP interfaces. #ifconfig <if name> detach #rmdev -Rdl <if name>
Check Content
Determine if any IP tunnels are configured on the system. Check for IP tunnels. # lstun -a # ifconfig -a | grep -e gre -e gif -e cti -e sit If any tunnels are listed, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The DHCP client must be disabled if not needed.
Discussion
DHCP allows for the unauthenticated configuration of network parameters on the system by exchanging information with a DHCP server.
Fix Text
Disable the system's DHCP client. Edit /etc/rc.tcpip, comment out the line starting dhcpcd. Reboot the system to ensure the DHCP client has been disabled fully. Configure a static IP for the system, if network connectivity is required.
Check Content
If the DHCP client is needed by the system, this is not applicable. Determine if the DHCP client is disabled. # ps -ef |grep dhcpcd If dhcpcd is running, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The DHCP client must not send dynamic DNS updates.
Discussion
Dynamic DNS updates transmit unencrypted information about a system including its name and address and should not be used unless needed.
Fix Text
Configure the system's DHCP client to not send dynamic DNS updates. Remove / comment updateDNS lines from the /etc/dhcpcd.ini and /etc/dhcpc.opt files.
Check Content
Determine if the system's DHCP client is configured to send dynamic DNS updates. #grep "^updateDNS" /etc/dhcpc.opt /etc/dhcpcd.ini If any lines are returned, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must ignore IPv6 ICMP redirect messages.
Discussion
ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages modify the host's route table and are unauthenticated. An illicit ICMP redirect message could result in a man-in-the-middle attack.
Fix Text
Configure the system to ignore IPv6 ICMP redirect messages. # /usr/sbin/no -p -o ipignoreredirects=1
Check Content
Determine if the system is configured to ignore IPv6 ICMP redirect messages. If it is not, this is a finding. # /usr/sbin/no -o ipignoreredirects If the value returned is not 1, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not send IPv6 ICMP redirects.
Discussion
ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages contain information from the system's route table that could reveal portions of the network topology.
Fix Text
Configure the system to not send IPv6 ICMP redirects. # /usr/sbin/no -p -o ipsendredirects=0
Check Content
# /usr/sbin/no -o ipsendredirects If the value returned is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must use an appropriate reverse-path filter for IPv6 network traffic, if the system uses IPv6.
Discussion
Reverse-path filtering provides protection against spoofed source addresses by causing the system to discard packets that have source addresses for which the system has no route or if the route does not point towards the interface on which the packet arrived. Depending on the role of the system, reverse-path filtering may cause legitimate traffic to be discarded and, therefore, should be used with a more permissive mode or filter, or not at all. Whenever possible, reverse-path filtering should be used.
Fix Text
Configure the system to use reverse-path filtering using IP Sec filters. Add rules to block traffic with loopback network source addresses from being received on interfaces other than the loopback, such as other ethernet interfaces. Use smitty or genfilt command to block loopback address from network interfaces. # smitty ipsec6 # genfilt -v6 -a D -s <source address> -m <source netmask> -d <destination address> -M <Destination mask> -c all -o any -O any -p 0 -P 0 -w I -l y -a en0 If the system is multihomed and the attached networks are isolated or perform symmetric routing, add rules to block traffic with source addresses expected on one interface when received on another interface. # smitty ipsec6
Check Content
Determine if the system is configured to use reverse-path filtering. Examine the IPSec rules on the system. # lsfilt -a All systems must block inbound traffic destined to the loopback address from other network interfaces. Additionally, if the system is multihomed and the attached networks are isolated or perform symmetric routing, traffic with source addresses expected on one interface must be blocked when received on another interface. If filtering is not configured on the system, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not forward IPv6 source-routed packets.
Discussion
Source-routed packets allow the source of the packet to suggest routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the forwarding of source-routed traffic, such as when IPv6 forwarding is enabled and the system is functioning as a router.
Fix Text
Configure the system so it does not forward IPv6 source-routed packets. # /usr/sbin/no -p -o ip6srcrouteforward=0
Check Content
# /usr/sbin/no -o ip6srcrouteforward If the value returned is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not accept source-routed IPv6 packets.
Discussion
Source-routed packets allow the source of the packet to suggest routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the handling of source-routed traffic destined to the system itself, not to traffic forwarded by the system to another, such as when IPv6 forwarding is enabled and the system is functioning as a router.
Fix Text
Configure the system to not accept source-routed IPv6 packets. # /usr/sbin/no -p -o ipsrcrouterecv=0
Check Content
# /usr/sbin/no -o ipsrcrouterecv If the value returned is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
If the system is using LDAP for authentication or account information, certificates used to authenticate to the LDAP server must be provided from DoD PKI or a DoD-approved external PKI.
Discussion
LDAP can be used to provide user authentication and account information, which are vital to system security. Communication between an LDAP server and a host using LDAP requires authentication.
Fix Text
Create a key database with DoD PKI or DoD-approved certificate. #gsk7cmd OR #ikeyman Edit /etc/security/ldap/ldap.conf and add or edit the ldapsslkeyf setting to reference a file containing a client certificate issued by DoD PKI or a DoD-approved external PKI.
Check Content
Check if the system is using LDAP authentication. #grep LDAP /etc/security/user If no lines are returned, this vulnerability is not applicable. Check if the useSSL option is enabled. #grep '^useSSL' /etc/security/ldap/ldap.cfg If yes is not the returned value, this is a finding. Verify a certificate is used for client authentication to the server. #grep -I '^ldapsslkeyf' /etc/security/ldap/ldap.cfg If no line is found, this is a finding. List the certificate issuer with IBM GSK. #gsk7cmd -cert -list CA -db <certificate keyfile.kdb> -pw <Password> Make note of the client Key Label. #gsk7cmd -cert -details -showOID -db <certificate key.kdb> -pw <Password> -label <Key Label> If the certificate is not issued by DoD PKI or a DoD-approved external PKI, this is a finding.
Responsibility
System Administrator
IA Controls
DCNR-1
If the system is using LDAP for authentication or account information, the LDAP TLS connection must require the server provide a certificate and this certificate has a valid trust path to a trusted CA.
Discussion
The NSS LDAP service provides user mappings which are a vital component of system security. Communication between an LDAP server and a host using LDAP for NSS require authentication.
Fix Text
Install a certificate signed by a DoD PKI or a DoD-approved external PKI. #gsk7cmd < or > ikeyman Remove un-needed CA certificates. #gsk7cmd < or > ikeyman
Check Content
Check if the system is using LDAP authentication. #grep LDAP /etc/security/user If no lines are returned, this vulnerability is not applicable. Verify SSL is enabled. #grep '^useSSL' /etc/security/ldap/ldap.cfg If yes is not the returned value, this is a finding. Verify a server certificate is required and verified by the LDAP configuration. #grep -I '^ldapsslkeyf' /etc/security/ldap/ldap.cfg Make note of the key database file location. #gsk7cmd -cert -list CA -db <certificate keyfile.kdb> -pw <Password> Make note of the Key Label. #gsk7cmd -cert -details -showOID -db <certificate key.kdb> -pw <Password> -label <Key Label> THE IBM GSK Database should only have certificates for the client system and for the LDAP server. If more certificates are in the key database than the LDAP server and the client, this is a finding.
Responsibility
System Administrator
IA Controls
DCNR-1
If the system is using LDAP for authentication or account information the /etc/ldap.conf (or equivalent) file must have mode 0644 or less permissive.
Discussion
LDAP can be used to provide user authentication and account information, which are vital to system security. The LDAP client configuration must be protected from unauthorized modification.
Fix Text
Change the permissions of the /etc/security/ldap/ldap.cfg file to 0644 or less permissive. # chmod 0644 /etc/security/ldap/ldap.cfg
Check Content
Check the permissions of the /etc/security/ldap/ldap.cfg file. # ls -lL /etc/security/ldap/ldap.cfg If the mode of the file is more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
If the system is using LDAP for authentication or account information, the /etc/ldap.conf (or equivalent) file must be owned by root.
Discussion
LDAP can be used to provide user authentication and account information, which are vital to system security. The LDAP client configuration must be protected from unauthorized modification.
Fix Text
Change the owner of the /etc/security/ldap/ldap.cfg file. # chown root /etc/security/ldap/ldap.cfg
Check Content
Check the ownership of the /etc/security/ldap/ldap.cfg file. # ls -lL /etc/security/ldap/ldap.cfg If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
If the system is using LDAP for authentication or account information, the /etc/ldap.conf (or equivalent) file must be group-owned by security, bin, sys, or system.
Discussion
LDAP can be used to provide user authentication and account information, which are vital to system security. The LDAP client configuration must be protected from unauthorized modification.
Fix Text
Change the group owner of the /etc/security/ldap/ldap.cfg file to security, bin, sys, or system. Procedure: # chgrp security /etc/security/ldap/ldap.cfg
Check Content
Check the group ownership of the ldap.cfg file. Procedure: # ls -lL /etc/security/ldap/ldap.cfg If the file is not group-owned by bin, security, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
If the system is using LDAP for authentication or account information, the /etc/ldap.conf (or equivalent) file must not have an extended ACL.
Discussion
LDAP can be used to provide user authentication and account information, which are vital to system security. The LDAP client configuration must be protected from unauthorized modification.
Fix Text
Remove the extended ACL from the /etc/security/ldap/ldap.cfg file. # acledit /etc/security/ldap/ldap.cfg Disable extended file permissions.
Check Content
Check the permissions of the /etc/security/ldap/ldap.cfg file. Procedure: # aclget /etc/security/ldap/ldap.cfg Check to see if extended permissions are enabled. If extended permissions are enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
If the system is using LDAP for authentication or account information, the TLS certificate authority file and/or directory (as appropriate) must be owned by root.
Discussion
LDAP can be used to provide user authentication and account information, which are vital to system security. The LDAP client configuration must be protected from unauthorized modification.
Fix Text
Change the ownership of the SSL key database file or directory. # chown root <certpath>
Check Content
Determine the SSL Certificate database file and/or directory. # grep -i '^ldapsslkeyf' /etc/security/ldap/ldap.cfg For each file or directory returned, check the ownership. # ls -lLd <certpath> If the owner of any file or directory is not root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
If the system is using LDAP for authentication or account information, the TLS certificate authority file and/or directory (as appropriate) must be group-owned by root, bin, sys, or system.
Discussion
LDAP can be used to provide user authentication and account information, which are vital to system security. The LDAP client configuration must be protected from unauthorized modification.
Fix Text
Change the group ownership of LDAP client SSL certificate database file to root, security, bin, sys, or system. Procedure: # chgrp system < certificate file >
Check Content
Check the group ownership of the SSL key database file. Determine the location of the SSL key database. # grep -i '^ldapsslkeyf' /etc/security/ldap/ldap.cfg Check the group ownership of the SSL key database file. # ls -lLa <ldap certificate file(s) or directories> If a certificate file or directory is not group-owned by root, bin, security, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
If the system is using LDAP for authentication or account information, the TLS certificate authority file and/or directory (as appropriate) must have mode 0644 (0755 for directories) or less permissive.
Discussion
LDAP can be used to provide user authentication and account information, which are vital to system security. The LDAP client configuration must be protected from unauthorized modification.
Fix Text
Change the mode of the file to 0644 or the directory to 0755 or less permissive. File Procedure: # chmod 0644 < SSL key database certpath > Directory Procedure: # chmod 0755 < SSL key database certpath >
Check Content
Determine the SSL certificate key database file and/or directory. Procedure: # grep -i '^ldapsslkeyf' /etc/security/ldap/ldap.cfg For each file or directory returned, check the permissions. Procedure: # ls -lLd <certpath> If the mode of the file is more permissive than 0644 (or 0755 for directories), this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
If the system is using LDAP for authentication or account information, the LDAP TLS certificate authority file and/or directory (as appropriate) must not have an extended ACL.
Discussion
LDAP can be used to provide user authentication and account information, which are vital to system security. The LDAP client configuration must be protected from unauthorized modification.
Fix Text
Remove the extended ACL from the SSL certificate key database file. # acledit < certpath > # acledit < certpath >/<certfile > Disable the extended file permissions.
Check Content
Determine the SSL certificate key database file and/or directory. # grep -i '^ldapsslkeyf' /etc/security/ldap/ldap.cfg For each file or directory returned, check the permissions. # aclget < certpath > # aclget < certpath >/< certfile > If extended file permissions are enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The system must use available memory address randomization techniques.
Discussion
Successful exploitation of buffer overflow vulnerabilities relies in some measure to having a predictable address structure of the executing program. Address randomization techniques reduce the probability of a successful exploit.
Fix Text
Configure the system to use any available memory address randomization techniques. Recommended settings are either to enable stack execution disablement for all suid files or select system executables. Set sedmgr to enforce on selected files and terminate processes violating stack execution boundaries. # sedmgr -m select -o off OR Set sedmgr to enforce on setid files and terminate processes violating stack execution boundaries. # sedmgr -m setidfiles -o off After a global system change to the sed, the system should be rebooted. # shutdown -Fr
Check Content
Running the sedmgr command without any options will show the settings currently in effect. #sedmgr If the value returned for the sedmgr mode is off, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
Automated file system mounting tools must not be enabled unless needed.
Discussion
Automated file system mounting tools may provide unprivileged users with the ability to access local media and network shares. If this access is not necessary for the system’s operation, it must be disabled to reduce the risk of unauthorized access to these resources.
Fix Text
Disable the automated file system mounting tools. Empty the /etc/auto_master file kill automount kill < pid of automount >
Check Content
Determine if the system uses automated file system mounting tools (such as autofs or automount). AIX can use automount facility. #ps -ef | grep -v grep | grep automount If the automount process is running, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must have USB disabled unless needed.
Discussion
USB is a common computer peripheral interface. USB devices may include storage devices that could be used to install malicious software on a system or exfiltrate data.
Fix Text
Disable USB devices on the system. Use SMIT to remove the following filesets. devices.usbif.* # smitty remove
Check Content
AIX has server USB drivers installed, such as keyboard, mount, and mass media drivers. Determine if the system has USB enabled. # lsdev -C | grep usb # lslpp -l | grep usb If usb filesets are installed on the system, USB is enabled and this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must have USB Mass Storage disabled unless needed.
Discussion
USB is a common computer peripheral interface. USB devices may include storage devices that could be used to install malicious software on a system or exfiltrate data.
Fix Text
Disable USB mass storage on the system by using SMIT to remove the following filesets. devices.usbif.010100 devices.usbif.08025002 devices.usbif.080400 # smitty remove
Check Content
If the system uses USB mass storage, this is not applicable. # lslpp -l | grep -e devices.usbif.010100 -e devices.usbif.08025 -e devices.usbif.080400 If these filesets are installed on the system, USB mass storage is enabled and this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must employ a local firewall.
Discussion
A local firewall protects the system from exposing unnecessary or undocumented network services to the local enclave. If a system within the enclave is compromised, firewall protection on an individual system continues to protect it from attack.
Fix Text
Configure the system to use a local firewall. Use SMIT to load the IPSEC filesets. #smit install Use SMIT to configure filters. #smit ipsec4
Check Content
Determine if the system is using a local firewall. # lsfilt # smitty ipsec4 If local firewall is not configured and running, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system's local firewall must implement a deny-all, allow-by-exception policy.
Discussion
A local firewall protects the system from exposing unnecessary or undocumented network services to the local enclave. If a system within the enclave is compromised, firewall protection on an individual system continues to protect it from attack.
Fix Text
Configure the system's local firewall to implement a deny-all, allow-by-exception policy. Firewall rules can be added and activated with SMIT ipsec4 or genfilt command. #smitty ipsec4
Check Content
Determine if the system's local firewall implements a deny-all, allow-by-exception policy. View the firewall (filter rules) with smit or lsfilt commands. # smitty ipsec4 # lsfilt If there is not a deny-all, allow-by-exception policy, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not be running any routing protocol daemons, unless the system is a router.
Discussion
Routing protocol daemons are typically used on routers to exchange network topology information with other routers. If this software is used when not required, system network information may be unnecessarily transmitted across the network.
Fix Text
Disable any routing protocol daemons.
Check Content
Check for any running routing protocol daemons. # ps -ef | egrep '(ospf|route|bgp|zebra|quagga|gate)' If any routing protocol daemons are listed, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
System audit logs must be group-owned by bin, sys, or system.
Discussion
Sensitive system and user information could provide a malicious user with enough information to penetrate further into the system.
Fix Text
Change the group ownership of the audit log file(s). Procedure: # chgrp system < audit log file >
Check Content
Procedure: # grep -p bin: /etc/security/audit/config Directories to search will be listed under the bin stanza. # ls -la <audit directories> If any audit log file is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1, ECTP-1
The FTPS/FTP service on the system must be configured with the Department of Defense (DoD) login banner.
Discussion
Failure to display the login banner prior to a logon attempt will negate legal proceedings resulting from unauthorized access to system resources. NOTE: SFTP and FTPS are encrypted alternatives to FTP and should be used in place of FTP. SFTP is implemented by the SSH service and uses its banner configuration.
Fix Text
Configure the system to display one of the DoD login banners (based on the character limitations imposed by the system) prior to any FTP login attempt. Add a banner file to the system with the DoD login banner. #vi /etc/herald <Add DoD banner to file> #chmod 644 /etc/herald #chown root:system /etc/herald Add a herald line to the /etc/ftpaccess.ctl file. #vi /etc/ftpaccess.ctl <add/update line in /etc/ftpaccess.ctl> herald: /etc/herald #chown root:system /etc/ftpaccess.ctl #chmod 640 /etc/ftpaccess.ctl DoD Login Banners: "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." OR "I've read & consent to terms in IS user agreem't."
Check Content
FTP to the system. # ftp localhost Check for either of the following login banners based on the character limitations imposed by the system. An exact match is required. If one of these banners is not displayed, this is a finding. If the system does not run the FTP service, this is not applicable. DoD Login Banners: "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." OR "I've read & consent to terms in IS user agreem't."
Responsibility
System Administrator
IA Controls
ECWM-1
The system must use a separate file system for /var.
Discussion
The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.
Fix Text
Migrate the /var path onto a separate file system.
Check Content
Determine if the /var path is a separate file system. # df -k /var If /var is not on its own file system, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must use a separate file system for the system audit data path.
Discussion
The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.
Fix Text
Migrate the system audit data path onto a separate file system. Update the /etc/security/audit/config file as necessary to reflect the location of the audit data.
Check Content
Determine the location of the audit data path. #more /etc/security/audit/config Make note of the binfile and trail location. (The best practice is to have the audit data and trails sent to /audit.) # cd < audit path > #df -k . If the system audit data path is not on a separate file system, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must use a separate file system for /tmp (or equivalent).
Discussion
The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.
Fix Text
Migrate the /tmp path onto a separate file system.
Check Content
Determine if the /tmp path is a separate file system. # df -k /tmp If /tmp is not its own file system, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
TCP backlog queue sizes must be set appropriately.
Discussion
To provide some mitigation to TCP DoS attacks, the clear_partial_conns parameter must be enabled.
Fix Text
# /usr/sbin/no -po clean_partial_conns=1
Check Content
# /usr/sbin/no -o clean_partial_conns If the value returned is 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
Mail relaying must be restricted.
Discussion
If unrestricted mail relaying is permitted, unauthorized senders could use this host as a mail relay for the purpose of sending SPAM or other unauthorized activity.
Fix Text
If the system uses Sendmail, edit the sendmail.mc file and remove the promiscuous_relay configuration. Rebuild the sendmail.cf file from the modified sendmail.mc and restart the service. If the system does not need to receive mail from external hosts, add one or more DaemonPortOptions lines referencing system loopback addresses (such as "O DaemonPortOptions=Addr=127.0.0.1, Port=smtp, Name=MTA") and remove lines containing non-loopback addresses. Restart the service. If the system uses Postfix, edit the main.cf file and add or edit the smtpd_client_restrictions line to have contents permit mynetworks, reject or a similarly restrictive rule. If the system does not need to receive mail from external hosts, add or edit the inet_interfaces line to have contents loopback-only or a set of loopback addresses for the system. Restart the service. If the system is using other SMTP software, consult the software's documentation for procedures to restrict mail relaying.
Check Content
If the system uses Sendmail, locate the sendmail.cf file. Procedure: # find / -name sendmail.cf Determine if Sendmail only binds to loopback addresses by examining the DaemonPortOptions configuration options. Procedure: # grep -i "O DaemonPortOptions" /etc/mail/sendmail.cf If there are uncommented DaemonPortOptions lines, and all such lines specify system loopback addresses, this is not a finding. Otherwise, determine if Sendmail is configured to allow open relay operation. Procedure: # find / -name sendmail.mc # grep -i promiscuous_relay </path/to/sendmail.mc> If the promiscuous relay feature is enabled, this is a finding. If the system uses Postfix, locate the main.cf file. Procedure: # find / -name main.cf Determine if Postfix only binds to loopback addresses by examining the inet_interfaces line. Procedure: # grep inet_interfaces </path/to/main.cf> If inet_interfaces is set to loopback-only or contains only loopback addresses such as 127.0.0.1 and [::1], Postfix is not listening on external network interfaces, and this is not a finding. Otherwise, determine if Postfix is configured to restrict clients permitted to relay mail by examining the smtpd_client_restrictions line. Procedure: # grep smtpd_client_restrictions </path/to/main.cf> If the smtpd_client_restrictions line is missing, or does not contain reject, this is a finding. If the line contains permit before reject, this is a finding. If the system is using other SMTP software, consult the software's documentation for procedures to verify that mail relaying is restricted.
Responsibility
System Administrator
IA Controls
ECSC-1
The ldd command must be disabled unless it protects against the execution of untrusted files.
Discussion
The ldd command provides a list of dependent libraries needed by a given binary, which is useful for troubleshooting software. Instead of parsing the binary file, some ldd implementations invoke the program with a special environment variable set, which causes the system dynamic linker to display the list of libraries. Specially crafted binaries can specify an alternate dynamic linker which may cause a program to be executed instead of examined. If the program is from an untrusted source, such as in a user home directory, or a file suspected of involvement in a system compromise, unauthorized software may be executed with the rights of the user running ldd. Some ldd implementations include protections preventing the execution of untrusted files. If such protections exist, this requirement is not applicable. An acceptable method of disabling ldd is changing its mode to 0000. The SA may conduct troubleshooting by temporarily changing the mode to allow execution and running the ldd command as an unprivileged user upon trusted system binaries.
Fix Text
Disable the ldd command by removing its permissions. Procedure: # chmod 0000 <path to ldd>
Check Content
Consult vendor documentation concerning the ldd command. If the command provides protection from the execution of untrusted executables, this is not a finding. Determine the location of the system's ldd command. Procedure: # find / -name ldd If no file exists, this is not a finding. Check the permissions of the found ldd file. # ls -lL <path to ldd> If the file mode of the file is more permissive than 0000, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not respond to ICMPv6 echo requests sent to a broadcast address.
Discussion
Responding to broadcast ICMP echo requests facilitates network mapping and provides a vector for amplification attacks.
Fix Text
Configure the system to not respond to IPv6 multicast ICMP ECHO_REQUESTs. # /usr/sbin/no -p -o bcastping=0
Check Content
# /usr/sbin/no -o bcastping If the value returned is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The Department of Defense (DoD) login banner must be displayed immediately prior to, or as part of, graphical desktop environment login prompts.
Discussion
Failure to display the login banner prior to a logon attempt will negate legal proceedings resulting from unauthorized access to system resources. This requirement applies to graphical desktop environments provided by the system to locally attached displays and input devices, as well as, to graphical desktop environments provided to remote systems, including thin clients.
Fix Text
Edit the Xresources file to configure the system to display one of the DoD login banners (based on the character limitations imposed by the system) prior to, or as part of, the graphical desktop environment login process. For Dt login, change the variable Dtlogin*greeting.labelString: in Xresources file. #cp /usr/dt/config/C/Xresources /etc/dt/config/C/Xresources #vi /etc/dt/config/C/Xresources For XDM login, change the variable Xlogin*greeting in the Xresources file. #vi /usr/lpp/X11/lib/X11/xdm/Xresources. DoD Login Banners: "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. " OR "I've read & consent to terms in IS user agreem't."
Check Content
Access the graphical desktop environment(s) provided by the system and attempt to logon. Check for either of the following login banners based on the character limitations imposed by the system. An exact match is required. If one of these banners is not displayed, this is a finding. "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. " OR "I've read & consent to terms in IS user agreem't."
Responsibility
System Administrator
IA Controls
ECWM-1
The system, if capable, must be configured to require the use of a CAC, PIV compliant hardware token, or Alternate Logon Token (ALT) for authentication.
Discussion
In accordance with CTO 07-015, PKI authentication is required. This provides stronger, two-factor authentication than using a username/password. NOTE: The following are exempt from this; however, they must meet all password requirements and must be documented with the IAO: - Stand-alone systems. - Application Accounts. - Students or unpaid employees (such as interns) who are not eligible to receive or not in receipt of a CAC, PIV, or ALT. - Warfighters and support personnel located at operational tactical locations conducting wartime operations that are not “collocated” with RAPIDS workstations to issue CAC, are not eligible for CAC, or do not have the capability to use ALT. - Test systems with an Interim Approval to Test (IATT) and provide protection via separate VPN, firewall, or security measures preventing access to network and system components from outside the protection boundary documented in the IATT.
Fix Text
Consult IBM documentation to determine the procedures necessary for configuring CAC authentication through PKI. Configure all accounts required by policy to use CAC authentication.
Check Content
Consult vendor documentation to determine if the system is capable of CAC authentication. If it is not, this is not applicable. Interview the SA to determine if all accounts not exempted by policy are using CAC authentication. If non-exempt accounts are not using CAC authentication, this is a finding.
Responsibility
System Administrator
The system must be configured to send audit records to a remote audit server.
Discussion
Audit records contain evidence that can be used in the investigation of compromised systems. To prevent this evidence from compromise, it must be sent to a separate system continuously. Methods for sending audit records include, but are not limited to, system audit tools used to send logs directly to another host or through the system's syslog service to another host.
Fix Text
Configure the system to send audit records to a remote system. The actual method is left to site discretion and may involve the use of third-party products. One method for performing remote audit logging involves streaming audit records to syslog and using syslog to send the records to another system. Enable stream mode by editing the /etc/security/audit/config and set streammode = on. Edit /etc/security/audit/streamcmds to send stream logs to the syslog facility with an entry such as: /usr/sbin/auditstream | auditpr -v | /usr/bin/logger -p local7.info & Edit the /etc/syslog.conf file to configure syslog to send local7.info to a remote server with an entry such as: Local7.info @logserver
Check Content
Ask the SA to provide information on the remote logging of audit records. Verify the configuration described is functioning. If no method of remote logging of audit records is in place or functioning, this is a finding. Methods of remote audit record logging will be site-specific and may depend on the use of third-party tools. One possible method with AIX is the use of the audit streams facility such as: Verify "streammode = on" in /etc/security/audit/config. Check that /etc/security/audit/streamcmds sends stream logs to the syslog facility with an entry such as: /usr/sbin/auditstream | auditpr -v | /usr/bin/logger -p local7.info & Check that the /etc/syslog.conf file is configured to send local7.info to a remote server with an entry such as: local7.info @logserver
Responsibility
System Administrator
IA Controls
ECTB-1
If the system is using LDAP for authentication or account information, the /etc/ldap.conf file (or equivalent) must not contain passwords.
Discussion
The authentication of automated LDAP connections between systems must not use passwords since more secure methods are available, such as PKI and Kerberos. Additionally, the storage of unencrypted passwords on the system is not permitted.
Fix Text
Remove any passwords from LDAP configuration files. The bindpw (bind password) can be encrypted with the mksecldap command. #mksecldap Stash the SSL key database file with the gsk7cmd or ikeyman commands. #gsk7cmd < or > ikeyman Comment out the ldapsslpwd line to use stashed password. The password stash file must reside in the same directory as the SSL key database, and must have the same name as the key database, but with an extension of .sth instead of .kdb.
Check Content
Examine the LDAP configuration file(s). #grep bindpwd: /etc/security/ldap/ldap.cfg If the returned entry has an unencrypted password (not like "bindpwd:{DES}"), this is a finding. If the LDAP configuration file contains an encrypted password accessible by regular users on the system, this is a finding. #ls -l /etc/security/ldap/ldap.cfg Check for unencrypted SSL keyfile password. #grep '^ldapsslkeypwd' /etc/security/ldap/ldap.cfg If the returned entry has an unencrypted password (not like "ldapsslkeypwd:{DES}"), this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
The telnet daemon must not be running.
Discussion
The telnet daemon provides a typically unencrypted remote access service which does not provide for the confidentiality and integrity of user passwords or the remote session. If a privileged user were to log on using this service, the privileged user password could be compromised.
Fix Text
Edit the /etc/inetd.conf file and comment out the telnet line. Reload the inetd process. # refresh -s inetd
Check Content
Consult vendor documentation to determine the method for determining if the telnet daemon is running. If the system uses inetd, use the following procedure. # grep -v '^#' /etc/inetd.conf | grep telnet If an entry is returned, the telnet daemon is running. If the telnet daemon is running, this is a finding.
Responsibility
System Administrator
Mitigations
GEN003850
Mitigation Control
If an enabled telnet daemon is configured to only allow encrypted sessions, such as with Kerberos or the use of encrypted network tunnels, the risk of exposing sensitive information is mitigated, and this is not a finding.
IA Controls
DCPP-1
The /etc/netsvc.conf file must be root owned.
Discussion
The /etc/netsvc.conf file is used to specify the ordering of name resolution for the sendmail command, alias resolution for the sendmail command, and host name resolution routines. Malicious changes could prevent the system from functioning correctly or compromise system security.
Fix Text
Change the owner of the /etc/netsvc.conf file to root. # chown root /etc/netsvc.conf
Check Content
Verify the /etc/netsvc.conf file is owned by root. # ls -l /etc/netsvc.conf If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/netsvc.conf file must be group-owned by bin, sys, or system.
Discussion
The /etc/netsvc.conf file is used to specify the ordering of name resolution for the sendmail command, alias resolution for the sendmail command, and host name resolution routines. Malicious changes could prevent the system from functioning correctly or compromise system security.
Fix Text
Change the group owner of the /etc/netsvc.conf file to bin, sys, or system. Procedure: # chgrp system /etc/netsvc.conf
Check Content
Check the group ownership of the /etc/netcsvc.conf file. Procedure: # ls -lL /etc/netsvc.conf If the file is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/netsvc.conf file must have mode 0644 or less permissive.
Discussion
The /etc/netsvc.conf file is used to specify the ordering of name resolution for the sendmail command, alias resolution for the sendmail command, and host name resolution routines. Malicious changes could prevent the system from functioning correctly or compromise system security.
Fix Text
Change the mode of the /etc/netsvc.conf file to 0644 or less permissive. # chmod 0644 /etc/netsvc.conf
Check Content
Check the mode of the /etc/netsvc.conf file. # ls -l /etc/netsvc.conf If the file mode is more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/netsvc.conf file must not have an extended ACL.
Discussion
The /etc/netsvc.conf file is used to specify the ordering of name resolution for the sendmail command, alias resolution for the sendmail command, and host name resolution routines. Malicious changes could prevent the system from functioning correctly or compromise system security.
Fix Text
Remove the extended ACL from the /etc/nsswitch.conf file and disable extended permissions. #acledit /etc/netsvc.conf
Check Content
Verify there is no extended ACL on the /etc/netsvc.conf file. # aclget /etc/netsvc.conf If extended permissions are enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The system must not allow directed broadcasts to gateway.
Discussion
Disabling directed broadcast prevents packets directed to a gateway to be broadcasted on a remote network.
Fix Text
Configure directed_broadcast to 0. # /usr/sbin/no -p -o directed_broadcast=0
Check Content
Check the directed_broadcast option. # /usr/sbin/no -o directed_broadcast If the value returned is not 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must provide protection from Internet Control Message Protocol (ICMP) attacks on TCP connections.
Discussion
The ICMP attacks may be of the form of ICMP source quench attacks and Path MTU Discovery (PMTUD) attacks. If this network option tcp_icmpsecure is turned on, the system does not react to ICMP source quench messages. This will protect against ICMP source quench attacks. The payload of the ICMP message is tested to determine if the sequence number of the TCP header portion of the payload is within the range of acceptable sequence numbers. This will mitigate PMTUD attacks to a large extent.
Fix Text
Set the tcp_icmpsecure parameter to 1. # /usr/sbin/no -p -o tcp_icmpsecure=1
Check Content
Check the value of the tcp_icmpsecure parameter. # /usr/sbin/no -o tcp_icmpsecure If the value returned is not 1, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must provide protection for the TCP stack against connection resets, SYN, and data injection attacks.
Discussion
The tcp_tcpsecure parameter provides protection for TCP connections from fake SYN's, fake RST, and data injections on established connections. The first vulnerability involves sending a fake SYN to an established connection to abort the connection. The second vulnerability involves sending a fake RST to an established connection to abort the connection. The third vulnerability involves injecting fake data in an established TCP connection.
Fix Text
Set the tcp_tcpsecure parameter to 7. # /usr/sbin/no -p -o tcp_tcpsecure=7
Check Content
Check the value of the tcp_tcpsecure parameter. # /usr/sbin/no -o tcp_tcpsecure If the value returned is not 7, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must provide protection against IP fragmentation attacks.
Discussion
The parameter ip_nfrag provides an additional layer of protection against IP fragmentation attacks. The value the ip_nfrag specifies is the maximum number of fragments of an IP packet that can be kept in the IP reassembly queue at any time. The default value of this network option is 200. This is a reasonable value for most environments and offers protection from IP fragmentation attacks.
Fix Text
Set the ip_nfrag parameter to 200. # /usr/sbin/no -p -o ip_nfrag=200
Check Content
Check the value of the ip_nfrag parameter. # /usr/sbin/no -o ip_nfrag If the result returned is less than 200, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the bootp service active.
Discussion
The bootp service is used for Network Installation Management (NIM) and remote booting of systems. The bootp service should not be active unless it is needed for NIM servers or booting remote systems. Running unnecessary services increases the attack vector of the system.
Fix Text
Disable the bootp service from /etc/inetd.conf. Edit /etc/inetd.conf and comment out bootp service line. Restart the inetd service. #refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active bootp service. # grep bootp /etc/inetd.conf |grep -v \# If the bootp service is not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the chargen service active.
Discussion
When contacted, chargen responds with some random characters. When contacted via UDP, it will respond with a single UDP packet. When contacted via TCP, it will continue spewing characters until the client closes the connection. An easy attack is 'ping-pong' in which an attacker spoofs a packet between two machines running chargen. This will cause them to spew characters at each other, slowing the machines down and saturating the network. The chargen service is unnecessary and provides an opportunity for Denial of Service attack.
Fix Text
Edit /etc/inetd.conf and comment out the chargen service line for both udp and tcp protocols. Restart the inetd service. #refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active TCP and UDP chargen service entries. # grep chargen /etc/inetd.conf |grep -v \# If the chargen service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the Calendar Manager Service Daemon (CMSD) service active.
Discussion
The CMSD service for CDE is an unnecessary process that runs a root and increases attack vector of the system. Buffer overflow attacks against the CMSD process can potentially give access to the system.
Fix Text
Edit /etc/inetd.conf and comment out the CMSD service. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active CMSD service. # grep 'rpc\.cmsd' /etc/inetd.conf |grep -v \# If the CMSD service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the tool-talk database server (ttdbserver) service active.
Discussion
The ttdbserver service for CDE is an unnecessary service that runs as root and might be compromised.
Fix Text
Edit /etc/inetd.conf and comment out ttdbserver service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active ttdbserver service. # grep 'rpc\.ttdbserver' /etc/inetd.conf |grep -v \# If the ttdbserver service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the comsat service active.
Discussion
The comsat daemon notifies users on incoming email. This is an unnecessary service and is vulnerable to a flood attack. Running unnecessary services increases the attack vector of the system.
Fix Text
Edit /etc/inetd.conf and comment out comsat service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active comsat service. #grep comsat /etc/inetd.conf | grep -v \# If the comsat service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the daytime service active.
Discussion
The daytime service runs as root from the inetd daemon and can provide an opportunity for Denial of Service PING or PING-PONG attacks. The daytime service is unnecessary and it increases the attack vector of the system.
Fix Text
Edit /etc/inetd.conf and comment out daytime service lines for both TCP and UDP protocols. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for TCP and UDP daytime service. #grep daytime /etc/inetd.conf | grep -v \# If the daytime service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the discard service active.
Discussion
The discard service runs as root from the inetd server and can be used in Denial of Service attacks. The discard service is unnecessary and it increases the attack vector of the system.
Fix Text
Edit /etc/inetd.conf and comment out the discard service line for both TCP and UDP protocols. Restart the inetd service. #refresh -s inetd
Check Content
Check the /etc/inetd.conf file for TCP and UDP discard service entries. #grep discard /etc/inetd.conf | grep -v \# If the discard service is active, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the dtspc service active.
Discussion
This service is started automatically by the inetd daemon with root permission in response to a CDE client requesting a process to be started on the daemon’s host system. Running the dtscp service is unnecessary and it increases the attack vector of the system.
Fix Text
Edit /etc/inetd.conf and comment out dtspc service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf for the dtspc service. #grep dtspcd /etc/inetd.conf | grep -v \# If the dtspc service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the echo service active.
Discussion
The echo service can be used in Denial of Service or SMURF attacks. It can also used at someone else to get through a firewall or start a data storm. The echo service is unnecessary and it increases the attack vector of the system.
Fix Text
Edit /etc/inetd.conf and comment out the echo service lines for both TCP and UDP. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf for TCP and UDP echo service entries. #grep echo /etc/inetd.conf | grep -v \# If the echo service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have Internet Message Access Protocol (IMAP) service active.
Discussion
The IMAP service should not be running unless the system is acting as a mail server for client connections. Running unnecessary services increases the attack vector on the system.
Fix Text
Edit /etc/inetd.conf and comment out the imap2 service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active IMAP service. #grep imapd /etc/inetd.conf | grep -v \# If the IMAP service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the PostOffice Protocol (POP3) service active.
Discussion
The POP3 service is only needed if the server is acting as a mail server and clients are using applications that only support POP3. Users' ids and passwords are sent in plain text to the POP3 service. If mail client access is needed, consider using IMAP or SSL enabled POP3.
Fix Text
Edit /etc/inetd.conf and comment out POP3 the service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the '/etc/inetd.conf' file for active POP3 service. #grep pop3 /etc/inetd.conf | grep -v \# If the POP3 service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the talk or ntalk services active.
Discussion
The talk and ntalk commands allow users on the same or different systems on converse. The talk daemons are started from the inetd process and run as root. These unnecessary processes increase the attack vector of the system and may cause Denial of Service by scrambling the users display.
Fix Text
Edit /etc/inetd.conf and comment out TCP and UDP for the talk service. Edit /etc/inetd.conf and comment out TCP and UDP for the ntalk service. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for talk and ntalk services. #grep talk /etc/inetd.conf | grep -v \# If any TCP or UDP talk or ntalk services are enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the netstat service active on the inetd process.
Discussion
The netstat service can potentially give out network information on active connections if it is running. The information given out can aid in an attack and weaken the systems defensive posture.
Fix Text
Edit /etc/inetd.conf and comment out the netstat service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf for active netstat service. grep netstat /etc/inetd.conf | grep -v \# If the netstat service is active, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the PCNFS service active.
Discussion
The PCNFS service predates Microsoft’s SMB specifications. If a similar service is needed to share files from a Windows based OS to a UNIX based OS, consider SAMBA.
Fix Text
Edit /etc/inetd.conf and comment out the PCNFS service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active PCNFS service. #grep pcnfsd /etc/inetd.conf | grep -v \# If the PCNFS service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the systat service active.
Discussion
The systat daemon allows remote users to see the running process and who is running them. This may aid in information collection for an attack and weaken the security posture of the system.
Fix Text
Edit /etc/inetd.conf and comment out systat the service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active systat service. #grep systat /etc/inetd.conf | grep -v \# If the systat service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The inetd time service must not be active on the system on the inetd daemon.
Discussion
The time service is an internal inetd function is used by the rdate command. This service is sometimes used to synchronize clocks at boot time. The service is outdated. Use the ntpdate command instead.
Fix Text
Edit the /etc/inetd.conf file and comment out the time service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for TCP and UDP time service. grep time /etc/inetd.conf | grep -v daytime | grep -v \# If the time service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the rusersd service active.
Discussion
The rusersd daemon gives out a list of current uses on the system. The rusersd daemon is unnecessary and it increases the attack vector of the system by providing information on the current users of the system.
Fix Text
Edit the /etc/inetd.conf file and comment out the rusersd service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active rusersd service. #grep rusersd /etc/inetd.conf | grep -v \# If the rusersd service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the sprayd service active.
Discussion
The sprayd service is sometimes used for network and nfs troubleshooting. The spray service can be used for both buffer overflow and Denial of Service attacks by saturating the network. The sprayd daemon is an unnecessary service.
Fix Text
Edit the /etc/inetd.conf file and comment out the sprayd service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active sprayd service. # grep sprayd /etc/inetd.conf | grep -v \# If the sprayd service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must not have the rstatd service active.
Discussion
The rstatd can give out information on the running system, such as the CPU usage, the system uptime, its network usage, and other system information that could potentially aid in an attack. The rstatd service is unnecessary and it weakens the defensive posture of the system. If systems monitoring is needed, use a third party tool or SNMP.
Fix Text
Edit the /etc/inetd.conf file and comment out the rstatd service line. Restart the inetd service. # refresh -s inetd
Check Content
Check the /etc/inetd.conf file for active rstatd service. #grep rstatd /etc/inetd.conf | grep -v \# If the rstatd service is enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
Xserver login managers must not be running unless needed for X11 session management.
Discussion
Running Xservers and X-login managers when not needed for X11 session management increases the attack vector of the system by running unnecessary services.
Fix Text
Comment out or remove the X login servers from the /etc/inittab file. #vi /etc/inittab Refresh the init process. # init q
Check Content
Check to see if X display login managers are running. #cat /etc/inittab | grep -e /etc/rc.dt -e xdm If any X server login managers are running, ask the SA if they are necessary for the operation of the system. If there is unnecessary X server login managers running, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The /etc/ftpaccess.ctl file must exist.
Discussion
The ftpaccess.ctl file contains options for the ftp daemon, such as herald, motd, user access, and permissions to files and directories. If the ftpaccess.ctl file does not exist, the ftpd process will not display any warning banners, and permissions will only be enforced using basic UNIX permissions.
Fix Text
Create a /etc/ftpaccess.ctl file. #touch /etc/ftpaccess.ctl Add at least the herald: /path to login banner to the /etc/ftpaccess.ctl file. #vi /etc/ftpaccess.ctl
Check Content
Check for the existence of the /etc/ftpaccess.ctl file. # ls -l /etc/ftpaccess.ctl If the ftpaccess.ctl file does not exist, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The /etc/ftpaccess.ctl file must be owned by root.
Discussion
If the ftpaccess.ctl file is not owned by root, an unauthorized user may modify the file to allow unauthorized access to change the file. Unauthorized modification could result in Denial of Service to authorized FTP users or permit unauthorized access to system information.
Fix Text
Change the owner of the ftpaccess.ctl file to root. # chown root /etc/ftpaccess.ctl
Check Content
Check the ownership of the /etc/ftpaccess.ctl file. # ls -l /etc/ftpaccess.ctl If the ftpaccess.ctl file is not owned by root, this is a finding.
Responsibility
System Administrator
The /etc/ftpaccess.ctl file must be group-owned by bin, sys, or system.
Discussion
If the ftpaccess.ctl file is not group-owned by a system group, an unauthorized user may modify the file to allow unauthorized access to modify the file. Unauthorized modification could result in Denial of Service to authorized FTP users or permit unauthorized access to system information.
Fix Text
Change the group owner of the /etc/ftpaccess.ctl file. # chgrp system /etc/ftpaccess.ctl
Check Content
Check the group ownership of the ftpaccess.ctl file. # ls -lL /etc/ftpaccess.ctl If the /etc/ftpaccess.ctl file is not group-owned by bin, sys, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/ftpaccess.ctl file must have mode 0640 or less permissive.
Discussion
Excessive permissions on the ftpaccess.ctl file could permit unauthorized modification. Unauthorized modification could result in Denial of Service to authorized FTP users or permit unauthorized access to system information.
Fix Text
Change the mode of the /etc/ftpaccess.ctl file to 0640. # chmod 0640 /etc/ftpaccess.ctl
Check Content
Check the permissions of the /etc/ftpaccess.ctl file. # ls -l /etc/ftpaccess.ctl If the ftpaccess.ctl file has a mode more permissive than 0640, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/ftpaccess.ctl file must not have an extended ACL.
Discussion
Excessive permissions on the ftpaccess.ctl file could permit unauthorized modification. Unauthorized modification could result in Denial of Service to authorized FTP users or permit unauthorized access to system information.
Fix Text
Remove the extended ACL from the /etc/ftpaccess.ctl file. #acledit /etc/ftpaccess.ctl Disable extended permissions.
Check Content
Check the permissions of the /etc/ftpaccess.ctl file. #aclget /etc/ftpaccess.ctl Check if extended permissions are disabled. If extended permissions are not disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
Graphical desktop environments provided by the system must automatically lock after 15 minutes of inactivity and the system must require users to re-authenticate to unlock the environment.
Discussion
If graphical desktop sessions do not lock the session after 15 minutes of inactivity, requiring re-authentication to resume operations, the system or individual data could be compromised by an alert intruder who could exploit the oversight. This requirement applies to graphical desktop environments provided by the system to locally attached displays and input devices, as well as, to graphical desktop environments provided to remote systems, including thin clients.
Fix Text
Consult vendor documentation to determine the settings required for the system to lock graphical desktop environments. Configure the system to lock graphical desktop environments after 15 minutes of inactivity and require re-authentication to resume operations.
Check Content
Log into a graphical desktop environment provided by the system. Allow the session to remain idle for 15 minutes. If the desktop session is not automatically locked after 15 minutes, or does not require re-authentication to resume operations, this is a finding.
Responsibility
System Administrator
IA Controls
PESL-1
The system must prohibit the reuse of passwords within five iterations.
Discussion
If a user, or root, used the same password continuously or was allowed to change it back shortly after being forced to change it to something else, it would provide a potential intruder with the opportunity to keep guessing at one user's password until it was guessed correctly.
Fix Text
Use the chsec command to configure the system to prohibit the reuse of passwords within five iterations. # chsec -f /etc/security/user -s default -a histsize=5 # chuser histsize=5 < user id >
Check Content
Procedure: #lsuser -a histsize ALL If the returned histsize for any user is less than 5, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
User start-up files must not execute world-writable programs.
Discussion
If start-up files execute world-writable programs, especially in unprotected directories, they could be maliciously modified to become Trojans destroying user files or otherwise compromising the system at the user, or higher, level. If the system is compromised at the user level, it is much easier to eventually compromise the system at the root and network level.
Fix Text
Remove the world-writable permission of files referenced by local initialization scripts, or remove the references to these files in the local initialization scripts.
Check Content
Check local initialization files for any executed world-writable programs or scripts. Procedure: # more /<usershomedirectory>/.* # ls -al <program or script> If any local initialization file executes a world-writable program or script, this is a finding.
Responsibility
System Administrator
IA Controls
DCSW-1
All system start-up files must be owned by root.
Discussion
System start-up files not owned by root could lead to system compromise by allowing malicious users or applications to modify them for unauthorized purposes. This could lead to system and network compromise.
Fix Text
Change the ownership of the run control script(s) with incorrect ownership. # chown root <run control script>
Check Content
Check the run control scripts' ownership. Procedure: # ls -lL /etc/rc* If any run control script is not owned by root or bin, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All system start-up files must be group-owned by sys, bin, other, or system.
Discussion
If system start-up files do not have a group owner of a system group, the files may be modified by malicious users or intruders.
Fix Text
Change the group ownership of the run control script(s) with incorrect group ownership. Procedure: # chgrp sys <run control script>
Check Content
Check run control scripts' group ownership. Procedure: # ls -lL /etc/rc* If any run control script is not group-owned by sys, bin, other, or system, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
System start-up files must only execute programs owned by a privileged UID or an application.
Discussion
System start-up files executing programs owned by other than root (or another privileged user) or an application indicate the system may have been compromised.
Fix Text
Change the ownership of the file executed from system startup scripts to root, bin, sys, or other. # chown root <executed file>
Check Content
Check the ownership of any files executed from system startup scripts. If any of these files are not owned by root, bin, sys, or other, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
System BIOS or system controllers supporting password protection must have administrator accounts/passwords configured, and no others.
Discussion
A system's BIOS or system controller handles the initial startup of a system and its configuration must be protected from unauthorized modification. When the BIOS or system controller supports the creation of user accounts or passwords, such protections must be used and accounts/passwords only assigned to system administrators. Failure to protect BIOS or system controller settings could result in Denial of Service or compromise of the system resulting from unauthorized configuration changes.
Fix Text
Access the system's service processor. Set a supervisor/administrator password if one has not been set. Disable a user-level password if one has been set.
Check Content
Ask the SA if a password has been given to the Service processors ADMIN account. If a password has not been assigned to the service processor, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1