Box Large Number of Downloads


Description

A user has exceeded the threshold for number of downloads within a single time frame.

Query · python

def rule(event):
    return event.get("event_type") == "DOWNLOAD"


def title(event):
    return (
        f"User [{event.deep_get('created_by', 'login', default='<UNKNOWN_USER>')}] "
        f"exceeded threshold for number of downloads in the configured time frame."
    )

Analyst notes

Investigate whether this user's download activity is expected. Investigate the cause of this download activity.

Raw source Box Large Number of Downloads · Panther Python
Esc
Published by panther-labs/panther-analysis ↗, licensed under Apache 2.0 ↗. Reproduced here unmodified.
AnalysisType: rule
Filename: box_user_downloads.py
RuleID: "Box.Large.Number.Downloads"
DisplayName: "Box Large Number of Downloads"
Enabled: true
LogTypes:
  - Box.Event
Tags:
  - Box
  - Exfiltration:Exfiltration Over Web Service
Reports:
  MITRE ATT&CK:
    - TA0010:T1567
Severity: Low
Description: >
  A user has exceeded the threshold for number of downloads within a single time frame.
Reference: https://support.box.com/hc/en-us/articles/360043697134-Download-Files-and-Folders-from-Box
Runbook: >
  Investigate whether this user's download activity is expected.  Investigate the cause of this download activity.
SummaryAttributes:
  - ip_address
Threshold: 100
DedupPeriodMinutes: 60
Tests:
  - Name: Regular Event
    ExpectedResult: false
    Log:
      {
        "type": "event",
        "additional_details": '{"key": "value"}',
        "created_by":
          {
            "id": "12345678",
            "type": "user",
            "login": "cat@example",
            "name": "Bob Cat",
          },
        "event_type": "DELETE",
      }
  - Name: User Download
    ExpectedResult: true
    Log:
      {
        "type": "event",
        "additional_details": '{"key": "value"}',
        "created_by":
          {
            "id": "12345678",
            "type": "user",
            "login": "cat@example",
            "name": "Bob Cat",
          },
        "event_type": "DOWNLOAD",
        "source":
          {
            "id": "12345678",
            "type": "user",
            "login": "user@example",
            "name": "Bob Cat",
          },
      }


# ------ paired body: box_user_downloads.py ------

def rule(event):
    return event.get("event_type") == "DOWNLOAD"


def title(event):
    return (
        f"User [{event.deep_get('created_by', 'login', default='<UNKNOWN_USER>')}] "
        f"exceeded threshold for number of downloads in the configured time frame."
    )

Detection rules belong to the projects that publish them and remain under their own licenses. This site indexes and links to them; it claims no rights in them.