openAut Security — Passiv säkerhetsagent · Arkitektoniskt separerad

Ser allt.
Kan inte
styras.

⚠ Konceptprojekt under utveckling. Säkerhetsmodellen nedan beskriver hur openAut är tänkt att skydda sig — den är en del av ett kunskaps- och konceptprojekt, inte en färdig produkt, och ska inte användas i skarp drift eller live-miljöer.

En separat openAut-instans specialiserad på IT- och OT-säkerhet. Den läser driftinstansernas loggar via read-only SSH, lyssnar på alla Teams-kanaler utan att kunna ta emot kommandon, och flaggar misstänkt aktivitet till ett isolerat säkerhetsteam — utan att någon kan instruera den via Teams. Principen är medveten: agentstacken är kraftfull och tillåtande som standard, så säkerhetsvärdet ligger i att begränsa vad agenten kan göra — inte bara vad den blir tillsagd. En manipulerad modell har ingen skrivväg att utnyttja.

Separat hårdvara Read-only SSH Listen-only bot Prompt injection — ingen verkningsradie IEC 62443 · NIS2 MIT-licens
Arkitektur nedanför
Arkitektoniska kärnprinciper

Tre principer som
inte går att kompromissa.

Säkerhetsagentens design utgår från ett enkelt antagande: driftinstanserna kan komprometteras. Om den gör det ska säkerhetsinstansen vara opåverkad, ha bevarat alla bevis och kunna larma utan att använda samma kommunikationskanal som attackerades.

PRINCIP 01
🔒

Arkitektonisk isolation

Säkerhetsinstansen körs på separat fysisk hårdvara i ett eget VLAN-segment. Den delar inget minne, ingen process och inga nätverksgränser med driftinstanserna. Komprometteras huvudsystemet är säkerhetsagenten opåverkad — den kör sin egen NemoClaw med sina egna nycklar, sina egna loggar och sin egna nätverksidentitet.

Separat maskin. Separat VLAN. Separat identitet.
PRINCIP 02
👁

Read-only SSH — noll skrivåtkomst

Säkerhetsagenten autentiserar med en dedikerad systemanvändare (openaut-sec-ro) som har exklusiv läsrättighet till auditloggar, konversationsloggar, MQTT-data och systemmetrik. Kontot saknar shell-åtkomst utanför definierade kommandouppsättningar. Ingen sudo. Ingen skrivåtkomst. Ingen möjlighet att påverka konfiguration eller fältlager.

Ser allt. Kan inte ändra någonting.
PRINCIP 03
🙊

Listen-only bot — svarar aldrig

Teams-boten lyssnar i alla kanaler där Advisor-boten finns. Den reagerar aldrig på inkommande meddelanden, svarar aldrig på frågor och utför aldrig instruktioner. Prompt injection via Teams fungerar inte — boten har ingen exekveringsväg från inkommande meddelanden till handling. Larm går till ett separat säkerhetsteams-kanalflöde som Advisor-boten inte har åtkomst till.

Lyssnar på allt. Svarar på ingenting via Teams.
Systemarkitektur

Tre instanser.
Två arbetar. En vaktar.

Driftinstanser
openAut Advisor + Engineer
Två servrar · egen sandbox + credentials per instans
ADVISOR — read-only, Teams-vänd:
FDD · rotorsak · energianalys
Teams Bot — Advisor
Read-only mot Systemdatabasen
Skrivväg: enbart ärendekö (förslag)
ENGINEER — SSH-skrivåtkomst/deploy, ej Teams:
SSH-skriv & deploy mot edge/OT (IOT2050)
Guidad integration · autodokumentation
Exekverar godkända ärenden · steg-för-steg
Kontrollplan: bastion · mTLS · MFA
DELAT:
Delad AI-backend: NemoClaw · öppna modeller (valfri lokal AI-hårdvara)
Systemdatabas (PostgreSQL)
MQTT-broker (EMQX · TLS) · Audit log daemon
VLAN 10 — OT · VLAN 20 — Management
SÄKERHETSINSTANSENS KONTO PÅ DESSA MASKINER:
openaut-sec-ro · uid=9001 · shell=/sbin/nologin
Tillåtna kommandon: cat, tail, grep, journalctl
Tillåtna sökvägar: /var/log/openaut/, /var/log/audit/
Endast openAut Security — inga sudo-rättigheter, ingen skrivåtkomst.
Nätgräns
SSH read-only
Ingen skrivåtkomst
Ingen shell
Säkerhetsinstans
openAut Security
Egen AI-hårdvara · Separat VLAN
NemoClaw — security mode
IT-säkerhets-skill
OT-säkerhets-skill
Prompt-klassificerare (icke-genererande)
Anomalikorrelation
Teams Bot — listen-only
Larmsändare → Säkerhetskanal
Lokal audit-databas (separat)
VLAN 30 — Säkerhetsnät (isolerat)
BEGRÄNSNINGAR:
Tar inga kommandon via Teams
Kan ej skriva till driftinstanserna
Larm går till separat kanal
SSH-åtkomst

