OT Säkerhet

PLC

En Programmerbar Logikkontroller är en robust industriell dator som kör styrlogik i en kontinuerlig, deterministisk skanningscykel för att automatisera fysiska processer.

Var du ser detta: Relevant i industriella miljöer, kritisk infrastruktur och överallt där IT-nätverk ansluter till operationsteknologisystem.

Vad det är

En PLC är en specialiserad industriell dator som kontinuerligt kör en skanningscykel för att läsa indata, utföra styrlogik och skriva utdata till aktuatorer. De är designade för deterministisk realtidsdrift i krävande miljöer och programmeras via dedikerade ingenjörsarbetsstationer med leverantörsspecifik mjukvara.

Nyckelpunkter
  • Skanningscykeln, läs indata, kör program, skriv utdata, upprepas normalt var 1 till 10 millisekund.
  • IEC 61131-3 definierar fem standardprogrammeringsspråk: steglogik, funktionsblockdiagram, strukturerad text, instruktionslista och sekventiella funktionsscheman.
  • De flesta PLC:er har ingen autentisering på kommunikationsportarna och accepterar programändringar från vilken enhet som helst i samma nätverkssegment.
  • Firmwareuppdateringar kräver kontrollerade underhållsfönster och leverantörsverktyg. Patchning sker sällan, och många PLC:er kör firmware som är tio eller tjugo år gammal.
  • Säkerhets-PLC:er (SIS) utgör en separat klass med ytterligare integritetskrav, oberoende nätverksanslutningar och höga certifieringsstandarder.

Hur det fungerar i stora drag

  1. Inventera alla PLC:er i nätverket, inklusive modell, firmware-version och nätverksplats, med passiv tillgångsdiscovery eller leverantörens hanteringsverktyg.
  2. Begränsa ingenjörsarbetsstationens åtkomst till PLC:er med VLAN-segmentering och brandväggsregler som specificerar tillåtna käll-IP-adresser.
  3. Exportera och lagra kända bra PLC-program regelbundet och jämför mot körande program för att detektera obehöriga ändringar.
  4. Övervaka för oväntade anslutningar till PLC-kommunikationsportar, särskilt utanför underhållsfönster.
  5. Samordna alla programmeringsaktiviteter med kontrollingenjörer och säkerhetspersonal via ett formellt ändringshanteringsarbetsflöde.

Konkret exempel

En kemisk anläggning kör reaktortryckreglering på Siemens S7-400 PLC:er med firmware från 2009. Under en rutinrevision jämför säkerhetsteamet körande program mot den lagrade baslinjen och hittar en ändrad PLC-logikrutin som justerar trycklarmsgränsen uppåt. Ändringen är odaterad och har ingen tillhörande arbetsorder. Anläggningen stoppar reaktorn och utreder. Ändringen spåras till en komprometterad ingenjörsarbetsstation som var ansluten till nätverket tre veckor tidigare för ett schemalagt underhållsjobb.

Varför det är viktigt

PLC:er styr direkt fysiska processer. En angripare som kan modifiera styrlogik eller manipulera börvärden kan orsaka farligt beteende, skada tillgångar, skada personal eller utlösa processavstängningar. Stuxnet visade att kompromiss på PLC-nivå är möjlig och kan ge verkliga fysiska konsekvenser.

Säkerhetsperspektiv

  • Många PLC:er saknar autentisering på kommunikationsportarna. Vilken enhet som helst i samma nätverkssegment kan skicka kommandon.
  • Ingenjörsarbetsstationen som används för att programmera PLC:er är en kritisk attackyta. Att kompromissa den är ofta det sista steget innan en angripare kan modifiera styrlogik.
  • Nätverkssegmentering är det primära försvaret. PLC:er ska aldrig vara nåbara från företagsnätverk, och ingenjörsarbetsstationens åtkomst bör begränsas med VLAN och brandväggsregler.
  • Logikintegritetskontroll är effektiv men sällan implementerad. Att jämföra körande program mot en känd bra baslinje är en av de mest effektiva OT-säkerhetskontrollerna.
  • Leverantörers fjärråtkomstfunktioner, ofta aktiverade som standard, skapar bestående uppkopplingsvägar in i OT-nätverk som kringgår normala åtkomstkontroller.

Vanliga fallgropar

  • Att behandla PLC:er som IT-system och förvänta sig standardpatchningscykler. PLC-firmwareuppdateringar kräver leverantörskoordinering, processavbrott och omfattande testning.
  • Att anta att luftgap existerar. Historikservrar, fjärråtkomstverktyg, USB-överföringar och leverantörsanslutningar skapar ofta odokumenterade vägar in i förmodat isolerade PLC:er.
  • Att lämna standardlösenord på plats. Många PLC:er levereras med fabrikslösenord eller inget lösenord alls, och dessa standardvärden är offentligt dokumenterade.
  • Att ansluta PLC:er direkt till platta nätverk vid driftsättning eller felsökning och sedan glömma att återställa segmenteringen.

FÖRDJUPNING

Skanningscykeln: PLC:ns hjärtslag

Allt en PLC gör är organiserat kring skanningscykeln. I varje cykel läser PLC:n det aktuella tillståndet för alla indata (sensorer, knappar, gränslägen, analoga signaler) till ett bildminne kallat ingångsbildregistret. Sedan kör den styrprogrammet uppifrån och ned och utvärderar logik mot indata och interna register. Slutligen kopierar den resultaten till utgångsbildregistret, som driver fysiska utgångar som ventilspolar och motorstarter.

