Utredande use case · BESS · NIS2 Bilaga I · Ei

Batterilagrets dolda
OT-attackytor

En djupanalys av hur BMS, PCS-inverterare, SvK:s balansmarknads-API och leverantörsmolnet hänger ihop i ett 100 MW / 200 MWh batterilager — och varför ett intrång kan manipulera elnätets frekvensreglering utan att Ei kan rekonstruera händelseförloppet.

100 MW
Effektkapacitet
200 MWh
Energikapacitet
3
Attackscenarier
10 MEUR
Max Ei-sanktion
Fiktivt scenario — GridStore Energy AB är ett konstruerat analysfall. Protokoll, CVE:er och attackvektorer är verkliga och dokumenterade i CISA ICS-advisories, ENTSO-E cybersecurity guidelines och ENISA Threat Landscape 2024.
01
Analysfall

GridStore Energy AB
— systemkartan

GridStore Energy AB driver ett 100 MW / 200 MWh lithium-jon batterilager anslutet till Svenska kraftnäts stamnät. BESS-anläggningen deltar i aFRR- och FCR-balansmarknaderna. Fluences leverantörsmolnet är permanent anslutet. BMS-nätverket saknar i stort sett all OT-cybersäkerhetskontroll.

🔋Kritisk

BMS — Battery Management System

Fluence Mosaic BMS — 20 rack × 500 kWh, ModbusTCP + REST API

Fluence Mosaic BMS styr cell-balansering, SOC-beräkning, temperaturövervakning och skyddsutlösning för 20 batterimoduler. BMS exponerar ett REST API mot BESS SCADA och mot Fluences Operations Cloud. API:et saknar MFA och använder ett delat API-nyckelpar som aldrig roterats sedan driftsättning 2022.

Fluence CloudREST APIIngen MFA
Kritisk

PCS — Power Conversion System

SMA Sunny Central 2750 inverterare, 10 enheter — Modbus TCP + SMA webserver

SMA Sunny Central PCS-inverterare konverterar DC från batterierna till AC för elnätsanslutning. Varje inverterare kör en integrerad webserver för konfiguration med defaultlösenord ("admin/admin") i 7 av 10 enheter. Modbus TCP-gränssnittet accepterar effektsetpoints utan autentisering — direkt manipulerbart från OT-nätverket.

SMA ModbusDefault-credsSetpoint API
🖥️Kritisk

BESS SCADA — Ignition

Inductive Automation Ignition 8.1 — Windows Server 2022, port 8088 öppen

Ignition SCADA-servern hanterar systemintegration: BMS-data, PCS-effektstyrning, SvK-kommunikation och rapportering. Ignition-servern är nåbar på port 8088 direkt från kontorsnätet utan brandväggsregel. OPC-UA används mot BMS utan certifikatvalidering. Ingen multifaktorautentisering för operatörsinloggning.

Ignition 8.1Port 8088OPC-UA
📊Kritisk

SvK Balansmarknads-API

aFRR + FCR-bud via SvK ENTSO-E Transparency Platform + eSett API

GridStore deltar i aFRR- och FCR-kapacitetsmarknaderna via SvK:s API. Budsystemet (eSett) och aktiveringssignaler är integrerade i Ignition SCADA. API-nyckeln för budsystemet är lagrad i klartext i Ignitions projektfil (Git-repo: intern). En komprometterad SCADA-server ger automatisk åtkomst till elmarknadssystemet.

aFRR/FCRSvK APIKlartext API-nyckel
🔥Hög

Brandskydd — HI-FOG

Marioff HI-FOG IP65-system — BACnet mot BMS för termisk larmintegrering

Brandskyddssystemet kommunicerar via BACnet/IP med BMS för temperaturlarmintegrering och automatisk suppression vid termisk händelse. BACnet-nätverket saknar autentisering (BACnet/SC ej implementerat). Obehöriga BACnet-skrivkommandon kan aktivera eller inaktivera brandskyddssuppression manuellt utan larm.