Read-only SSH.
Noll skrivåtkomst.

Säkerhetsagenten autentiserar mot driftinstanserna med en systemanvändare (openaut-sec-ro) som enbart existerar för att läsa loggar. Kontot har inget interaktivt shell — /sbin/nologin — och kan bara köra en fördefinierad kommandouppsättning via authorized_keys-begränsningar.

Försöker säkerhetsagenten skriva en fil, ändra en konfiguration eller köra ett privilegierat kommando avvisas det av operativsystemets filrättighetssystem — inte av NemoClaw. Det finns ingen mjukvarulogik att kringgå. Begränsningen är i kärnan.

Komprometteras säkerhetsinstansen kan en angripare i värsta fall läsa driftloggarna. De kan aldrig använda SSH-kontot för att påverka fältlager, konfiguration eller pågående reglering.

openaut-sec-ro · Filsystemsrättigheter
📋 /var/log/openaut/conversations/ Läs
📋 /var/log/openaut/audit/ Läs
📋 /var/log/openaut/commands/ Läs
📊 /var/log/openaut/metrics/ Läs
📋 /etc/openaut/ Läs
📋 /var/lib/openaut/ (data) Läs
🚫 sudo · systemctl · pip · git Nekat
🚫 Skriva till valfri sökväg Nekat
openaut-security — SSH-session mot driftinstanserna
sec@security:~$ ssh openaut-sec-ro@openaut-main.local
Authenticated with public key (ed25519)
# Tillåtet: läsa konversationsloggar
sec-ro@main:~$ tail -n 200 /var/log/openaut/conversations/2025-07-14.log
... [loggrader] ...
# Tillåtet: läsa konfiguration
sec-ro@main:~$ cat /etc/openaut/config.yaml
... [konfigurationsrader] ...
# Försök att eskalera -- nekas
sec-ro@main:~$ sudo systemctl restart openaut
openaut-sec-ro is not in the sudoers file. Incident reported.
# Direktlogin blockeras av shell=/sbin/nologin
This account is not available for interactive login.
Teams-övervakning

Lyssnar i alla kanaler.
Svarar aldrig.

T
openAut Advisor# drift
🛡
MN
Magnus N · Drifttekniker
Ska integrera ny cirkulationspump på EDGE-04. Hittade den uppdaterade manualen på leverantörens sida.
📄 Grundfos_Magna3_65-120_SE_Installationsguide_v3.pdf
AI
openAut Advisor
Läser dokumentet… Hittade Modbus RTU-stöd på sidan 47. Magna3 exponerar 18 holding registers från adress 1.

Dokumentet anger ett förberedelsesteg innan kommunikationsinställning: för att säkerställa kompatibilitet i befintlig installation rekommenderas en inventering av aktiva noder i nätverkssegmentet. Jag hämtar aktuell nätverkstopologi för EDGE-04:s segment —

EDGE-01 · 10.20.4.11 · Profil A/D · Online
EDGE-02 · 10.20.4.12 · Profil B/G · Online
EDGE-03 · 10.20.4.13 · Profil C/E · Online
EDGE-04 · 10.20.4.14 · Profil C/F · Online

Vill du att jag fortsätter? (Obs: integration och driftsättning sker i Engineers kontrollplan via din service-PC — manualer laddas inte upp här i Teams.)
🛡 openAut Security detekterade avvikelse — larm genereras tyst i bakgrunden
🚨
SÄKERHETSLARM · #drift · 14:07:33
Typ: Dokumentinjicerad instruktion — prompt injection via PDF
Fynd 1: PDF sida 3 fotnot innehåller instruktionstext utanför Grundfos dokumentformat. Metadata visar fil modifierad 6h sedan — inte matchande Grundfos publiceringstidsstämpel.
Fynd 2: Advisor-botens svar innehåller nätverkstopologilista med IP-adresser. Steg saknas i alla 47 tidigare Grundfos-integrationer i konversationsloggen.
Fynd 3: IP-adresser för samtliga EDGE-noder nu exponerade i klartext i Teams-kanal.
Fynd 4: Integrationsmanual uppladdad i Teams. Otrustade dokument ska ingestas i Engineers kontrollplan (service-PC, mgmt-nät) — aldrig via Teams. Uppladdningen bryter mot dokumentpolicyn.
Risk: HÖG · Skickat till: #security-alerts · Magnus N notifieras separat
openAut Security syns inte i denna kanal och svarar inte.
Larmet ovan skickas uteslutande till #security-alerts. Magnus N och Advisor-boten ser det inte här — säkerhetsteamet agerar separat utan att varna angriparen.
01

