CIS_WIN10_DISCREPANCIES_TITLE.html

Report generated on 01-Jul-2022 at 10:31:10 by pytest-html v3.1.1

Environment

Packages {"pluggy": "0.13.1", "py": "1.10.0", "pytest": "7.1.2"}
Platform Linux-5.17.5-76051705-generic-x86_64-with-glibc2.35
Plugins {"html": "3.1.1", "metadata": "2.0.1", "testinfra": "5.0.0"}
Python 3.10.4

Summary

394 tests ran in 2.47 seconds.

320 passed, 0 skipped, 74 failed, 0 errors, 0 expected failures, 0 unexpected passes

Results

Result Test Duration Links
Failed test_cis_win10.py::test_cis_win10[title-check6] 0.00
check = {'compliance': [{'cis': ['1.2.1']}, {'cis_csc': ['4.10']}], 'condition': 'all', 'description': 'This policy setting de...ured to 0, locked out accounts will remain locked out until an administrator manually unlocks them.', 'id': 15006, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15006
E assert "Ensure 'Account lockout duration' is set to '15 or more minute(s)'" == "Ensure 'Account lockout duration' is set to '15 or more minute(s)"
E - Ensure 'Account lockout duration' is set to '15 or more minute(s)
E + Ensure 'Account lockout duration' is set to '15 or more minute(s)'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
A denial of service (DoS) condition can be created if an attacker abuses the Account lockout threshold and repeatedly attempts to log on with a specific account. Once you configure the Account lockout threshold setting, the account will be locked out after the specified number of failed attempts. If you configure the Account lockout duration setting to 0, then the account will remain locked out until an administrator unlocks it manually.
Failed test_cis_win10.py::test_cis_win10[title-check17] 0.00
check = {'compliance': [{'cis': ['2.3.4.1']}, {'pci_dss': ['7.2']}, {'tsc': ['CC6.4']}], 'condition': 'any', 'description': 'T...trator privileges. The recommended state for this setting is: Administrators and Interactive Users.', 'id': 15017, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15017
E assert ("Ensure 'Devices: Allowed to format and eject removable media' is set to "\n "'Administrators and Interactive Users'") == ("Ensure 'Devices: Allowed to format and eject removable media' is set to "\n "'Administrators' and Interactive Users'")
E - Ensure 'Devices: Allowed to format and eject removable media' is set to 'Administrators' and Interactive Users'
E ? -
E + Ensure 'Devices: Allowed to format and eject removable media' is set to 'Administrators and Interactive Users'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Users may be able to move data on removable disks to a different computer where they have administrative privileges. The user could then take ownership of any file, grant themselves full control, and view or modify any file. The fact that most removable storage devices will eject media by pressing a mechanical button diminishes the advantage of this policy setting.
Failed test_cis_win10.py::test_cis_win10[title-check42] 0.00
check = {'compliance': [{'cis': ['2.3.10.1']}], 'condition': 'all', 'description': 'This policy setting determines whether an ... identifier (SID) attributes for another user, or use a SID to obtain its corresponding user name.', 'id': 15042, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15042
E assert ("Ensure 'Network access: Allow anonymous SID/Name translation' is set to "\n "'Disabled'") == ("Ensure 'Network access: Allow anonymous SID/Name translation' is set to "\n "'Disabled'")
E - Ensure 'Network access: Allow anonymous SID/Name translation' is set to 'Disabled'
E ? -
E + Ensure 'Network access: Allow anonymous SID/Name translation' is set to 'Disabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
If this policy setting is enabled, a user with local access could use the well-known Administrator's SID to learn the real name of the built-in Administrator account, even if it has been renamed. That person could then use the account name to initiate a password guessing attack.
Failed test_cis_win10.py::test_cis_win10[title-check59] 0.00
check = {'compliance': [{'cis': ['2.3.11.6']}, {'cis_csc': ['5.6']}, {'pci_dss': ['7.1']}, {'tsc': ['CC6.4']}], 'condition': '...recommendation is unscored because there is not a documented registry value that corresponds to it.', 'id': 15059, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15059
E assert ("Ensure 'Network security: Force logoff when logon hours expire' is set to "\n "'Enabled' (Manual)") == ("Ensure 'Network security: Force logoff when logon hours expire' is set to "\n "'Enabled'")
E - Ensure 'Network security: Force logoff when logon hours expire' is set to 'Enabled'
E + Ensure 'Network security: Force logoff when logon hours expire' is set to 'Enabled' (Manual)
E ? +++++++++

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
If this setting is disabled, a user could remain connected to the computer outside of their allotted logon hours.
Failed test_cis_win10.py::test_cis_win10[title-check65] 0.00
check = {'compliance': [{'cis': ['2.3.15.1']}, {'pci_dss': ['2.2.4']}, {'nist_800_53': ['CM.1']}, {'tsc': ['CC5.2']}], 'condit...ecause only one of the files will be available. The recommended state for this setting is: Enabled.', 'id': 15065, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15065
E assert ("Ensure 'System objects: Require case insensitivity for non- Windows "\n "subsystems' is set to 'Enabled'") == ("Ensure 'System objects: Require case insensitivity for non-Windows "\n "subsystems' is set to 'Enabled'")
E - Ensure 'System objects: Require case insensitivity for non-Windows subsystems' is set to 'Enabled'
E + Ensure 'System objects: Require case insensitivity for non- Windows subsystems' is set to 'Enabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Because Windows is case-insensitive but the POSIX subsystem will support case sensitivity, failure to enable this policy setting would make it possible for a user of that subsystem to create a file with the same name as another file but with a different mix of upper and lower case letters. Such a situation could potentially confuse users when they try to access such files from normal Win32 tools because only one of the files will be available.
Failed test_cis_win10.py::test_cis_win10[title-check75] 0.00
check = {'compliance': [{'cis': ['5.1']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'Service supporting the au...teway role of the Bluetooth Handsfree Profile. The recommended state for this setting is: Disabled.', 'id': 15075, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15075
E assert "Ensure 'Bluetooth Audio Gateway Service (BTAGService)' is set to 'Disabled'" == "Ensure 'Bluetooth Audio Gateway Service (BTAGService)' is set to 'Disabled'"
E - Ensure 'Bluetooth Audio Gateway Service (BTAGService)' is set to 'Disabled'
E ? -
E + Ensure 'Bluetooth Audio Gateway Service (BTAGService)' is set to 'Disabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Bluetooth technology has inherent security risks - especially prior to the v2.1 standard. Wireless Bluetooth traffic is not well encrypted (if at all), so in a high-security environment, it should not be permitted, in spite of the added inconvenience of not being able to use Bluetooth devices.
Failed test_cis_win10.py::test_cis_win10[title-check79] 0.00
check = {'compliance': [{'cis': ['5.6']}, {'cis_csc': ['4.8']}], 'condition': 'any', 'description': 'Enables the server to adm...and ensure the security controls and mitigations are kept up to date, to reduce risk of compromise.', 'id': 15079, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15079
E assert "Ensure 'IIS Admin Service (IISADMIN)' is set to 'Disabled' or 'Not Installed'" == "Ensure 'IIS Admin Service (IISADMIN)' is set to 'Disabled' or 'Not Installed'"
E - Ensure 'IIS Admin Service (IISADMIN)' is set to 'Disabled' or 'Not Installed'
E ? -
E + Ensure 'IIS Admin Service (IISADMIN)' is set to 'Disabled' or 'Not Installed'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Hosting a website from a workstation is an increased security risk, as the attack surface of that workstation is then greatly increased. If proper security mitigations are not followed, the chance of successful attack increases significantly. Note: This security concern applies to any web server application installed on a workstation, not just IIS.
Failed test_cis_win10.py::test_cis_win10[title-check81] 0.00
check = {'compliance': [{'cis': ['5.8']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'Provides network access t...n services for a home or small office network. The recommended state for this setting is: Disabled.', 'id': 15081, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15081
E assert "Ensure 'Internet Connection Sharing (ICS) (SharedAccess)' is set to 'Disabled'" == ("Ensure 'Internet Connection Sharing (ICS) (SharedAccess)' is set to "\n "'Disabled'")
E - Ensure 'Internet Connection Sharing (ICS) (SharedAccess)' is set to 'Disabled'
E ? -
E + Ensure 'Internet Connection Sharing (ICS) (SharedAccess)' is set to 'Disabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Internet Connection Sharing (ICS) is a feature that allows someone to share their Internet connection with other machines on the network - it was designed for home or small office environments where only one machine has Internet access - it effectively turns that machine into an Internet router. This feature causes the bridging of networks and likely bypassing other, more secure pathways. It should not be used on any enterprise-managed system.
Failed test_cis_win10.py::test_cis_win10[title-check83] 0.00
check = {'compliance': [{'cis': ['5.10']}, {'cis_csc': ['4.8']}], 'condition': 'any', 'description': 'The LXSS Manager service...th Windows, but is installed by enabling an optional Windows feature (Windows Subsystem for Linux).', 'id': 15083, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15083
E assert "Ensure 'LxssManager (LxssManager)' is set to 'Disabled' or 'Not Installed'" == ("Ensure 'LxssManager (LxssManager)' is set to 'Disabled' or 'Not Installed' "\n '(Automated)')
E - Ensure 'LxssManager (LxssManager)' is set to 'Disabled' or 'Not Installed' (Automated)
E ? - ------------
E + Ensure 'LxssManager (LxssManager)' is set to 'Disabled' or 'Not Installed'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
The Linux SubSystem (LXSS) Manager allows full system access to Linux applications on Windows, including the file system. While this can certainly have some functionality and performance benefits for running those applications, it also creates new security risks in the event that a hacker injects malicious code into a Linux application. For best security, it is preferred to run Linux applications on Linux, and Windows applications on Windows.
Failed test_cis_win10.py::test_cis_win10[title-check84] 0.00
check = {'compliance': [{'cis': ['5.11']}, {'cis_csc': ['4.8']}], 'condition': 'any', 'description': 'Enables the server to be... is installed by enabling an optional Windows feature (Internet Information Services - FTP Server).', 'id': 15084, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15084
E assert ("Ensure 'Microsoft FTP Service (FTPSVC)' is set to 'Disabled' or 'Not "\n "Installed'") == ("Ensure 'Microsoft FTP Service (FTPSVC)' is set to 'Disabled' or 'Not "\n "Installed'")
E - Ensure 'Microsoft FTP Service (FTPSVC)' is set to 'Disabled' or 'Not Installed'
E ? -
E + Ensure 'Microsoft FTP Service (FTPSVC)' is set to 'Disabled' or 'Not Installed'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Hosting an FTP server (especially a non-secure FTP server) from a workstation is an increased security risk, as the attack surface of that workstation is then greatly increased.
Failed test_cis_win10.py::test_cis_win10[title-check85] 0.00
check = {'compliance': [{'cis': ['5.12']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'Manages Internet SCSI (i...s from this computer to remote target devices. The recommended state for this setting is: Disabled.', 'id': 15085, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15085
E assert "Ensure 'Microsoft iSCSI Initiator Service (MSiSCSI)' is set to 'Disabled'" == "Ensure 'Microsoft iSCSI Initiator Service (MSiSCSI)' is set to 'Disabled'"
E - Ensure 'Microsoft iSCSI Initiator Service (MSiSCSI)' is set to 'Disabled'
E ? -
E + Ensure 'Microsoft iSCSI Initiator Service (MSiSCSI)' is set to 'Disabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
This service is critically necessary in order to directly attach to an iSCSI device. However, iSCSI itself uses a very weak authentication protocol (CHAP), which means that the passwords for iSCSI communication are easily exposed, unless all of the traffic is isolated and/or encrypted using another technology like IPsec. This service is generally more appropriate for servers in a controlled environment then on workstations requiring high security.
Failed test_cis_win10.py::test_cis_win10[title-check86] 0.00
check = {'compliance': [{'cis': ['5.13']}, {'cis_csc': ['4.8']}], 'condition': 'any', 'description': 'SSH protocol based servi...upplied with Windows, but it is installed by enabling an optional Windows feature (OpenSSH Server).', 'id': 15086, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15086
E assert "Ensure 'OpenSSH SSH Server (sshd)' is set to 'Disabled' or 'Not Installed'" == "Ensure 'OpenSSH SSH Server (sshd)' is set to 'Disabled' or 'Not Installed'"
E - Ensure 'OpenSSH SSH Server (sshd)' is set to 'Disabled' or 'Not Installed'
E ? -
E + Ensure 'OpenSSH SSH Server (sshd)' is set to 'Disabled' or 'Not Installed'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Hosting an SSH server from a workstation is an increased security risk, as the attack surface of that workstation is then greatly increased
Failed test_cis_win10.py::test_cis_win10[title-check92] 0.00
check = {'compliance': [{'cis': ['5.19']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'This service provides su...e Problem Reports and Solutions control panel. The recommended state for this setting is: Disabled.', 'id': 15092, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15092
E assert ("Ensure 'Problem Reports and Solutions Control Panel Support (wercplsupport)' "\n "is set to 'Disabled'") == ("Ensure 'Problem Reports and Solutions Control Panel Support(wercplsupport)' "\n "is set to 'Disabled'")
E - Ensure 'Problem Reports and Solutions Control Panel Support(wercplsupport)' is set to 'Disabled'
E + Ensure 'Problem Reports and Solutions Control Panel Support (wercplsupport)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
This service is involved in the process of displaying/reporting issues & solutions to/from Microsoft. In a high security environment, preventing this information from being sent can help reduce privacy concerns for sensitive corporate information.
Failed test_cis_win10.py::test_cis_win10[title-check93] 0.00
check = {'compliance': [{'cis': ['5.20']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'Creates a connection to ...ences a remote DNS or NetBIOS name or address. The recommended state for this setting is: Disabled.', 'id': 15093, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15093
E assert "Ensure 'Remote Access Auto Connection Manager (RasAuto)' is set to 'Disabled'" == "Ensure 'Remote Access Auto Connection Manager (RasAuto)' is set to'Disabled'"
E - Ensure 'Remote Access Auto Connection Manager (RasAuto)' is set to'Disabled'
E + Ensure 'Remote Access Auto Connection Manager (RasAuto)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
The function of this service is to provide a demand dial type of functionality. In a high security environment, it is preferred that any remote dial connections (whether they be legacy dial-in POTS or VPN) are initiated by the user, not automatically by the system.
Failed test_cis_win10.py::test_cis_win10[title-check96] 0.00
check = {'compliance': [{'cis': ['5.23']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'Allows the redirection of Printers/Drives/Ports for RDP connections. The recommended state for this setting is: Disabled.', 'id': 15096, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15096
E assert ("Ensure 'Remote Desktop Services UserMode Port Redirector (UmRdpService)' is "\n "set to 'Disabled'") == ("Ensure 'Remote Desktop Services UserMode Port Redirector(UmRdpService)' is "\n "set to 'Disabled'")
E - Ensure 'Remote Desktop Services UserMode Port Redirector(UmRdpService)' is set to 'Disabled'
E + Ensure 'Remote Desktop Services UserMode Port Redirector (UmRdpService)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
In a security-sensitive environment, it is desirable to reduce the possible attack surface - preventing the redirection of COM, LPT and PnP ports will reduce the number of unexpected avenues for data exfiltration and/or malicious code transfer within an RDP session.
Failed test_cis_win10.py::test_cis_win10[title-check101] 0.00
check = {'compliance': [{'cis': ['5.28']}, {'cis_csc': ['4.8']}], 'condition': 'any', 'description': 'Supports the following T...nstalled by enabling an optional Windows feature (Simple TCPIP services (i.e. echo, daytime etc)).', 'id': 15101, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15101
E assert ("Ensure 'Simple TCP/IP Services (simptcp)' is set to 'Disabled' or 'Not "\n "Installed'") == ("Ensure 'Simple TCP/IP Services (simptcp)' is set to 'Disabled' or 'Not "\n "Installed' ")
E - Ensure 'Simple TCP/IP Services (simptcp)' is set to 'Disabled' or 'Not Installed'
E ? -
E + Ensure 'Simple TCP/IP Services (simptcp)' is set to 'Disabled' or 'Not Installed'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
The Simple TCP/IP Services have very little purpose in a modern enterprise environment - allowing them might increase exposure and risk for attack.
Failed test_cis_win10.py::test_cis_win10[title-check103] 0.00
check = {'compliance': [{'cis': ['5.30']}, {'cis_csc': ['4.8']}], 'condition': 'any', 'description': 'This service allows admi...abling an optional Windows capability (Windows Emergency Management Services and Serial Console). ', 'id': 15103, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15103
E assert ("Ensure 'Special Administration Console Helper (sacsvr)' is set to 'Disabled' "\n "or 'Not Installed'") == ("Ensure 'Special Administration Console Helper (sacsvr)' is set to'Disabled' "\n "or 'Not Installed' ")
E - Ensure 'Special Administration Console Helper (sacsvr)' is set to'Disabled' or 'Not Installed'
E ? -
E + Ensure 'Special Administration Console Helper (sacsvr)' is set to 'Disabled' or 'Not Installed'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Allowing the use of a remotely accessible command prompt that provides the ability to perform remote management tasks on a computer is a security risk.
Failed test_cis_win10.py::test_cis_win10[title-check104] 0.00
check = {'compliance': [{'cis': ['5.31']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'Discovers networked devi...s and services running on the local computer. The recommended state for this setting is: Disabled. ', 'id': 15104, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15104
E assert "Ensure 'SSDP Discovery (SSDPSRV)' is set to 'Disabled'" == "Ensure 'SSDP Discovery (SSDPSRV)' is set to 'Disabled' "
E - Ensure 'SSDP Discovery (SSDPSRV)' is set to 'Disabled'
E ? -
E + Ensure 'SSDP Discovery (SSDPSRV)' is set to 'Disabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Universal Plug n Play (UPnP) is a real security risk - it allows automatic discovery and attachment to network devices. Note that UPnP is different than regular Plug n Play (PnP). Workstations should not be advertising their services (or automatically discovering and connecting to networked services) in a security-conscious enterprise managed environment.
Failed test_cis_win10.py::test_cis_win10[title-check105] 0.00
check = {'compliance': [{'cis': ['5.32']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'Allows UPnP devices to be hosted on this computer. The recommended state for this setting is: Disabled. ', 'id': 15105, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15105
E assert "Ensure 'UPnP Device Host (upnphost)' is set to 'Disabled'" == "Ensure 'UPnP Device Host (upnphost)' is set to 'Disabled' "
E - Ensure 'UPnP Device Host (upnphost)' is set to 'Disabled'
E ? -
E + Ensure 'UPnP Device Host (upnphost)' is set to 'Disabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Universal Plug n Play (UPnP) is a real security risk - it allows automatic discovery and attachment to network devices. Notes that UPnP is different than regular Plug n Play (PnP). Workstations should not be advertising their services (or automatically discovering and connecting to networked services) in a security-conscious enterprise managed environment.
Failed test_cis_win10.py::test_cis_win10[title-check106] 0.00
check = {'compliance': [{'cis': ['5.33']}, {'cis_csc': ['4.8']}], 'condition': 'any', 'description': 'The Web Management Servi... Windows feature (Internet Information Services - Web Management Tools - IIS Management Service). ', 'id': 15106, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15106
E assert ("Ensure 'Web Management Service (WMSvc)' is set to 'Disabled' or 'Not "\n "Installed'") == ("Ensure 'Web Management Service (WMSvc)' is set to 'Disabled' or 'Not "\n "Installed' ")
E - Ensure 'Web Management Service (WMSvc)' is set to 'Disabled' or 'Not Installed'
E ? -
E + Ensure 'Web Management Service (WMSvc)' is set to 'Disabled' or 'Not Installed'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Remote web administration of IIS on a workstation is an increased security risk, as the attack surface of that workstation is then greatly increased. If proper security mitigations are not followed, the chance of successful attack increases significantly.
Failed test_cis_win10.py::test_cis_win10[title-check109] 0.00
check = {'compliance': [{'cis': ['5.36']}, {'cis_csc': ['4.8']}], 'condition': 'any', 'description': 'Shares Windows Media Pla...ing Universal Plug and Play. The recommended state for this setting is: Disabled or Not Installed. ', 'id': 15109, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15109
E assert ("Ensure 'Windows Media Player Network Sharing Service (WMPNetworkSvc)' is set "\n "to 'Disabled' or 'Not Installed'") == ("Ensure 'Windows Media Player Network Sharing Service(WMPNetworkSvc)' is set "\n "to 'Disabled' or 'Not Installed' ")
E - Ensure 'Windows Media Player Network Sharing Service(WMPNetworkSvc)' is set to 'Disabled' or 'Not Installed'
E ? -
E + Ensure 'Windows Media Player Network Sharing Service (WMPNetworkSvc)' is set to 'Disabled' or 'Not Installed'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Network sharing of media from Media Player has no place in an enterprise managed environment.
Failed test_cis_win10.py::test_cis_win10[title-check111] 0.00
check = {'compliance': [{'cis': ['5.38']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'This service runs in ses...- but it was renamed to Windows Push Notifications System Service starting with Windows 10 R1607. ', 'id': 15111, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15111
E assert ("Ensure 'Windows Push Notifications System Service (WpnService)' is set to "\n "'Disabled'") == ("Ensure 'Windows Push Notifications System Service (WpnService)' isset to "\n "'Disabled' ")
E - Ensure 'Windows Push Notifications System Service (WpnService)' isset to 'Disabled'
E ? -
E + Ensure 'Windows Push Notifications System Service (WpnService)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Windows Push Notification Services (WNS) is a mechanism to receive 3rd-party notifications and updates from the cloud/Internet. In a high security environment, external systems, especially those hosted outside the organization, should be prevented from having an impact on the secure workstations.
Failed test_cis_win10.py::test_cis_win10[title-check112] 0.00
check = {'compliance': [{'cis': ['5.39']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'This service manages App...ore App running on other devices or the web. The recommended state for this setting is: Disabled. ', 'id': 15112, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15112
E assert "Ensure 'Windows PushToInstall Service (PushToInstall)' is set to 'Disabled'" == "Ensure 'Windows PushToInstall Service (PushToInstall)' is set to'Disabled' "
E - Ensure 'Windows PushToInstall Service (PushToInstall)' is set to'Disabled'
E ? -
E + Ensure 'Windows PushToInstall Service (PushToInstall)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
In a high security managed environment, application installations should be managed centrally by IT staff, not by end users.
Failed test_cis_win10.py::test_cis_win10[title-check113] 0.00
check = {'compliance': [{'cis': ['5.40']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'Windows Remote Managemen...or WS-Management requests and processes them. The recommended state for this setting is: Disabled. ', 'id': 15113, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15113
E assert ("Ensure 'Windows Remote Management (WS-Management) (WinRM)' is set to "\n "'Disabled'") == ("Ensure 'Windows Remote Management (WS-Management) (WinRM)' isset to "\n "'Disabled' ")
E - Ensure 'Windows Remote Management (WS-Management) (WinRM)' isset to 'Disabled'
E ? -
E + Ensure 'Windows Remote Management (WS-Management) (WinRM)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Features that enable inbound network connections increase the attack surface. In a high security environment, management of secure workstations should be handled locally.
Failed test_cis_win10.py::test_cis_win10[title-check114] 0.00
check = {'compliance': [{'cis': ['5.41']}, {'cis_csc': ['4.8']}], 'condition': 'any', 'description': 'Provides Web connectivit...d ensure the security controls and mitigations are kept up to date, to reduce risk of compromise. ', 'id': 15114, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15114
E assert ("Ensure 'World Wide Web Publishing Service (W3SVC)' is set to 'Disabled' or "\n "'Not Installed'") == ("Ensure 'World Wide Web Publishing Service (W3SVC)' is set to'Disabled' or "\n "'Not Installed' ")
E - Ensure 'World Wide Web Publishing Service (W3SVC)' is set to'Disabled' or 'Not Installed'
E ? -
E + Ensure 'World Wide Web Publishing Service (W3SVC)' is set to 'Disabled' or 'Not Installed'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Hosting a website from a workstation is an increased security risk, as the attack surface of that workstation is then greatly increased. If proper security mitigations are not followed, the chance of successful attack increases significantly. Note: This security concern applies to any web server application installed on a workstation, not just IIS.
Failed test_cis_win10.py::test_cis_win10[title-check115] 0.00
check = {'compliance': [{'cis': ['5.42']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'This service manages connected Xbox Accessories. The recommended state for this setting is: Disabled. ', 'id': 15115, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15115
E assert "Ensure 'Xbox Accessory Management Service (XboxGipSvc)' is set to 'Disabled'" == "Ensure 'Xbox Accessory Management Service (XboxGipSvc)' is set to'Disabled' "
E - Ensure 'Xbox Accessory Management Service (XboxGipSvc)' is set to'Disabled'
E ? -
E + Ensure 'Xbox Accessory Management Service (XboxGipSvc)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Xbox Live is a gaming service and has no place in an enterprise managed environment (perhaps unless it is a gaming company).
Failed test_cis_win10.py::test_cis_win10[title-check118] 0.00
check = {'compliance': [{'cis': ['5.45']}, {'cis_csc': ['4.8']}], 'condition': 'all', 'description': 'This service supports th....XboxLive application programming interface. The recommended state for this setting is: Disabled. ', 'id': 15118, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15118
E assert "Ensure 'Xbox Live Networking Service (XboxNetApiSvc)' is set to 'Disabled'" == "Ensure 'Xbox Live Networking Service (XboxNetApiSvc)' is set to'Disabled' "
E - Ensure 'Xbox Live Networking Service (XboxNetApiSvc)' is set to'Disabled'
E ? -
E + Ensure 'Xbox Live Networking Service (XboxNetApiSvc)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Xbox Live is a gaming service and has no place in an enterprise managed environment (perhaps unless it is a gaming company).
Failed test_cis_win10.py::test_cis_win10[title-check123] 0.00
check = {'compliance': [{'cis': ['9.1.5']}, {'cis_csc': ['4.5', '8.5']}, {'pci_dss': ['10.6.1']}, {'nist_800_53': ['AU.6']}, {...The recommended state for this setting is: %SYSTEMROOT%\\System32\\logfiles\\firewall\\domainfw.log', 'id': 15123, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15123
E assert ("Ensure 'Windows Firewall: Domain: Logging: Name' is set to "\n "'%SystemRoot%\\System32\\logfiles\\firewall\\domainfw.log'") == ("Ensure 'Windows Firewall: Domain: Logging: Name' is set to "\n "'%SYSTEMROOT%\\System32\\logfiles\\firewall\\domainfw.log'")
E - Ensure 'Windows Firewall: Domain: Logging: Name' is set to '%SYSTEMROOT%\System32\logfiles\firewall\domainfw.log'
E ? ^^^^^ ^^^
E + Ensure 'Windows Firewall: Domain: Logging: Name' is set to '%SystemRoot%\System32\logfiles\firewall\domainfw.log'
E ? ^^^^^ ^^^

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Failed test_cis_win10.py::test_cis_win10[title-check131] 0.00
check = {'compliance': [{'cis': ['9.2.5']}, {'pci_dss': ['10.6.1']}, {'nist_800_53': ['AU.6']}, {'gpg13': ['4.12']}, {'gdpr_IV...e recommended state for this setting is: %SYSTEMROOT%\\System32\\logfiles\\firewall\\privatefw.log.', 'id': 15131, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15131
E assert ("Ensure 'Windows Firewall: Private: Logging: Name' is set to "\n "'%SystemRoot%\\System32\\logfiles\\firewall\\privatefw.log'") == ("Ensure 'Windows Firewall: Private: Logging: Name' is set to "\n "'%SYSTEMROOT%\\System32\\logfiles\\firewall\\privatefw.log'")
E - Ensure 'Windows Firewall: Private: Logging: Name' is set to '%SYSTEMROOT%\System32\logfiles\firewall\privatefw.log'
E ? ^^^^^ ^^^
E + Ensure 'Windows Firewall: Private: Logging: Name' is set to '%SystemRoot%\System32\logfiles\firewall\privatefw.log'
E ? ^^^^^ ^^^

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Failed test_cis_win10.py::test_cis_win10[title-check141] 0.00
check = {'compliance': [{'cis': ['9.3.7']}, {'cis_csc': ['4.5', '8.5']}, {'pci_dss': ['10.6.1']}, {'nist_800_53': ['AU.6']}, {...he recommended state for this setting is: %SYSTEMROOT%\\System32\\logfiles\\firewall\\publicfw.log.', 'id': 15141, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15141
E assert ("Ensure 'Windows Firewall: Public: Logging: Name' is set to "\n "'%SystemRoot%\\System32\\logfiles\\firewall\\publicfw.log'") == ("Ensure 'Windows Firewall: Public: Logging: Name' is set to "\n "'%SYSTEMROOT%\\System32\\logfiles\\firewall\\publicfw.log'")
E - Ensure 'Windows Firewall: Public: Logging: Name' is set to '%SYSTEMROOT%\System32\logfiles\firewall\publicfw.log'
E ? ^^^^^ ^^^
E + Ensure 'Windows Firewall: Public: Logging: Name' is set to '%SystemRoot%\System32\logfiles\firewall\publicfw.log'
E ? ^^^^^ ^^^

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Failed test_cis_win10.py::test_cis_win10[title-check148] 0.00
check = {'compliance': [{'cis': ['17.2.3']}, {'cis_csc': ['8.5']}], 'condition': 'all', 'description': 'This subcategory repor...rators can track events to detect malicious, accidental, and authorized creation of user accounts.', 'id': 15148, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15148
E assert "Ensure 'Audit User Account Management' is set to 'Success and Failure'" == "Ensure 'Audit User Account Management' is set to 'Success and Failure' "
E - Ensure 'Audit User Account Management' is set to 'Success and Failure'
E ? -
E + Ensure 'Audit User Account Management' is set to 'Success and Failure'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Failed test_cis_win10.py::test_cis_win10[title-check159] 0.00
check = {'compliance': [{'cis': ['17.6.3']}, {'cis_csc': ['8.5']}], 'condition': 'all', 'description': 'This policy setting allows you to audit events generated by the management of task scheduler jobs or COM+ objects.', 'id': 15159, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15159
E assert "Ensure 'Audit Other Object Access Events' is set to 'Success and Failure'" == "Ensure 'Audit Other Object Access Events' is set to 'Success and Failure' "
E - Ensure 'Audit Other Object Access Events' is set to 'Success and Failure'
E ? -
E + Ensure 'Audit Other Object Access Events' is set to 'Success and Failure'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
The unexpected creation of scheduled tasks and COM+ objects could potentially be an indication of malicious activity. Since these types of actions are generally low volume, it may be useful to capture them in the audit logs for use during an investigation.
Failed test_cis_win10.py::test_cis_win10[title-check167] 0.00
check = {'compliance': [{'cis': ['17.9.1']}, {'cis_csc': ['6.3', '6.4', '6.5']}], 'condition': 'all', 'description': 'This sub...r snap-in to diagnose the problem. The recommended state for this setting is: Success and Failure. ', 'id': 15167, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15167
E assert "Ensure 'Audit IPsec Driver' is set to 'Success and Failure'" == "Ensure 'Audit IPsec Driver' is set to 'Success and Failure' "
E - Ensure 'Audit IPsec Driver' is set to 'Success and Failure'
E ? -
E + Ensure 'Audit IPsec Driver' is set to 'Success and Failure'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Failed test_cis_win10.py::test_cis_win10[title-check183] 0.00
check = {'compliance': [{'cis': ['18.3.2']}, {'cis_csc': ['4.8']}, {'pci_dss': ['2.2.5']}, {'tsc': ['CC6.3']}], 'condition': '...s doing so will delete the underlying registry entry altogether, which will cause serious problems.', 'id': 15183, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15183
E assert ("Ensure 'Configure SMB v1 client driver' is set to 'Enabled: Disable driver "\n "(recommended)'") == "Ensure 'Configure SMB v1 client driver' is set to 'Enabled: Disable driver'"
E - Ensure 'Configure SMB v1 client driver' is set to 'Enabled: Disable driver'
E + Ensure 'Configure SMB v1 client driver' is set to 'Enabled: Disable driver (recommended)'
E ? ++++++++++++++

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Since September 2016, Microsoft has strongly encouraged that SMBv1 be disabled and no longer used on modern networks, as it is a 30 year old design that is much more vulnerable to attacks then much newer designs such as SMBv2 and SMBv3.
Failed test_cis_win10.py::test_cis_win10[title-check187] 0.00
check = {'compliance': [{'cis': ['18.3.6']}, {'pci_dss': ['8.2.1']}, {'tsc': ['CC6.1']}], 'condition': 'all', 'description': '...ers configured for the network, or H-node (hybrid) if there is at least one WINS server configured.', 'id': 15187, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15187
E assert ("Ensure 'NetBT NodeType configuration' is set to 'Enabled: P- node "\n "(recommended)'") == ("Ensure 'NetBT NodeType configuration' is set to 'Enabled: P-node "\n "(recommended)'")
E - Ensure 'NetBT NodeType configuration' is set to 'Enabled: P-node (recommended)'
E + Ensure 'NetBT NodeType configuration' is set to 'Enabled: P- node (recommended)'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
In order to help mitigate the risk of NetBIOS Name Service (NBT-NS) poisoning attacks, setting the node type to P-node (point-to-point) will prevent the system from sending out NetBIOS broadcasts.
Failed test_cis_win10.py::test_cis_win10[title-check223] 0.00
check = {'compliance': [{'cis': ['18.8.3.1']}, {'pci_dss': ['8.2.1']}, {'tsc': ['CC6.1']}], 'condition': 'all', 'description':...it events when a new process has been created. The recommended state for this setting is: Disabled.', 'id': 15223, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15223
E assert "Ensure 'Include command line in process creation events' is set to 'Enabled'" == "Ensure 'Include command line in process creation events' is set to 'Disabled'"
E - Ensure 'Include command line in process creation events' is set to 'Disabled'
E ? ^^^
E + Ensure 'Include command line in process creation events' is set to 'Enabled'
E ? ^^

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
When this policy setting is enabled, any user who has read access to the security events can read the command-line arguments for any successfully created process. Command-line arguments may contain sensitive or private information such as passwords or user data.
Failed test_cis_win10.py::test_cis_win10[title-check226] 0.00
check = {'compliance': [{'cis': ['18.8.5.1']}, {'cis_csc': ['16.4']}], 'condition': 'all', 'description': 'This policy setting... Note #2: Credential Guard and Device Guard are not currently supported when using Azure IaaS VMs.', 'id': 15226, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E KeyError: '18.8.5.1'

test_cis_win10.py:30: KeyError
------------------------------Captured stdout call------------------------------
Kerberos, NTLM, and Credential manager isolate secrets by using virtualization-based security. Previous versions of Windows stored secrets in the Local Security Authority (LSA). Prior to Windows 10, the LSA stored secrets used by the operating system in its process memory. With Windows Defender Credential Guard enabled, the LSA process in the operating system talks to a new component called the isolated LSA process that stores and protects those secrets. Data stored by the isolated LSA process is protected using virtualization-based security and is not accessible to the rest of the operating system.
Failed test_cis_win10.py::test_cis_win10[title-check227] 0.00
check = {'compliance': [{'cis': ['18.8.5.2']}, {'cis_csc': ['16.4']}], 'condition': 'all', 'description': 'This policy setting... Note #2: Credential Guard and Device Guard are not currently supported when using Azure IaaS VMs.', 'id': 15227, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E KeyError: '18.8.5.2'

test_cis_win10.py:30: KeyError
------------------------------Captured stdout call------------------------------
Secure Boot can help reduce the risk of bootloader attacks and in conjunction with DMA protections to help protect data from being scraped from memory.
Failed test_cis_win10.py::test_cis_win10[title-check228] 0.00
check = {'compliance': [{'cis': ['18.8.5.3']}, {'cis_csc': ['5.1']}], 'condition': 'all', 'description': 'This setting enables...Note #2: Credential Guard and Device Guard are not currently supported when using Azure IaaS VMs. ', 'id': 15228, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E KeyError: '18.8.5.3'

test_cis_win10.py:30: KeyError
------------------------------Captured stdout call------------------------------
The Enabled with UEFI lock option ensures that Virtualization Based Protection of Code Integrity cannot be disabled remotely.
Failed test_cis_win10.py::test_cis_win10[title-check229] 0.00
check = {'compliance': [{'cis': ['18.8.5.4']}, {'cis_csc': ['5.1']}], 'condition': 'all', 'description': 'This option will onl...Note #2: Credential Guard and Device Guard are not currently supported when using Azure IaaS VMs. ', 'id': 15229, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E KeyError: '18.8.5.4'

test_cis_win10.py:30: KeyError
------------------------------Captured stdout call------------------------------
This setting will help protect this control from being enabled on a system that is not compatible which could lead to a crash or data loss.
Failed test_cis_win10.py::test_cis_win10[title-check230] 0.00
check = {'compliance': [{'cis': ['18.8.5.5']}, {'cis_csc': ['9.2']}], 'condition': 'all', 'description': 'This setting lets us... Note #2: Credential Guard and Device Guard are not currently supported when using Azure IaaS VMs.', 'id': 15230, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E KeyError: '18.8.5.5'

test_cis_win10.py:30: KeyError
------------------------------Captured stdout call------------------------------
The Enabled with UEFI lock option ensures that Credential Guard cannot be disabled remotely.
Failed test_cis_win10.py::test_cis_win10[title-check231] 0.00
check = {'compliance': [{'cis': ['18.8.5.6']}, {'cis_csc': ['16.14']}, {'pci_dss': ['4.1']}, {'hipaa': ['164.312.a.2.IV', '164... exploited vulnerabilities in device firmware. The recommended state for this setting is: Enabled .', 'id': 15231, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E KeyError: '18.8.5.6'

test_cis_win10.py:30: KeyError
------------------------------Captured stdout call------------------------------
Restricted Admin Mode was designed to help protect administrator accounts by ensuring that reusable credentials are not stored in memory on remote devices that could potentially be compromised. Windows Defender Remote Credential Guard helps you protect your credentials over a Remote Desktop connection by redirecting Kerberos requests back to the device that is requesting the connection. Both features should be enabled and supported, as they reduce the chance of credential theft.
Failed test_cis_win10.py::test_cis_win10[title-check243] 0.00
check = {'compliance': [{'cis': ['18.8.22.1.6']}], 'condition': 'all', 'description': 'This policy setting controls whether Windows will download a list of providers for the Web publishing and online ordering wizards.', 'id': 15243, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15243
E assert ("Ensure 'Turn off Internet download for Web publishing and online ordering "\n "wizards' is set to 'Enabled'") == ("Ensure 'Turn off Internet download for Web publishing and online ordering "\n "wizards' is set to 'Enabled' ")
E - Ensure 'Turn off Internet download for Web publishing and online ordering wizards' is set to 'Enabled'
E ? -
E + Ensure 'Turn off Internet download for Web publishing and online ordering wizards' is set to 'Enabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Although the risk is minimal, enabling this setting will reduce the possibility of a user unknowingly downloading malicious content through this feature.
Failed test_cis_win10.py::test_cis_win10[title-check255] 0.00
check = {'compliance': [{'cis': ['18.8.28.1']}, {'pci_dss': ['2.2.5']}, {'tsc': ['CC6.3']}], 'condition': 'all', 'description'... prevents the user from showing account details (email address or user name) on the sign-in screen.', 'id': 15255, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15255
E assert ("Ensure 'Block user from showing account details on sign- in' is set to "\n "'Enabled'") == ("Ensure 'Block user from showing account details on sign-in' is set to "\n "'Enabled'")
E - Ensure 'Block user from showing account details on sign-in' is set to 'Enabled'
E + Ensure 'Block user from showing account details on sign- in' is set to 'Enabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
An attacker with access to the console (for example, someone with physical access or someone who is able to connect to the workstation through Remote Desktop Services) could view the name of the last user who logged on to the server. The attacker could then try to guess the password, use a dictionary, or use a brute-force attack to try and log on.
Failed test_cis_win10.py::test_cis_win10[title-check257] 0.00
check = {'compliance': [{'cis': ['18.8.28.3']}, {'pci_dss': ['2.2.5']}, {'tsc': ['CC6.3']}], 'condition': 'all', 'description': 'This policy setting prevents connected users from being enumerated on domain-joined computers.', 'id': 15257, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15257
E assert ("Ensure 'Do not enumerate connected users on domain- joined computers' is set "\n "to 'Enabled'") == ("Ensure 'Do not enumerate connected users on domain-joined computers' is set "\n "to 'Enabled'")
E - Ensure 'Do not enumerate connected users on domain-joined computers' is set to 'Enabled'
E + Ensure 'Do not enumerate connected users on domain- joined computers' is set to 'Enabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
A malicious user could use this feature to gather account names of other users, that information could then be used in conjunction with other types of attacks such as guessing passwords or social engineering. The value of this countermeasure is small because a user with domain credentials could gather the same account information using other methods.
Failed test_cis_win10.py::test_cis_win10[title-check264] 0.00
check = {'compliance': [{'cis': ['18.8.34.6.1']}, {'pci_dss': ['8.2']}, {'tsc': ['CC6.1']}], 'condition': 'all', 'description'... allows you to control the network connectivity state in standby on modern standby-capable systems.', 'id': 15264, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15264
E assert ("Ensure 'Allow network connectivity during connected- standby (on battery)' "\n "is set to 'Disabled'") == ("Ensure 'Allow network connectivity during connected-standby (on battery)' is "\n "set to 'Disabled'")
E - Ensure 'Allow network connectivity during connected-standby (on battery)' is set to 'Disabled'
E + Ensure 'Allow network connectivity during connected- standby (on battery)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Disabling this setting ensures that the computer will not be accessible to attackers over a WLAN network while left unattended, on battery and in a sleep state.
Failed test_cis_win10.py::test_cis_win10[title-check265] 0.00
check = {'compliance': [{'cis': ['18.8.34.6.2']}, {'pci_dss': ['8.2']}, {'tsc': ['CC6.1']}], 'condition': 'all', 'description'... allows you to control the network connectivity state in standby on modern standby-capable systems.', 'id': 15265, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15265
E assert ("Ensure 'Allow network connectivity during connected- standby (plugged in)' "\n "is set to 'Disabled'") == ("Ensure 'Allow network connectivity during connected-standby (plugged in)' is "\n "set to 'Disabled'")
E - Ensure 'Allow network connectivity during connected-standby (plugged in)' is set to 'Disabled'
E + Ensure 'Allow network connectivity during connected- standby (plugged in)' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Disabling this setting ensures that the computer will not be accessible to attackers over a WLAN network while left unattended, plugged in and in a sleep state.
Failed test_cis_win10.py::test_cis_win10[title-check286] 0.00
check = {'compliance': [{'cis': ['18.9.14.1']}], 'condition': 'all', 'description': 'This policy setting determines whether cl...content is allowed in all Windows experiences. The recommended state for this setting is: Enabled. ', 'id': 15286, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15286
E assert "Ensure 'Turn off cloud consumer account state content' is set to 'Enabled'" == "Ensure 'Turn off cloud consumer account state content' is set to 'Enabled' "
E - Ensure 'Turn off cloud consumer account state content' is set to 'Enabled'
E ? -
E + Ensure 'Turn off cloud consumer account state content' is set to 'Enabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
The use of consumer accounts in an enterprise managed environment is not good security practice as it could lead to possible data leakage.
Failed test_cis_win10.py::test_cis_win10[title-check289] 0.00
check = {'compliance': [{'cis': ['18.9.15.1']}, {'pci_dss': ['4.1']}, {'hipaa': ['164.312.a.2.IV', '164.312.e.1', '164.312.e.2... policy setting controls whether or not a PIN is required for pairing to a wireless display device.', 'id': 15289, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15289
E assert ("Ensure 'Require pin for pairing' is set to 'Enabled: First Time' OR "\n "'Enabled: Always'") == "Ensure 'Require pin for pairing' is set to 'Enabled'"
E - Ensure 'Require pin for pairing' is set to 'Enabled'
E + Ensure 'Require pin for pairing' is set to 'Enabled: First Time' OR 'Enabled: Always'
E ? ++++++++++++ +++++++++++++++++++++

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
If this setting is not configured or disabled then a PIN would not be required when pairing wireless display devices to the system, increasing the risk of unauthorized use.
Failed test_cis_win10.py::test_cis_win10[title-check299] 0.00
check = {'compliance': [{'cis': ['18.9.17.7']}], 'condition': 'all', 'description': 'This policy setting limits the type of du...ta off (not recommended) or Enabled: Send required diagnostic data to send only basic information. ', 'id': 15299, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15299
E assert "Ensure 'Limit Dump Collection' is set to 'Enabled'" == "Ensure 'Limit Dump Collection' is set to 'Enabled' "
E - Ensure 'Limit Dump Collection' is set to 'Enabled'
E ? -
E + Ensure 'Limit Dump Collection' is set to 'Enabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Sending data to a 3rd party vendor is a security concern and should only be done on an as needed basis.
Failed test_cis_win10.py::test_cis_win10[title-check320] 0.00
check = {'compliance': [{'cis': ['18.9.47.5.1.2']}, {'cis_csc': ['10.5']}, {'pci_dss': ['2.2.4']}, {'nist_800_53': ['CM.1']}, ... d4f940ab-401b-4efc-aadc-ad5f3c50688a - 1 (Block Office applications from creating child processes)', 'id': 15320, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15320
E assert ("Ensure 'Configure Attack Surface Reduction rules: Set the state for each ASR "\n "rule' is configured") == ("Ensure 'Configure Attack Surface Reduction rules: Set the state for each ASR "\n "rule' is 'configured'")
E - Ensure 'Configure Attack Surface Reduction rules: Set the state for each ASR rule' is 'configured'
E ? - -
E + Ensure 'Configure Attack Surface Reduction rules: Set the state for each ASR rule' is configured

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Attack surface reduction helps prevent actions and apps that are typically used by exploitseeking malware to infect machines.
Failed test_cis_win10.py::test_cis_win10[title-check322] 0.00
check = {'compliance': [{'cis': ['18.9.47.6.1']}], 'condition': 'all', 'description': 'This setting determines whether hash va...puted for files scanned by Microsoft Defender. The recommended state for this setting is: Enabled. ', 'id': 15322, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15322
E assert "Ensure 'Enable file hash computation feature' is set to 'Enabled'" == "Ensure 'Enable file hash computation feature' is set to'Enabled' "
E - Ensure 'Enable file hash computation feature' is set to'Enabled'
E ? -
E + Ensure 'Enable file hash computation feature' is set to 'Enabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
When running an antivirus solution such as Microsoft Defender Antivirus, it is important to ensure that it is configured to monitor for suspicious and known malicious activity. File hashes are a reliable way of detecting changes to files, and can speed up the scan process by skipping files that have not changed since they were last scanned and determined to be safe. A changed file hash can also be cause for additional scrutiny.
Failed test_cis_win10.py::test_cis_win10[title-check323] 0.00
check = {'compliance': [{'cis': ['18.9.47.9.1']}], 'condition': 'all', 'description': 'This policy setting configures scanning for all downloaded files and attachments. The recommended state for this setting is: Enabled. ', 'id': 15323, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15323
E assert "Ensure 'Scan all downloaded files and attachments' is set to 'Enabled'" == "Ensure 'Scan all downloaded files and attachments' is set to'Enabled' "
E - Ensure 'Scan all downloaded files and attachments' is set to'Enabled'
E ? -
E + Ensure 'Scan all downloaded files and attachments' is set to 'Enabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
When running an antivirus solution such as Microsoft Defender Antivirus, it is important to ensure that it is configured to heuristically monitor in real-time for suspicious and known malicious activity.
Failed test_cis_win10.py::test_cis_win10[title-check327] 0.00
check = {'compliance': [{'cis': ['18.9.47.11.11']}, {'cis_csc': ['13']}, {'pci_dss': ['2.2.5']}, {'tsc': ['CC6.3']}], 'conditi...nfigure whether or not Watson events are sent. The recommended state for this setting is: Disabled.', 'id': 15327, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E KeyError: '18.9.47.11.11'

test_cis_win10.py:30: KeyError
------------------------------Captured stdout call------------------------------
Watson events are the reports that get sent to Microsoft when a program or service crashes or fails, including the possibility of automatic submission. Preventing this information from being sent can help reduce privacy concerns.
Failed test_cis_win10.py::test_cis_win10[title-check330] 0.00
check = {'compliance': [{'cis': ['18.9.47.15']}, {'cis_csc': ['2.5', '10.6']}], 'condition': 'all', 'description': 'This polic...s link: Block potentially unwanted applications with Microsoft Defender Antivirus | Microsoft Docs ', 'id': 15330, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15330
E assert ("Ensure 'Configure detection for potentially unwanted applications' is set to "\n "'Enabled: Block'") == ("Ensure 'Configure detection for potentially unwantedapplications' is set to "\n "'Enabled: Block' ")
E - Ensure 'Configure detection for potentially unwantedapplications' is set to 'Enabled: Block'
E ? -
E + Ensure 'Configure detection for potentially unwanted applications' is set to 'Enabled: Block'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Potentially unwanted applications can increase the risk of your network being infected with malware, cause malware infections to be harder to identify, and can waste IT resources in cleaning up the applications. They should be blocked from installation.
Failed test_cis_win10.py::test_cis_win10[title-check331] 0.00
check = {'compliance': [{'cis': ['18.9.47.16']}, {'cis_csc': ['10.6']}], 'condition': 'all', 'description': 'This policy setti...ware and other potentially unwanted software. The recommended state for this setting is: Disabled. ', 'id': 15331, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15331
E assert "Ensure 'Turn off Microsoft Defender AntiVirus' is set to 'Disabled'" == "Ensure 'Turn off Microsoft Defender AntiVirus' is set to'Disabled'"
E - Ensure 'Turn off Microsoft Defender AntiVirus' is set to'Disabled'
E + Ensure 'Turn off Microsoft Defender AntiVirus' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
It is important to ensure a current, updated antivirus product is scanning each computer for malicious file activity. Microsoft provides a competent solution out of the box in Microsoft Defender Antivirus. Organizations that choose to purchase a reputable 3rd-party antivirus solution may choose to exempt themselves from this recommendation in lieu of the commercial alternative.
Failed test_cis_win10.py::test_cis_win10[title-check332] 0.00
check = {'compliance': [{'cis': ['18.9.57.1']}], 'condition': 'all', 'description': 'This policy setting specifies whether the...d interests feature is allowed on the device. The recommended state for this setting is: Disabled. ', 'id': 15332, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15332
E assert "Ensure 'Enable news and interests on the taskbar' is set to 'Disabled'" == "Ensure 'Enable news and interests on the taskbar' is set to'Disabled' "
E - Ensure 'Enable news and interests on the taskbar' is set to'Disabled'
E ? -
E + Ensure 'Enable news and interests on the taskbar' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Due to privacy concerns, apps and features such as news and interests on the Windows taskbar should be treated as a possible security risk due to the potential of data being sent back to 3rd parties, such as Microsoft. In addition, the app may display inappropriate news and interests within the feed.
Failed test_cis_win10.py::test_cis_win10[title-check337] 0.00
check = {'compliance': [{'cis': ['18.9.65.3.3.1']}], 'condition': 'all', 'description': 'This policy setting determines whethe...ing is: Disabled. Note: Remote Desktop sessions don´t currently support UI Automation redirection. ', 'id': 15337, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15337
E assert "Ensure 'Allow UI Automation redirection' is set to 'Disabled'" == "Ensure 'Allow UI Automation redirection' is set to'Disabled' "
E - Ensure 'Allow UI Automation redirection' is set to'Disabled'
E ? -
E + Ensure 'Allow UI Automation redirection' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
In a more security-sensitive environment, it is desirable to reduce the possible attack surface. The need for UI Automation redirection within a Remote Desktop session is rare, and not supported at this time, but it makes sense to reduce the number of unexpected avenues for malicious activity to occur.
Failed test_cis_win10.py::test_cis_win10[title-check340] 0.00
check = {'compliance': [{'cis': ['18.9.65.3.3.4']}], 'condition': 'all', 'description': 'This policy setting controls the redi...computer in a Remote Desktop Services session. The recommended state for this setting is: Enabled. ', 'id': 15340, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15340
E assert "Ensure 'Do not allow location redirection' is set to 'Enabled'" == "Ensure 'Do not allow location redirection' is set to'Enabled' "
E - Ensure 'Do not allow location redirection' is set to'Enabled'
E ? -
E + Ensure 'Do not allow location redirection' is set to 'Enabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
In a more security-sensitive environment, it is desirable to reduce the possible attack surface. The need for location data redirection within a Remote Desktop session is rare, so it makes sense to reduce the number of unexpected avenues for malicious activity to occur.
Failed test_cis_win10.py::test_cis_win10[title-check344] 0.00
check = {'compliance': [{'cis': ['18.9.59.3.9.2']}, {'cis_csc': ['3.4']}, {'pci_dss': ['8.2.1']}, {'tsc': ['CC6.1']}], 'condit...e security of RPC communication with clients by allowing only authenticated and encrypted requests.', 'id': 15344, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E KeyError: '18.9.59.3.9.2'

test_cis_win10.py:30: KeyError
------------------------------Captured stdout call------------------------------
Allowing unsecure RPC communication can exposes the server to man in the middle attacks and data disclosure attacks.
Failed test_cis_win10.py::test_cis_win10[title-check345] 0.00
check = {'compliance': [{'cis': ['18.9.65.3.9.3']}, {'cis_csc': ['3.10']}], 'condition': 'all', 'description': 'This policy se...nforcing Transport Layer Security (TLS) version 1.0, not the older (and less secure) SSL protocol. ', 'id': 15345, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15345
E assert ("Ensure 'Require use of specific security layer for remote (RDP) connections' "\n "is set to 'Enabled: SSL'") == ("Ensure 'Require use of specific security layer for remote(RDP) connections' "\n "is set to 'Enabled: SSL' ")
E - Ensure 'Require use of specific security layer for remote(RDP) connections' is set to 'Enabled: SSL'
E ? -
E + Ensure 'Require use of specific security layer for remote (RDP) connections' is set to 'Enabled: SSL'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
The native Remote Desktop Protocol (RDP) encryption is now considered a weak protocol, so enforcing the use of stronger Transport Layer Security (TLS) encryption for all RDP communications between clients and RD Session Host servers is preferred.
Failed test_cis_win10.py::test_cis_win10[title-check346] 0.00
check = {'compliance': [{'cis': ['18.9.65.3.9.4']}, {'cis_csc': ['3.10']}], 'condition': 'all', 'description': 'This policy se... server by using Network Level Authentication. The recommended state for this setting is: Enabled. ', 'id': 15346, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15346
E assert ("Ensure 'Require user authentication for remote connections by using Network "\n "Level Authentication' is set to 'Enabled'") == ("Ensure 'Require user authentication for remoteconnections by using Network "\n "Level Authentication' is set to 'Enabled'")
E - Ensure 'Require user authentication for remoteconnections by using Network Level Authentication' is set to 'Enabled'
E + Ensure 'Require user authentication for remote connections by using Network Level Authentication' is set to 'Enabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Requiring that user authentication occur earlier in the remote connection process enhances security.
Failed test_cis_win10.py::test_cis_win10[title-check347] 0.00
check = {'compliance': [{'cis': ['18.9.65.3.9.5']}, {'cis_csc': ['3.10']}], 'condition': 'all', 'description': 'This policy se... does not apply to SSL encryption. The recommended state for this setting is: Enabled: High Level. ', 'id': 15347, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15347
E assert ("Ensure 'Set client connection encryption level' is set to 'Enabled: High "\n "Level'") == ("Ensure 'Set client connection encryption level' is set to'Enabled: High "\n "Level' ")
E - Ensure 'Set client connection encryption level' is set to'Enabled: High Level'
E ? -
E + Ensure 'Set client connection encryption level' is set to 'Enabled: High Level'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
If Remote Desktop client connections that use low level encryption are allowed, it is more likely that an attacker will be able to decrypt any captured Remote Desktop Services network traffic.
Failed test_cis_win10.py::test_cis_win10[title-check348] 0.00
check = {'compliance': [{'cis': ['18.9.65.3.10.1']}, {'pci_dss': ['8.1.8']}, {'tsc': ['CC6.1']}], 'condition': 'all', 'descrip...automatically disconnected. The recommended state for this setting is: Enabled: 15 minutes or less.', 'id': 15348, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15348
E assert ("Ensure 'Set time limit for active but idle Remote Desktop Services sessions' "\n "is set to 'Enabled: 15 minutes or less, but not Never (0)'") == ("Ensure 'Set time limit for active but idle Remote Desktop Services sessions' "\n "is set to 'Enabled: 15 minutes or less'")
E - Ensure 'Set time limit for active but idle Remote Desktop Services sessions' is set to 'Enabled: 15 minutes or less'
E + Ensure 'Set time limit for active but idle Remote Desktop Services sessions' is set to 'Enabled: 15 minutes or less, but not Never (0)'
E ? +++++++++++++++++++

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
This setting helps to prevent active Remote Desktop sessions from tying up the computer for long periods of time while not in use, preventing computing resources from being consumed by large numbers of inactive sessions. In addition, old, forgotten Remote Desktop sessions that are still active can cause password lockouts if the user's password has changed but the old session is still running. For systems that limit the number of connected users (e.g. servers in the default Administrative mode - 2 sessions only), other users' old but still active sessions can prevent another user from connecting, resulting in an effective denial of service.
Failed test_cis_win10.py::test_cis_win10[title-check358] 0.00
check = {'compliance': [{'cis': ['18.9.75.1']}], 'condition': 'all', 'description': 'This setting configures the launch of all...he GPME help text). This is a logical wording mistake by Microsoft in the Administrative Template. ', 'id': 15358, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15358
E assert "Ensure 'Disable all apps from Microsoft Store' is set to 'Disabled'" == "Ensure 'Disable all apps from Microsoft Store' is set to'Disabled' "
E - Ensure 'Disable all apps from Microsoft Store' is set to'Disabled'
E ? -
E + Ensure 'Disable all apps from Microsoft Store' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
The Store service is a retail outlet built into Windows, primarily for consumer use. In an enterprise managed environment the IT department should be managing the installation of all applications to reduce the risk of the installation of vulnerable software.
Failed test_cis_win10.py::test_cis_win10[title-check359] 0.00
check = {'compliance': [{'cis': ['18.9.75.2']}, {'cis_csc': ['2.5']}], 'condition': 'all', 'description': 'This policy setting...crosoft Store, but displays the private store. The recommended state for this setting is: Enabled. ', 'id': 15359, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15359
E assert ("Ensure 'Only display the private store within the Microsoft Store' is set to "\n "'Enabled'") == ("Ensure 'Only display the private store within the MicrosoftStore' is set to "\n "'Enabled' ")
E - Ensure 'Only display the private store within the MicrosoftStore' is set to 'Enabled'
E ? -
E + Ensure 'Only display the private store within the Microsoft Store' is set to 'Enabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Allowing the private store will allow an organization to control the apps that users have access to add to a system. This will help ensure that unapproved malicious apps are not running on a system.
Failed test_cis_win10.py::test_cis_win10[title-check363] 0.00
check = {'compliance': [{'cis': ['18.9.81.1']}], 'condition': 'all', 'description': 'This policy setting specifies whether the...c, and entertainment (not an inclusive list). The recommended state for this setting is: Disabled. ', 'id': 15363, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15363
E assert "Ensure 'Allow widgets' is set to 'Disabled'" == "Ensure 'Allow widgets' is set to 'Disabled' "
E - Ensure 'Allow widgets' is set to 'Disabled'
E ? -
E + Ensure 'Allow widgets' is set to 'Disabled'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Due to privacy concerns, apps and features such as widgets on the Windows taskbar should be treated as a possible security risk due to the potential of data being sent back to 3rd parties, such as Microsoft.
Failed test_cis_win10.py::test_cis_win10[title-check366] 0.00
check = {'compliance': [{'cis': ['18.9.85.2.2']}, {'cis_csc': ['10.5']}, {'pci_dss': ['2.2.3']}, {'nist_800_53': ['CM.1']}, {'... whether employees can override the SmartScreen Filter warnings about downloading unverified files.', 'id': 15366, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15366
E assert ("Ensure 'Prevent bypassing Windows Defender SmartScreen prompts for sites' is "\n "set to 'Enabled'") == ("Ensure 'Prevent bypassing Windows Defender SmartScreen prompts for files' is "\n "set to 'Enabled'")
E - Ensure 'Prevent bypassing Windows Defender SmartScreen prompts for files' is set to 'Enabled'
E ? ^ ^
E + Ensure 'Prevent bypassing Windows Defender SmartScreen prompts for sites' is set to 'Enabled'
E ? ^ ^

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
SmartScreen will warn an employee if a file is potentially malicious. Enabling this setting prevents these warnings from being bypassed.
Failed test_cis_win10.py::test_cis_win10[title-check367] 0.00
check = {'compliance': [{'cis': ['18.9.82.1']}, {'cis_csc': ['13']}, {'pci_dss': ['2.2.5']}, {'tsc': ['CC6.3']}], 'condition':...scription': 'This setting enables or disables the Windows Game Recording and Broadcasting features.', 'id': 15367, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E KeyError: '18.9.82.1'

test_cis_win10.py:30: KeyError
------------------------------Captured stdout call------------------------------
If this setting is allowed users could record and broadcast session info to external sites which is a privacy concern.
Failed test_cis_win10.py::test_cis_win10[title-check374] 0.00
check = {'compliance': [{'cis': ['18.9.100.1']}, {'cis_csc': ['8.8']}, {'pci_dss': ['12.3.8']}], 'condition': 'all', 'descript...es logging of all PowerShell script input to the Microsoft-WindowsPowerShell/Operational event log.', 'id': 15374, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15374
E assert "Ensure 'Turn on PowerShell Script Block Logging' is set to 'Enabled'" == "Ensure 'Turn on PowerShell Script Block Logging' is set to 'Disabled'"
E - Ensure 'Turn on PowerShell Script Block Logging' is set to 'Disabled'
E ? ^^^
E + Ensure 'Turn on PowerShell Script Block Logging' is set to 'Enabled'
E ? ^^

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
There are potential risks of capturing passwords in the PowerShell logs. This setting should only be needed for debugging purposes, and not in normal operation, it is important to ensure this is set to Disabled.
Failed test_cis_win10.py::test_cis_win10[title-check385] 0.00
check = {'compliance': [{'cis': ['18.9.104.2']}], 'condition': 'all', 'description': 'This policy setting enables or disables ...e the host, for the ostensible purpose of testing applications without making changes to the host. ', 'id': 15385, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15385
E assert "Ensure 'Allow networking in Windows Sandbox' is set to 'Disabled'" == "Ensure 'Allow networking in Windows Sandbox' is set to'Disabled'"
E - Ensure 'Allow networking in Windows Sandbox' is set to'Disabled'
E + Ensure 'Allow networking in Windows Sandbox' is set to 'Disabled'
E ? +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Disabling network access decreases the attack surface exposed by the Windows Sandbox and exposure of untrusted applications to the internal network. Note: Per Microsoft, enabling networking in the Windows Sandbox can expose untrusted applications to the internal network.
Failed test_cis_win10.py::test_cis_win10[title-check389] 0.00
check = {'compliance': [{'cis': ['18.9.108.2.2']}, {'cis_csc': ['9.2']}], 'condition': 'all', 'description': "This policy sett...ommendation 'Configure Automatic Updates'. It will have no impact if any other option is selected. ", 'id': 15389, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15389
E assert ("Ensure 'Configure Automatic Updates: Scheduled install day' is set to '0 - "\n "Every day'") == ("Ensure 'Configure Automatic Updates: Scheduled install day' is set to '0 - "\n "Every day' ")
E - Ensure 'Configure Automatic Updates: Scheduled install day' is set to '0 - Every day'
E ? -
E + Ensure 'Configure Automatic Updates: Scheduled install day' is set to '0 - Every day'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Although each version of Windows is thoroughly tested before release, it is possible that problems will be discovered after the products are shipped. The Configure Automatic Updates setting can help you ensure that the computers in your environment will always have the most recent critical operating system updates and service packs installed.
Failed test_cis_win10.py::test_cis_win10[title-check390] 0.00
check = {'compliance': [{'cis': ['18.9.108.2.3']}, {'cis_csc': ['7.3']}], 'condition': 'all', 'description': 'This policy removes access to Pause updates feature. The recommended state for this setting is: Enabled. ', 'id': 15390, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15390
E assert "Ensure 'Remove access to “Pause updates” feature' is set to 'Enabled'" == "Ensure 'Remove access to Pause updates feature' is set to'Enabled' "
E - Ensure 'Remove access to Pause updates feature' is set to'Enabled'
E ? -
E + Ensure 'Remove access to “Pause updates” feature' is set to 'Enabled'
E ? + + +

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
In order to ensure security and system updates are applied, system administrators should control when updates are applied to systems.
Failed test_cis_win10.py::test_cis_win10[title-check392] 0.00
check = {'compliance': [{'cis': ['18.9.108.4.2']}, {'cis_csc': ['2.5', '7.3']}, {'pci_dss': ['4.1']}, {'hipaa': ['164.312.a.2....tware Vendors (ISVs), partners and customer believe that the release is ready for broad deployment.', 'id': 15392, ...}
field = 'title'

@pytest.mark.parametrize('check', policy_data )
@pytest.mark.parametrize('field', fields )
def test_cis_win10(check, field):
print(check['rationale'])
policy_cis_id = check['compliance'][0]['cis'][0]
> assert cis_data[policy_cis_id][field] == check[field], f"Discrepancy in id {check['id']}"
E AssertionError: Discrepancy in id 15392
E assert ("Ensure 'Select when Preview Builds and Feature Updates are received' is set "\n "to 'Enabled: 180 or more days'") == ("Ensure 'Select when Preview Builds and Feature Updates are received' is set "\n "to 'Enabled: Semi-Annual Channel, 180 or more days'")
E - Ensure 'Select when Preview Builds and Feature Updates are received' is set to 'Enabled: Semi-Annual Channel, 180 or more days'
E ? ---------------------
E + Ensure 'Select when Preview Builds and Feature Updates are received' is set to 'Enabled: 180 or more days'

test_cis_win10.py:30: AssertionError
------------------------------Captured stdout call------------------------------
Forcing new features without prior testing in your environment could cause software incompatibilities as well as introducing new bugs into the operating system. In an enterprise managed environment, it is generally preferred to delay Feature Updates until thorough testing and a deployment plan is in place. This recommendation delays the automatic installation of new features as long as possible.
Passed test_cis_win10.py::test_cis_win10[title-check0] 0.00
------------------------------Captured stdout call------------------------------
The longer a user uses the same password, the greater the chance that an attacker can determine the password through brute force attacks. Also, any accounts that may have been compromised will remain exploitable for as long as the password is left unchanged. If password changes are required but password reuse is not prevented, or if users continually reuse a small number of passwords, the effectiveness of a good password policy is greatly reduced. If you specify a low number for this policy setting, users will be able to use the same small number of passwords repeatedly. If you do not also configure the Minimum password age setting, users might repeatedly change their passwords until they can reuse their original password.
Passed test_cis_win10.py::test_cis_win10[title-check1] 0.00
------------------------------Captured stdout call------------------------------
The longer a password exists the higher the likelihood that it will be compromised by a brute force attack, by an attacker gaining general knowledge about the user, or by the user sharing the password. Configuring the Maximum password age setting to 0 so that users are never required to change their passwords is a major security risk because that allows a compromised password to be used by the malicious user for as long as the valid user has authorized access.
Passed test_cis_win10.py::test_cis_win10[title-check2] 0.00
------------------------------Captured stdout call------------------------------
Users may have favorite passwords that they like to use because they are easy to remember and they believe that their password choice is secure from compromise. Unfortunately, passwords are compromised and if an attacker is targeting a specific individual's user account, with foreknowledge of data about that user, reuse of old passwords can cause a security breach. To address password reuse a combination of security settings is required. Using this policy setting with the Enforce password history setting prevents the easy reuse of old passwords. For example, if you configure the Enforce password history setting to ensure that users cannot reuse any of their last 12 passwords, they could change their password 13 times in a few minutes and reuse the password they started with, unless you also configure the Minimum password age setting to a number that is greater than 0. You must configure this policy setting to a number that is greater than 0 for the Enforce password history setting to be effective.
Passed test_cis_win10.py::test_cis_win10[title-check3] 0.00
------------------------------Captured stdout call------------------------------
Types of password attacks include dictionary attacks (which attempt to use common words 'and phrases) and brute force attacks (which try every possible combination of characters). 'Also, attackers sometimes try to obtain the account database so they can use tools to 'discover the accounts and passwords.
Passed test_cis_win10.py::test_cis_win10[title-check4] 0.00
------------------------------Captured stdout call------------------------------
Passwords that contain only alphanumeric characters are extremely easy to discover with several publicly available tools.
Passed test_cis_win10.py::test_cis_win10[title-check5] 0.00
------------------------------Captured stdout call------------------------------
This setting will enable the enforcement of longer and generally stronger passwords or passphrases where MFA is not in use.
Passed test_cis_win10.py::test_cis_win10[title-check7] 0.00
------------------------------Captured stdout call------------------------------
Setting an account lockout threshold reduces the likelihood that an online password brute force attack will be successful. Setting the account lockout threshold too low introduces risk of increased accidental lockouts and/or a malicious actor intentionally locking out accounts.
Passed test_cis_win10.py::test_cis_win10[title-check8] 0.00
------------------------------Captured stdout call------------------------------
Users can accidentally lock themselves out of their accounts if they mistype their password multiple times. To reduce the chance of such accidental lockouts, the Reset account lockout counter after setting determines the number of minutes that must elapse before the counter that tracks failed logon attempts and triggers lockouts is reset to 0.
Passed test_cis_win10.py::test_cis_win10[title-check9] 0.00
------------------------------Captured stdout call------------------------------
In some organizations, it can be a daunting management challenge to maintain a regular schedule for periodic password changes for local accounts. Therefore, you may want to disable the built-in Administrator account instead of relying on regular password changes to protect it from attack. Another reason to disable this built-in account is that it cannot be locked out no matter how many failed logons it accrues, which makes it a prime target for brute force attacks that attempt to guess passwords. Also, this account has a well-known security identifier (SID) and there are third-party tools that allow authentication by using the SID rather than the account name. This capability means that even if you rename the Administrator account, an attacker could launch a brute force attack by using the SID to log on.
Passed test_cis_win10.py::test_cis_win10[title-check10] 0.00
------------------------------Captured stdout call------------------------------
Organizations that want to effectively implement identity management policies and maintain firm control of what accounts are used to log onto their computers will probably want to block Microsoft accounts. Organizations may also need to block Microsoft accounts in order to meet the requirements of compliance standards that apply to their information systems.
Passed test_cis_win10.py::test_cis_win10[title-check11] 0.00
------------------------------Captured stdout call------------------------------
The default Guest account allows unauthenticated network users to log on as Guest with no password. These unauthorized users could access any resources that are accessible to the Guest account over the network. This capability means that any network shares with permissions that allow access to the Guest account, the Guests group, or the Everyone group will be accessible over the network, which could lead to the exposure or corruption of data.
Passed test_cis_win10.py::test_cis_win10[title-check12] 0.00
------------------------------Captured stdout call------------------------------
Blank passwords are a serious threat to computer security and should be forbidden through both organizational policy and suitable technical measures. In fact, the default settings for Active Directory domains require complex passwords of at least seven characters. However, if users with the ability to create new accounts bypass your domainbased password policies, they could create accounts with blank passwords. For example, a user could build a stand-alone computer, create one or more accounts with blank passwords, and then join the computer to the domain. The local accounts with blank passwords would still function. Anyone who knows the name of one of these unprotected accounts could then use it to log on.
Passed test_cis_win10.py::test_cis_win10[title-check13] 0.00
------------------------------Captured stdout call------------------------------
The Administrator account exists on all computers that run the Windows 2000 or newer operating systems. If you rename this account, it is slightly more difficult for unauthorized persons to guess this privileged user name and password combination.
Passed test_cis_win10.py::test_cis_win10[title-check14] 0.00
------------------------------Captured stdout call------------------------------
The Guest account exists on all computers that run the Windows 2000 or newer operating systems. If you rename this account, it is slightly more difficult for unauthorized persons to guess this privileged user name and password combination.
Passed test_cis_win10.py::test_cis_win10[title-check15] 0.00
------------------------------Captured stdout call------------------------------
Prior to the introduction of auditing subcategories in Windows Vista, it was difficult to track events at a per-system or per-user level. The larger event categories created too many events and the key information that needed to be audited was difficult to find.
Passed test_cis_win10.py::test_cis_win10[title-check16] 0.00
------------------------------Captured stdout call------------------------------
If the computer is unable to record events to the Security log, critical evidence or important troubleshooting information may not be available for review after a security incident. Also, an attacker could potentially generate a large volume of Security log events to purposely force a computer shutdown.
Passed test_cis_win10.py::test_cis_win10[title-check18] 0.00
------------------------------Captured stdout call------------------------------
It may be appropriate in some organizations to allow users to install printer drivers on their own workstations. However, in a high security environment, you should allow only Administrators, not users, to do this, because printer driver installation may unintentionally cause the computer to become less stable. A malicious user could install inappropriate printer drivers in a deliberate attempt to damage the computer, or a user might accidentally install malicious software that masquerades as a printer driver. It is feasible for an attacker to disguise a Trojan horse program as a printer driver. The program may appear to users as if they must use it to print, but such a program could unleash malicious code on your computer network.
Passed test_cis_win10.py::test_cis_win10[title-check19] 0.00
------------------------------Captured stdout call------------------------------
When a computer joins a domain, a computer account is created. After it joins the domain, the computer uses the password for that account to create a secure channel with the Domain Controller for its domain every time that it restarts. Requests that are sent on the secure channel are authenticated-and sensitive information such as passwords are encrypted-but the channel is not integrity-checked, and not all information is encrypted. Digital encryption and signing of the secure channel is a good idea where it is supported. The secure channel protects domain credentials as they are sent to the Domain Controller.
Passed test_cis_win10.py::test_cis_win10[title-check20] 0.00
------------------------------Captured stdout call------------------------------
When a computer joins a domain, a computer account is created. After it joins the domain, the computer uses the password for that account to create a secure channel with the Domain Controller for its domain every time that it restarts. Requests that are sent on the secure channel are authenticated-and sensitive information such as passwords are encrypted-but the channel is not integrity-checked, and not all information is encrypted. Digital encryption and signing of the secure channel is a good idea where it is supported. The secure channel protects domain credentials as they are sent to the Domain Controller.
Passed test_cis_win10.py::test_cis_win10[title-check21] 0.00
------------------------------Captured stdout call------------------------------
When a computer joins a domain, a computer account is created. After it joins the domain, the computer uses the password for that account to create a secure channel with the Domain Controller for its domain every time that it restarts. Requests that are sent on the secure channel are authenticated-and sensitive information such as passwords are encrypted-but the channel is not integrity-checked, and not all information is encrypted. Digital encryption and signing of the secure channel is a good idea where it is supported. The secure channel protects domain credentials as they are sent to the Domain Controller.
Passed test_cis_win10.py::test_cis_win10[title-check22] 0.00
------------------------------Captured stdout call------------------------------
The default configuration for Windows Server 2003-based computers that belong to a domain is that they are automatically required to change the passwords for their accounts every 30 days. If you disable this policy setting, computers that run Windows Server 2003 will retain the same passwords as their computer accounts. Computers that are no longer able to automatically change their account password are at risk from an attacker who could determine the password for the computer's domain account.
Passed test_cis_win10.py::test_cis_win10[title-check23] 0.00
------------------------------Captured stdout call------------------------------
In Active Directory-based domains, each computer has an account and password just like every user. By default, the domain members automatically change their domain password every 30 days. If you increase this interval significantly, or set it to 0 so that the computers no longer change their passwords, an attacker will have more time to undertake a brute force attack to guess the password of one or more computer accounts.
Passed test_cis_win10.py::test_cis_win10[title-check24] 0.00
------------------------------Captured stdout call------------------------------
Session keys that are used to establish secure channel communications between Domain Controllers and member computers are much stronger in Windows 2000 than they were in previous Microsoft operating systems. Whenever possible, you should take advantage of these stronger session keys to help protect secure channel communications from attacks that attempt to hijack network sessions and eavesdropping. (Eavesdropping is a form of hacking in which network data is read or altered in transit. The data can be modified to hide or change the sender, or be redirected.)
Passed test_cis_win10.py::test_cis_win10[title-check25] 0.00
------------------------------Captured stdout call------------------------------
Microsoft developed this feature to make it easier for users with certain types of physical impairments to log on to computers that run Windows. If users are not required to press CTRL+ALT+DEL, they are susceptible to attacks that attempt to intercept their passwords. If CTRL+ALT+DEL is required before logon, user passwords are communicated by means of a trusted path.
Passed test_cis_win10.py::test_cis_win10[title-check26] 0.00
------------------------------Captured stdout call------------------------------
An attacker with access to the console (for example, someone with physical access or someone who is able to connect to the server through Remote Desktop Services) could view the name of the last user who logged on to the server. The attacker could then try to guess the password, use a dictionary, or use a brute-force attack to try and log on.
Passed test_cis_win10.py::test_cis_win10[title-check27] 0.00
------------------------------Captured stdout call------------------------------
If a machine is lost or stolen, or if an insider threat attempts a brute force password attack against the computer, it is important to ensure that BitLocker will lock the computer and therefore prevent a successful attack.
Passed test_cis_win10.py::test_cis_win10[title-check28] 0.00
------------------------------Captured stdout call------------------------------
If a user forgets to lock their computer when they walk away it's possible that a passerby will hijack it.
Passed test_cis_win10.py::test_cis_win10[title-check29] 0.00
------------------------------Captured stdout call------------------------------
Displaying a warning message before logon may help prevent an attack by warning the attacker about the consequences of their misconduct before it happens. It may also help to reinforce corporate policy by notifying employees of the appropriate policy during the logon process. This text is often used for legal reasons—for example, to warn users about the ramifications of misusing company information or to warn them that their actions may be audited.
Passed test_cis_win10.py::test_cis_win10[title-check30] 0.00
------------------------------Captured stdout call------------------------------
Displaying a warning message before logon may help prevent an attack by warning the attacker about the consequences of their misconduct before it happens. It may also help to reinforce corporate policy by notifying employees of the appropriate policy during the logon process.
Passed test_cis_win10.py::test_cis_win10[title-check31] 0.00
------------------------------Captured stdout call------------------------------
The number that is assigned to this policy setting indicates the number of users whose logon information the computer will cache locally. If the number is set to 4, then the computer caches logon information for 4 users. When a 5th user logs on to the computer, the server overwrites the oldest cached logon session. Users who access the computer console will have their logon credentials cached on that computer. An attacker who is able to access the file system of the computer could locate this cached information and use a brute force attack to attempt to determine user passwords. To mitigate this type of attack, Windows encrypts the information and obscures its physical location.
Passed test_cis_win10.py::test_cis_win10[title-check32] 0.00
------------------------------Captured stdout call------------------------------
Users will need to be warned that their passwords are going to expire, or they may inadvertently be locked out of the computer when their passwords expire. This condition could lead to confusion for users who access the network locally, or make it impossible for users to access your organization's network through dial-up or virtual private network (VPN) connections.
Passed test_cis_win10.py::test_cis_win10[title-check33] 0.00
------------------------------Captured stdout call------------------------------
Users sometimes forget to lock their workstations when they are away from them, allowing the possibility for malicious users to access their computers. If smart cards are used for authentication, the computer should automatically lock itself when the card is removed to ensure that only the user with the smart card is accessing resources using those credentials.
Passed test_cis_win10.py::test_cis_win10[title-check34] 0.00
------------------------------Captured stdout call------------------------------
Session hijacking uses tools that allow attackers who have access to the same network as the client or server to interrupt, end, or steal a session in progress. Attackers can potentially intercept and modify unsigned SMB packets and then modify the traffic and forward it so that the server might perform undesirable actions. Alternatively, the attacker could pose as the server or client after legitimate authentication and gain unauthorized access to data. SMB is the resource sharing protocol that is supported by many Windows operating systems. It is the basis of NetBIOS and many other protocols. SMB signatures authenticate both users and the servers that host the data. If either side fails the authentication process, data transmission will not take place.
Passed test_cis_win10.py::test_cis_win10[title-check35] 0.00
------------------------------Captured stdout call------------------------------
Session hijacking uses tools that allow attackers who have access to the same network as the client or server to interrupt, end, or steal a session in progress. Attackers can potentially intercept and modify unsigned SMB packets and then modify the traffic and forward it so that the server might perform undesirable actions. Alternatively, the attacker could pose as the server or client after legitimate authentication and gain unauthorized access to data. SMB is the resource sharing protocol that is supported by many Windows operating systems. It is the basis of NetBIOS and many other protocols. SMB signatures authenticate both users and the servers that host the data. If either side fails the authentication process, data transmission will not take place.
Passed test_cis_win10.py::test_cis_win10[title-check36] 0.00
------------------------------Captured stdout call------------------------------
If you enable this policy setting, the server can transmit passwords in plaintext across the network to other computers that offer SMB services, which is a significant security risk. These other computers may not use any of the SMB security mechanisms that are included with Windows Server 2003.
Passed test_cis_win10.py::test_cis_win10[title-check37] 0.00
------------------------------Captured stdout call------------------------------
Each SMB session consumes server resources, and numerous null sessions will slow the server or possibly cause it to fail. An attacker could repeatedly establish SMB sessions until the server's SMB services become slow or unresponsive.
Passed test_cis_win10.py::test_cis_win10[title-check38] 0.00
------------------------------Captured stdout call------------------------------
Session hijacking uses tools that allow attackers who have access to the same network as the client or server to interrupt, end, or steal a session in progress. Attackers can potentially intercept and modify unsigned SMB packets and then modify the traffic and forward it so that the server might perform undesirable actions. Alternatively, the attacker could pose as the server or client after legitimate authentication and gain unauthorized access to data. SMB is the resource sharing protocol that is supported by many Windows operating systems. It is the basis of NetBIOS and many other protocols. SMB signatures authenticate both users and the servers that host the data. If either side fails the authentication process, data transmission will not take place.
Passed test_cis_win10.py::test_cis_win10[title-check39] 0.00
------------------------------Captured stdout call------------------------------
Session hijacking uses tools that allow attackers who have access to the same network as the client or server to interrupt, end, or steal a session in progress. Attackers can potentially intercept and modify unsigned SMB packets and then modify the traffic and forward it so that the server might perform undesirable actions. Alternatively, the attacker could pose as the server or client after legitimate authentication and gain unauthorized access to data. SMB is the resource sharing protocol that is supported by many Windows operating systems. It is the basis of NetBIOS and many other protocols. SMB signatures authenticate both users and the servers that host the data. If either side fails the authentication process, data transmission will not take place.
Passed test_cis_win10.py::test_cis_win10[title-check40] 0.00
------------------------------Captured stdout call------------------------------
If your organization configures logon hours for users, then it makes sense to enable this policy setting. Otherwise, users who should not have access to network resources outside of their logon hours may actually be able to continue to use those resources with sessions that were established during allowed hours.
Passed test_cis_win10.py::test_cis_win10[title-check41] 0.00
------------------------------Captured stdout call------------------------------
The identity of a computer can be spoofed to gain unauthorized access to network resources.
Passed test_cis_win10.py::test_cis_win10[title-check43] 0.00
------------------------------Captured stdout call------------------------------
An unauthorized user could anonymously list account names and use the information to attempt to guess passwords or perform social engineering attacks. (Social engineering attacks try to deceive users in some way to obtain passwords or some form of security information.)
Passed test_cis_win10.py::test_cis_win10[title-check44] 0.00
------------------------------Captured stdout call------------------------------
An unauthorized user could anonymously list account names and shared resources and use the information to attempt to guess passwords or perform social engineering attacks. (Social engineering attacks try to deceive users in some way to obtain passwords or some form of security information.)
Passed test_cis_win10.py::test_cis_win10[title-check45] 0.00
------------------------------Captured stdout call------------------------------
Passwords that are cached can be accessed by the user when logged on to the computer. Although this information may sound obvious, a problem can arise if the user unknowingly executes hostile code that reads the passwords and forwards them to another, unauthorized user.
Passed test_cis_win10.py::test_cis_win10[title-check46] 0.00
------------------------------Captured stdout call------------------------------
An unauthorized user could anonymously list account names and shared resources and use the information to attempt to guess passwords, perform social engineering attacks, or launch DoS attacks.
Passed test_cis_win10.py::test_cis_win10[title-check47] 0.00
------------------------------Captured stdout call------------------------------
Limiting named pipes that can be accessed anonymously will reduce the attack surface of the system.
Passed test_cis_win10.py::test_cis_win10[title-check48] 0.00
------------------------------Captured stdout call------------------------------
The registry is a database that contains computer configuration information, and much of the information is sensitive. An attacker could use this information to facilitate unauthorized activities. To reduce the risk of such an attack, suitable ACLs are assigned throughout the registry to help protect it from access by unauthorized users.
Passed test_cis_win10.py::test_cis_win10[title-check49] 0.00
------------------------------Captured stdout call------------------------------
The registry contains sensitive computer configuration information that could be used by an attacker to facilitate unauthorized activities. The fact that the default ACLs assigned throughout the registry are fairly restrictive and help to protect the registry from access by unauthorized users reduces the risk of such an attack.
Passed test_cis_win10.py::test_cis_win10[title-check50] 0.00
------------------------------Captured stdout call------------------------------
Null sessions are a weakness that can be exploited through shares (including the default shares) on computers in your environment.
Passed test_cis_win10.py::test_cis_win10[title-check51] 0.00
------------------------------Captured stdout call------------------------------
To ensure that an unauthorized user cannot anonymously list local account names or groups and use the information to attempt to guess passwords or perform social engineering attacks. (Social engineering attacks try to deceive users in some way to obtain passwords or some form of security information.)
Passed test_cis_win10.py::test_cis_win10[title-check52] 0.00
------------------------------Captured stdout call------------------------------
It is very dangerous to allow any values in this setting. Any shares that are listed can be accessed by any network user, which could lead to the exposure or corruption of sensitive data.
Passed test_cis_win10.py::test_cis_win10[title-check53] 0.00
------------------------------Captured stdout call------------------------------
With the Guest only model, any user who can authenticate to your computer over the network does so with guest privileges, which probably means that they will not have write access to shared resources on that computer. Although this restriction does increase security, it makes it more difficult for authorized users to access shared resources on those computers because ACLs on those resources must include access control entries (ACEs) for the Guest account. With the Classic model, local accounts should be password protected. Otherwise, if Guest access is enabled, anyone can use those user accounts to access shared system resources.
Passed test_cis_win10.py::test_cis_win10[title-check54] 0.00
------------------------------Captured stdout call------------------------------
When connecting to computers running versions of Windows earlier than Windows Vista or Windows Server 2008 (non-R2), services running as Local System and using SPNEGO (Negotiate) that revert to NTLM use the computer identity. In Windows 7, if you are connecting to a computer running Windows Server 2008 or Windows Vista, then a system service uses either the computer identity or a NULL session. When connecting with a NULL session, a system-generated session key is created, which provides no protection but allows applications to sign and encrypt data without errors. When connecting with the computer identity, both signing and encryption is supported in order to provide data protection.
Passed test_cis_win10.py::test_cis_win10[title-check55] 0.00
------------------------------Captured stdout call------------------------------
NULL sessions are less secure because by definition they are unauthenticated.
Passed test_cis_win10.py::test_cis_win10[title-check56] 0.00
------------------------------Captured stdout call------------------------------
The PKU2U protocol is a peer-to-peer authentication protocol - authentication should be managed centrally in most managed networks.
Passed test_cis_win10.py::test_cis_win10[title-check57] 0.00
------------------------------Captured stdout call------------------------------
The strength of each encryption algorithm varies from one to the next, choosing stronger algorithms will reduce the risk of compromise however doing so may cause issues when the computer attempts to authenticate with systems that do not support them.
Passed test_cis_win10.py::test_cis_win10[title-check58] 0.00
------------------------------Captured stdout call------------------------------
The SAM file can be targeted by attackers who seek access to username and password hashes. Such attacks use special tools to crack passwords, which can then be used to impersonate users and gain access to resources on your network. These types of attacks will not be prevented if you enable this policy setting, but it will be much more difficult for these types of attacks to succeed.
Passed test_cis_win10.py::test_cis_win10[title-check60] 0.00
------------------------------Captured stdout call------------------------------
Windows 2000 and Windows XP clients were configured by default to send LM and NTLM authentication responses (Windows 95-based and Windows 98-based clients only send LM). The default settings in OSes predating Windows Vista / Windows Server 2008 (non- R2) allowed all clients to authenticate with servers and use their resources. However, this meant that LM responses - the weakest form of authentication response - were sent over the network, and it was potentially possible for attackers to sniff that traffic to more easily reproduce the user's password. The Windows 95, Windows 98, and Windows NT operating systems cannot use the Kerberos version 5 protocol for authentication. For this reason, in a Windows Server 2003 domain, these computers authenticate by default with both the LM and NTLM protocols for network authentication. You can enforce a more secure authentication protocol for Windows 95, Windows 98, and Windows NT by using NTLMv2. For the logon process, NTLMv2 uses a secure channel to protect the authentication process. Even if you use NTLMv2 for older clients and servers, Windows-based clients and servers that are members of the domain will use the Kerberos authentication protocol to authenticate with Windows Server 2003 or newer Domain Controllers. For these reasons, it is strongly preferred to restrict the use of LM & NTLM (non-v2) as much as possible.
Passed test_cis_win10.py::test_cis_win10[title-check61] 0.00
------------------------------Captured stdout call------------------------------
Unsigned network traffic is susceptible to man-in-the-middle attacks in which an intruder captures the packets between the client and server, modifies them, and then forwards them to the server. For an LDAP server, this susceptibility means that an attacker could cause a server to make decisions that are based on false or altered data from the LDAP queries. To lower this risk in your network, you can implement strong physical security measures to protect the network infrastructure. Also, you can make all types of man-in-the-middle attacks extremely difficult if you require digital signatures on all network packets by means of IPsec authentication headers.
Passed test_cis_win10.py::test_cis_win10[title-check62] 0.00
------------------------------Captured stdout call------------------------------
You can enable both options for this policy setting to help protect network traffic that uses the NTLM Security Support Provider (NTLM SSP) from being exposed or tampered with by an attacker who has gained access to the same network. In other words, these options help protect against man-in-the-middle attacks.
Passed test_cis_win10.py::test_cis_win10[title-check63] 0.00
------------------------------Captured stdout call------------------------------
You can enable all of the options for this policy setting to help protect network traffic that uses the NTLM Security Support Provider (NTLM SSP) from being exposed or tampered with by an attacker who has gained access to the same network. That is, these options help protect against man-in-the-middle attacks.
Passed test_cis_win10.py::test_cis_win10[title-check64] 0.00
------------------------------Captured stdout call------------------------------
If a user's account is compromised or their computer is inadvertently left unsecured the malicious user can use the keys stored for the user to access protected resources. You can configure this policy setting so that users must provide a password that is distinct from their domain password every time they use a key. This configuration makes it more difficult for an attacker to access locally stored user keys, even if the attacker takes control of the user's computer and determines their logon password.
Passed test_cis_win10.py::test_cis_win10[title-check66] 0.00
------------------------------Captured stdout call------------------------------
This setting determines the strength of the default DACL for objects. Windows maintains a global list of shared computer resources so that objects can be located and shared among processes. Each type of object is created with a default DACL that specifies who can access the objects and with what permissions.
Passed test_cis_win10.py::test_cis_win10[title-check67] 0.00
------------------------------Captured stdout call------------------------------
One of the risks that the User Account Control feature introduced with Windows Vista is trying to mitigate is that of malicious software running under elevated credentials without the user or administrator being aware of its activity. An attack vector for these programs was to discover the password of the account named 'Administrator' because that user account was created for all installations of Windows. To address this risk, in Windows Vista and newer, the built-in Administrator account is now disabled by default. In a default installation of a new computer, accounts with administrative control over the computer are initially set up in one of two ways: - If the computer is not joined to a domain, the first user account you create has the equivalent permissions as a local administrator. - If the computer is joined to a domain, no local administrator accounts are created. The Enterprise or Domain Administrator must log on to the computer and create one if a local administrator account is warranted. Once Windows is installed, the built-in Administrator account may be manually enabled, but we strongly recommend that this account remain disabled.
Passed test_cis_win10.py::test_cis_win10[title-check68] 0.00
------------------------------Captured stdout call------------------------------
One of the risks that the UAC feature introduced with Windows Vista is trying to mitigate is that of malicious software running under elevated credentials without the user or administrator being aware of its activity. This setting raises awareness to the administrator of elevated privilege operations and permits the administrator to prevent a malicious program from elevating its privilege when the program attempts to do so.
Passed test_cis_win10.py::test_cis_win10[title-check69] 0.00
------------------------------Captured stdout call------------------------------
One of the risks that the User Account Control feature introduced with Windows Vista is trying to mitigate is that of malicious programs running under elevated credentials without the user or administrator being aware of their activity. This setting raises awareness to the user that a program requires the use of elevated privilege operations and requires that the user be able to supply administrative credentials in order for the program to run.
Passed test_cis_win10.py::test_cis_win10[title-check70] 0.00
------------------------------Captured stdout call------------------------------
Some malicious software will attempt to install itself after being given permission to run. For example, malicious software with a trusted application shell. The user may have given permission for the program to run because the program is trusted, but if they are then prompted for installation of an unknown component this provides another way of trapping the software before it can do damage.
Passed test_cis_win10.py::test_cis_win10[title-check71] 0.00
------------------------------Captured stdout call------------------------------
UIAccess Integrity allows an application to bypass User Interface Privilege Isolation (UIPI) restrictions when an application is elevated in privilege from a standard user to an administrator. This is required to support accessibility features such as screen readers that are transmitting user interfaces to alternative forms. A process that is started with UIAccess rights has the following abilities: - To set the foreground window. - To drive any application window using SendInput function. - To use read input for all integrity levels using low-level hooks, raw input, GetKeyState, GetAsyncKeyState, and GetKeyboardInput. - To set journal hooks. - To uses AttachThreadInput to attach a thread to a higher integrity input queue.
Passed test_cis_win10.py::test_cis_win10[title-check72] 0.00
------------------------------Captured stdout call------------------------------
This is the setting that turns on or off UAC. If this setting is disabled, UAC will not be used and any security benefits and risk mitigations that are dependent on UAC will not be present on the system.
Passed test_cis_win10.py::test_cis_win10[title-check73] 0.00
------------------------------Captured stdout call------------------------------
Standard elevation prompt dialog boxes can be spoofed, which may cause users to disclose their passwords to malicious software. The secure desktop presents a very distinct appearance when prompting for elevation, where the user desktop dims, and the elevation prompt UI is more prominent. This increases the likelihood that users who become accustomed to the secure desktop will recognize a spoofed elevation prompt dialog box and not fall for the trick.
Passed test_cis_win10.py::test_cis_win10[title-check74] 0.00
------------------------------Captured stdout call------------------------------
This setting reduces vulnerabilities by ensuring that legacy applications only write data to permitted locations.
Passed test_cis_win10.py::test_cis_win10[title-check76] 0.00
------------------------------Captured stdout call------------------------------
Bluetooth technology has inherent security risks - especially prior to the v2.1 standard. Wireless Bluetooth traffic is not well encrypted (if at all), so in a high-security environment, it should not be permitted, in spite of the added inconvenience of not being able to use Bluetooth devices.
Passed test_cis_win10.py::test_cis_win10[title-check77] 0.00
------------------------------Captured stdout call------------------------------
Mapping technologies can unwillingly reveal your location to attackers and other software that picks up the information. In addition, automatic downloads of data from 3rd-party sources should be minimized when not needed. Therefore this service should not be needed in high security environments.
Passed test_cis_win10.py::test_cis_win10[title-check78] 0.00
------------------------------Captured stdout call------------------------------
This setting affects the location feature (e.g. GPS or other location tracking). From a security perspective, it’s not a good idea to reveal your location to software in most cases, but there are legitimate uses, such as mapping software. However, they should not be used in high security environments.
Passed test_cis_win10.py::test_cis_win10[title-check80] 0.00
------------------------------Captured stdout call------------------------------
Infrared connections can potentially be a source of data compromise - especially via the automatic file transfer application functionality. Enterprise-managed systems should utilize a more secure method of connection than infrared.
Passed test_cis_win10.py::test_cis_win10[title-check82] 0.00
------------------------------Captured stdout call------------------------------
The feature that this service enables could potentially be used for unauthorized discovery and connection to network devices. Disabling the service helps to prevent responses to requests for network topology discovery in high security environments.
Passed test_cis_win10.py::test_cis_win10[title-check87] 0.00
------------------------------Captured stdout call------------------------------
Peer Name Resolution Protocol is a distributed and (mostly) serverless way to handle name resolution of clients with each other. In a high security environment, it is more secure to rely on centralized name resolution methods maintained by authorized staff.
Passed test_cis_win10.py::test_cis_win10[title-check88] 0.00
------------------------------Captured stdout call------------------------------
Peer Name Resolution Protocol is a distributed and (mostly) serverless way to handle name resolution of clients with each other. In a high security environment, it is more secure to rely on centralized name resolution methods maintained by authorized staff.
Passed test_cis_win10.py::test_cis_win10[title-check89] 0.00
------------------------------Captured stdout call------------------------------
Peer Name Resolution Protocol is a distributed and (mostly) serverless way to handle name resolution of clients with each other. In a high security environment, it is more secure to rely on centralized name resolution methods maintained by authorized staff.
Passed test_cis_win10.py::test_cis_win10[title-check90] 0.00
------------------------------Captured stdout call------------------------------
Peer Name Resolution Protocol is a distributed and (mostly) serverless way to handle name resolution of clients with each other. In a high security environment, it is more secure to rely on centralized name resolution methods maintained by authorized staff.
Passed test_cis_win10.py::test_cis_win10[title-check91] 0.00
------------------------------Captured stdout call------------------------------
In a high security environment, unnecessary services especially those with known vulnerabilities should be disabled. Disabling the Print Spooler (Spooler) service mitigates the PrintNightmare vulnerability (CVE-2021-34527) and other attacks against the service.
Passed test_cis_win10.py::test_cis_win10[title-check94] 0.00
------------------------------Captured stdout call------------------------------
In a high security environment, Remote Desktop access is an increased security risk. For these environments, only local console access should be permitted.
Passed test_cis_win10.py::test_cis_win10[title-check95] 0.00
------------------------------Captured stdout call------------------------------
In a high security environment, Remote Desktop access is an increased security risk. For these environments, only local console access should be permitted.
Passed test_cis_win10.py::test_cis_win10[title-check97] 0.00
------------------------------Captured stdout call------------------------------
This is a legacy service that has no value or purpose other than application compatibility for very old software. It should be disabled unless there is a specific old application still in use on the system that requires it.
Passed test_cis_win10.py::test_cis_win10[title-check98] 0.00
------------------------------Captured stdout call------------------------------
In a high security environment, exposing the registry to remote access is an increased security risk.
Passed test_cis_win10.py::test_cis_win10[title-check99] 0.00
------------------------------Captured stdout call------------------------------
This service's main purpose is to provide Windows router functionality - this is not an appropriate use of workstations in an enterprise managed environment.
Passed test_cis_win10.py::test_cis_win10[title-check100] 0.00
------------------------------Captured stdout call------------------------------
In a high security environment, a secure workstation should only be a client, not a server. Sharing workstation resources for remote access increases security risk as the attack surface is notably higher.
Passed test_cis_win10.py::test_cis_win10[title-check102] 0.00
------------------------------Captured stdout call------------------------------
Features that enable inbound network connections increase the attack surface. In a high security environment, management of secure workstations should be handled locally.
Passed test_cis_win10.py::test_cis_win10[title-check107] 0.00
------------------------------Captured stdout call------------------------------
If a Windows Error occurs in a secure, enterprise managed environment, the error should be reported directly to IT staff for troubleshooting and remediation. There is no benefit to the corporation to report these errors directly to Microsoft, and there is some risk of unknowingly exposing sensitive data as part of the error.
Passed test_cis_win10.py::test_cis_win10[title-check108] 0.00
------------------------------Captured stdout call------------------------------
In a high security environment, remote connections to secure workstations should be minimized, and management functions should be done locally.
Passed test_cis_win10.py::test_cis_win10[title-check110] 0.00
------------------------------Captured stdout call------------------------------
The capability to run a mobile hotspot from a domain-connected computer could easily expose the internal network to wardrivers or other hackers.
Passed test_cis_win10.py::test_cis_win10[title-check116] 0.00
------------------------------Captured stdout call------------------------------
Xbox Live is a gaming service and has no place in an enterprise managed environment (perhaps unless it is a gaming company).
Passed test_cis_win10.py::test_cis_win10[title-check117] 0.00
------------------------------Captured stdout call------------------------------
Xbox Live is a gaming service and has no place in an enterprise managed environment (perhaps unless it is a gaming company).
Passed test_cis_win10.py::test_cis_win10[title-check119] 0.00
------------------------------Captured stdout call------------------------------
If the firewall is turned off all traffic will be able to access the system and an attacker may be more easily able to remotely exploit a weakness in a network service.
Passed test_cis_win10.py::test_cis_win10[title-check120] 0.00
------------------------------Captured stdout call------------------------------
If the firewall allows all traffic to access the system then an attacker may be more easily able to remotely exploit a weakness in a network service.
Passed test_cis_win10.py::test_cis_win10[title-check121] 0.00
------------------------------Captured stdout call------------------------------
Some people believe that it is prudent to block all outbound connections except those specifically approved by the user or administrator. Microsoft disagrees with this opinion, blocking outbound connections by default will force users to deal with a large number of dialog boxes prompting them to authorize or block applications such as their web browser or instant messaging software. Additionally, blocking outbound traffic has little value because if an attacker has compromised the system they can reconfigure the firewall anyway.
Passed test_cis_win10.py::test_cis_win10[title-check122] 0.00
------------------------------Captured stdout call------------------------------
Firewall notifications can be complex and may confuse the end users, who would not be able to address the alert.
Passed test_cis_win10.py::test_cis_win10[title-check124] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check125] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check126] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check127] 0.00
------------------------------Captured stdout call------------------------------
If the firewall is turned off all traffic will be able to access the system and an attacker may be more easily able to remotely exploit a weakness in a network service.
Passed test_cis_win10.py::test_cis_win10[title-check128] 0.00
------------------------------Captured stdout call------------------------------
If the firewall allows all traffic to access the system then an attacker may be more easily able to remotely exploit a weakness in a network service.
Passed test_cis_win10.py::test_cis_win10[title-check129] 0.00
------------------------------Captured stdout call------------------------------
Some people believe that it is prudent to block all outbound connections except those specifically approved by the user or administrator. Microsoft disagrees with this opinion, blocking outbound connections by default will force users to deal with a large number of dialog boxes prompting them to authorize or block applications such as their web browser or instant messaging software. Additionally, blocking outbound traffic has little value because if an attacker has compromised the system they can reconfigure the firewall anyway.
Passed test_cis_win10.py::test_cis_win10[title-check130] 0.00
------------------------------Captured stdout call------------------------------
Firewall notifications can be complex and may confuse the end users, who would not be able to address the alert.
Passed test_cis_win10.py::test_cis_win10[title-check132] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check133] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check134] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check135] 0.00
------------------------------Captured stdout call------------------------------
If the firewall is turned off all traffic will be able to access the system and an attacker may be more easily able to remotely exploit a weakness in a network service
Passed test_cis_win10.py::test_cis_win10[title-check136] 0.00
------------------------------Captured stdout call------------------------------
If the firewall allows all traffic to access the system then an attacker may be more easily able to remotely exploit a weakness in a network service.
Passed test_cis_win10.py::test_cis_win10[title-check137] 0.00
------------------------------Captured stdout call------------------------------
Some people believe that it is prudent to block all outbound connections except those specifically approved by the user or administrator. Microsoft disagrees with this opinion, blocking outbound connections by default will force users to deal with a large number of dialog boxes prompting them to authorize or block applications such as their web browser or instant messaging software. Additionally, blocking outbound traffic has little value because if an attacker has compromised the system they can reconfigure the firewall anyway.
Passed test_cis_win10.py::test_cis_win10[title-check138] 0.00
------------------------------Captured stdout call------------------------------
Some organizations may prefer to avoid alarming users when firewall rules block certain types of network activity. However, notifications can be helpful when troubleshooting network issues involving the firewall.
Passed test_cis_win10.py::test_cis_win10[title-check139] 0.00
------------------------------Captured stdout call------------------------------
When in the Public profile, there should be no special local firewall exceptions per computer. These settings should be managed by a centralized policy.
Passed test_cis_win10.py::test_cis_win10[title-check140] 0.00
------------------------------Captured stdout call------------------------------
Users with administrative privileges might create firewall rules that expose the system to remote attack.
Passed test_cis_win10.py::test_cis_win10[title-check142] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check143] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check144] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check145] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident
Passed test_cis_win10.py::test_cis_win10[title-check146] 0.00
------------------------------Captured stdout call------------------------------
Auditing events in this category may be useful when investigating an incident.
Passed test_cis_win10.py::test_cis_win10[title-check147] 0.00
------------------------------Captured stdout call------------------------------
Auditing events in this category may be useful when investigating an incident.
Passed test_cis_win10.py::test_cis_win10[title-check149] 0.00
------------------------------Captured stdout call------------------------------
Enabling this setting will allow a user to audit events when a device is plugged into a system. This can help alert IT staff if unapproved devices are plugged in.
Passed test_cis_win10.py::test_cis_win10[title-check150] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check151] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check152] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check153] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check154] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check155] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check156] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check157] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check158] 0.00
------------------------------Captured stdout call------------------------------
In an enterprise managed environment, workstations should have limited file sharing activity, as file servers would normally handle the overall burden of file sharing activities. Any unusual file sharing activity on workstations may therefore be useful in an investigation of potentially malicious activity.
Passed test_cis_win10.py::test_cis_win10[title-check160] 0.00
------------------------------Captured stdout call------------------------------
Auditing removable storage may be useful when investigating an incident. For example, if an individual is suspected of copying sensitive information onto a USB drive.
Passed test_cis_win10.py::test_cis_win10[title-check161] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check162] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check163] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check164] 0.00
------------------------------Captured stdout call------------------------------
Changes to firewall rules are important for understanding the security state of the computer and how well it is protected against network attacks.
Passed test_cis_win10.py::test_cis_win10[title-check165] 0.00
------------------------------Captured stdout call------------------------------
This setting can help detect errors in applied Security settings which came from Group Policy, and failure events related to Cryptographic Next Generation (CNG) functions.
Passed test_cis_win10.py::test_cis_win10[title-check166] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check168] 0.00
------------------------------Captured stdout call------------------------------
Capturing these audit events may be useful for identifying when the Windows Firewall is not performing as expected.
Passed test_cis_win10.py::test_cis_win10[title-check169] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check170] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check171] 0.00
------------------------------Captured stdout call------------------------------
Auditing these events may be useful when investigating a security incident.
Passed test_cis_win10.py::test_cis_win10[title-check172] 0.00
------------------------------Captured stdout call------------------------------
Disabling the lock screen camera extends the protection afforded by the lock screen to camera features.
Passed test_cis_win10.py::test_cis_win10[title-check173] 0.00
------------------------------Captured stdout call------------------------------
Disabling the lock screen slide show extends the protection afforded by the lock screen to slide show contents.
Passed test_cis_win10.py::test_cis_win10[title-check174] 0.00
------------------------------Captured stdout call------------------------------
If this setting is Enabled sensitive information could be stored in the cloud or sent to Microsoft.
Passed test_cis_win10.py::test_cis_win10[title-check175] 0.00
------------------------------Captured stdout call------------------------------
Due to privacy concerns, data should never be sent to any 3rd party since this data could contain sensitive information.
Passed test_cis_win10.py::test_cis_win10[title-check176] 0.00
------------------------------Captured stdout call------------------------------
Due to the difficulty in managing local Administrator passwords, many organizations choose to use the same password on all workstations and/or Member Servers when deploying them. This creates a serious attack surface security risk because if an attacker manages to compromise one system and learn the password to its local Administrator account, then they can leverage that account to instantly gain access to all other computers that also use that password for their local Administrator account.
Passed test_cis_win10.py::test_cis_win10[title-check177] 0.00
------------------------------Captured stdout call------------------------------
Due to the difficulty in managing local Administrator passwords, many organizations choose to use the same password on all workstations and/or Member Servers when deploying them. This creates a serious attack surface security risk because if an attacker manages to compromise one system and learn the password to its local Administrator account, then they can leverage that account to instantly gain access to all other computers that also use that password for their local Administrator account.
Passed test_cis_win10.py::test_cis_win10[title-check178] 0.00
------------------------------Captured stdout call------------------------------
Due to the difficulty in managing local Administrator passwords, many organizations choose to use the same password on all workstations and/or Member Servers when deploying them. This creates a serious attack surface security risk because if an attacker manages to compromise one system and learn the password to its local Administrator account, then they can leverage that account to instantly gain access to all other computers that also use that password for their local Administrator account.
Passed test_cis_win10.py::test_cis_win10[title-check179] 0.00
------------------------------Captured stdout call------------------------------
Due to the difficulty in managing local Administrator passwords, many organizations choose to use the same password on all workstations and/or Member Servers when deploying them. This creates a serious attack surface security risk because if an attacker manages to compromise one system and learn the password to its local Administrator account, then they can leverage that account to instantly gain access to all other computers that also use that password for their local Administrator account.
Passed test_cis_win10.py::test_cis_win10[title-check180] 0.00
------------------------------Captured stdout call------------------------------
Due to the difficulty in managing local Administrator passwords, many organizations choose to use the same password on all workstations and/or Member Servers when deploying them. This creates a serious attack surface security risk because if an attacker manages to compromise one system and learn the password to its local Administrator account, then they can leverage that account to instantly gain access to all other computers that also use that password for their local Administrator account.
Passed test_cis_win10.py::test_cis_win10[title-check181] 0.00
------------------------------Captured stdout call------------------------------
Due to the difficulty in managing local Administrator passwords, many organizations choose to use the same password on all workstations and/or Member Servers when deploying them. This creates a serious attack surface security risk because if an attacker manages to compromise one system and learn the password to its local Administrator account, then they can leverage that account to instantly gain access to all other computers that also use that password for their local Administrator account.
Passed test_cis_win10.py::test_cis_win10[title-check182] 0.00
------------------------------Captured stdout call------------------------------
Local accounts are at high risk for credential theft when the same account and password is configured on multiple systems. Ensuring this policy is Enabled significantly reduces that risk.
Passed test_cis_win10.py::test_cis_win10[title-check184] 0.00
------------------------------Captured stdout call------------------------------
Since September 2016, Microsoft has strongly encouraged that SMBv1 be disabled and no longer used on modern networks, as it is a 30 year old design that is much more vulnerable to attacks then much newer designs such as SMBv2 and SMBv3.
Passed test_cis_win10.py::test_cis_win10[title-check185] 0.00
------------------------------Captured stdout call------------------------------
This feature is designed to block exploits that use the Structured Exception Handler (SEH) overwrite technique. This protection mechanism is provided at run-time. Therefore, it helps protect applications regardless of whether they have been compiled with the latest improvements, such as the /SAFESEH option.
Passed test_cis_win10.py::test_cis_win10[title-check186] 0.00
------------------------------Captured stdout call------------------------------
Restricting the installation of print drives to Administrators can help mitigate the PrintNightmare vulnerability (CVE-2021-34527) and other Print Spooler attacks
Passed test_cis_win10.py::test_cis_win10[title-check188] 0.00
------------------------------Captured stdout call------------------------------
Preventing the plaintext storage of credentials in memory may reduce opportunity for credential theft.
Passed test_cis_win10.py::test_cis_win10[title-check189] 0.00
------------------------------Captured stdout call------------------------------
If you configure a computer for automatic logon, anyone who can physically gain access to the computer can also gain access to everything that is on the computer, including any network or networks that the computer is connected to. Also, if you enable automatic logon, the password is stored in the registry in plaintext. The specific registry key that stores this setting is remotely readable by the Authenticated Users group. As a result, this entry is appropriate only if the computer is physically secured and if you ensure that untrusted users cannot remotely see the registry.
Passed test_cis_win10.py::test_cis_win10[title-check190] 0.00
------------------------------Captured stdout call------------------------------
An attacker could use source routed packets to obscure their identity and location. Source routing allows a computer that sends a packet to specify the route that the packet takes
Passed test_cis_win10.py::test_cis_win10[title-check191] 0.00
------------------------------Captured stdout call------------------------------
An attacker could use source routed packets to obscure their identity and location. Source routing allows a computer that sends a packet to specify the route that the packet takes.
Passed test_cis_win10.py::test_cis_win10[title-check192] 0.00
------------------------------Captured stdout call------------------------------
An attacker who steals a mobile user's computer could automatically connect to the organization's network if the Save This Password check box is selected for the dial-up or VPN networking entry used to connect to your organization's network.
Passed test_cis_win10.py::test_cis_win10[title-check193] 0.00
------------------------------Captured stdout call------------------------------
This behavior is expected. The problem is that the 10 minute time-out period for the ICMP redirect-plumbed routes temporarily creates a network situation in which traffic will no longer be routed properly for the affected host. Ignoring such ICMP redirects will limit the system's exposure to attacks that will impact its ability to participate on the network.
Passed test_cis_win10.py::test_cis_win10[title-check194] 0.00
------------------------------Captured stdout call------------------------------
An attacker who is able to connect to network applications could establish numerous connections to cause a DoS condition.
Passed test_cis_win10.py::test_cis_win10[title-check195] 0.00
------------------------------Captured stdout call------------------------------
The NetBT protocol is designed not to use authentication, and is therefore vulnerable to spoofing. Spoofing makes a transmission appear to come from a user other than the user who performed the action. A malicious user could exploit the unauthenticated nature of the protocol to send a name-conflict datagram to a target computer, which would cause the computer to relinquish its name and not respond to queries. An attacker could send a request over the network and query a computer to release its NetBIOS name. As with any change that could affect applications, it is recommended that you test this change in a non-production environment before you change the production environment. The result of such an attack could be to cause intermittent connectivity issues on the target computer, or even to prevent the use of Network Neighborhood, domain logons, the NET SEND command, or additional NetBIOS name resolution.
Passed test_cis_win10.py::test_cis_win10[title-check196] 0.00
------------------------------Captured stdout call------------------------------
An attacker who has gained control of a computer on the same network segment could configure a computer on the network to impersonate a router. Other computers with IRDP enabled would then attempt to route their traffic through the already compromised computer.
Passed test_cis_win10.py::test_cis_win10[title-check197] 0.00
------------------------------Captured stdout call------------------------------
If a user unknowingly executes hostile code that was packaged with additional files that include modified versions of system DLLs, the hostile code could load its own versions of those DLLs and potentially increase the type and degree of damage the code can render.
Passed test_cis_win10.py::test_cis_win10[title-check198] 0.00
------------------------------Captured stdout call------------------------------
The default grace period that is allowed for user movement before the screen saver lock takes effect is five seconds. If you leave the default grace period configuration, your computer is vulnerable to a potential attack from someone who could approach the console and attempt to log on to the computer before the lock takes effect. An entry to the registry can be made to adjust the length of the grace period.
Passed test_cis_win10.py::test_cis_win10[title-check199] 0.00
------------------------------Captured stdout call------------------------------
A malicious user could exhaust a target computer's resources if it never sent any acknowledgment messages for data that was transmitted by the target computer.
Passed test_cis_win10.py::test_cis_win10[title-check200] 0.00
------------------------------Captured stdout call------------------------------
A malicious user could exhaust a target computer's resources if it never sent any acknowledgment messages for data that was transmitted by the target computer.
Passed test_cis_win10.py::test_cis_win10[title-check201] 0.00
------------------------------Captured stdout call------------------------------
If the Security log reaches 90 percent of its capacity and the computer has not been configured to overwrite events as needed, more recent events will not be written to the log. If the log reaches its capacity and the computer has been configured to shut down when it can no longer record events to the Security log, the computer will shut down and will no longer be available to provide network services.
Passed test_cis_win10.py::test_cis_win10[title-check202] 0.00
------------------------------Captured stdout call------------------------------
DNS over HTTPS (DoH) helps protect against DNS spoofing. Spoofing makes a transmission appear to come from a user other than the user who performed the action. It can also help prevent man-in-the-middle (MitM) attacks because the session in-between is encrypted
Passed test_cis_win10.py::test_cis_win10[title-check203] 0.00
------------------------------Captured stdout call------------------------------
An attacker can listen on a network for these LLMNR (UDP/5355) or NBT-NS (UDP/137) broadcasts and respond to them, tricking the host into thinking that it knows the location of the requested system.
Passed test_cis_win10.py::test_cis_win10[title-check204] 0.00
------------------------------Captured stdout call------------------------------
In an enterprise managed environment the IT department should be managing the changes to the system configuration, to ensure all changes are tested and approved.
Passed test_cis_win10.py::test_cis_win10[title-check205] 0.00
------------------------------Captured stdout call------------------------------
Insecure guest logons are used by file servers to allow unauthenticated access to shared folders.
Passed test_cis_win10.py::test_cis_win10[title-check206] 0.00
------------------------------Captured stdout call------------------------------
To help protect from potentially discovering and connecting to unauthorized devices, this setting should be disabled to prevent responding to network traffic for network topology discovery.
Passed test_cis_win10.py::test_cis_win10[title-check207] 0.00
------------------------------Captured stdout call------------------------------
To help protect from potentially discovering and connecting to unauthorized devices, this setting should be disabled to prevent responding to network traffic for network topology discovery.
Passed test_cis_win10.py::test_cis_win10[title-check208] 0.00
------------------------------Captured stdout call------------------------------
This setting enhances the security of the environment and reduces the overall risk exposure related to peer-to-peer networking.
Passed test_cis_win10.py::test_cis_win10[title-check209] 0.00
------------------------------Captured stdout call------------------------------
The Network Bridge setting, if enabled, allows users to create a Layer 2 Media Access Control (MAC) bridge, enabling them to connect two or more physical network segments together. A Network Bridge thus allows a computer that has connections to two different networks to share data between those networks. In an enterprise managed environment, where there is a need to control network traffic to only authorized paths, allowing users to create a Network Bridge increases the risk and attack surface from the bridged network.
Passed test_cis_win10.py::test_cis_win10[title-check210] 0.00
------------------------------Captured stdout call------------------------------
Non-administrators should not be able to turn on the Mobile Hotspot feature and open their Internet connectivity up to nearby mobile devices.
Passed test_cis_win10.py::test_cis_win10[title-check211] 0.00
------------------------------Captured stdout call------------------------------
Allowing regular users to set a network location increases the risk and attack surface.
Passed test_cis_win10.py::test_cis_win10[title-check212] 0.00
------------------------------Captured stdout call------------------------------
In February 2015, Microsoft released a new control mechanism to mitigate a security risk in Group Policy as part of the MS15-011 / MSKB 3000483 security update. This mechanism requires both the installation of the new security update and also the deployment of specific group policy settings to all computers on the domain from Windows Vista / Server 2008 (non-R2) or newer (the associated security patch to enable this feature was not released for Server 2003). A new group policy template (NetworkProvider.admx/adml) was also provided with the security update. Once the new GPO template is in place, the following are the minimum requirements to remediate the Group Policy security risk: \*\NETLOGON RequireMutualAuthentication=1, RequireIntegrity=1 \*\SYSVOL RequireMutualAuthentication=1, RequireIntegrity=1 Note: A reboot may be required after the setting is applied to a client machine to access the above paths.
Passed test_cis_win10.py::test_cis_win10[title-check213] 0.00
------------------------------Captured stdout call------------------------------
Since the vast majority of private enterprise managed networks have no need to utilize IPv6 (because they have access to private IPv4 addressing), disabling IPv6 components reduces a possible attack surface that is also harder to monitor the traffic on. As a result, we recommend configuring IPv6 to a Disabled state when it is not needed.
Passed test_cis_win10.py::test_cis_win10[title-check214] 0.00
------------------------------Captured stdout call------------------------------
This setting enhances the security of the environment and reduces the overall risk exposure related to user configuration of wireless settings.
Passed test_cis_win10.py::test_cis_win10[title-check215] 0.00
------------------------------Captured stdout call------------------------------
Allowing standard users to access the Windows Connect Now wizard increases the risk and attack surface.
Passed test_cis_win10.py::test_cis_win10[title-check216] 0.00
------------------------------Captured stdout call------------------------------
Preventing bridged network connections can help prevent a user unknowingly allowing traffic to route between internal and external networks, which risks exposure to sensitive internal data.
Passed test_cis_win10.py::test_cis_win10[title-check217] 0.00
------------------------------Captured stdout call------------------------------
The potential concern is that a user would unknowingly allow network traffic to flow between the insecure public network and the enterprise managed network.
Passed test_cis_win10.py::test_cis_win10[title-check218] 0.00
------------------------------Captured stdout call------------------------------
Automatically connecting to an open hotspot or network can introduce the system to a rogue network with malicious intent.
Passed test_cis_win10.py::test_cis_win10[title-check219] 0.00
------------------------------Captured stdout call------------------------------
Disabling the ability for the Print Spooler service to accept client connections mitigates remote attacks against the PrintNightmare vulnerability (CVE-2021-34527) and other remote Print Spooler attacks. However, this recommendation does not mitigate against local attacks on the Print Spooler service.
Passed test_cis_win10.py::test_cis_win10[title-check220] 0.00
------------------------------Captured stdout call------------------------------
Enabling Windows User Account Control (UAC) for the installation of new print drivers can help mitigate the PrintNightmare vulnerability (CVE-2021-34527) and other Print Spooler attacks.
Passed test_cis_win10.py::test_cis_win10[title-check221] 0.00
------------------------------Captured stdout call------------------------------
Enabling Windows User Account Control (UAC) for updating existing print drivers can help mitigate the PrintNightmare vulnerability (CVE-2021-34527) and other Print Spooler attacks.
Passed test_cis_win10.py::test_cis_win10[title-check222] 0.00
------------------------------Captured stdout call------------------------------
Windows Push Notification Services (WNS) is a mechanism to receive 3rd-party notifications and updates from the cloud/Internet. In a high security environment, external systems, especially those hosted outside the organization, should be prevented from having an impact on the secure workstations.
Passed test_cis_win10.py::test_cis_win10[title-check224] 0.00
------------------------------Captured stdout call------------------------------
This setting is important to mitigate the CredSSP encryption oracle vulnerability, for which information was published by Microsoft on 03/13/2018 in CVE-2018-0886 | CredSSP Remote Code Execution Vulnerability. All versions of Windows from Windows Vista onwards are affected by this vulnerability, and will be compatible with this recommendation provided that they have been patched at least through May 2018 (or later).
Passed test_cis_win10.py::test_cis_win10[title-check225] 0.00
------------------------------Captured stdout call------------------------------
Restricted Admin Mode was designed to help protect administrator accounts by ensuring that reusable credentials are not stored in memory on remote devices that could potentially be compromised. Windows Defender Remote Credential Guard helps you protect your credentials over a Remote Desktop connection by redirecting Kerberos requests back to the device that is requesting the connection. Both features should be enabled and supported, as they reduce the chance of credential theft.
Passed test_cis_win10.py::test_cis_win10[title-check232] 0.00
------------------------------Captured stdout call------------------------------
Installation of software should be conducted by an authorized system administrator and not a standard user. Allowing automatic 3rd-party software installations under the context of the SYSTEM account has potential for allowing unauthorized access via backdoors or installation software bugs.
Passed test_cis_win10.py::test_cis_win10[title-check233] 0.00
------------------------------Captured stdout call------------------------------
This policy setting helps reduce the impact of malware that has already infected your system.
Passed test_cis_win10.py::test_cis_win10[title-check234] 0.00
------------------------------Captured stdout call------------------------------
Setting this option to false (unchecked) will ensure that domain policy changes take effect more quickly, as compared to waiting until the next user logon or system restart.
Passed test_cis_win10.py::test_cis_win10[title-check235] 0.00
------------------------------Captured stdout call------------------------------
Setting this option to true (checked) will ensure unauthorized changes that might have been configured locally are forced to match the domain-based Group Policy settings again.
Passed test_cis_win10.py::test_cis_win10[title-check236] 0.00
------------------------------Captured stdout call------------------------------
A cross-device experience is when a system can access app and send messages to other devices. In an enterprise managed environment only trusted systems should be communicating within the network. Access to any other system should be prohibited.
Passed test_cis_win10.py::test_cis_win10[title-check237] 0.00
------------------------------Captured stdout call------------------------------
This setting ensures that group policy changes take effect more quickly, as compared to waiting until the next user logon or system restart.
Passed test_cis_win10.py::test_cis_win10[title-check238] 0.00
------------------------------Captured stdout call------------------------------
The Store service is a retail outlet built into Windows, primarily for consumer use. In an enterprise managed environment the IT department should be managing the installation of all applications to reduce the risk of the installation of vulnerable software.
Passed test_cis_win10.py::test_cis_win10[title-check239] 0.00
------------------------------Captured stdout call------------------------------
The Store service is a retail outlet built into Windows, primarily for consumer use. In an enterprise managed environment the IT department should be managing the installation of all applications to reduce the risk of the installation of vulnerable software.
Passed test_cis_win10.py::test_cis_win10[title-check240] 0.00
------------------------------Captured stdout call------------------------------
A person's handwriting is Personally Identifiable Information (PII), especially when it comes to your signature. As such, it is unacceptable in many environments to automatically upload PII to a website without explicit approval by the user.
Passed test_cis_win10.py::test_cis_win10[title-check241] 0.00
------------------------------Captured stdout call------------------------------
A person's handwriting is Personally Identifiable Information (PII), especially when it comes to your signature. As such, it is unacceptable in many environments to automatically upload PII to a website without explicit approval by the user.
Passed test_cis_win10.py::test_cis_win10[title-check242] 0.00
------------------------------Captured stdout call------------------------------
In an enterprise managed environment we want to lower the risk of a user unknowingly exposing sensitive data.
Passed test_cis_win10.py::test_cis_win10[title-check244] 0.00
------------------------------Captured stdout call------------------------------
Information that is transmitted over HTTP through this capability is not protected and can be intercepted by malicious users. For this reason, it is not often used in enterprise managed environments.
Passed test_cis_win10.py::test_cis_win10[title-check245] 0.00
------------------------------Captured stdout call------------------------------
Users in an enterprise managed environment should not be registering their own copies of Windows, providing their own PII in the process.
Passed test_cis_win10.py::test_cis_win10[title-check246] 0.00
------------------------------Captured stdout call------------------------------
There is a small risk that users will unknowingly reveal sensitive information because of the topics they are searching for. This risk is very low because even if this setting is enabled users still must submit search queries to the desired search engine in order to perform searches.
Passed test_cis_win10.py::test_cis_win10[title-check247] 0.00
------------------------------Captured stdout call------------------------------
In an enterprise managed environment we want to lower the risk of a user unknowingly exposing sensitive data.
Passed test_cis_win10.py::test_cis_win10[title-check248] 0.00
------------------------------Captured stdout call------------------------------
Users may publish confidential or sensitive information to a public service outside of the control of the organization.
Passed test_cis_win10.py::test_cis_win10[title-check249] 0.00
------------------------------Captured stdout call------------------------------
Large enterprise managed environments may not want to have information collected by Microsoft from managed client computers.
Passed test_cis_win10.py::test_cis_win10[title-check250] 0.00
------------------------------Captured stdout call------------------------------
Large enterprise managed environments may not want to have information collected by Microsoft from managed client computers.
Passed test_cis_win10.py::test_cis_win10[title-check251] 0.00
------------------------------Captured stdout call------------------------------
If a Windows Error occurs in a secure, enterprise managed environment, the error should be reported directly to IT staff for troubleshooting and remediation. There is no benefit to the corporation to report these errors directly to Microsoft, and there is some risk of unknowingly exposing sensitive data as part of the error.
Passed test_cis_win10.py::test_cis_win10[title-check252] 0.00
------------------------------Captured stdout call------------------------------
Having stronger device authentication with the use of certificates is strongly encouraged over standard username and password authentication. Having this set to Automatic will allow certificate based authentication to be used whenever possible.
Passed test_cis_win10.py::test_cis_win10[title-check253] 0.00
------------------------------Captured stdout call------------------------------
Device memory sandboxing allows the OS to leverage the I/O Memory Management Unit (IOMMU) of a device to block unpermitted I/O, or memory access, by the peripheral.
Passed test_cis_win10.py::test_cis_win10[title-check254] 0.00
------------------------------Captured stdout call------------------------------
This is a way to increase the security of the system account.
Passed test_cis_win10.py::test_cis_win10[title-check256] 0.00
------------------------------Captured stdout call------------------------------
An unauthorized user could disconnect the PC from the network or can connect the PC to other available networks without signing into Windows.
Passed test_cis_win10.py::test_cis_win10[title-check258] 0.00
------------------------------Captured stdout call------------------------------
A malicious user could use this feature to gather account names of other users, that information could then be used in conjunction with other types of attacks such as guessing passwords or social engineering. The value of this countermeasure is small because a user with domain credentials could gather the same account information using other methods.
Passed test_cis_win10.py::test_cis_win10[title-check259] 0.00
------------------------------Captured stdout call------------------------------
App notifications might display sensitive business or personal data.
Passed test_cis_win10.py::test_cis_win10[title-check260] 0.00
------------------------------Captured stdout call------------------------------
Picture passwords bypass the requirement for a typed complex password. In a shared work environment, a simple shoulder surf where someone observed the on-screen gestures would allow that person to gain access to the system without the need to know the complex password. Vertical monitor screens with an image are much more visible at a distance than horizontal key strokes, increasing the likelihood of a successful observation of the mouse gestures.
Passed test_cis_win10.py::test_cis_win10[title-check261] 0.00
------------------------------Captured stdout call------------------------------
A PIN is created from a much smaller selection of characters than a password, so in most cases a PIN will be much less robust than a password.
Passed test_cis_win10.py::test_cis_win10[title-check262] 0.00
------------------------------Captured stdout call------------------------------
In high security environments, clipboard data should stay local to the system and not synced across devices, as it may contain very sensitive information that must be contained locally.
Passed test_cis_win10.py::test_cis_win10[title-check263] 0.00
------------------------------Captured stdout call------------------------------
Due to privacy concerns, data should never be sent to any 3rd party since this data could contain sensitive information.
Passed test_cis_win10.py::test_cis_win10[title-check266] 0.00
------------------------------Captured stdout call------------------------------
System sleep states (S1-S3) keep power to the RAM which may contain secrets, such as the BitLocker volume encryption key. An attacker finding a computer in sleep states (S1-S3) could directly attack the memory of the computer and gain access to the secrets through techniques such as RAM reminisce and direct memory access (DMA).
Passed test_cis_win10.py::test_cis_win10[title-check267] 0.00
------------------------------Captured stdout call------------------------------
Enabling this setting ensures that anyone who wakes an unattended computer from sleep state will have to provide logon credentials before they can access the system.
Passed test_cis_win10.py::test_cis_win10[title-check268] 0.00
------------------------------Captured stdout call------------------------------
A user might be tricked and accept an unsolicited Remote Assistance offer from a malicious user.
Passed test_cis_win10.py::test_cis_win10[title-check269] 0.00
------------------------------Captured stdout call------------------------------
There is slight risk that a rogue administrator will gain access to another user's desktop session, however, they cannot connect to a user's computer unannounced or control it without permission from the user. When an expert tries to connect, the user can still choose to deny the connection or give the expert view-only privileges. The user must explicitly click the Yes button to allow the expert to remotely control the workstation.
Passed test_cis_win10.py::test_cis_win10[title-check270] 0.00
------------------------------Captured stdout call------------------------------
Anonymous access to RPC services could result in accidental disclosure of information to unauthenticated users.
Passed test_cis_win10.py::test_cis_win10[title-check271] 0.00
------------------------------Captured stdout call------------------------------
Unauthenticated RPC communication can create a security vulnerability.
Passed test_cis_win10.py::test_cis_win10[title-check272] 0.00
------------------------------Captured stdout call------------------------------
Due to privacy concerns, data should never be sent to any 3rd party since this data could contain sensitive information.
Passed test_cis_win10.py::test_cis_win10[title-check273] 0.00
------------------------------Captured stdout call------------------------------
When enabled the aggregated data of a given event will be transmitted to Microsoft. The option exists to restrict this feature for a specific user, set the consent level, and designate specific programs for which error reports could be sent. However, centrally restricting the ability to execute PerfTrack to limit the potential for unauthorized or undesired usage, data leakage, or unintentional communications is highly recommended.
Passed test_cis_win10.py::test_cis_win10[title-check274] 0.00
------------------------------Captured stdout call------------------------------
Tracking user activity for advertising purposes, even anonymously, may be a privacy concern. In an enterprise managed environment, applications should not need or require tracking for targeted advertising.
Passed test_cis_win10.py::test_cis_win10[title-check275] 0.00
------------------------------Captured stdout call------------------------------
A reliable and accurate account of time is important for a number of services and security requirements, including but not limited to distributed applications, authentication services, multi-user databases and logging services. The use of an NTP client (with secure operation) establishes functional accuracy and is a focal point when reviewing security relevant events.
Passed test_cis_win10.py::test_cis_win10[title-check276] 0.00
------------------------------Captured stdout call------------------------------
The configuration of proper time synchronization is critically important in an enterprise managed environment both due to the sensitivity of Kerberos authentication timestamps and also to ensure accurate security logging.
Passed test_cis_win10.py::test_cis_win10[title-check277] 0.00
------------------------------Captured stdout call------------------------------
Users of a system could accidentally share sensitive data with other users on the same system.
Passed test_cis_win10.py::test_cis_win10[title-check278] 0.00
------------------------------Captured stdout call------------------------------
In a corporate managed environment, application installations should be managed centrally by IT staff, not by end users.
Passed test_cis_win10.py::test_cis_win10[title-check279] 0.00
------------------------------Captured stdout call------------------------------
Access to any computer resource should not be allowed when the device is locked.
Passed test_cis_win10.py::test_cis_win10[title-check280] 0.00
------------------------------Captured stdout call------------------------------
Enabling this setting allows an organization to use their enterprise user accounts instead of using their Microsoft accounts when accessing Windows store apps. This provides the organization with greater control over relevant credentials. Microsoft accounts cannot be centrally managed and as such enterprise credential security policies cannot be applied to them, which could put any information accessed by using Microsoft accounts at risk.
Passed test_cis_win10.py::test_cis_win10[title-check281] 0.00
------------------------------Captured stdout call------------------------------
An attacker could use this feature to launch a program to damage a client computer or data on the computer.
Passed test_cis_win10.py::test_cis_win10[title-check282] 0.00
------------------------------Captured stdout call------------------------------
Prior to Windows Vista, when media containing an autorun command is inserted, the system will automatically execute the program without user intervention. This creates a major security concern as code may be executed without user's knowledge. The default behavior starting with Windows Vista is to prompt the user whether autorun command is to be run. The autorun command is represented as a handler in the Autoplay dialog.
Passed test_cis_win10.py::test_cis_win10[title-check283] 0.00
------------------------------Captured stdout call------------------------------
An attacker could use this feature to launch a program to damage a client computer or data on the computer.
Passed test_cis_win10.py::test_cis_win10[title-check284] 0.00
------------------------------Captured stdout call------------------------------
Enterprise managed environments are now supporting a wider range of mobile devices, increasing the security on these devices will help protect against unauthorized access on your network.
Passed test_cis_win10.py::test_cis_win10[title-check285] 0.00
------------------------------Captured stdout call------------------------------
Cameras in a high security environment can pose serious privacy and data exfiltration risks - they should be disabled to help mitigate that risk.
Passed test_cis_win10.py::test_cis_win10[title-check287] 0.00
------------------------------Captured stdout call------------------------------
Due to privacy concerns, data should never be sent to any 3rd party since this data could contain sensitive information.
Passed test_cis_win10.py::test_cis_win10[title-check288] 0.00
------------------------------Captured stdout call------------------------------
Having apps silently install in an enterprise managed environment is not good security practice - especially if the apps send data back to a 3rd party.
Passed test_cis_win10.py::test_cis_win10[title-check290] 0.00
------------------------------Captured stdout call------------------------------
This is a useful feature when entering a long and complex password, especially when using a touchscreen. The potential risk is that someone else may see your password while surreptitiously observing your screen.
Passed test_cis_win10.py::test_cis_win10[title-check291] 0.00
------------------------------Captured stdout call------------------------------
Users could see the list of administrator accounts, making it slightly easier for a malicious user who has logged onto a console session to try to crack the passwords of those accounts.
Passed test_cis_win10.py::test_cis_win10[title-check292] 0.00
------------------------------Captured stdout call------------------------------
Users could establish security questions that are easily guessed or sleuthed by observing the user’s social media accounts, making it easier for a malicious actor to change the local user account password and gain access to the computer as that user account.
Passed test_cis_win10.py::test_cis_win10[title-check293] 0.00
------------------------------Captured stdout call------------------------------
Sending any data to a 3rd party vendor is a security concern and should only be done on an as needed basis.
Passed test_cis_win10.py::test_cis_win10[title-check294] 0.00
------------------------------Captured stdout call------------------------------
Sending any data to a 3rd party vendor is a security concern and should only be done on an as needed basis.
Passed test_cis_win10.py::test_cis_win10[title-check295] 0.00
------------------------------Captured stdout call------------------------------
Sending data to a 3rd party vendor is a security concern and should only be done on an asneeded basis.
Passed test_cis_win10.py::test_cis_win10[title-check296] 0.00
------------------------------Captured stdout call------------------------------
Users should not be sending any feedback to 3rd party vendors in an enterprise managed environment.
Passed test_cis_win10.py::test_cis_win10[title-check297] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check298] 0.00
------------------------------Captured stdout call------------------------------
Sending data to a 3rd-party vendor is a security concern and should only be done on an asneeded basis.
Passed test_cis_win10.py::test_cis_win10[title-check300] 0.00
------------------------------Captured stdout call------------------------------
It can be risky for experimental features to be allowed in an enterprise managed environment because this can introduce bugs and security holes into systems, making it easier for an attacker to gain access. It is generally preferred to only use production-ready builds.
Passed test_cis_win10.py::test_cis_win10[title-check301] 0.00
------------------------------Captured stdout call------------------------------
Due to privacy concerns and security risks, updates should only be downloaded directly from Microsoft, or from a trusted machine on the internal network that received its updates from a trusted source and approved by the network administrator.
Passed test_cis_win10.py::test_cis_win10[title-check302] 0.00
------------------------------Captured stdout call------------------------------
If new events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check303] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check304] 0.00
------------------------------Captured stdout call------------------------------
If new events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check305] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check306] 0.00
------------------------------Captured stdout call------------------------------
If new events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check307] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check308] 0.00
------------------------------Captured stdout call------------------------------
If new events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check309] 0.00
------------------------------Captured stdout call------------------------------
If events are not recorded it may be difficult or impossible to determine the root cause of system problems or the unauthorized activities of malicious users.
Passed test_cis_win10.py::test_cis_win10[title-check310] 0.00
------------------------------Captured stdout call------------------------------
Data Execution Prevention is an important security feature supported by Explorer that helps to limit the impact of certain types of malware.
Passed test_cis_win10.py::test_cis_win10[title-check311] 0.00
------------------------------Captured stdout call------------------------------
Allowing an application to function after its session has become corrupt increases the risk posture to the system.
Passed test_cis_win10.py::test_cis_win10[title-check312] 0.00
------------------------------Captured stdout call------------------------------
Limiting the opening of files and folders to a limited set reduces the attack surface of the system.
Passed test_cis_win10.py::test_cis_win10[title-check313] 0.00
------------------------------Captured stdout call------------------------------
While resources on a domain-joined computer cannot be shared with a HomeGroup, information from the domain-joined computer can be leaked to other computers in the HomeGroup.
Passed test_cis_win10.py::test_cis_win10[title-check314] 0.00
------------------------------Captured stdout call------------------------------
This setting affects the location feature (e.g. GPS or other location tracking). From a security perspective, it's not a good idea to reveal your location to software in most cases, but there are legitimate uses, such as mapping software. However, they should not be used in high security environments.
Passed test_cis_win10.py::test_cis_win10[title-check315] 0.00
------------------------------Captured stdout call------------------------------
In a high security environment, data should never be sent to any 3rd party since this data could contain sensitive information.
Passed test_cis_win10.py::test_cis_win10[title-check316] 0.00
------------------------------Captured stdout call------------------------------
Organizations that want to effectively implement identity management policies and maintain firm control of what accounts are used on their computers will probably want to block Microsoft accounts. Organizations may also need to block Microsoft accounts in order to meet the requirements of compliance standards that apply to their information systems.
Passed test_cis_win10.py::test_cis_win10[title-check317] 0.00
------------------------------Captured stdout call------------------------------
The decision on whether or not to participate in Microsoft MAPS / Windows Defender Antivirus Cloud Protection Service for malicious software reporting should be made centrally in an enterprise managed environment, so that all computers within it behave consistently in that regard. Configuring this setting to Disabled ensures that the decision remains centrally managed.
Passed test_cis_win10.py::test_cis_win10[title-check318] 0.00
------------------------------Captured stdout call------------------------------
The information that would be sent can include things like location of detected items on your computer if harmful software was removed. The information would be automatically collected and sent. In some instances personal information might unintentionally be sent to Microsoft. However, Microsoft states that it will not use this information to identify you or contact you. For privacy reasons in high security environments, it is best to prevent these data submissions altogether.
Passed test_cis_win10.py::test_cis_win10[title-check319] 0.00
------------------------------Captured stdout call------------------------------
Attack surface reduction helps prevent actions and apps that are typically used by exploitseeking malware to infect machines.
Passed test_cis_win10.py::test_cis_win10[title-check321] 0.00
------------------------------Captured stdout call------------------------------
This setting can help prevent employees from using any application to access dangerous domains that may host phishing scams, exploit-hosting sites, and other malicious content on the Internet.
Passed test_cis_win10.py::test_cis_win10[title-check324] 0.00
------------------------------Captured stdout call------------------------------
When running an antivirus solution such as Microsoft Defender Antivirus, it is important to ensure that it is configured to heuristically monitor in real-time for suspicious and known malicious activity.
Passed test_cis_win10.py::test_cis_win10[title-check325] 0.00
------------------------------Captured stdout call------------------------------
When running an antivirus solution such as Microsoft Defender Antivirus, it is important to ensure that it is configured to heuristically monitor in real-time for suspicious and known malicious activity.
Passed test_cis_win10.py::test_cis_win10[title-check326] 0.00
------------------------------Captured stdout call------------------------------
When running an antivirus solution such as Microsoft Defender Antivirus, it is important to ensure that it is configured to heuristically monitor in real-time for suspicious and known malicious activity.
Passed test_cis_win10.py::test_cis_win10[title-check328] 0.00
------------------------------Captured stdout call------------------------------
It is important to ensure that any present removable drives are always included in any type of scan, as removable drives are more likely to contain malicious software brought in to the enterprise managed environment from an external, unmanaged computer.
Passed test_cis_win10.py::test_cis_win10[title-check329] 0.00
------------------------------Captured stdout call------------------------------
Incoming e-mails should be scanned by an antivirus solution such as Windows Defender Antivirus, as email attachments are a commonly used attack vector to infiltrate computers with malicious software.
Passed test_cis_win10.py::test_cis_win10[title-check333] 0.00
------------------------------Captured stdout call------------------------------
Enabling this setting prevents users from accidentally uploading confidential or sensitive corporate information to the OneDrive cloud service using the Next Generation Sync Client.
Passed test_cis_win10.py::test_cis_win10[title-check334] 0.00
------------------------------Captured stdout call------------------------------
In a high security managed environment, application installations should be managed centrally by IT staff, not by end users.
Passed test_cis_win10.py::test_cis_win10[title-check335] 0.00
------------------------------Captured stdout call------------------------------
An attacker with physical access to the computer may be able to break the protection guarding saved passwords. An attacker who compromises a user's account and connects to their computer could use saved passwords to gain access to additional hosts.
Passed test_cis_win10.py::test_cis_win10[title-check336] 0.00
------------------------------Captured stdout call------------------------------
Any account with the Allow log on through Remote Desktop Services user right can log on to the remote console of the computer. If you do not restrict access to legitimate users who need to log on to the console of the computer, unauthorized users could download and execute malicious code to elevate their privileges.
Passed test_cis_win10.py::test_cis_win10[title-check338] 0.00
------------------------------Captured stdout call------------------------------
In a more security-sensitive environment, it is desirable to reduce the possible attack surface. The need for COM port redirection within a Remote Desktop session is very rare, so makes sense to reduce the number of unexpected avenues for data exfiltration and/or malicious code transfer.
Passed test_cis_win10.py::test_cis_win10[title-check339] 0.00
------------------------------Captured stdout call------------------------------
Data could be forwarded from the user's Remote Desktop Services session to the user's local computer without any direct user interaction. Malicious software already present on a compromised server would have direct and stealthy disk access to the user's local computer during the Remote Desktop session.
Passed test_cis_win10.py::test_cis_win10[title-check341] 0.00
------------------------------Captured stdout call------------------------------
In a more security-sensitive environment, it is desirable to reduce the possible attack surface. The need for LPT port redirection within a Remote Desktop session is very rare, so makes sense to reduce the number of unexpected avenues for data exfiltration and/or malicious code transfer.
Passed test_cis_win10.py::test_cis_win10[title-check342] 0.00
------------------------------Captured stdout call------------------------------
In a more security-sensitive environment, it is desirable to reduce the possible attack surface. The need for Plug and Play device redirection within a Remote Desktop session is very rare, so makes sense to reduce the number of unexpected avenues for data exfiltration and/or malicious code transfer.
Passed test_cis_win10.py::test_cis_win10[title-check343] 0.00
------------------------------Captured stdout call------------------------------
Users have the option to store both their username and password when they create a new Remote Desktop Connection shortcut. If the server that runs Remote Desktop Services allows users who have used this feature to log on to the server but not enter their password, then it is possible that an attacker who has gained physical access to the user's computer could connect to a Remote Desktop Server through the Remote Desktop Connection shortcut, even though they may not know the user's password.
Passed test_cis_win10.py::test_cis_win10[title-check349] 0.00
------------------------------Captured stdout call------------------------------
This setting helps to prevent active Remote Desktop sessions from tying up the computer for long periods of time while not in use, preventing computing resources from being consumed by large numbers of disconnected but still active sessions. In addition, old, forgotten Remote Desktop sessions that are still active can cause password lockouts if the user's password has changed but the old session is still running. For systems that limit the number of connected users (e.g. servers in the default Administrative mode - 2 sessions only), other users' old but still active sessions can prevent another user from connecting, resulting in an effective denial of service. This setting is important to ensure a disconnected session is properly terminated.
Passed test_cis_win10.py::test_cis_win10[title-check350] 0.00
------------------------------Captured stdout call------------------------------
Sensitive information could be contained inside the temporary folders and visible to other administrators that log into the system.
Passed test_cis_win10.py::test_cis_win10[title-check351] 0.00
------------------------------Captured stdout call------------------------------
Allowing attachments to be downloaded through the RSS feed can introduce files that could have malicious intent.
Passed test_cis_win10.py::test_cis_win10[title-check352] 0.00
------------------------------Captured stdout call------------------------------
Due to privacy concerns, data should never be sent to any 3rd party since this data could contain sensitive information.
Passed test_cis_win10.py::test_cis_win10[title-check353] 0.00
------------------------------Captured stdout call------------------------------
If Cortana is enabled, sensitive information could be contained in search history and sent out to Microsoft.
Passed test_cis_win10.py::test_cis_win10[title-check354] 0.00
------------------------------Captured stdout call------------------------------
Access to any computer resource should not be allowed when the device is locked.
Passed test_cis_win10.py::test_cis_win10[title-check355] 0.00
------------------------------Captured stdout call------------------------------
Indexing and allowing users to search encrypted files could potentially reveal confidential data stored within the encrypted files.
Passed test_cis_win10.py::test_cis_win10[title-check356] 0.00
------------------------------Captured stdout call------------------------------
In an enterprise managed environment, allowing Cortana and Search to have access to location data is unnecessary. Organizations likely do not want this information shared out
Passed test_cis_win10.py::test_cis_win10[title-check357] 0.00
------------------------------Captured stdout call------------------------------
Even though the KMS licensing method does not require KMS clients to connect to Microsoft, they still send KMS client activation state data to Microsoft automatically. Preventing this information from being sent can help reduce privacy concerns in high security environments.
Passed test_cis_win10.py::test_cis_win10[title-check360] 0.00
------------------------------Captured stdout call------------------------------
Keeping your system properly patched can help protect against 0 day vulnerabilities.
Passed test_cis_win10.py::test_cis_win10[title-check361] 0.00
------------------------------Captured stdout call------------------------------
Unplanned OS upgrades can lead to more preventable support calls. The IT department should be managing and approving all upgrades and updates.
Passed test_cis_win10.py::test_cis_win10[title-check362] 0.00
------------------------------Captured stdout call------------------------------
Only applications approved by an IT department should be installed. Allowing users to install 3rd party applications can lead to missed patches and potential zero day vulnerabilities.
Passed test_cis_win10.py::test_cis_win10[title-check364] 0.00
------------------------------Captured stdout call------------------------------
Windows SmartScreen helps keep PCs safer by warning users before running unrecognized programs downloaded from the Internet. However, due to the fact that some information is sent to Microsoft about files and programs run on PCs some organizations may prefer to disable it.
Passed test_cis_win10.py::test_cis_win10[title-check365] 0.00
------------------------------Captured stdout call------------------------------
SmartScreen serves an important purpose as it helps to warn users of possible malicious sites and files. Allowing users to turn off this setting can make the browser become more vulnerable to compromise.
Passed test_cis_win10.py::test_cis_win10[title-check368] 0.00
------------------------------Captured stdout call------------------------------
This Microsoft feature is designed to collect data and suggest apps based on that data collected. Disabling this setting will help ensure your data is not shared with any third party.
Passed test_cis_win10.py::test_cis_win10[title-check369] 0.00
------------------------------Captured stdout call------------------------------
Allowing any apps to be accessed while system is locked is not recommended. If this feature is permitted, it should only be accessible once a user authenticates with the proper credentials.
Passed test_cis_win10.py::test_cis_win10[title-check370] 0.00
------------------------------Captured stdout call------------------------------
In an enterprise managed environment, only IT staff with administrative rights should be installing or changing software on a system. Allowing users the ability to have any control over installs can risk unapproved software from being installed or removed from a system, which could cause the system to become vulnerable to compromise.
Passed test_cis_win10.py::test_cis_win10[title-check371] 0.00
------------------------------Captured stdout call------------------------------
Users with limited privileges can exploit this feature by creating a Windows Installer installation package that creates a new local account that belongs to the local built-in Administrators group, adds their current account to the local built-in Administrators group, installs malicious software, or performs other unauthorized activities.
Passed test_cis_win10.py::test_cis_win10[title-check372] 0.00
------------------------------Captured stdout call------------------------------
Suppressing the system warning can pose a security risk and increase the attack surface on the system.
Passed test_cis_win10.py::test_cis_win10[title-check373] 0.00
------------------------------Captured stdout call------------------------------
Disabling this feature will prevent the caching of user's credentials and unauthorized use of the device, and also ensure the user is aware of the restart.
Passed test_cis_win10.py::test_cis_win10[title-check375] 0.00
------------------------------Captured stdout call------------------------------
If this setting is enabled there is a risk that passwords could get stored in plain text in the PowerShell_transcript output file.
Passed test_cis_win10.py::test_cis_win10[title-check376] 0.00
------------------------------Captured stdout call------------------------------
Basic authentication is less robust than other authentication methods available in WinRM because credentials including passwords are transmitted in plain text. An attacker who is able to capture packets on the network where WinRM is running may be able to determine the credentials used for accessing remote hosts via WinRM.
Passed test_cis_win10.py::test_cis_win10[title-check377] 0.00
------------------------------Captured stdout call------------------------------
Encrypting WinRM network traffic reduces the risk of an attacker viewing or modifying WinRM messages as they transit the network.
Passed test_cis_win10.py::test_cis_win10[title-check378] 0.00
------------------------------Captured stdout call------------------------------
Digest authentication is less robust than other authentication methods available in WinRM, an attacker who is able to capture packets on the network where WinRM is running may be able to determine the credentials used for accessing remote hosts via WinRM.
Passed test_cis_win10.py::test_cis_win10[title-check379] 0.00
------------------------------Captured stdout call------------------------------
Basic authentication is less robust than other authentication methods available in WinRM because credentials including passwords are transmitted in plain text. An attacker who is able to capture packets on the network where WinRM is running may be able to determine the credentials used for accessing remote hosts via WinRM.
Passed test_cis_win10.py::test_cis_win10[title-check380] 0.00
------------------------------Captured stdout call------------------------------
Any feature is a potential avenue of attack, those that enable inbound network connections are particularly risky. Only enable the use of the Windows Remote Management (WinRM) service on trusted networks and when feasible employ additional controls such as IPsec.
Passed test_cis_win10.py::test_cis_win10[title-check381] 0.00
------------------------------Captured stdout call------------------------------
Any feature is a potential avenue of attack, those that enable inbound network connections are particularly risky. Only enable the use of the Windows Remote Management (WinRM) service on trusted networks and when feasible employ additional controls such as IPsec.
Passed test_cis_win10.py::test_cis_win10[title-check382] 0.00
------------------------------Captured stdout call------------------------------
Encrypting WinRM network traffic reduces the risk of an attacker viewing or modifying WinRM messages as they transit the network.
Passed test_cis_win10.py::test_cis_win10[title-check383] 0.00
------------------------------Captured stdout call------------------------------
Any feature is a potential avenue of attack, those that enable inbound network connections are particularly risky. Only enable the use of the Windows Remote Shell on trusted networks and when feasible employ additional controls such as IPsec.
Passed test_cis_win10.py::test_cis_win10[title-check384] 0.00
------------------------------Captured stdout call------------------------------
Disabling copy and paste decreases the attack surface exposed by the Windows Sandbox and possible exposure of untrusted applications to the internal network.
Passed test_cis_win10.py::test_cis_win10[title-check386] 0.00
------------------------------Captured stdout call------------------------------
Only authorized IT staff should be able to make changes to the exploit protection settings in order to ensure the organizations specific configuration is not modified.
Passed test_cis_win10.py::test_cis_win10[title-check387] 0.00
------------------------------Captured stdout call------------------------------
Some security updates require that the computer be restarted to complete an installation. If the computer cannot restart automatically, then the most recent update will not completely install and no new updates will download to the computer until it is restarted. Without the auto-restart functionality, users who are not security-conscious may choose to indefinitely delay the restart, therefore keeping the computer in a less secure state.
Passed test_cis_win10.py::test_cis_win10[title-check388] 0.00
------------------------------Captured stdout call------------------------------
Although each version of Windows is thoroughly tested before release, it is possible that problems will be discovered after the products are shipped. The Configure Automatic Updates setting can help you ensure that the computers in your environment will always have the most recent critical operating system updates and service packs installed.
Passed test_cis_win10.py::test_cis_win10[title-check391] 0.00
------------------------------Captured stdout call------------------------------
It can be risky for experimental features to be allowed in an enterprise managed environment because this can introduce bugs and security holes into systems, making it easier for an attacker to gain access. It is generally preferred to only use production-ready builds.
Passed test_cis_win10.py::test_cis_win10[title-check393] 0.00
------------------------------Captured stdout call------------------------------
Quality Updates can contain important bug fixes and/or security patches, and should be installed as soon as possible.