Guide to the Secure Configuration of MSVSphere 9

with profile Session-monitor profile for MSVSphere 9
This profile contains the rule needed to monitor user sessions and lock the screen when the status changes
This guide presents a catalog of security-relevant configuration settings for MSVSphere 9. It is a rendering of content structured in the eXtensible Configuration Checklist Description Format (XCCDF) in order to support security automation. The SCAP content is is available in the scap-security-guide package which is developed at https://www.open-scap.org/security-policies/scap-security-guide.

Providing system administrators with such guidance informs them how to securely configure systems under their control in a variety of network roles. Policy makers and baseline creators can use this catalog of settings, with its associated references to higher-level security control catalogs, in order to assist them in security baseline creation. This guide is a catalog, not a checklist, and satisfaction of every item is not likely to be possible or sensible in many operational scenarios. However, the XCCDF format enables granular selection and adjustment of settings, and their association with OVAL and OCIL content provides an automated checking capability. Transformations of this document, and its associated automated checking content, are capable of providing baselines that meet a diverse set of policy objectives. Some example XCCDF Profiles, which are selections of items that form checklists and can be used as baselines, are available with this guide. They can be processed, in an automated fashion, with tools that support the Security Content Automation Protocol (SCAP). The DISA STIG, which provides required settings for US Department of Defense systems, is one example of a baseline created from this guidance.
Do not attempt to implement any of the settings in this guide without first testing them in a non-operational environment. The creators of this guidance assume no responsibility whatsoever for its use by other parties, and makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic.

Profile Information

Profile TitleSession-monitor profile for MSVSphere 9
Profile IDxccdf_org.ssgproject.content_profile_session-monitor

CPE Platforms

  • cpe:/o:ncsd:msvsphere:9

Revision History

Current version: 0.1.73

  • draft (as of 2024-09-17)

Table of Contents

  1. System Settings
    1. Account and Access Control
  2. Services
    1. Base Services

Checklist

Group   Guide to the Secure Configuration of MSVSphere 9   Group contains 6 groups and 3 rules
Group   System Settings   Group contains 3 groups and 1 rule
[ref]   Contains rules that check correct system settings.
Group   Account and Access Control   Group contains 2 groups and 1 rule
[ref]   In traditional Unix security, if an attacker gains shell access to a certain login account, they can perform any action or access any file to which that account has access. Therefore, making it more difficult for unauthorized people to gain shell access to accounts, particularly to privileged accounts, is a necessary part of securing a system. This section introduces mechanisms for restricting access to accounts under MSVSphere 9.
Group   Protect Accounts by Restricting Password-Based Login   Group contains 1 group and 1 rule
[ref]   Conventionally, Unix shell accounts are accessed by providing a username and password to a login program, which tests these values for correctness using the /etc/passwd and /etc/shadow files. Password-based login is vulnerable to guessing of weak passwords, and to sniffing and man-in-the-middle attacks against passwords entered over a network or at an insecure console. Therefore, mechanisms for accessing accounts by entering usernames and passwords should be restricted to those which are operationally necessary.
Group   Set Password Expiration Parameters   Group contains 1 rule
[ref]   The file /etc/login.defs controls several password-related settings. Programs such as passwd, su, and login consult /etc/login.defs to determine behavior with regard to password aging, expiration warnings, and length. See the man page login.defs(5) for more information.

Users should be forced to change their passwords, in order to decrease the utility of compromised passwords. However, the need to change passwords often should be balanced against the risk that users will reuse or write down passwords if forced to change them too often. Forcing password changes every 90-360 days, depending on the environment, is recommended. Set the appropriate value as PASS_MAX_DAYS and apply it to existing accounts with the -M flag.

The PASS_MIN_DAYS (-m) setting prevents password changes for 7 days after the first change, to discourage password cycling. If you use this setting, train users to contact an administrator for an emergency password change in case a new password becomes compromised. The PASS_WARN_AGE (-W) setting gives users 7 days of warnings at login time that their passwords are about to expire.

