HP-UX 11.31 Security Technical Implementation Guide
Version 1 Release |
U_HPUX_11-31_V1R15_STIG_ |
The HP-UX 11.31 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 e-mail to the following address: disa.stig_spt@mail.mil. |
- All
- Updated 260
- Added 0
- Removed 265
Vulnerabilities (525)
V-1011
Inetd or xinetd logging/tracing must be enabled.
Discussion
Inetd or xinetd logging and tracing allows the system administrators to observe the IP addresses 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 (x)inetd startup script to include the -l parameter for the internet daemon process.
Check Content
# ps -ef | grep -v grep | egrep -i "inetd|xinetd" If the -l logging parameter is not used, this is a finding. If the (x)inetd process is not running, this is not a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-1013
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 possibly compromising or damaging 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. The system must first be rebooted in order to set primary and alternate boot paths for the desired system startup media.
Check Content
HP-UX 11-v3 may be booted from the following system startup media (must have been previously configured by root): • Hard drives • CD/DVD drives (for installation) • Tape drives (for installation) • USB directly connected drives (no hubs) Determine if the system is configured to boot from devices other than the system startup media. Verification should (optimally) be performed during IPL/ISL boot. In lieu of rebooting the system, ask the SA if the system is configured to boot from devices other than system startup media. If so, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-1026
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. # chmod 0000 <path>/swat OR # rm -i <path>/swat
Check Content
Determine if the CIFS (HP SAMBA) bundle is installed (SWAT is included). # swlist -l bundle | egrep -i "CIFS-CLIENT|CIFS-SERVER" If the HP bundle is not installed, this is not applicable. If the HP bundle is installed, ask the SA if the Samba Web Administration Tool (SWAT) has been configured to use SSL. If SWAT is not configured to use SSL, this is a finding.
Responsibility
System Administrator
IA Controls
EBRP-1
V-1029
The 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
Use the chown command to configure the smb passwd file. # chown root <path>/smbpasswd
Check Content
Check the ownership of the smbpasswd file. # ls -lL /var/opt/samba/private/smbpasswd If the smbpasswd file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-1032
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
For both Trusted Mode and SMSE: Use the SAM/SMH interface to ensure that password changes are restricted to no less than once every 24 hours. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to ensure that password changes are restricted to no less than once every 24 hours. See the below example: PASSWORD_MINDAYS=1 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode: Check the “u_minchg” attribute in the users TS database entry. Individual user: # export PATH=$PATH:/usr/lbin # getprpw -r -m mintm <USER> All users: # logins -o -x | awk -F: '{print $1” “$10}' If the value is less than 1 for any user, this is a finding. For SMSE: Check the PASSWORD_MINDAYS attribute. # grep PASSWORD_MINDAYS /etc/default/security /var/adm/userdb/* If the attribute PASSWORD_MINDAYS is less than 1, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-1046
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
Enable SSH on the system and use it for all remote connections used to attain root access.
Check Content
Perform the following to determine if root has logged in over an unencrypted network connection. The first command determines if root has logged in over a network. The second will check to see if the SSH daemon is running. Procedure: # last -R | grep "^root " | egrep -v "reboot|console" | more # ps -ef |grep sshd If the output from the last command shows 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
V-1048
Audio devices must have mode 0660 or less permissive.
Discussion
Globally accessible audio and video devices have proven to be another security hazard. There is software capable of activating 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 into a bugging device.
Fix Text
Change the mode of audio devices. # chmod 0660 <audio device>
Check Content
Check the mode of audio device files. Determine audio devices and class identifiers, i.e., audio should be listed as audio. # ioscan Determine audio device special files. # ioscan -fn -C <audio class ID from the above command output> Determine the device file mode. # ls -lL <device special file> If the mode of any audio device file is more permissive than 0660, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-1049
Audio devices must be owned by root.
Discussion
Globally accessible audio and video devices have proven to be another security hazard. There is software capable of activating 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 into a bugging device.
Fix Text
Change the owner of the audio device. # chown root <audio device>
Check Content
Check the owner of audio devices. Determine audio devices and class identifiers, i.e., audio should be listed as audio. # ioscan Determine audio device special files. # ioscan -fn -C <audio class ID from the above command output> Determine the device file mode. # ls -lL <device special file> If the owner of any audio device file is not root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-1058
The smbpasswd file must be group-owned by root.
Discussion
If the smbpasswd file is not group-owned by root, it may be maliciously accessed or modified, potentially resulting in the compromise of Samba accounts.
Fix Text
Use the chgrp command to ensure that the group owner of the smbpasswd file is root. # chgrp root <path>/smbpasswd
Check Content
Check smbpasswd ownership: # ls -lL /var/opt/samba/private/smbpasswd If the smbpasswd file is not group-owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-1059
The smbpasswd file must have mode 0600 or less permissive.
Discussion
If the smbpasswd file has a mode more permissive than 0600, it 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. # chmod 0600 <path>/smbpasswd
Check Content
Check the mode of files maintained using smbpasswd. # ls -lL /var/opt/samba/private/smbpasswd If the smbpasswd file is more permissive than 0600, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-1061
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 possibly listening 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/ioscan -f # ls -lL <audio device file> 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
V-11941
A file integrity baseline including cryptographic hashes 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 HP11-v3_Baseline Open the above file and either manually execute md5sum or the chksum command on each file. Alternatively, write a script to perform the above. NOTE: For security purposes, md5sum is preferred over chksum.
Check Content
This will always be a manual review. Determine if a file integrity baseline, which includes cryptographic hashes, has been created and maintained for the system. While HPUX-HIDS has the ability to detect file system changes, it does not currently support the creation of a system baseline. A number of third-party vendors (TripWire, for example) may be used for this purpose. Additionally, local scripts may also be used to create and maintain the system baseline, though this would not be the preferred method. Ask the SA if a file system baseline has been created and is being maintained on an ongoing basis. 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 (i.e., the baseline 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
V-11945
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
V-11946
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 passwd command, change the UID numbers for non-system accounts with reserved UIDs (those less or equal to 99). SMH can alternatively be used for this same purpose.
Check Content
Check the UID assignments of all accounts. # more /etc/passwd Confirm all accounts with a UID of 99 and below are used by a system account. If a UID reserved for system accounts (0 - 99) is used by a non-system account, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-11976
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
For Trusted Mode: Set the password maximum days field to 60 for all user accounts. # passwd -x 60 <user> For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the PASSWORD_MAXDAYS attribute. See the below example: PASSWORD_MAXDAYS=60 PASSWORD_WARNDAYS=7 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode: Check the exptm field for each user, or for all accounts: # getprpw -r -m exptm <USER> # logins -o -x | awk -F: '{print $1” “$11}' If the exptm attribute is set equal to -1, 0, or greater than 60 for any user, this is a finding. For SMSE: Check the PASSWORD_MAXDAYS setting. The command and an example output is seen directly below: # egrep “PASSWORD_MAXDAYS|PASSWORD_WARNDAYS” /etc/default/security /var/adm/userdb/* Example output from the above command, with the correctly assigned attribute values. Note that PASSWORD_MAXDAYS may deviate from 60. Illegal values include 0 (no warning). PASSWORD_MAXDAYS attribute exceptions that must not be used are 1-7 (values less than or equal to the required PASSWORD_WARNDAYS attribute setting): PASSWORD_MAXDAYS=60 PASSWORD_WARNDAYS=7 If the above attributes are either missing or not set per the above attribute values (exceptions noted above), this is a finding.
Responsibility
System Administrator
V-11977
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.
Check Content
NOTE: This will always require a manual review. This is a local policy issue/question. Ask the Systems Administrator (SA) if there are any automated processing accounts on the system. If there are, ask the SA if the passwords for those automated accounts are changed at least once a year. If SA indicates passwords for automated processing accounts are not changed once per year, this is a finding
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
V-11979
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 policies requiring all root account access is attained by first logging into a user account and then becoming root (using “su”, for example). Note: GEN000980 limits direct login by root to the console (requires physical access). GEN001120 prohibits direct root logins via SSH. GEN003850 disallows telnet access. GEN003830 prohibits rlogin access. GEN002100 prohibits .rhost PAM support. GEN002040 prohibits .rhosts, .shosts, hosts.equiv, or shosts.equiv system files. Ensure that root logging is enabled. For Trusted Mode: # modprpw -l -m audflg=1 root For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the attribute. See the below example: AUDIT_FLAG=1 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode: Check the /tcb database to determine if root account auditing is enabled and the last login log for direct root logins. Note that for the /tcb audit flag entry that numeric values are specified as positive numbers, 0, or -1. A value of -1 indicates that the field has not been assigned a value in the database. A value of 0 indicates that auditing is not enabled. # getprpw -m audflg root && last root | grep -v reboot If any direct login records for root are listed, this is a finding. For SMSE: Check the root AUDIT_FLAG attribute setting. Note that for the /etc/default/security file audit flag entry that numeric values are specified as 0, or 1. A value of 1 indicates that auditing is enabled. A value of 0 indicates that auditing is not enabled. # grep AUDIT_FLAG /etc/default/security /var/adm/userdb/* && last root | grep -v reboot If any direct login records for root are listed, this is a finding.
Responsibility
System Administrator
IA Controls
ECPA-1
V-11980
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
For Trusted Mode: Ensure that all users are being audited. List users from the passwd file and check the user entries in the /tcb database. See the example below. Note that the “getprpw” command must be executed individually for all users. Users associated with “audflg” set to zero (disabled) must be corrected. # cat /etc/passwd | cut -f 1,1 -d “:” # getprpw -m audflg <user> # modprpw -l -m audflg=1 <user> Use the SAM/SMH interface (/etc/default/security file) to update the SU_ROOT_GROUP attribute. See the below example: SU_ROOT_GROUP=root,<user1>,<user2> For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the AUDIT_FLAG and SU_ROOT_GROUP attributes. See the below example: AUDIT_FLAG=1 SU_ROOT_GROUP=root,<user1>,<user2> Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
Check the following log files to determine if access attempts to the root account are being logged. Try su - and enter an incorrect password. # more /var/adm/sulog /var/adm/syslog If root account access login attempts are not being logged, this is a finding.
Responsibility
System Administrator
IA Controls
ECAR-1, ECAR-2, ECAR-3
V-11987
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.
Discussion
A plus (+) in system accounts files causes the system to lookup the specified entry using NIS. If the system is not using NIS, no such entries should exist.
Fix Text
Edit the .rhosts, .shosts, hosts.equiv, shosts.equiv, /etc/passwd, /etc/shadow, 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/shadow | 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, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-11990
All public directories must be group-owned by root or an application group.
Discussion
If a public directory has the sticky bit set and is not group-owned by a privileged 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 root <public directory> (Replace root with a different system group 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 root, sys, bin, other or an application group, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-11994
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 file 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 file is not owned by root or the creating user, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
V-11997
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/crash
Check Content
Check the ownership of the kernel core dump data directory. # ls -lLd /var/adm/crash If the kernel core dump data directory is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-12001
The system must use initial TCP sequence numbers most resistant to sequence number guessing attacks.
Discussion
One use of initial TCP sequence numbers is to verify bidirectional communication between two hosts, which provides some protection against spoofed source addresses being used by the connection originator. If the initial TCP sequence numbers for a host can be determined by an attacker, it may be possible to establish a TCP connection from a spoofed source address without bidirectional communication.
Fix Text
# ndd -set /dev/tcp tcp_isn_passphrase <a random passphrase> Edit /etc/rc.config.d/nddconf and add/set: TRANSPORT_NAME[x] = tcp NDD_NAME[x] = tcp_isn_passphrase NDD_VALUE[x] = <a random passphrase>
Check Content
# ndd -get /dev/tcp tcp_isn_passphrase If the value 1 is not returned, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-12004
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.*, auth.debug, auth.info, *.debug or *.info. NOTE: In general and though not required, it is always advisable to explicitly declare auth.info or auth.debug entries rather than use the wildcard notation method.
Check Content
Check /etc/syslog.conf and verify the auth facility is logging both the notice and info (NOTE that auth.info includes auth.notice and the auth.debug includes both auth.info and auth.notice) level messages by: # cat /etc/syslog.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | egrep -i "auth.info|auth.debug|auth.\*|\*.info|\*.debug" If auth.* is not found, or auth.notice or auth.debug or *.info and *.debug are not found, this is a finding.
Responsibility
System Administrator
IA Controls
ECAR-2, ECAR-3
V-12010
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 service. Refresh the inet daemon. inetd -c
Check Content
Determine if unencrypted FTP is enabled. # cat /etc/inetd.conf | sed -e 's/^[ \t]*//' | tr '\011' ' ' | tr -s ' ' | grep -v "^#" | grep -c -i "^ftp" If the service is found (i.e., the command returns a non-zero value), and not commented, ask the SA if this service is encrypted. If not, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-12016
.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, the 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. # ps -ef |grep -v grep | grep X Determine if xauth is being used. # 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 (typically found only in /etc), 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
V-12017
The .Xauthority utility must only permit access to authorized hosts.
Discussion
If unauthorized clients are permitted access to the X server, the user's X session may be compromised.
Fix Text
Remove unauthorized clients from the xauth configuration. # xauth remove <display name>
Check Content
Verify the X window system access is limited to authorized clients. # 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
V-12018
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.
Check Content
Determine if the X window system is running. # ps -ef |grep -v grep | 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
V-12020
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 hosts outside of the local enclave to not log to this system.
Check Content
The syslog server's /etc/syslog.conf file must have the client(s) listed along with the logging facility. The following example is a syslog.conf entry for the syslog client machine moe.larry.com: +example.com *.* /var/adm/log/example_com.log 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
V-12024
The system must not have a public Instant Messaging (IM) client installed.
Discussion
Public 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 e-mail 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 using access to 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
NOTE: This will virtually always require a manual review. 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
V-12025
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 -BitTorrent
Fix Text
Uninstall the peer-to-peer file sharing application(s) from the system.
Check Content
Note that this will virtually always require a Manual Review. 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 - BitTorrent If any of these applications are installed, this is a finding.
Responsibility
Designated Approving Authority
IA Controls
ECSC-1
V-12026
Network Information System (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, i.e., domain name (1) in the HP-UX man pages, 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
V-12028
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 e-mail 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
Ask the SA if any security tool application is loaded on the system. Security tool applications include, but are not limited to, antivirus, file integrity, root kit detection, host-based intrusion detection, and vulnerability assessment tools. 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
System Administrator
IA Controls
ECAT-1, ECAT-2
V-22290
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.config.d/netdaemons and set XNTPD=1 Edit /etc/ntp.conf and add the ntp server entry. Then: # /sbin/init.d/xntpd start 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 (x)ntpd, 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 (x)ntpd in /etc/rc.config.d/netdaemons. # cat /etc/rc.config.d/netdaemons | grep -v "^#" | grep -i "XNTPD=1" 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
V-22291
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 that is not consistent with the others. The system's local clock must be excluded from the count of time sources.
Fix Text
If auto-starting (x)ntpd, 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 (x)ntpd in /etc/rc.config.d/netdaemons. # cat /etc/rc.config.d/netdaemons | grep -v "^#" | grep -i "XNTPD=1" 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
V-22292
The system must use time sources are 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
V-22297
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 optional ACL from the file. # chacl -z /etc/ntp.conf
Check Content
Verify the NTP configuration file has no extended ACL. # ls -lL /etc/ntp.conf If the permissions include a "+" the file has an extended ACL and this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22301
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
NOTE: This will virtually always be a manual review. 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
V-22302
The system must enforce the correctness of 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
For Trusted Mode: NOTE: There is no fix for Trusted Mode/Systems (TS). MD5 is currently used, and per vendor documentation, this algorithm will not be updated, due to TS being deprecated for HP-UX 11i-v3 (11.31). For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) to update the attribute. See the below example: CRYPT_ALGORITHMS_DEPRECATE=__unix__ CRYPT_DEFAULT=6 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
Note that in certain instances, the password field of any given password database may present as “*” or “!!”, indicating that the account is locked or disabled. For Trusted Mode: Verify that password hashes in /tcb do not begin with a character other than a dollar sign ($). # cd /tcb/files/auth && cat */* | egrep “:u_name=|:u_pwd=“ If user account password hashes begins with any character other than a dollar sign ($), this is a finding. For SMSE: Verify that password hashes in /etc/shadow do not begin with a character other than a dollar sign ($). # cat /etc/shadow | cut -f 2,2 -d “:” | egrep -v “^\\$|\\*|\\!\\!” If any password hash without a leading dollar sign is returned by the above command, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
V-22303
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
For Trusted Mode: Note: There is no fix for Trusted Mode/Systems (TS). MD5 is currently used, and per vendor documentation, this algorithm will not be updated due to TS being deprecated/replaced by SMSE. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) to update the attribute. See the below example: CRYPT_ALGORITHMS_DEPRECATE=__unix__ CRYPT_DEFAULT=6 If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode: MD5 is currently the only available hashing function. Per vendor documentation, this algorithm will not be updated, due to TS being deprecated/replaced by SMSE. For SMSE: Check the system password for use of cryptographic hashes using the SHA-2 family of algorithms or FIPS 140-2-approved successors. # egrep “CRYPT_ALGORITHMS_DEPRECATE|CRYPT_DEFAULT” /etc/default/security The following is an example output from the above command: CRYPT_ALGORITHMS_DEPRECATE=__unix__ CRYPT_DEFAULT=6 If the attributes “CRYPT_ALGORITHMS_DEPRECATE” and “CRYPT_DEFAULT” are not set per the above example output, this is a finding.
Responsibility
System Administrator
V-22304
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
For Trusted Mode: NOTE: There is no fix for Trusted Mode/Systems (TS). MD5 is currently used, and per vendor documentation, this algorithm will not be updated, due to TS being deprecated/replaced by SMSE. This will always result in a finding. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) to update the attribute. See the below example: CRYPT_ALGORITHMS_DEPRECATE=__unix__ CRYPT_DEFAULT=6 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
Note that in certain instances, the password field of any given password database may present as “*” or “!!”, indicating that the account is locked or disabled. For Trusted Mode: Verify that the first 3 characters in the /tcb password hashes begin with the characters “$6$” (note that double quotes are for emphasis only). # cd /tcb/files/auth && cat */* | egrep “:u_name=|:u_pwd=“ If user account password hashes begins with any characters other than “$6$”, this is a finding. For SMSE: Verify that password hashes in /etc/shadow begin with the characters “$6$” (note that double quotes are for emphasis only). # cat /etc/shadow | cut -f 2,2 -d “:” | egrep -v “^\\*|\\!\\!” If user account password hashes begins with any characters other than “$6$”, this is a finding.
Responsibility
System Administrator
V-22309
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 optional ACL from the file. # chacl -z ~root
Check Content
Verify the root account's home directory has no extended ACL. # ls -lLd ~root If the permissions include a "+", the directory has an extended ACL, and this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22312
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> <path>/<file-without-a-valid-group-owner>
Check Content
Search the system for files without a valid group owner. # find / -nogroup -print If any files are found, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22313
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 optional ACL from the file. # chacl -z <path>/< network-services-daemon>
Check Content
Check Content: Verify network services daemon files have no extended ACLs. # cat /etc/inetd.conf | sed -e 's/^[ \t]*//' | tr '\011' ' ' | tr -s ' ' | grep -v '^#' | cut -f6,6 -d " " | xargs -n1 ls -lL If the permissions include a "+", the file has an extended ACL, and this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22314
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 optional ACL from the file. # chacl -z <path>/<file-with-extended-ACL>
Check Content
Verify all system command files have no extended ACLs. # ls -lL /etc /bin /usr/bin /usr/lbin /usr/usb /sbin /usr/sbin If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22315
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 optional ACL from the file. # chacl -z /var/adm/*
Check Content
Verify all system log files have no extended ACLs. # ls -lL /var/log /var/log/syslog /var/adm /var/opt If the permissions include a "+" the 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 providing access beyond the needs of authorized software, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1, ECTP-1
V-22316
All manual page files must not have extended ACLs.
Discussion
If manual pages are compromised, misleading information could be inserted, causing actions possibly compromising the system.
Fix Text
Remove the optional ACL from the file(s). # chacl -z /usr/share/man/* /usr/share/info/* /usr/share/infopage/*
Check Content
Verify that all manual page files do not have extended ACLs. # find `env | grep MANPATH | cut -f 2,2 -d "=" | tr ':' ' ' ` -type f -exec ls -al '{}' | grep '^[a-zA-Z\-]\{10\}+' If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
V-22317
All library files must not have extended ACLs.
Discussion
Unauthorized access could destroy the integrity of the library files.
Fix Text
Remove the optional ACL from the file. # chacl -z /usr/lib/* /lib/*
Check Content
Verify system libraries have no extended ACLs. # ls -lLR /usr/lib/* /lib/* If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22318
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 optional ACL from the file. # chacl -z /var/yp/*
Check Content
Verify NIS/NIS+/yp files have no extended ACLs. # ls -lL /var/yp/* If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22322
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 optional ACL from the file. # chacl -z /etc/resolv.conf
Check Content
Verify /etc/resolv.conf has no extended ACL. # ls -lL /etc/resolv.conf If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22326
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 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 optional ACL from the file. # chacl -z /etc/hosts
Check Content
Verify /etc/hosts has no extended ACL. # ls -lL /etc/hosts If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22330
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 optional ACL from the file. # chacl -z /etc/nsswitch.conf
Check Content
Verify /etc/nsswitch.conf has no extended ACL. # ls -lL /etc/nsswitch.conf If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22334
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 optional ACL from the file. # chacl -z /etc/passwd
Check Content
Verify /etc/passwd has no extended ACL. # ls -lL /etc/passwd If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22338
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. # chacl -z /etc/group
Check Content
Verify /etc/group has no extended ACL. # ls -lL /etc/group If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22340
The /etc/shadow file must not have an extended ACL.
Discussion
The /etc/shadow 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
For Trusted Mode: # chacl -z /tcb # chacl -z /tcb/files /tcb/files/auth # chacl -z /tcb/files/auth/[a-z]/* For SMSE: # chacl -z /etc/shadow
Check Content
For Trusted Mode: Check the TCB auth files and directories. # ls -lLd /tcb /tcb/files /tcp/files/auth # ls -lL /tcb/files/auth/[a-z,A-Z]/* If the permissions of any of the /tcb files and directories include a “+”, this is a finding. For SMSE: Check the /etc/shadow file. # ls -lL /etc/shadow If the /etc/shadow file permissions include a “+”, the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22350
User home directories must not have extended ACLs.
Discussion
Excessive permissions on home directories allow unauthorized access to user files.
Fix Text
Remove the optional ACL from the file. # chacl -z [user home directory with extended ACL]
Check Content
Verify user home directories have no extended ACLs. # cat /etc/passwd | cut -f 6,6 -d ":" | xargs -n1 ls -lLd If the permissions include a "+", the file has an extended ACL and this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22351
All files and directories contained in user home directories must be group-owned by a group of which the home directory's owner is a member.
Discussion
If a user's files are group-owned by a group of which 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 of which the home directory's owner is a member. # chgrp [<username>'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: List the user accounts. # cat /etc/passwd | cut -f 1,1 -d ":" For each user account, get a list of GIDs for files in the user's home directory. # find ~<username> | xargs ls -ldn | tr '\011' ' ' | tr -s ' ' | awk '{print $4, $NF}' Obtain the list of GIDs associated with the user's account. # id <username> OR # id -G <username> OR # cat /etc/group | grep <username> 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
V-22352
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 optional ACL from the file. # chacl -z [user file with extended ACL]
Check Content
Check the contents of user home directories for files with extended ACLs. # cat /etc/passwd | cut -f 6,6 -d ":" | xargs -n1 -IDIR ls -alLR DIR If the permissions include a '+', the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22353
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 optional ACL from the file. # chacl -z [run control script with extended ACL]
Check Content
Check that run control scripts have no extended ACLs. # ls -lLa /sbin/init.d/[a-z,A-Z,0-9]* If the permissions include a '+' the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22356
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 optional ACL from the file. # chacl -z [global initialization file with extended ACL]
Check Content
Check global initialization files for extended ACLs. # ls -lL /etc/profile /etc/bashrc /etc/csh.login /etc/csh.cshrc /etc/environment /etc/.login /etc/security/environ If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22357
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 optional ACL from the file. # chacl -z [skeleton file with extended ACL]
Check Content
Check skeleton files for extended ACLs. # ls -alL /etc/skel If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22361
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. # cat /etc/passwd | cut -f 1,4 -d ":" 2. Check local initialization files for each user. Field #1 above is USER and Field #4 is the user's GID. # 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
V-22362
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 optional ACL from the file. # chacl -z [local initialization file with extended ACL]
Check Content
Check user home directories for local initialization files with extended ACLs. # ls `cat /etc/passwd | cut -f 6,6 -d ":" ` | grep "/home" | sort | uniq | xargs -n1 ls -alL 2>/dev/null | egrep "\.bash_logout|\.bash_profile|\.bashrc|\.cshrc|\.dispatch|\.dtprofile|\.emacs|\.env|\.exrc|\.login|\.logout|\.profile" NOTE that the above command assumes the "base" of the user's home directory is "/home". If the system being checked uses a different "base", that "base" must be substituted for what is used in the above example. If the permissions include a '+', the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22366
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 optional ACL from the file. # chacl -z [shell]
Check Content
If /etc/shells exists, check the permissions of each shell referenced. # cat /etc/shells | xargs -n1 ls -lL Otherwise, check any shells found on the system. # find / -name "*sh" | xargs -n1 ls -lL If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22367
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 optional ACL from the file. # chacl -z [device file]
Check Content
Check the permissions of audio devices. Determine audio devices and class identifiers, i.e., audio should be listed as audio. # ioscan Determine audio/video device special files. # ioscan -fn -C <class ID from the above command output> Determine the device file mode. # ls -lL <device special file> If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22368
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/fstab and add the nodevs mount option to all entries for NFS file systems.
Check Content
Each file system line entry must contain a device specific file and may additionally contain all of the following fields, in the following order: mount directory, type, options, backup frequency, pass number (on parallel fsck) and comment. Check /etc/fstab and verify that the nodevs mount option is used on all NFS file systems. If an NFS file system is not using the nodevs option, this is a finding. # cat /etc/fstab | grep -v "^#" | grep nfs
Responsibility
System Administrator
IA Controls
ECSC-1
V-22369
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
As root, remove the ACL. # chacl -z <audit directory> # chacl -z <audit file>
Check Content
Inspect the auditing configuration file, /etc/rc.config.d/auditing, to determine the filename and path of the audit logs. The entries should appear similar to the following: PRI_AUDFILE=/var/.audit/file1 SEC_AUDFILE=/var/.audit/file2 # egrep “PRI_AUDFILE|SEC_AUDFILE” /etc/rc.config.d/auditing For each audit log directory/file, check the permissions. # ls -lLd <audit directory> # ls -lLa <audit file> If any audit log directory/file permissions include a “+”, this is a finding.
Responsibility
System Administrator
IA Controls
ECTP-1
V-22373
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
As root, change the file permissions. # chacl -z <audit_tool_filename>
Check Content
Verify the audit tools file permissions. The list of files should minimally include the following: audevent - Change/display event/system call status. audfilter - Load/clear/display the audit filtering policy. auditdp - Selectively read/write and convert/format the audit data. audisp - Display audit records. audomon - Audit file monitoring and size parameter setpoints. audsys - Start/stop auditing; set/display the audit file or directory information. userdbset - Select user to be audited. # ls -lL /usr/sbin/aud* /usr/sbin/userdb* If any audit tool file permissions include a “+”, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22374
The audit system must alert the SA in the event of an audit processing failure.
Discussion
An accurate and current audit trail is essential for maintaining a record of system activity. If the system fails, the SA must be notified and must take prompt action to correct the problem. Minimally, the system must log this event and the SA will receive this notification during the daily system log review. If feasible, active alerting (such as e-mail or paging) should be employed consistent with the site’s established operations management systems and procedures.
Fix Text
Configure the /sbin/init.d/auditing file to invoke audomon with (at a minimum) the "-o <file>" option. Then restart auditing: # /sbin/init.d/auditing stop # /sbin/init.d/auditing start
Check Content
"audomon" is spawned by /sbin/init.d/auditing when the system is booted with the parameter AUDITING is set to 1 in /etc/rc.config.d/auditing. audomon monitors the capacity of the current audit trail and the file system on which the audit trail is located. audomon prints out warning messages when either capacity is approaching full. audomon also checks the audit trail and the file system against two switch points: FileSpaceSwitch (FSS) and Audit-FileSwitch (AFS). If either switch point is reached, audit recording automatically switches to an alternative audit trail. audomon also takes action, such as sending an email at the switch point if there is a task specified with the -X option. Using the -o option, audomon specifies the file where warning messages are written. By default, warning messages are sent to the console. # cat /sbin/init.d/auditing | sed -e 's/^[ \t]*//' | tr '\011' ' ' | tr -s ' ' | grep -v "^#" | grep "audomon" If audomon has been invoked without the "-o <file>" option (at a minimum), this is a finding.
Responsibility
System Administrator
IA Controls
ECAT-1
V-22383
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
Edit /etc/audit/audit_site.conf and add the admin, modload, moduload, and modpath syscalls to the list of events to be audited.
Check Content
Check /etc/audit/audit_site.conf file to determine if syscalls handling kernel modules are audited. # egrep -i "admin|modload|moduload|modpath" /etc/audit/audit_site.conf All of the above syscalls must be defined in the file, otherwise this is a finding.
Responsibility
System Administrator
V-22384
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 optional ACL from the file. # chacl -z /etc/cron.allow
Check Content
Check the permissions of the cron.allow file. # ls -lL /etc/cron.allow If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22385
Crontab files must be group-owned by root, sys, cron, or the crontab creators 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. # chgrp root <crontab file>
Check Content
Check the group ownership of the crontab files. # ls -lL /var/spool/cron/crontabs If the group-owner is not root sys (default), cron, or the crontab owner's primary group, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22386
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 optional ACL from the file. # chacl -z <crontab file>
Check Content
Check the permissions of the crontab files. # ls -lL /var/spool/cron/crontabs If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22387
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 optional ACL from the directory. # chacl -z <crontab directory>
Check Content
Check the permissions of the crontab directories. # ls -ld /var/spool/cron/crontabs If the permissions include a "+", the directory has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22388
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 optional ACL from the file. # chacl -z /var/adm/cron/log
Check Content
Check the permissions of the file. # ls -lL /var/adm/cron/log If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1, ECTP-1
V-22389
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 optional ACL from the file. # chacl -z /var/adm/cron/cron.deny
Check Content
Check the permissions of the crontab files for an ACL. # ls -lL /var/adm/cron/cron.deny If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22390
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 optional ACL from the file. # chacl -z /var/adm/cron/at.allow
Check Content
Check the permissions of the file. # ls -lL /var/adm/cron/at.allow If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22393
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 optional ACL from the file. # chacl -z /var/adm/cron/at.deny
Check Content
Check the permissions of the file. # ls -lL /var/adm/cron/at.deny If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22395
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 optional ACL from the directory. # chacl -z /var/spool/cron/atjobs
Check Content
Check the permissions of the directory. # ls -lLd /var/spool/cron/atjobs If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22399
The system must be configured to store any process core dumps in a specific, centralized directory.
Discussion
Specifying a centralized location for core file creation allows for the centralized protection of core files. Process core dumps contain the memory in use by the process when it crashed. Any data the process was handling may be contained in the core file, and it must be protected accordingly. If process core dump creation is not configured to use a centralized directory, core dumps may be created in a directory without appropriate ownership or permissions configured, which could result in unauthorized access to the core dumps.
Fix Text
Change the core file pattern. # coreadm -I /var/adm/crash/core.%f.%p Where: %f = Will be assigned the executable/program file name creating the core %p = Will be assigned the executable/program process ID creating the core Ensure that core dumps are enabled: # coreadm -e global
Check Content
View all coreadm configuration settings. # coreadm Or View only if a directory is defined for process core dumps. If no information is returned, a directory has not been defined. # coreadm | tr '\011' ' ' | tr -s ' ' | egrep -i "global core file pattern|global core dumps" If the process core dump directory is undefined and core dumps are disabled, this is not applicable. If the process core dump directory is defined with a relative path (does not start with a slash "/") and core dumps are enabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22400
The centralized process core dump data directory must be owned by root.
Discussion
Process core dumps contain the memory in use by the process when it crashed. Any data the process was handling may be contained in the core file, and it must be protected accordingly. If the centralized process core dump data directory is not owned by root, the core dumps contained in the directory may be subject to unauthorized access.
Fix Text
If the core file dump pattern is undefined, ensure that core dumps are disabled. # coreadm -d global If the core file dump pattern is defined and core dumps are enabled and the core file directory is not group-owned by root, bin, sys or other, change the owner of the core file directory. # chown root <core file directory>
Check Content
View all coreadm configuration settings. # coreadm Or View only if a directory is defined for process core dumps. If no information is returned, a directory has not been defined. # coreadm | tr '\011' ' ' | tr -s ' ' | egrep -i "global core file pattern|global core dumps" If the process core dump directory is undefined and core dumps are disabled, this is not applicable. To check the ownership of the <core file directory>, substitute the global core file pattern from the above command into the next command. # ls -lLd `dirname <global core file pattern>` If the directory is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22401
The centralized process core dump data directory must be group-owned by root, bin, sys, or other.
Discussion
Process core dumps contain the memory in use by the process when it crashed. Any data the process was handling may be contained in the core file, and it must be protected accordingly. If the centralized process 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 core file directory. # chgrp root <core file directory>
Check Content
View all coreadm configuration settings. # coreadm Or View only if a directory is defined for process core dumps. If no information is returned, a directory has not been defined. # coreadm | tr '\011' ' ' | tr -s ' ' | egrep -i "global core file pattern|global core dumps" If the process core dump directory is undefined and core dumps are disabled, this is not applicable. Check the group ownership of the <core file directory> # ls -lLd `dirname "${CorePathFile}"` If the process core dump directory is defined and core dumps are enabled and the directory is not group-owned by root, bin, sys, or other, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22402
The centralized process core dump data directory must have mode 0700 or less permissive.
Discussion
Process core dumps contain the memory in use by the process when it crashed. Any data the process was handling may be contained in the core file, and it must be protected accordingly. If the process core dump data directory has a mode more permissive than 0700, unauthorized users may be able to view or to modify sensitive information contained any process core dumps in the directory.
Fix Text
If the core file dump pattern is undefined, ensure that core dumps are disabled. # coreadm -d global If the core file dump pattern is defined and core dumps are enabled and the core file directory mode is not 0700, change the mode of the core file directory. # chmod 0700 <core file directory>
Check Content
Check Content: View all coreadm configuration settings. # coreadm Or View only if a directory is defined for process core dumps. If no information is returned, a directory has not been defined. # coreadm | tr '\011' ' ' | tr -s ' ' | egrep -i "global core file pattern|global core dumps" If the process core dump directory is undefined and core dumps are disabled, this is not applicable. Check the permissions of the <core file directory> # ls -lLd `dirname <core dump directory>` If the core dump directory is more permissive than 0700, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22403
The centralized process core dump data directory must not have an extended ACL.
Discussion
Process core dumps contain the memory in use by the process when it crashed. Any data the process was handling may be contained in the core file, and it must be protected accordingly. If the process core dump data directory has an extended ACL, unauthorized users may be able to view or to modify sensitive information contained any process core dumps in the directory.
Fix Text
If the core file dump pattern is undefined, ensure that core dumps are disabled. # coreadm -d global If the core file dump pattern is defined and core dumps are enabled and the core file directory permissions include a "+" (ACL), remove the optional ACL from the file. # chacl -z <core file directory>
Check Content
View all coreadm configuration settings. # coreadm Or View only if a directory is defined for process core dumps. If no information is returned, a directory has not been defined. # coreadm | tr '\011' ' ' | tr -s ' ' | egrep -i "global core file pattern|global core dumps" If the process core dump directory is undefined and core dumps are disabled, this is not applicable. If the process core dump directory is defined and core dumps are enabled, check the permissions of the <core file directory> # ls -lLd `dirname <core dump directory>` If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22404
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 crash dumps. # crashconf -e all Edit /etc/rc.config.d/crashconf and set CRASH_EXCLUDED_PAGES="all".
Check Content
Verify crash dumps are disabled. # crashconf -v If the "included" list is not empty or fully disabled, this is a finding. # crashconf -v | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | cut -f 3,3 -d " " | \ egrep -c -i "yes," If the above command returns a value >0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22407
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 optional ACL from the file. # chacl -z /var/adm/crash
Check Content
Determine the kernel core dump data directory and check its permissions. # ls -lLd /var/adm/crash If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22415
Proxy Address Resolution Protocol (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. # grep -n "arp \-s" /sbin/init.d/*
Check Content
Check the system for non-local published ARP entries. # arp -a[n] If any entries are listed as published, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22418
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 using IPF. Add rules that 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. Edit /etc/opt/ipf/ipf.conf and add the following rules, substituting local addresses and interface names: block in log quick on lan0 from 192.168.1.10 to any block in log quick on lan0 from 192.168.1.255 to any Reload the IPF rules. Flush the rules from your ruleset using the -Fa option. The -A option specifies the active rules list. The -f option specifies the rules configuration file to be used: # ipf -Fa -A -f /etc/opt/ipf/ipf.conf
Check Content
Determine if the system is configured to log martian packets. Examine the IPF rules on the system. # ipfstat -i There must be rules that 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. The /etc/opt/ipf/ipf.conf file would appear as follows: block in log quick on lan0 from 192.168.1.10 to any block in log quick on lan0 from 192.168.1.255 to any If such rules do not exist, this is a finding.
Responsibility
System Administrator
IA Controls
ECAT-1
V-22422
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 any local HFS filesystems to use journaling, ensuring file system consistency.
Check Content
Parse the /etc/fstab file for any mountable HFS file system entries: # cat /etc/fstab | grep -v "^#" | grep -v "/stand" | grep hfs If any /etc/fstab entries are displayed, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22424
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 optional ACL from the file. # chacl -z <file>
Check Content
Check the permissions of the inetd configuration file. # find / -type f \( -name inetd.conf -o -name xinetd.conf \) | xargs -n1 ls -lL If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22426
The xinetd.d directory must not have an extended ACL.
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 xinetd configuration directories.
Check Content
Check xinetd configuration directories for extended ACLs. Determine any xinetd configuration directories. # find / -type f -name xinetd.conf | xargs -n1 ls -lL # cat <PATH>/xinetd.conf | grep -v "^#" | grep includedir If xinetd.conf does not exist, or no includedir lines are returned, this is not applicable. Check the xinetd configuration directories for extended ACLs. # ls -lLd <included directories> If any of these directories contain a "+" in the permissions field, the directory has an extended ACL and this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22428
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 optional ACL from the file. # chacl -z /etc/services
Check Content
Check the permissions of the /etc/services file. # ls -lL /etc/services If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22429
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
Stop and disable the rpcbind service, then verify it has not been restarted. # kill rpcbind # chmod 0000 /usr/sbin/rpcbind # ps -ef | grep -v grep | grep rpcbind
Check Content
Check if the rpcbind process is running. # ps -ef | grep -v grep | grep rpcbind If the system needs the portmap service to operate, this is not applicable. If a process is listed and not required, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22430
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: # whereis rpcinfo # chmod 0000 <daemon path/filename from the above command>
Check Content
If the system needs the portmap service to operate, this is not applicable. In order to inspect the HP-UX portmapper protocol: # rpcinfo -p If the service is running while supporting a required service, i.e., mountd/nfs(d), this is not a finding. If the portmap service is installed/running and not required to support any service(s), this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22433
The rlogind service must not be installed.
Discussion
The rlogind 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 rlogind service: # vi /etc/inetd.conf Restart the inetd service via the following command: # inetd -c Disable the rlogind binary: chmod 000 /usr/lbin/rlogind Additionally, the binary name may also be changed: mv /usr/lbin/rlogind /usr/lbin/<new_binary_name>
Check Content
Determine if the rlogind service is installed. # cat /etc/inetd.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | grep -c rlogind If rlogind is found to be installed, this is a finding.
Responsibility
System Administrator
IA Controls
DCPP-1
V-22434
The rexecd service must not be installed.
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 rexecd service: # vi /etc/inetd.conf Restart the inetd service via the following command: # inetd -c Disable the binary: chmod 000 /usr/lbin/rexecd Additionally, the binary name may also be changed: mv /usr/lbin/rexecd /usr/lbin/<new_binary_name>
Check Content
Determine if the rexecd service is installed. # cat /etc/inetd.conf | sed -e 's/^[ \t]*//' | tr '\011' ' ' | tr -s ' ' |grep -v "^#" | cut -f 6,7 -d " " | grep -c -i rexecd If rexecd is found to be installed, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22436
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 optional ACL from the file. # chacl -z <print service configuration file>
Check Content
Locate any print service configuration file(s) on the system. HP vendor documentation identifies the following names and locations of print service configuration files on the system that can be checked via the following commands: # ls -lL /var/spool/lp/.rhosts # ls -lL /var/adm/inetd.sec # ls -lL /etc/hosts.equiv If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22437
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. # chacl -z /usr/contrib/bin/traceroute
Check Content
Check the permissions of the /usr/sbin/traceroute file. # ls -lL /usr/contrib/bin/traceroute If the permissions include a "+", the file has an extended ACL and this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22439
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 optional ACL from the file. # chacl -z /etc/mail/aliases
Check Content
Check the permissions of the /etc/mail/aliases file. # ls -lL /etc/mail/aliases If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22441
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 optional ACL from the file. # chacl -z <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. # ls -lL <file referenced from aliases> If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22442
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 optional ACL from the log file. # chacl -z <log file>
Check Content
Examine /etc/syslog.conf and determine the log file(s) receiving logs for mail.crit, mail.debug, mail.*, or *.crit. # cat /etc/syslog.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | \ egrep -i "mail.crit|mail.\*|\*.crit|mail.debug|\*.debug" | cut -f 2,2 -d " " | \ uniq | xargs -n1 ls -lL Check the permissions on these log files. # ls -lL <log file> If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22445
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 optional ACL from the file. # chacl -z /etc/ftpd/ftpusers
Check Content
Check the permissions of the /etc/ftpusers file. # ls -lL /etc/ftpd/ftpusers If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22446
The .Xauthority files must not have extended ACLs.
Discussion
.Xauthority files ensure the user is authorized to access the 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 optional ACL from the file. # chacl -z /<userhomedirectory>/.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. # ls -lLa /<userhomedirectory>/.Xauthority If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22447
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 that is 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 that information to launch attacks against the system.
Fix Text
Edit /etc/SnmpAgent.d/snmpd.conf and remove references to get-community-name and set-community-name. Restart the SNMP service. # /sbin/init.d/SnmpMaster The snmpd script (/usr/sbin/snmpd) will take care of starting the subagents. It if does not, check the options in /etc/rc.config.d/SnmpMaster that influence the startup behavior.
Check Content
Verify the SNMP daemon is not configured to use community strings. # cat /etc/SnmpAgent.d/snmpd.conf |egrep -i "get-community-name|set-community-name" If any configuration is found, this is a finding.
Responsibility
System Administrator
IA Controls
DCPP-1
V-22450
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 optional ACL from the file. # chacl -z <mib file>
Check Content
Check the file permissions for the MIB files. # find / -type f -name *.mib -exec ls -lL {} \; If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22452
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 optional ACL from the file. # chacl -z /etc/SnmpAgent.d/snmpd.conf
Check Content
Check the permissions of the SNMP configuration file. # ls -lL /etc/SnmpAgent.d/snmpd.conf If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22454
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 optional ACL from the file. # chacl -z /etc/syslog.conf
Check Content
Check the permissions of the syslog configuration file. # ls -lL /etc/syslog.conf If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22456
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 client configuration file Protocol entry to look like: Protocol 2
Check Content
Check the SSH client configuration for allowed protocol versions. Note that keywords are case-insensitive and arguments (args) are case-sensitive. keyword=Protocol arg(s)=2 # cat /opt/ssh/etc/ssh_config | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | grep -i "Protocol" If Protocol 2,1 (the default) or Protocol 1 are defined on a line without a leading comment, this is a finding.
Responsibility
System Administrator
IA Controls
DCPP-1
V-22457
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 configuration file to specify listening for network addresses designated for management traffic only, or remove the ListenAddress line entry.
Check Content
Ask the SA if any/all interfaces are authorized for management traffic. If all interfaces are authorized, this is not a finding. Check the SSH daemon configuration for listening network addresses. Note that keywords are case-insensitive and arguments (args) are case-sensitive. keyword=ListenAddress arg(s)=<site specific> Default arg values include: NA. The default action is for the daemon to listen on all local addresses. In this case, the ListenAddress line entry will not be found in the configuration file. Note: When the default "arg" value exactly matches the required "arg" value (see above), the <keyword=arg> are not required to exist (commented or uncommented) in the ssh (client) or sshd (server) configuration file. While not required, it is recommended that the configuration file(s) be populated with all keywords and assigned arg values as a means to explicitly document the ssh(d) binary's expected behavior. # cat /opt/ssh/etc/sshd_config | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | grep -i "ListenAddress" If a returned 'ListenAddress' configuration entry contains addresses not designated for management traffic, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22458
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 the configuration file and remove any ciphers that do not meet the following: 3des-ctr or aes-NNN-ctr (NNN=128, 192 or 256). If necessary, add the Ciphers entry with one or more of the above keyword values.
Check Content
Check the SSH daemon configuration for allowed ciphers. Note that keywords are case-insensitive and arguments (args) are case-sensitive. keyword=Ciphers arg(s)=<comma separated cipher(s) of the form 3des-ctr or aes-NNN-ctr, NNN=128, 192 or 256> Default values include: "aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour,arcfour128,arcfour256blowfish-cbc,cast128-cbc". For this check, all keyword values ending with the suffix "-cbc" are disallowed, IE: 3des-cbc. As the vendor does not currently support 3des-ctr, the only current allowed keyword values begin with the prefix "aes" and terminate with the suffix "-ctr". Note: When the default "arg" value exactly matches the required "arg" value (see above), the <keyword=arg> entry is not required to exist (commented or uncommented) in the ssh (client) or sshd (server) configuration file. While not required, it is recommended that the configuration file(s) be populated with all keywords and assigned arg values as a means to explicitly document the ssh(d) binary's expected behavior. Examine the file. # cat /opt/ssh/etc/sshd_config | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | egrep -i "ciphers" All ciphers present in the returned ciphers line entry must be prefixed by 3des or aes and end with the suffix "-ctr" or this is a finding.
Responsibility
System Administrator
IA Controls
DCNR-1
V-22459
The SSH daemon must be configured to not use Cipher-Block Chaining (CBC) ciphers.
Discussion
The CBC mode of encryption as implemented in the SSHv2 protocol is vulnerable to chosen plaintext attacks and must not be used.
Fix Text
Edit the configuration file and remove any ciphers other than those with the "aes" prefix and the "-ctr" suffix.
Check Content
Check the SSH daemon configuration for allowed ciphers. Note that keywords are case-insensitive and arguments (args) are case-sensitive. keyword=Ciphers arg(s)=<comma separated cipher(s)> Default values include: "aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour,arcfour128,arcfour256blowfish-cbc,cast128-cbc". For this check, the only allowed keyword values are those from the above list with the "aes" prefix and the "-ctr" suffix. Note: When the default "arg" value exactly matches the required "arg" value (see above), the <keyword=arg> entry is not required to exist (commented or uncommented) in the ssh (client) or sshd (server) configuration file. While not required, it is recommended that the configuration file(s) be populated with all keywords and assigned arg values as a means to explicitly document the ssh(d) binary's expected behavior. Examine the file. # cat /opt/ssh/etc/sshd_config | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | grep -i "ciphers" If the returned ciphers list contains any cipher other than those with the "aes" prefix and the "-ctr" suffix, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22460
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. Note that keywords are case-insensitive and arguments (args) are case-sensitive. Examine the file. # cat /opt/ssh/etc/sshd_config | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | egrep -i "macs" 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
V-22482
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. Note that keywords are case-insensitive and arguments (args) are case-sensitive. keyword=MaxSessions arg(s)=1 Default values include: "10" Note: When the default "arg" value exactly matches the required "arg" value (see above), the <keyword=arg> entry is not required to exist (commented or uncommented) in the ssh (client) or sshd (server) configuration file. While not required, it is recommended that the configuration file(s) be populated with all keywords and assigned arg values as a means to explicitly document the ssh(d) binary's expected behavior. Examine the file. # cat /opt/ssh/etc/sshd_config | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | grep -i "MaxSessions" If configuration information is not returned or the return value is greater than one (1), this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22489
The SSH daemon must be configured with the Department of Defense (DoD) login banner.
Discussion
Failure to display the DoD login banner prior to a logon 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 login warning banner. If required, edit the sshd banner file and add one of the DoD login banners (based on the character limitations imposed by the system). 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
Check the SSH daemon configuration. Note that keywords are case-insensitive and arguments (args) are case-sensitive. keyword=Banner arg(s)=<Department of Defense (DoD) login banner file name> Default values include: <no keyword or banner file name entry> Note: When the default "arg" value exactly matches the required "arg" value (see above), the <keyword=arg> entry is not required to exist (commented or uncommented) in the ssh (client) or sshd (server) configuration file. While not required, it is recommended that the configuration file(s) be populated with all keywords and assigned arg values as a means to explicitly document the ssh(d) binary's expected behavior. Examine the file. # cat /opt/ssh/etc/sshd_config | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | grep -i "Banner" Verify the contents of the banner file: "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 configuration information is not returned or the return value does not contain the Department of Defense (DoD) login banner file name (with banner file content verified), this is a finding.
Responsibility
System Administrator
IA Controls
ECWM-1
V-22490
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
Add a default route for IPv6. Edit /etc/rc.config.d/netconf-ipv6 Add an IPV6_GATEWAY[0]="<gateway>" Restart the system to apply the new default gateway setting.
Check Content
Check for a default route for IPv6: # netstat -f inet6 -r | grep default If the system uses IPv6 and no results are returned, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22492
The NFS share configuration file must be group-owned by root, bin, sys or other.
Discussion
Failure to give group ownership of the NFS share configuration file to root, bin, sys or other 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 share configuration file. # chgrp root /etc/dfs/dfstab
Check Content
Check the group ownership of the NFS share configuration file. # echo `ls -lL /etc/dfs/dfstab` | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | cut -f 4,4 -d " " If the file is not group-owned by root, bin, sys or other, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22493
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 optional ACL from the file. # chacl -z /etc/dfs/dfstab
Check Content
Check the mode of the NFS export configuration file. # echo `ls -lL /etc/dfs/dfstab` | sed -e 's/^[ \t]*//' | tr '\011' ' ' | tr -s ' ' | cut -f 1,1 -d " " If the permissions include a + the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22497
The /etc/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 optional ACL from the file. # chacl -z <path>/smb.conf
Check Content
Check the group ownership of the Samba configuration file. # find / -type f -name smb.conf | xargs -n1 ls -lL If the permissions include a '+', the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22498
The /etc/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 optional ACL from the file. # chacl -z <path>/smbpasswd
Check Content
Check the group ownership of the Samba configuration file. # find / -name smbpasswd | xargs -n1 ls -lL If the permissions include a + the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22502
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 mode 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 optional ACL from the file. # chacl -z <path>/hosts.nntp
Check Content
Check the permissions of the file. # find / -type f -name hosts.nntp | xargs -n1 ls -lL If the permissions include a "+", the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22503
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 optional ACL from the file. # chacl -z <path>/hosts.nntp.nolimit
Check Content
Check the permissions of the file. # find / -type f -name hosts.nntp.nolimit | xargs -n1 ls -lL If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22504
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 optional ACL from the file. # chacl -z <path>/nnrp.access
Check Content
Check the permissions of the file. # find / -type f -name nnrp.access | xargs -n1 ls -lL If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22505
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 optional ACL from the file. # chacl -z <path>/passwd.nntp
Check Content
Check the permissions of the file. # find / -type f -name passwd.nntp | xargs -n1 ls -lL If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22506
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.
Check Content
Check the root crontab for a job invoking the system package management tool to verify the integrity of installed packages. If no such job exists, this is a finding. An example using HP's command line tool suite to list/verify installed local machine software bundles is: # swlist -l bundle # Initializing... # Contacting target "abc123"... # # Target: abc123:/ # 10GigEthr-00 B.11.31.0709 PCI-X 10 Gigabit Ethernet;Supptd Then run swverify, at the end of the output look for status of Verification succeeded. # swverify -v 10GigEthr-00
Responsibility
System Administrator
IA Controls
ECAT-1
V-22507
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 vendor's documentation.
Check Content
Ask the SA if the file integrity tool is configured to monitor directories and files for ACL settings. If using the Advanced Intrusion Detection Environment (AIDE) tool, verify the configuration file (aide.conf) contains the ACL option for all monitored files and directories. See the following example. # find / -type f -name aide.conf | xargs -n1 ls -lL # cat <path>/aide.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' |grep -v "^#" | \ egrep -i "^acl = |acl" If the option is not present, this is a finding. If using a different file integrity tool, check the configuration per tool the vendor's documentation.
Responsibility
System Administrator
IA Controls
ECAT-1
V-22508
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 possible 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
Ask the SA if the file integrity tool is configured to monitor directories and files for xattrs settings. If using the Advanced Intrusion Detection Environment (AIDE) tool, verify the configuration file (aide.conf) contains the xattrs option for all monitored files and directories. See the following example. # find / -type f -name aide.conf | xargs -n1 ls -lL # cat <path>/aide.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' |grep -v "^#" | \ egrep -i "^xattrs = |xattrs" If the option is not present, this is a finding. If using a different file integrity tool, check the configuration per the tool vendor's documentation.
Responsibility
System Administrator
IA Controls
ECAT-1
V-22509
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 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 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
Ask the SA if the file integrity tool is configured to monitor directories and files for sha256 or sha512 settings. If using the Advanced Intrusion Detection Environment (AIDE) tool, verify the configuration file (aide.conf) contains the xattrs option for all monitored files and directories. See the following example. # find / -type f -name aide.conf | xargs -n1 ls -lL # cat <path>/aide.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' |grep -v "^#" | \ egrep -i "sha256|sha512" If one of these 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
V-22544
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
Determine if any non-local published NDP entries exist on the system. # ndp -a If any NDP entries contain a flag of P, they are non-local published entries, and this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22552
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 with 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 IPF. Edit /etc/opt/ipf/ipf6.conf to add or edit IPv6 IPF rules. Add a rule to block traffic with loopback network source addresses from being received on interfaces other than the loopback, such as: block in log quick on lan0 from 0::1 to any 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. For example, consider a system with two network interfaces, one attached to an isolated management network with address 2001:abc::1/64 and the other attached to a production network with address 2001:def::1/64 and a default route. Traffic with a source address on the 2001:abc::0/64 network must be the only traffic accepted on the management interface and must not be accepted on the production interface. This can be accomplished with IPF rules such as: pass in quick on mgmt0 from 2001:abc::0/64 to any block in quick on mgmt0 from any to any block in quick on prod0 from 2001:abc::0/64 to any Reload the IPF rules. Flush the rules from your ruleset using the -6Fa option. The -A option specifies the active rules list. The -f option specifies the rules configuration file to be used: # ipf -6Fa -A -f /etc/opt/ipf/ipf6.conf
Check Content
If IPv6 is not used on the system, this is not applicable. Determine if the system is configured to use reverse-path filtering. Examine the IPF rules on the system. # ipfstat -6i All systems must block inbound traffic destined to the loopback address block from interfaces other than the loopback. This can be accomplished with an IPF rule such as: block in log quick on lan0 from 0::1 to any 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 this filtering is not configured on the system, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22553
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 to not forward IPv6 source-routed packets. # ndd -set /dev/ip6 ip6_forwarding 0 This command should also be added to the ndd configuration file and/or to the system startup script /etc/rc.config.d/nddconf : TRANSPORT_NAME[index]=ip6 NDD_NAME[index]=ip6_forwarding NDD_VALUE[index]=0
Check Content
Determine if the system is configured for packet forwarding. # ndd -get /dev/ip6 ip6_forwarding If the command returns 0 (disabled), this is not a finding. If the command returns 1 (enabled), ask the SA if the system is configured to act as a router, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22555
If the system is using LDAP for authentication or account information, the system must use a TLS connection using FIPS 140-2 approved cryptographic algorithms.
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 protection.
Fix Text
The Directory Server must support and be configured to use FIPS 140-2 approved cryptographic algorithms for the TLS connection. For the LDAPUX client: # vi /etc/opt/ldapux/ldapux_client.conf If commented, uncomment the "enable_startTLS" keyword line and ensure that the keyword value is set to 1 (to start TLS), IE: enable_startTLS = 1 Finally, use the following commands to reread the configuration file and restart ldapclientd.: # /opt/ldapux/bin/ldapclientd -k # nohup /opt/ldapux/bin/ldapclientd
Check Content
Determine if the system uses LDAP. If it does not, this is Not A Finding. # swlist | grep LDAP OR # cat /etc/nsswitch.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | \ grep -v "^#" | grep -i ldap If LDAP is installed, verify that TLS is enabled. # cat /etc/opt/ldapux/ldapux_client.conf | tr '\011' ' ' | tr -s ' ' | \ sed -e 's/^[ \t]*//' | grep -v "^#" | grep -i "^enable_startTLS = 1" If TLS is not enabled, this is a finding. Verify the certificate database exists. # ls -alL /etc/opt/ldapux/cert* List the LDAP Directory Server certificate. # /opt/ldapux/contrib/bin/certutil -L -d /etc/opt/ldapux List the details when checking the Directory Server's certificate validity/attributes. Note: The format of the validity-time argument when specifying an explicit time is "YYMMDDHHMMSSZ". Specifying seconds (SS) is optional. # /opt/ldapux/contrib/bin/certutil -V -n <Directory Server nickname> -b <validity-time> [-e] -l -d /etc/opt/ldapux If the Directory Server's certificate cannot be verified, this is a finding. NOTE: The TLS protocol supports a variety of cryptographic ciphers for authenticating the server and client to each other, transmitting certificates and establishing session keys. When the LDAP-UX client connects to the LDAP Directory Server, the server selects the strongest cipher supported by both client and server. As LDAP-UX is the client side of the LDAP application, LDAP-UX has no control over this process. Unless it can be determined that the Directory Server is using FIPS 140-2 approved cryptographic algorithms for the TLS connection, this check will result in an OPEN Finding.
Responsibility
System Administrator
IA Controls
DCNR-1
V-22558
If the system is using LDAP for authentication or account information, the system must verify the LDAP server's certificate has not been revoked.
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
Edit /etc/ldap.conf and add or set the tls_crlcheck setting to all.
Check Content
Determine if the system uses LDAP. If it does not, this is not applicable. # swlist | grep LDAP OR # cat /etc/nsswitch.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | grep -i ldap If no lines are returned for either of the above commands, this vulnerability is not applicable. Verify the LDAP client is configured to check certificates against a certificate revocation list. # cat /etc/ldap.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | \ grep -i "^tls_crlcheck" If the setting does not exist, or the value is not all, this is a finding.
Responsibility
System Administrator
IA Controls
DCNR-1
V-22559
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 file. # chmod 0644 <LDAP configuration file>
Check Content
Determine if the system uses LDAP. If it does not, this is not applicable. # swlist | grep LDAP OR # cat /etc/nsswitch.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | grep -i ldap If nothing is returned for either of the above commands, this is not applicable. Check the permissions of the LDAP configuration file(s). ls -lL /etc/opt/ldapux/ldapux_client.conf /etc/opt/ldapux/ldapclientd.conf /etc/opt/ldapux/ldapug.conf If the mode of the file is more permissive than 0644, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22560
If the system is using LDAP for authentication or account information, the /etc/ldap.conf (or equivalent) file must be owned by root or bin.
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 file. # chown root <LDAP configuration file>
Check Content
Determine if the system uses LDAP. If it does not, this is not applicable. # swlist | grep LDAP OR # cat /etc/nsswitch.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | grep -i ldap If nothing is returned for either of the above commands, this is not applicable. Check the ownership of the LDAP configuration file(s). ls -lL /etc/opt/ldapux/ldapux_client.conf /etc/opt/ldapux/ldapclientd.conf /etc/opt/ldapux/ldapug.conf If any of the above files are not owned by root or bin, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22561
If the system is using LDAP for authentication or account information, the /etc/ldap.conf (or equivalent) file must be group-owned by root, bin, sys, or other.
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 file to root, bin, sys, or other. # chgrp root <LDAP configuration file>
Check Content
Determine if the system uses LDAP. If it does not, this is not applicable. # swlist | grep LDAP OR # cat /etc/nsswitch.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | grep -i ldap If nothing is returned for either of the above commands, this is not applicable. Check the group ownership of the LDAP configuration file(s). ls -lL /etc/opt/ldapux/ldapux_client.conf /etc/opt/ldapux/ldapclientd.conf /etc/opt/ldapux/ldapug.conf If any of the above files are not group owned by root, bin, sys, or other, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22562
If the system is using LDAP for authentication or account information, the LDAP configuration file(s) 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 file. # chacl -z <LDAP configuration file>
Check Content
Determine if the system uses LDAP. If it does not, this is not applicable. # swlist | grep LDAP OR # cat /etc/nsswitch.conf | sed -e 's/^[ \t]*//' | tr '\011' ' ' | tr -s ' ' | grep -v "^#" | grep -i ldap If nothing is returned for either of the above commands, this is not applicable. Check the LDAP configuration file for the presence of an ACL. # ls -alL /etc/opt/ldapux/ldapux_client.conf If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22566
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 certificate file. # chacl -z <directory> # chacl -z <directory>/<file>
Check Content
Determine if the system uses LDAP. If it does not, this is not applicable. # swlist | grep LDAP OR # cat /etc/nsswitch.conf | sed -e 's/^[ \t]*//' | tr '\011' ' ' | tr -s ' ' | grep -v "^#" | grep -i ldap If nothing is returned for either of the above commands, this is not applicable. If LDAP is installed, check the permissions of the LDAP cert file(s). # ls -lLd /etc/opt/ldapux # ls -lLa /etc/opt/ldapux/cert8.db If the permissions of the file or directory contains a "+", an extended ACL is present, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22570
If the system is using LDAP for authentication or account information, the LDAP TLS certificate 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 certificate file. # chacl -z <certfile>
Check Content
Determine if the system uses LDAP. If it does not, this is not applicable. # swlist | grep LDAP OR # cat /etc/nsswitch.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | grep -i ldap If nothing is returned for either of the above commands, this is not applicable. If LDAP is installed, check the mode of the LDAP cert file(s). # ls -lLa /etc/opt/ldapux/cert8.db If the permissions of the file contains a "+", an extended ACL is present, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22574
If the system is using LDAP for authentication or account information, the LDAP TLS key 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 key file. # chacl -z <key file>
Check Content
Determine if the system uses LDAP. If it does not, this is not applicable. # swlist | grep LDAP OR # cat /etc/nsswitch.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | grep -i ldap If nothing is returned for either of the above commands, this is not applicable. If LDAP is installed, check the mode of the LDAP key file(s). # ls -lLa /etc/opt/ldapux/key3.db If the permissions of the file contains a "+", an extended ACL is present and this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22578
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 on the system. In doing so, remember the keyboard and mouse will no longer work.
Check Content
# ioscan -fnC usb If the system uses USB, this is not applicable. By default, HP-UX systems tend to use both a USB keyboard and mouse. The following sample is a section of a system ioscan output showing the discovered USB controllers and devices. Notice, there are 3 NEC USB controllers. The first 2 USB controllers are OHCI (Open Host Controller Interface) controllers for low and full speed USB 1.0 and 1.1 devices. The 3rd USB controller is an EHCI (Enhanced Host Controller Interface) controller for high speed USB 2.0 devices. The first OHCI USB controller has a keyboard, a mouse, and a mass storage device attached. The second OHCI USB controller has no devices attached. The third USB controller, EHCI, has 2 mass storage devices attached. Class I H/W Path Driver S/W State H/W Type Description ================================================================================================ Usb 0 0/0/2/0 hcd CLAIMED INTERFACE NEC OHCI Controller usbcomp 0 0/0/2/0.1 usbcomposite CLAIMED DEVICE USB Composite Device usbhid 0 0/0/2/0.1.0 hid CLAIMED DEVICE USB HID Kbd(0) usbhid 1 0/0/2/0.1.1 hid CLAIMED DEVICE USB HID Pointer(1) usbms 0 0/0/2/0.1.2 ms CLAIMED DEVICE USB Mass Storage [0] usb 1 0/0/2/1 hcd CLAIMED INTERFACE NEC OHCI Controller usb 2 0/0/2/2 ehci CLAIMED INTERFACE NEC EHCI Controller usbms 2 0/0/2/2.2 ms CLAIMED DEVICE USB Mass Storage [1] usbms 3 0/0/2/2.3 ms CLAIMED DEVICE USB Mass Storage [2] Determine if the system has USB enabled. If it does, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22579
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
If usb mass storage is not required and the system does not use the system's usb interface for keyboard/mouse input, remove the "usbd" module from the kernel, remake the kernel and reboot the system. Document the change(s). # smh
Check Content
On HP-UX systems with USB ports, the kernel module "usbd" is installed with the operating system. The "usbd" module enables and currently supports the use of a keyboard, a mouse and an optical drive. # /stand/system | grep -i usb # ioscan -fnC usb Ask the SA if the system requires USB mass storage. If the system requires the use of USB mass storage, this is not applicable. If the kernel module "usbd" is installed and the system does not require usb mass storage, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22583
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
Edit /etc/opt/ipf/ipf.conf and add a default deny rule and restart the ipfilter service. # /sbin/init.d/ipfboot stop # /sbin/init.d/ipfboot start
Check Content
Check the firewall rules for a default deny rule. # ipfstat -i | sed -e 's/^[ \t]*//' | tr '\011' ' ' | tr -s ' ' | grep -v "^#" | grep "block" An example of a default deny rule: block in log quick on ne3 from any to any If there is no default deny rule, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22591
The HP-UX /etc/securetty 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 /etc/securetty file could cause Denial of Service to authorized system consoles or add unauthorized system consoles.
Fix Text
Remove the optional ACL from the file. # chacl -z /etc/securetty
Check Content
Check the permissions of the file. # ls -lLd /etc/securetty If the permissions of the file or directory contains a '+', an extended ACL is present, and this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-22665
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 | grep -v grep | egrep -i "route|ospf|bgp|zebra|quagga|ripng|ramd" If any routing protocol daemons are listed, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-22702
System audit logs must be group-owned by root, bin, sys, or other.
Discussion
Sensitive system and user information could provide a malicious user with enough information to penetrate further into the system.
Fix Text
As root, change the group ownership. # chgrp root <audit directory> # chgrp root <audit file>
Check Content
Inspect the auditing configuration file, /etc/rc.config.d/auditing, to determine the filename and path of the audit logs. The entries should appear similar to the following: PRI_AUDFILE=/var/.audit/file1 SEC_AUDFILE=/var/.audit/file2 # egrep “PRI_AUDFILE|SEC_AUDFILE” /etc/rc.config.d/auditing For each audit log directory/file, check the group ownership. # ls -lLd <audit directory> # ls -lLa <audit file> If any audit log directory/file is not group-owned by root, bin, sys, or other, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1, ECTP-1
V-23952
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 then 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
Ask the SA if the system is a documented mail relay, and if it is, this is not applicable. If the system uses Sendmail, determine if Sendmail only binds to loopback addresses by examining the "DaemonPortOptions" configuration options. # 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. # 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, 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. # 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 mail relaying is restricted.
Responsibility
System Administrator
IA Controls
ECSC-1
V-23953
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
Remove the execute permissions from the ldd executable. # chmod a-x /usr/ccs/bin/ldd
Check Content
Determine if the system's ldd executable exists and is executable. # ls -lL /usr/ccs/bin/ldd If the file exists and has any execute permissions, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-24347
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 that have 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 vendor and/or 3rd party documentation to determine the procedures necessary for configuring CAC authentication. Configure all accounts required by policy to use CAC authentication to use CAC authentication.
Check Content
Example: Reflection PKI Services Manager is a separate add-on providing X.509 certificate authentication services for the following Attachmate products: Reflection for Secure IT UNIX Server (7.1 or higher), and Reflection for Secure IT UNIX Client (7.1 or higher). The following HP-UX systems are supported by Reflection PKI Services Manager 1.0 or higher: HP-UX 11i v3 (Itanium) HP-UX 11i v2 (Itanium) HP-UX 11i v2 (PA-RISC) HP-UX 11i v1 (PA-RISC) To determine if the system is capable of CAC authentication, ask the SA if the system uses the Reflection PKI Services Manager for the Attachmate product (or similar). If it is not, this is not applicable. Additionally, ask 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
V-24357
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
The audit overflow monitor daemon (audomon) is spawned by /sbin/init.d/auditing as part of the init start-up process. Create a <command> script to implement the vendor-recommended, long term data storage strategy and pass it to the audomon daemon using the "-X <command>" option. The <command> must be executed each time audomon switches the audit trail. A manual review of the <command> script is required.
Check Content
The audit overflow monitor daemon (audomon) is spawned by /sbin/init.d/auditing as part of the init start-up process. The vendor (HP) recommends that a script be written to implement a long term strategy for data storage and pass it to the audomon daemon using the "-X <command>" option. <command> is executed each time audomon switches the audit trail. The means used to implement audit log transfer to a remote system will be site specific and therefore always require a manual review. ASK the SA if audomon is configured per the vendor's (HP) guidance to implement a long term, remote data storage strategy.
Responsibility
System Administrator
IA Controls
ECTB-1
V-40350
userdb database must not be used to override the system-wide variables in the security file, unless required.
Discussion
The user database stores per-user information. It consists of the /var/adm/userdb directory and the files within it. A per-user value in /var/adm/userdb will override any corresponding system-wide default configured in the /etc/default/security file. Allowing per-user files to relax system-wide security settings creates potential security gaps that can compromise overall system security.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Delete any configured users from the /var/adm/userdb database: # /usr/sbin/userdbset -d -u <user> Restart auditing: # /sbin/init.d/auditing stop # /sbin/init.d/auditing start
Check Content
If the system is operating in Trusted Mode, this check is not applicable. For SMSE: Check the /var/adm/userdb database for individual user settings: # /usr/sbin/userdbget -a If the “userdb” database is used exclusively to enhance/tighten the security requirements as defined in the /etc/default/security file (see the following example), this is not a finding. Example: /etc/default/security requires a MIN_PASSWORD_LENGTH attribute setting of N=14 and specific per user attribute values in /var/adm/userdb are set to 15. If any user information is returned that is greater than the required attribute setpoint in the/etc/default/security file (see the following example), this is a finding. Example: /etc/default/security requires a MIN_PASSWORD_LENGTH attribute setting of N=14 and specific per user attribute values in /var/adm/userdb are set to 13.
Responsibility
System Administrator
IA Controls
DCSW-1
V-40355
The system must disable accounts after three consecutive unsuccessful SSH login attempts.
Discussion
Disabling accounts after a limited number of unsuccessful SSH login attempts improves protection against password guessing attacks.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE only: Edit the /opt/ssh/etc/sshd_config file and add/uncomment/update the “UsePAM” attribute. See the below example: UsePAM yes Save any change(s) before exiting the editor.
Check Content
If the system is operating in Trusted Mode, this check is not applicable. For SMSE: The “UsePAM” attribute in the /opt/ssh/etc/sshd_config configuration file controls whether an account is locked after too many consecutive SSH authentication failures. The default “UsePAM” attribute setting is “no”. Verify the global setting for “UsePAM” is set to “yes”. # cat /opt/ssh/etc/sshd_config | sed -e 's/^[ \t]*//' grep -v “#” | grep “^UsePAM” If the /opt/ssh/etc/sshd_config configuration file attribute “UsePAM” is not set to “yes”, this is a finding.
IA Controls
ECLO-1, ECLO-2
V-40445
The system must impose the same restrictions on root logins that are already applied to non-root users.
Discussion
Best practices standard operating procedures for computing systems includes account management. If the root account is allowed to be configured without a password, or not configured to lock if there have been no logins to the root account for an organization defined time interval, the entire system can be compromised.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: Edit the /etc/default/security file and add/modify the following attribute(s) and attribute values: LOGIN_POLICY_STRICT=1 Save the file before exiting the editor.
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For Standard Mode with Security Extensions (SMSE): Check the /etc/default/security file for the following attribute(s) and attribute values: LOGIN_POLICY_STRICT=1 # grep “LOGIN_POLICY_STRICT” /etc/default/security If LOGIN_POLICY_STRICT=0, then the root user is not subject to the same login restrictions as non-root users. If no organizational exceptions for root are documented and LOGIN_POLICY_STRICT=0, then this is a finding.
Responsibility
System Administrator
V-40446
The ability to boot the system into single user mode must be restricted to root.
Discussion
Single user mode access must be strictly limited to the privileged user root. The ability to boot to single user mode allows a malicious user the opportunity to modify, compromise, or otherwise damage the system.
Fix Text
For Trusted Mode: If single user boot authentication is disabled, use the System Administration Manager (SAM) or the System Management Homepage (SMH) to allow single user boot for root only. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the attribute. See the below example: BOOT_USERS=root Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode: Protected password database files are maintained in the /tcb/files/auth hierarchy. This directory contains other directories each named with a single letter from the alphabet. User authentication profiles are stored in these directories based on the first letter of the user account name. Next check that only root is authorized to boot into single user mode. # grep “:u_bootauth:” /tcb/files/auth/[a-z,A-Z]/* If any non-root users have been granted single user boot privileges, this is a finding. For SMSE: Check the /etc/default/security file for the following attribute(s) and attribute values: BOOT_USERS=root (Note: BOOT_USERS attribute values are comma delimited strings). # grep “BOOT_USERS” /etc/default/security /var/adm/userdb/* If the BOOT_USERS attribute contains any username other than root, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-40447
The /var/adm/userdb directory must be owned by root.
Discussion
The /var/adm/userdb directory is the system user database repository used for storing per-user security configuration information. If the configuration is modified maliciously, individual users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file ownership. # chown root /var/adm/userdb
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the directory is owned by root. # ls -lL /var/adm/userdb If the directory is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40448
The /var/adm/userdb directory must be group-owned by sys.
Discussion
The /var/adm/userdb directory is the system user database repository used for storing per-user security configuration information. If the configuration is modified maliciously, individual users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file group ownership. # chgrp sys /var/adm/userdb
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the directory is group-owned by sys. # ls -lL /var/adm/userdb If the directory is not group-owned by sys, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40449
The /var/adm/userdb directory must have mode 0700 or less permissive.
Discussion
The /var/adm/userdb directory is the system user database repository used for storing per-user security configuration information. If the configuration is modified maliciously, individual users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file mode to 0700 or less permissive. # chmod 0700 /var/adm/userdb
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the directory mode. # ls -lL /var/adm/userdb If the directory mode is more permissive than 0700, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40450
The /var/adm/userdb directory must not have an extended ACL.
Discussion
The /var/adm/userdb directory is the system user database repository used for storing per-user security configuration information. If the configuration is modified maliciously, individual users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: Remove the optional ACL from the file. # chacl -z /var/adm/userdb
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the directory has no extended ACL. # ls -lL /var/adm/userdb If the permissions include a “+”, the directory has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40451
The /var/adm/userdb/USERDB.DISABLED file must be owned by root.
Discussion
Unless the userdb is required, the /var/adm/userdb/USERDB.DISABLED file must be created to disable the use of per-user security attributes in the user database. Attributes in the user database override the system-wide settings configured in /etc/default/security. If the system-wide configuration is overridden maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file ownership. # chown root /var/adm/userdb/USERDB.DISABLED
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: If the userdb is required, this check is not applicable. Verify the file is owned by root. # ls -lL /var/adm/userdb/USERDB.DISABLED If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40452
The /var/adm/userdb/USERDB.DISABLED file must be group-owned by sys.
Discussion
Unless the userdb is required, the /var/adm/userdb/USERDB.DISABLED file must be created to disable the use of per-user security attributes in the user database. Attributes in the user database override the system-wide settings configured in /etc/default/security. If the system-wide configuration is overridden maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file group ownership. # chgrp sys /var/adm/userdb/USERDB.DISABLED
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: If the userdb is required, this check is not applicable. Verify the file is group-owned by sys. # ls -lL /var/adm/userdb/USERDB.DISABLED If the file is not group-owned by sys, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40453
The /var/adm/userdb/USERDB.DISABLED file must have mode 0444 or less permissive.
Discussion
Unless the userdb is required, the /var/adm/userdb/USERDB.DISABLED file must be created to disable the use of per-user security attributes in the user database. Attributes in the user database override the system-wide settings configured in /etc/default/security. If the system-wide configuration is overridden maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file mode to 0444 or less permissive. # chmod 0444 /var/adm/userdb/USERDB.DISABLED
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: If the userdb is required, this check is not applicable. Verify the file mode. # ls -lL /var/adm/userdb/USERDB.DISABLED If the file mode is more permissive than 0444, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40454
The /var/adm/userdb/USERDB.DISABLED file must not have an extended ACL.
Discussion
Unless the userdb is required, the /var/adm/userdb/USERDB.DISABLED file must be created to disable the use of per-user security attributes in the user database. Attributes in the user database override the system-wide settings configured in /etc/default/security. If the system-wide configuration is overridden maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: Remove the optional ACL from the file. # chacl -z /var/adm/userdb/USERDB.DISABLED
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: If the userdb is required, this check is not applicable. Verify the file has no extended ACL. # ls -lL /var/adm/userdb/USERDB.DISABLED If the permissions include a “+”, the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40466
The /etc/security.dsc file must be owned by root.
Discussion
The /etc/security.dsc file is the system description file that contains all attributes and default values that are configurable on a per user basis in /var/adm/userdb. If the description file is modified maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file ownership. # chown root /etc/security.dsc
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file is owned by root. # ls -lL /etc/security.dsc If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40467
The /etc/security.dsc file must be group-owned by sys.
Discussion
The /etc/security.dsc file is the system description file that contains all attributes and default values that are configurable on a per user basis in /var/adm/userdb. If the description file is modified maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file group ownership. # chgrp sys /etc/security.dsc
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file is group-owned by sys. # ls -lL /etc/security.dsc If the file is not group-owned by sys, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40468
The /etc/security.dsc file must have mode 0444 or less permissive.
Discussion
The /etc/security.dsc file is the system description file that contains all attributes and default values that are configurable on a per user basis in /var/adm/userdb. If the description file is modified maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file mode to 0444 or less permissive. # chmod 0444 /etc/security.dsc
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file mode. # ls -lL /etc/security.dsc If the file mode is more permissive than 0444, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40470
The /etc/security.dsc file must not have an extended ACL.
Discussion
The /etc/security.dsc file is the system description file that contains all attributes and default values that are configurable on a per user basis in /var/adm/userdb. If the description file is modified maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: Remove the optional ACL from the file. # chacl -z /etc/security.dsc
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file has no extended ACL. # ls -lL /etc/security.dsc If the permissions include a “+”, the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40473
The /etc/pam.conf file must be owned by root.
Discussion
/etc/pam.conf file is the system configuration file for the Pluggable Authentication Module (PAM) architecture. It supports per user authentication, account, session, and password management. If the configuration is modified maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file ownership. # chown root /etc/pam.conf
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file is owned by root. # ls -lL /etc/pam.conf If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40476
The /etc/pam.conf file must be group-owned by sys.
Discussion
The /etc/pam.conf file is the system configuration file for the Pluggable Authentication Module (PAM) architecture. It supports per user authentication, account, session, and password management. If the configuration is modified maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file group ownership. # chgrp sys /etc/pam.conf
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file is group-owned by sys. # ls -lL /etc/pam.conf If the file is not group-owned by sys, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40478
The /etc/pam.conf file must have mode 0444 or less permissive.
Discussion
The /etc/pam.conf file is the system configuration file for the Pluggable Authentication Module (PAM) architecture. It supports per user authentication, account, session, and password management. If the configuration is modified maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file mode to 0444 or less permissive. # chmod 0444 /etc/pam.conf
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file mode. # ls -lL /etc/pam.conf If the file mode is more permissive than 0444, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40482
The /etc/pam.conf file must not have an extended ACL.
Discussion
The /etc/pam.conf file is the system configuration file for the Pluggable Authentication Module (PAM) architecture. It supports per user authentication, account, session, and password management. If the configuration is modified maliciously, users may gain unauthorized system access.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: Remove the optional ACL from the file. # chacl -z /etc/pam.conf
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file has no extended ACL. # ls -lL /etc/pam.conf If the permissions include a “+”, the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40483
The per user PAM configuration file (/etc/pam_user.conf) must not be used to override the system-wide PAM configuration file (/etc/pam.conf) unless it is required.
Discussion
The per user PAM configuration file (/etc/pam_user.conf) allows individual users to be assigned options that differ from those of the general computing community. This file is optional and should only be used if PAM applications are required to operate differently for specific users, i.e., to isolate the administrative user accounts.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: If the SA cannot provide a reasonable explanation for user entries in the /etc/pam_user.conf file, take one or more of the following actions: remove the file, remove/comment all user entries, remove/comment individual user entries. Document all changes.
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Check the system for the existence of the /etc/pam_user.conf file. # ls -lL /etc/pam_user.conf If the file does not exist, this is a finding. If the file exists, examine the file. # cat /etc/pam_user.conf Attempt to determine the reason (ask the SA for an explanation) for options being passed to the PAM service modules for the listed users. If the SA cannot provide an explanation for the listed users and PAM module options, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-40484
The /etc/pam_user.conf file must be owned by root.
Discussion
The /etc/pam_user.conf file is the per user configuration file for the Pluggable Authentication Module (PAM) architecture. It supports per user authentication, account, session, and password management. If the configuration is modified maliciously, users may gain unauthorized system access. The /etc/pam_user.conf file must not be configured unless it is required.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file ownership. # chown root /etc/pam_user.conf
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file is owned by root. # ls -lL /etc/pam_user.conf If the file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40485
The /etc/pam_user.conf file must be group-owned by sys.
Discussion
The /etc/pam_user.conf file is the per user configuration file for the Pluggable Authentication Module (PAM) architecture. It supports per user authentication, account, session, and password management. If the configuration is modified maliciously, users may gain unauthorized system access. The /etc/pam_user.conf file must not be configured unless it is required.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file group ownership. # chgrp sys /etc/pam_user.conf
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file is group-owned by sys. # ls -lL /etc/pam_user.conf If the file is not group-owned by sys, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40486
The /etc/pam_user.conf file must have mode 0444 or less permissive.
Discussion
The /etc/pam_user.conf file is the per user configuration file for the Pluggable Authentication Module (PAM) architecture. It supports per user authentication, account, session, and password management. If the configuration is modified maliciously, users may gain unauthorized system access. The /etc/pam_user.conf file must not be configured unless it is required.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: As root, change the file mode to 0444 or less permissive. # chmod 0444 /etc/pam_user.conf
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file mode. # ls -lL /etc/pam_user.conf If the file mode is more permissive than 0444, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40487
/etc/pam_user.conf file must not have an extended ACL.
Discussion
The /etc/pam_user.conf file is the per user configuration file for the Pluggable Authentication Module (PAM) architecture. It supports per user authentication, account, session, and password management. If the configuration is modified maliciously, users may gain unauthorized system access. The /etc/pam_user.conf file must not be configured unless it is required.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: Remove the optional ACL from the file. # chacl -z /etc/pam_user.conf
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For SMSE: Verify the file has no extended ACL. # ls -lL /etc/pam_user.conf If the permissions include a “+”, the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-40492
During a password change, the system must determine if password aging attributes are inherited from the /etc/default/security file attributes when no password aging is specified in the shadow file for local users.
Discussion
Password aging attributes are stored in /etc/default/security and /etc/shadow. Anytime a password aging policy is changed, policy requirements are updated in /etc/default/security. If the system is allowed to override or ignore updates made to /etc/default/security, deprecated password aging policies will remain intact and never enforce newer requirements.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) to update the OVERRIDE_SYSDEF_PWAGE attribute. See the below example: OVERRIDE_SYSDEF_PWAGE=0 Note: If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode: If the system is operating in Trusted Mode, this check is not applicable. For SMSE: Check the OVERRIDE_SYSDEF_PWAGE attribute setting. # grep OVERRIDE_SYSDEF_PWAGE /etc/default/security If the OVERRIDE_SYSDEF_PWAGE attribute is missing or not set to 0, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-40493
The system must display the date and time of the last successful account login upon login by means other than SSH.
Discussion
Providing users with feedback on when account accesses last occurred facilitates user recognition and reporting of unauthorized account use.
Fix Text
For Trusted Mode: Use the SAM/SMH interface to ensure the attributes are added to all user /tcb profiles. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update attribute. See the below example: DISPLAY_LAST_LOGIN=1 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
Protected password database files are maintained in the /tcb/files/auth hierarchy. This directory contains other directories each named with a single letter from the alphabet. User profiles are stored in these directories based on the first letter of the user account name. Check the user attributes for the time and source of the last (successful and unsuccessful) login. This information is presented during login. All attributes are generated by the system in an integer format (system time). See the example commands below: For successful logins: # egrep "u_succhg#[0-9]+:" /tcb/files/auth/[a-z,A-Z]/* For unsuccessful login attempts: # egrep "u_unsucchg#[0-9]+:" /tcb/files/auth/[a-z,A-Z]/* If any users are missing the above attributes or attribute integer data, this is a finding. For SMSE: Check for the following attribute and attribute value: DISPLAY_LAST_LOGIN=1 # grep "DISPLAY_LAST_LOGIN" /etc/default/security /var/adm/userdb/* If the DISPLAY_LAST_LOGIN attribute is set to 0, this is a finding.
Responsibility
System Administrator
V-40494
The system and user default umask must be 0077 for all sessions initiated via PAM.
Discussion
The umask controls the default access mode assigned to newly created files. An umask of 0077 limits new files to mode 0700 or less permissive. The leading zero digit represents an unsigned octal integer. This requirement applies to the globally configured system and user account defaults for all sessions initiated via PAM.
Fix Text
For Trusted Mode: Use the SAM/SMH interface (/etc/default/security file) to update attribute. See the below example: UMASK=0077 For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update attribute. See the below example: UMASK=0077 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode: Check the attribute setting. # grep UMASK /etc/default/security If UMASK is not set to 0077, this is a finding. For SMSE: Check the attribute setting. # grep UMASK /etc/default/security /var/adm/userdb/* If UMASK is not set to 0077, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-4087
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 compromise the system at the user level or higher. 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 -alL <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
V-4089
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
System start-up files are identified as follows: Run control scripts reside in the /sbin/init.d directory. Links to the run control scripts exist in the /sbin/rc*.d directories. Run control configuration files exist in the /etc/rc.config.d directory. Check all system start-up script file ownership. # ls -lL /sbin/init.d/* /sbin/rc*.d/* /etc/rc.config.d/* If any system start-up script file is not owned by root or bin, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4090
All system startup files must be group-owned by root, sys, bin or other.
Discussion
If system startup files do not have a group owner of root or 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 root <run control script>
Check Content
System start-up files are identified as follows: Run control scripts reside in the /sbin/init.d directory. Links to the run control scripts exist in the /sbin/rc*.d directories. Run control script configuration files exist in the /etc/rc.config.d directory. Check system start-up script file group ownership. # ls -lL /sbin/init.d/* /etc/rc.config.d/* /etc/rc.config.d/* If any system start-up script file is not group-owned by root, sys, bin or other, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4091
System start-up files must only execute programs owned by a privileged UID or an application.
Discussion
System start-up files that execute programs owned by other than root (or another privileged user) or an application indicate that the system may have been compromised.
Fix Text
Change the ownership of the file executed from system startup scripts to root, bin, sys, or the application account, where required. # chown root <executed file>
Check Content
Determine the ownership of programs executed by system start-up files. # more `ls -alL /sbin/init.d/* | tr '\011' ' ' | tr -s ' ' | cut -f 9,9 -d " "` If any executed program is not owned by root, sys, bin, or in rare cases, an application account, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
V-4246
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 BIOS or system controller. Set a supervisor/administrator password if one has not been set. Disable a user-level password if one has been set.
Check Content
On systems with a BIOS or system controller, verify a supervisor or administrator password is set. If a password is not set, this is a finding. Attempt to log into the system controller first using the user/pwd format of Admin/Admin, then as Oper/Oper. Also, depending upon the MP/SP/GSP, it may also allow for simple carriage return entry <CR>/<CR> if account(s)/password(s) are uninitialized. If the BIOS or system controller supports user-level access in addition to supervisor/administrator access, determine if this access is enabled. If so, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4247
The system must not use removable media as the boot loader.
Discussion
Malicious users with removable boot media can gain access to a system configured to use removable media as the boot loader.
Fix Text
Configure the system to use a bootloader installed on fixed media.
Check Content
Ask the SA if the system uses removable media for the boot loader. If it does, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4255
If the system boots from removable media, it must be stored in a safe or similarly secured container.
Discussion
Storing the boot loader on removable media in an insecure location could allow a malicious user to modify the systems boot instructions or boot to an insecure operating system.
Fix Text
Store the system boot media in a secure container when not in use.
Check Content
Ask the SA if the system boots from removable media. If so, ask if the boot media is stored in a secure container when not in use. If it is not, this is a finding.
Responsibility
Information Assurance Officer
IA Controls
PESS-1
V-4269
The system must not have unnecessary accounts.
Discussion
Accounts providing no operational purpose provide additional opportunities for system compromise. Unnecessary accounts include user accounts for individuals not requiring access to the system and application accounts for applications not installed on the system.
Fix Text
Remove all unnecessary accounts (such as games) from the /etc/password file before connecting a system to the network. Accounts such as news and gopher associated with a service not in use should also be removed.
Check Content
Check the system for unnecessary user accounts. Procedure: # more /etc/passwd Some examples of unnecessary accounts include games, news, gopher, ftp and lp. If any unnecessary accounts are found, this is a finding.
Responsibility
System Administrator
IA Controls
IAAC-1
V-4273
The /etc/news/hosts.nntp (or equivalent) must have mode 0600 or less permissive.
Discussion
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
Change the mode of the hosts.nntp file to 0600. # chmod 0600 <path>/hosts.nntp
Check Content
Locate/check the hosts.nntp permissions. # find / -type f -name hosts.nntp | xargs -n1 ls -lL If hosts.nntp has a mode more permissive than 0600, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4274
The /etc/news/hosts.nntp.nolimit (or equivalent) must have mode 0600 or less permissive.
Discussion
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
Change the mode of hosts.nntp.nolimit to 0600. # chmod 0600 <path>/hosts.nntp.nolimit
Check Content
Check hosts.nntp.nolimit permissions. # find / -type f -name hosts.nntp.nolimit | xargs -n1 ls -lL If hosts.nntp.nolimit has a mode more permissive than 0600, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4275
The /etc/news/nnrp.access (or equivalent) must have mode 0600 or less permissive.
Discussion
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
Change the mode of the nnrp.access file to 0600. # chmod 0600 <path>/nnrp.access
Check Content
Check nnrp.access permissions. # find / -type f -name nnrp.access | xargs -n1 ls -lL If nnrp.access has a mode more permissive than 0600, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4276
The /etc/news/passwd.nntp file (or equivalent) must have mode 0600 or less permissive.
Discussion
File permissions more permissive than 0600 for /etc/news/passwd.nntp may allow access to privileged information by system intruders or malicious users.
Fix Text
Change the mode of the passwd.nntp file. # chmod 0600 <path>/passwd.nntp
Check Content
Check passwd.nntp permissions. # find / -type f -name passwd.nntp | xargs -n1 ls -lL If passwd.nntp has a mode more permissive than 0600, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4277
Files in /var/news must be owned by root or news.
Discussion
If critical system files are not owned by a privileged user, system integrity could be compromised.
Fix Text
Change the ownership of the files in <path>/news to root or news. # chown root <path>/news/*
Check Content
Check the ownership of the files in news. # find /var/news -type f | xargs -n1 ls -lL If any files are not owned by root or news, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4278
The files in /var/news must be group-owned by root or news.
Discussion
If critical system files do not have a privileged group-owner, system integrity could be compromised.
Fix Text
Change the group owner of the files in news to root or news. # chgrp root <path>/news/*
Check Content
Check news files group ownership. # find /var/news -type f | xargs -n1 ls -lL If news files are not group-owned by root or news, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4298
Remote consoles must be disabled or protected from unauthorized access.
Discussion
The remote console feature provides an additional means of access to the system which could allow unauthorized access if not disabled or properly secured. With virtualization technologies, remote console access is essential as there is no physical console for virtual machines. Remote console access must be protected in the same manner as any other remote privileged access method.
Fix Text
If the /etc/securetty file does not exist, create the file containing only the word console and ensure correct file properties. # echo “console” > /etc/securetty
Check Content
Check /etc/securetty # more /etc/securetty If the /etc/securetty file does not exist, or contains other than "console" or "/dev/null" this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4301
The system clock must be synchronized to an authoritative DoD time source.
Discussion
To assure the accuracy of the system clock, it must be synchronized with an authoritative time source within DoD. Many system functions, including time-based login and activity restrictions, automated reports, system logs, and audit records depend on an accurate system clock. If there is no confidence in the correctness of the system clock, time-based functions may not operate as intended and records may be of diminished value. Authoritative time sources include authorized time servers within the enclave synchronized with upstream authoritative sources. Specific requirements for the upstream synchronization of Network Time Protocol (NTP) servers are covered in the Network Other Devices STIG. For systems located on isolated or closed networks, it is not necessary to synchronize with a global authoritative time source. If a global authoritative time source is not available to systems on an isolated network, a local authoritative time source must be established on this network and used by the systems connected to this network. This is necessary to provide the ability to correlate events and allow for the correct operation of time-dependent protocols between systems on the isolated network. If the system is completely isolated (no connections to networks or other systems), time synchronization is not required as no correlation of events between systems will be necessary. If the system is completely isolated, this requirement is not applicable.
Fix Text
Use a local authoritative time server synchronizing to an authorized DoD time source. Ensure all systems in the facility feed from one or more local time servers feeding from the authoritative time server. View the current system (x)ntpd man page for a detailed discussion of configuration option details: # man xntpd Create/edit the ntp.conf file, delete any non-local and/or non-U.S. DoD sources and insert the local or an authoritative U.S. DoD source. Example /etc/ntp.conf file: # # server : ntp server used (poll) to obtain time server <IP or hostname for 1st server> server <IP or hostname for 2nd server> # # peer : a peer relationship with another ntp server peer <IP or hostname for ntp peer> # # driftfile : track local clock time (drift of the local clock) driftfile <drift file name, default is /etc/ntp.drift> Stop/restart (x)ntpd. The default system script to start ntp should be found in the system startup directory /sbin/init.d : # /sbin/init.d/xntpd start
Check Content
Check Content: Check the root crontab for ntpdate jobs running at least daily. If cron is used, this command must return a line with the following required format: columns 3, 4, and 5 must be an asterisk (*) for the job to be run daily. # crontab -l | grep ntpdate OR Check that ntpd is used for system clock synchronization. If ntpd is used, this command must return a line starting with an asterisk followed by the name of the remote host that the local system is synchronized with. # ntpq -p | grep "^*" If the system clock is not being synchronized continuously (via ntpd) or at least daily (via cron), this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4357
Audit logs must be rotated daily.
Discussion
Rotate audit logs daily to preserve audit file system space and to conform to the DoD requirement. If it is not rotated daily and moved to another location, then there is more of a chance for the compromise of audit data by malicious users.
Fix Text
Configure a cron job or other automated process to rotate the audit logs on a daily basis.
Check Content
Check for a crontab entry that rotates audit logs. # crontab -l If any cron job to rotate audit logs is found, this is not a finding. Otherwise, query the SA. If there is a process that automatically rotates audit logs, this is not a finding. If the SA manually rotates audit logs, this is still a finding, because if the SA is not there, it will not be accomplished. If the audit output is not archived daily, to tape or disk, this is a finding. This can be ascertained by looking at the audit log directory and, if more than one file is there, or if the file does not have today's date, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4360
Cron programs must not set the umask to a value less restrictive than 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 often represented as a 4-digit octal number, the first digit representing special access modes is typically ignored or required to be 0.
Fix Text
Edit cron script files and modify the umask to 077.
Check Content
Determine if there are any crontabs by viewing a long listing of the directory. If there are crontabs, examine them to determine what cron jobs exist. Check for any programs specifying an umask. # ls -lL /var/spool/cron/crontabs # cat <crontab file> # grep umask <cron program> If there are no cron jobs present, this vulnerability is not applicable. If any cron job contains an umask value more permissive than 077, this is a finding.
Security Override Guidance
If a cron program sets the umask to 000 or does not restrict the world-writable permission, this becomes a CAT I finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-4366
"At" jobs must not set the umask to a value less restrictive than 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 often represented as a 4-digit number, the first digit representing special access modes is typically ignored or required to be 0.
Fix Text
Edit at jobs or referenced scripts to remove umask commands setting the umask value more permissive than 077.
Check Content
Determine what at jobs exist on the system. Procedure: # ls /var/spool/cron/atjobs If there are no at jobs present, this is not applicable. Determine if any of the at jobs or any scripts referenced execute the umask command. Check for any umask setting more permissive than 077. # grep -n umask <at job or referenced script> If any at job or referenced script sets umask to a value more permissive than 077, this is a finding. NOTE: The at facility will set the execution environment umask to 022. A grep of the at file will normally yield a line in the file that may look like umask 2. When examining any at job command file, this should not be mistaken for a user defined umask (re-)setting.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-4369
The traceroute command owner must be root.
Discussion
If the traceroute command owner has not been set to root, an unauthorized user could use this command to obtain knowledge of the network topology inside 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
Change the owner of the traceroute command to root. # chown root /usr/contrib/bin/traceroute
Check Content
# ls -lL /usr/contrib/bin/traceroute If the traceroute command is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4382
Administrative accounts must not run a Web browser, except as needed for local service administration.
Discussion
If a Web browser flaw is exploited while running as a privileged user, the entire system could be compromised. Specific exceptions for local service administration should be documented in site-defined policy. These exceptions may include HTTP(S)-based tools used for the administration of the local system, services, or attached devices. Examples of possible exceptions are HP’s System Management Homepage (SMH), the Common Unix Printing System (CUPS) administrative interface, and Sun's StorageTek Common Array Manager (CAM) when these services are running on the local system.
Fix Text
Enforce policy requiring administrative accounts use Web browsers only for local service administration.
Check Content
Look in the root account home directory for a .netscape or a .mozilla directory. If none exists, this is not a finding. If there is one, verify with the root users and the IAO what the intent of the browsing is. Some evidence may be obtained by using the browser to view cached pages under the .netscape directory. # find `cat /etc/passwd | grep "^root" | cut -f 6,6 -d ":"` -type d \( -name \.mozilla -o -name .netscape \) If the find command returns any output for either browser directories, this is a finding. After the fact, it should be verified with the root users and the IAO what official business function(s) the browsers support and that it has been correctly documented.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4388
The anonymous FTP account must be configured to use chroot or a similarly isolated environment.
Discussion
If an anonymous FTP account does not use a chroot or similarly isolated environment, the system may be more vulnerable to exploits against the FTP service. Such exploits could allow an attacker to gain shell access to the system and view, edit, or remove sensitive files.
Fix Text
Using the HP-SMH, configure the anonymous FTP service to operate in a chroot environment.
Check Content
Is FTP installed? # ls -lL /usr/lbin/ftpd If ftpd is not installed, this is not a finding. If ftpd is installed, determine if there is an anonymous ftp user configured in /etc/passwd. # cat /etc/passwd | egrep -c "^ftp|^anonymous" The /etc/passwd file, home directory entry for the anonymous FTP user should appear as the following example: ftp:4rL2xXxDatENY:509:159::/home/ftp/./:/usr/bin/false If there is an anonymous ftp user configured in /etc/passwd, determine if the ftp/anonymous user's home directory entry in the /etc/passwd file configured for chroot? # cat /etc/passwd | egrep "^ftp|^anonymous" | cut -f 6,6 -d ":" A dot (.) in field 6 of the FTP /etc/passwd file determines where the chroot will be performed. In the above example, the new root directory is /home/ftp. If an anonymous ftp user is found and the above command does not return an absolute path with a home directory of "dot" (see the above example), this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4392
If the system is a Network Management System (NMS) server, it must only run the NMS and any software required by the NMS.
Discussion
Installing extraneous software on a system designated as a dedicated NMS server poses a security threat to the system and the network. Should an attacker gain access to the NMS through unauthorized software, the entire network may be susceptible to malicious activity.
Fix Text
Ensure only authorized software is loaded on a designated NMS server. Authorized software is limited to the NMS software itself, a database management system for the NMS server if necessary, and network management software.
Check Content
NOTE: This will virtually always require a manual review. Ask the SA if this is an NMS server. If it is an NMS server, then ask what other applications run on it. If there is anything other than network management software and DBMS software used only for the storage and inquiry of NMS data, this is a finding.
Responsibility
System Administrator
IA Controls
DCPA-1
V-4395
The system must only use remote syslog servers (log hosts) justified and documented using site-defined procedures.
Discussion
If a remote log host is in use and it has not been justified and documented with the IAO, sensitive information could be obtained by unauthorized users without the SA's knowledge. A remote log host is any host to which the system is sending syslog messages over a network.
Fix Text
Remove or document the referenced undocumented log host.
Check Content
Examine the syslog.conf file for any references to remote log hosts. # cat /etc/syslog.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | grep "\@" Destinations beginning with the @ symbol represent log hosts. If the log host name is a local alias such as loghost, consult the /etc/hosts or other name databases as necessary to obtain the canonical name or address for the log host. Determine if the host referenced is a log host documented using site-defined procedures. If an undocumented log host is referenced, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4397
The system must be configured with a default gateway for IPv4 if the system uses IPv4, 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
Edit /etc/rc.config.d/netconf and add configuration for a default route. For a default gateway of 192.168.3.1: ROUTE_DESTINATION[0]=default ROUTE_MASK[0]="" ROUTE_GATEWAY[0]=192.168.3.1 ROUTE_COUNT[0]=1 ROUTE_ARGS[0]="" Restart the system for the setting to take effect.
Check Content
Check the system for an IPv4 default route. # netstat -r |grep default If a default route is not defined, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4398
A system used for routing must not run other network services or applications.
Discussion
Installing extraneous software on a system designated as a dedicated router poses a security threat to the system and the network. Should an attacker gain access to the router through the unauthorized software, the entire network is susceptible to malicious activity.
Fix Text
Ensure only authorized software is loaded on a designated router. Authorized software will be limited to the most current version of routing protocols and SSH for system administration purposes.
Check Content
Ask the SA if the system is a designated router. If it is not, this is not applicable. If this system is a designated router, check the system for non-routing network services. # netstat -a | grep -i listen # ps -ef If non-routing services, including Web servers, file servers, DNS servers, or applications servers, but excluding management services such as SSH and SNMP, are running on the system, this is a finding.
Responsibility
System Administrator
IA Controls
DCSP-1
V-4399
The system must not use UDP for Network Information System (NIS/NIS+).
Discussion
Implementing NIS or NIS+ under UDP may make the system more susceptible to a Denial of Service attack and does not provide the same quality of service as TCP.
Fix Text
Configure the system to not use UDP for NIS and NIS+. HP-UX specific documentation (note the major version of NIS+ currently running) should be consulted for the required procedure.
Check Content
If the system does not use NIS or NIS+, this is not applicable. Check if NIS or NIS+ is implemented using UDP. # rpcinfo -p | grep yp | grep udp If NIS or NIS+ is implemented using UDP, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4427
All .rhosts, .shosts, or host.equiv files must only contain trusted host-user pairs.
Discussion
If these files are not properly configured, they could allow malicious access by unknown malicious users from untrusted hosts who could compromise the system.
Fix Text
Locate and examine all .rhosts, .shosts, hosts.equiv, and shosts.equiv files. Procedure: # find / -name .rhosts # more /<directorylocation>/.rhosts # find / -name .shosts # more /<directorylocation>/.shosts # find / -name hosts.equiv # more /<directorylocation>/hosts.equiv # find / -name shosts.equiv # more /<directorylocation>/shosts.equiv If any .rhosts, .shosts, hosts.equiv, or shosts.equiv file contains anything other than host-user pairs, this is a finding.
Check Content
Locate and examine all .rhosts, .shosts, hosts.equiv, and shosts.equiv files. Procedure: # find / -name .rhosts # more /<directorylocation>/.rhosts # find / -name .shosts # more /<directorylocation>/.shosts # find / -name hosts.equiv # more /<directorylocation>/hosts.equiv # find / -name shosts.equiv # more /<directorylocation>/shosts.equiv If any .rhosts, .shosts, hosts.equiv, or shosts.equiv file contains anything other than host-user pairs, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-4428
All .rhosts, .shosts, .netrc, or hosts.equiv files must be accessible by only root or the owner.
Discussion
If these files are accessible by users other than root or the owner, they could be used by a malicious user to set up a system compromise.
Fix Text
Ensure the permission for these files is set at 700 or less and the owner is the owner of the home directory that it is in. These files, outside of home directories (other than hosts.equiv which is in /etc and owned by root), have no meaning.
Check Content
# find / -type f -name .rhosts # ls -alL /<directorylocation>/.rhosts # find / -type f -name .shosts # ls -alL /<directorylocation>/.shosts # find / -type f -name hosts.equiv # ls -lL /<directorylocation>/hosts.equiv # find / -type f -name shosts.equiv # ls -lL /<directorylocation>/shosts.equiv If the .rhosts, .shosts, hosts.equiv, or shosts.equiv files have permissions greater than 700, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-4689
The SMTP service must be an up-to-date version.
Discussion
The SMTP service version on the system must be current to avoid exposing vulnerabilities present in unpatched versions.
Fix Text
Obtain and install a newer version of Sendmail from the operating system vendor or from http://www.sendmail.org or ftp://ftp.cs.berkeley.edu/ucb/sendmail.
Check Content
Determine the version of the SMTP service software. To obtain version information for the Sendmail daemon: # what /usr/sbin/sendmail OR # strings /usr/sbin/sendmail | grep -i version If the Sendmail version is not at least 8.14.4, or if it is not the vendor's latest version, this is a finding.
Responsibility
System Administrator
V-4690
The Sendmail server must have the debug feature disabled.
Discussion
Debug mode is a feature present in older versions of Sendmail which, if not disabled, may allow an attacker to gain access to a system through the Sendmail service.
Fix Text
Obtain and install a more recent version of Sendmail, which does not implement the DEBUG feature.
Check Content
Check for an enabled debug command provided by the SMTP service. # telnet localhost 25 debug If the command does not return a 500 error code of command unrecognized, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4691
The SMTP service must not have a uudecode alias active.
Discussion
A common configuration for older mail transfer agents (MTAs) is to include an alias for the decode user. All mail sent to this user is sent to the uudecode program, which automatically converts and stores files. By sending mail to the decode or the uudecode aliases present on some systems, a remote attacker may be able to create or overwrite files on the remote host. This could possibly be used to gain remote access.
Fix Text
Disable mail aliases for decode and uudecode. If the /etc/mail/aliases (mail alias) file contains entries for these programs, remove them or disable them by placing # at the beginning of the line, and then executing the newaliases command. For more information on mail aliases, refer to the man page for aliases. Disabled aliases would be similar to these (commented) file entry examples: # decode: |/usr/bin/uudecode # uudecode: |/usr/bin/uuencode -d
Check Content
Check the SMTP service for an active decode command. # telnet localhost 25 decode If the command does not return a 500 error code of command unrecognized, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4694
The Sendmail service must not have the wizard backdoor active.
Discussion
Very old installations of the Sendmail mailing system contained a feature whereby a remote user connecting to the SMTP port can enter the WIZ command and be given an interactive shell with root privileges.
Fix Text
If the WIZ command is enabled on Sendmail, it should be disabled by adding this line to the sendmail.cf configuration file (note that it must be typed in uppercase): OW* For the change to take effect, kill the Sendmail process, refreeze the sendmail.cf file, and restart the Sendmail process.
Check Content
Check the /etc/mail/sendmail.cf configuration file for "wiz" configuration. # cat /etc/mail/sendmail.cf |tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" |\ grep -i wiz If an entry is found for wiz, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4695
Any active TFTP daemon must be authorized and approved in the system accreditation package.
Discussion
TFTP is a file transfer protocol often used by embedded systems to obtain configuration data or software. The service is unencrypted and does not require authentication of requests. Data available using this service may be subject to unauthorized access or interception.
Fix Text
Disable the TFTP daemon. Edit /etc/inetd.conf and comment out the tftp line. Restart the inetd service via the command: # inetd -c
Check Content
Determine if the TFTP daemon is active. # grep -v "^#" /etc/inetd.conf |grep tftp If TFTP is enabled, it is a finding if it is not documented by site-defined procedures.
Responsibility
System Administrator
IA Controls
DCSW-1
V-4697
X displays must not be exported to the world.
Discussion
Open X displays allow an attacker to capture keystrokes and to execute commands remotely. Many users have their X Server set to xhost +, permitting access to the X Server by anyone, from anywhere.
Fix Text
If using an xhost-type authentication the xhost - command can be used to remove current trusted hosts and then selectively allow only trusted hosts to connect with xhost + commands. A cryptographically secure authentication, such as provided by the xauth program, is always preferred.
Check Content
Windows is not used on the system, this is not applicable. Check the output of the "xhost" command from an X terminal. First, verify the DISPLAY variable is correctly set. $ echo $DISPLAY NOTE: It may be necessary to define the display if the command reports it cannot open the display. MachineName may be replaced with an Internet Protocol Address. Repeat the check procedure after setting the display. $ DISPLAY=MachineName:0.0; export DISPLAY $ xhost If the output reports access control is enabled (and possibly lists the hosts that can receive X window logins), this is not a finding. If the xhost command returns a line indicating access control is disabled, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-4702
If the system is an anonymous FTP server, it must be isolated to the DMZ network.
Discussion
Anonymous FTP is a public data service which is only permitted in a server capacity when located on the DMZ network.
Fix Text
Move the system to a DMZ network.
Check Content
Use the command ftp to connect the system's FTP service. Attempt to log into this host with a user name of anonymous and a password of guest (also try the password of guest@mail.com). If the logon is not successful, this check is not applicable. # ftp localhost OR # ftp `hostname` Ask the SA if the system is located on a DMZ network. If the system is not located on a DMZ network, this is a finding.
Responsibility
Information Assurance Officer
IA Controls
ECSC-1
V-50999
The system must impose the same restrictions on root passwords that are already applied to non-root users.
Discussion
Best practices and standard operating procedures for computing systems include password management. If the root account is allowed to be configured with inadequate password controls, the entire system can be compromised.
Fix Text
If the system is operating in Trusted Mode, no fix is required. For SMSE: Edit the /etc/default/security file and add/modify the following attribute(s) and attribute values: PASSWORD_POLICY_STRICT=1 Save the file before exiting the editor.
Check Content
If the system is configured for Trusted Mode, this check is not applicable. For Standard Mode with Security Extensions (SMSE): Check the /etc/default/security file for the following attribute(s) and attribute values: PASSWORD_POLICY_STRICT=1 # grep "PASSWORD_POLICY_STRICT" /etc/default/security If PASSWORD_POLICY_STRICT=0, then the root user is not subject to the same password restrictions as non-root users, and this is a finding.
V-72819
Wireless network adapters must be disabled.
Discussion
The use of wireless networking can introduce many different attack vectors into the organization’s network. Common attack vectors such as malicious association and ad hoc networks will allow an attacker to spoof a wireless access point (AP), allowing validated systems to connect to the malicious AP and enabling the attacker to monitor and record network traffic. These malicious APs can also serve to create a man-in-the-middle attack or be used to create a denial of service to valid network resources.
Fix Text
Configure the system to disable all wireless network interfaces.
Check Content
This is N/A for systems that do not have wireless network adapters. Verify that there are no wireless interfaces configured on the system: # nwmgr Note: This command will produce a list of interfaces that are configured on the host. With the assistance of the System Administrator, identify any wireless interfaces listed in the output of the above command. If a wireless interface is configured, it must be documented and approved by the local Authorizing Official. If a wireless interface is configured and has not been documented and approved, this is a finding.
V-756
The system must require authentication upon booting into single-user and maintenance modes.
Discussion
Single user mode access must be strictly limited to privileged users. The ability to boot to single user mode allows a malicious user the opportunity to modify, compromise, or otherwise damage the system.
Fix Text
For Trusted Mode: If single user boot authentication is disabled, use the System Administration Manager (SAM) or the System Management Homepage (SMH) to enable single user boot (for root only) authentication. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the attribute. See the below example: BOOT_AUTH=1 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor."
Check Content
Check the /tcb/files/auth/system/default entry. # grep “:d_boot_authenticate” /tcb/files/auth/system/default If the returned entry looks like “:d_boot_authenticate@:”, single user boot authentication is disabled, and this is a finding. For SMSE: Check the setting for BOOT_AUTH is set to N=1. # grep BOOT_AUTH /etc/default/security /var/adm/userdb/* If BOOT_AUTH=0, then single user boot authentication is disabled, and this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
V-760
Direct logins must not be permitted to share, default, application, or utility accounts.
Discussion
Shared accounts (accounts where two or more people log in with the same user identification) do not provide identification and authentication. There is no way to provide for non-repudiation or individual accountability.
Fix Text
Use the switch user (su) command from a named account login to access shared accounts. Maintain audit trails identifying the actual user of the account name. Document requirements and procedures for users/administrators to log into their own accounts first and then switch user (su) to the account that must be shared.
Check Content
Use the last command to check for multiple accesses to an account from different workstations/IP addresses. If users log directly onto accounts, rather than using the su command from their own named account to access them, this is a finding (such as logging directly on to Oracle). Also, ask the SA or the IAO if shared accounts are logged into directly or if users log on to an individual account and switch user to the shared account. # last <unix account>
Responsibility
System Administrator
IA Controls
IAIA-1
V-761
All accounts on the system must have unique user or account names.
Discussion
A unique user name is the first part of the identification and authentication process. If user names are not unique, there can be no accountability on the system for auditing purposes. Multiple accounts sharing the same name could result in the Denial of Service to one or both of the accounts or unauthorized access to files or privileges.
Fix Text
Determine if the duplicate accounts have the same or different UIDs. # cat /etc/passwd | cut -f 1,1 -d “:” | sort | uniq -d If the UIDs are different, the account name must be changed. If the UIDs are the same, disable/remove one of the two (or more) password file entries via the SAM/SMH interface.
Check Content
Verify the consistency of the assigned home directories in the authentication database. For Trusted Mode: # authck -av For SMSE: # pwck If any duplicate account names are found, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
V-762
All accounts must be assigned unique User Identification Numbers (UIDs).
Discussion
Accounts sharing a UID have full access to each others' files. This has the same effect as sharing a login. There is no way to assure identification, authentication, and accountability because the system sees them as the same user. If the duplicate UID is 0, this gives potential intruders another privileged account to attack.
Fix Text
Determine if the duplicate UIDs are associated with the same or a different account name. # cat /etc/passwd | grep <non-uniqueUID> or, for multiple non-unique UIDs: # cat /etc/passwd | egrep “<non-uniqueUID1>|<non-uniqueUID2>|,non-uniqueUIDn>“ If the account names are unique, the UIDs must also be modified to be unique. If the account names are the same, disable/remove one of the two (or more) password file entries via the SAM/SMH interface. .
Check Content
Verify the consistency of the assigned home directories in the authentication database. For Trusted Mode: # authck -av For SMSE: # pwck If a non-unique UID is found in the password file, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
V-765
Successful and unsuccessful logins and logouts must be logged.
Discussion
Monitoring and recording successful and unsuccessful logins assists in tracking unauthorized access to the system. Without this logging, the ability to track unauthorized activity to specific user accounts may be diminished.
Fix Text
Verify that login logs are handled correctly in the /etc/syslog.conf file. Verify that service startup scripts for syslog and (w/b)tmp (if present) are enabled. NOTE: Also examine the syslog.conf file for any references to remote log hosts if last/lastb produce no results. # cat /etc/syslog.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | grep "\@"
Check Content
List the logged successful logons to determine if successful logons are being logged. # last -R | more List the logged unsuccessful logons to determine if unsuccessful logons are being logged. # lastb -R | more If logs do not contain successful and unsuccessful logins, this is a finding.
Responsibility
System Administrator
IA Controls
ECAR-1, ECAR-2, ECAR-3
V-769
The root user must not own the logon session for an application requiring a continuous display.
Discussion
If an application is providing a continuous display and is running with root privileges, unauthorized users could interrupt the process and gain root access to the system.
Fix Text
Configure the system so the owner of a session requiring a continuous screen display, such as a network management display, is not root. Ensure the display is also located in a secure, controlled access area. Document and justify this requirement and ensure the terminal and keyboard for the display (or workstation) are secure from all but authorized personnel by maintaining them in a secure area, in a locked cabinet where a swipe card, or other positive forms of identification, must be used to gain entry.
Check Content
NOTE: This will virtually always require a manual review. If there is an application running on the system that is continuously in use (such as a network monitoring application), ask the SA what the name of the application is. Execute ps -ef | more to determine which user owns the process(es) associated with the application. If the owner is root, this is a finding.
Responsibility
System Administrator
IA Controls
PESL-1
V-780
GIDs reserved for system accounts must not be assigned to non-system groups.
Discussion
Reserved GIDs are typically used by system software packages. If non-system groups have GIDs in this range, they may conflict with system software, possibly leading to the group having permissions to modify system files.
Fix Text
Change the primary group GID numbers for non-system accounts with reserved primary group GIDs (those less or equal to 99). # usermod -g <new_group> <user>
Check Content
Confirm all accounts with a GID of 99 and below are used by a system account. If a GID reserved for system accounts (0 - 99) is used by a non-system account, this is a finding. The vendor-supplied system default group "users" (gid=20) is considered an exception to this check. # cat /etc/passwd | cut -f 1,4 -d ":"
Responsibility
System Administrator
IA Controls
ECSC-1
V-782
The system must have a host-based intrusion detection tool installed.
Discussion
Without a host-based intrusion detection tool, there is no system-level defense when an intruder gains access to a system or network. Additionally, a host-based intrusion detection tool can provide methods to immediately lock out detected intrusion attempts.
Fix Text
Install a host-based intrusion detection tool.
Check Content
A few applications providing host-based network intrusion protection are: - Dragon Squire by Enterasys Networks - ITA by Symantec - Hostsentry by Psionic Software - Logcheck by Psionic Software - RealSecure agent by ISS - Swatch by Stanford University Ask the SA or IAO if a host-based intrusion detection application is loaded on the system (where <daemon name> is the name of the primary application daemon) to determine if the application is loaded on the system. # find / -name <daemon> | xargs -n1 ls -lL Determine if the application is active on the system. # ps -ef | grep <daemon name> If no host-based intrusion detection system is installed on the system, this is a finding.
Responsibility
System Administrator
IA Controls
ECID-1
V-783
System security patches and updates must be installed and up-to-date.
Discussion
Timely patching is critical for maintaining the operational availability, confidentiality, and integrity of Information Technology (IT) systems. However, failure to keep operating system and application software patched is a common mistake made by IT professionals. New patches are released daily, and it is often difficult for even experienced system administrators to keep abreast of all the new patches. When new weaknesses in an operating system exist, patches are usually made available by the vendor to resolve the problems. If the most recent security patches and updates are not installed, unauthorized users may take advantage of weaknesses present in the unpatched software. The lack of prompt attention to patching could result in a system compromise.
Fix Text
Use a web browser to access the vendor's support website. Follow the instructions to set up an account with a login and a password. Once this is done it is possible to download the needed patches. Use SMH or # swinstall to apply the patches.
Check Content
Obtain the list of available security patches from HP. Alternatively, obtain, install, and use HP's Patch Tool Bundle to compile a list of superseded patches based on the installed software Product Bundle Patch list(s): # show_patches -s Verify the available security patches have been installed on the system. To list patches installed on the system, use the swlist utility. Example: # swlist -l fileset If there are security patches available and applicable for the system that have not been installed, this is a finding.
Responsibility
System Administrator
V-784
System files and directories must not have uneven access permissions.
Discussion
Discretionary access control is undermined if users, other than a file owner, have greater access permissions to system files and directories than the owner.
Fix Text
Change the mode of files with uneven permissions so owners do not have less permissions than group or world users.
Check Content
Check system directories for uneven file permissions. Procedure: # ls -lL /etc /bin /usr/bin /usr/lbin /usr/usb /sbin /usr/sbin Uneven file permissions exist if the file owner has less permissions than the group or other user classes. If any of the files in the above listed directories contain uneven file permissions, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-785
All files and directories must have a valid owner.
Discussion
Unowned files and directories may be unintentionally inherited if a user is assigned the same UID as the UID of the unowned files.
Fix Text
All directories and files (executable and data) will have an identifiable owner and group name. Either trace files to an authorized user, change the file's owner to root, or delete them. Determine the legitimate owner of the files and use the chown command to set the owner and group to the correct value. If the legitimate owner cannot be determined, change the owner to root (but make sure none of the changed files remain executable because they could be Trojan horses or other malicious code). Examine the files to determine their origin and the reason for their lack of an owner/group.
Check Content
Check the system for files with no assigned owner. Procedure: # find / -nouser -print If any files have no assigned owner, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-787
System log files must have mode 0640 or less permissive.
Discussion
If the system log files are not protected, unauthorized users could change the logged data, eliminating its forensic value.
Fix Text
Change the mode of the system log files to 0640 or less permissive. # chmod 0640 <path>/<system-log-file> NOTE: Do not confuse system log files with audit logs.
Check Content
Check the mode of log files. # ls -lLR /var/log /var/log/syslog /var/adm /var/opt Note that some of the above directories will contain more than just system log files. For example: /var/adm/sa, /var/adm/sw, etc. Any non-system log files contained within the above directories should be excluded from this requirement. If any of the system log files have modes more permissive than 0640, this is a finding.
Responsibility
System Administrator
IA Controls
ECTP-1
V-790
NIS/NIS+/yp files must be group-owned by root, sys, bin, or other.
Discussion
NIS/NIS+/yp files are part of the system's identification and authentication processes and are, therefore, critical to system security. 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 owner of the NIS files to root, sys, bin, or other. # chgrp root <filename>
Check Content
Check NIS file ownership. # ls -alLR /var/yp/`domainname` If the file group owner is not root, sys, bin (the default), or other, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-792
Manual page files must have mode 0644 or less permissive.
Discussion
If manual pages are compromised, misleading information could be inserted, causing actions possibly compromising the system.
Fix Text
Change the mode of manual page files to 0644 or less permissive. Example: # chmod 0644 <path>/<manpage>
Check Content
Check the mode of the manual page files. # find `env | grep MANPATH | cut -f 2,2 -d "=" | tr ':' ' ' ` -type f \( -perm -100 -o -perm -030 -o -perm -003 \) -exec ls -al {} + If any manual page file mode is more permissive than 0644, this is a finding.
V-793
Library files must have mode 0755 or less permissive.
Discussion
Unauthorized access could destroy the integrity of the library files.
Fix Text
Change the mode of library files to 0755 or less permissive. Procedure (example): # chmod 0755 <path>/<library-file> NOTE: Library files should have an extension of ".a" or ".so" (a=archive, so=shared object) extension, possibly followed by a version number.
Check Content
Check the mode of library files. Procedure: # ls -lLR /usr/lib /lib If any of the library files have a mode more permissive than 755, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
V-794
All system command files must have mode 755 or less permissive.
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
Change the mode for system command files to 755 or less permissive. # chmod 755 <filename>
Check Content
Check the permissions for files in /etc, /bin, /usr/bin, /usr/lbin, /sbin, and /usr/sbin. # ls -lL /etc /bin /usr/bin /usr/lbin /sbin /usr/sbin If any file listed has a mode more permissive than 755, this is a finding. Note: Elevate to Severity Code I if any file is listed as world-writable.
Security Override Guidance
Elevate to Severity Code I if any file listed world-writable.
Responsibility
System Administrator
IA Controls
ECLP-1
V-801
The owner, group-owner, mode, ACL, and location of files with the setuid bit set must be documented using site-defined procedures.
Discussion
All files with the setuid bit set will allow anyone running these files to be temporarily assigned the UID of the file. While many system files depend on these attributes for proper operation, security problems can result if setuid is assigned to programs that allow reading and writing of files, or shell escapes. Only default vendor-supplied executables should have the setuid bit set.
Fix Text
Document the files with the suid bit set or unset the suid bit on the executable.
Check Content
Files with the setuid bit set will allow anyone running these files to be temporarily assigned the user or group ID of the file. If an executable with setuid allows shell escapes, the user can operate on the system with the effective permission rights of the user or group owner. List all setuid files on the system. Procedure: # find / -perm -4000 -exec ls -l {} \; | more NOTE: Executing these commands may result in large listings of files; the output may be redirected to a file for easier analysis. Ask the SA or IAO if files with the suid bit set have been documented. If any undocumented file has its suid bit set, this is a finding.
Responsibility
System Administrator
IA Controls
ECPA-1
V-802
The owner, group-owner, mode, ACL, and location of files with the setgid bit set must be documented using site-defined procedures.
Discussion
All files with the setgid bit set will allow anyone running these files to be temporarily assigned the GID of the file. While many system files depend on these attributes for proper operation, security problems can result if setgid is assigned to programs that allow reading and writing of files, or shell escapes.
Fix Text
All files with the sgid bit set will be documented in the system baseline and authorized by the Information Systems Security Officer (ISSO). Locate all sgid files with the following command: find / -perm -2000 -exec ls -lL {} \; Ensure sgid files are part of the operating system software, documented application software, documented utility software, or documented locally developed software. Ensure none are text files or shell programs.
Check Content
Locate all setgid files on the system. Procedure: # find / -perm -2000 If the ownership, permissions, location, and ACLs of all files with the setgid bit set are not documented, this is a finding.
Responsibility
System Administrator
IA Controls
ECPA-1
V-803
The system must be checked weekly for unauthorized setuid files as well as unauthorized modification to authorized setuid files.
Discussion
Files with the setuid bit set will allow anyone running these files to be temporarily assigned the UID of the file. While many system files depend on these attributes for proper operation, security problems can result if setuid is assigned to programs that allow reading and writing of files, or shell escapes.
Fix Text
Establish a weekly automated or manual process to generate a list of suid files on the system and compare it with the prior list. To create a list of suid files: # find / -perm -4000 > suid-file-list
Check Content
NOTE: This will virtually always require a manual review. Determine if a weekly automated or manual process is used to generate a list of suid files on the system and compare it with the prior list. If no such process is in place, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
V-804
The system must be checked weekly for unauthorized setgid files as well as unauthorized modification to authorized setgid files.
Discussion
Files with the setgid bit set will allow anyone running these files to be temporarily assigned the group id of the file. While many system files depend on these attributes for proper operation, security problems can result if setgid is assigned to programs that allow reading and writing of files, or shell escapes.
Fix Text
Establish a weekly automated or manual process to generate a list of sgid files on the system and compare it with the prior list. To create a list of sgid files: # find / -type f -perm -2000 -exec ls -lL {} \; >> sgid-file-list
Check Content
NOTE: This will virtually always require a manual review. Determine if a weekly automated or manual process is used to generate a list of sgid files on the system and compare it with the prior list. If no such process is in place, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
V-805
Removable media, remote file systems, and any file system not containing approved setuid files must be mounted with the "nosuid" option.
Discussion
The "nosuid" mount option causes the system to not execute setuid files with owner privileges. This option must be used for mounting any file system not containing approved setuid files. Executing setuid files from untrusted file systems, or file systems that do not contain approved setuid files, increases the opportunity for unprivileged users to attain unauthorized administrative access.
Fix Text
Edit /etc/fstab and add the nosuid mount option to all file systems mounted from removable media or network shares, and any file system not containing approved setuid or setgid files.
Check Content
Check /etc/fstab and verify the nosuid mount option is used on file systems mounted from removable media, network shares, or any other file system not containing approved setuid or setgid files. Each file system line entry must contain a device specific file and may additionally contain all of the following fields, in the following order: mount directory, type, options, backup frequency, pass number (on parallel fsck) and comment. # cat /etc/fstab | grep -v "^#" If the "nosuid" mount option is not used on file systems mounted from removable media, network shares, or any other file system that does not contain approved setuid or setgid files, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-806
The sticky bit must be set on all public directories.
Discussion
Failing to set the sticky bit on the public directories allows unauthorized users to delete files in the directory structure. 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
Set the sticky bit on all public directories. Procedure: # chmod 1777 <world writeable directory>
Check Content
Verify all world-writable directories have the sticky bit set. Procedure: # find / -type d -perm -002 ! -perm -1000 -exec ls -lLd {} \; | tee wwlist If the sticky bit is not set on a world-writable directory, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-807
All public directories must be owned by root or an application account.
Discussion
If a public directory has the sticky bit set and is not owned by a privileged UID, 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 owner of public directories to root or an application account. Procedure: # chown root <public directory>
Check Content
Check the ownership of all public directories. Procedure: # find / -type d -perm -1002 -exec ls -ld {} \; If any public directory is not owned by root or an application user, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-811
Auditing must be implemented.
Discussion
Without auditing, individual system accesses cannot be tracked and malicious activity cannot be detected and traced back to an individual account.
Fix Text
Turn on the auditing system. The system will use existing current and next audit trails (if configured). # audsys -n Alternatively, use the HP SMH to configure and enable auditing on the system.
Check Content
Determine if auditing is enabled. # audsys If the audit service is not running, this is a finding.
Responsibility
System Administrator
IA Controls
ECAR-1, ECAR-2, ECAR-3
V-812
System audit logs must be owned by root.
Discussion
Failure to give ownership of system audit log files to root provides the designated owner and unauthorized users with the potential to access sensitive information.
Fix Text
As root, change the ownership. # chown root <audit directory> # chown root <audit file>
Check Content
Inspect the auditing configuration file, /etc/rc.config.d/auditing, to determine the filename and path of the audit logs. The entries should appear similar to the following: PRI_AUDFILE=/var/.audit/file1 SEC_AUDFILE=/var/.audit/file2 # egrep “PRI_AUDFILE|SEC_AUDFILE” /etc/rc.config.d/auditing For each audit log directory/file, check the ownership. # ls -lLd <audit directory> # ls -lLa <audit file> If any audit log directory/file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECTP-1
V-813
System audit logs must have mode 0640 or less permissive.
Discussion
If a user can write to the audit logs, audit trails can be modified or destroyed and system intrusion may not be detected. System audit logs are those files generated from the audit system and do not include activity, error, or other log files created by application software.
Fix Text
As root, change the permissions. # chmod 0750 <audit directory> # chmod 0640 <audit file>
Check Content
Inspect the auditing configuration file, /etc/rc.config.d/auditing, to determine the filename and path of the audit logs. The entries should appear similar to the following: PRI_AUDFILE=/var/.audit/file1 SEC_AUDFILE=/var/.audit/file2 # egrep “PRI_AUDFILE|SEC_AUDFILE” /etc/rc.config.d/auditing For each audit log directory/file, check the permissions. # ls -lLd <audit directory> # ls -lLa <audit file> If any audit log file has permissions greater than 0640 (0750 for directories), this is a finding.
Responsibility
System Administrator
IA Controls
ECTP-1
V-81451
The HPUX 11.31 operating system must use a virus scan program.
Discussion
Virus scanning software can be used to protect a system from penetration from computer viruses and to limit their spread through intermediate systems. 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
Install an antivirus solution on the system.
Check Content
Verify an antivirus solution is installed on the system. The antivirus solution may be bundled with an approved host-based security solution. If there is no antivirus solution installed on the system, this is a finding.
V-841
The ftpusers file must contain account names not allowed to use FTP.
Discussion
The ftpusers file contains a list of accounts not allowed to use FTP to transfer files. If the file does not contain the names of all accounts not authorized to use FTP, then unauthorized use of FTP may take place.
Fix Text
Add accounts not allowed to use FTP to the /etc/ftpd/ftpusers (or equivalent) file.
Check Content
Check the contents of the ftpusers file. # more /etc/ftpd/ftpusers OR alternatively # find / -type f -name ftpusers -exec ls -lL {} \; If the system has accounts not allowed to use FTP and not listed in the ftpusers file, this is a finding.
Responsibility
System Administrator
V-845
The FTP daemon must be configured for logging or verbose mode.
Discussion
The -l option allows basic logging of connections. The verbose (on HP) and the debug (on Solaris) allow logging of what files the ftp session transferred. This extra logging makes it possible to easily track which files are being transferred onto or from a system. If they are not configured, the only option for tracking is the audit files. The audit files are much harder to read. If auditing is not properly configured, then there would be no record at all of the file transfer transactions.
Fix Text
The v option enables more verbose logging, shows the accessed file names, and the logout timestamp. The syslog.conf file must be configured to log daemon.info and daemon.debug to a proper log file in which to capture the data. The output goes into the system log file. The log file is /var/adm/syslog. Edit the inetd.conf file. Locate the line that defines ftpd by typing /ftpd/cr. Add the v option where ftpd appears to the right of the pathname for ftpd. For instance: ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -v This is a requirement even when the system is using TCP_WRAPPERS and/or secure shell. The only time it is not a requirement is if the ftp daemon is not configured to run.
Check Content
Perform: # grep ftpd /etc/inetd.conf Check the line for ftpd to see if the -v options are invoked. If not, this is a finding.
Responsibility
System Administrator
IA Controls
ECAR-1, ECAR-2, ECAR-3
V-846
Anonymous FTP must not be active on the system unless authorized.
Discussion
Due to the numerous vulnerabilities inherent in anonymous FTP, it is not recommended for use. If anonymous FTP must be used on a system, the requirement must be authorized and approved in the system accreditation package.
Fix Text
Configure the FTP service to not permit anonymous logins. Remove the user(s) ftp and/or anonymous from the /etc/passwd file.
Check Content
Attempt to log in with anonymous or ftp. The user can type any string of characters as a password. (By convention, the password is the host name of the user's host or the user's email address.) The anonymous user is then given access only to user ftp's home directory, usually called /home/ftp. If the login is successful, this is a finding.
Responsibility
Information Assurance Officer
IA Controls
ECSC-1
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 file. Ensure the line writing 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 using X. Get a list of (non-system account) users and the associated home directories. # cat /etc/passwd | cut -f 1,6 -d ":" Inspect individual user home directories for the .Xauthority file. # find <f6 from the above command> -type f -name "\.Xauthority" -exec ls -lLa {} \; 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-901
All user home directories must have mode 0750 or less permissive.
Discussion
Excessive permissions on home directories allow unauthorized access to user files.
Fix Text
Change the mode of user's home directory to 0750 or less permissive. Procedure (example): # chmod 0750 <home directory> NOTE: Application directories are allowed to and may need 0755 permissions (or greater) for correct operation.
Check Content
Check the home directory mode of each user in /etc/passwd. Procedure: # ls -lLd `cat /etc/passwd | cut -f 6,6 -d ":"` | more If a user's home directory mode is more permissive than 0750, this is a finding. NOTE: Application directories are allowed to and may need 0755 permissions (or greater) for correct operation.
Responsibility
System Administrator
IA Controls
ECLP-1
V-902
All interactive user home directories must be owned by their respective users.
Discussion
If users do not own their home directories, unauthorized users could access user files.
Fix Text
Change the owner of a user's home directory to its assigned user. Procedure: # chown <user> <home directory>
Check Content
Check the ownership of each user home directory listed in the /etc/passwd file. Procedure: # ls -lLd <user home directory> OR # ls -lLd `cat /etc/passwd | cut -f 6,6 -d ":"` | more If any user home directory is not owned by the assigned user, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-903
All interactive user home directories must be group-owned by the home directory owner's primary group.
Discussion
If the GID of the home directory is not the same as the GID of the user, this would allow unauthorized access to files.
Fix Text
Change the group-owner for user home directories to the primary group of the assigned user. Procedure: # chgrp groupname directoryname (Replace examples with appropriate group and home directory.) Document all changes.
Check Content
Check the group ownership for each user in the /etc/passwd file. Procedure: # ls -lLd <user home directory> OR # ls -lLd `cat /etc/passwd | cut -f 6,6 -d ":"` | more If any user home directory is not group-owned by the assigned user's primary group, this is a finding. Home directories for application accounts requiring different group ownership must be documented using site-defined procedures.
Responsibility
System Administrator
IA Controls
ECLP-1
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 filenames 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.
Check Content
Check the ownership of local initialization files. Procedure: # ls -alL /<usershomedirectory>/.login # ls -alL /<usershomedirectory>/.cshrc # ls -alL /<usershomedirectory>/.logout # ls -alL /<usershomedirectory>/.profile # ls -alL /<usershomedirectory>/.bash_profile # ls -alL /<usershomedirectory>/.bashrc # ls -alL /<usershomedirectory>/.bash_logout # ls -alL /<usershomedirectory>/.env # ls -alL /<usershomedirectory>/.dtprofile # ls -alL /<usershomedirectory>/.dispatch # ls -alL /<usershomedirectory>/.emacs # ls -alL /<usershomedirectory>/.exrc # find /<usershomedirectory>/.dt ! -fstype nfs ! -user <username> -exec ls -ld {} \; If local initialization files are not owned by the home directory's user or root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-906
All run control scripts must have mode 0755 or less permissive.
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
Ensure all system startup files have mode 0755 or less permissive. Examine the rc files, all files in the rc1.d (rc2.d, and so on) directories, and in the /etc/init.d directory to ensure they are not world-writable. If they are world-writable, use the chmod command to correct the vulnerability, and research why they are world-writable. # chmod 755 startupfile
Check Content
Verify run control scripts have no extended ACLs. # ls -lLa /sbin/init.d/[a-z,A-Z,0-9]* If the permissions include a "+" the file has an extended ACL, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-910
Run control scripts must not execute world-writable programs or scripts.
Discussion
World-writable files could be modified accidentally or maliciously to compromise system integrity.
Fix Text
Remove the world-writable permission from programs or scripts executed by run control scripts. Procedure: # chmod o-w <program or script executed from run control script>
Check Content
Check the permissions on the files or scripts executed from system startup scripts to see if they are world-writable. Create a list of all potential run command level scripts. # ls -l /etc/init.d/* | tr '\011' ' ' | tr -s ' ' | cut -f 9,9 -d " " OR # ls -l /sbin/init.d/* | tr '\011' ' ' | tr -s ' ' | cut -f 9,9 -d " " Create a list of world writeable files. # find / -perm -002 -type f >> worldWriteableFileList Determine if any of the world writeable files in worldWriteableFileList are called from the run command level scripts. Note: Depending upon the number of scripts vs world writeable files, it may be easier to inspect the scripts manually. # more `ls -l /etc/init.d/* | tr '\011' ' ' | tr -s ' ' | cut -f 9,9 -d " "` OR # more `ls -l /sbin/init.d/* | tr '\011' ' ' | tr -s ' ' | cut -f 9,9 -d " "` If any system startup script executes any file or script that is world-writable, this is a finding.
Responsibility
System Administrator
V-914
All files and directories contained in interactive user home directories must be owned by the home directory's owner.
Discussion
If users do not own the files in their directories, unauthorized users may be able to access them. Additionally, if files are not owned by the user, this could be an indication of system compromise.
Fix Text
Change the ownership of files and directories in user home directories to the owner of the home directory. Procedure: # chown <account-owner> <filename>
Check Content
For each user in the /etc/passwd file, check for the presence of files and directories within the user's home directory that are not owned by the home directory owner. # find /<usershomedirectory> ! -fstype nfs ! -user <username> ! \( -name .login -o -name .cshrc -o -name .logout -o -name .profile -o -name .bash_profile -o -name .bashrc -o -name .env -o -name .dtprofile -o -name .dispatch -o -name .emacs -o -name .exrc \) -exec ls -ld {} \; Or # ls -lLR `cat /etc/passwd | cut -f 6,6 -d ":"` | more If user home directories contain files or directories not owned by the home directory owner, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
V-915
All files and directories contained in user home directories must have mode 0750 or less permissive.
Discussion
Excessive permissions allow unauthorized access to user files.
Fix Text
Change the mode of files and directories within user home directories to 0750. Procedure: # chmod 0750 filename Document all changes.
Check Content
For each user in the /etc/passwd file, check for files and directories with a mode more permissive than 0750. NOTE the following exclusions/exemptions: HP installed users "hpsmh" and "cimsrvr". Note that some home directories "may" restrict access to their files. # find /<usershomedirectory> ! -fstype nfs ! \( -name .login -o -name .cshrc -o -name .logout -o -name .profile -o -name .bash_profile -o -name .bbashrc -o -name .env -o -name .dtprofile -o -name .dispatch -o -name .emacs -o -name .exrc \) \( -perm -0001 -o -perm -0002 -o -perm -0004 -o -perm -0020 -o -perm -2000 -o -perm -4000 \) -exec ls -ld {} \; Or # ls -lLR `cat /etc/passwd | cut -f 6,6 -d ":"` | more If user home directories contain files or directories more permissive than 0750, this is a finding.
Responsibility
Information Assurance Officer
IA Controls
ECLP-1
V-918
Accounts must be locked upon 35 days of inactivity.
Discussion
Inactive user accounts pose a risk to systems and applications. Owners of Inactive accounts will not notice if unauthorized access to their account has been obtained. There is a risk that inactive accounts can potentially be exploited to obtain and maintain undetected access to a system and/or application. The operating system must track periods of user account inactivity and disable all inactive accounts. Non-interactive accounts on the system, such as application accounts, may be documented exceptions. Non-interactive accounts on the system, such as application accounts, may be documented exceptions. Non-interactive accounts on the system, such as application accounts, may be documented exceptions.
Fix Text
For Trusted Mode: Use the SAM/SMH interface to update the “u_llogin” (user last login) /tcb database attribute. See the /tcb database entry example below: :u_llogin#3024000: For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the INACTIVITY_MAXDAYS attribute. See the below example: INACTIVITY_MAXDAYS=35 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode: Verify that user accounts are locked after 35 days of inactivity. Note: The “u_llogin” attribute is stored in seconds: 86400 seconds/day * 35 days = 3024000 seconds. # cd /tcb/files/auth && cat */* | egrep “:u_name=|:u_llogin=“ If user account is not set to lock after 35 days of inactivity, this is a finding. For SMSE: Check the INACTIVITY_MAXDAYS setting. # grep INACTIVITY_MAXDAYS /etc/default/security /var/adm/userdb/* If INACTIVITY_MAXDAYS is set to 0 or greater than 35 for any user, this is a finding.
Responsibility
System Administrator
IA Controls
IAAC-1
V-923
The system must be checked for extraneous device files at least weekly.
Discussion
If an unauthorized device is allowed to exist on the system, there is the possibility the system may perform unauthorized operations.
Fix Text
Establish a weekly automated or manual process to create a list of device files on the system and determine if any files have been added, moved, or deleted since the last list was generated. A list of device files can be generated with this command: # find / -type b -o -type c -o -type n > device-file-list
Check Content
NOTE: This will virtually always be a manual review. Check the system for an automated job, or check with the SA, to determine if the system is checked for extraneous device files on a weekly basis. If no automated or manual process is in place, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-925
Device files used for backup must only be readable and/or writable by root or the backup user.
Discussion
System backups could be accidentally or maliciously overwritten and destroy the ability to recover the system if a compromise should occur. Unauthorized users could also copy system files.
Fix Text
Use the chmod command to remove the read/write bit(s) from the backup device files. # chmod o-r <b/u device file name> # chmod o-w <b/u device file name> # chmod g-r <b/u device file name> # chmod g-w <b/u device file name> Document all changes.
Check Content
Check the system for device files read/write enabled for users other than root or the backup user. Example: # find / \( -perm -0020 -o -perm -0040 -o -perm -0002 -o -perm -0004 \) -a \( -type b -o -type c -o -type n \) -exec ls -ld {} \; If any device files used for backup are read/write enabled for users other than root, this is a finding.
Responsibility
Information Assurance Officer
IA Controls
ECCD-1, ECCD-2
V-926
Any Network Information System (NIS+) server must be operating at security level 2.
Discussion
If the NIS+ server is not operating in, at least, security level 2, there is no encryption and the system could be penetrated by intruders and/or malicious users.
Fix Text
Configure the NIS+ server to use security level 2.
Check Content
If the system is not using NIS+, this is not applicable. Check the system to determine if NIS+ security level two is implemented. Execute this command: # niscat cred.org_dir If the second column does not contain DES, the system is not using NIS+ security level two, and this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-928
The NFS export configuration file must be owned by root.
Discussion
Failure to give ownership of the NFS export configuration file to root provides the designated owner and possible unauthorized users with the potential to change system configuration which could weaken the system's security posture.
Fix Text
Change the owner of the /etc/dfs/dfstab file to root. # chown root /etc/dfs/dfstab
Check Content
Check the owner of the /etc/dfs/dfstab file. # echo `ls -lL /etc/dfs/dfstab` | sed -e 's/^[ \t]*//' | tr '\011' ' ' | tr -s ' ' | cut -f 3,3 -d " " If the /etc/dfs/dfstab configuration file is not owned by root or bin, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
V-931
All NFS-shared system files and system directories must be owned by root, or a system account.
Discussion
Failure to give ownership of sensitive files or directories to root provides the designated owner and possible unauthorized users with the potential to access sensitive information or change system configuration which could weaken the system's security posture.
Fix Text
Change the ownership of shared file systems not owned by root, or a system account. # chown root <path>
Check Content
Check for NFS shared file systems. # cat /etc/dfs/sharetab This will display all of the shared file systems. For each file system displayed, check the ownership. Check the owner of the NFS share configuration file. # echo ` ls -lLad <shared file system path>` | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' If the files and directories are not owned by root or a system account, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
V-976
Cron must not execute group-writable or world-writable programs.
Discussion
If cron executes group-writable or world-writable programs, there is a possibility that unauthorized users could manipulate the programs with malicious intent. This could compromise system and network security.
Fix Text
Remove the world-writable and group-writable permissions from the cron program file(s) identified. # chmod go-w <cron program file>
Check Content
List all cronjobs on the system. Procedure: # ls -lL /var/spool/cron/crontabs If cron jobs exist under any of the above directories, search for programs executed by cron. Procedure: # more <cron job file> Determine if the file is group-writable or world-writable. Procedure: # ls -lLa <cron program file> If cron executes group-writable or world-writable files, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
V-977
Cron must not execute programs in, or subordinate to, world-writable directories.
Discussion
If cron programs are located in or subordinate to world-writable directories, they become vulnerable to removal and replacement by malicious users or system intruders.
Fix Text
Remove the world-writable permission from the cron program directories identified. Procedure: # chmod o-w <cron program directory>
Check Content
List all cronjobs on the system. Procedure: # ls -lL /var/spool/cron/crontabs If cron jobs exist under any of the above directories, search for programs executed by cron: Procedure: # more <cron job file> Determine if the directory containing programs executed from cron is world-writable. Procedure: # ls -lLd <cron program directory> If cron executes programs in world-writable directories, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
V-988
The at daemon must not execute group-writable or world-writable programs.
Discussion
If the at facility executes group- or world-writable programs, it is possible for the programs to be accidentally or maliciously changed or replaced without the owner's intent or knowledge. This would cause a system security breach.
Fix Text
Remove group-write and world-write permissions from files executed by at jobs. # chmod go-w <file>
Check Content
List the at jobs on the system. Procedure: # ls -lLa /var/spool/cron/atjobs For each at job file, determine which programs are executed. # more <at job file> Check each program executed by at for group- or world-writable permissions. # ls -lLa <at program file> If at executes programs that are group- or world-writable, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
V-989
The at daemon must not execute programs in, or subordinate to, world-writable directories.
Discussion
If at programs are located in, or subordinate, to world-writable directories, they become vulnerable to removal and replacement by malicious users or system intruders.
Fix Text
Remove the world-writable permission from directories containing programs executed by at. # chmod o-w <at program directory>
Check Content
List any at jobs on the system. # ls -lLa /var/spool/cron/atjobs For each at job, determine which programs are executed by at. # more <at job file> Check the directory containing each program executed by at for world-writable permissions. # ls -lL <at program file directory> If at executes programs in world-writable directories, this is a finding.
Responsibility
System Administrator
IA Controls
DCSL-1
V-993
SNMP communities, users, and passphrases must be changed from the default.
Discussion
Whether active or not, default SNMP passwords, users, and passphrases must be changed to maintain security. If the service is running with the default authenticators, then anyone can gather data about the system and the network using the information to potentially compromise the integrity of the system or network(s).
Fix Text
Change the default passwords. To change them, edit the /etc/SnmpAgent.d/snmpd.conf file. Locate the line system-group-read-community which has a default password of public and make the password something more random (less guessable). Do the same for the lines reading system-group-write-community, read-community, write-community, trap, and trap-community. Read the information in the file carefully. The trap is defining who to send traps to, for instance, by default. It will not be a password, but the name of a host.
Check Content
Check the SNMP configuration for default passwords. Locate and examine the SNMP configuration. # more /etc/SnmpAgent.d/snmpd.conf Alternatively: # cat /etc/SnmpAgent.d/snmpd.conf | grep -i community Identify any community names or user password configuration. If any community name or password is set to a default value such as public, private, snmp-trap, or password, or any value which does not meet DISA password requirements, this is a finding.
Responsibility
System Administrator
IA Controls
IAAC-1
The system must not run an Internet Network News (INN) server.
Discussion
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
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 /etc/smb.conf file must be owned by root.
Discussion
The /etc/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. # chown root /etc/opt/samba/smb.conf
Check Content
Check the ownership of the /etc/smb.conf file.
# ls -lL /etc/opt/samba/smb.conf
If the smb.conf file is not owned by root, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The /etc/opt/samba/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. # chmod 0644 /etc/opt/samba/smb.conf
Check Content
Check the mode of the smb.conf file.
# ls -lL /etc/opt/samba/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 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 access Samba. An example might be: hosts allow = 127.0.0.1 192.168.2.0/24 192.168.3.0/24 hosts deny = 0.0.0.0/0 The above will only allow SMB connections from the localhost and from the two private networks 192.168.2 and 192.168.3. All other connections will be refused as soon as the client sends its first packet.
Check Content
Examine the smb.conf file.
# cat /etc/opt/samba/smb.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | egrep "^hosts|^ hosts allow|^hosts deny"
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
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 configuration file and set the PermitRootLogin option to no.
Check Content
Check the SSH daemon configuration. Note that keywords are case-insensitive and arguments (args) are case-sensitive.
keyword=PermitRootLogin
Required arg(s)=no
Default arg values include: "yes"
Note: When the default "arg" value exactly matches the required "arg" value (see above), the <keyword=arg> are not required to exist (commented or uncommented) in the ssh (client) or sshd (server) configuration file. While not required, it is recommended that the configuration file(s) be populated with all keywords and assigned arg values as a means to explicitly document the ssh(d) binary's expected behavior.
Examine the file.
# cat /opt/ssh/etc/sshd_config | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | grep -i "PermitRootLogin"
If the return value is yes, without-password or forced-commands-only, this is a finding.
Responsibility
System Administrator
IA Controls
ECPA-1
The /etc/smb.conf file must be group-owned by root, 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. # chgrp root /etc/samba/smb.conf
Check Content
Check the group ownership of the smb.conf file.
# find / -type f -name smb.conf | xargs -n1 ls -lL
If the smb.conf file is not group-owned by root, bin, sys or other, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The root shell must be located in the / file system.
Discussion
To ensure the root shell is available in repair and administrative modes, the root shell must be located in the / file system.
Fix Text
Change the root account's shell to one present on the / file system.
Check Content
Determine if the root shell is located on / (IE: a non-mounted file system).
# cat /etc/passwd | grep "^root:" | awk -F ":" '{print $NF}'
# grep <shell location from above> /etc/fstab
If the root shell is located on a mountable file system listed in /etc/fstab, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
The system must require that passwords 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
For Trusted Mode: Use the SAM/SMH interface to set the system password length attribute “MIN_PASSWORD_LENGTH” to 15 or greater. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Install the additional LongPassword11i3 and PHI11i3 product bundles where/as required. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the attribute(s). See the below example(s): CRYPT_ALGORITHMS_DEPRECATE=__unix__ CRYPT_DEFAULT=6 LONG_PASSWORD=1 MIN_PASSWORD_LENGTH=15 Note: The MIN_PASSWORD_LENGTH attribute must be set equal to or greater than 15. If the "vi" editor was used to update the /etc/default/security file, save the file before exiting the editor.
Check Content
For Trusted Mode:
Check the system password length setting. For Trusted systems, the range of supported values for N is 6 to 80.
# grep MIN_PASSWORD_LENGTH /etc/default/security
If the MIN_PASSWORD_LENGTH attribute (N) is not set to 15 or greater, this is a finding.
For SMSE:
Check the system password length setting. For Standard (non-SMSE enabled) systems, the maximum supported length is N=8. Once the /etc/shadow file is created and long passwords are enabled (may require additional software product installations), check the system password length setting. The LONG_PASSWORD attribute is valid only when the LongPassword11i3 product is installed and the password hash algorithm is different from the traditional DES-based hash algorithm.
# egrep "CRYPT_ALGORITHMS_DEPRECATE|CRYPT_DEFAULT|LONG_PASSWORD|MIN_PASSWORD_LENGTH" /etc/default/security /var/adm/userdb/*
The following is an example output from the above command:
CRYPT_ALGORITHMS_DEPRECATE=__unix__
CRYPT_DEFAULT=6
LONG_PASSWORD=1
MIN_PASSWORD_LENGTH=15
Note: The MIN_PASSWORD_LENGTH attribute may exceed 15 characters.
If the attributes CRYPT_ALGORITHMS_DEPRECATE, CRYPT_DEFAULT, LONG_PASSWORD, and MIN_PASSWORD_LENGTH are not set per the above example output, this is a finding.
Responsibility
System Administrator
The system must require passwords contain at least one uppercase alphabetic 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
For Trusted Mode: Use the SAM/SMH interface or edit the /etc/default/security file and update the PASSWORD_MIN_UPPER_CASE_CHARS attribute. See the below example: PASSWORD_MIN_UPPER_CASE_CHARS=1 If manually editing the file, save any change(s) before exiting the editor. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the PASSWORD_MIN_UPPER_CASE_CHARS attribute. See the below example: PASSWORD_MIN_UPPER_CASE_CHARS=1 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode:
Check the PASSWORD_MIN_UPPER_CASE_CHARS setting.
# cat /etc/default/security | grep PASSWORD_MIN_UPPER_CASE_CHARS
If PASSWORD_MIN_UPPER_CASE_CHARS is not set to 1 or greater, this is a finding.
For SMSE:
Check the PASSWORD_MIN_UPPER_CASE_CHARS setting.
# grep PASSWORD_MIN_UPPER_CASE_CHARS /etc/default/security /var/adm/userdb/*
If PASSWORD_MIN_UPPER_CASE_CHARS is not set to 1 or more, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
The system must require passwords contain at least one numeric 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
For Trusted Mode: Use the SAM/SMH interface or edit the /etc/default/security file and update the PASSWORD_MIN_DIGIT_CHARS attribute. See the below example: PASSWORD_MIN_DIGIT_CHARS=1 If manually editing the file, save any change(s) before exiting the editor. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the PASSWORD_MIN_DIGIT_CHARS attribute. See the below example: PASSWORD_MIN_DIGIT_CHARS=1 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode:
Check the PASSWORD_MIN_DIGIT_CHARS setting.
# cat /etc/default/security | grep PASSWORD_MIN_DIGIT_CHARS
If PASSWORD_MIN_DIGIT_CHARS is not set to 1 or greater this is a finding.
For SMSE:
Check the PASSWORD_MIN_DIGIT_CHARS setting.
# grep PASSWORD_MIN_DIGIT_CHARS /etc/default/security /var/adm/userdb/*
If PASSWORD_MIN_DIGIT_CHARS is not set to 1 or greater, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
The system must require 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
For Trusted Mode: Use the SAM/SMH interface or edit the /etc/default/security file and update the PASSWORD_MIN_SPECIAL_CHARS attribute. See the below example: PASSWORD_MIN_SPECIAL_CHARS=1 If manually editing the file, save any change(s) before exiting the editor. For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update the PASSWORD_MIN_SPECIAL_CHARS attribute. See the below example: PASSWORD_MIN_SPECIAL_CHARS=1 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode:
Check the PASSWORD_MIN_SPECIAL_CHARS setting.
# cat /etc/default/security | grep PASSWORD_MIN_SPECIAL_CHARS
If PASSWORD_MIN_SPECIAL_CHARS is not set to 1 or greater this is a finding.
For SMSE:
Check the PASSWORD_MIN_SPECIAL_CHARS setting.
# grep PASSWORD_MIN_SPECIAL_CHARS /etc/default/security /var/adm/userdb/*
If PASSWORD_MIN_SPECIAL_CHARS is not set to 1 or greater, this is a finding.
Responsibility
System Administrator
IA Controls
IAIA-1, IAIA-2
All global initialization files must have mode 0444 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 -lL /etc/profile /etc/bashrc /etc/csh.login /etc/csh.cshrc /etc/.login
If global initialization files are more permissive than 0444, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All global initialization files must be owned by bin.
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 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. # chown bin <global initialization files>
Check Content
Check the ownership of global initialization files.
# ls -lL /etc/profile /etc/bashrc /etc/csh.login /etc/csh.cshrc /etc/.login
If any global initialization file is not owned by bin, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All global initialization files must be group-owned by root, sys, bin, other system, or the system default.
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. # chgrp root <global initialization file>
Check Content
Check the group ownership of global initialization files.
# ls -lL /etc/profile /etc/bashrc /etc/csh.login /etc/csh.cshrc /etc/.login
If any global initialization file is not group-owned by root, sys, bin, other, or the system default, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-1
All skeleton files and directories (typically in /etc/skel) must be owned by 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 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 bin <skeleton file>
Check Content
Check skeleton files ownership.
# ls -alL /etc/skel
If a skeleton file is not owned by 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.
# grep PATH /etc/profile /etc/bashrc /etc/csh.login /etc/csh.cshrc /etc/environment /etc/.login
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 and remove the relative path entries from the PATH variable that have not been documented with the ISSO. Edit the local initialization file and remove any empty entry that is defined.
Check Content
Verify local initialization files have executable search path containing only authorized paths.
# cat /etc/passwd | cut -f 1,1 -d ":" | xargs -n1 -I USER sh -c 'grep PATH ~USER/.*'
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
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 / -type f -name .rhosts
# find / -type f -name .shosts
# find / -type f -name hosts.equiv
# find / -type f -name shosts.equiv
If .rhosts, .shosts, hosts.equiv, or shosts.equiv are found, this is a finding.
Responsibility
Information Assurance Officer
IA Controls
ECCD-1, ECCD-2
The .rhosts file must not be supported in PAM.
Discussion
.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 comment/remove the "rcomds" line(s).
Check Content
Verify the remsh and rexec services have not been configured to use the PAM module:
# cat /etc/pam.conf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | grep "^rcomds" | egrep "auth|account" | egrep "libpam_unix|libpam_hpsec"
If any of the following lines are returned, this is a finding.
rcomds auth required libpam_hpsec.so.1
rcomds auth required libpam_unix.so.1
rcomds account required libpam_hpsec.so.1
rcomds account required libpam_unix.so.1
Responsibility
Information Assurance Officer
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 other sys acct) 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
Edit /etc/profile, ensure the ulimit command is present with the -c argument of the ulimit command set to 0.
Check Content
# grep -c ulimit /etc/profile
If the return value of this command is 0, this is a finding.
If the return value of this command is not 0:
# grep ulimit /etc/profile
If the -c argument with a value of 0 is not present, this is a finding.
Responsibility
System Administrator
IA Controls
ECCD-1, ECCD-2
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
# kctune executable_stack=0 The system will require a restart/reboot for the setting to take effect.
Check Content
Determine if the system implements non-executable program stacks.
# kctune | grep -i "executable_stack" | tr '\011' ' ' | tr -s ' ' | \
sed -e 's/^[ \t]*//' | cut -f 2,2 -d " "
If the executable_stack tunable is set to 1, this is a finding.
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
Disable the IP source-routed forwarding feature. # ndd -set /dev/ip ip_forward_src_routed 0 Edit /etc/rc.config.d/nddconf and add/set: TRANSPORT_NAME[x] = ip NDD_NAME[x] = ip_forward_src_routed NDD_VALUE[x] = 0
Check Content
Determine if the system is configured to forward source-routed IP packets.
# ndd -get /dev/ip ip_forward_src_routed
If the returned value is not 0, then this feature is enabled, 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 the / 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 filesystem.
# cat /etc/fstab | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | \ grep -v "^#" | cut -f 2,2 -d " " | grep "^/home" | grep -v "/home/"
If the above command returns nothing, /home is not on a separate filesystem and this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
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 (x)inetd is running:
# ps -ef | grep -v "grep" | egrep -i "inetd|xinetd"
Then, determine the contents of the configuration file:
# find / -type f -name xinetd.conf -o -name inetd.conf | xargs -n1 cat | \
tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#"
If inetd is running and no active services are found (i.e., the configuration file does not exist, is empty or is completely commented out), this is a finding.
If inetd is not running and the configuration file does not exist, is empty or is completely commented out, this is not a finding.
If inetd is running and active services are found via the ps command and are also in the inetd.conf file, this is not 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, remove or empty the Sendmail help file: /etc/mail/helpfile.
Check Content
Verify that the Help command is disabled in Sendmail:
# ls -al /etc/mail/helpfile
If the file does not exist, this is not a finding.
If the help file does exist, verify that the file is empty:
# cat /etc/mail/helpfile
If the help file is not empty, this is a finding.
Responsibility
System Administrator
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.
Fix Text
Edit the initialization files for the ftp user and set the umask to 077.
Check Content
Check the umask setting for the "ftp" user.
# su - ftp
$ umask
If the umask value does not return 077, 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. # chmod 0600 .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.
# ls -lLa .Xauthority
If the file mode is more permissive than 0600, this is finding.
Responsibility
System Administrator
IA Controls
ECLP-1
The snmpd.conf file must be owned by bin.
Discussion
The snmpd.conf file contains authenticators and must be protected from unauthorized access and modification. If the file is not owned by bin, it may be subject to access and modification from unauthorized users.
Fix Text
Change the owner of the snmpd.conf file to bin. # chown bin /etc/SnmpAgent.d/snmpd.conf
Check Content
Determine the owner of the SNMP configuration file.
# ls -lL /etc/SnmpAgent.d/snmpd.conf
If the snmpd.conf file is not owned by bin, this is a finding.
Responsibility
System Administrator
IA Controls
ECLP-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 accepting 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
Edit the /etc/rc.config.d/syslogd configuration startup script and add the -N option to the syslogd command. Restart the syslogd service via the following command(s): # /sbin/init.d/syslogd stop # /sbin/init.d/syslogd start
Check Content
Examine the /etc/rc.config.d/syslogd file for the syslog daemon option(s):
# cat /etc/rc.config.d/syslogd | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v "^#" | grep "SYSLOG_OPTS"
Note that the default line entry format (IE: whitespace-seperated options, quotation marks, etc) of the syslogd file is as follows :
SYSLOGD_OPTS="-N"
If the -N 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.
Check Content
Check the TCP wrappers configuration files to determine if sshd is configured to use TCP wrappers.
# cat /etc/hosts.deny | grep -i sshd
# cat /etc/hosts.allow| grep -i sshd
If no entries are returned, the TCP wrappers are not configured for sshd, 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
Edit /etc/rc.config.d/nddconf and set the ip_forwarding option to 0.
Check Content
The configuration file entries will appear as follows:
TRANSPORT_NAME[x]=ip
NDD_NAME[x]=ip_forwarding
NDD_VALUE[x]=0
NOTE: The setting for the "ip_forwarding" interface will be initialized on a separate line referencing a specific NDD index.
# cat /etc/rc.config.d/nddconf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | \
grep -i ip_forwarding | cut -f 1,1 -d "=" | tr -d [:alpha:] | tr -d [:punct:]
If the above command returns nothing, this check is not a finding.
If the above command does return an index value:
# cat /etc/rc.config.d/nddconf | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | \
grep "[the ip_forwarding INDEX number from the above command]"
NOTE: The above command must (literally) contain the ASCII punctuation characters [ and ] exactly as depicted above.
If the return value is not set to 0, ask the SA if the machine is a designated router. If it is not a designated router, this is a finding. If it is a designated router, this is not a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
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 <path>/hosts.allow and <path/hosts.deny files to configure access restrictions.
Check Content
Check for the existence of the /etc/hosts.allow and /etc/hosts.deny files (normally located within the /etc directory).
# find /etc -type f -name hosts.allow -o -name hosts.deny | xargs -n1 ls -lL
If either file does not exist, this is a finding.
Check for the presence of a deny by default entry.
cat <path>/hosts.deny | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' |grep -v "^#" | egrep "ALL: ALL"
If the ALL: ALL entry is not present the 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 hosts.deny, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
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. Consult vendor documentation for removing packaged software, or remove the binary directly via the following example: # rm -i <binary>
Check Content
Determine if any network analysis tools are installed. Search for the binary:
# find / -type f -name ethereal | xargs -n1 ls -lL
# find / -type f -name wireshark | xargs -n1 ls -lL
# find / -type f -name tshark | xargs -n1 ls -lL
# find / -type f -name netcat | xargs -n1 ls -lL
# find / -type f -name tcpdump | xargs -n1 ls -lL
# find / -type f -name snoop | xargs -n1 ls -lL
# find / -type f -name nettl | xargs -n1 ls -lL
If any network analysis tools are found, this is a finding.
Responsibility
System Administrator
IA Controls
DCPA-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 configuration file. # chown root /etc/ntp.conf
Check Content
Check the ownership of the NTP configuration file.
# ls -lL /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 root, 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 root /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 root, bin, sys, or other, 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 configuration file to 0640 or less permissive. # chmod 0640 /etc/ntp.conf
Check Content
# ls -lL /etc/ntp.conf
If the mode is more permissive than 0640, 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
For Trusted Mode: Use the SAM/SMH interface (/etc/default/security file) to update attribute. See the below example: NUMBER_OF_LOGINS_ALLOWED=10 For SMSE: Note: There may be additional package/bundle updates that must be installed to support attributes in the /etc/default/security file. Use the SAM/SMH interface (/etc/default/security file) and/or the userdbset command (/var/adm/userdb/* files) to update attribute. See the below example: NUMBER_OF_LOGINS_ALLOWED=10 Note: Never use a text editor to modify any /var/adm/userdb database file. The database contains checksums and other binary data, and editors (vi included) do not follow the file locking conventions that are used to control access to the database. If manually editing the /etc/default/security file, save any change(s) before exiting the editor.
Check Content
For Trusted Mode:
Check the attribute setting.
# grep NUMBER_OF_LOGINS_ALLOWED /etc/default/security
If NUMBER_OF_LOGINS_ALLOWED is set to greater than 10, this is a finding.
For SMSE:
Check the attribute setting.
# grep NUMBER_OF_LOGINS_ALLOWED /etc/default/security /var/adm/userdb/*
If NUMBER_OF_LOGINS_ALLOWED is set to greater than 10, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1
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
Edit the configuration file and modify the PrintLastLog line entry as follows: PrintLastLog yes
Check Content
Check the SSH daemon configuration. Note that keywords are case-insensitive and arguments (args) are case-sensitive.
keyword=PrintLastLog
Required arg(s)=yes
Default arg values include: "yes"
Note: When the default "arg" value exactly matches the required "arg" value (see above), the <keyword=arg> are not required to exist (commented or uncommented) in the ssh (client) or sshd (server) configuration file. While not required, it is recommended that the configuration file(s) be populated with all keywords and assigned arg values as a means to explicitly document the ssh(d) binary's expected behavior.
Examine the file.
# cat /opt/ssh/etc/sshd_config | tr '\011' ' ' | tr -s ' ' | sed -e 's/^[ \t]*//' | grep -v '^#' | grep -i "PrintLastLog" | cut -f 2,2 -d " "
If the return value is no, this is a finding.
Responsibility
System Administrator
IA Controls
ECSC-1