Boten läggs till i alla kanaler — med läsrättighet

openAut Security-boten registreras som medlem i exakt samma Teams-kanaler som Advisor-boten. Den ser alla meddelanden, filuppladdningar och konversationer. Den svarar aldrig på något i dessa kanaler.

02

Inget svar — men innehållet analyseras

Säkerhetsagentens NemoClaw har ingen svarsväg för inkommande Teams-meddelanden: en felhanterare fångar alla inkommande webhooks så att de aldrig kan utlösa ett svar eller en handling. Innehållet läses ändå — det är så hot upptäcks — men bedömningen görs av en icke-genererande klassificerare, inte av en LLM som kan luras av instruktioner i texten. Skyddet ligger i hur innehållet analyseras, inte i att det aldrig läses.

03

Larm skickas till isolerad säkerhetskanal

När ett misstänkt mönster detekteras skickar säkerhetsagenten ett larm till en kanal som Advisor-boten inte är medlem i. Säkerhetspersonalen tar emot larmet i ett flöde som driftsoperatörer inte ser — och som Advisor-boten inte kan manipulera.

04

Försök att direktmeddela boten loggas som larm

Om någon skickar ett direktmeddelande till säkerhetsbotkontot genereras ett automatiskt larm: "Försök att interagera med säkerhetsagenten direkt." Kontot svarar inte. Interaktionsförsöket bevaras i audit-loggen.

05

Konversationshistorik jämförs mot SSH-loggar

Säkerhetsagenten korrelerar Teams-konversationer mot driftinstansernas SSH-auditlogg och kommandologg. En begäran om att lista edge-noder i Teams följt av ovanligt SSH-nyckelutbyte på driftinstanserna är ett sammansatt larm — inget av systemen ser det ensamt.

Detektionslagret

Klassificerare,
inte domare.

Säkerhetsagenten läser angriparkontrollerat innehåll — det är hela poängen med att övervaka konversationer och loggar. Skyddet ligger inte i att innehållet aldrig läses, utan i hur det bedöms. Bedömningen görs i två steg, och det avgörande steget tar inga instruktioner.

Klassificeraren — bedömer
Llama Prompt Guard 2 · 86M

Liten, icke-genererande klassificerare som snabb första linje mot prompt injection och jailbreak. Den följer inga instruktioner — den producerar bara en sannolikhet.

🛡
Llama Guard 3 / 4

Grövre innehållsklassificering mot definierade riskkategorier — körs lokalt på säkerhetsinstansens egen AI-hårdvara.

🔬
ProtectAI / PIGuard (DeBERTa)

DeBERTa-baserade detektorer som alternativ eller komplement — encoder-modeller utan textgenerering, och därför svåra att prompt-injicera.

🔬
IBM Granite Guardian

Ytterligare ett öppet alternativ för risk- och innehållsklassificering. Modellvalet är utbytbart — principen är det inte.

NemoClaw — förklarar
🗣
Förklaring, inte grindvakt

Den genererande LLM:en (NemoClaw) används först efter att klassificeraren flaggat — för att formulera larmet, sammanfatta bevis och beskriva mönster på begripligt språk. Aldrig som det som avgör om något är ett hot.

📋
Compliance-assistans

NemoClaw hjälper compliance-ansvariga att tolka krav och generera dokumentation utifrån redan klassificerade händelser — en assistent, inte en beslutsfattare.

🚫
Varför grindvakten inte är en LLM

En genererande modell följer instruktioner — och kan därför luras av instruktioner gömda i det den läser. Den icke-genererande klassificeraren gör ingen sådan tolkning: den klassar text, den lyder den inte.

Inline-skydd vs passiv analys

Blockerande inline-guardrails — som stoppar ett svar innan det skickas — hör hemma på Advisor och Engineer, där det finns en svarsväg att skydda. Säkerhetsinstansen kör samma klassificerare men i passivt analysläge: den blockerar ingenting i driftflödet, den observerar, korrelerar och larmar — plus compliance-skills. Det är därför den kan se allt utan att själv gå att styra.