For example, for each existing human user USER, expiration parameters could be adjusted to a 180 day maximum password age, 7 day minimum password age, and 7 day warning period with the following command:
$ sudo chage -M 180 -m 7 -W 7 USER
Group   Services   Group contains 1 group and 2 rules
[ref]   The best protection against vulnerable software is running less software. This section describes how to review the software which MSVSphere 9 installs on a system and disable software which is not needed. It then enumerates the software packages installed on a default MSVSphere 9 system and provides guidance about which ones can be safely disabled.

MSVSphere 9 provides a convenient minimal install option that essentially installs the bare necessities for a functional system. When building MSVSphere 9 systems, it is highly recommended to select the minimal packages and then build up the system from there.
Group   Base Services   Group contains 2 rules
[ref]   This section addresses the base services that are installed on a MSVSphere 9 default installation which are not covered in other sections. Some of these services listen on the network and should be treated with particular discretion. Other services are local system utilities that may or may not be extraneous. In general, system services should be disabled if not required.

Rule   Install the session-monitor package   [ref]

Monitor user sessions and lock screen on state change. Useful if screen was changed. The session-monitor package can be installed with the following command:
$ sudo dnf install session-monitor
Rationale:
Monitor user sessions and lock screen on state change
Severity: 
low
Rule ID:xccdf_org.ssgproject.content_rule_package_session-monitor_installed
Identifiers and References

References:  1, 11, 12, 13, 14, 15, 16, 2, 3, 5, 6, 7, 8, 9, APO10.01, APO10.03, APO10.04, APO10.05, APO11.04, BAI03.05, BAI10.01, BAI10.02, BAI10.03, BAI10.05, DSS01.03, DSS03.05, DSS05.02, DSS05.04, DSS05.05, DSS05.07, DSS06.06, MEA01.01, MEA01.02, MEA01.03, MEA01.04, MEA01.05, MEA02.01, 4.3.2.6.7, 4.3.3.3.9, 4.3.3.5.1, 4.3.3.5.2, 4.3.3.5.3, 4.3.3.5.4, 4.3.3.5.5, 4.3.3.5.6, 4.3.3.5.7, 4.3.3.5.8, 4.3.3.6.1, 4.3.3.6.2, 4.3.3.6.3, 4.3.3.6.4, 4.3.3.6.5, 4.3.3.6.6, 4.3.3.6.7, 4.3.3.6.8, 4.3.3.6.9, 4.3.3.7.1, 4.3.3.7.2, 4.3.3.7.3, 4.3.3.7.4, 4.3.4.3.2, 4.3.4.3.3, 4.3.4.4.7, 4.4.2.1, 4.4.2.2, 4.4.2.4, SR 1.1, SR 1.10, SR 1.11, SR 1.12, SR 1.13, SR 1.2, SR 1.3, SR 1.4, SR 1.5, SR 1.6, SR 1.7, SR 1.8, SR 1.9, SR 2.1, SR 2.10, SR 2.11, SR 2.12, SR 2.2, SR 2.3, SR 2.4, SR 2.5, SR 2.6, SR 2.7, SR 2.8, SR 2.9, SR 6.1, SR 6.2, SR 7.6, A.12.1.2, A.12.4.1, A.12.4.2, A.12.4.3, A.12.4.4, A.12.5.1, A.12.6.2, A.12.7.1, A.14.2.2, A.14.2.3, A.14.2.4, A.14.2.7, A.15.2.1, A.15.2.2, A.9.1.2, AU-12(a), CM-6(a), DE.CM-1, DE.CM-3, DE.CM-7, ID.SC-4, PR.IP-1, PR.PT-1, PR.PT-3


Complexity:low
Disruption:low
Strategy:enable
- name: Ensure session-monitor is installed
  package:
    name: session-monitor
    state: present
  tags:
  - NIST-800-53-AU-12(a)
  - NIST-800-53-CM-6(a)
  - enable_strategy
  - low_complexity
  - low_disruption
  - low_severity
  - no_reboot_needed
  - package_session-monitor_installed

