Skip to main content

V11.1.3 Business Logic Security

Requirement:#

Verify the application has appropriate limits for specific business actions or transactions which are correctly enforced on a per user basis.

Explanation:#

ЦСль Π΄Π°Π½Π½ΠΎΠ³ΠΎ трСбования - ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ нСсанкционированныС дСйствия ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ финансовыС ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ риски ΠΏΡƒΡ‚Π΅ΠΌ установки ΠΈ примСнСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² зависимости ΠΎΡ‚ ΠΈΡ… Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΏΡ€Π°Π² доступа.Β 

Π‘Π΅Π· использования ΠΊΠ²ΠΎΡ‚, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ рСсурсов ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ рСсурсов, быстро выполняя мноТСство запросов ΠΈΠ»ΠΈ вызывая использованиС большСго количСства рСсурсов, Ρ‡Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Когда Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ слишком ΠΌΠ½ΠΎΠ³ΠΎ рСсурсов ΠΈΠ»ΠΈ Ссли ΠΎΠ΄ΠΈΠ½ рСсурс слишком Π²Π΅Π»ΠΈΠΊ, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΡ‚ΠΊΠ°Π·Ρƒ Π² обслуТивании.

Remediation:#

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ установлСны ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ограничСния Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствий ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

1. Identify Critical Business Actions or Transactions:

  • ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ критичСскиС дСйствия ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ограничСния.
  • Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти финансовыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, запросы API ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсоСмкиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

2. Determine Business Rules and Limits:

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

3. Map Limits to User Roles and Permissions:

  • Π‘ΠΎΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ установлСнныС Π»ΠΈΠΌΠΈΡ‚Ρ‹ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ ролями ΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
  • Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ограничСния Π² зависимости ΠΎΡ‚ ΠΈΡ… Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΏΡ€Π°Π².

4. Implement Limit Enforcement:

  • Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ примСнСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ части ΠΊΠΎΠ΄Π° прилоТСния.
  • ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΈΡ… Ρ€ΠΎΠ»ΡŒ ΠΈ связанныС с Π½Π΅ΠΉ ограничСния.

5. Provide User Feedback and Error Handling:

  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ понятныС сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ установлСнныС Π»ΠΈΠΌΠΈΡ‚Ρ‹.
  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ установлСнныС ограничСния ΠΈ послСдствия ΠΈΡ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ.

6. Configure Alerts and Notifications:

  • НастройтС прСдупрСТдСния ΠΈΠ»ΠΈ увСдомлСния, ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ установлСнных Π»ΠΈΠΌΠΈΡ‚ΠΎΠ².
  • Π­Ρ‚ΠΈ оповСщСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ администраторам для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

7. Implement Monitoring and Auditing:

  • Π’Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ логирования ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для рСгистрации активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, выполняСмых дСйствий ΠΈ событий, связанных с Π»ΠΈΠΌΠΈΡ‚Π°ΠΌΠΈ.
  • Π­Ρ‚Π° информация Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° для выявлСния случаСв злоупотрСблСния ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ использования.

8. Test Limits Under Different Scenarios:

  • ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΈΡ‚Π΅ комплСксноС тСстированиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° примСнСния Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сцСнариях, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ использованиС ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ².
  • Для обСспСчСния точности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Π½Π΅Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи.

9. Fine-Tune Limits Regularly:

  • РСгулярно пСрСсматривайтС ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ установлСнныС Π»ΠΈΠΌΠΈΡ‚Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ бизнСс-Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.
  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ установлСнныС Π»ΠΈΠΌΠΈΡ‚Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ баланс ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ удобством использования.

10. Document the Limits and Enforcement:

  • Π—Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ограничСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ примСнСния.
  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС заинтСрСсованныС стороны, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ администраторов, Π·Π½Π°ΡŽΡ‚ эти Π΄Π΅Ρ‚Π°Π»ΠΈ.

11. Provide User Training:

  • ΠŸΡ€ΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎ сущСствовании ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ… ΠΈΡ… ввСдСния.
  • ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ послСдствия ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ.

12. Security Review and Code Auditing:

  • ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Π°Π½Π°Π»ΠΈΠ· бСзопасности ΠΈ Π°ΡƒΠ΄ΠΈΡ‚ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ обСспСчСния соблюдСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ ΠΈΡ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ.

Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ количСство клиСнтских ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ клиСнтских ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², создавая ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ ΠΏΡƒΠ»Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ количСство Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства клиСнтских ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ
public static final int SERVER_PORT = 4444;
public static final int MAX_CONNECTIONS = 10;
...
public void acceptConnections() {
try {
ServerSocket serverSocket = new ServerSocket(SERVER_PORT);
int counter = 0;
boolean hasConnections = true;
while (hasConnections) {
hasConnections = checkForMoreConnections();
Socket client = serverSocket.accept();
Thread t = new Thread(new ClientSocketThread(client));
t.setName(client.getInetAddress().getHostName() + ":" + counter++);
ExecutorService pool = Executors.newFixedThreadPool(MAX_CONNECTIONS);
pool.execute(t);
}
serverSocket.close();
} catch (IOException ex) {...}
}

Additional:#

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

https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/10-Business_Logic_Testing/README.html