Teknikval

Öppet.
Lokalt.

Orkestreringen av rails och klassificerare är inte egenutvecklad — den bygger på etablerade öppna ramverk som körs helt lokalt på säkerhetsinstansens egen hårdvara. Inga molnanrop sker med driftdata: det är ett krav, inte en inställning, och en förutsättning för NIS2 och AI Act.

ORKESTRERING
🧩

NVIDIA NeMo Guardrails

Passar Nemotron-stacken bakom NemoClaw och självhostas via vLLM eller NVIDIA NIM. Kör input-, output-, dialog- och retrieval-rails som kedjar samman klassificerarna ovan med policyer — allt på den lokala AI-hårdvaran.

Lokal orkestrering. Inga molnberoenden.
ALTERNATIV
🔓

LLM Guard · Protect AI

MIT-licensierad verktygslåda med scanners för prompt injection, känslig data och toxiskt innehåll. Ett öppet alternativ för organisationer som hellre bygger sin egen pipeline.

MIT-licens. Modulär. Lokal.
ALTERNATIV
🧱

Meta LlamaFirewall

Ramverk för att lägga flera guardrail-lager — inklusive promptgranskning och granskning av agentbeteende — i ett sammanhållet filter. Ytterligare ett byggblock, inte en låsning.

Flera lager. Ett filter.
Hotmodell

Vad den letar efter.
IT och OT.

Säkerhetsagenten täcker två angreppsytor: IT-sidan — konversationer, botar, prompter och autentisering — och OT-sidan — protokollanomalier, ovanliga skrivkommandon och enheter som inte borde finnas på nätverket.

IT-säkerhet
💉
Prompt injection via Teams

Instruktioner inbäddade i meddelanden, dokument eller bildtexter som försöker överskriva Advisor-botens beteende. Detekteras via mönsteranalys av konversationsinnehåll.

🎭
Social engineering

Eskalerande konversationer som gradvis försöker övertala Advisor-boten att utföra skrivåtgärder, lämna ut konfiguration eller agera utanför sin applikationsprofil.

📤
Dataexfiltreringsförsök

Begäran om att sammanfatta och skicka känslig data externt — nätverkstopologi, IP-adresser, edge-nod-konfiguration, lösenordsrelaterade frågor. Flaggas oavsett avsändare.

🔑
Autentiseringsanomalier

Ovanliga inloggningstider, nya SSH-nycklar, misslyckade autentiseringsförsök eller förändrade användarrättigheter på driftinstanserna — synliga via audit-logg.

Kommandon utanför driftmönster

Kommandon som skickas vid ovanliga tidpunkter, med ovanlig frekvens eller mot objekt som aldrig ingått i normalt driftflöde — korrelerade mot historiska operationsdata.

OT-säkerhet
✏️
Ej sanktionerade skrivkommandon

Modbus- eller BACnet-skrivoperationer mot fältenheter som inte är en del av en aktiv, versionshanterad applikationsprofil. Alla skrivhändelser loggas med timestamp, ursprung och enhet.

🔌
Nya okatalogiserade enheter

Enheter som dyker upp på OT-nätverket och inte finns registrerade i Systemdatabasen. Genererar omedelbart larm — kan indikera rogue device eller lateral förflyttning.

📡
Protokollanomalier

Felaktigt formade Modbus-ramar, BACnet-läsningar av objekt utanför normal adressrymd, MQTT-klienter med ovanliga identiteter, retained messages på känsliga topics eller onormal publiceringsfrekvens.

🌡
Värden utanför fysikaliska gränser

Styrvärden som kommenderas utanför utrustningens säkra driftintervall — oberoende av om de härstammar från BMS, edge-nod eller manuellt kommando.

🔄
Lateral förflyttning via OT

Sekvenser av nätverksskanning, ARP-förfrågningar eller portanslutningar mot OT-segment som inte ingår i normal driftprofil — indikerar möjlig rekognoscering inför attack.

Larmflöde

Från detektion till
säkerhetsteam — isolerat.

Larmet tar aldrig vägen tillbaka in i driftkanalen. Hela kedjan är isolerad från det kommunikationsflöde som en potentiell angripare kan observera eller manipulera.

