Attack Analysis

IEC 61850 GOOSE Spoofing: How Attackers Trip Circuit Breakers

Jun 20, 2026 7 min read Manavendra Yadav

A GOOSE message trips a circuit breaker in under 4 milliseconds. That timing is not a bug — it is the entire point. IEC 61850 Generic Object Oriented Substation Events (GOOSE) exist precisely because protection relays need to respond to faults faster than any polling-based protocol can manage. When a short circuit appears on a 138 kV bus, 4ms is the difference between a contained fault and a cascading grid failure.

The same speed that makes GOOSE essential to power system protection makes GOOSE spoofing uniquely dangerous. In IEC 61850 Edition 1 and Edition 2 — the editions deployed in the vast majority of operational substations — GOOSE messages carry no authentication. Any device on the substation process bus LAN can publish a GOOSE message claiming to be any Intelligent Electronic Device (IED), and every subscribed IED will act on it immediately.

What GOOSE Is and Why It Matters

IEC 61850 defines three main communication services:

GOOSE operates at Layer 2 (Ethernet) using EtherType 0x88B8. It does not use IP addresses, UDP, or TCP. Messages are sent as multicast frames to a destination MAC address configured in the IED's GOOSE control block (GoCB). Subscribed IEDs listen for multicast frames matching their configured AppID and GOOSE control block reference.

The typical GOOSE use case is protection relay interlocking: when Relay A detects an overcurrent condition, it publishes a GOOSE "trip" signal; Breaker B receives the multicast, sees the trip bit set, and opens within 4ms. This is faster than any human operator, faster than any SCADA poll, and faster than any TCP connection setup.

The Authentication Gap in Edition 1 and 2

The IEC 61850 standard was first published in 2003–2005 (Edition 1) and revised in 2007–2010 (Edition 2). Neither edition included authentication for GOOSE or Sampled Values. The security assumption was that the process bus — the dedicated Layer 2 network connecting relays and merging units in a substation — was physically secured and isolated from external networks.

This assumption has eroded significantly:

⚠ Attack prerequisite: An attacker needs Layer 2 adjacency to the process bus — a compromised IED, a rogue device inserted during maintenance, or access to the station bus with a path to process bus VLANs. This is a non-trivial but realistic prerequisite given the threat landscape facing national grid infrastructure.

How a GOOSE Spoofing Attack Works

Step 1: Reconnaissance

Capture GOOSE traffic passively using a Linux host with a promiscuous mode network interface. Wireshark dissects GOOSE with goose display filter. Key fields to extract:

# Wireshark GOOSE fields of interest:
goose.gocbRef      # Control block reference — identifies the publisher IED
goose.appId        # Application ID — must match in spoofed frame
goose.stNum        # State number — increments on value change
goose.sqNum        # Sequence number — increments on every retransmission
goose.allData      # The actual data set — boolean, integer, float values

A legitimate GOOSE publisher retransmits the same message at increasing intervals (T1 fast retransmit, then T2, T3, T4 slow steady state). By observing the retransmission pattern, an attacker can identify the normal state values and timing.

Step 2: Craft the Spoofed Frame

The spoofed GOOSE frame must use the exact AppID, gocbRef, and datSet from the legitimate publisher, but with:

# Conceptual GOOSE spoof (Scapy-style pseudocode)
frame = Ether(
  src="aa:bb:cc:dd:ee:ff",   # publisher IED MAC
  dst="01:0c:cd:01:00:01",   # GOOSE multicast group
  type=0x88B8              # GOOSE EtherType
) / GOOSE(
  appId=0x0001,
  gocbRef="REL_A/LLN0$GO$GoCB01",
  stNum=observed_stNum + 1,  # ← higher stNum forces acceptance
  sqNum=0,
  allData=[True]             # ← trip signal asserted
)
sendp(frame, iface="eth0")

Step 3: Immediate Physical Effect

A subscribed protection relay or breaker controller receiving this frame with a higher stNum treats it as a legitimate state change from the publisher IED. Per the IEC 61850 standard, it must act on new state data immediately — there is no mechanism to verify authenticity. The circuit breaker opens within <4ms.

Depending on which GOOSE control block is spoofed, the effect could be:

The 2015–2016 Ukraine Grid Attacks

The Industroyer/Crashoverride malware used in the December 2016 Kiev attack (causing a 1-hour blackout) included a dedicated IEC 61850 module. While the primary attack vector used IEC 104 to send direct commands to RTUs, the IEC 61850 component demonstrated the ability to publish GOOSE messages directly to protection relays — precisely the GOOSE spoofing scenario described here. The malware authors had clearly studied the substation protocol in detail and understood that unauthenticated GOOSE was a viable attack path.

IEC 62351-6: The Fix

IEC 62351 Part 6 (published 2020, revised 2023) defines security for IEC 61850 GOOSE and Sampled Values using a HMAC-based Message Authentication Code prepended to each frame.

IEC 62351-6 FeatureDetail
MAC algorithmHMAC-SHA-256 truncated to 8 bytes (64 bits)
Key managementSymmetric GCKS (Group Controller Key Server) distributes group keys to IEDs
Key ID4-byte identifier included in each frame so receivers can select the correct key
Frame overhead~12 bytes per GOOSE frame — negligible on process bus (1 Gbps)
Timing impact<1ms additional latency — still well within 4ms protection requirement
Backwards compatibilityIEDs not supporting IEC 62351-6 will ignore the security extension fields

The GCKS distributes multicast group keys to all IEDs in the same GOOSE multicast group. An IED that receives a GOOSE frame with an invalid or missing MAC rejects it. A spoofed frame from an attacker without the current group key will fail MAC verification and be silently discarded.

Why Adoption Is Still Limited

Like DNP3 SA, IEC 62351-6 faces significant deployment barriers:

Compensating Controls While Waiting for IEC 62351-6

For substations that cannot immediately deploy authenticated GOOSE, the practical defence is strict Layer 2 segmentation:

⚡ Simulate this attack in ICSora Labs

Walk through the full IEC 61850 GOOSE spoofing attack scenario — from substation reconnaissance to breaker trip — then explore how IEC 62351-6 authentication and process bus segmentation defend against it.

Explore IEC 61850 →

Summary


← Modbus Security Vulnerabilities ← DNP3 Secure Authentication ← All articles