Microsoft DotNet Framework 4.0 STIG

  • Version/Release: V1R7
  • Published: 2020-04-24
  • Severity:
  • Sort:
View

Select any old version/release of this SCAP to view the previous requirements

Applicable to systems and applications utilizing the Microsoft .Net version 4.0 framework.
b
Digital signatures assigned to strongly named assemblies must be verified.
RMF Control
Severity
Medium
CCI
Version
APPNET0031
Vuln IDs
V-7055
Rule IDs
SV-7438r3_rule
A strong name consists of the assembly's identity, simple text name, version number, and culture information (if provided)—plus a public key and a digital signature. Strong names serve to identify the author of the code. If digital signatures used to sign strong name assemblies are not verified, any self signed code can be impersonated. This can lead to a loss of system integrity. System Administrator
Fix: F-12596r7_fix

Use regedit to remove the values stored in Windows registry key HKLM\Software\Microsoft\StrongName\Verification. There should be no assemblies or hash values listed under this registry key. All assemblies must require strong name verification in a production environment. Strong name assemblies that do not require verification in a development or test environment must have documented approvals from the IAO.

b
The Trust Providers Software Publishing State must be set to 0x23C00.
RMF Control
Severity
Medium
CCI
Version
APPNET0046
Vuln IDs
V-7061
Rule IDs
SV-7444r3_rule
Microsoft Windows operating systems provide a feature called Authenticode. Authenticode technology and its underlying code signing mechanisms serve to provide a structure to identify software publishers and ensure that software applications have not been tampered with. Authenticode technology relies on digital certificates and is based on Public Key Cryptography Standards (PKCS) #7 (encrypted key specification), PKCS #10 (certificate request formats), X.509 (certificate specification), and Secure Hash Algorithm (SHA) and MD5 hash algorithms. The manner in which the Authenticode technology validates a certificate and determines what is considered a valid certificate can be modified to meet the mission of the Microsoft Windows system. Each facade of certificate validation is controlled through the bits that makeup the hexadecimal value for the Authenticode setting. An improper setting will allow non-valid certificates to be accepted and can put the integrity of the system into jeopardy. The hexadecimal value of 0x23C00 will implement the following certificate enforcement policy: - Trust the Test Root = FALSE - Use expiration date on certificates = TRUE - Check the revocation list = TRUE - Offline revocation server OK (Individual) = TRUE - Offline revocation server OK (Commercial) = TRUE - Java offline revocation server OK (Individual) = TRUE - Java offline revocation server OK (Commercial) = TRUE - Invalidate version 1 signed objects = FALSE - Check the revocation list on Time Stamp Signer = FALSE - Only trust items found in the Trust DB = FALSE System Administrator
Fix: F-12602r12_fix

This fix must be performed for each user on the system. Using regedit, change the hexadecimal value of the "HKEY_USER\[UNIQUE USER SID VALUE]\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing\State" registry key to 0x23C00.

b
The .NET CLR must be configured to use FIPS approved encryption modules.
RMF Control
Severity
Medium
CCI
Version
APPNET0062
Vuln IDs
V-30926
Rule IDs
SV-40966r1_rule
FIPS encryption is configured via .NET configuration files. There are numerous configuration files that affect different aspects of .Net behavior. The .NET config files are described below. Machine Configuration Files: The machine configuration file, Machine.config, contains settings that apply to an entire computer. This file is located in the %SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319\Config directory for 32 bit .NET 4 installations and %SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\Config for 64 bit systems. Machine.config contains configuration settings for machine-wide assembly binding, built-in remoting channels, and ASP.NET. Application Configuration Files: Application configuration files contain settings specific to an application. If checking these files, a .NET review of a specific .NET application is most likely being conducted. These files contain configuration settings that the Common Language Runtime reads (such as assembly binding policy, remoting objects, and so on), and settings that the application can read. The name and location of the application configuration file depends on the application's host, which can be one of the following: Executable–hosted application configuration files. The configuration file for an application hosted by the executable host is in the same directory as the application. The name of the configuration file is the name of the application with a .config extension. For example, an application called myApp.exe can be associated with a configuration file called myApp.exe.config. Internet Explorer-hosted application configuration files. If an application hosted in Internet Explorer has a configuration file, the location of this file is specified in a tag with the following syntax. In this tag, "location" represents a URL that point to the configuration file. This sets the application base. The configuration file must be located on the same web site as the application. .NET 4.0 allows the CLR runtime to be configured to ignore FIPS encryption requirements. If the CLR is not configured to use FIPS encryption modules, insecure encryption modules might be employed which could introduce an application confidentiality or integrity issue. System AdministratorWeb AdministratorDCNR-1
Fix: F-34734r4_fix

Examine the .NET CLR configuration files to find the runtime element and then the "enforceFIPSPolicy" element. Example: <configuration> <runtime> <enforceFIPSPolicy enabled="true|false" /> </runtime> </configuration> Delete the "enforceFIPSPolicy" runtime element, change the setting to "true" or there must be documented IAO approvals for the FIPS setting.

b
Event tracing for Windows (ETW) for Common Language Runtime events must be enabled.
RMF Control
Severity
Medium
CCI
Version
APPNET0067
Vuln IDs
V-31026
Rule IDs
SV-41075r1_rule
Event tracing captures information about applications utilizing the .NET CLR and the .NET CLR itself. This includes security oriented information, such as Strong Name and Authenticode verification. Beginning with Windows Vista, ETW is enabled by default however, the .Net CLR and .Net applications can be configured to not utilize Event Tracing. If ETW event tracing is disabled, critical events that occurred within the runtime will not be captured in event logs.DCSL-1
Fix: F-34847r6_fix

Open Windows explorer and search for all .NET config files including application config files (*.exe.config). Examine the configuration settings for <etwEnable enabled="false" />. Enable ETW Tracing by setting the etwEnable flag to "true" or obtain documented IAO approvals.

b
Disable TLS RC4 cipher in .Net
RMF Control
CM-7
Severity
Medium
CCI
CCI-001762
Version
APPNET0075
Vuln IDs
V-81495
Rule IDs
SV-96209r2_rule
Use of the RC4 cipher in TLS could allow an attacker to perform man-in-the-middle attacks and recover plaintext from encrypted sessions. Applications that target .Net version 4.x running on multiple Windows versions could be vulnerable to these types of attacks. The registry settings in this requirement will prevent .Net applications that target the 4.x framework from selecting and utilizing the Schannel.dll RC4 cipher for TLS connections. Applications that use TLS when connecting to remote systems will perform a handshake and negotiate the TLS version and cipher that is to be used between the client and the server. This is standard protocol for all TLS connections. If the server and client are not configured to use the same TLS version and cipher, the TLS connection may fail. Applications should be tested with these registry settings prior to production implementation of the fix in order to avoid application outages.System Administrator
Fix: F-88319r3_fix

Use regedit to access the following registry key. For 32-bit systems: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\ For 64-bit systems: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\ Modify or create the following Windows registry value: SchUseStrongCrypto Set SchUseStrongCrypto to a REG_DWORD value of “1”.