STIGQter STIGQter: STIG Summary: MS SQL Server 2014 Instance Security Technical Implementation Guide Version: 1 Release: 10 Benchmark Date: 24 Apr 2020:

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

DISA Rule

SV-82249r1_rule

Vulnerability Number

V-67759

Group Title

SRG-APP-000023-DB-000001

Rule Version

SQL4-00-030300

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; 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 on "OK." Restart the SQL Server instance.

Alternatively, run the statement:
EXEC xp_instance_regwrite
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'LoginMode',
REG_DWORD,
1;
Restart the SQL Server instance.

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

To drop or disable a Login in the SSMS Object Explorer:
Navigate to <server name> >> Security >> Logins.
Right-click on the Login name; click on Delete or Disable.

To drop or disable a Login by using a query:
USE master;
DROP LOGIN <login name>;
ALTER LOGIN <login name> DISABLE;

Dropping a Login does not delete the equivalent database User(s). There may be more than one database containing a User mapped to the Login. Drop the User(s) unless still needed..

To drop a User in the SSMS Object Explorer:
Navigate to <server name> >> Databases >> <database name> >> Security >> Users.
Right-click on the User name; click on Delete.

To drop a User via a query:
USE <database name>;
DROP USER <user name>;

Check Contents

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.

Alternatively, in a query interface such as the SSMS Transact-SQL editor, run the statement:
EXECUTE xp_instance_regread
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'LoginMode';

If the returned value in the "Data" column is 1, 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.sql_logins
WHERE
type_desc = 'SQL_LOGIN'
AND is_disabled = 0;

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

Vulnerability Number

V-67759

Documentable

False

Rule Version

SQL4-00-030300

Severity Override Guidance

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.

Alternatively, in a query interface such as the SSMS Transact-SQL editor, run the statement:
EXECUTE xp_instance_regread
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'LoginMode';

If the returned value in the "Data" column is 1, 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.sql_logins
WHERE
type_desc = 'SQL_LOGIN'
AND is_disabled = 0;

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

Check Content Reference

M

Target Key

2639

Comments