controls::symmetric key encryption algorithm is set to aes 128 or higher in non system databases
Overview
Per the Microsoft Best Practices, only the SQL Server AES algorithm options, AES_128, AES_192, and AES_256, should be used for a symmetric key encryption algorithm.
The following algorithms (as referred to by SQL Server) are considered weak or deprecated and should no longer be used in SQL Server: DES, DESX, RC2, RC4, RC4_128.
Many organizations may accept the Triple DES algorithms (TDEA) which use keying options 1 (3 key aka 3TDEA) or keying option 2 (2 key aka 2TDEA). In SQL Server, these are referred to as TRIPLE_DES_3KEY and TRIPLE_DES respectively. Additionally, the SQL Server algorithm named DESX is actually the same implementation as the TRIPLE_DES_3KEY option. However, using the DESX identifier as the algorithm type has been deprecated and its usage is now discouraged.
Excelent Compliance Solution.
Puppet is an excellent solution to ensure your databases are CIS or STIG compliant. Now you’re looking at information about only one compliance control, but managing total compliance isn’t hard either!
If you you like he prospect of easy way into continuous compliancy with minimal fuss and bother, we suggest taking a look at our solution as your go-to option. Plus, our team can help you get up and running so that you can focus on other areas of your business. What are you waiting for? Get started today!
Benchmarks
This control is used in the following benchmarks:
- Microsoft SQL Server Database 2014 CIS V1.5.0 - paragraph 7.1
- Microsoft SQL Server Database 2016 CIS V1.3.0 - paragraph 7.1
- Microsoft SQL Server Database 2017 CIS V1.2.0 - paragraph 7.1
- Microsoft SQL Server Database 2019 CIS V1.2.0 - paragraph 7.1
Skipping
To deliberately skip this control (e.g. meaning don’t use Puppet to enforce this setting), we provide you with three ways:
1) Add mssql_secured::controls::symmetric_key_encryption_algorithm_is_set_to_aes_128_or_higher_in_non_system_databases: skip
to your hiera data. This will skip this control for ALL databases.
2) Add mssql_secured::controls::symmetric_key_encryption_algorithm_is_set_to_aes_128_or_higher_in_non_system_databases::dbname: skip
to your hiera data. This will skip this control for specified database only.
3) Add an entry with the content symmetric_key_encryption_algorithm_is_set_to_aes_128_or_higher_in_non_system_databases
to the array value mssql_secured::skip_list
in your hiera data.
Attributes
Attribute Name | Short Description |
---|---|
title | The database to apply the control to. |
title
The database to apply the control to.
All controls need an database to apply the control to. Here is a simple example:
mssql_secured::controls::control_name {'MSSQLSERVER':}
In this example, the string DB is the database to apply the control to.