Hvordan kan du vite at du håndterer en oppgave hvis du aldri har gjort den før? Opplæring er svaret, og Øvelse gjør mester – og den som tror at han er ferdig utlært, er ikke utlært, men ferdig. Programvaresikkerhetsgruppen (SSG) spiller en viktig rolle her!
I vår serie om innebygd målbar sikkerhet og BSIMM, skal vi denne gangen skal vi se nærmere på Training, eller opplæring og øvelser. Hovedmålene for denne praksisen er å utdanne en kunnskapsrik arbeidsstokk og rette opp feil i prosesser. Arbeidsstokken må ha rolle-basert kunnskap som spesifikt inkluderer ferdighetene som kreves for å utføre deres SSDL-aktiviteter på en hensiktsmessig måte. Opplæringen må omfatte spesifikk informasjon om rotårsaker til feil som oppdages i prosessaktiviteter og resultater.
T Nivå 1: Gjør tilpasset, rollebasert opplæring tilgjengelig ved behov
SSG må bygge opp interessen for programvaresikkerhet i hele organisasjonen, og tilby rollespesifikt opplæringsmateriale, inkludert datamaskinbasert opplæring, som bygger inn erfaringer fra faktiske interne hendelser.
- T1.1: Tilby sikkerhetsbevissthetsopplæring
SSG tilbyr kurs i sikkerhetsbevissthet for å fremelske en programvaresikkerhetskultur gjennom hele virksomheten. Opplæring kan gis av medlemmer fra SSG, et eksternt firma, den interne opplæringsavdelingen, eller gjennom et e-læringssystem. Kursinnholdet er ikke nødvendigvis skreddersydd for en spesifikk målgruppe. F.eks. kan alle programmerere, kvalitetskontrollører og prosjektledere delta på samme “Introduksjon til programvaresikkerhet”-kurs. Denne fellesaktiviteten kan utvides med en skreddersydd variant av et introduksjonskurs som eksplisitt adresserer den aktuelle virksomhetens kultur. Generelle introduksjonskurs som dekker grunnleggende IT-sikkerhet og høynivå programvaresikkerhetskonsepter genererer ikke tilfredsstillende resultater. På samme måte er det utilstrekkelig å bare tilby sikkerhetsbevissthetsopplæring til utviklere og ikke andre roller. - T1.5: Tilby rollespesifikk læreplan (verktøy, teknologistakker, “bug parade”)
Programvaresikkerhetsopplæring går videre enn å bare bygge bevissthet, og gjør det mulig for “elevene” å bygge inn sikkerhetsaktiviteter i sitt arbeid. Opplæringen er skreddersydd til rollene til “elevene” som får informasjon om verktøy, teknologistakker, og typen feil som er mest relevante for dem. En virksomhet kan f.eks. tilby fire spor for sine ansatte: ett for arkitekter, ett for Java-utviklere, ett for .NET-utviklere, og et fjerde for testere. Verktøyspesifikk opplæring er også noe man ofte ser som en del av pensum. Ikke glem at opplæring vil være nyttig for mange forskjellige roller i en virksomhet, inkludert QA, produktadministrasjon, ledelse, og andre. - T1.6: Utarbeid og bruk materiale som er spesifikt for virksomhetens historie
For å oppnå en sterk og varig endring i oppførsel omfatter opplæringsmaterialet hendelser som er spesifikke for virksomhetens historie. Når deltakere kan se seg selv i problemet. er det mer sannsynlig at de forstår at materialet er relevant for deres arbeid, og vet når og hvordan de skal anvende det de har lært. En måte å gjøre dette på er å bruke minneverdige angrep på virksomheten som eksempler i opplæringspensumet. Vær skeptisk til opplæring som dekker plattformer som ikke brukes av utviklerne (Windows-utviklere bryr seg ikke om gamle Unix-problemer) eller eksempler på problemer som kun er relevant i programmeringsspråk som ikke lenger er i bruk i virksomheten (Java-utviklere trenger ikke forstå bufferoversvømmelse-angrep [buffer overflow] i C). Historier fra gamle dager i virksomheten kan bidra til å styre opplæringen i riktig retning kun dersom historiene fortsatt er relevante. - T1.7: Tilby individuell personlig opplæring på forespørsel
Virksomheten minske byrden for de som skal læres opp, og reduserer kostnader ved å tilby opplæring på forespørsel for enkeltpersoner. Datamaskinbasert opplæring er det mest åpenbare valget her, og kan holdes oppdatert gjennom en abonnementsordning. Datamaskinbaserte kurs må skape engasjement og være relevante for å oppnå hensikten. For utviklere er det også mulig å tilby opplæring direkte gjennom utviklingsgrensesnitt (IDE) ved behov. Husk imidlertid at å bygge opp nye ferdigheter (som f.eks. kodegjennomgang) er kanskje mer egnet for tradisjonell instruktørledet opplæring.
T Nivå 2: Opprett programvaresikkerhetssatellitten
SSG må bygge opp og forbedre en satellitt gjennom sosiale aktiviteter, inkludert opplæring og relaterte arrangementer. SSG og ledere må sørge for at nyansatte eksponeres for organisasjonens sikkerhetskultur som en del av velkomstprogrammet.
- T2.5: Forbedre satellitten gjennom opplæring og arrangementer
SSG forsterker sitt sosiale nettverk ved å lage spesielle arrangementer for satellitten. Satellitten lærer om avanserte tema eller lytter til gjesteforelesere. Det skader ikke å tilby pizza med drikke til. Et fast telefon/videomøte dekker ikke denne aktiviteten, som handler like mye om å bygge kameratskap som å dele kunnskap eller øke organisasjonsmessig effektivitet. Det finnes ikke noen erstatning for å møtes ansikt til ansikt, selv om det bare skjer en eller to ganger i året. - T2.6: Inkluder sikkerhetsressurser i nyansattopplæring
Prosessen for å integrere nyansatte i utviklingsorganisasjonen krever en modul om programvaresikkerhet. En generell nyansattprosedyre kan omfatte ting som å velge et godt passord og sørge for at folk ikke sniker seg inn i bygningen ved å følge etter deg, men dette utvides til å dekke tema som sikker koding, SSDL og interne sikkerhetsressurser. Målet er at nyansatte skal forbedre sikkerhetskulturen – det er generelt mye gjennomtrekk i utviklingsvirksomheter. Selv om en generell nyansattmodul er nyttig, kan den ikke fullt ut erstatte et mer komplett introduksjonskurs i programvaresikkerhet. - T2.7: Identifiser satellitten gjennom opplæring
Satellitten begynner som en samling mennesker spredt utover i virksomheten som er over gjennomsnittet interessert i sikkerhet og/eller har slike ferdigheter. Det å identifisere denne gruppen er et steg i retning av å lage et sosialt nettverk som framskynder integrering av sikkerhet i programvareutviklingen. En måte å gjøre dette på er å notere seg mennesker som utmerker seg under kurs og opplæring. En hær av frivillige er generelt lettere å lede enn en som er tvangsutskrevet.
T Nivå 3: Belønn ferdigheter og skap en karrierevei
Bygg moral. Ledelsen og SSG må sørge for at alle ansatte får tilstrekkelig anerkjennelse for å fullføre opplæringsløpet. Ledere, applikasjonseiere og SSG må tilby opplæring til leverandører og innleide utviklere som en måte å spre sikkerhetskulturen. Ledere og SSG må fortsette å bygge opp under satellittens moment ved å markedsføre sikkerhetskulturen eksternt. SSG må være tilgjengelig, i hvert fall i perioder, for de som ønsker programvaresikkerhetsbistand og veiledning. Ledelsen må sørge for at alle ansatte mottar slik opplæring minst på en årlig basis.
- T 3.1: Belønn progresjon gjennom pensum (sertifisering eller HR)
Lærdom er sin egen belønning, men det å komme seg gjennom sikkerhetspensumet gir andre fordeler også. Utviklere og testere ser det å lære om sikkerhet som en fordel for karrieren. Belønningssystemet kan være formelt og føre til sertifisering eller en offisiell kreditering i personalsystemet, eller det kan være mer uformelt og gjøre bruk av motiverende grep som f.eks. anbefalingsbrev for satellitten skrevet rett før en årlig evaluering. Påvirkning av sikkerhet på karriere-progresjon kan gjøres mer åpenbar ved å involvere virksomhetens opplæringsavdeling eller personalavdeling, men SSG burde fortsatt monitorere sikkerhetskunnskap i virksomheten, og ikke fullstendig gi fra seg kontroll eller oversikt. - T3.2: Tilby opplæring til leverandører eller innleide arbeidere
Virksomheten tilbyr sikkerhetsopplæring til leverandører og konsulentfirmaer. Det er lettere å bruke tid og penger på hjelpe leverandører til å få gjort ting skikkelig enn å prøve å finne ut hva de har rotet til senere. I beste fall får innleide samme opplæringen som gis til egne ansatte. Det er mer naturlig å lære opp individuelle konsulenter enn å utdanne hele konsulentfirmaer, og er et fornuftig sted å starte. Det er selvfølgelig viktig å lære opp alle som som arbeider med din programvare, uansett hvor de er ansatt. - T3.3: Vær vert for eksterne programvaresikkerhetsarrangementer
Virksomheten fremhever sin sikkerhetskultur ved å arrangere konferanser og seminarer som er åpne for eksterne deltakere. Ansatte kan ha nytte av å høre andres perspektiver. Virksomheten som helhet tjener på å fremheve sin sikkerhetskredibilitet. - T3.4: Krev en årlig oppfrisker
Alle som er involvert i å lage programvare pålegges å ta et årlig oppdateringskurs i programvaresikkerhet. Oppfriskningskurset holder ansatte oppdatert på sikkerhet, og sørger for at virksomheten ikke mister fokus pga. gjennomtrekk. SSG kan f.eks. bruke en halv dag på å gi en oppdatering på sikkerhetslandskapet og forklare endringer i retningslinjer og standarder. Oppfriskeren kan rulles ut som en del av en felles sikkerhetsdag for virksomheten (f.eks. i Nasjonal Sikkerhetsmåned) eller i forbindelse med en intern sikkerhetkonferanse. - T3.5: Etabler SSG kontortid
SSG tilbyr hjelp til alle som ber om det i en angitt lab-tid eller fast kontortid. Ved å fungere som en uformell ressurs for folk som ønsker å løse sikkerhetsproblemer, kan SSG utnytte “læringsøyeblikk” og fremheve gulroten foran pisken. Kontortiden kan f.eks. være en ettermiddag i uka på kontoret til et senior SSG medlem. Ambulerende kontortider er også en mulighet, med besøk hos bestemte produkt- eller applikasjonsgrupper etter anmodning.