Analytikere ønsker velkommen NSAs råd for utviklere om å ta i bruk minnesikre språk PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Analytikere ønsker NSAs råd for utviklere velkommen til å ta i bruk minnesikre språk

Sikkerhetsanalytikere ønsket velkommen en anbefaling fra US National Security Agency (NSA) forrige uke til programvareutviklere om å vurdere å ta i bruk språk som C#, Go, Java, Ruby, Rust og Swift for å redusere minnerelaterte sårbarheter i kode.

NSA beskrev disse som "minnesikre" språk som administrerer minne automatisk som en del av datamaskinspråket. De er ikke avhengige av programmereren for å implementere minnesikkerhet og bruker i stedet en kombinasjon av kompileringstid og kjøretidskontroller for å beskytte mot minnefeil, sa NSA.

Saken for minnesikre språk

NSAs noe uvanlige råd 10. november pekte på mye brukte språk som C og C++ som stoler for sterkt på programmerere ikke å gjøre minnerelaterte feil, som den bemerket, fortsetter å være hovedårsaken til sikkerhetssårbarheter i programvare. Tidligere studier – en etter Microsoft i 2019 og en annen fra Google i 2020 relatert til Chrome-nettleseren – for eksempel fant begge at 70 % av sårbarhetene var minnesikkerhetsproblemer, sa NSA.

"Vanlige brukte språk, som C og C++, gir mye frihet og fleksibilitet i minnehåndtering samtidig som de er avhengige av at programmereren utfører de nødvendige kontrollene på minnereferanser," sa NSA. Dette resulterer ofte i utnyttbare sårbarheter knyttet til enkle feil som bufferoverløpsfeil, problemer med minneallokering og løpsforhold.

C#, Go, Java, Ruby, Rust, Swift og andre minnesikre språk eliminerer ikke helt risikoen for disse problemene, sa NSA i sin rådgivning. De fleste av dem inkluderer for eksempel minst noen få klasser eller funksjoner som er ikke-minnesikre og lar programmereren utføre en potensielt usikker minneadministrasjonsfunksjon. Minnesikre språk kan noen ganger også inkludere biblioteker skrevet på språk som inneholder potensielt usikre minnefunksjoner.

Men selv med disse forbeholdene, minnesikre språk kan bidra til å redusere sårbarheter i programvare som følge av dårlig og uforsiktig hukommelseshåndtering, sa NSA.

Tim Mackey, hovedsikkerhetsstrateg ved Synopsys Cybersecurity Research Center, ønsker NSAs anbefaling velkommen. Bruken av minnesikre språk burde faktisk være standard for de fleste applikasjoner, sier han. "For praktiske formål representerer det en skatt på innovasjon å stole på at utviklere fokuserer på problemer med minneadministrasjon i stedet for å programmere kule nye funksjoner," sier han. Med minnesikre programmeringsspråk og tilhørende rammeverk er det forfatterne av språket som sørger for riktig minnehåndtering og ikke applikasjonsutviklerne, sier Mackey.

Skift kan være utfordrende

Å skifte et modent programvareutviklingsmiljø fra ett språk til et annet kan være vanskelig, erkjente NSA. Programmerere må lære det nye språket, og det vil sannsynligvis være nybegynnerfeil og effektivitetstreff under prosessen. Omfanget av minnesikkerhet som er tilgjengelig kan også variere betydelig fra språk til språk. Noen tilbyr kanskje bare minimal minnesikkerhet, mens andre tilbyr betydelig beskyttelse rundt minnetilgang, tildeling og administrasjon.

I tillegg må organisasjoner vurdere hvor mye av en avveining de er villige til å gjøre mellom sikkerhet og ytelse. "Minnesikkerhet kan være kostbart i ytelse og fleksibilitet," advarte NSA. "For språk med et ekstremt nivå av iboende beskyttelse, kan det være nødvendig med betydelig arbeid for å få programmet til å kompilere på grunn av kontrollene og beskyttelsene."

Det er utallige variabler i spill når man prøver å portere en applikasjon fra ett språk til et annet, sier Mike Parkin, senior teknisk ingeniør hos Vulcan Cyber. "I et best-case scenario er skiftet enkelt, og en organisasjon kan oppnå det relativt smertefritt," sier Parkin. "I andre er applikasjonen avhengig av funksjoner som er trivielle på originalspråket, men som krever omfattende og kostbar utvikling for å gjenskape i det nye."

Bruken av minnesikre språk erstatter heller ikke behovet for riktig programvaretesting, advarer Mackey. Bare fordi et programmeringsspråk er minnesikkert, betyr det ikke at språket eller applikasjonene som er utviklet på det er fri for feil.

Å flytte fra ett programmeringsspråk til et annet er et risikabelt forslag med mindre du har ansatte som allerede forstår både det gamle og det nye, sier Mackey. «En slik migrering gjøres best når applikasjonen skal gjennom en større versjonsoppdatering; ellers er det potensialet for at utilsiktede feil introduseres som en del av migrasjonsarbeidet,» bemerker han.

Mackey foreslår at organisasjoner vurderer å bruke mikrotjenester når det kommer til å skifte språk. "Med en mikrotjenestearkitektur dekomponeres applikasjonen i et sett med tjenester som er containeriserte," sier Mackey. "Fra perspektivet til et programmeringsspråk er det ingenting som iboende krever at hver mikrotjeneste er programmert i samme programmeringsspråk som andre tjenester innenfor samme applikasjon."

Gjør bevegelsen

Nyere data fra Statista viser det mange utviklere bruker allerede språk som anses som minnesikre. Nesten to tredjedeler (65.6 %) bruker for eksempel JavaScript, nesten halvparten (48.06 %) bruker Python, en tredjedel bruker Java, og nesten 28 % bruker C#. Samtidig bruker en betydelig andel fortsatt usikre språk som C++ (22.5 %) og C (19.25 %).

"Jeg tror mange organisasjoner allerede har gått bort fra C/C++, ikke bare for minnesikkerhetsproblemet, men også for den generelle enkle utviklingen og vedlikeholdet," sier Johannes Ullrich, forskningsdekan ved SANS Technology Institute. "Men det vil fortsatt være eldre kodebaser som må vedlikeholdes i mange år fremover."

NSAs råd ga lite innsikt i hva som kan ha foranlediget dens anbefaling på dette tidspunktet. Men John Bambenek, hovedtrusseljeger ved Netenrich, råder organisasjoner til ikke å ignorere det. "Minnesårbarheter og angrep har vært gjennomgripende siden 1990-tallet, så generelt er dette et godt råd," sier han. "Når det er sagt, siden dette kommer fra NSA, mener jeg at dette rådet bør ha økt hast og er drevet av kunnskap de har, og det har vi ikke."

Tidstempel:

Mer fra Mørk lesning