BACnet/IPHI-FOGIngen BACnet/SC
🌡️Hög

Miljöbevakning och gassensorer

18 × temperatur/fukt + 6 × H₂/CO₂-gassensorer — MQTT mot leverantörsmolnet

Temperatur- och gassensorer i battericontainrarna kommunicerar via MQTT med ett externt sensorcloud (Sensirion/Tridium). Sensordata är kritisk för tidig detektion av termisk runaway. MQTT-autentisering saknas på 12 av 18 sensorer. Manipulerade sensorvärden kan maskera ett verkligt brandförlopp.

MQTTSensorcloudIngen auth
☁️Hög

Fluence Operations Cloud

Fluence permanent site-to-cloud VPN — fjärrövervakning, firmware, diagnostik

Fluence maintainar en permanent site-to-cloud VPN-tunnel för fjärrövervakning, prediktivt underhåll och firmware-hantering. Tunneln är alltid aktiv, ej loggad hos GridStore, och ger Fluences globala operations-team åtkomst till BMS-konfigurationsparametrar. Firmware-uppdateringar sker utan GridStores godkännande per avtal.

Fluence VPNPermanent åtkomstFirmware-kontroll
🔌Hög

Nätanslutning och RTU

ABB REX640 RTU — IEC 61850 mot SvK:s nätcentral + Cisco IE3400 routers

ABB RTU rapporterar aktiv effekt, reaktiv effekt och driftstatus till SvK via IEC 61850. IEC 62351-kryptering är ej implementerat. Cisco IE3400 industriroutern kör standardkonfiguration med SNMP v2c "public" och SSH med ett svagt lösenord som användes vid driftsättning och aldrig ändrats. 4G-fallback med okrypterad uppkoppling.

IEC 61850ABB RTUSNMP v2c
02
Nätverksarkitektur

Leverantörsmolnet är
en permanent bakdörr

GridStore har inga effektiva VLAN-gränser mellan BMS-nät, PCS-nät och kontorsnät. Fluences Operations Cloud och SvK API skapar permanenta dataflöden ut ur OT-miljön. API-nycklar är lagrade i klartext. Ingen trafik är loggad.

GRIDSTORE ENERGY AB — BESS OT/IT-NÄTVERKSTOPOLOGI
Internet / Moln
☁️ Fluence Operations Cloud (permanent)
SvK balansmarknads-API
Sensirion sensorcloud
3 molnanslutningar utan logg
IT/Kontor
Operatörs-PC:er
Ekonomi/ERP
Ignition SCADA (IT-OT)
Ingen segmentering mot BMS
BMS-nät (OT)
Fluence Mosaic BMS (×20)
ABB REX640 RTU
Cisco IE3400
OPC-UA utan cert.validering
PCS/Fält (OT)
SMA PCS-inverterare (×10)
HI-FOG brandskydd
MQTT gassensorer
Modbus utan autentisering
🔴 BESS-avtalet kräver leverantörens permanenta molnanslutning

Fluence och Tesla/Megapack levererar BESS med integrerade Operations Cloud-avtal som kräver permanent anslutning för garantiuppfyllnad och prediktivt underhåll. Firmware-uppdateringar sker automatiskt via molnet utan operatörens godkännande. Att blockera molnuppkopplingen bryter BESS-garantin och riskerar att ogiltigförklara försäkringsavtalet — en situation identisk med O&M-problemet i vindkraft. Resultatet: GridStore äger BESS-anläggningen men Fluence kontrollerar firmware och har permanent systemåtkomst.

03
Tre realistiska attackscenarier

Från API-intrång
till termisk runaway

01
"BMS-manipulationen" — Fluence Cloud-kompromiss → BMS set-point → termisk händelse
Cloud credential theft · BMS API · Battery thermal manipulation · Fire suppression disabled
KRITISK
1

