Sikkerhet i BPMN-diagrammer

Overordnet BPMN-prosess for sammensatt web-tjeneste Receive order. Se neste figur for hele delprosessen Run composite service.

Mange virksomheter benytter prosessmodeller for å dokumentere, og gjerne optimalisere, interne prosesser. I tillegg til grafiske modeller, kan prosessmodellspråket BPMN (Business Process Model and Language) også automatisk gjøre modellene til kjørbare programmer/tjenester. I slike tilfeller angir man i diagrammet også hvilke web-tjenester som har ansvar for de ulike automatiserte oppgavene i prosessen. Gjennom forskning på datatjenester med innebygd selvforsvar har vi tatt BPMN 2.0 i bruk for å la utvikleren definere hvordan trusler og angrep mot de ulike web-tjenestene man benytter i sammensatte tjenester skal kunne håndteres automatisk og sikkert mens tjenesten fortsatt er i bruk.

I en artikkel som først ble presentert på en workshop i 2012 [1], og som nå kommer i utvidet versjon i International Journal of Secure Software Engineering, presenterer vi ulike teknikker for å representere trusler, angrep og andre ytre endringer kan inkluderes i prosessmodellen for å sikre den sammensatte tjenesten.

For å unngå proprietære utvidelser til et allerede fullspekket språk, foreslår vi å bruke de standardiserte elementene Error event og Escalation events (som er eksekverbare), samt Annotations for ytterlige tekstlige representasjoner.

Til høyre kan du se et eksempel på hvordan dette kan se ut i praksis, for en tenkt delprosess Process order. Her har vi definert ulike situasjoner som kan avbryte pågående oppgaver/tjenestekall. I noen tilfeller bare “kaster” vi en error opp til en ovenforliggende prosess (se figur helt øverst), mens i andre tilfeller kan vi kompensere for situasjonen ved å peke videre til andre oppgaver som utfører nettopp slik kompensasjon.

Det vil være individuelt for ulike systemer hva overvåkningsverktøy skal se etter, hvilke betingelser som må oppfylles for å konkludere med avvikende bruk, hvordan systemet skal oppføre seg ved avvikende bruk, hvilke tjenestekomponenter som eventuelt kan byttes ut, og hvilke erstatninger som i så fall er aktuelle. Derfor arbeider vi nå videre med hvordan utvikleren kan definere slike parametere i BPMN-diagrammet slik at de kan håndteres automatisk ved kjøring av den sammensatte tjenesten.

Vil du vite mer, kan du besøke nettsidene til Aniketos, eller ta kontakt med oss. Bruk gjerne kommentarfeltet dersom du allerede bruker BPMN til sammensatte tjenester i virksomheten din, og/eller vil dele erfaringer fra modelldrevet utvikling.

[1] Meland, Per Hakon, and Erlend Andreas Gjaere. “Representing Threats in BPMN 2.0.” In Availability, Reliability and Security (ARES), 2012 Seventh International Conference on, pp. 542-550. IEEE, 2012.