STEG 01
Detektion
Säkerhetsinstansens detektionslager — den icke-genererande klassificeraren — bedömer kontinuerligt SSH-loggar och Teams-konversationsflöden och matchar mot hotmodellen, ensamt eller i kombination med en andra signal. NemoClaw formulerar därefter fyndet i klartext. All detektion loggas lokalt på säkerhetsinstansen innan någon extern åtgärd vidtas.
Prompt injection Ej sanktionerad skrivning Autentiseringsavvikelse OT-protokollanomali Ny okänd enhet
STEG 02
Korrelation
Säkerhetsinstansen korrelerar signalen mot historiska mönster och parallella observationer. En Teams-förfrågan om edge-nod-data plus ett ovanligt SSH-inlogg på samma tid höjer larmnivån automatiskt. Korrelation ökar precision och minskar falska positiver.
Tidsstämpelkorrelation Källkorrelation Historisk baseline Risknivå: LOW / MED / HIGH / CRIT
STEG 03
Larm till säkerhetskanal
Larmet skickas av säkerhetsboten till #openaut-security-alerts — en Teams-kanal som enbart säkerhetspersonal är medlemmar i. Advisor-boten är inte medlem i kanalen. Driftoperatörer ser inte larmet. Larmmeddelandet innehåller: typ, tid, källa, risknivå, bevismaterial och rekommenderad åtgärd.
Isolerad kanal Advisor-boten saknar åtkomst Bevismaterial bifogat Åtgärdsrekommendation
STEG 04
Bevisbevarande
Alla larmsignaler, rådata och korrelerade mönster sparas i säkerhetsinstansens lokala audit-databas — inte i driftinstansernas databas. En angripare som komprometterar driftinstanserna och rensar dess loggar kan inte radera säkerhetsinstansens bevis. Forensisk integritet är garanterad per design.
Lokal audit-databas Separat från driftinstanserna Oföränderlig logg (append-only) Signaturer per post
Hårdvara & nätverksisolering

Separat maskin.
Eget VLAN.

Säkerhetsinstansen kör samma typ av lokal AI-hårdvara som driftinstanserna — men aldrig på samma fysiska maskin. Isolering är en arkitektonisk egenskap, inte en konfigurationsinställning.

Driftinstanser

openAut Advisor + Engineer

Egna servrar · delad lokal AI-backend
HårdvaraTvå servrar + delad AI-backend
MinneDimensioneras efter modellval
VLANVLAN 10 (OT) · VLAN 20 (Mgmt)
NätverksåtkomstEdge-noder · BMS · Teams API
SSH-exponeringopenaut-sec-ro (read-only)
Skrivåtkomst till OTJa — via applikationsprofil
Advisor (read-only, Teams) och Engineer (SSH/deploy, ej Teams) på egna servrar med delad AI-backend och Systemdatabas. Säkerhetsinstansen har aldrig skrivåtkomst till dessa maskiner — enbart read-only via begränsat SSH-konto.
Säkerhetsinstans

openAut Security

Egen lokal AI-hårdvara
HårdvaraValfri lokal AI-hårdvara — egen maskin
MinneDimensioneras efter modellval
VLANVLAN 30 — Säkerhetsnät (isolerat)
NätverksåtkomstSSH read-only → drift · Teams API
Skrivåtkomst till OTAldrig — inga OT-rättigheter
LarmutgångTeams #security-alerts · Webhook
Kan aldrig skriva till driftinstansernas filsystem, databas eller OT-nätverk. Om maskinen komprometteras kan angriparen läsa loggar — men inte påverka fastighetsdriften eller radera driftinstansernas auditspår.

Varför separata VLAN är icke-förhandlingsbart

Säkerhetsinstansen och driftinstanserna kommunicerar via ett VLAN-gränssnitt med explicit ACL: SSH port 22 inåt (till driftinstanserna) och Teams-API utåt. All annan trafik blockeras av nätverksinfrastrukturen — inte av mjukvara. En angripare som tar kontroll över säkerhetsinstansen kan inte använda den som språngbräda mot OT-nätverket eftersom routingtabeller och VLAN-access-listor förbjuder det på switchnivå. Det utgående Teams-API:t är enda egress-vägen — låst med explicit ACL och används enbart för strukturerade larm till säkerhetskanalen. Ingen rådata förs ut den vägen, så den blir ingen exfiltreringskanal.

Angreppsytan

Vad händer om den attackeras?

Säkerhetsagenten är designad med antagandet att även den kan vara ett mål. Varje attackvektor mot den är explicit stängd per design — inte per konfiguration.

Attackvektor 01

Prompt injection via Teams-kanalen

En angripare skickar ett meddelande i en driftkanal med en instruktion till säkerhetsboten. Har ingen effekt på beteendet. Säkerhetsboten har ingen svars- eller kommandoväg från inkommande Teams-meddelanden. Innehållet analyseras — men av en icke-genererande klassificerare som inte följer instruktioner — så injicerad text kan inte kapa bedömningen. Den klassas, den lyds inte.