Fluence Operations Cloud-credentials stulna

En Fluence field engineer mottar en spearphishing-e-post som efterliknar Fluences interna portal. Credentials stulna och MFA-token snappad via adversary-in-the-middle proxy. Angriparen loggar in på Fluence Operations Cloud och hittar GridStore Energy AB:s BESS-anläggning i listan — full BMS-API-åtkomst via molnportalen. Inga larm triggas hos GridStore.

T0865 — Spearphishing
2

BMS-konfigurationsmanipulation — ändrade termiska trösklar

Via Fluence Cloud-portalen ändrar angriparen BMS-konfigurationsparametrar för 4 batterimoduler: temperaturlarmtröskel höjs från 45°C till 72°C, och SOC-skyddsutlösning (overcharge cutoff) justeras upp med 8%. GridStores operatörer ser ingenting — all konfigurationsändring hanteras av Fluences molnplattform utan notifiering till GridStore.

T0836 — Modify Parameter
3

Hög laddningscykel under sommarpeakvärme

Angriparen väntar på ett dygn med hög elmarknadsefterfrågan (spotpris >2000 SEK/MWh) och trigger maximalt aFRR-budsvar. GridStore kör BESS på 95% effektuttag under varm dag. Fyra batterimoduler börjar överhetta — men BMS-larmen triggas inte förrän vid 72°C tack vare konfigurationsändringen. Termisk runaway initieras i en cell utan larm.

T0855 — Unauthorized Command Message
4

Brandskydd inaktiverat — HI-FOG suppression blockerad

Via BACnet/IP-nätverket skickar angriparen ett BACnet Write Property-kommando som sätter HI-FOG suppressionssystemet i testläge ("inhibit mode") — utan autentisering. När termisk runaway eskalerar 22 minuter senare aktiveras inte suppressionen. GridStore måste evakuera och stänga av hela BESS-anläggningen. Brandkåren kallas in.

T0814 — Denial of Service
Konsekvenser
  • Termisk incident i 4 batterimoduler — 40 MWh kapacitet skadat, ersättningskostnad 120–200 MSEK
  • Personrisk: operatörerna befinner sig i anläggningen när runaway eskalerar utan larm
  • SvK-åtaganden: GridStore kan inte fullgöra aFRR-balansmarknadsbud under 3–6 månaders reparation
  • Ei-tillsyn: NIS2 incidentrapport 72h — utan BMS-konfigurationslogg är forensik omöjlig
  • MSB-utredning: kritisk infrastruktur-incident involverar räddningstjänst
NIS2 Bilaga I — Energi · Ei-rapport 72h · MSB · Räddningstjänst
02
"Balansmarknadsbryggan" — Ignition SCADA-kompromiss → falska FCR-bud → elnätsstörning
SCADA lateral movement · SvK API abuse · False frequency regulation · Grid imbalance
ALLVARLIG
1

Lateral rörelse till Ignition SCADA via kontorsnätet

En operatörs-PC infekteras via en phishing-länk. Angriparen rör sig lateralt i kontorsnätet och hittar Ignition SCADA på port 8088 — direkt tillgängligt utan brandväggsregel. Ignitions standarduppgifter ("admin/password") fungerar. Angriparen har nu full SCADA-åtkomst inklusive alla integrationer: BMS-API, PCS-styrning, och SvK-API-konfiguration.

T0817 — Exploit Public-Facing Application
2

SvK API-nyckeln läses ur Ignitions projektfil

Angriparen hittar eSett API-nyckeln lagrad i klartext i Ignitions projektfil (XML-konfiguration). Med API-nyckeln kan angriparen direkt kommunicera med SvK:s balansmarknadssystem — utanför Ignition SCADA. GridStore Energy AB:s hela FCR-N-kapacitet (100 MW) och aFRR-budgivning kan manipuleras direkt utan att GridStores operatörer ser det i SCADA.

