Auktor revisor Sten Widén och Björn Lindberg reder i denna artikel ut några av begreppen kring de allt vanligare client/server baserade informationssystemen och redovisar också hur den nya tekniken kan påverka revisorernas arbete.

Client/server-baserade informationssystem är något som allt fler företag börjat använda. Tekniken ses bl.a. som en möjlighet att reducera de höga ADB-kostnader som traditionella, centrala datorfunktioner ger. Men det är inte bara ADB-tekniken som påverkas utan i hög grad även företagens organisation och ansvarsfördelning. Tillämpningar börjar växa fram inom bl.a. områden som ekonomisystem, lönesystem, beslutstödssystem och informationssökningssystem.

Tekniken

Client/server – några grundprinciper

Client/server kan översiktligt ses som en modell för att dela upp programbearbetning på olika samverkande datorer, t.ex. persondatorer, nätservrar och centraldatorer. Detta innebär t.ex. att delar av en applikation kan bearbetas lokalt i en persondator medan andra delar bearbetas i en större dator. Client/server-modellen baseras på principen att ett program (clientprogrammet) begär tjänster och ett annat (serverprogrammet) levererar tjänsterna.

Det är alltid clientprogrammet som tar initiativet. Serverprogrammen ”lyssnar” för att kunna ta emot beställningar från många clientprogram. Det innehåller funktioner för att tillgodose alla beställningar och för att sända resultaten till rätt mottagare.

De två programmens inbördes relation är alltid entydig. Serverprogram kan dock uppträda som client mot andra serverprogram. På så sätt kan client/server-relationer kedjas samman. Strukturen kan bli mycket komplicerad.

Client- och serverprogram finns oftast i olika datorer, men detta är inte ett krav ur modellens synpunkt. Client/server-tillämpningar består av och utnyttjar delkomponenter av flera olika slag. Komponenterna kan delas upp i en fysisk struktur, en logisk struktur samt en applikationsstruktur.

Teknisk plattform

Den fysiska strukturen omfattar den hårdvara som används och består bl.a. av persondatorer, nätkablar och nätkomponenter, externa kommunikationstjänster samt serverdatorer som bearbetar och lagrar data. Serverdatorer kan vara alla typer av datorer, från persondatorer till superdatorer.

Den logiska strukturen består av den programvara, t.ex. operativsystem, kommunikationsprogram, databashanterare m.m., som krävs för att grundfunktionerna skall fungera och bildar en grund för applikationsprogrammen.

De fysiska och logiska strukturerna kallas ofta för client/serversystemets tekniska plattform.

Hög komplexitet

Applikationsstrukturen, dvs. de program som ger det önskade verksamhetsstödet, t.ex. ett ekonomisystem, kan ses som en kombination av en presentationsfunktion, en applikationslogik och en informationsförvaltande del. En fjärde komponent, datakatalogen, innehåller uppgifter för att samordna hur data används.

Satsning på client/server-tekniken, först som komplement och senare som ersättning till traditionell terminal/centraldator-teknik, innebär ökad komplexitet. Detta gäller naturligtvis främst de tekniska lösningarna, men påverkar i hög grad även organisation, ansvarsfördelning och administration.

Kostnadsbesparing och flexibilitet

Den starka framväxten av client/server-teknik bottnar till stor del i jakten på kostnader. En satsning på client/server ses som en möjlighet att reducera de höga ADB-kostnader som traditionella, centrala datafunktioner ger.

Client/server kan ses som den modell som skall göra lokal självständighet möjlig vad gäller informationsbehandling, samtidigt som möjligheten att utbyta information med övrig verksamhet bibehålls. De lokala funktionerna kan utformas utifrån lokala behov utan att hänsyn behöver tas till övrig verksamhet.

Client/server-tillämpningar medger att flera system samutnyttjar existerande informationsresurser på nya sätt. Nya informationsmängder kan tillföras och utnyttjas i takt med att användarnas lokala behov förändras. Det kan även bli möjligt att utnyttja redan inköpta lokala datorers lagringsmöjlighet på ett effektivt sätt, istället för att köpa nya, dyra centrala lagringsmedia. Tekniken är alltså flexibel och anpassningsbar till förändringar i organisation och arbetssätt.

Client/server-tillämpningar gör det möjligt att fördela bearbetningar mellan persondatorer/arbetsstationer och serverdatorer, så att datamängder inte i onödan överförs eller dubbellagras. Man behöver t.ex. inte överföra en hel databas från en filserver till en arbetsstation, när endast vissa uppgifter ur databasen efterfrågas.

