Select any two versions of this STIG to compare the individual requirements
Select any old version/release of this STIG to view the previous requirements
Enter the following command to view users with a UID of "0": grep :0 /etc/passwd If any user other than root has a UID of "0", this is a finding.
Edit the /etc/passwd file and change the UID of the duplicate to an unused UID.
Open a terminal session and use the following command to verify the system directories do not have uneven file permissions. ls -lL /etc /bin /usr/bin /sbin /usr/sbin If any directories listed contain uneven file permissions, this is a finding.
Use the "chmod" command to set the mode of files with uneven permissions so the owners do not have less permission than group or world users.
Open a terminal session and enter the following command. find / -nouser Review the results. If any files do not have a valid owner, this is a finding.
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, examine the files to determine their origin and the reason for their lack of an owner/group.
Open a terminal session and enter the following command to check the mode of network services daemons (all on one line). find /usr/sbin -type f -perm +022 -exec stat -f %Lp:%N {} \; This will return the octal permissions and name of all files that are group or world-writable. If any network services daemon listed is world or group-writable (either or both of the 2 lowest order digits containing a 2, 3, 6, or 7), this is a finding.
Open a terminal session and use the following command to change the mode of the network services daemon. chmod 755 <path of network services daemon file>
Open a terminal session and enter the following command to verify the permissions. ls -lLR /var/log /var/audit If any of the log files have modes more permissive than 644, this is a finding.
Open a terminal session and enter the following command to change the mode of the system log file(s). chmod 644 <path/to/system log file>
Open a terminal session and enter the following command to verify the permissions on the man files. ls -lLR /usr/share/man If the permissions are not set to 0644 or less permissive, this is a finding.
Open a terminal session and enter the following command to set the mode of the manual page files to 0644 or less permissive. chmod 0644 /usr/share/man
Open a terminal session and enter the following command to verify the permissions on library and framework files, all on one line. find /System/Library/Frameworks /Library/Frameworks /usr/lib /usr/local/lib -type f -perm +022 -exec stat -f %Lp:%N {} \; If any of the library files have a mode more permissive than 0755, this is a finding.
Open a terminal session and enter the following command to change the mode of library files to 0755 or less permissive. chmod 0755 <path/to/library-file> NOTE: Library files should have an extension of ".a" or ".so", possibly followed by a version number. Frameworks are directories that may already contain files with more restrictive permissions than 755 and thus should not have their modes changed to 755 recursively.
Open a terminal session and enter the following command to verify command file permissions. find /bin /sbin /usr/bin /usr/sbin -type f -perm +022 -exec stat -f %Lp:%N {} \; This will return the octal permissions and name of all group or world-writable files. If any file listed is world or group-writable (either or both of the two lowest order digits contain a "2", "3", "6", or "7"), this is a finding.
Open a terminal session and enter the following command to change the mode for system command files to remove group and world write permissions. # chmod go-w <path/filename>
Open a terminal session and enter the following command to verify the ownership of system files, programs, and directories. Procedure: ls -lLa/bin /usr/bin /sbin /usr/sbin If any of the system files, programs, or directories are not owned by a system account, this is a finding.
Open a terminal session and enter the following command to change the owner of system files, programs, and directories to a system account. chown root <path/filename>
Open a terminal session and use the following command to verify group ownership of system files, programs, and directories. ls -lLa /usr/bin If any system file, program, or directory is not owned by a system group, this is a finding.
Open a terminal session and enter the following command to change the group ownership of system files, programs, and directories to a system group. chgrp wheel <path/filename>
Open a terminal session and enter the following command to verify the permissions on the password file. ls -Ll /etc/passwd If the permissions are not set to 644, this is a finding.
Open a terminal session and enter the following command to set the permissions for the password file. chmod 644 /etc/passwd
Enter the following command to search public directories. find / -type d -perm -002 -exec ls -ld {} \; Review the results. If any public directories do not have the sticky bit set, this is a finding.
Open a terminal session and enter the following command to set the sticky bit on all public directories. chmod 1777 <public directory missing the sticky bit>
Open a terminal session and enter the following command to verify the ownership of all public directories. 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.
Open a terminal session and enter the following command to change the owner of public directories to root or an application account. chown root /tmp (Replace root with an application user and/or "/tmp" with another public directory as necessary.)
Open a terminal session and use the following command to verify the owner of audit logs in the /var/audit directory. ls -lL /var/audit If any file in the /var/audit directory is not owned by root, this is a finding.
Open a terminal session and use the following command to change the owner of the file. chown root /var/audit/<filename>
Open a terminal session and use the following command to verify the permissions. ls -lL /var/audit If any audit log file has a mode more permissive than 640, this is a finding.
Open a terminal session and use the following command to set the permissions of the audit log file. chmod 640 /var/audit <filename>
Open a terminal session and enter the following command to verify ownership of the services file. ls -lL /etc/services If the services file is not owned by root or bin, this is a finding.
Open a terminal session and enter the following command to set the ownership of the services file. chown root /etc/services
Open a terminal session and enter the following command to verify the mode of the services file. ls -lL /etc/services If the services file has a mode more permissive than 0644, this is a finding.
Open a terminal session and enter the following command to set the mode of the services file. chmod 0644 /etc/services
Open a terminal session and enter the following commands to verify ownership of local initialization files. ls -al /<usershomedirectory>/.login ls -al /<usershomedirectory>/.cshrc ls -al /<usershomedirectory>/.logout ls -al /<usershomedirectory>/.profile ls -al /<usershomedirectory>/.bash_profile ls -al /<usershomedirectory>/.bashrc ls -al /<usershomedirectory>/.bash_logout ls -al /<usershomedirectory>/.env ls -al /<usershomedirectory>/.dtprofile ls -al /<usershomedirectory>/.dispatch ls -al /<usershomedirectory>/.emacs ls -al /<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.
Open a terminal session and enter the following command to change the ownership of the start-up 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. chown <username> </directory/filename>
Open a terminal session and enter the following command to check the mode of launchctl plist files (all on one line). find /System/Library/LaunchDaemons /System/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons -type f -perm +022 -exec stat -f %Lp:%N {} \; This will return the octal permissions and name of all files that are group or world writeable. If any launchctl plist file listed is world or group writeable (either or both of the 2 lowest order digits containing a 2, 3, 6, or 7), this is a finding.
Open a terminal session and enter the following command to set the mode of the run control script file. chmod 755 <startup file>
Open a terminal session and enter the following command to check the system for the existence of any .netrc files. find / -name .netrc If any .netrc file exists, this is a finding.
To remove the .netrc file(s) enter the following command. rm .netrc
NOTE: For each user, check for the presence of files and directories within the user's home directory not owned by the home directory owner. Open a terminal session and enter the following command. find /<usershomedirectory> -not -user <username> -exec ls -ld {} \; If the user's home directories contain files or directories not owned by the home directory owner, this is a finding.
Open a terminal session and enter the following command to change the ownership of files and directories in user home directories to the owner of the home directory. chown <account-owner> <filename>
Open a terminal session and enter the following command to verify the ownership of the system shell files. cat /etc/shells | xargs -n1 ls -lL If any shell file is not owned by root, this is a finding.
Open a terminal session and enter the following command to change the ownership of the shell file with incorrect ownership. chown root <shell>
Open a terminal session and enter the following command. cat /etc/shells | xargs -n1 ls -lL If any shell has a mode more permissive than 0755, this is a finding.
Open a terminal session and enter the following command to set the mode. chmod 0755 <shell file>
Open a terminal session and enter the following command to verify permissions. find / -perm -2 -a \( -type b -o -type c \) > devicelist Check the permissions on the directories above subdirectories in the devicelist file. If any of the device files or their parent directories are world-writable, except device files specifically intended to be world-writable (such as /dev/null), this is a finding.
Open a terminal session and enter the following command to set the mode of the device file. chmod 755 <device file>
Open a terminal session and enter the following command to check the system for NFS mounts not using the "nosuid" option. mount -t nfs | egrep -v "nosuid" If anything is returned, the mounted file systems do not have the "nosuid" option and this is a finding.
Open a terminal session and edit /etc/auto_master and add the "nosuid" option at the end of the line that begins with /net. In the same terminal session, edit /etc/fstab and add the "nosuid" option to any lines for NFS mounts. Remount the NFS file systems to make the change take effect.
Open a terminal session and enter the following command to verify the ownership of the file. ls -lL /etc/smb.conf If an smb.conf file is not owned by root, this is a finding.
Open a terminal session and enter the following command to set the owner of the smb.conf file to root. chown root /etc/smb.conf
Open a terminal session and enter the following command to verify the permissions of the /etc/smb.conf file. ls -lL /etc/smb.conf If the value is not set to 0644, this is a finding.
Open a terminal session and enter the following command to set the mode of the smb.conf file. chmod 644 /etc/smb.conf
Open a terminal session and use the following command to view the setting for password history. sudo pwpolicy -n -getglobalpolicy | tr " " "\n" | grep usingHistory If the value of usingHistory is less than 15, this is a finding. NOTE: If the command returns a response of password server is not configured, the system is not managed. Use the following command for non-managed systems. pwpolicy -n /Local/Default -getglobalpolicy | tr " " "\n" | grep usingHistory
Open a terminal session and use the following command to set the value for usingHistory. sudo pwpolicy -n -setglobalpolicy "usingHistory=15" NOTE: For non-managed system, use the following command. pwpolicy -n /Local/Default -setglobalpolicy "usingHistory=15"
Open a terminal session and enter the following command to verify the ownership is set to the original installation settings. diskutil verifyPermissions / If files are shown with incorrect ownership, this is a finding.
Open a terminal session and enter the following command to reset the ownership to the original installation settings. diskutil repairPermissions /
Open a terminal session and enter the following command to verify the ownership is set to the original installation settings. diskutil verifyPermissions / If files are shown with incorrect ownership, this is a finding.
Open a terminal session and enter the following command to reset the file ownership to their original settings. diskutil repairPermissions /
Open a terminal session and enter the following command to verify the mode of the "at" directory. ls -ld /var/at If the directory mode is more permissive than 0755, this is a finding.
Open a terminal session and enter the following command to set the mode of the "at" directory to 755. chmod 755 /var/at
Open a terminal session and enter the following command to verify the owner of the "at" directory. ls -ld /var/at If the directory is not owned by root, bin, sys, or system, this is a finding.
Open a terminal session and enter the following command to set the owner to root. chown root /var/at
Open a terminal session and enter the following command to determine what "at" jobs exist on the system. ls /var/at/spool If no "at" jobs are present, this is not applicable. To 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 umask /var/at/spool<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.
Open a terminal session and edit "at" jobs or referenced scripts to remove "umask" commands setting umask to a value less restrictive than 077.
Open a terminal session and enter the following command to verify the owner. ls -lL /var/at/at.deny If the at.deny file is not owned by root, sys, or bin, this is a finding.
Open a terminal session and enter the following command to set the owner of the at.deny file. chown root /var/at/at.deny
Open a terminal session and enter the following command to verify the owner. ls -lL /usr/sbin/traceroute If the traceroute command is not owned by root, this is a finding.
Open a terminal session and enter the following command to set the owner of the traceroute command. chown root /usr/sbin/traceroute
Open a terminal session and enter the following command to verify the group ownership of the traceroute command. ls -lL /usr/sbin/traceroute If the traceroute command is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to set the group ownership of the traceroute command. chgrp wheel /usr/sbin/traceroute
Open a terminal session and enter the following command to verify the permissions on the traceroute command. ls -lL /usr/sbin/traceroute If the traceroute command has a mode more permissive than 0700, this is a finding.
Open a terminal session and enter the following command to set the mode of the traceroute command. chmod 700 /usr/sbin/traceroute
Open a terminal session and enter the following command to search for any .forward files on the system. find / -name .forward -print If any .forward files are found on the system, this is a finding.
Open a terminal session and enter the following command to remove .forward files from the system. rm <path of .forward files>
Open a terminal session and enter the following command to verify the owner. ls -lL /etc/syslog.conf If the syslog.conf file is not owned by root, this is a finding.
Open a terminal session and use the following command to set the owner of the syslog.conf file. chown root /etc/syslog.conf
Open a terminal session and enter the following command to verify the group ownership of the syslog.conf file. ls -lL /etc/syslog.conf If the syslog.conf file is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to set the group ownership of the syslog.conf file. chgrp wheel /etc/syslog.conf
Open a terminal session and use the following command to view the rshd status. defaults read /var/db/launchd.db/com.apple.launchd/overrides com.apple.rshd If the command does not return a value of 1, this is a finding.
Open a terminal session and use the following command to disable rshd. launchctl unload -w /System/Library/LaunchDaemons/shell.plist NOTE: This command is being run to adjust the overrides file; unloading errors are normal, repeat the check to verify.
Open a terminal session and use the following command to view the rexec status. defaults read /var/db/launchd.db/com.apple.launchd/overrides com.apple.rexecd If the command does not return a value of 1, this is a finding.
Open a terminal session and use the following command to set the rexec status. launchctl unload -w /System/Library/LaunchDaemons/exec.plist NOTE: This command is being run to adjust the overrides file; unloading errors are normal, repeat the check to verify.
Open a terminal session and enter the following command to verify uucp is disabled. defaults read /System/Library/LaunchDaemons/com.apple.uucp Disabled If a 1 is not returned, this is a finding.
Open a terminal session and use the following command to disable uucp. launchctl unload -w /System/Library/LaunchDaemons/com.apple.uucp.plist NOTE: This command is being run to adjust the overrides file; unloading errors are normal, repeat the check to verify.
Open a terminal session and enter the following command to verify finger is disabled. defaults read /var/db/launchd.db/com.apple.launchd/overrides com.apple.fingerd If a value of 1 is not returned, this is a finding.
Open a terminal session and use the following command to disable finger. launchctl unload -w /System/Library/LaunchDaemons/finger.plist NOTE: This command is being run to adjust the overrides file; unloading errors are normal, repeat the check to verify.
Open a terminal session and enter the following commands to verify the permissions on the global initialization files. ls -l /etc/bashrc ls -l /etc/csh.cshrc ls -l /etc/csh.login ls -l /etc/csh.logout ls -l /etc/profile If any global initialization files are more permissive than 0644, this is a finding.
Open a terminal session and enter the following command to set the mode on the global initialization files. chmod 644 /etc/<filename>
Open a terminal session and enter the following commands to verify the owner of the global initialization files. ls -l /etc/bashrc ls -l /etc/csh.cshrc ls -l /etc/csh.login ls -l /etc/csh.logout ls -l /etc/profile If any global initialization file is not owned by root, this is a finding.
Open a terminal session and enter the following command to set the owner of the global initialization files. chown root /etc/<filename>
Open a terminal session and enter the following commands to verify the group ownership on the global initialization files. ls -l /etc/bashrc ls -l /etc/csh.cshrc ls -l /etc/csh.login ls -l /etc/csh.logout ls -l /etc/profile If any global initialization file is not group owned by wheel, this is a finding.
Open a terminal session and use the following command to set the group ownership of the global initialization files. chgrp wheel /etc/<filename>
Open a terminal session and enter the following command. sysctl -a | grep net.inet.ip.fw.enable If the value of "net.inet.ip.fw.enable" is not set to "0", this is a finding.
Open a terminal session and edit the /etc/sysctl.conf file and add the following line. net.inet.ip.fw.enable=0 NOTE: If the sysctl.conf file does not exist use the following command to create one. touch /etc/sysctl.conf
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.
Uninstall the IM client from the system, or configure the client to only connect to DoD-approved IM services.
Ask the SA if any peer-to-peer file-sharing applications are installed. Some examples of these applications include. - Napster, - Kazaa, - ARES, - Limewire, - IRC Chat Relay, and - BitTorrent. If any of these applications are installed, this is a finding.
Uninstall the peer-to-peer file sharing application(s) from the system.
Open a terminal session and enter the following command to search the system for files without a valid group owner. find / -nogroup -print If any files are found, this is a finding.
Use the following command to change the group owner for each file without a valid group owner. chgrp <a-valid-group> <path>/<file-without-a-valid-group-owner>
Open a terminal session and enter the following command to view the network services daemon ACLs. ls -la /usr/sbin If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /usr/sbin/ <file with extended ACL>
Open a terminal session and enter the following command to view extended ACLs. find /bin /sbin /usr/bin /usr/sbin -print -exec ls -lLd \{\} \; | egrep '^..........+' If any command files are shown with permissions that include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N <path/file with extended ACL>
Open a terminal session and enter the following command to view the system log files ACLs. ls -lLR /var/log 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.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /var/log<file with extended ACL>
Open a terminal session and enter the following command to verify the man page ACLs. ls -lLR /usr/share/man If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -RN /usr/share/man
Open a terminal session and enter the following command to view the library file ACLs. ls -lLR /System/Library/Frameworks /Library/Frameworks /usr/lib /usr/local/lib If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -RN /System/Library/Frameworks /Library/Frameworks /usr/lib /usr/local/lib
Open a terminal session and enter the following command to verify the owner of the resolv.conf file. ls -lL /etc/resolv.conf If the resolv.conf file is not owned by root, this is a finding.
Open a terminal session and enter the following command to set the owner of the resolv.conf file. chown root /etc/resolv.conf
Open a terminal session and enter the following command to verify the group ownership of the resolv.conf file. ls -lL /etc/resolv.conf If the resolv.conf file is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to set the group ownership of the resolv.conf file. chgrp wheel /etc/resolv.conf
Open a terminal session and enter the following command to verify the permissions on the file. ls -Ll /etc/resolv.conf If the permissions are not set to 644, this is a finding.
Open a terminal session and enter the following command to set permissions on the file. chmod 644 /etc/resolv.conf
Open a terminal session and enter the following command to view the resolv.conf file extended ACLs. ls -lL /etc/resolv.conf If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /etc/resolv.conf
Open a terminal session and enter the following command to verify the owner of the etc/hosts file. ls -lL /etc/hosts If the /etc/hosts file is not owned by root, this is a finding.
Open a terminal session and enter the following command to set the owner to root. chown root /etc/hosts
Open a terminal session and enter the following command to verify the group ownership of the etc/hosts file. ls -lL /etc/hosts If the /etc/hosts file is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to set the group to root. chgrp wheel /etc/hosts
Open a terminal session and enter the following command to verify the permissions of the etc/hosts file. ls -lL /etc/hosts If the /etc/hosts file permissions are not set to 644, this is a finding.
Open a terminal session and use the following command to set the mode of the etc/hosts file. chmod 644 /etc/hosts
Open a terminal session and enter the following command to view the /etc/hosts file extended ACLs. ls -lL /etc/hosts If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /etc/hosts
Open a terminal session and use the following command to verify the DNS name servers. grep nameserver /etc/resolv.conf If less than two lines are returned that are not commented out, this is a finding.
Open a terminal session and use the following command to edit the /etc/resolv.conf and add additional "nameserver" lines until at least two are present. sudo pico /etc/resolv.conf
Open a terminal session and enter the following command to verify the owner of the etc/passwd file. ls -lL /etc/passwd If the /etc/passwd file is not owned by root, this is a finding.
Open a terminal session and enter the following command to set the owner to root. chown root /etc/passwd
Open a terminal session and enter the following command to verify the group ownership of the etc/passwd file. ls -lL /etc/passwd If the /etc/passwd file is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to set the group to wheel. chgrp wheel /etc/passwd
Open a terminal session and enter the following command to view the /etc/passwd file extended ACLs. ls -lL /etc/passwd If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /etc/passwd
Open a terminal session and enter the following command to verify the owner of the /etc/group file. ls -lL /etc/group If the /etc/group file is not owned by root, this is a finding.
Open a terminal session and enter the following command to set the owner to root. chown root /etc/group
Open a terminal session and enter the following command to verify the group ownership of the /etc/group file. ls -lL /etc/group If the /etc/group file is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to set the group to wheel. chgrp wheel /etc/group
Open a terminal session and enter the following command to verify the permissions of the /etc/group file. ls -lL /etc/group If the /etc/group file permissions are not set to 644, this is a finding.
Open a terminal session and enter the following command to set the mode of the /etc/group file. chmod 644 /etc/group
Open a terminal session and enter the following command to view the /etc/group file extended ACLs. ls -lL /etc/group If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /etc/group
Open a terminal session and enter the following command. ls -lLd <top level user home directory> If the permissions include a '+', the directory has an extended ACL, this is a finding.
Open a terminal session and enter the following command to set the permissions. chmod -N <user home directory with extended ACL>
Open a terminal session and enter the following commands to view the group ownership of the user’s directories and files. ls -l /Users (shows users directory) ls -lL /Users/ <each user directory> If any directory or file is not group owned by the user or a know users group, this is a finding.
chgrp <group with user as member> <file with bad group ownership>
Open a terminal session and enter the following command. find /Users -print -exec ls -lLd \{\} \; | grep '^..........+' If files are shown with permissions that include a '+', the file has an extended ACL. If the file has an extended ACL and it has not been documented with the IAO, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N <user file with extended ACL>
Open a terminal session and enter the following command to verify the launch control scripts have no extended ACLs. ls -lL /System/Library/LaunchDaemons /System/Library/LaunchAgents /Library/LaunchDaemons /Library/LaunchAgents If the permissions include a '+', the file has an extended ACL. If the file has an extended ACL and it has not been documented with the IAO, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N <launch control script with extended ACL>
Open a terminal session and enter the following command to view extended ACLs. cat /etc/shells | xargs -n1 ls -lL If the permissions include a '+', the file has an extended ACL. If the file has an extended ACL and it has not been documented with the IAO, this is a finding.
Open a terminal session and use the following command to remove the extended ACLs. chmod -N <shell file with extended ACL>
Open a terminal session and enter the following command to view the ACLs of the audit files. ls -Ll /var/audit If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N </var/audit/ file with extended ACL>
Open a terminal session and enter the following command to view the ACLs of the audit tool. ls -lL /usr/sbin/audit /usr/sbin/auditd /usr/sbin/auditreduce /usr/sbin/praudit If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and use the following command to remove the extended ACLs. chmod -N <audit file with extended ACL>
Open a terminal session and enter the following command to view the ACLs of the cron.allow file. ls -l /private/var/at/cron.allow If the file exists and the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /private/var/at/cron.allow
Open a terminal session and enter the following commands to verify the group ownership of the "crontab" files. ls -lL /usr/sbin/cron ls -lL /usr/lib/cron ls -lL /usr/bin/crontab ls -lL /private/var/at/cron.deny If the group-owner is not wheel or the crontab owner's primary group, this is a finding.
Open a terminal session and enter the following command to set the group to wheel. chgrp wheel <crontab file>
Open a terminal session and enter the following commands to view the extended ACLs of the crontab file. ls -lL /usr/sbin/cron ls -lL /usr/lib/cron ls -lL /usr/bin/crontab ls -lL /private/var/at/cron.deny If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N <crontab file>
Open a terminal session and enter the following commands to view the extended ACLs of the crontab directory. ls -ld /usr/sbin/cron ls -ld /usr/lib/cron ls -ld /usr/bin/crontab ls -ld /private/var/at/cron.deny If the permissions include a '+', the directory has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N <crontab directory>
Open a terminal session and enter the following command to view the ACLs of the cron.deny file. ls -l /private/var/at/cron.deny If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /private/var/at/cron.deny
Open a terminal session and enter the following command to verify the group ownership of the cron.allow file. ls -lL /private/var/at/cron.allow If the file exists and is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command. chgrp wheel /private/var/at/cron.allow
Open a terminal session and enter the following command to verify the group ownership of the "/private/var/at/cron.deny" file. ls -lL /private/var/at/cron.deny If the "/private/var/at/cron.deny" file is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to set the group. chgrp wheel /private/var/at/cron.deny
Open a terminal session and use the following command to verify the system does not allow core dumps. sysctl -a | grep kern.coredump If kern.coredump is not set to 0, this is a finding.
Open a terminal session and edit the /etc/sysctl.conf file and add the following entry. kern.coredump=0 NOTE: If the sysctl.conf file does not exist use the following command to create one. touch /etc/sysctl.conf
Open a terminal session and enter the following command to view the timestamp. sysctl -a | grep net.inet.icmp.timestamp If the value of net.inet.icmp.timestamp is not set to "1", this is a finding.
Open a terminal session and edit the /etc/sysctl.conf file and add the following line. net.inet.icmp.timestamp=1 NOTE: If the sysctl.conf file does not exist use the following command to create one. touch /etc/sysctl.conf
Open a terminal session and enter the following command to view the value of "net.inet.icmp.bmcastecho". sysctl -a | grep net.inet.icmp.bmcastecho If the value is not set to "1", this is a finding.
Open a terminal session and edit the /etc/sysctl.conf file and add the following line. net.inet.icmp.bmcastecho=1 NOTE: If the sysctl.conf file does not exist use the following command to create one. touch /etc/sysctl.conf
Open a terminal session and enter the following command to view the value of "net.inet.ip.sourceroute". sysctl -a | grep net.inet.ip.sourceroute If the value of "net.inet.ip.sourceroute" is not set to "0", this is a finding.
Open a terminal session and edit the /etc/sysctl.conf file and add the following line. net.inet.ip.sourceroute=0 NOTE: If the sysctl.conf file does not exist use the following command to create one. touch /etc/sysctl.conf
Open a terminal session and enter the following command to view the value of "net.inet.ip.accept_sourceroute". sysctl -a | grep net.inet.ip.accept_sourceroute If the value of "net.inet.ip.accept_sourceroute" is not set to "0", this is a finding.
Open a terminal session and edit the /etc/sysctl.conf file and add the following line. net.inet.ip.accept_sourceroute=0 NOTE: If the sysctl.conf file does not exist use the following command to create one. touch /etc/sysctl.conf
Open a terminal session and enter the following command to view the value of "net.inet.icmp.drop_redirect". sysctl -a | grep net.inet.icmp.drop_redirect If the value of "net.inet.icmp.drop_redirect" is not set to "0", this is a finding.
Open a terminal session and edit the /etc/sysctl.conf file and add the following line. net.inet.icmp.drop_redirect=0 NOTE: If the sysctl.conf file does not exist use the following command to create one. touch /etc/sysctl.conf
Open a terminal session and enter the following command to view the value of "net.inet.ip.redirect". sysctl -a | grep net.inet.ip.redirect If the value of "net.inet.ip.redirect" is not set to "0", this is a finding.
Open a terminal session and edit the /etc/sysctl.conf file and add the following line. net.inet.ip.redirect=0 NOTE: If the sysctl.conf file does not exist use the following command to create one. touch /etc/sysctl.conf
Open a terminal session and enter the following command to verify the group ownership of the /etc/services file. ls -lL /etc/services If the /etc/services file is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to set the group. chgrp wheel /etc/services
Open a terminal session and enter the following command to view the /etc/services file extended ACLs. ls -lL /etc/services If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /etc/services
Open a terminal session and enter the following command to view the "/usr/sbin/traceroute" file extended ACLs. ls -lL /usr/sbin/traceroute If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /usr/sbin/traceroute
Open a terminal session and use the following command to verify the group ownership of the /etc/aliases file. ls -lL /etc/aliases If the /etc/aliases file is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to set the group. chgrp wheel /etc/aliases
Open a terminal session and enter the following command to view the /etc/aliases file extended ACLs. ls -lL /etc/aliases If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /etc/aliases
Open a terminal session and enter the following command to view the /etc/syslog.conf file extended ACLs. ls -lL /etc/syslog.conf If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /etc/syslog.conf
Open a terminal session and enter the following command. grep -i ciphers /etc/sshd_config | grep -v '^#' If no lines are returned, or the returned ciphers list contains any cipher not starting with "3DES" or "AES", this is a finding.
Open a terminal session and edit the SSH daemon configuration file "/etc/sshd_config" to remove any ciphers not starting with "3DES" or "AES".
Open a terminal session and enter the following command. grep ciphers /etc/sshd_config If no lines are returned, or the returned ciphers list contains any cipher ending with CBC, this is a finding.
Open a terminal session and edit the SSH daemon configuration file "/etc/sshd_config" and remove any ciphers ending with "CBC". If necessary, add a Ciphers line.
Open a terminal session and enter the following command. grep -i macs /etc/sshd_config | grep -v '^#' If no lines are returned, or the returned MACs list contains any MAC other than "hmac-sha1", this is a finding.
Open a terminal session and edit the SSH daemon configuration file "/etc/sshd_config" and remove any MACs other than "hmac-sha1". If there is no MACs line in "/etc/sshd_config", add "MACs hmac-sha1" to the file. Restart the SSH daemon for the changes to take effect.
Open a terminal session and enter the following command. grep -i ciphers /etc/ssh_config | grep -v '^#' If no lines are returned, or the returned ciphers list contains any cipher not starting with "3DES" or "AES", this is a finding.
Open a terminal session and edit the SSH client configuration file "/etc/ssh_config" and remove any ciphers not starting with "3DES" or "AES".
Open a terminal session and enter the following command. grep -i ciphers /etc/ssh_config | grep -v '^#' If no lines are returned, or the returned ciphers list contains any cipher ending with "CBC", this is a finding.
Open a terminal session and edit the SSH client configuration file "/etc/ssh_config" and remove any ciphers ending with "CBC".
Open a terminal session and enter the following command. grep -i macs /etc/ssh_config | grep -v '^#' If no lines are returned, or the returned MACs list contains any MAC other than "hmac-sha1", this is a finding.
Open a terminal session and edit the SSH client configuration file "/etc/ssh_config" and remove any MACs other than "hmac-sha1".
Open a terminal session and enter the following command to view the /etc/smb.conf file extended ACLs. ls -lL /etc/smb.conf If the permissions include a '+', the file has an extended ACL, this is a finding.
Open a terminal session and enter the following command to remove the extended ACLs. chmod -N /etc/smb.conf
Open a terminal session and enter the following command to verify the permissions are set to the original installation settings. diskutil verifyPermissions /
Open a terminal session and enter the following command to reset the permissions to the original installation settings. diskutil repairPermissions /
Open a terminal session and enter the following command to verify the permissions are set to the original installation settings. diskutil verifyPermissions / If files are shown with incorrect permissions, this is a finding.
Open a terminal session and enter the following command to reset the permissions to the original installation settings. diskutil repairPermissions /
Open a terminal session and enter the following command to verify the permissions are set to the original installation settings. diskutil verifyPermissions / If files are shown with incorrect extended attributes, this is a finding.
Open a terminal session and enter the following command to remove extended attributes. diskutil repairPermissions /
Open a terminal session and enter the following command to verify the permissions. ls -Ll /etc/openldap/ldap.conf If the permissions are not set to 644, this is a finding.
Open a terminal session and enter the following command to set permissions on the file. chmod 644 /etc/openldap/ldap.conf
Open a terminal session and enter the following command to verify the owner. ls -Ll /etc/openldap/ldap.conf If the owner is not set to root, this is a finding.
Open a terminal session and enter the following command to set the owner to root. chown root /etc/openldap/ldap.conf
Open a terminal session and enter the following command to verify the group owner. ls -Ll /etc/openldap/ldap.conf If the file is not group-owned by wheel, this is a finding.
Open a terminal session and use the following command to set the group owner of the file. chgrp wheel /etc/openldap/ldap.conf
Open a terminal session and enter the following command to verify the /etc/openldap/ldap.conf has no extended ACLs. ls -lL /etc/openldap/ldap.conf If the permissions include a '+', the file has an extended ACL. If the file has an extended ACL and it has not been documented with the IAO, this is a finding.
Open a terminal session and enter the following command to remove the ACLs. chmod -RN /etc/openldap/ldap.conf
Determine if the system's local firewall implements a deny-all, allow-by-exception policy. If it does not, this is a finding.
Configure the system's local firewall to implement a deny-all, allow-by-exception policy.
Open a terminal session and enter the following command to verify group ownership of the files. ls -Ll /var/audit If any file is not group owned by wheel, this is a finding.
Open a terminal session and enter the following command to change group ownership of the file. chgrp wheel /var/audit/ <audit file>
Open a terminal session and enter the following command to verify telnet is disabled. defaults read /var/db/launchd.db/com.apple.launchd/overrides com.apple.telnetd If a 1 is not returned, this is a finding.
Open a terminal session and use the following command to disable telnet. launchctl unload -w /System/Library/LaunchDaemons/telnet.plist NOTE: This command is being run to adjust the overrides file; unloading errors are normal, repeat the check to verify.
Verify unnecessary packages are not installed. Open a terminal session and enter the following command. pkgutil / --pkgs Review the packages installed, determine if the installed packages are needed. If not, then this is a finding.
Review the packages installed using the following command. pkgutil / --pkgs Determine if the installed packages are needed. If not, verify any dependencies and use the rm command to remove them.
1. Select Finder. 2. Select Applications. 3. Select System Preferences. 4. Select Accounts. 5. Verify there are no easy to guess administrator account names. If any accounts have easy to guess names, this is a finding.
1. Select Finder. 2. Select Applications. 3. Select System Preferences. 4. Select Accounts. 5. Rename or recreate accounts with difficult-to-guess names.
Open a terminal session and use the following command to view the setting for maximum password age. sudo pwpolicy -n -getglobalpolicy | tr " " "\n" | grep maxMinutesUntilChangePassword. If the value of "maxMinutesUntilChangePassword" is greater than 86400 or set to "0", this is a finding. NOTE: If the command returns a response of "password server is not configured", the system is not managed. Use the following command for non-managed systems. pwpolicy -n /Local/Default -getglobalpolicy | tr " " "\n" | grep maxMinutesUntilChangePassword If the value of "maxMinutesUntilChangePassword" is greater than 86400, this is a finding. NOTE: The value of "0" will disable this setting and must not be used.
Open a terminal session and use the following command to set the value for maxMinutesUntilChangePassword. sudo pwpolicy -n -setglobalpolicy "maxMinutesUntilChangePassword=86400" NOTE: For non-managed system, use the following command. pwpolicy -n /Local/Default -setglobalpolicy "maxMinutesUntilChangePassword=86400"
Open a terminal session and enter the following command to view the setting for minimum password length. sudo pwpolicy -n -getglobalpolicy | tr " " "\n" | grep minChars If the value of minChars is less than 15, this is a finding. NOTE: If the command returns a response of "password server is not configured", the system is not managed. Use the following command for non-managed systems. pwpolicy -n /Local/Default -getglobalpolicy | tr " " "\n" | grep minChars If the value of minChars is less than 15, this is a finding.
Open a terminal session and use the following command to set the value for minimum password length. sudo pwpolicy -n -setglobalpolicy "minChars=15" NOTE: For non-managed system, use the following command. pwpolicy -n /Local/Default -setglobalpolicy "minChars=15"
Open a terminal session and use the following command to view the setting for "password cannot be name". sudo pwpolicy -n -getglobalpolicy | tr " " "\n" | grep passwordCannotBeName If the value of "passwordCannotBeName" is not equal to "1", this is a finding. NOTE: If the command returns a response of "password server is not configured", the system is not managed. Use the following command for non-managed systems. pwpolicy -n /Local/Default -getglobalpolicy | tr " " "\n" | grep passwordCannotBeName If the value of "passwordCannotBeName" is not equal to "1", this is a finding.
Open a terminal session and use the following command to set the value for "password cannot be name". sudo pwpolicy -n -setglobalpolicy "passwordCannotBeName=1" NOTE: For non-managed system, use the following command. pwpolicy -n /Local/Default -setglobalpolicy "passwordCannotBeName=1"
Open a terminal session and use the following command to view the setting for Account lockout duration. sudo pwpolicy -n -getglobalpolicy | tr " " "\n" | grep minutesUntilFailedLoginReset If the value of "minutesUntilFailedLoginReset" is greater than "0", this is a finding. NOTE: If the command returns a response of "password server is not configured", the system is not managed. Use the following command for non-managed systems. pwpolicy -n /Local/Default -getglobalpolicy | tr " " "\n" | grep minutesUntilFailedLoginReset If the value of "minutesUntilFailedLoginReset" is greater than "0", this is a finding.
Open a terminal session and use the following command to set the value for account lockout duration. sudo pwpolicy -n -setglobalpolicy "minutesUntilFailedLoginReset=0" NOTE: For non-managed system, use the following command. pwpolicy -n /Local/Default -setglobalpolicy "minutesUntilFailedLoginReset=0"
Open a terminal session and use the following command to view the setting for account lockout threshold. sudo pwpolicy -n -getglobalpolicy | tr " " "\n" | grep maxFailedLoginAttempts If the value of "maxFailedLoginAttempts" is more than "3", or set to "0", this is a finding. NOTE: If the command returns a response of "password server is not configured", the system is not managed. Use the following command for non-managed systems. pwpolicy -n /Local/Default -getglobalpolicy | tr " " "\n" | grep maxFailedLoginAttempts If the value of "maxFailedLoginAttempts" is more than "3", or set to "0", this is a finding.
Open a terminal session and use the following command to set the value for account lockout threshold. sudo pwpolicy -n -setglobalpolicy "maxFailedLoginAttempts=3" NOTE: For non-managed system, use the following command. pwpolicy -n /Local/Default -setglobalpolicy "maxFailedLoginAttempts=3"
Open a terminal session and enter the following command. sudo softwareupdate --list or sudo softwareupdate --list --all Review the result for proper versions and current patch level. GUI procedures: 1. Choose Apple (?) > Software Update. 2. Select Scheduled Check & Installed Updates. 3. Verify all current software updates are installed. If the current software updates are not installed, this is a finding. NOTE: This check does not show third party software or updates.
Install current software updates and patches. NOTE: Do not enable Automatic Updating as this will conflict with V-25298.
Open a terminal session and view the /System/Library/Extensions folder. Ensure the following file does NOT exist. IO80211Family.kext If the file exists, this is a finding.
Open a terminal session and enter the following commands. srm -rf /System/Library/Extensions/IO80211Family.kext touch /System/Library/Extensions NOTE: Repeat these instructions every time a system update is installed.
Open a terminal session and view the /System/Library/Extensions folder. Ensure the following files do NOT exist. IOBluetoothFamily.kext IOBluetoothHIDDriver.kext If any file exists, this is a finding.
Open a terminal session and enter the following commands to remove the files. srm -rf /System/Library/Extensions/IOBluetoothFamily.kext srm -rf /System/Library/Extensions/IOBluetoothHIDDriver.kext sudo touch /System/Library/Extensions NOTE: Repeat these instructions every time a system update is installed.
Open a terminal session and view the /System/Library/Extensions/ folder if any of the following files exist, this is a finding. AppleUSBAudio.kext IOAudioFamily.kext
Open a terminal session and enter the following commands. srm -rf /System/Library/Extensions/AppleUSBAudio.kext srm -rf /System/Library/Extensions/IOAudioFamily.kext touch /System/Library/Extensions NOTE: Repeat these instructions every time a system update is installed.
Open a terminal session and view the /System/Library/Extensions folder. Ensure the following file does NOT exist: Apple_iSight.kext. Control click the IOUSBFamily.kext and select Show Package Contents. Open the /Contents/PlugIns/ folder. Ensure the following file does NOT exist: AppleUSBVideoSupport.kext If any of the files exist, this is a finding.
Open a terminal session and enter the following commands to remove the files. sudo srm -rf /System/Library/Extensions/Apple_iSight.kext sudo srm -rf /System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins/AppleUSBVideoSupport.kext sudo touch /System/Library/Extensions NOTE: Repeat these instructions every time a system update is installed.
Open a terminal session and view the /System/Library/Extensions folder. Ensure the following file does NOT exist. AppleIRController.kext If the file exists, this is a finding.
Open a terminal session and enter the following commands to remove the file. srm -rf /System/Library/Extensions/AppleIRController.kext sudo touch /System/Library/Extensions NOTE: Repeat these instructions every time a system update is installed.
Log in with an administrator account and open the Firmware Password Utility (located on the Mac OS X installation disc in /Applications/Utilities/). Verify the "Require password to start this computer from another source" is selected. If not, this is a finding.
Log in with an administrator account and open the Firmware Password Utility (located on the Mac OS X installation disc in /Applications/Utilities/). Click New. Select "Require password to start this computer from another source". In the Password and Verify fields, enter a new EFI password and click OK. Close the Firmware Password Utility.
If the following DoD warning banner is not displayed at the top of the login panel before entering the user name and password, this is a finding. "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests-not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." NOTE: Any OS versions that do not support the full text version must state the following: "I've read & consent to terms in IS user agreem't." NOTE: Deviations are not permitted except as authorized by the Deputy Assistant Secretary of Defense for Information and Identity Assurance.
Open a terminal session and enter the following command. sudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText "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." Log off the system and verify the banner is displayed at the login screen.
Open a terminal session. The warning banner should be displayed in the terminal. If the following DoD warning banner is not displayed, this is a finding. "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests-not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." Note: Any OS versions not supporting the full text version must state the following: "I've read and consent to terms in IS user agreem't". Note: Deviations are not permitted except as authorized by the Deputy Assistant Secretary of Defense for Information and Identity Assurance.
1. Open a terminal session 2. Verify the /etc/motd file exists. If not, use the touch command to create the file. 3. Edit the file and enter the appropriate DoD warning banner information. 4. Save the file. 5. Open a new terminal session and verify the banner is displayed.
Open a terminal session and use the following command to view the values. grep Defaults /etc/sudoers Ensure the following items exist: "Defaults tty_tickets" and "Defaults timestamp_timeout=0" If the values are not present, this is a finding.
Open a terminal session and enter the following commands to set the values in the /etc/sudoers file. VISUAL=pico visudo Enter the following two lines in the file. Defaults tty_tickets Defaults timestamp_timeout=0 Save and exit the file.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click the Connection tab and verify "Encrypt using SSL" is selected. If "Encrypt using SSL" is not selected, this is a finding.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click the Connection tab and select "Encrypt using SSL".
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click the Security tab and verify the "Use authentication when connecting" is checked. If option is not checked, this is a finding.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click on Security tab and select "Use authentication when connecting".
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Services tab. Double Click on Active Directory. Click on Show Advanced Options. Click on Administrative tab and ensure "Allow administration by" is not selected. If "Allow administration by" is selected, this is a finding.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Services tab. Double Click on Active Directory. Click on Show Advanced Options. Click on Administrative tab and deselect "Allow administration by" option.
Open a terminal session and enter the following command. ls -ld <users home directory> If permissions are not set to 700, this is a finding.
Open a terminal session and enter the following command. sudo chmod 700 <user’s home directory>
Open a terminal session and run the following command. sudo launchctl list Verify "com.apple.auditd" appears. If the file does not appear, this is a finding.
Open a terminal session and run the following command. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist
Open a terminal session and enter the following command view the audit flags. more /etc/security/audit_control file. Review the entries and ensure the line includes the following: flags: lo,ad,-all,-fr,fd,fm,^-fa,^-fc,^-cl. If the file does not contain the appropriate flags, this is a finding.
Open a terminal session and edit the /etc/security/audit_control file. Find the line beginning with "flags". Replace that line with the following: flags:lo,ad,-all,-fr,fd,fm,^-fa,^-fc,^-cl. Save the file.
Open a terminal session and enter the following command. more /etc/newsyslog.conf If the count values are not set to "14", this is a finding.
Open a terminal session and edit the following file and set the count value(s) to "14". /etc/newsyslog.conf
Open a terminal session and enter the following command. more /etc/syslog.conf Ensure the name or IP address of the site's log server is listed as "your.log.server". If the name or IP address of the log server is not listed, this is a finding.
Open a terminal session and enter the following command. sudo pico /etc/syslog.conf Add the following line to the top of the file, replacing "your.log.server" with the name or IP address of the log server, and keeping all other lines intact. *.* @your.log.server Exit, saving changes. Reboot the system.
Verify an approved antivirus tool is installed on the system.
Install an approved antivirus tool on the system.
Open a terminal session and enter the following command. more /etc/sshd_config Ensure the value "PermitRootLogin" is set to "No". If the value "PermitRootLogin" is not set to "No", this is a finding. NOTE: If the line starts with a # sign this is a comment and the command to disable root login would be invalid regardless of the value, this is a finding.
Open a terminal session and enter the following command. sudo pico /etc/sshd_config Edit the value "PermitRootLogin" and set it to "No". Save the file.
Open a terminal session and enter the following command. more /etc/sshd_config Ensure the value "LoginGraceTime" is set to 30 or less. If the value "LoginGraceTime" is not set to 30 or less, this is a finding. NOTE: If the value is set to "0", this is a finding.
Open a terminal session and enter the following command. sudo pico /etc/sshd_config Edit the value "LoginGraceTime" and set it to "30". Save the file.
1. Open a terminal session and enter the following command. more /etc/sshd_config 2. Ensure the value Protocol is set to "2". If the value Protocol is not set to "2", this is a finding.
1. Open a terminal session and enter the following command. sudo pico /etc/sshd_config 2. Edit the value "Protocol" and set it to "2". 3. Save the file.
Open a terminal session and enter the command. more /etc/sshd_config If the value of PermitEmptyPasswords is set to Yes, this is a finding. If the PermitEmptyPasswords option is not set, this is not a finding.
Open a terminal session and edit the following file. /etc/sshd_config Set the value of PermitEmptyPasswords to No.
Open a terminal session and navigate to the /System/Library/PreferencePanes folder. Ensure the following file does NOT exist. MobileMe.prefPane If this file exists, this is a finding.
Open a terminal session and enter the following command to remove the file. sudo rm -R /System/Library/PreferencePanes/MobileMe.prefPane
Open a terminal session and enter the following command. defaults read com.apple.SoftwareUpdate CatalogURL The value returned is the current Software Update Server. Verify it is an approved SUS. If no value is returned, the system is using a default Apple Update Server and this is a finding. NOTE: If the system is not using an authorized DoD SUS server, it should point to a null address.
Open a terminal session and enter the following command. defaults write com.apple.SoftwareUpdate CatalogURL 'new_SUS_URL' (Where 'new_SUS_URL' is the URL or the address of the appropriate government SUS to be used.)
Open a terminal session and enter the following command. more /etc/authorization Ensure the "system.login.screensaver" key includes the value "authenticate-session-owner". If not, this is a finding.
Open a terminal session and edit the following file. /etc/authorization Change "authenticate-session-owner-or-admin " to "authenticate-session-owner" in the "system.login.screensaver" key. Save the file.
Open a terminal session and enter the following command. ls -la /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent Verify the file permissions are set to 755 or more restrictive. If not, this is a finding.
Open a terminal session and enter the following command. chmod 755 /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent
Open a terminal session and enter the following command. ls -ld /usr/bin/ipcs Ensure the file permissions are set to 511. If the permission is not the same or more restrictive, this is a finding.
Open a terminal session and enter the following command. chmod 511 /usr/bin/ipcs
Open a terminal session and enter the following command. ls -ld /bin/rcp Verify the file permissions are set to 555 or more restrictive. If not, this is a finding.
Open a terminal session and enter the following command. chmod 555 /bin/rcp
Open a terminal session and enter the following command. ls -ld /usr/bin/rlogin Verify the file permissions are set to 555 or more restrictive. If not, this is a finding.
Open a terminal session and enter the following command. chmod 555 /usr/bin/rlogin
Open a terminal session and enter the following command. ls -ld /usr/bin/rsh Verify the file permissions are set to 555 or more restrictive. If not, this is a finding.
Open a terminal session and enter the following command. chmod 555 /usr/bin/rsh
Open a terminal session and enter the following command. ls -ld /usr/lib/sa/sadc Verify the file permissions are set to 555 or more restrictive. If not, this is a finding.
Open a terminal session and enter the following command. chmod 555 /usr/lib/sa/sadc
1. Open System Preferences->Date&Time Panel. 2. Ensure the correct date and time is set. If the date and time are not correct, this is a finding.
1. Open System Preferences->Date&Time Panel. 2. Set the correct date and time.
1. Open System Preferences->Date & Time Panel. 2. Ensure "Set date & time automatically" is selected. 3. In the box for the time server, ensure the URL is entered along with either the address of a valid federal government NTP server or address of a local domain controller.
1. Open System Preferences> Date & Time Panel. 2. Select "Set date & time automatically". 3. In the box for the time server, type either the URL or IP address of a valid federal government NTP server or local domain controller.
Open a terminal session and enter the following command. softwareupdate --schedule Verify "Automatic check" is off. If the option is not off, this is a finding.
Open a terminal session and enter the following command to disable the auto update feature. softwareupdate --schedule off
1. Open System Preferences->Accounts Panel. 2. Click on Guest Account. 3. Ensure "Allow guests to login to this computer" option is unchecked. If the option is checked, this is a finding.
1. Open System Preferences->Accounts Panel. 2. Click on Guest Account. 3. Deselect "Allow guests to login to this computer".
1. Open System Preferences->Accounts Panel. 2. Click on Guest Account. 3. Ensure "Allow Guests to connect to shared folders" option is unchecked. If the option is checked, this is a finding.
1. Open System Preferences->Accounts Panel. 2. Click on Guest Account. 3. Deselect "Allow Guests to connect to shared folders".
1. Open System Preferences->Accounts Panel. 2. Select Login Options. 3. Ensure "Display login window as:" is set to "Name & password". If the option is not set to "Name & Password", this is a finding.
1. Open System Preferences->Accounts Panel. 2. Select Login Options. 3. Set "Display login window as:" to 'Name & password'.
1. Open System Preferences->Accounts Panel. 2. Select Login Options. 3. Ensure the "Show input menu in login window" is not checked. If the option is checked, this is a finding.
1. Open System Preferences->Accounts Panel. 2. Select Login Options. 3. Deselect "Show input menu in login window" to disable this option.
1. Open System Preferences->Accounts Panel. 2. Select Login Options. 3. Ensure the "Show password hints" is not checked. If the option is checked, this is a finding.
1. Open System Preferences->Accounts Panel. 2. Select Login Options. 3. Deselect "Show password hints" to disable this option.
Open System Preferences->Accounts Panel. Select Login Options. Ensure the "Show fast user switching menu as" is not checked. If the option is checked, this is a finding.
Open System Preferences->Accounts Panel. Select Login Options. Deselect "Show fast user switching menu as" to disable this option.
1. Open System Preferences->Accounts Panel, for each account. 2. Click 'reset password' (Change Password for current user). 3. Ensure no data exists in the password hints field. 4. Click Cancel. If any accounts have hints data, this is a finding. NOTE: The password hints field may include contact information for the organization's technical support.
1. Open System Preferences -> Accounts Panel, for each account. 2. Click 'reset password' (Change Password for current user). 3. Remove any data in the password hints field. NOTE: The password hints field may include contact information for the organization's technical support.
Open a terminal session and enter the following command. defaults read /Library/Preferences/com.apple.digihub com.apple.digihub.blank.cd.appeared -dict If the action is not set to "1", this is a finding.
Open a terminal session and enter the following command. defaults write /Library/Preferences/com.apple.digihub com.apple.digihub.blank.cd.appeared -dict action 1
Open System Preferences - > CDs and DVDs. Ensure "When you insert a music CD" is set to "Ignore". If the option is not set to "Ignore", this is a finding.
Open System Preferences - > CDs and DVDs. Set "When you insert a music CD" to "Ignore".
Open System Preferences - > CDs and DVDs. Ensure "When you insert a picture CD" is set to "Ignore". If the option is not set to "Ignore", this is a finding.
Open System Preferences - > CDs and DVDs. Set "When you insert a picture CD" to "Ignore".
Open System Preferences - > CDs and DVDs. Ensure "When you insert a video DVD" is set to "Ignore". If the option is not set to "Ignore", this is a finding.
Open System Preferences - > CDs and DVDs. Set "When you insert a video DVD" to "Ignore".
Open System Preferences->Desktop & Screen Saver. Select the screen saver tab. Ensure the "Start screen saver" slider is set to 15 minutes or less. If not, this is a finding.
Open System Preferences->Desktop & Screen Saver. Select the screen saver tab. Set the "Start screen saver" slider to 15 minutes or less.
Open System Preferences->Exposé & Spaces, Exposé pane. Ensure no corners are set to "Disable Screen saver" in the "Active Screen Corners" section for each user account. If any account is set to disable screen savers via corners, this is a finding. NOTE: Do this for each user on the system.
Open System Preferences->Exposé & Spaces, Exposé pane. Remove any corners which are set to "Disable Screen saver" in the "Active Screen Corners" section for each user account.
Open System Preferences -> Bluetooth. Click Advanced. Ensure "Allow Bluetooth devices to wake this computer" is not checked. If the option is checked, this is a finding.
Open System Preferences -> Bluetooth. Click Advanced. Deselect "Allow Bluetooth devices to wake this computer".
Open System Preferences - > Network. From the list of hardware devices, select AirPort. Ensure the "Status" is set to "Off". If the service is not set to off or removed, this is a finding.
Open System Preferences - > Network. From the list of hardware devices, select AirPort. Set this service to "Off" by clicking the gear sign and selecting "Turn service off". Remove service if required by site requirements by clicking the minus sign.
Open System Preferences - > Network. From the list of hardware devices, select Bluetooth. Ensure the "Status" is set to "Inactive". If the service is not inactive or removed, this is a finding.
Open System Preferences - > Network. From the list of hardware devices, select Bluetooth. Set this service to "Inactive" by clicking the gear sign and selecting "Make Service Inactive". Remove service if required by site requirements by clicking the minus sign. (From the "Configure" pop-up menu, choose "Manually".)
Open System Preferences - > Network. From the list of hardware devices, select Firewire. Ensure the "Status" is set to "Inactive". If the service is not set to inactive or removed, this is a finding.
Open System Preferences - > Network. From the list of hardware devices, select Firewire. Set this service to "Inactive" by clicking the gear sign and selecting "Make Service Inactive". Remove service if required by site requirements by clicking the minus sign. (From the "Configure" pop-up menu, choose "Manually".)
Open System Preferences - > Network. Click Advanced. Click the TCP/IP tab. Ensure "Configure IPv6" is set to "Off". If the option is not set to "Off", this is a finding. NOTE: This must be checked on all network interfaces.
Open System Preferences - > Network. Click Advanced. Click the TCP/IP tab and set "Configure IPv6" to "Off", if not actively being used. NOTE: This must be disabled on each network interface.
Open a terminal session and enter the following command. defaults -currentHost read com.apple.screensaver askForPassword -int If the action value is not set to "1", this is a finding.
Open a terminal session and enter the following command. defaults -currentHost write com.apple.screensaver askForPassword -int 1
1. Open System Preferences->Security. 2. Select General tab. 3. Ensure "Disable automatic login" option is checked. If option is not checked, this is a finding.
1. Open System Preferences->Security. 2. Select General tab. 3. Select "Disable automatic login".
1. Open System Preferences->Security. 2. Select General tab. 3. Ensure "Require password to unlock each System Preferences Pane" is checked. If option is not checked, this is a finding.
1. Open System Preferences->Security. 2. Select General tab. 3. Select "Require password to unlock each System Preferences Pane".
1. Open System Preferences->Security. 2. Select General tab. 3. Ensure "Log out after x minutes of inactivity" is not checked. If it is checked, this is a finding.
1. Open System Preferences->Security. 2. Select General tab. 3. Deselect "Log out after x minutes of inactivity".
1. Open System Preferences->Security. 2. Select General tab. 3. Ensure "Use Secure Virtual Memory" is checked. If option is not checked, this is a finding.
1. Open System Preferences->Security. 2. Select General tab. 3. Select "Use Secure Virtual Memory".
1. Open System Preferences->Security. 2. Select General tab. 3. Ensure "Disable remote control infrared receiver" is checked. If the option is not checked, this is a finding.
1. Open System Preferences->Security. 2. Select General tab. 3. Select "Disable remote control infrared receiver".
Open System Preferences->Security. Select Firewall tab. Select Advanced (firewall should be started). Either "Block all incoming connections" should be checked or only essential services and applications should be allowed. If not, this is a finding.
Open System Preferences -> Security. Select Firewall tab. Select the Advanced button. Check "Block all incoming connections" or remove any non-essential services and applications.
Open a terminal session and enter the following command. sudo ipfw print If no line contains "deny icmp from any to me in icmptypes 8" or a more restrictive rule, this is a finding.
Open a terminal session and edit or create /Library/LaunchDaemons/org.freebsd.ipfw.plist and ensure it contains the following. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/ PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.freebsd.ipfw</string> <key>Program</key> <string>/sbin/ipfw</string> <key>ProgramArguments</key> <array> <string>/sbin/ipfw</string> <string>/etc/ipfw.conf</string> </array> <key>RunAtLoad</key> <true /> </dict> </plist> Edit or create /etc/ipfw.conf and ensure it contains the following line (the first number, a line number, may need to be changed if another line already begins with that number). Add 20 deny icmp from any to me in icmptypes 8
Open System Preferences->Sharing. Ensure "DVD or CD Sharing" service does not have the "On" box checked. If the box is checked, this is a finding.
Open System Preferences->Sharing. Uncheck the "On" box for "DVD or CD Sharing" service.
Open System Preferences->Sharing. Ensure "Screen Sharing" service does not have the "On" box checked. If the box is checked, this is a finding.
Open System Preferences->Sharing. Uncheck the "On" box for "Screen Sharing" service.
1. Open System Preferences->Sharing. 2. Ensure the "On" box for "File Sharing" service is not checked. If the box is checked, this is a finding.
1. Open System Preferences->Sharing. 2. Uncheck the "On" box for "File Sharing" service.
1. Open System Preferences->Sharing. 2. Ensure the "On" box for "Printer Sharing" service is not checked. If the box is checked, this is a finding.
1. Open System Preferences->Sharing. 2. Uncheck the "On" box for "Printer Sharing" service.
1. Open System Preferences->Sharing. 2. Ensure the "On'" box for "Web Sharing" service is not checked. If the box is checked, this is a finding.
1. Open System Preferences->Sharing. 2. Uncheck the "On" box for "Web Sharing" service.
1. Open System Preferences->Sharing. 2. Ensure the "On" box for "Remote Login" service is not checked. If the box is checked, this is a finding.
1. Open System Preferences->Sharing. 2. Uncheck the "On" box for "Remote Login" service.
Open System Preferences->Sharing. Ensure the "On" box for "Remote Management" service is not checked. If the box is checked, this is a finding.
Open System Preferences->Sharing. Uncheck the "On" box for "Remote Management" service.
Open System Preferences->Sharing. Ensure the "On" box for "Remote Apple Events" service is not checked. If the box is checked, this is a finding.
Open System Preferences->Sharing. Uncheck the "On" box for "Remote Apple Events" service.
1. Open System Preferences->Sharing. 2. Ensure the "On" box for "Xgrid Sharing" service is not checked. If the box is checked, this is a finding.
1. Open System Preferences->Sharing. 2. Uncheck the "On" box for "Xgrid Sharing" service.
1. Open System Preferences->Sharing. 2. Ensure the "On" box for "Internet Sharing" service is not checked. If the box is checked, this is a finding.
1. Open System Preferences->Sharing. 2. Uncheck the "On" box for "Internet Sharing" service.
1. Open System Preferences->Sharing. 2. Ensure the "On" box for "Bluetooth Sharing" service is not checked. If the box is checked, this is a finding.
1. Open System Preferences->Sharing. 2. Uncheck the "On" box for "Bluetooth Sharing" service.
NOTE: If you are not using the Mac Mail Application, this check does not apply. Choose Mail > Preferences, and then click Accounts. Select an account, and then click Advanced. Ensure "Use SSL" is selected. From the Authentication pop-up menu, ensure an authentication method is selected (e.g., MD5 Challenge-Response, NTLM, Kerberos Version 5 (GSSAPI), or Authenticated POP (APOP)). If not, this is a finding. Click Account Information. From the Outgoing Mail Server (SMTP) pop-up menu, select Edit Server List. From the server list, select the outgoing mail server, and then click Advanced. Ensure Secure Socket Layer (SSL) is selected. From the Authentication pop-up menu, ensure an authentication method is selected (e.g., MD5 Challenge-Response, NTLM, Kerberos Version 5 (GSSAPI), or Authenticated POP (APOP)). If not, this is a finding.
Choose Mail > Preferences, Click Accounts. Select an account, Click Advanced. Select "Use SSL". From the Authentication pop-up menu, select authentication method (e.g., MD5 Challenge-Response, NTLM, Kerberos Version 5 (GSSAPI), or Authenticated POP (APOP)). Click Account Information. From the Outgoing Mail Server (SMTP) pop-up menu, select Edit Server List. From the server list, select your outgoing mail server and then click Advanced. Select "Secure Socket Layer (SSL)". From the Authentication pop-up menu, select authentication method (e.g., MD5 Challenge-Response, NTLM, Kerberos Version 5 (GSSAPI), or Authenticated POP (APOP)). Close the preferences window, and then click "Save" in the message that appears.
Open iTunes. Choose iTunes -> Preferences. Choose the "Parental" tab. In the "Disable:" section, ensure the following items are checked. "Podcasts" "Radio streaming" "iTunes Store" "Allow Access to iTunesU" "Ping" (if it exists) "Shared Libraries" If not, this is a finding.
Open Finder. Select Applications. Double click the iTunes application. On the top menu bar click iTunes and from the drop down menu select Preferences. Click on the Parental icon. Check the following items to disable. "Podcasts" "Radio streaming" "iTunes Store" "Allow Access to iTunesU" "Ping" (if it exists) "Shared Libraries" NOTE: This must be performed for each user.
1. Open Finder-> Preferences -> Advanced. 2. Ensure "Empty Trash Securely" is checked. If the option is not checked, this is a finding. This must be done for each user on the system.
1. Open Finder-> Preferences -> Advanced. 2. Select "Empty Trash Securely". This must be done for each user on the system.
1. Open Finder > Preferences > Sidebar. 2. Ensure the iDisk icon is not selected. If the option is selected, this is a finding. This must be done for each user on the system.
1. Open Finder -> Preferences -> Sidebar. 2. De-select the iDisk icon. This must be done for each user on the system.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Lock and enter the password to unlock the options. Click the Edit menu (Directory Utility bar on top) and verify that "Enable Root User" appears. If the "Disable Root User" option is visible, this is a finding.
Open Finder Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Lock and enter the password to unlock the options. Click the Edit menu (Directory Utility bar on top). Click Disable Root User.
Interview the SA to determine if equipment is located in a controlled access area.
Relocate equipment to a controlled access area.
Interview the SA to determine if any shared accounts exist. Any shared account must be documented with the IAO. Documentation should include the reason for the account, who has access to this account, and how the risk of using a shared account (which provides no individual identification and accountability) is mitigated. NOTE: As an example, a shared account may be permitted for a help desk or a site security personnel machine, if the machine is stand-alone and has no access to the network.
Remove any shared accounts not meeting the exception requirements listed.
Open a terminal session and enter one of the following commands. sudo softwareupdate --list OR sudo softwareupdate --list --all Review the results and verify the system is at the current release level. If not, this is a finding.
Install the current OS updates and patches.
Interview the SA to determine if system recovery backup procedures are in place complying with DoD requirements. Any of the following would be a finding: • The site does not maintain emergency system recovery data. • The emergency system recovery data is not protected from destruction and stored in a locked storage container. • The emergency system recovery data has not been updated following the last system modification.
Implement data backup procedures complying with DoD requirements.
Interview the SA to determine if an emergency administrator account exists and is stored with its password in a secure location.
Create and maintain an emergency administrator account for emergency situations.
Interview the SA or IAM to determine if the site has a policy requiring the default and backup administrator passwords to be changed at least annually or when any member of the administrative team leaves the organization.
Define a policy for required password changes for the default and backup administrator account.
The site should have a local policy ensuring passwords for application/service accounts are at least 15 characters in length and meet complexity requirements for all passwords. Application/service account passwords manually generated and entered by a system administrator must be changed at least annually or whenever a system administrator with knowledge of the password leaves the organization. Interview the system administrators on their policy for application/service accounts. If it does not meet the above requirements, this is a finding.
Create application/service account passwords at least 15 characters in length and meet complexity requirements. Change of application/service account passwords are manually generated and entered by a system administrator at least annually or whenever an administrator with knowledge of the password leaves the organization.
Open System Preferences. Click the Security Icon. Click the General Tab. Ensure "Activate screen saver when login token is removed" option is selected. If the option is not selected, this is a finding. NOTE: If you are not using a smart card application, this check does not apply. NOTE: This configuration option is still available if a smart card application is not installed.
Open System Preferences. Click the Security Icon. Click the General Tab. Select "Activate screen saver when login token is removed".
Open a terminal session and enter the following command to view the permissions on the audit control files. ls -lL /etc/security If any audit control file has a permission less restricted than 555, this is a finding.
Open a terminal session and enter the following command to set the file permissions. chmod 555 /etc/security/ <audit control file>
To securely configure Spotlight preferences: Open System Preferences. Click the Spotlight Icon. In the Search Results pane, verify the categories not wanted as searchable by Spotlight are unchecked. Click the Privacy pane. Verify the correct folders and disks are in the Privacy pane; these are not searchable by Spotlight. If searchable categories or folders are found that should not be searchable, this is a finding.
To securely configure Spotlight preferences: Open System Preferences. Click the Spotlight Icon. In the Search Results pane, deselect categories not wanted searchable by Spotlight. Click the Privacy pane. Click the Add button or drag a folder or disk into the Privacy pane. Folders and disks in the Privacy pane are now not searchable by Spotlight.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click on Security tab and verify the "Disable clear text passwords" is checked. If the value is not checked, this is a finding.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click the Security tab and select "Disable clear text passwords".
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click on Security tab and verify the "Digitally sign all packets (requires Kerberos) " is checked. If the value is not checked, this is a finding.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click on Security tab and select "Digitally sign all packets (requires Kerberos)".
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click on Security tab and verify the "Encrypt all packets (requires SSL or Kerberos) " is checked. If the value is not checked, this is a finding.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click on Security tab and select "Encrypt all packets (requires SSL or Kerberos)".
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click on Security tab and verify the "Block man-in-the-middle attacks (requires Kerberos)" is checked. If the value is not checked, this is a finding.
Open Finder. Click the Hard Drive icon. Double Click System. Double Click Library. Double Click CoreServices. Double Click Directory Utility. Click the Show Advanced Options button. Click Services tab. Click the Lock and enter the password to unlock the options (if needed). Click the LDAPv3 service. Click the Pencil icon. Highlight the Server Name/Configuration Name. Click Edit. Click the Security tab and select "Block man-in-the-middle attacks (requires Kerberos)".
Open a terminal session and enter the following command. defaults read /Library/Preferences/com.apple.digihub com.apple.digihub.blank.dvd.appeared -dict If the action value is not set to "1", this is a finding.
Open a terminal session and enter the following command. defaults write /Library/Preferences/com.apple.digihub com.apple.digihub.blank.dvd.appeared -dict action 1
Open a terminal session and enter the following command. sudo ipfw print. If no line contains "deny udp from any to me dst-port 5353" or a more restrictive rule, this is a finding.
Open a terminal session and edit or create /Library/LaunchDaemons/org.freebsd.ipfw.plist and ensure it contains the following: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/ PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.freebsd.ipfw</string> <key>Program</key> <string>/sbin/ipfw</string> <key>ProgramArguments</key> <array> <string>/sbin/ipfw</string> <string>/etc/ipfw.conf</string> </array> <key>RunAtLoad</key> <true /> </dict> </plist> Edit or create /etc/ipfw.conf and ensure it contains the following line (the first number, a line number, may need to be changed if another line already begins with that number): Add 10 deny udp from any to me dst-port 5353
Open a terminal session and run the following command. pwpolicy -n -getglobalpolicy | tr " " "\n" | grep requiresAlpha If the value of requiresAlpha is not set to 1, this is a finding. NOTE: If the command returns a response of: password server is not configured, the system is not managed. Add the path /Local/Default to the above command, an example would be: pwpolicy -n /Local/Default -getglobalpolicy | tr " " "\n" | grep requiresAlpha
Open a terminal session and run the following command. sudo pwpolicy -n -setglobalpolicy "requiresAlpha=1" For non managed systems the path /Local/Default would need to be added to the command, an example would be: sudo pwpolicy -n /Local/Default -setglobalpolicy "requiresAlpha=1"
Open a terminal session and run the following command. pwpolicy -n -getglobalpolicy | tr " " "\n" | grep requiresSymbol If the value of requireSymbol is not set to 1, this is a finding. NOTE: If the command returns a response of password server is not configured, the system is not managed. Add the path /Local/Default to the above commands, an example would be: pwpolicy -n /Local/Default -getglobalpolicy | tr " " "\n" | grep requiresSymbol
Open a terminal session and run the following command. sudo pwpolicy -n -setglobalpolicy "requiresSymbol=1" For non managed systems the path /Local/Default would need to be added to the command, an example would be: sudo pwpolicy -n /Local/Default -setglobalpolicy "requiresSymbol=1"