Select any two versions of this STIG to compare the individual requirements
Select any old version/release of this STIG to view the previous requirements
Review the ASA configuration to determine if VPN events are logged as shown in the example below. logging class vpn trap notifications logging class vpnc trap notifications logging class vpnfo trap notifications logging class webfo trap notifications logging class webvpn trap notifications logging class svc trap notifications Note: A logging list can be used as an alternative to using class. If the ASA is not configured to log entries containing information to establish what type of VPN events occurred, this is a finding.
Configure the ASA to generate logs containing information to establish what type of VPN events occurred as shown in the example below. ciscoasa(config)# logging class vpn trap notifications ciscoasa(config)# logging class vpnc trap notifications ciscoasa(config)# logging class vpnfo trap notifications ciscoasa(config)# logging class webvpn trap notifications ciscoasa(config)# logging class webfo trap notifications ciscoasa(config)# logging class svc trap notifications ciscoasa(config)# end
Verify that the logging timestamp command has been configured as shown below. logging enable logging timestamp If the ASA is not configured to generate traffic log entries containing information to establish when the events occurred, this is a finding.
Configure the ASA to generate traffic log entries containing information to establish when the events occurred. ASA(config)# logging timestamp
If the ASA is configured to send syslog messages to a TCP-based syslog server, and if the syslog server is down new connections are blocked. To continue to allow new connections and queue log records verify that the logging permit-hostdown and the queue size has been increased (default is 512). logging enable … … … logging queue 8192 logging host NDM_INTERFACE 10.1.22.2 6/1514 logging permit-hostdown If the ASA is not configured to queue log records locally in the event that the central audit server is down or not reachable, this is a finding.
To continue to allow new connections and queue log records in the event the syslog server is not reachable, configure logging permit-hostdown and increase the queue size. ASA(config)# logging permit-hostdown ASA(config)# logging queue 8192
Review the Cisco ASA configuration to verify that it is compliant with this requirement as shown in the example below. logging trap critical logging host NDM_INTERFACE 10.1.48.10 6/1514 Note: The parameter "critical" can replaced with a lesser severity (i.e., error, warning, notice, informational). A logging list can be used as an alternative to the severity level. If the Cisco ASA is not configured to generate an alert that can be forwarded to organization-defined personnel and/or firewall administrator of all log failure events, this is a finding.
Configure the Cisco ASA to send critical to emergency log messages to the syslog server as shown in the example below. ASA(config)# logging host NDM_INTERFACE 10.1.48.10 6/1514 ASA(config)# logging trap critical ASA(config)# end Note: The parameter "critical" can replaced with a lesser severity (i.e., error, warning, notice, informational). A logging list can be used as an alternative to the severity level.
If PKI certificates are not implemented on the ASA, this requirement is not applicable. Step 1: Review the ASA configuration to determine if a CA trust point has been configured as shown in the example below. crypto ca trustpoint CA_X Step 2: Verify the CA is a DoD or DoD-approved service provider by entering the following command: show crypto ca certificates The output will list the following information for each certificate: Associated Trustpoints: (will map to a configured trustpoint from Step 1) Common Name (CN) of the issuer Organization Unit (OU) of the issuer Organization (O) of the issuer Validity Date If the ASA is not configured to obtain its public key certificates from a DoD or DoD-approved service provider, this is a finding.
Ensure that certificate requests are only sent to DoD or DoD-approved service providers.
If PKI certificates are not implemented on the ASA, this requirement is not applicable. Verify the ASA does not accept certificates that have been revoked. Revocation checking using CRL example: crypto ca trustpoint CA_X revocation-check crl Note: By default, the ASA will use the distribution points listed in CDP extension of the certificate that is being validated. Revocation checking using OCSP example: crypto ca trustpoint CA_X revocation-check ocsp Note: By default, the ASA will use the OSCP responder address found in the Authority Information Access (AIA) field of the client's certificate. Deployment with CAC would be an exception. If the ASA accepts certificates that have been revoked, this is a finding.
Configure the ASA to not accept certificates that have been revoked. Revocation checking using CRL example: ASA1(config)# crypto ca trustpoint CA_X ASA1(config-ca-trustpoint)# revocation-check crl ASA1(config-ca-crl)# end Revocation checking using OCSP example: ASA1(config)# crypto ca trustpoint CA_X ASA1(config-ca-trustpoint)# revocation-check ocsp ASA1(config-ca-crl)# end
Step 1: Verify that IKE is configured for the IPsec Phase 1 policy and enabled on applicable interfaces. crypto ikev2 policy 1 encryption … crypto ikev2 enable OUTSIDE Step 2: Verify that IKE is configured for the IPsec Phase 2. crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS protocol esp encryption … Note: Although IKEv2 is preferred, IKEv1 will meet the intent of this requirement. If the IKE is not configured for all IPsec security associations, this is a finding.
Configure the ASA to use IKE for all IPsec VPN SAs. Step 1: Configure IKE for the IPsec Phase 1 policy and enable it on applicable interfaces. ASA1(config)# crypto ikev2 policy 1 ASA1(config-ikev2-policy)# encryption … ASA1(config)# crypto ikev2 enable OUTSIDE Step 2: Configure IKE for the IPsec Phase 2. ASA1(config)# crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS
Verify the ASA is configured to use IKEv2 for IPsec VPN security associations. Step 1: Verify that IKE is configured for the IPsec Phase 1 policy and enabled on applicable interfaces. crypto ikev2 policy 1 encryption … crypto ikev2 enable OUTSIDE Step 2: Verify that IKE is configured for the IPsec Phase 2. crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS protocol esp encryption … If the ASA is not configured to use IKEv2 for all IPsec VPN security associations, this is a finding.
Configure the IPsec VPN Gateway to use IKEv2 for all IPsec VPN Security Associations. Step 1: Configure IKE for the IPsec Phase 1 policy and enable it on applicable interfaces. ASA1(config)# crypto ikev2 policy 1 ASA1(config-ikev2-policy)# encryption … ASA1(config)# crypto ikev2 enable OUTSIDE Step 2: Configure IKE for the IPsec Phase 2. ASA1(config)# crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS
Verify the ASA uses a NIST FIPS-validated cryptography for IKE Phase 1 as shown in the example below. crypto ikev2 policy 1 encryption aes-256 If the ASA is not configured to use NIST FIPS-validated cryptography for IKE Phase 1, this is a finding.
Configure the ASA to use NIST FIPS-validated cryptography for IKE Phase 1. ASA1(config)# crypto ikev2 policy 1 ASA1(config-ikev2-policy)# encryption aes-256
Review crypto maps that reference an IPsec proposal. Verify the ASA is configured to specify PFS as shown in the example below. crypto map IPSEC_CRYPTO_MAP 1 set pfs group5 crypto map IPSEC_CRYPTO_MAP 1 set peer x.x.x.x crypto map IPSEC_CRYPTO_MAP 1 set ikev2 ipsec-proposal IPSEC_TRANS If the ASA is not configured to specify PFS for the IPsec SA during IKE Phase 2 negotiation, this is a finding.
Configure the ASA to specify PFS for the IPsec SA during IKE Phase 2 negotiation as shown in the example below. ASA3(config)# crypto map IPSEC_CRYPTO_MAP 1 set pfs group5
Verify the ASA is configured to use a FIPS-validated cryptographic module to generate cryptographic hashes. Step 1: Verify that a FIPS-validated hash is used for IKE Phase 1 as shown in the example below. crypto ikev2 policy 1 … … … integrity sha384 Step 2: Verify that a FIPS-validated hash is used for the IPsec SA. crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS protocol esp integrity sha-384 If the ASA is not configured to use a FIPS-validated cryptographic module to generate cryptographic hashes, this is a finding.
Configure the ASA to use a FIPS-validated cryptographic module to generate cryptographic hashes as shown in the examples below. ASA1(config)# crypto ikev2 policy 1 ASA1(config-ikev2-policy)# integrity sha384 ASA1(config-ikev2-policy)# exit ASA1(config)# crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS ASA1(config-ipsec-proposal)# protocol esp integrity sha-384 ASA1(config-ipsec-proposal)# end
Verify the ASA uses a FIPS-validated cryptographic module to implement IPsec encryption services. crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS protocol esp encryption aes-256 If the ASA is not configured to use a FIPS-validated cryptographic module to implement IPsec encryption services, this is a finding.
Configure the ASA to use a FIPS-validated cryptographic module to implement IPsec encryption services as shown in the example below. ASA2(config)# crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS ASA2(config-ipsec-proposal)# protocol esp encryption aes-256
Review the ASA configuration to determine if DH Group of 16 or greater has been specified for IKE Phase 1 as shown in the example below. crypto ikev2 policy 1 encryption aes-256 … group 24 If DH Group of 16 or greater has not been specified for IKE Phase 1, this is a finding.
Configure the ASA to use a DH Group of 16 or greater as shown in the example below. ASA1(config)# crypto ikev2 policy 1 ASA1(config-ikev2-policy)# group 24
Review the ASA configuration to verify that SHA-2 at 384 bits or higher is specified for IKE Phase 1 as shown in the example below. crypto ikev2 policy 1 … integrity sha384 If the ASA is not configured to use SHA-2 at 384 bits or higher for IKE Phase 1, this is a finding.
Configure the ASA to use FIPS-validated SHA-2 at 384 bits or higher for IKE Phase 1 as shown in the example below. ASA2(config)# crypto ikev2 policy 1 ASA2(config-ikev2-policy)# integrity sha384
Review the ASA configuration to verify that SHA-2 or higher is specified for IKE Phase 2 as shown in the example below. Step 1: Review the crypto map for IKE Phase 2. crypto map IPSEC_MAP 10 set ikev2 ipsec-proposal AES_SHA Step 2: Verify that the proposal specifies SHA-2 or higher. crypto ipsec ikev2 ipsec-proposal AES_SHA protocol esp encryption … protocol esp integrity sha-384 sha-256 If the ASA is not configured to use SHA-2 or higher for IKE Phase 2, this is a finding.
Configure the ASA to use FIPS-validated SHA-2 or higher for IKE Phase 2. Step 1: Configure the IKE Phase 2 proposal as shown in the example below. ASA1(config)# crypto ipsec ikev2 ipsec-proposal AES_SHA ASA1(config-ipsec-proposal)# protocol esp integrity sha-384 sha-256 ASA1(config-ipsec-proposal)# exit Step 2: Configure the crypto map using the configured proposal. ASA1(config)# crypto map IPSEC_MAP 10 set ikev2 ipsec-proposal ASA1(config)# end
Step 1: Determine the ACL that is used to define what traffic will be transported via the IPsec tunnel. crypto map IPSEC_MAP 10 match address SITE1_SITE2 crypto map IPSEC_MAP 10 set peer x.x.x.x Step 2: Verify that the traffic defined in the ACL is in accordance with flow control policies. access-list SITE1_SITE2 extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 If the VPN gateway is not configured to restrict what traffic is transported via the IPsec tunnel, this is a finding.
Step 1: Define what traffic will be transported via the IPsec tunnel as shown in the example below. ASA1(config)# access-list SITE1_SITE2 extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 Step 2: Apply the ACL to the IPsec crypto map. ASA1(config)# crypto map IPSEC_MAP 10 match address SITE1_SITE2
Verify the VPN Gateway authenticate all peers before establishing a connection as shown in the example below. tunnel-group x.x.x.x type ipsec-l2l tunnel-group x.x.x.x ipsec-attributes ikev2 remote-authentication pre-shared-key ***** ikev2 local-authentication pre-shared-key ***** Note: Authentication can be either pre-shared key or certificate. If the VPN Gateway does not uniquely identify and authenticate all peers establishing a connection, this is a finding.
Configure the VPN Gateway to authenticate all peers before establishing a connection. ASA1(config)# tunnel-group x.x.x.x type ipsec-l2l ASA1(config)# tunnel-group x.x.x.x ipsec-attributes ASA1(config-tunnel-ipsec)# ikev2 remote-authentication pre-shared-key xxxxxxx ASA1(config-tunnel-ipsec)# ikev2 local-authentication pre-shared-key xxxxxxx ASA1(config-tunnel-ipsec)# end Note: The password complexity of pre-shared keys must be in compliance with NIST SP 800-53 control IA-5.
Verify the VPN gateway is configured to use cryptography that is compliant with CSNA/CNSSP when transporting classified traffic across an unclassified network. Step 1: Verify CSNA/CNSSP-15 parameters have been configured for IKE Phase 1 as shown in the example below. crypto ikev2 policy 2 encryption aes-256 integrity null group 19 prf sha384 Step 2: Determine the crypto map for IKE Phase 2 used in compliance with CSNA/CNSSP-15. crypto map CSNA_MAP 10 set ikev2 ipsec-proposal aes-256 Step 3: Verify the proposal specifies AES 256 parameters. crypto ipsec ikev2 ipsec-proposal AES-256 protocol esp encryption aes-256 If the VPN gateway is not configured to use cryptography that is compliant with CSNA/CNSSP-15 parameters when transporting classified traffic across an unclassified network, this is a finding.
Configure the VPN gateway to use cryptography that is compliant with CSNA/CNSSP-15 parameters when transporting classified traffic across an unclassified network as shown in the example below. Step 1: Configure the IKE Phase 1. ASA2(config)# crypto ikev2 policy 2 ASA2(config-ikev2-policy)# encryption aes-256 ASA2(config-ikev2-policy)# integrity null ASA2(config-ikev2-policy)# group 20 ASA2(config-ikev2-policy)# prf sha384 ASA2(config-ikev2-policy)# exit Step 2: Configure the IPsec proposal for AES 256 and apply to a crypto map as shown in the example below. ASA2(config-ipsec-proposal)# protocol esp encryption aes-256 ASA2(config-ipsec-proposal)# exit ASA2(config)# crypto map CSNA_MAP 10 set ikev2 ipsec-proposal AES-256 ASA2(config)# end
Verify the VPN gateway renegotiates the security association after eight hours or less as shown in the example below. crypto map IPSEC_MAP 10 match address SITE1_SITE2 crypto map IPSEC_MAP 10 set peer x.x.x.x … … … crypto map IPSEC_MAP 10 set security-association lifetime seconds 3600 If the VPN Gateway does not renegotiate the security association after eight hours or less, this is a finding.
Configure the VPN gateway to renegotiate the security association after eight hours or less as shown in the example below. ASA1(config)# crypto map IPSEC_MAP 10 set security-association lifetime seconds 28800 ASA1(config)# end
Verify the VPN gateway renegotiates the IKE security association after 24 hours or less as shown in the example below. crypto ikev2 policy 2 encryption … … … … lifetime seconds 86400 If the VPN gateway does not renegotiate the IKE security association after 24 hours or less, this is a finding.
Configure the VPN gateway to renegotiate the IKE security association after 24 hours or less as shown in the example below. ASA2(config)# crypto ikev2 policy 2 ASA2(config-ikev2-policy)# lifetime seconds 86400 ASA2(config-ikev2-policy)# end
In the example below, radius server at 10.1.1.2 is used for administrative access authentication while the LDAP server will be used for granting remote access to the network. aaa-server LDAP protocol ldap aaa-server LDAP (INSIDE) host 10.1.1.1 … … … aaa-server RADIUS_GROUP protocol radius aaa-server RADIUS_GROUP (INSIDE) host 10.1.1.2 key ***** … … … aaa authentication serial console RADIUS_GROUP LOCAL aaa authentication ssh console RADIUS_GROUP LOCAL If the ASA is not configured to use a separate authentication server than that used for administrative access, this is a finding.
Configure the ASA to use a separate authentication server as shown in the example below. ASA2(config)# aaa-server LDAP protocol ldap ASA2(config)# aaa-server LDAP (INSIDE) host 10.1.1.1
Step 1: Verify that authorization is enforced as shown in the example below. tunnel-group ANY_CONNECT type remote-access tunnel-group ANY_CONNECT general-attributes authorization-server-group LDAP authorization-required Step 2: Verify that LDAP over SSL has been enabled. aaa-server LDAP protocol ldap aaa-server LDAP (INSIDE) host 10.1.1.1 ldap-over-ssl enable If the ASA is not configured to use LDAP over SSL to determine authorization for granting access to the network, this is a finding.
Step 1: Configure the ASA to use LDAP over SSL as shown in the example below. ASA2(config)# aaa-server LDAP protocol ldap ASA2(config)# aaa-server LDAP (INSIDE) host 10.1.1.1 ASA2(config-aaa-server-host)# ldap-over-ssl enable ASA2(config-aaa-server-host)# exit Step 2: Configure the ASA to enforce authorization using the common name (CN) from the user’s certificate. ASA2(config)# tunnel-group ANY_CONNECT general-attributes ASA2(config-tunnel-general)# authorization-required ASA2(config-tunnel-general)# authorization-server-group LDAP ASA2(config-tunnel-general)# end
Verify the ASA is configured to uniquely identify and authenticate users before granting access to the network as shown in the example below. tunnel-group ANY_CONNECT type remote-access tunnel-group ANY_CONNECT webvpn-attributes authentication certificate If the ASA is not configured to identify and authenticate users before granting access to the network, this is a finding.
Configure the ASA to uniquely identify and authenticate users before granting access to the network. ASA1(config)# tunnel-group ANY_CONNECT webvpn-attributes ASA1(config-tunnel-webvpn)# authentication certificate ASA1(config-tunnel-webvpn)# end
Review the ASA configuration to verify that it enforces certificate-based authentication before granting access to the network as shown in the example below. tunnel-group ANY_CONNECT type remote-access tunnel-group ANY_CONNECT webvpn-attributes authentication certificate If the ASA configuration does not enforce certificate-based authentication before granting access to the network, this is a finding.
Configure the ASA to enforce certificate-based authentication before granting access to the network as shown in the example below. ASA1(config)# tunnel-group ANY_CONNECT webvpn-attributes ASA1(config-tunnel-webvpn)# authentication certificate ASA1(config-tunnel-webvpn)# end
Review the tunnel group configured for remote access and verify that the DN or UPN from the client’s certificate is used to map to entries in the authentication server to determine authorization as shown in the example below. tunnel-group ANY_CONNECT type remote-access tunnel-group ANY_CONNECT general-attributes authorization-server-group LDAP authorization-required username-from-certificate use-entire-name If the ASA is not configured to map the distinguished name or UPN from the client’s certificate to entries in the authentication server to determine authorization, this is a finding.
Configure the ASA to map the DN or UPN from the client’s certificate to entries in the authentication server to determine authorization as shown in the example. ASA2(config)# tunnel-group ANY_CONNECT general-attributes ASA2(config-tunnel-general)# authorization-required ASA2(config-tunnel-general)# authorization-server-group LDAP ASA2(config-tunnel-general)# username-from-certificate username-from-certificate use-entire-name ASA2(config-tunnel-general)# end
Verify that the ASA is configured to display the Standard Mandatory DoD Notice and Consent Banner before granting remote access to the network as shown in the example below. group-policy GROUP_POLICY_ANYCONNECT attributes banner value I've read & consent to terms in IS user agreem't. If the ASA is not configured to display the Standard Mandatory DoD Notice and Consent Banner before granting remote access to the network, this is a finding.
Configure the ASA to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the network as shown in the example below. ASA3(config)# group-policy GROUP_POLICY_ANYCONNECT attributes ASA3(config-group-policy)# banner value I've read & consent to terms in IS user agreem't. ASA3(config-group-policy)# end
Review the ASA configuration to determine if VPN events are logged as shown in the example below. logging class vpn trap notifications logging class vpnc trap notifications logging class vpnfo trap notifications logging class webfo trap notifications logging class webvpn trap notifications logging class svc trap notifications Note: A logging list can be used as an alternative to using class. If the ASA is not configured to log entries containing information to establish the identity of any individual or process associated with the event, this is a finding.
Configure the ASA to generate logs containing information to establish the identity of any individual or process associated with the event as shown in the example below. ciscoasa(config)# logging class vpn trap notifications ciscoasa(config)# logging class vpnc trap notifications ciscoasa(config)# logging class vpnfo trap notifications ciscoasa(config)# logging class webvpn trap notifications ciscoasa(config)# logging class webfo trap notifications ciscoasa(config)# logging class svc trap notifications ciscoasa(config)# end
Review the ASA configuration to determine if VPN events are logged as shown in the example below. logging class vpn trap notifications logging class vpnc trap notifications logging class vpnfo trap notifications logging class webfo trap notifications logging class webvpn trap notifications logging class svc trap notifications Note: A logging list can be used as an alternative to using class. If the ASA does not generate log records containing information to establish where the events occurred, this is a finding.
Configure the ASA to generate log records containing information to establish where the events occurred as shown in the example below. ciscoasa(config)# logging class vpn trap notifications ciscoasa(config)# logging class vpnc trap notifications ciscoasa(config)# logging class vpnfo trap notifications ciscoasa(config)# logging class webvpn trap notifications ciscoasa(config)# logging class webfo trap notifications ciscoasa(config)# logging class svc trap notifications ciscoasa(config)# end
Verify the ASA generates log records containing information to establish the source of the events as shown in the example below. logging class vpn trap notifications logging class vpnc trap notifications logging class vpnfo trap notifications logging class webfo trap notifications logging class webvpn trap notifications logging class svc trap notifications Note: A logging list can be used as an alternative to using class. If the ASA does not generate log records containing information to establish the source of the events, this is a finding.
Configure the ASA to generate log records containing information to establish the source of the events as shown in the example below. ciscoasa(config)# logging class vpn trap notifications ciscoasa(config)# logging class vpnc trap notifications ciscoasa(config)# logging class vpnfo trap notifications ciscoasa(config)# logging class webvpn trap notifications ciscoasa(config)# logging class webfo trap notifications ciscoasa(config)# logging class svc trap notifications ciscoasa(config)# end
Verify the ASA generates log records containing information to establish the outcome of the events as shown in the example below. logging class vpn trap notifications logging class vpnc trap notifications logging class vpnfo trap notifications logging class webfo trap notifications logging class webvpn trap notifications logging class svc trap notifications Note: A logging list can be used as an alternative to using class. If the ASA does not generate log records containing information to establish the source of the events, this is a finding.
Configure the ASA to generate log entries containing information to establish the outcome of the events as shown in the example below. ciscoasa(config)# logging class vpn trap notifications ciscoasa(config)# logging class vpnc trap notifications ciscoasa(config)# logging class vpnfo trap notifications ciscoasa(config)# logging class webvpn trap notifications ciscoasa(config)# logging class webfo trap notifications ciscoasa(config)# logging class svc trap notifications ciscoasa(config)# end
Verify the TLS ASA is configured to use TLS 1.2 or higher as shown in the example below. ssl server-version tlsv1.2 dtlsv1.2 Note: ASA supports TLS version 1.2 starting from software version 9.3.1 for secure message transmission for Clientless SSL VPN and AnyConnect VPN. If the ASA is not configured to use TLS 1.2 or higher to protect the confidentiality of sensitive data during transmission, this is a finding.
Configure the ASA to use TLS 1.2 or higher as shown in the example below. ASA1(config)# ssl server-version tlsv1.2 dtlsv1.2
Verify the remote access ASA uses a FIPS-validated algorithms and hash function as shown in the example below. ssl server-version tlsv1.2 ssl cipher tlsv1.2 fips If the remote access ASA does not use a digital signature generated using FIPS-validated algorithms and hash function, this is a finding.
Configure the remote access ASA to use a digital signature generated using FIPS-validated algorithms and an approved hash. ASA1(config)# ssl cipher tlsv1.2 fips ASA1(config)# end
Review the ASA configuration to verify that FIPS mode has been enabled as shown in the example below. ASA Version x.x ! hostname ASA1 fips enable If the ASA is not configured to be enabled in FIPS mode, this is a finding.
Configure the ASA to have FIPS-mode enabled as shown in the example below. ASA1(config)# fips enable ASA1(config)# end Note: FIPS mode change will not take effect until the configuration is saved and the device rebooted.
Verify that the ASA uses SHA-2 at 384 bits or greater for hashing to protect the integrity of IPsec remote access sessions as shown in the example below. Step 1: Verify that SHA-2 at 384 bits or greater is used for IKE Phase 1 as shown in the example below. crypto ikev2 policy 1 … … … integrity sha384 Step 2: Verify that SHA-2 at 384 bits or greater is used for the IPsec Security Association. crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS protocol esp integrity sha-384 If the ASA does not use SHA-2 at 384 bits or greater for hashing to protect the integrity of IPsec remote access sessions, this is a finding.
Configure the ASA to use SHA-2 at 384 bits or greater for hashing to protect the integrity of IPsec remote access sessions as shown in the example below. ASA1(config)# crypto ikev2 policy 1 ASA1(config-ikev2-policy)# integrity sha384 ASA1(config-ikev2-policy)# exit ASA1(config)# crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS ASA1(config-ipsec-proposal)# protocol esp integrity sha-384 ASA1(config-ikev2-policy)# end
Verify IKE Phase 1 is set to use an AES256 or greater encryption algorithm as shown in the example below. crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS protocol esp encryption aes-256 If the value of the encryption algorithm for IKE Phase 1 is not set to use an AES256 or greater algorithm, this is a finding.
Configure the ASA to use AES256 or greater encryption algorithm for IKE Phase 1 as shown in the example below. ASA1(config)# crypto ikev2 policy 1 ASA1(config-ikev2-policy)# encryption aes-256
Verify all IPsec proposals are set to use the AES256 or greater encryption algorithm as shown in the example below. crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS protocol esp encryption aes-256 If the value of the encryption algorithm for any IPsec proposal is not set to use an AES256 or greater algorithm, this is a finding.
Configure the ASA to use AES256 or greater encryption algorithm to implement IPsec encryption services as shown in the example below. ASA2(config)# crypto ipsec ikev2 ipsec-proposal IPSEC_TRANS ASA2(config-ipsec-proposal)# protocol esp encryption aes-256 ASA2(config-ipsec-proposal)# end
Verify the ASA accepts CAC credentials as shown in the example below. tunnel-group ANY_CONNECT type remote-access tunnel-group ANY_CONNECT webvpn-attributes authentication certificate If the ASA does not accept PIV credentials, this is a finding.
Configure the ASA to accept CAC credentials as shown in the example below. ASA1(config)# tunnel-group ANY_CONNECT webvpn-attributes ASA1(config-tunnel-webvpn)# authentication certificate ASA1(config-tunnel-webvpn)# end
Verify the ASA disables split-tunneling for remote clients VPNs as shown in the example below. group-policy ANY_CONNECT_GROUP attributes … … … split-tunnel-policy tunnelall If the ASA does not disable split-tunneling for remote clients VPNs, this is a finding. Note: Certain cloud products require direct connectivity to operate correctly. These items may be excluded from the split tunneling restriction if documented and approved. If split-tunneling for remote client VPNs is enabled by the above exception, verify only authorized external destinations are excluded from tunneling as shown in the example below: Webvpn anyconnect-custom-attr dynamic-split-exclude-domains description DoD IL5 Authorized Destinations anyconnect-custom-data dynamic-split-exclude-domains DoD-IL5 dod.teams.microsoft.us,azureedge.net,core.usgovcloudapi.net,streaming.media.usgovcloudapi.net,wvd.azure.us,cdn.office365.us anyconnect-custom dynamic-split-exclude-domains value DoD-IL5 If any unauthorized exempted connections exist, this is a finding.
Configure the ASA to disable split-tunneling for remote clients VPNs as shown in the example below. ASA2(config)# group-policy ANY_CONNECT_GROUP attributes ASA2(config-group-policy)# split-tunnel-policy tunnelall ASA2(config-group-policy)# end
Verify the ASA generates log records when successful and/or unsuccessful VPN connection attempts occur as shown in the example below. logging host INDM_INTERFACE 10.1.1.12 logging class svc trap notifications Note: A logging list can be used as an alternative to using class. If the ASA does not generate log records when successful and/or unsuccessful VPN connection attempts occur, this is a finding.
Configure the ASA to generate log records when successful and/or unsuccessful VPN connection attempts occur as shown in the example below. ASA2(config)# logging class svc trap notifications
Verify the ASA validates TLS certificates by performing RFC 5280-compliant certification path validation. Review the ASA configuration to determine if a CA trust point has been configured as shown in the example below. crypto ca trustpoint CA_X enrollment … validation-usage ipsec-client validation-usage ssl-client If the ASA does not validate certificates used for TLS functions by performing RFC 5280-compliant certification path validation, this is a finding.
Configure the ASA to validate certificates used for TLS functions by performing RFC 5280- compliant certification path validation as shown in the example below. ASA2(config)# crypto ca trustpoint CA_X ASA2(config-ca-trustpoint)# validation-usage ssl-client ASA2(config-ca-trustpoint)# validation-usage ipsec-client
Verify the ASA uses an approved High Assurance CSfC cryptographic algorithm for remote access to a classified network. Step 1: Verify IKE Phase 1 is configured in compliance with CSNA/CNSSP-15 parameters as shown in the example below. crypto ikev2 policy 2 encryption aes-256 integrity null group 19 prf sha384 Step 2: Determine the crypto map for IKE Phase 2 used is in compliance with CSNA/CNSSP-15 as in the example below. crypto map CSNA_MAP 10 set ikev2 ipsec-proposal AES-256 Step 3: Verify the proposal specifies CSNA/CNSSP-15 parameters. crypto ipsec ikev2 ipsec-proposal AES-256 protocol esp encryption aes-256 If the ASA is not configured to use an approved High Assurance CSfC cryptographic algorithm for remote access to a classified network, this is a finding.
Configure the ASA to use an approved High Assurance CSfC cryptographic algorithm for remote access to a classified network. Step 1: Configure the IKE Phase 1. ASA2(config)# crypto ikev2 policy 2 ASA2(config-ikev2-policy)# encryption aes-256 ASA2(config-ikev2-policy)# integrity null ASA2(config-ikev2-policy)# group 20 ASA2(config-ikev2-policy)# prf sha384 ASA2(config-ikev2-policy)# exit Step 2: Configure the IPsec proposal in compliance with CNSA/CNSSP-15 and apply to a crypto map as shown in the example below. ASA2(config-ipsec-proposal)# protocol esp encryption aes-256 ASA2(config-ipsec-proposal)# exit ASA2(config)# crypto map CSNA_MAP 10 set ikev2 ipsec-proposal AES-256 ASA2(config)# end