Möjligheten att förse applikationsprogram med lättanvända och effektivare s.k. grafiska användargränssnitt, t.ex. Windows, är likaså en stark drivkraft. Client/server-tillämpningar gör det möjligt att dynamiskt tilldela bearbetningsresurser (datorkraft). Detta innebär att en bearbetning kan ske i den dator som för tillfället har ledig kapacitet. Eftersom persondatorernas datorkraft är relativt billig, är detta en lockande möjlighet.

LEGO-princip och data-brokers

Den standardisering av gränsytor som krävs för att möjliggöra ett brett utnyttjande av client/server kallas ibland LEGO-principen. Den innebär att standardprogram skall kunna kopplas samman på samma sätt som legoklossar, dvs. med standardiserade gränsytor och med en känd, enhetlig kvalitet. Förhoppningen är att man i stor utsträckning skall kunna köpa standardprogram från olika leverantörer och till låg kostnad.

En flexibel och dynamisk användning av informations- och bearbetningsresurser blir inte möjlig om det inte finns funktioner för att registrera och förmedla tillgången på resurser till de som behöver dem. Sådana funktioner håller på att utvecklas och kallas mäklare (brokers). Även dessa behöver följa givna standarder, ett arbete som ännu är i sin linda.

Lokala investeringar i användarutbildning kan utnyttjas och användargränsytor bibehållas trots att andra, centrala system förändras

Nya risker och gamla

Client/server-tekniken medför många potentiella säkerhetsrisker. Flertalet riskmoment är inte nya, men på grund av ökad komplexitet genom samverkan mellan hård- och programvarukomponenter, organisationsenheter etc. uppstår nya situationer, som måste beaktas i revisorns riskanalys. Därmed påverkas revisionsarbetets inriktning.

Oklar ansvarsfördelning

Client/server-tillämpningar utnyttjar ofta flera serverdatorer, t.ex. en central stordator med information som insamlas av äldre ADB-applikationer, samt regionala och/eller lokala fil- och databas-servrar. Dessutom tillkommer ett varierande antal persondatorer.

Det finns ett flertal ansvarsområden eller domäner, bl.a. driftansvar för inblandade datorer med tillhörande operativsystem (se figur 3, sid. 23, Balans nr 10/94) men även nätansvar, databasansvar, PC-ansvar, ansvar för fysiskt skydd m.m. För varje applikation skall det finnas ett applikationsansvar och lagrade informationsmängder skall täckas av ett informationsansvar.

Inte heller i de fall då ansvarsområden definierats är det alltid självklart var gränserna går. Dessutom är personer som tillhör olika delar av organisationen involverade och troligen även extern personal, t.ex. konsulter eller anställda i outsourcingföretag. Revisorn bör då bedöma om organisationen är lämpligt utformad.

Bristande helhetssyn och samordning

För samtliga ansvarsområden skall en säkerhetsansvarig finnas. Problemet är att det varken är naturligt eller rimligt för någon av dessa ansvariga att ha en helhetssyn över datorstödet och dess säkerhet. Möjligheterna är samtidigt begränsade för t.ex. en ADB-säkerhetschef att besitta kompetens inom alla berörda teknikområden. Målet skall vara att skyddsnivån är tillräcklig, oavsett var i systemets fysiska eller logiska komponenter en informationsmängd hanteras.

Uppdelning av företag i mindre, ekonomiskt fristående enheter kan leda till att helhetssyn och övergripande säkerhetsmål kommer i bakgrunden. Resultatet blir då lätt att olika organisationsenheter väljer olika, sinsemellan inkompatibla lösningar. Detta kan leda till höga kostnader när ett samutnyttjande fordras och att kontrollproblem uppstår när information skall sammanföras, t.ex. inom en koncern. Varje organisationsenhet får vidare en snävare ekonomisk ram med påföljd att satsningar för att lösa övergripande säkerhetsproblem inte prioriteras.

En satsning på client/server-teknik kräver därför ett klart framtidsperspektiv och en samordning av strukturvalet inom organisationen som helhet.

Systemutveckling med brister

Användning av client/server-teknik innebär bruk av nya typer av kraftfulla utvecklingshjälpmedel. De hjälper utvecklaren att återanvända befintlig programkod, i vissa fall upp till 80 %, och att med en hög grad av automatik skapa ny programkod. Populärt uttryckt kallas detta ”klipp och klistra”-programmering.

