
CIS Control 16 - Application Software Security
I dette afsnit gennemgår vi CIS Control 16: Application Software Security.
Formålet er at styre sikkerhedslivscyklussen for egenudviklet, hostet eller indkøbt software for at forebygge, opdage og afhjælpe sikkerhedssvagheder, før de påvirker virksomheden.
Applikationer giver adgang til data og systemressourcer. Hvis de kompromitteres, kan angribere få direkte adgang til følsomme oplysninger. Derfor er applikationssikkerhed central.
Hvorfor er Control 16 vigtig?
Sårbarheder kan opstå på grund af usikkert design, kodningsfejl, svag autentifikation eller manglende test.
Angribere kan udnytte eksempelvis SQL injection, cross-site scripting og andre fejl til at få adgang til data eller tage kontrol over systemer.
Mange virksomheder anvender også SaaS-platforme, hvor udvikling og drift ligger hos tredjepart. Det kræver forståelse for de risici, der accepteres.
Hvad skal man have styr på?
Sikker udviklingsproces
Der skal etableres og vedligeholdes en sikker udviklingsproces, som omfatter
• Sikre designstandarder • Sikre kodningspraksisser • Uddannelse af udviklere • Håndtering af sårbarheder • Sikkerhedstest • Håndtering af tredjepartskode
Processen skal gennemgås og opdateres årligt eller ved væsentlige ændringer.
Håndtering af sårbarheder
Der skal være en proces for at modtage og håndtere rapporter om softwaresårbarheder, herunder mulighed for ekstern rapportering.
Processen skal omfatte
• Politik for håndtering • Ansvarsplacering • Intake og tildeling • Afhjælpning og test • Sporing med severity ratings og målinger
Dokumentation skal opdateres mindst årligt.
Der skal udføres root cause analyse for at identificere underliggende årsager og reducere fremtidige fejl.
Tredjepartskomponenter
Der skal etableres og vedligeholdes et opdateret inventar over tredjepartskomponenter, ofte kaldet en bill of materials.
Inventaret skal evalueres mindst månedligt for ændringer og sikre, at komponenter fortsat er understøttet.
Der skal anvendes opdaterede og betroede komponenter fra betroede kilder, og de skal vurderes for sårbarheder før brug.
Prioritering og releasekrav
Der skal etableres et severity rating system, som prioriterer rækkefølgen af afhjælpning og fastlægger et minimum sikkerhedsniveau for release.
Systemet skal gennemgås og opdateres årligt.
Sikring af infrastruktur og miljøer
Der skal anvendes industristandard hardening konfigurationer for applikationsinfrastruktur, herunder servere, databaser, webservere og cloud komponenter.
Egenudviklet software må ikke svække hardening.
Produktionsmiljøer og ikke-produktionsmiljøer skal holdes adskilt.
Udviklerkompetencer og designprincipper
Udviklingspersonale skal modtage træning i sikre kodningspraksisser mindst årligt.
Der skal anvendes sikre designprincipper, herunder
• Least privilege • Validering af input • Fejlkontrol • Minimering af angrebsflade • Fjernelse af unødvendige programmer og filer
Der skal anvendes validerede moduler og services til funktioner som identitetsstyring, kryptering og logging, og der skal anvendes standardiserede og bredt accepterede krypteringsalgoritmer.
Test og verifikation
Der skal anvendes statiske og dynamiske analyseværktøjer i udviklingslivscyklussen for at verificere sikre kodningspraksisser.
Der skal gennemføres applikations penetrationstest. For kritiske applikationer er autentificeret penetrationstest særligt relevant.
Der skal gennemføres trusselsmodellering for at identificere og adressere designsvagheder før kode udvikles.
Afslutning
CIS Control 16 kræver styring af hele applikationens sikkerhedslivscyklus fra design til drift.
Det omfatter sikre udviklingsprocesser, håndtering af sårbarheder, kontrol med tredjepartskomponenter, sikre designprincipper, miljøadskillelse og løbende test.
Formålet er at reducere risikoen for, at applikationer bliver indgangspunkt for kompromittering af virksomhedens data og systemer.
Tak fordi du lyttede med.