T0882 — Theft of Operational Information
3

Falska FCR-N-bud — GridStore rapporterar 100 MW disponibelt, levererar 0 MW

Angriparen skickar FCR-N-kapacitetsbud via SvK API för kommande dygn: GridStore erbjuder 100 MW primärreglering. Parallellt modifierar angriparen PCS-setpoints i Ignition så att inverterarna körs i ö-drift (island mode) och inte svarar på frekvensavvikelse-signaler. SvK förlitar sig på GridStores 100 MW FCR-N-kapacitet som aldrig aktiveras vid frekvensfall.

T0855 — Unauthorized Command Message
4

Frekvensavvikelse i stamnätet — SvK-utredning inleds

Nästa dag inträffar en oväntad kraftverkstrip i Sydsverige. FCR-N-kapaciteten som ska buffra frekvensfallet aktiveras inte av GridStore. 49,8 Hz detekteras i SvK:s centraldispatching. Manuella reserver aktiveras. SvK inleder utredning: GridStore lämnade FCR-N-bud och levererade 0 MW. Ei och MSB informeras. GridStore förlorar sin balansansvarsprestation och riskerar marknadsavstängning.

T0840 — Network Connection Enumeration
Konsekvenser
  • SvK-utredning: GridStore lämnade FCR-N-bud utan leveransförmåga — balansmarknadssanktion
  • Elmarknadsavstängning: GridStore riskerar tillfälligt tillståndsåterkallande
  • Ei-tillsyn: NIS2 Bilaga I incident — SvK-rapport och Ei-rapport parallellt, 72h-krav
  • Utan Ignition-händelselogg kan GridStore inte bevisa extern manipulation — intern sabotage-misstanke
  • Kontraktuella skadeståndskrav från SvK och balansmarknadsaktörer som lidit skada av frekvensavvikelsen
NIS2 Bilaga I — Energi · SvK · Ei · MSB · Balansmarknadsregelverk
03
"PCS-kaskaden" — SMA default-creds → PCS-inverterare ö-drift → transformatoröverspänning
Default credentials · PCS island mode · Grid reconnect voltage spike · Equipment damage
KRITISK
1

SMA PCS-webserver med "admin/admin" — intern nätverksskanning

En angripare med åtkomst till kontorsnätet (via phishing, insider eller okrypterad 4G-fallback) kör en nätverksskanning och hittar 10 SMA Sunny Central PCS-inverterare på OT-nätet. 7 av 10 webservrar svarar med defaultlösenordet "admin/admin". Angriparen loggar in och ser PCS-konfigurationsgränssnittet med full styrning: effektsetpoints, gridanslutningsparametrar och skyddsinställningar.

T0822 — Default Credentials
2

Ändring av spännings- och frekvenstoleranser i PCS-skyddsprofil

I SMA-webserverns avancerade inställningar ändrar angriparen spänningstoleransen för gridanslutning (Umax höjs från 110% till 125% av nominell spänning) och frekvenstoleransen vidgas. De ändrade skyddsinställningarna innebär att inverterarna inte kopplar bort vid överspänningshändelser som normalt ska trigga skyddsutlösning.

T0836 — Modify Parameter
3

Planerat underhållsstopp — återkoppling av BESS

Under ett planerat 2-timmars underhållsstopp kopplas BESS från elnätet. Vid återinkoppling — ett normalt driftsmoment — uppstår en transientsöverspänning på 118% UN i den lokala elnodspunkten (PCC) på grund av en simultant anslutande vindparksenhet i samma nätpunkt. Normalt skyddar PCS-inverterarna mot detta. Med ändrade trösklar kopplar inte inverterarna ifrån.

T0855 — Unauthorized Command Message
4

Transformatoröverspänning — 3 av 10 PCS-inverterare skadade