Ett problem som dyker upp är att säkerheten blir beroende av på vilket sätt koden genereras, vilket utvecklaren sällan har kunskap om och inte heller har möjlighet att påverka.

Steget är inte heller långt till att användare själva utför programmering, bland annat genom att utnyttja kraftfulla funktioner i kalkylprogram, t.ex. Excel, Lotus 123 m. fl.

I vilket skede blir en egenutvecklad kalkylmodell ett produktionsprogram? Hur tillgodoses säkerheten i dessa fall? Tidigare ”standardrapporter” ersätts av rapporter som utformas av användaren. Hur skall revisorn då kunna förlita sig på den information som erhålls?

Programuppdatering

Ett område som kräver nya grepp är hur, av vem och när uppdateringar av program skall göras. I en utbyggd client/server-miljö måste många program förändras, dels i den logiska strukturen, dvs. operativsystem, kommunikationsprogram, databashanterare m.m., dels program för användarstöd, dvs. ordbehandlare, kalkylprogram och olika applikationsmoduler. Utmaningen ligger i att flera av dessa finns i en mängd persondatorer.

En grundläggande fråga är om uppdatering kan ske med kontroll över resulterande funktioner, kvalitet och säkerhet. Hur testas till exempel funktioner i en miljö som ofta är mycket inhomogen? Vilka lägger in förändringarna – applikationsansvariga, nätansvariga, persondatoransvariga eller användaren själv? I vilken omfattning får användaren själv anskaffa och lägga in program?

Tekniken innebär att revisorns bedömning av systemförvaltningen blir komplex.

Behörighetskontroll och åtkomstskydd

Med behörighetskontroll avses funktioner för att verifiera användarens identitet för datorsystemet, att kunna styra användarens möjligheter att utnyttja systemets resurser, t.ex. dokumentfiler, program, skrivare m.m., baserat på olika regler, att administrera dessa regler samt att följa upp användares och administratörers aktiviteter.

En tydlig skillnad mellan en traditionell datormiljö och client/server-miljö är att den senare bygger på samverkan mellan ett flertal datorer. Följden blir att ett flertal behörighetskontrollfunktioner utnyttjas.

Behörighetskontrollen tillgodoses med hjälp av olika funktioner i olika datorer. Några standarder finns ännu inte. Flertalet persondatorer saknar helt denna typ av skydd, om inte speciella åtgärder vidtagits. Det är dessutom vanligt att applikationer utrustas med egna funktioner för behörighetskontroll.

Vanliga brister är:

* Opålitlig identifiering av användare. Användaren identifierar sig normalt med hjälp av lösenord, dvs. med hjälp av en överenskommen hemlig kod. Koden antas vara okänd för andra. Detta antagande är i praktiken ofta inte korrekt på grund av tekniska brister eller bristande hantering.

* Bristande samordning av behörighetskontroll. Det finns stora risker för att åtkomstskyddets nivå varierar när informationsmängder flyttas mellan olika datorer eller applikationer. Detta beror på att behörighetskontrollerna inte har några samordningsfunktioner. En oberoende uppsättning regler finns inom varje behörighetskontrollfunktion vilket innebär att skydden kan vara helt olika. Till bilden hör även att administratörers möjligheter att analysera vilka regler som faktiskt gäller olika system är begränsade.

* Persondatorer är speciellt osäkra. Persondatorer är normalt behörighetsmässigt helt oskyddade. Detta medför att program kan laddas in utan kontroller, att data som lagras på datorns skivminne är åtkomliga för alla som har fysisk åtkomst till datorn, samt att befintlig programkod kan bytas ut eller modifieras. Det är samtidigt i stort sett omöjligt att i efterhand kontrollera om detta har inträffat.

Följden blir att kontrollfunktioner av typ lösenordshantering, styrning av åtkomst m. m. som införs i applikationens clientprogram, dvs. program som används i persondatorer, inte med säkerhet kan anses vara pålitliga.

Möjligheten att enkelt lägga in främmande programkod medför risker för t.ex. program som kopierar av användarens lösenord och sparar undan detta, så att det sedan kan användas vid intrångsförsök i serverdatorerna.

Revisorns bedömning av behörighetskontrollerna försvåras på samma gång som riskerna ökar, i och med att användare kommer närmare applikationer som t.ex. förlitar sig på ”elektronisk” attest.

Uppföljning och spårbarhet

