STIGQter STIGQter: STIG Summary: MS SQL Server 2016 Database Security Technical Implementation Guide Version: 2 Release: 1 Benchmark Date: 23 Oct 2020:

SQL Server databases must integrate with an organization-level authentication/access mechanism providing account management and automation for all users, groups, roles, and any other principals.

DISA Rule

SV-213900r508025_rule

Vulnerability Number

V-213900

Group Title

SRG-APP-000023-DB-000001

Rule Version

SQL6-D0-000100

Severity

CAT II

CCI(s)

Weight

10

Fix Recommendation

If mixed mode is required, document the need and justification; describe the measures taken to ensure the use of SQL Server authentication is kept to a minimum; describe the measures taken to safeguard passwords; list or describe the SQL Logins used; and obtain official approval.

If mixed mode is not required, disable it as follows: 

In the SSMS Object Explorer, right-click on the server instance >> Select "Properties" >> Select the Security page >> Click on the radio button for Windows Authentication Mode >> Click "OK"

Restart the SQL Server instance. 

OR

Run the statement: 
USE [master]
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
GO

Restart the SQL Server instance. 

For each account being managed by SQL Server but not requiring it, drop or disable the SQL Database user. Replace it with an appropriately configured account, as needed.

To drop a User in the SSMS Object Explorer: 
Navigate to Databases >> Security Users >> Right-click on the User name >> Click "Delete"

To drop a User via a query: 
USE database_name;
DROP USER <user_name>;

Check Contents

Determine if SQL Server is configured to allow the use of contained databases.

In the Object Explorer in SQL Server Management Studio (SSMS), Right-click on the server instance >> Select "Properties" >> Select the Advanced page

If "Enabled Contained Databases" is "False", this is not a finding.

OR

In a query interface such as the SSMS Transact-SQL editor, run the statement:
EXEC sp_configure 'contained database authentication'

If the returned value in the "config_value" and/or "run_value" column is 0, this is not a finding.

Determine whether SQL Server is configured to use only Windows authentication.

In the Object Explorer in SQL Server Management Studio (SSMS), right-click on the server instance; select "Properties". Select the Security page. If Windows Authentication Mode is selected, this is not a finding.

OR

In a query interface such as the SSMS Transact-SQL editor, run the statement:

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

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

Mixed mode (both SQL Server authentication and Windows authentication) is in use. If the need for mixed mode has not been documented and approved, this is a finding.

From the documentation, obtain the list of accounts authorized to be managed by SQL Server.

Determine the accounts (SQL Logins) actually managed by SQL Server. Run the statement:

SELECT name
FROM sys.database_principals
WHERE type_desc = 'SQL_USER'
AND authentication_type_desc = 'DATABASE';

If any accounts listed by the query are not listed in the documentation, this is a finding.

Risk must be accepted by the ISSO/ISSM.

Vulnerability Number

V-213900

Documentable

False

Rule Version

SQL6-D0-000100

Severity Override Guidance

Determine if SQL Server is configured to allow the use of contained databases.

In the Object Explorer in SQL Server Management Studio (SSMS), Right-click on the server instance >> Select "Properties" >> Select the Advanced page

If "Enabled Contained Databases" is "False", this is not a finding.

OR

In a query interface such as the SSMS Transact-SQL editor, run the statement:
EXEC sp_configure 'contained database authentication'

If the returned value in the "config_value" and/or "run_value" column is 0, this is not a finding.

Determine whether SQL Server is configured to use only Windows authentication.

In the Object Explorer in SQL Server Management Studio (SSMS), right-click on the server instance; select "Properties". Select the Security page. If Windows Authentication Mode is selected, this is not a finding.

OR

In a query interface such as the SSMS Transact-SQL editor, run the statement:

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

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

Mixed mode (both SQL Server authentication and Windows authentication) is in use. If the need for mixed mode has not been documented and approved, this is a finding.

From the documentation, obtain the list of accounts authorized to be managed by SQL Server.

Determine the accounts (SQL Logins) actually managed by SQL Server. Run the statement:

SELECT name
FROM sys.database_principals
WHERE type_desc = 'SQL_USER'
AND authentication_type_desc = 'DATABASE';

If any accounts listed by the query are not listed in the documentation, this is a finding.

Risk must be accepted by the ISSO/ISSM.

Check Content Reference

M

Target Key

3992

Comments