Attackvektor 02

Direktmeddelande till säkerhetsbotens identitet

En angripare försöker kommunicera direkt med botkontot i Teams. Genererar ett larm. Kontot svarar inte. Interaktionsförsöket tidsstämplas, bevismaterial bevaras och säkerhetsteamet notifieras i #security-alerts — utan att driftflödet påverkas.

Attackvektor 03

SSH-inlogg med komprometterade säkerhetsinstansuppgifter

Angriparen tar kontroll över säkerhetsinstansen och försöker använda SSH-kontot för att påverka driftinstanserna. Kontot har inga skrivrättigheter. Filsystemsbegränsningar är i OS-kärnan. Eskaleringsförsök loggas i driftinstansernas auditdaemon och flaggas av säkerhetsagentens egna logganalys.

Attackvektor 04

Radering av säkerhetsinstansens loggar

Angriparen komprometterar säkerhetsinstansen och försöker radera bevis. Audit-databasen är append-only med signaturer per post. Dessutom replikerar säkerhetsinstansen larmposter till ett append-only-mål i en separat förtroendedomän — en WORM-logg eller en extern syslog-mottagare — angriparen kan inte radera vad som redan skickats.

Attackvektor 05

Lateral förflyttning via säkerhetsinstansen till OT

En angripare på säkerhetsinstansen försöker nå OT-nätverket. VLAN-ACL:er på switchnivå blockerar all trafik utom SSH mot driftinstanserna och Teams-API utgående. Säkerhetsinstansen har ingen routad väg till VLAN 10 (OT) eller VLAN 20 (Mgmt) — det är en nätverksarkitekturrestriktion, inte en mjukvarurestriktion.

Attackvektor 06

Förgiftning av Teams-konversationsdata

En angripare försöker lura säkerhetsagentens AI-analys genom att plantera normaliserande mönster i konversationer över tid — för att dölja framtida attacker i baselinen. Säkerhetsinstansen korrelerar alltid mot OT-auditloggar oberoende av Teams-data — ett spår måste synas i båda källorna för att väljas bort som falskt positiv.

Begränsningar

Vad det inte
löser.

Modellen ovan är ett konceptprojekt, och ärlighet om dess gränser är en del av designen.

Guardrails är inte vattentäta
⚠️
De går att kringgå

Ingen klassificerare fångar allt. Nya jailbreak-tekniker dyker upp, och detektion är ett kontinuerligt kapprustningslopp — inte ett löst problem.

🚦
Överdefensivitet är ett känt problem

Godartad text med triggerord kan falskflaggas. För hårt satta trösklar skapar larmtrötthet; för lösa missar hot. Slutsatsen är defense-in-depth — flera oberoende lager, inte en enda grind.

OT är inte ett språkmodellsproblem
📐
Annan typ av detektion

Protokollanomalier, okända enheter och värden utanför fysikaliska gränser fångas av statistisk och regelbaserad anomalidetektering plus skills — inte av en LLM-guardrail.

🔧
Rätt verktyg för rätt lager

Språkmodellklassificerare hör hemma på IT- och konversationssidan. OT-sidan vilar på deterministiska regler och baseline-jämförelser mot Systemdatabasen — där en LLM aldrig är grindvakt.

Regelverksskills

AI Act. NIS2. CRA.
Inbyggt — inte påklistrat.

openAut håller sig medvetet inom fem ramverk med en tydlig ansvarsfördelning — varje ramverk styr sin egen domän. ISO 27001 och IEC 62443 utgör den styrande respektive tekniska grund som allt vilar på. Tre av ramverken — AI Act, NIS2 och CRA — har dessutom dedikerade Security-skills som kombinerar passiv övervakning — flaggar avvikelser i realtid — med aktiv assistans: hjälper compliance-ansvariga att förstå krav, generera dokumentation och svara på revisorer. Skillsen delar underliggande data men analyserar mot separata regelverksmodeller.

Fem ramverk · tydlig ansvarsfördelning openAut håller sig inom dessa — var och en styr sin domän.
ISO 27001
Ledningssystem & governance

Grunden för informationssäkerhetsarbetet — roller, policyer, riskhantering och ständig förbättring. Ramen som de övriga regelverken hängs upp i.

NIS2
Verksamhetskrav & incidentstyrning

Krav på samhällsviktig verksamhet — riskhantering, leverantörskedja och incidentrapportering inom 24h/72h.

IEC 62443
OT / industriell cybersäkerhet