Möjligheterna är mycket begränsade för den som ansvarar för behörighetstilldelning och säkerhet att kunna veta vilka åtkomstregler som faktiskt är i funktion, om intrångsförsök skett i de olika datorerna etc. Loggning, dvs. registrering av olika händelser, kan visserligen ske i varje serverdator respektive i varje applikation, men möjligheterna att samordna och analysera dessa loggar är oftast små.

Identifiering sker ofta länkvis, t.ex. mellan användaren och den närmaste serverdatorn. När uppgifter behöver hämtas via nästa länk i kedjan, används en annan identitet som kan vara kodad i programmet, (se figur 4 sid. 25 i Balans nr 10/94). Det innebär att behörighetskontroller som finns senare i kedjan inte kan konstatera vilken den egentlige användaren är.

Dessa begränsningar av uppföljningsmöjligheterna påverkar revisionens möjlighet att kontrollera aktiviteter i systemen.

Revisorn och client/server

Datormiljön måste bedömas

Revisionsprocessen skall leda fram till uttalande från revisorn om dels årsredovisningens information, dels styrelsens och ledningens förvaltning. En organisations informationsflöde hanteras huvudsakligen i datorbaserade informationssystem. För att revisorn skall kunna uttala sig i revisionsberättelsen måste hon/han bedöma den aktuella datormiljön. Detta innebär att en övergång till client/server-lösningar måste bedömas av revisorn.

* Vilka risker utsätts verksamhetens informationshantering för och hur påverkar detta den interna kontrollen och organisationens planering?

* Vilka kan konsekvenserna bli av bristande skydd av tillgänglighet, kvalitet eller sekretess? Kan bristerna medföra betydande kostnader för bolaget, t.ex. i form av informationsförlust, beslut baserade på felaktig information eller att sekretessbelagd information sprids till obehöriga?

* Vad görs för att hantera dessa risker? Hur bedömer revisorn att lämpliga åtgärder vidtas?

En genomgång av potentiella risker kräver med nödvändighet en relativt stor teknisk kompetens. En analys av verksamhetens styrning av IT-frågorna, t.ex. inom ramen för förvaltningsrevisionen, ger dock ofta en tydlig indikation av risknivå och skyddsbehov.

Om client/server-lösningar införs för ekonomisystem, vilket sker i ökande omfattning, blir en bedömning av client/server-lösningen även en väsentlig del av bedömningen av redovisningens kvalitet och tillförlitlighet.

Checklista

En bedömning av följande punkter bör ingå i en genomgång:

* IT-strategi. Har verksamheten en fastställd IT-strategi som anger utvecklingens inriktning? Finns en funktion med ansvar att bevaka att strategin följs?

* Riskanalys. Ingår riskanalyser som en del i verksamhetens IT-utvecklingsprocess? Vem gör bedömningar och vilka är resultaten? Ingår bedömningar av tillgänglighet, informationskvalitet och sekretess?

* Lokal självständighet. Har systemutvecklingsprocessen decentraliserats i samband med att client/server införs? Finns det dokumenterade ramar för den lokala självständigheten? Innehåller ramarna även säkerhetsaspekter?

* Komplexitet. Det finns ofta ett klart samband mellan faktisk skyddsnivå och verksamhetens förmåga att minimera komplexiteten i de fysiska och logiska strukturerna. Vilken är situationen i den granskade verksamheten? Finns någon samordnande funktion som kan styra detta?

* Kompetens. Ett införande av client/server-lösningar kräver ny kompetens på många områden. Hur hanteras detta? Nyrekrytering? Vidareutbildas befintlig personal? Ökat beroende av nyckelpersonal och konsulter?

* Skyddsinsatser. Har verksamheten en funktion för samordning av skyddsinsatserna inom den fysiska och logiska strukturen samt inom applikationsstrukturen? Om så inte är fallet, är risken stor att skyddsfunktionerna inte blir effektiva.

Slutsatser

Client/server-tillämpningar befinner sig ännu endast i sin linda. IT-verksamheten förs snabbt framåt på det tekniska planet, samtidigt som verktyg och funktioner för styrning och kontroll inte utvecklas i motsvarande takt. Stora initiativ tas dock både nationellt och internationellt för att utveckla skyddsfunktioner och för att etablera standarder inom området samtidigt som nya produkter börjar se dagens ljus.

Auktor revisor Sten Widén är verksam vid Öhrlings Reveko i Stockholm. Björn Lindberg arbetar på Ericsson Radio.