Detection rules › Kusto

Imperva - Possible command injection

Status
available
Severity
high
Time window
10m
Source
github.com/Azure/Azure-Sentinel

'Detects requests with commands in URI.'

MITRE ATT&CK coverage

Rule body

id: 6214f187-5840-4cf7-a174-0cf9a72bfd29
name: Imperva - Possible command injection
description: |
  'Detects requests with commands in URI.'
severity: High
status: Available
requiredDataConnectors:
  - connectorId: ImpervaWAFCloudAPI
    dataTypes:
      - ImpervaWAFCloud
queryFrequency: 10m
queryPeriod: 10m
triggerOperator: gt
triggerThreshold: 0
tactics:
  - InitialAccess
relevantTechniques:
  - T1190
  - T1133
query: |
  let cmd_lst = dynamic(['%2fetc%2fpasswd', '%2fetc%2fshadow', 'ping', 'whoami', 'phpinfo', '%2fbin%2fbash', 'curl', 'exec(', 'wget', 'python', 'gcc' , 'uname', 'systeminfo', 'rout', 'hostname', 'ifconfig']);
  ImpervaWAFCloud
  | where QueryString has_any (cmd_lst)
  | extend IPCustomEntity = SrcIpAddr
entityMappings:
  - entityType: IP
    fieldMappings:
      - identifier: Address
        columnName: IPCustomEntity
version: 1.0.1
kind: Scheduled

Stages and Predicates

Let binding: cmd_lst used in Stage 2

let cmd_lst = dynamic(['%2fetc%2fpasswd', '%2fetc%2fshadow', 'ping', 'whoami', 'phpinfo', '%2fbin%2fbash', 'curl', 'exec(', 'wget', 'python', 'gcc' , 'uname', 'systeminfo', 'rout', 'hostname', 'ifconfig']);

Stage 1: source

ImpervaWAFCloud

Stage 2: where

| where QueryString has_any (cmd_lst)

Stage 3: extend

| extend IPCustomEntity = SrcIpAddr

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
QueryStringmatch
  • %2fbin%2fbash transforms: term
  • %2fetc%2fpasswd transforms: term
  • %2fetc%2fshadow transforms: term
  • curl transforms: term
  • exec( transforms: term
  • gcc transforms: term
  • hostname transforms: term
  • ifconfig transforms: term
  • phpinfo transforms: term
  • ping transforms: term
  • python transforms: term
  • rout transforms: term
  • systeminfo transforms: term
  • uname transforms: term
  • wget transforms: term
  • whoami transforms: term
field:"QueryString" kind:match

Output fields

These fields are emitted when the rule matches.

FieldSource
IPCustomEntityextend