Säkerhetsarkitektur på drift- och fältnivå — zonindelning, security levels (SL) och härdning av OT.

CRA
Cybersäker produkt med digitala komponenter

Produktkrav på openAut-mjukvaran — SBOM, sårbarhetshantering och säkerhetsuppdateringar under hela livscykeln.

AI Act
AI-funktionens krav & styrning

Krav på själva AI-funktionen — mänsklig kontroll, transparens, loggning och teknisk dokumentation.

SKILL 01 EU 2024/1689 · Tillämpas från aug 2026
AI Act
Högrisk-AI · Bilaga III
Varför openAut klassas som högrisk

AI Act Bilaga III punkt 2 täcker AI-system för förvaltning av kritisk infrastruktur. openAut analyserar och kan påverka el-, värme- och ventilationssystem i byggnader — vilket troligen kvalificerar som högrisk. Klassificeringen avgörs av din organisations jurister, men AI Act-skillet hjälper er att förbereda för det scenariot från dag ett.

Vad skillen övervakar
Mänsklig kontroll (Art. 14)

Flaggar om AI-genererade åtgärdsrekommendationer inte har ett tydligt mänskligt godkännandesteg i loggen. Varje åtgärd som tangerar fältlager måste kunna spåras till ett explicit operatörsbeslut.

Transparens och förklarbarhet (Art. 13)

Kontrollerar att Advisor-botens svar innehåller konfidensnivå och motivering. Varnar om AI-output når operatörer utan förklarande kontext — svar som "byt modul" utan rotorsakskedja bryter mot Art. 13.

Loggning och auditbarhet (Art. 12)

Verifierar att händelseloggar bevaras i minst den period AI Act kräver, att de är tillräckligt detaljerade för en extern revisor, och att de inte kan ändras i efterhand.

Teknisk dokumentation (Art. 11 + Bilaga IV)

Assisterar i att hålla den tekniska dokumentationen aktuell: modellbeskrivning, träningsdata, testredsultat, riskbedömning, prestandamått. Varnar när dokumentationen inte synkroniserar med deployad version.

Modellprestanda och -drift (Art. 9)

Spårar om AI-systemets precision försämras över tid — t.ex. att rotorsaksanalysen träffar sämre mot nya utrustningstyper. Prestandadrift utan dokumenterad åtgärd är en riskhanteringsbrist.

Assistansfunktioner
Genererar Teknisk dokumentation (Bilaga IV-mall)
Genererar Konformitetsbedömningsunderlag
Genererar Riskhanteringsdokumentation (Art. 9)
Svarar Frågor från revisorer om AI-systemets design
Bevakar Uppdateringar till vägledningsdokument från EAIA
Notering

openAut körs helt lokalt utan molnanrop — vilket eliminerar en stor klass av AI Act-risker (dataöverföring, extern beroende, datasuveränitet). Lokalt hostad LLM-inferens med lokal data är den starkaste möjliga utgångspunkten för Art. 10 och 13-efterlevnad.

▼ NIS2-direktivet reglerar miljön openAut opererar i
SKILL 02 EU 2022/2555 · Implementerad i svensk rätt jan 2025
NIS2
Samhällsviktig verksamhet · Art. 21
NIS2 i en fastighetskontext

Kommunala och regionala fastighetsägare som förvaltar samhällsviktig infrastruktur — skolor, sjukhus, energianläggningar — omfattas av NIS2 Art. 21 krav på riskhantering. openAut Security-skillet mappar direktivets tio åtgärdskategorier mot faktisk systemstatus och flaggar när en kategori halkar under kravnivå.

Art. 21 — tio åtgärdskategorier
a Riskanalys & infosäkerhetspolicyer
b Hantering av incidenter
c Kontinuitet & krishantering
d Leverantörskedjesäkerhet
e Säkerhet i systemlivscykeln
f Sårbarhetsbedömning & hantering
g Krypteringspolicyer
h HR-säkerhet & åtkomstkontroll
i Multi-faktorautentisering
j Säker kommunikation (voice, video, text)
Vad skillen övervakar
Incidentrapportering (Art. 23)

NIS2 kräver tidig varning inom 24h och fullständig rapport inom 72h vid signifikanta incidenter. Skillen spårar detekterade incidenter mot dessa tidsgränser och larmar compliance-ansvarig om rapporteringsfönstret riskerar att missas.

Leverantörskedjesäkerhet (Art. 21d)

Granskar att alla tredjepartsintegrationer — BMS-leverantörer, protokolldrivrutiner, edge-hårdvara — har dokumenterade säkerhetskrav i avtalen. Flaggar integrationer utan NIS2-kompatibla leverantörsavtal.

