Applikasjonssikkerhet er kritisk i de fleste miljøer, blant annet fordi applikasjoner gjøres tilgjengelig over web. Dette omfatter alt fra administrasjon av nettverkskomponenter til ventilasjonssystemer. Formålet er å gjøre applikasjonene tilgjengelige, men dårlig applikasjonssikkerhet kan medføre at angripere får tilgang til IT-systemer og data.
Hverdagen har endret seg til å handle like mye om hvordan hindre angripere å få tilgang til miljøene våre, og videre kunne oppdage når aktører faktisk klarer å bryte seg inn. Innbrudd er blitt et faktum, og det handler om å begrense skadeomfanget, samt om å sikre at angriperne ikke når sine mål.
Det er viktig å forstå at sikkerhet i applikasjonene aldri blir perfekt, og at bedriften har vunnet dersom de klarer å stoppe angriperne før de klarer å oppnå sine mål.
Flere av dagens applikasjoner utvikles i et meget høyt tempo. "Minimum viable product" er virkelig blitt standarden som mange jobber etter, og dagens utviklingsløp krever "agile" og DevOps for å henge med.
Det blir derimot enda viktigere å jobbe inn sikkerhet som en del av livsløpet til applikasjonen som utvikles eller settes i produksjon. I dette innlegget tar vi for oss punkter som er nødvendig for i større grad å sikre en trygg og sikker applikasjon.
Kontinuerlig trening og opplæring innen sikkerhet er en kritisk suksessfaktor for å oppnå god sikkerhet. Det er essensielt at bedriftens ansatte, spesielt de som sitter i beslutningsposisjon, klarer å forstå hvordan angriperne jobber, hvilke mål og ambisjoner de har, samt hvordan feilgrep hos bedriftens ansatte tillater angripere enklere tilgang til systemer, data og verdier.
Det bør tidlig i anskaffelsesprosessen settes et minimumskrav for sikkerhet i applikasjonen. Slike krav bør etterleves, og dessuten bør avvik oppdages så tidlig som mulig i anskaffelsesprosessen (eller utviklingsløpet). Minimumskravene bør defineres i henhold til applikasjonssikkerhetsstandarder som OWASPs "Application Security Verification Standard".
Slike standarder hjelper deg med å sette de riktige kravene til applikasjonssikkerheten. OWASP Top 10 og SANS Top 25 er også gode retningslinjer som kan gi en grei grunnlinje for hvilke krav applikasjonen bør inneha.
Hvordan kan bedriften måle sikkerhetshendelser og sikkerhetskrav, for eksempel reguleringer fra næringen? Dette kan, og bør, defineres tidlig. Enkle virkemidler som å måle hvem som aksesserer applikasjonen, hvilke tilganger som opprettes og fjernes, og hvilke handlinger som utføres, er gode elementer å måle.
Man bør inneha verktøy og prosesser for å håndtere sårbarheter i produkter som er anskaffet, det være seg open source eller ei. Det oppdages sårbarheter i programvare stadig vekk, til tross for at de har vært i produksjon i en årrekke.
Software Composition Analysis (SCA) verktøy kan være til hjelp for å håndtere slik risiko, blant annet Netsecurity sitt Vulnerability Management-program. Risikoer som oppdages bør håndteres i et sikkerhetsstyringssystem, og sårbarhetene bør hjelpes i prioritet av mennesker med nødvendig kompetanse, for eksempel penetrasjonstestere.
Trusselmodellering trenger ikke å være en treg og tungvint prosess. Ved hjelp av de rette teknikkene og verktøyene kan trusselmodellering bidra til å håndtere risiko tidlig i et prosjekt for å innføre en ny applikasjon. Hvilke typer trusler bør vi planlegge for, og hvordan bør applikasjonen tilrettelegges for å håndtere dem? Slike spørsmål bør besvares tidlig i prosessen.
Les også: Slik sikrer du at bedriften ikke dør av Distributed Denial-of-Service
Penetrasjonstesting finner ofte sårbarheter som burde vært avdekket tidligere i prosessen. Automatiserte verktøy kan ofte gjøre en grei jobb med å avsløre mange av de kjente sårbarhetene som blir utnyttet. Slike verktøy og automatisering bør bygges inn i prosessene for Vulnerability Management, men også direkte inn i utviklernes verktøy (IDE, Integrated Development Environment) for å avsløre umiddelbart når en utvikler utfører noe som kan introdusere risiko.
Man kan også stenge byggingen av applikasjonen før slike feil er utbedret. Slike verktøy kalles ofte Static Analysis Security Testing og kan komplementeres med automatiserte sårbarhetsskannere kalt Dynamic Analysis Security Testing.
Det finnes i dag flere muligheter for kontinuerlig å sjekke og bekrefte at sensitiv tilgangsdata, som for eksempel passord, er under kontroll. Det er mange måter å integrere applikasjoner til å benytte seg av "least amount of privileges" samt sikre tilgangsdata i nøkkeldatabaser som for eksempel Azure Key Vault.
Det oppdages hele tiden nye innbrudd, teknikker og annet man ikke har tenkt på tidligere. Planlegg for dette og observer hvordan applikasjonen blir brukt, slik at man kan monitorere den mest relevante sikkerhetsinformasjonen.
Sikkerhetsovervåkning har best effekt når systemet Security Information Event Management (SIEM) i større grad forstår seg på hendelsene som applikasjonen gir fra seg. Man vil aldri kunne forutsi alt, og det er dermed viktig å videreutvikle og forstå seg på sikkerhetsbildet basert på Threat Intelligence og annen kunnskap man kan innhente.