Hosts File Modifiededit

The hosts file on endpoints is used to control manual IP-address-to-hostname resolutions. The hosts file is the first point of lookup for DNS hostname resolution, so if adversaries can modify the endpoint hosts file, they can route traffic to malicious infrastructure. This rule detects modifications to the hosts file on Microsoft Windows, Linux (Ubuntu or RHEL), and macOS systems.

Rule type: eql

Rule indices:

  • auditbeat-*
  • winlogbeat-*
  • logs-windows.*

Severity: medium

Risk score: 47

Runs every: 5m

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

Maximum alerts per execution: 100



  • Elastic
  • Host
  • Linux
  • Windows
  • macOS
  • Threat Detection
  • Impact

Version: 9

Rule authors:

  • Elastic

Rule license: Elastic License v2

Investigation guideedit

## Config

For Windows systems using Auditbeat, this rule requires adding `C:/Windows/System32/drivers/etc` as an additional path in the 'file_integrity' module of auditbeat.yml.

If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.

Rule queryedit

any where

  /* file events for creation; file change events are not captured by some of the included sources for linux and so may
     miss this, which is the purpose of the process + command line args logic below */
   event.category == "file" and event.type in ("change", "creation") and
     file.path : ("/private/etc/hosts", "/etc/hosts", "?:\\Windows\\System32\\drivers\\etc\\hosts")

  /* process events for change targeting linux only */
   event.category == "process" and event.type in ("start") and in ("nano", "vim", "vi", "emacs", "echo", "sed") and
     process.args : ("/etc/hosts")