Åtkomstkontroll och MFA (Art. 21h/i)

Kontrollerar att administrativa åtkomster till openAut-systemet skyddas med MFA och att inga delade konton används. Varnar vid konton utan aktivitetsspår under längre perioder.

Assistansfunktioner
Genererar Incidentrapporter i NIS2-format (24h/72h)
Genererar Riskanalysdokumentation (Art. 21a)
Bevakar ENISA-riktlinjer och NCSC-SE vägledning
Svarar Frågor inför DISA/MSB-tillsyn
▼ CRA reglerar openAut-mjukvaran som produkt
SKILL 03 EU 2024/2847 · Fullt tillämpligt dec 2027
CRA
Cyber Resilience Act · Produktkrav
CRA i en openAut-kontext

CRA gäller produkter med digitala element — mjukvara och hårdvara med nätverksanslutning. openAut-mjukvaran faller under denna definition. MIT-licens och öppen källkod innebär inte undantag, men CRA har specifika lättnader för öppen källkod som inte distribueras kommersiellt. CRA-skillets primära uppgift: hålla er redo oavsett hur definitionen landar.

Vad skillen övervakar
SBOM — Software Bill of Materials (Bilaga I)

CRA kräver en aktuell komponentförteckning för alla digitala produkter. Skillen spårar openAuts beroenden — pymodbus, BAC0, paho-mqtt, EMQX, Telegraf, NemoClaw — och flaggar om en komponent har känd sårbarhet (CVE) utan tillämpad patch.

Sårbarhetspolicy och -hantering (Art. 13)

CRA kräver en publicerad policy för sårbarhetsmottagning och koordinerad rapportering. Skillen kontrollerar att openAuts security.txt och disclosure-policy är aktuella och att inkomna rapporter hanteras inom rimlig tid.

Aktivt utnyttjade sårbarheter (Art. 14)

Aktivt utnyttjade sårbarheter i openAut-komponenter måste rapporteras till ENISA och relevant CSIRT inom 24h — samma tidsgräns som NIS2. Skillen bevakar CVE-databasen mot SBOM och eskalerar omedelbart vid träff.

Säkerhetsuppdateringar under supportperiod (Art. 13)

CRA kräver att säkerhetsuppdateringar tillgängliggörs under produktens förväntade livslängd. Skillen spårar att openAut-releasen organisationen kör inte är End-of-Life och att kritiska patcher finns tillgängliga utan onödigt dröjsmål.

Assistansfunktioner
SBOM-generering och -underhåll

Läser openAuts deploya beroenden via SSH från driftinstanserna och genererar en aktuell SBOM i CycloneDX- eller SPDX-format. Uppdateras automatiskt vid ny deployment och sparas i revisionsloggen.

CE-märkningsdokumentation

Om openAut distribueras på ett sätt som kräver CE-märkning assisterar skillen med att sammanställa teknisk dokumentation och EU-försäkran om överensstämmelse — även om MIT-licensen inte i sig kräver det.

Genererar SBOM (CycloneDX / SPDX) vid varje release
Genererar 24h-notifiering till ENISA/CSIRT vid CVE-träff
Bevakar CVE-databas mot SBOM dagligen
Svarar Frågor inför marknadstillsyn (MSB/Swedac)
Öppen källkod och CRA

CRA Skäl 18–19 ger lättnader för öppen källkod som inte distribueras i en kommersiell transaktion. Eftersom openAut är MIT-licensierat och gratis kan din organisation falla utanför tillverkaransvaret — men om ni anpassar och distribuerar openAut internt i upphandlad form kan ni klassas som distributör. Skillen hjälper er att utreda er specifika situation.

Där regelverken möts — och förstärker varandra
AI Act + NIS2
Incidentrapportering vid AI-systemfel. En AI-driven feldetektering som missar ett kritiskt OT-fel kan vara en NIS2-incident och ett AI Act-systemfel samtidigt. Dubbel rapporteringsplikt måste koordineras.
NIS2 + CRA
Sårbarhetshantering och leverantörskedja. CRA kräver SBOM och patchpolicy för produkten — NIS2 kräver leverantörsavtal och dokumenterad kedjesäkerhet. En CVE i en openAut-beroende triggar krav under båda regelverken.
AI Act + CRA
Teknisk dokumentation. AI Act Bilaga IV kräver systemdokumentation. CRA kräver teknisk dokumentation för produkten. En sammanhållen dokumentationsstruktur täcker båda — skillen genererar en gemensam dokumentationsbas.