UCF STIG Viewer Logo

If DBMS authentication using passwords is employed, SQL Server must enforce the DOD standards for password complexity and lifetime.


Overview

Finding ID Version Rule ID IA Controls Severity
V-213964 SQL6-D0-007900 SV-213964r951662_rule High
Description
Windows Authentication is the default authentication mode and is much more secure than SQL Server Authentication. Windows Authentication uses Kerberos security protocol, provides password policy enforcement with regard to complexity validation for strong passwords, provides support for account lockout, and supports password expiration. A connection made using Windows Authentication is sometimes called a trusted connection, because SQL Server trusts the credentials provided by Windows. By using Windows Authentication, Windows groups can be created at the domain level, and a login can be created on SQL Server for the entire group. Managing access at the domain level can simplify account administration. OS/enterprise authentication and identification must be used (SRG-APP-000023-DB-000001). Native SQL Server authentication may be used only when circumstances make it unavoidable and must be documented and AO-approved. The DOD standard for authentication is DOD-approved PKI certificates. Authentication based on User ID and Password may be used only when it is not possible to employ a PKI certificate and requires AO approval. In such cases, the DOD standards for password complexity and lifetime must be implemented. DBMS products that can inherit the rules for these from the operating system or access control program (e.g., Microsoft Active Directory) must be configured to do so. For other DBMSs, the rules must be enforced using available configuration parameters or custom code.
STIG Date
MS SQL Server 2016 Instance Security Technical Implementation Guide 2024-02-19

Details

Check Text ( C-15181r951660_chk )
Check for use of SQL Server Authentication:

SELECT CASE SERVERPROPERTY('IsIntegratedSecurityOnly') WHEN 1 THEN 'Windows Authentication' WHEN 0 THEN 'SQL Server Authentication' END as [Authentication Mode]

If the returned value in the "Authentication Mode" column is "Windows Authentication", this is not a finding.

If the returned value in the "Authentication Mode" column is "SQL Server Authentication", SQL Server should be configured to inherit password complexity and password lifetime rules from the operating system.

Review SQL Server to ensure logons are created with respect to the complexity settings and password lifetime rules by running the statement:

SELECT [name], is_expiration_checked, is_policy_checked
FROM sys.sql_logins

Review any accounts returned by the query other than the disabled SA account, ##MS_PolicyTsqlExecutionLogin##, and ##MS_PolicyEventProcessingLogin##.

If any account does not have both "is_expiration_checked" and "is_policy_checked" equal to “1”, this is a finding.

Review the operating system settings relating to password complexity.

To check the server operating system for password complexity:

Navigate to Start >> All Programs >> Administrative Tools >> Local Security Policy, and to review the local policies on the machine, go to Account Policy >> Password Policy.

Ensure the DISA Windows Password Policy is set on the SQL Server member server. If any are not, this is a finding.
Fix Text (F-15179r951661_fix)
When possible, use Windows authentication.

If using SQL Server authentication, configure the SQL Server operating system and SQL Server logins for compliance.

1. Ensure the password complexity requirements for the corresponding DISA Windows Server Security Technical Implementation Guide are met on the server where the SQL Server Instance is installed.

2. Ensure SQL Server is configured to inherit password complexity rules from the operating system for SQL logins. Ensure check of policy and expiration are enforced when SQL logins are created.

CREATE LOGIN WITH PASSWORD= , CHECK_EXPIRATION = ON, CHECK_POLICY = ON;