Transientsöverspänningen på 118% skadar transformatorisoleringar i 3 av 10 PCS-inverterare. Kraftelektronikens IGBT-moduler havererar. 30 MW PCS-kapacitet går ur drift. Reparationstid: 8–12 veckor per enhet (SMA långa leveranstider). GridStore kan inte uppfylla sina FCR-åtaganden. Utan händelselogg på PCS-konfigurationsändringar: inget bevis för manipulation.

T0814 — Denial of Service
Konsekvenser
  • 30 MW PCS-kapacitet skadat — reparationskostnad 15–25 MSEK, 8–12 veckors leveranstid
  • FCR-åtaganden kan inte uppfyllas: balansmarknadssanktioner och SvK-utredning
  • Försäkringsärende: PCS-tillverkaren (SMA) hävdar felkonfigurering — försäkringen täcker möjligen inte
  • Ei-rapport 72h: PCS-konfigurationslogg saknas — NIS2-brott parallellt med incidentrapport
  • Elmarknadsotillförlitlighet: GridStore kan under 2–3 månader inte delta i FCR-N/aFRR
NIS2 Bilaga I — Energi · SvK · Ei · Elmarknadstillsynen REMIT
04
Ansvar och insikter

Leverantörsmolnet äger
säkerheten i praktiken

SystemKritikalitetOT-cyber-ansvarigNIS2/Ei-ansvarigLoggad?
Fluence Mosaic BMSKritiskFluence (leverantör!)VD/CISONej (Fluence Cloud)
SMA PCS-inverterareKritiskSMA (leverantör) / ITOklartNej
Ignition SCADAKritiskIT-avdelningen (delvis)VD/CISODelvis
SvK Balansmarknads-APIKritiskIT (klartext-nyckel)OklartNej
HI-FOG brandskyddHögMarioff (leverantör!)OklartNej
MQTT gassensorerHögSensirion (moln)OklartNej
ABB REX640 RTUHögABB (leverantör!)VD/CISONej
☁️

Leverantörsmolnet är en permanent, okontrollerad bakdörr

Fluences Operations Cloud har permanent åtkomst till BMS-konfiguration, larmtrösklar och firmware. GridStore loggar inte denna åtkomst och kan inte skilja en legitim Fluence-åtgärd från en angripare som komprometterat Fluences molnplattform. NIS2 artikel 21.2(d) kräver att detta regleras kontraktuellt och loggas tekniskt.

📊

Balansmarknads-API-nyckeln är en direkt elnätsattackvektor

En klartext-lagrad SvK API-nyckel i en SCADA-konfigurationsfil ger varje angripare med SCADA-åtkomst direkt förmåga att manipulera FCR- och aFRR-bud. BESS är ensamma noder med stor effekt — deras bud påverkar direkt SvK:s frekvensreglering. Det är en kritisk infrastrukturattackvektor av nationell betydelse.

🔥

OT-säkerhet i BESS är säkerhetskritisk, inte bara cybersäkerhet

Manipulation av BMS-larmtrösklar och brandskyddssuppression skapar direkt personrisk — inte bara produktionsbortfall. Det gör BESS till en kategori där OT-cybersäkerhetsbrister kan klassas som säkerhetskritiska. Ei och MSB kan klassificera en BESS-incident som kritisk infrastruktur-incident med separat utredning.

📋

Ei-rapport utan BMS-konfigurationslogg är omöjlig

NIS2 kräver 72h-rapport till Ei med händelserekonstruktion. BMS-konfigurationsändringar sker via Fluence Cloud utan logg hos GridStore. PCS-parameterförändringar loggas inte lokalt. En angripare kan manipulera GridStores BESS, orsaka en incident och lämna utan digitala spår i GridStores egna system.

Hur ser er BESS-anläggnings
OT-exponering ut?

Ladda ner den kostnadsfria NIS2-guiden för energiproducenter — eller boka en OT-inventering och se hur er BMS, PCS, leverantörsmolnet och SvK-integrationen faktiskt hänger ihop.