Den gode sikkerhed i applikationer

It-sikkerhed handler om at beskytte aktiver, herunder information, der er vigtig for organisationen. I DFDG og de omkringliggende systemer handler det i høj grad om at kontrollere adgangen til personhenførbare data, så uvedkommende ikke får adgang til data eller mulighed for at ændre eller tilintetgøre data.

Generelt følges offentlige anbefalinger for it-sikkerhed, der omhandler sikkerhed i forhold til eksterne parter. Sikkerhed bliver et vigtigere og vigtigere element i takt med, at systemerne åbnes op til fx borgerrettede selvbetjeningsløsninger. Til systemer, der indeholder personhenførbare data, stilles der højere krav til sikkerhed.

Se også: Krav til sikkerhed

Test- og udviklingsmiljøsikkerhed

Data i testmiljøerne er, for at sikre så realistiske testdata som muligt, baseret på produktionsdata, hvor data udover CPR-nummer er renset for personhenførbare data vha. scrambling.

Scrambling gennemføres ved at forvanske:

  1. Navn
  2. Adresse
  3. Kontaktoplysninger
  4. Generelt tekstfelter med personfølsomme data
  5. Adgangskoder til Jobnet

Da testmiljøerne fortsat anvender CPR-nummer, og data ikke er fuldt syntetisk genereret, skal adgangen til testmiljøerne behandles fortroligt. Det skal sikres, at al adgang til data og miljøer logges, og at adgangen kontrolleres ved et for udviklerne personligt login eller certifikat.

Se desuden /wiki/spaces/CITY/pages/203128898

Produktionsmiljøsikkerhed

Sikkerhed for informations- og kommunikationssystemers pålidelighed har tre aspekter:

  • Sikkerhed for fortrolighed: Kun de, som har ret til informationen, skal have adgang til den
  • Sikkerhed for integritet: At beskytte informationers og behandlingsmetoders korrekthed og fuldstændighed
  • Sikkerhed for tilgængelighed: Det skal sikres, at bemyndigede brugere har adgang til informationen og dertil knyttede aktiver, når de har behov for det

Generelt følges anbefalingerne fra ”It-Sikkershedsarkitektur” arbejdet, ref. [6], der omhandler sikkerhed i forhold til eksterne parter. Sikkerhed bliver et vigtigere og vigtigere element i takt med, at systemerne åbnes op til fx borgerrettede selvbetjeningsløsninger. Til systemer, der indeholder personfølsomme data, stilles der højere krav til sikkerhed.

Web-service sikkerhed

Web-services sikres via OCES funktionscertifikater, og data transmitteres over en krypteret forbindelse.

I alle kald angives det, hvem der kalder sammen med information om, hvilken brugere eller system der har initieret kaldet. Der er udviklet en fast sikkerhedsheader, som anvendes af alle web-services.

En vigtig del af sikkerheden her er logning af adgangsforsøg og kald.

Applikationssikkerhed

Applikationssikkerheden omfatter:

  • Adgangskontrol i forhold til applikation og administration
  • Sessionshåndtering og kryptering
  • Datavalidering og applikationslogik

Manglende sikkerhed om autentifikation, autorisation og sessionshåndtering i applikationer kan føre til uautoriseret adgang til applikationer og administrativ funktionalitet. Manglende datavalidering kan føre til SQL injection og Cross Site Scripting (XSS) angreb, der typisk benyttes i relation til målrettede hacker- og virusangreb. Applikationslaget er det mest komplekse lag i infrastrukturen og udgør den største risiko for tab af fortrolighed, integritet og tilgængelighed af data.

Følgende er typiske observationer af konstruktioner, der skal undgås:

  • Hardcoded kodeord i kildekoden
    • Kildekode eller konfigurationsfiler bør ikke indeholde ukrypterede passwords
  • Forældet kode, som ikke er fjernet fra produktion
    • Kode der ikke længere anvendes skal slettes
  • Testkode, som også kører i produktion
    • Testkode bør ikke kompileres med i produktionsbuild
  • Sessionshåndtering – manglende beskyttelse af cookies
    • Alle sessionscookies beskyttes ved konsekvent at benytte cookie-flagene ’secure’ og ’httpOnly’.
  • Reflected Cross-Site scripting
  • Sessionshåndtering – Manglende validering af session cookies
  • Persistent Cross-Site Scripting (XSS)
    • Der skal etableres inputvalidering og rensning på alt data, der modtages fra browseren, inden det præsenteres for brugeren, benyttes i applikationen eller gemmes i relaterede databaser.
  • Platformen (operativsystem) er konfigureret sikkert og vedligeholdes, således at platformen forbliver sikker og stabil. Sikkerheden om platformen omfatter:
    • Konfiguration af services
    • Kryptering relateret til administration og dataoverførsel
    • Adgangskontrol til administration
    • Sikkerhedsopdatering af operativsystemer

Adgangen til applikationer skal sikres med NemId (via NemLogin) eller ADFS, hvis der er tale om kommunale brugere eller a-kasser.

Login via SSO.

Brugergrænseflader sikres via medarbejdercertifikater eller via claims based sikkerhed, fx ADFS.

Databasesikkerhed

Databasesikkerhed omfatter:

  • Konfiguration af services
  • Kryptering af databasetrafik
  • Anvendelse af brugerprofiler og adgang til databaser
  • Adgangskontrol til administration
  • Sikkerhedsopdatering af databasesoftware

Manglende konfigurationsmæssig sikring af services og kommunikation, der eksponeres på en databaseserver, medfører en risiko for, at det er muligt at tilgå data uautoriseret direkte via tilgang til databaseserveren eller at data kan opsnappes fra netværket. Brugerrettigheder til databasen bør være begrænset mest muligt med udgangspunkt i et arbejdsbetinget behov for adgange til databasen. Sikkerheden bør generelt implementeres nærmest data, og derfor er sikkerheden i databaser central for det samlede sikkerhedsniveau.

Følgende er typiske observationer af konstruktioner, der skal undgås:


  • Bruger med flere rettigheder end nødvendigt
    • Brugeren ’sa’ må ikke anvendes af applikationer
  • Svage kodeord
    • Kodeord bør være minimum 8 tegn og indeholde både store tegn, små tegn, specialtegn og tal.
    • Kodeord bør regelmæssigt ændres.

Infrastruktur sikkerhed

Manglende konfiguration og vedligeholdelse af platformen kan føre til manglende sikkerhed og driftsstabilitet for de services, som it-infrastrukturen er afhængig af. Sikkerheden i applikationer og database software er ikke effektiv, hvis den underliggende platform har sårbarheder, hvorfor sikkerhedsniveauet på platformniveau er centralt for hele infrastrukturen.