Software kung fu

I november hadde vi en artikkel på forskning.no om “Datatjenester med innebygd selvforsvar”. I dette oppfølgerinnlegget forklarer vi litt mer hva som menes med selvforsvar i denne sammenhengen.

En kjørende datatjeneste vil oppleve å være under angrep fra tid til annen, men det kan være veldig uheldig å starte motangrep rettet mot denne angriperen av for eksempel følgende grunner:

  • Angrepet kan være en falsk positiv, det vil si legitim bruk som av en eller annen grunn tolkes som et angrep.
  • Et motangrep kan ses på som en utfordring, dette kan fort eskalere til full krig og mye nedetid.
  • Det første angrepet kan være en test for å se hvordan du reagerer før det virkelige angrepet slippes løs.

For de systemene vi jobber med handler det først og fremst å være forberedt og tilpasningsdykig.  I praksis prøver vi å forutsi de neste trekkene til angriperen, for eksempel ved å analysere tidligere eller pågående angrep på tilsvarende systemer andre steder. Dette gjør at vi kan ha et sett med mottrekk klart i påvente av kritiske situasjoner. I den opprinnelige artikkelen på forskning.no brukte vi sammenligningen med en bil i fart som kan skifte ødelagte deler uten å stoppe opp. Dette kan fort bli litt abstrakt, det vi gjør i praksis er å lage en ny type systembeskrivelse for programvare som inneholder informasjon om:

  • Hvordan systemet skal oppføre seg dersom det merker avvikende bruk.
  • Hva overvåkningsverktøy skal se etter.
  • Hvilke deler (service components) som kan byttes ut og hva som kreves av nye.
  • Alternative (sikrere) konfigurasjoner av systemet.

Vi har laget en utvidelse av BPMN (Business Process Modeling Notation) for dette formålet. BPMN har den styrken at man kan lage en lettforståelig grafisk spesifikasjon for hvordan en datatjeneste opererer og interagerer med andre, for så å kunne bruke denne spesifikasjonen i kjøretid på en såkalt “runtime engine”. Dermed er ikke systemet “hard coded” på en spesiell måte, men tillater at man har ulike konfigurasjoner som skal klare å oppfylle de samme kravene. Vårt fokus er at systemet hele tiden skal opprettholde samme sikkerhetsnivå, men man kan også justere andre parametre som sier at for eksempel pris og ytelse skal komme i første rekke. Mer om forskning og resultater innen dette området er å finne på hjemmesiden til prosjektet Aniketos.