Complexity:low
Disruption:low
Strategy:enable
include install_session-monitor

class install_session-monitor {
  package { 'session-monitor':
    ensure => 'installed',
  }
}


[[packages]]
name = "session-monitor"
version = "*"

Rule   Enable Process Accounting (session-monitor)   [ref]

Monitor user sessions and lock screen on state change. Useful if screen was changed. The session-monitor package can be installed with the following command:
$ sudo dnf install session-monitor
Rationale:
Monitor user sessions and lock screen on state change
Severity: 
low
Rule ID:xccdf_org.ssgproject.content_rule_service_session-monitor_enabled
Identifiers and References

References:  1, 11, 12, 13, 14, 15, 16, 2, 3, 5, 6, 7, 8, 9, APO10.01, APO10.03, APO10.04, APO10.05, APO11.04, BAI03.05, BAI10.01, BAI10.02, BAI10.03, BAI10.05, DSS01.03, DSS03.05, DSS05.02, DSS05.04, DSS05.05, DSS05.07, DSS06.06, MEA01.01, MEA01.02, MEA01.03, MEA01.04, MEA01.05, MEA02.01, 4.3.2.6.7, 4.3.3.3.9, 4.3.3.5.1, 4.3.3.5.2, 4.3.3.5.3, 4.3.3.5.4, 4.3.3.5.5, 4.3.3.5.6, 4.3.3.5.7, 4.3.3.5.8, 4.3.3.6.1, 4.3.3.6.2, 4.3.3.6.3, 4.3.3.6.4, 4.3.3.6.5, 4.3.3.6.6, 4.3.3.6.7, 4.3.3.6.8, 4.3.3.6.9, 4.3.3.7.1, 4.3.3.7.2, 4.3.3.7.3, 4.3.3.7.4, 4.3.4.3.2, 4.3.4.3.3, 4.3.4.4.7, 4.4.2.1, 4.4.2.2, 4.4.2.4, SR 1.1, SR 1.10, SR 1.11, SR 1.12, SR 1.13, SR 1.2, SR 1.3, SR 1.4, SR 1.5, SR 1.6, SR 1.7, SR 1.8, SR 1.9, SR 2.1, SR 2.10, SR 2.11, SR 2.12, SR 2.2, SR 2.3, SR 2.4, SR 2.5, SR 2.6, SR 2.7, SR 2.8, SR 2.9, SR 6.1, SR 6.2, SR 7.6, A.12.1.2, A.12.4.1, A.12.4.2, A.12.4.3, A.12.4.4, A.12.5.1, A.12.6.2, A.12.7.1, A.14.2.2, A.14.2.3, A.14.2.4, A.14.2.7, A.15.2.1, A.15.2.2, A.9.1.2, AU-12(a), CM-6(a), DE.CM-1, DE.CM-3, DE.CM-7, ID.SC-4, PR.IP-1, PR.PT-1, PR.PT-3


Complexity:low
Disruption:low
Strategy:enable
- name: Enable service session-monitor
  block:

  - name: Gather the package facts
    package_facts:
      manager: auto

  - name: Enable service session-monitor
    systemd:
      name: session-monitor
      enabled: 'yes'
      state: started
      masked: 'no'
    when:
    - '"session-monitor" in ansible_facts.packages'
  when: ansible_virtualization_type not in ["docker", "lxc", "openvz", "podman", "container"]
  tags:
  - NIST-800-53-AU-12(a)
  - NIST-800-53-CM-6(a)
  - enable_strategy
  - low_complexity
  - low_disruption
  - low_severity
  - no_reboot_needed
  - service_session-monitor_enabled

Complexity:low
Disruption:low
Strategy:enable
include enable_session-monitor

class enable_session-monitor {
  service {'session-monitor':
    enable => true,
    ensure => 'running',
  }
}


[customizations.services]
enabled = ["session-monitor"]
Red Hat and Red Hat Enterprise Linux are either registered trademarks or trademarks of Red Hat, Inc. in the United States and other countries. All other names are registered trademarks or trademarks of their respective companies.