Cykeltider varierar vanligtvis mellan 1 och 50 millisekunder beroende på programstorlek och PLC-modell. Denna determinism är central för säker processreglering: operatörer och ingenjörer förlitar sig på förutsägbara svarstider. Processer som kräver reaktioner snabbare än skanningscykeln använder avbrottsrutiner, dedikerade höghastighets-I/O-moduler eller separata säkerhets-PLC:er.

Ur ett säkerhetsperspektiv innebär denna arkitektur att en angripare som modifierar det körande programmet kan påverka fysiska utdata vid nästa skanningscykel, potentiellt inom millisekunder efter att ändringen är skriven.

IEC 61131-3-programspråk och stegdiagramtraditionen

IEC 61131-3 standardiserar fem programmeringsspråk för PLC:er. Steglogik är det vanligaste: ett grafiskt språk modellerat på reläkontaktscheman som elektriker använde före PLC:er. Varje 'steg' är en rad som representerar ett logikvillkor (kontakter) och ett resultat (spolar). Funktionsblockdiagram visar signalflöde mellan funktionsblock, liknande elektroniska kretsscheman. Strukturerad text är ett högnivåspråk som liknar Pascal. Instruktionslista är lågnivåmonteringsstil. Sekventiella funktionsscheman modellerar tillståndsmaskiners beteende.

Den praktiska konsekvensen för säkerhet är att PLC-program är svåra att granska om du inte förstår det specifika leverantörsimplementerade språket, och att många anläggningar saknar personal som kan utföra kod-granskningar. Stuxnet nyttjade detta: det infekterade specifikt Siemens Step 7-ingenjörsprogramvaran och modifierade OB35-avbrottsblock, vars beteende var svåra att detektera utan specialiserade analysverktyg.

Moderna PLC-säkerhetsverktyg som Claroty, Dragos och Nozomi Networks inkluderar parsers för IEC 61131-3-språk och kan flagga programändringar automatiskt utan att kräva manuell kodinspekteckning av personal.

I/O-moduler och gränssnittet mot den fysiska världen

PLC:er kommunicerar med den fysiska världen via I/O-moduler monterade i hyllor. Diskreta I/O-moduler hanterar binära signaler som är antingen på eller av. Analoga I/O-moduler konverterar spänning eller strömsignal till digitala värden. Speciella moduler hanterar temperaturgivare, höghastighetsräknare och kommunikationsprotokoll.

I/O-modulerna är vanligtvis fysiskt separerade från nätverksgränssnittet och kräver fysisk åtkomst för att manipuleras direkt. Attackvägar mot I/O fokuserar därför på mjukvarulagret: modifiera programmet som kör på PLC:n för att ändra hur indata tolkas eller vilka utdata som skickas, snarare än att manipulera hårdvaran direkt.

Säkerhets-I/O-moduler (SIL-klassade) har extra integritetsfunktioner inklusive diagnostik, kretskortsdublering och säkert tillstånd vid kommunikationsförlust. De kräver separata säkerhetsprogrammeringsstandarder och ska aldrig delas med standard-PLC-logik.

PLC-kommunikation i moderna ICS-arkitekturer

Moderna PLC:er kommunicerar via industriella Ethernet-protokoll som EtherNet/IP (Rockwell Automation), PROFINET (Siemens) och Modbus TCP. Dessa protokoll transporterar I/O-data, programnedladdningar och diagnostikinformation. De saknar generellt autentisering och kryptering på applikationslagret.

En PLC är typiskt ansluten till ett ingenjörsnätverk och ett fältnätverk. Ingenjörsnätverket ansluter ingenjörsarbetsstationer och SCADA-servrar. Fältnätverket ansluter sensorer, aktuatorer och annan fältinstrumentering. Denna arkitektur innebär att kompromiss av något segment potentiellt kan nå PLC:n.

OPC UA (OPC Unified Architecture) framväxer som ett säkrare kommunikationsalternativ med inbyggd autentisering och kryptering. Men migrering av befintliga PLC-installationer till OPC UA är kostsam och störande, och äldre PLC-modeller stöder det inte alls.

Varför PLC:er är högt prioriterade angreppsmål

PLC:er är högt prioriterade mål eftersom de direkt styr fysiska processer. En komprometterad PLC kan orsaka utrustningsskador, processavstängningar, säkerhetsincidenter eller manipulation som är svår att detektera utan specialiserade övervakningsverktyg.

Attackvägen som Stuxnet etablerade, kompromittera ett IT-system, pivota till en ingenjörsarbetsstation och ladda ned modifierad logik till PLC:n, förblir den vanligaste attackmodellen. Ingenjörsarbetsstationen är den kritiska noden: den är auktoriserad att programmera PLC:er och är ofta mer tillgänglig från företagsnätverket än från PLC:erna själva.

Detektionsutmaningen är lika allvarlig som attackvektorn. PLC:er genererar sällan loggar som är tillgängliga för säkerhetsövervakning. Utan aktiv programändringsdetektion kan en modifiering av en PLC:s styrlogik förbli oupptäckt under lång tid. Etablering av en baslinje för kända bra program och regelbunden jämförelse mot körande program är den mest direkta kontroll som finns tillgänglig.