Skip to main content

V11.1.7 Business Logic Security

Requirement:#

Verify that the application monitors for unusual events or activity from a business logic perspective. For example, attempts to perform actions out of order or actions which a normal user would never attempt. (C9)

Explanation:#

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

1 Business Logic Perspective:

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

2 Unusual Events or Activity:

  • Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΡΡŽΡ‚ΡΡ ΠΎΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ повСдСния.

  • Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ выполнСния дСйствий Π² Π½Π΅Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΌ порядкС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π° Π΄ΠΎ добавлСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ) ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, доступ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ функциям администратора).

3 Benefits:

  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ срСдства Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π² бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ это Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ для выявлСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠ³Ρ€ΠΎΠ·.

  • Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ΅ для ΠΎΠ±Ρ…ΠΎΠ΄Π° стандартных срСдств Π·Π°Ρ‰ΠΈΡ‚Ρ‹.

4 Detection Mechanisms:

  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ оснащСно ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ рСгистрации ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ дСйствий ΠΈ взаимодСйствий.

  • Для выявлСния Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… закономСрностСй ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ систСмы распознавания ΠΎΠ±Ρ€Π°Π·ΠΎΠ², систСмы, основанныС Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ…, ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ обнаруТСния Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ.

5 Response and Alerting:

  • ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π°Π½ΠΎΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… дСйствий ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½ΠΈΡ…, гСнСрируя оповСщСния, рСгистрируя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, принимая ΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎ ΠΈΡ… ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ.

  • ΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ администраторам ΠΈΠ»ΠΈ IT бСзопасности для дальнСйшСго расслСдования.

6 Customization and Tuning:

  • БистСма ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ настраиваСмой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ спСцификС бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ сцСнариСв использования прилоТСния.

  • Для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний ΠΈ ошибок трСбуСтся рСгулярная настройка.

7 Use Cases:

  • Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ манипулирования ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹, доступа ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ страницам прилоТСния ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ.

Remediation:#

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

РСализация ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π°Π½ΠΎΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… событий
class UserActivityMonitor:
def __init__(self):
# Dictionary to store user activities and their counts
self.user_activities = {}
def track_activity(self, user_id, activity):
if user_id not in self.user_activities:
self.user_activities[user_id] = {}
if activity not in self.user_activities[user_id]:
self.user_activities[user_id][activity] = 1
else:
self.user_activities[user_id][activity] += 1
def detect_unusual_activity(self, user_id, activity):
if user_id in self.user_activities and activity in self.user_activities[user_id]:
activity_count = self.user_activities[user_id][activity]
# Set a threshold for detecting unusual activity
unusual_threshold = 5
if activity_count > unusual_threshold:
return True
return False
# Simulate user activities
monitor = UserActivityMonitor()
# Simulate tracking user activities
monitor.track_activity("user123", "add_to_cart")
monitor.track_activity("user123", "add_to_cart")
monitor.track_activity("user123", "add_to_cart")
monitor.track_activity("user123", "checkout")
monitor.track_activity("user456", "add_to_cart")
# Simulate detecting unusual activity
user_id = "user123"
activity = "add_to_cart"
if monitor.detect_unusual_activity(user_id, activity):
print(f"Unusual activity detected for user {user_id}: {activity}")
user_id = "user456"
activity = "add_to_cart"
if monitor.detect_unusual_activity(user_id, activity):
print(f"Unusual activity detected for user {user_id}: {activity}")

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

Β  Β  Класс UserActivityMonitor ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚ наблюдСниС Π·Π° дСйствиями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ выявлСниС Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… закономСрностСй. ΠœΠ΅Ρ‚ΠΎΠ΄ track_activity рСгистрируСт дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΈΡ… количСство. ΠœΠ΅Ρ‚ΠΎΠ΄ detect_unusual_activity провСряСт, Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π»ΠΈ количСство дСйствий Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ€ΠΎΠ³, Ρ‡Ρ‚ΠΎ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ.

Additional:#

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