Skip to main content

V9.1.3 Client Communication Security

Requirement:#

Verify that only the latest recommended versions of the TLS protocol are enabled, such as TLS 1.2 and TLS 1.3. The latest version of the TLS protocol should be the preferred option.

Explanation:#

Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ бСзопасности клиСнтского взаимодСйствия ΠΏΡƒΡ‚Π΅ΠΌ обСспСчСния Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдних Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Ρ… вСрсий ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS ΠΈ установки послСднСй вСрсии Π² качСствС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ. Transport Layer Security (TLS) - это криптографичСский ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сСтям. По ΠΌΠ΅Ρ€Π΅ обнаруТСния уязвимостСй Π² бСзопасности со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ вСрсии TLS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности Π·Π°Ρ‰ΠΈΡ‚Ρ‹. Π”Π°Π½Π½ΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π° обСспСчСниС бСзопасности взаимодСйствия ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡƒΡ‚Π΅ΠΌ использования послСдних ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… вСрсий ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS.

Remediation:#

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ использованиС Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдних Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Ρ… вСрсий ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS, установив ΠΏΡ€ΠΈ этом послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Π² качСствС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

  1. Understand TLS Protocol Versions.

ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ вСрсиями ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS, ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями ΠΈ уязвимостями.

  1. Identify Current TLS Configuration.

ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ TLS Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹.

  1. Stay Informed.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ рСкомСндациям ΠΈΠ· Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… источников ΠΏΠΎ использованию вСрсий ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS.

  1. Disable Older Protocol Versions.

ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ старых ΠΈ ΠΌΠ΅Π½Π΅Π΅ бСзопасных вСрсий TLS, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ TLS 1.0 ΠΈ TLS 1.1, ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ TLS прилоТСния.

  1. Enable TLS 1.2 and TLS 1.3.

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ послСдних Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Ρ… вСрсий TLS: TLS 1.2 ΠΈ TLS 1.3. Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ сСрвСрныС ΠΈ клиСнтскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ вашСго прилоТСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ эти вСрсии.

  1. Set Latest Version as Preferred.

ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° установку послСднСй вСрсии TLS (TLS 1.3, Ссли ΠΎΠ½Π° поддСрТиваСтся) Π² качСствС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΈ согласовании TLS handshake.

  1. Update TLS Libraries.

Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для TLS соСдинСния Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ послСдниС вСрсии.

  1. Test TLS Configuration.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСдства тСстирования TLS, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ SSL Server Test ΠΎΡ‚ SSL Labs (https://www.ssllabs.com/ssltest/), для Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ TLS прилоТСния. Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Π΅ вСрсии TLS, Π° послСдняя вСрсия установлСна ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ.

  1. Monitor and Respond.

ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ постоянный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ TLS Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ уязвимостСй ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ рСагирования Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹ для устранСния Π»ΡŽΠ±Ρ‹Ρ… Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ бСзопасности, связанных с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ.

  1. Documentation and Training.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния, внСсСнныС Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ TLS прилоТСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ вСрсии ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки.

  1. Regular Review and Updates.

ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΏΠ΅Ρ€Π΅ΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ TLS прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ послСдним рСкомСндациям ΠΏΠΎ бСзопасности.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ requests для обСспСчСния использования Π² клиСнтском взаимодСйствии послСдних Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Ρ… вСрсий ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ TLS 1.2 ΠΈ TLS 1.3) Π² соотвСтствии с Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ V9.1.3:

import requests
def send_request_with_latest_tls(url):
try:
# Specify the allowed TLS versions
allowed_tls_versions = ("TLSv1.2", "TLSv1.3")
# Send a request to the URL with allowed TLS versions
response = requests.get(url, verify=True, tls_version=allowed_tls_versions)
# Check if the response is successful
if response.status_code == 200:
print("Response received:", response.text)
else:
print("Request failed with status code:", response.status_code)
except requests.exceptions.RequestException as e:
print("Request error:", e)
if __name__ == "__main__":
target_url = "https://example.com"
send_request_with_latest_tls(target_url)

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

  • Β  Β  Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° requests для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ GET-запроса Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ URL.
  • Β  Β  Π£ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ допустимыС вСрсии TLS ("TLSv1.2", "TLSv1.3") для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… использовались Ρ‚ΠΎΠ»ΡŒΠΊΠΎ TLS 1.2 ΠΈ TLS 1.3.
  • Β  Β  АргумСнт verify=True Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСртификата SSL/TLS.

Additional:#

https://cwe.mitre.org/data/definitions/326.html