RDP (Remote Desktop Protocol) from the Internet

edit

This rule detects network events that may indicate the use of RDP traffic from the Internet. RDP is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.

Rule type: query

Rule indices:

  • auditbeat-*
  • filebeat-*
  • packetbeat-*
  • logs-endpoint.events.*

Severity: medium

Risk score: 47

Runs every: 5 minutes

Searches indices from: now-9m (Date Math format, see also Additional look-back time)

Maximum alerts per execution: 100

References:

Tags:

  • Elastic
  • Host
  • Network
  • Threat Detection
  • Command and Control
  • Host

Version: 100 (version history)

Added (Elastic Stack release): 7.6.0

Last modified (Elastic Stack release): 8.5.0

Rule authors: Elastic

Rule license: Elastic License v2

Potential false positives

edit

Some network security policies allow RDP directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. RDP services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only RDP gateways, bastions or jump servers may be expected expose RDP directly to the Internet and can be exempted from this rule. RDP may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected.

Rule query

edit
event.category:(network or network_traffic) and network.transport:tcp
and (destination.port:3389 or event.dataset:zeek.rdp) and not
source.ip:( 10.0.0.0/8 or 127.0.0.0/8 or 169.254.0.0/16 or
172.16.0.0/12 or 192.0.0.0/24 or 192.0.0.0/29 or
192.0.0.8/32 or 192.0.0.9/32 or 192.0.0.10/32 or
192.0.0.170/32 or 192.0.0.171/32 or 192.0.2.0/24 or
192.31.196.0/24 or 192.52.193.0/24 or 192.168.0.0/16 or
192.88.99.0/24 or 224.0.0.0/4 or 100.64.0.0/10 or
192.175.48.0/24 or 198.18.0.0/15 or 198.51.100.0/24 or
203.0.113.0/24 or 240.0.0.0/4 or "::1" or "FE80::/10" or
"FF00::/8" ) and destination.ip:( 10.0.0.0/8 or
172.16.0.0/12 or 192.168.0.0/16 )

Threat mapping

edit

Framework: MITRE ATT&CKTM

Rule version history

edit
Version 100 (8.5.0 release)
  • Formatting only
Version 15 (8.4.0 release)
  • Formatting only
Version 14 (8.3.0 release)
  • Formatting only
Version 12 (8.2.0 release)
  • Formatting only
Version 11 (7.15.0 release)
  • Formatting only
Version 10 (7.14.0 release)
  • Updated query, changed from:

    event.category:(network or network_traffic) and network.transport:tcp
    and (destination.port:3389 or event.dataset:zeek.rdp) and not
    source.ip:( 10.0.0.0/8 or 127.0.0.0/8 or 169.254.0.0/16 or
    172.16.0.0/12 or 192.168.0.0/16 or 224.0.0.0/4 or "::1" or "FE80::/10"
    or "FF00::/8" ) and destination.ip:( 10.0.0.0/8 or 172.16.0.0/12 or
    192.168.0.0/16 )
Version 8 (7.12.0 release)
  • Formatting only
Version 7 (7.11.2 release)
  • Formatting only
Version 6 (7.11.0 release)
  • Updated query, changed from:

    event.category:(network or network_traffic) and network.transport:tcp
    and (destination.port:3389 or event.dataset:zeek.rdp) and not
    source.ip:(10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and
    destination.ip:(10.0.0.0/8 or 127.0.0.0/8 or 172.16.0.0/12 or
    192.168.0.0/16 or "::1")
Version 5 (7.10.0 release)
  • Formatting only
Version 4 (7.9.0 release)
  • Updated query, changed from:

    network.transport:tcp and destination.port:3389 and not
    source.ip:(10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and
    destination.ip:(10.0.0.0/8 or 127.0.0.0/8 or 172.16.0.0/12 or
    192.168.0.0/16 or "::1")
Version 3 (7.7.0 release)
  • Updated query, changed from:

    network.transport: tcp and destination.port: 3389 and (
    network.direction: inbound or ( not source.ip: (10.0.0.0/8 or
    172.16.0.0/12 or 192.168.0.0/16) and destination.ip: (10.0.0.0/8 or
    172.16.0.0/12 or 192.168.0.0/16) ) )
Version 2 (7.6.1 release)
  • Removed auditbeat-*, packetbeat-*, and winlogbeat-* from the rule indices.