SSH (Secure Shell) from the Internetedit

Detects network events that may indicate the use of SSH traffic from the Internet. SSH is commonly used by system administrators to remotely control a system using the command line shell. If it is exposed to the Internet, it should be done with strong security controls as it is frequently targeted and exploited by threat actors as an initial access or back-door vector.

Rule type: query

Rule indices:

  • filebeat-*
  • packetbeat-*

Severity: medium

Risk score: 47

Runs every: 5 minutes

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

Maximum alerts per execution: 100

Tags:

  • Elastic
  • Network

Version: 4 (version history)

Added (Elastic Stack release): 7.6.0

Last modified (Elastic Stack release): 7.9.0

Rule authors: Elastic

Rule license: Elastic License

Potential false positivesedit

Some network security policies allow SSH directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. SSH services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only SSH gateways, bastions or jump servers may be expected expose SSH directly to the Internet and can be exempted from this rule. SSH 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 queryedit

event.category:(network or network_traffic) and network.transport:tcp
and (destination.port:22 or event.dataset:zeek.ssh) and not
source.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") and destination.ip:(10.0.0.0/8 or
172.16.0.0/12 or 192.168.0.0/16)

Threat mappingedit

Framework: MITRE ATT&CKTM

Rule version historyedit

Version 4 (7.9.0 release)
  • Updated query, changed from:

    network.transport:tcp and destination.port:22 and not
    source.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") and destination.ip:(10.0.0.0/8 or
    172.16.0.0/12 or 192.168.0.0/16)
Version 3 (7.7.0 release)
  • Updated query, changed from:

    network.transport: tcp and destination.port:22 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.