Skip to main content

V2.6.3 Look-up Secret Verifier

Requirement:#

Verify that lookup secrets are resistant to offline attacks, such as predictable values.

Explanation:#

ИспользованиС Π²Π·Π»ΠΎΠΌΠ°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ криптографичСского Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° прСдставляСт собой Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ риск, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.#

ИспользованиС нСстандартного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° опасно, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒΒ  Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ Π»ΡŽΠ±Ρ‹Π΅ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠœΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Π·Π»ΠΎΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

Remediation:#

Если обнаруТиваСтся, Ρ‡Ρ‚ΠΎ сСкрСты поиска Π½Π΅ устойчивы ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ Π°Ρ‚Π°ΠΊΠ°ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ прСдсказуСмыС значСния, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ:

  • ГСнСрация Π½ΠΎΠ²Ρ‹Ρ… сСкрСтов: Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ созданы Π½ΠΎΠ²Ρ‹Π΅ сСкрСты, устойчивыС ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ Π°Ρ‚Π°ΠΊΠ°ΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ бСзопасного Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° случайных чисСл, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎΡΡ‚ΡŒ сСкрСтов.
  • Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ скомпромСтированныС сСкрСты: Π½ΠΎΠ²Ρ‹Π΅ сСкрСты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ распространСны срСди ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ для Π·Π°ΠΌΠ΅Π½Ρ‹ скомпромСтированных сСкрСтов. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ² элСктронноС письмо ΠΈΠ»ΠΈ SMS-сообщСниС с Π½ΠΎΠ²Ρ‹ΠΌ сСкрСтом ΠΈΠ»ΠΈ прСдоставив Π΅Π³ΠΎ Π»ΠΈΡ‡Π½ΠΎ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ офис.
  • ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² доступа: Π–ΡƒΡ€Π½Π°Π»Ρ‹ доступа слСдуСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ для обнаруТСния Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ нСсанкционированного доступа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скомпромСтированныС сСкрСты. Π›ΡŽΠ±Π°Ρ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ расслСдована ΠΈ приняты ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ€Ρ‹.
  • Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ ΠΌΠ΅Ρ€Ρ‹ бСзопасности: процСсс исправлСния Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΌΠ΅Ρ€ бСзопасности систСмы для выявлСния Π»ΡŽΠ±Ρ‹Ρ… слабых мСст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ возникновСнию ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ€ бСзопасности, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, для прСдотвращСния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΎΠ² Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.
  • ΠžΠ±ΡƒΡ‡Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ освСдомлСны ΠΎ ваТности сохранСния ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ своих сСкрСтов ΠΈ использования ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π˜Ρ… Ρ‚Π°ΠΊΠΆΠ΅ слСдуСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎ прСдпринятых ΠΌΠ΅Ρ€Π°Ρ… ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ полоТСния ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡˆΠ°Π³Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ для обСспСчСния постоянной бСзопасности.Β 

Выполняя эти шаги ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ риск нСсанкционированного доступа ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСмы. Π’Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ процСсс исправлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ быстроС ΠΈ эффСктивноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π»ΡŽΠ±Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ.

ΠžΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Π²Ρ‹Π΅ сСкрСты, устойчивыС ΠΊ Π°Ρ‚Π°ΠΊΠ°ΠΌ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ сСкрСты, устойчивыС ΠΊ Π°Ρ‚Π°ΠΊΠ°ΠΌ
import secrets
def generate_secret():
# Generate a secret with 128 bits of entropy
secret = secrets.token_hex(16)
return secret
new_secret = generate_secret()

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ secrets Π² Python для создания сСкрСта со 128 Π±ΠΈΡ‚Π°ΠΌΠΈ энтропии. Ѐункция token_hex Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ строку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС сСкрСта. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это всСго лишь общая идСя, ΠΈ конкрСтная рСализация ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ систСмы.

Additional:#

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