Skip to main content

V7.3.1 Log Protection

Requirement:#

Verify that all logging components appropriately encode data to prevent log injection. (C9)

Explanation:#

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

Π—Π°ΠΏΠΈΡΡŒ врСдносного ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ ΠΏΠΎΠ΄Π΄Π΅Π»Π°Ρ‚ΡŒ записи ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈΠ»ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ врСдоносноС содСрТимоС Π² ΠΆΡƒΡ€Π½Π°Π»Ρ‹. Π­Ρ‚ΠΎ называСтся Log Injection.

Уязвимости Log injection Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π°:

  • Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ источника
  • Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ» ΠΆΡƒΡ€Π½Π°Π»Π° прилоТСния ΠΈΠ»ΠΈ систСмы.

Π£ΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ Π½Π° Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ:

  • Π’Π²ΠΎΠ΄ Π½ΠΎΠ²Ρ‹Ρ…/Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… событий ΠΆΡƒΡ€Π½Π°Π»Π° (ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠ° ΠΆΡƒΡ€Π½Π°Π»Π° Ρ‡Π΅Ρ€Π΅Π· Log Injection).
  • Π˜Π½ΡŠΠ΅ΠΊΡ†ΠΈΡ XSS-Π°Ρ‚Π°ΠΊ Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅, Ρ‡Ρ‚ΠΎ врСдоносноС событиС ΠΆΡƒΡ€Π½Π°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ просмотрСно Π² уязвимом Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
  • Π˜Π½ΡŠΠ΅ΠΊΡ†ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ парсСрами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, парсСрами PHP)

Remediation:#

ΠšΠ»ΡŽΡ‡ ΠΊ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ Log Injection состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй:

  • ВыполняйтС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²Π²ΠΎΠ΄Π°: ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ Π½Π°Π±ΠΎΡ€ символов ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ соотвСтствовали вашим трСбованиям, ΠΈ отклоняйтС любой Π²Π²ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ соотвСтствуСт ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ.  ВыполняйтС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²Π²ΠΎΠ΄Π° ΠΊΠ°ΠΊ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, Ρ‚Π°ΠΊ ΠΈ Π½Π° сСрвСрС (Π² зависимости ΠΎΡ‚ ситуации).
  • НСйтрализуйтС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ символы: Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ символы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ "экранированы" ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Ρ‹/записи ΠΆΡƒΡ€Π½Π°Π»Π°:
БимволНазваниС
\rCarriage Return
\nNewline
0x8 (octal 8)Backspace
<Less than
>Greater than
&Ampersand
β€œQuote
β€˜Apostrophe

Additional:#

Improper Output Neutralization for Logs (mitre.org)

OWASP Logging

Log Injection (OWASP)