Analüütikud tervitavad NSA nõuannet arendajatele mälukindlate keelte kasutuselevõtmiseks PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Analüütikud tervitavad NSA nõuandeid arendajatele mälukindlate keelte kasutuselevõtuks

Turvaanalüütikud tervitasid eelmisel nädalal USA riikliku julgeolekuagentuuri (NSA) soovitust tarkvaraarendajatele kaaluda selliste keelte kasutuselevõttu nagu C#, Go, Java, Ruby, Rust ja Swift, et vähendada mäluga seotud turvaauke koodis.

NSA kirjeldas neid kui "mälu ohutuid" keeli, mis haldavad mälu automaatselt arvutikeele osana. Nad ei tugine programmeerijale mäluturbe rakendamisel, vaid kasutavad mäluvigade eest kaitsmiseks kompileerimisaja ja tööaja kontrolli kombinatsiooni, teatas NSA.

Mälukindlate keelte näide

NSA mõnevõrra ebatavaline 10. novembri nõuanne osutas laialt kasutatavatele keeltele nagu C ja C++. tuginedes liiga palju programmeerijatele mitte teha mäluga seotud vigu, mis on jätkuvalt tarkvara turvaaukude peamine põhjus. Varasemad uuringud – ükshaaval Microsoft 2019. aastal ja teine ​​pärit Google 2020. aastal NSA teatas, et mis on seotud selle Chrome'i brauseriga – näiteks leidsid mõlemad, et 70% haavatavustest olid mäluohutuse probleemid.

"Tavaliselt kasutatavad keeled, nagu C ja C++, pakuvad mäluhalduses palju vabadust ja paindlikkust, tuginedes samal ajal suuresti programmeerijale, kes teostab vajalikke mäluviidete kontrollimisi," teatas NSA. Selle tulemuseks on sageli ärakasutatavad haavatavused, mis on seotud lihtsate vigadega, nagu puhvri ületäitumise vead, mälu eraldamise probleemid ja võistlustingimused.

NSA ütles oma nõuandes, et C#, Go, Java, Ruby, Rust, Swift ja muud mälukindlad keeled ei kõrvalda nende probleemide ohtu täielikult. Enamik neist sisaldab näiteks vähemalt mõnda klassi või funktsiooni, mis ei ole mälu jaoks ohutud ja võimaldavad programmeerijal täita potentsiaalselt ohtlikke mäluhaldusfunktsioone. Mälukindlad keeled võivad mõnikord sisaldada ka raamatukogusid, mis on kirjutatud keeltes, mis sisaldavad potentsiaalselt ohtlikke mälufunktsioone.

Kuid isegi nende hoiatustega, mälukindlad keeled võib aidata vähendada tarkvara haavatavusi NSA ütles, et see on tingitud halvast ja hooletust mäluhaldusest.

Tim Mackey, Synopsyse küberturvalisuse uurimiskeskuse peamine turbestrateeg, tervitab NSA soovitust. Mälukindlate keelte kasutamine peaks tegelikult olema enamiku rakenduste vaikeseade, ütleb ta. "Praktilistel eesmärkidel tähendab see, et arendajate keskendumine mäluhalduse probleemidele, selle asemel et programmeerida lahedaid uusi funktsioone, tähendab innovatsioonimaksu," ütleb ta. Mälukindlate programmeerimiskeelte ja nendega seotud raamistike puhul tagavad õige mäluhalduse keele autorid, mitte rakenduste arendajad, ütleb Mackey.

Vahetus võib olla keeruline

NSA tunnistas, et küpse tarkvaraarenduskeskkonna üleviimine ühest keelest teise võib olla raske. Programmeerijad peavad õppima uut keelt ning tõenäoliselt tuleb protsessi käigus ette algajaid vigu ja tõhususe tabamust. Saadaoleva mäluturbe ulatus võib samuti keeleti oluliselt erineda. Mõned võivad pakkuda ainult minimaalset mälu turvalisust, samas kui teised pakuvad märkimisväärset kaitset mälule juurdepääsu, eraldamise ja haldamise osas.

Lisaks peavad organisatsioonid kaaluma, kui suure kompromissi nad on valmis turvalisuse ja jõudluse vahel tegema. "Mälu ohutus võib jõudluse ja paindlikkuse osas olla kulukas," hoiatas NSA. "Äärmusliku kaitsetasemega keelte puhul võib kontrollide ja kaitsete tõttu vajada palju tööd, et programm lihtsalt kompileerida."

Rakenduste ühest keelest teise teisaldamisel on mängus palju muutujaid, ütleb Vulcan Cyberi vanemtehniline insener Mike Parkin. "Parimal juhul on nihe lihtne ja organisatsioon saab seda suhteliselt valutult teha," ütleb Parkin. "Teistel juhtudel tugineb rakendus funktsioonidele, mis on algkeeles triviaalsed, kuid vajavad uues uuesti loomiseks ulatuslikku ja kulukat arendust."

Mälukindlate keelte kasutamine ei asenda ka vajadust korraliku tarkvara testimise järele, hoiatab Mackey. See, et programmeerimiskeel on mälukindel, ei tähenda, et keel või sellel arendatud rakendused oleksid vigadest vabad.

Ühelt programmeerimiskeelelt teisele üleminek on riskantne ettepanek, välja arvatud juhul, kui teil on töötajaid, kes mõistavad juba nii vana kui ka uut keelt, ütleb Mackey. „Sellist migreerimist on kõige parem teha siis, kui rakendus on läbimas suuremat versiooniuuendust; vastasel juhul on võimalik, et migratsioonipüüdluste osana tuuakse sisse tahtmatud vead,“ märgib ta.

Mackey soovitab organisatsioonidel keelte vahetamisel kaaluda mikroteenuste kasutamist. "Mikroteenuste arhitektuuriga jaotatakse rakendus konteinerisse paigutatud teenuste komplektiks, " ütleb Mackey. "Programmeerimiskeele vaatenurgast ei eelda miski, et iga mikroteenus oleks programmeeritud samas programmeerimiskeeles nagu teised sama rakenduse teenused."

Liikumise tegemine

Statista värsked andmed näitavad seda paljud arendajad juba kasutavad keeled, mida peetakse mälukindlaks. Näiteks peaaegu kaks kolmandikku (65.6%) kasutavad JavaScripti, peaaegu pooled (48.06%) kasutavad Pythonit, üks kolmandik Java-d ja peaaegu 28% kasutavad C#-d. Samal ajal kasutab märkimisväärne osa endiselt ebaturvalisi keeli, nagu C++ (22.5%) ja C (19.25%).

"Ma arvan, et paljud organisatsioonid on juba C/C++-st loobunud mitte ainult mälu ohutuse, vaid ka üldise arendamise ja hooldamise lihtsuse tõttu," ütleb SANS-i tehnoloogiainstituudi teadusuuringute dekaan Johannes Ullrich. "Kuid endiselt on olemas pärandkoodibaasid, mida tuleb hooldada veel palju aastaid."

NSA nõuanne pakkus vähe ülevaadet sellest, mis võis tema soovituse praegusel hetkel ajendada. Kuid Netenrichi peamine ohukütt John Bambenek soovitab organisatsioonidel seda mitte ignoreerida. "Mälu haavatavused ja rünnakud on olnud levinud alates 1990. aastatest, nii et üldiselt on see hea nõuanne," ütleb ta. "Seda arvestades, kuna see pärineb NSA-lt, usun, et see nõuanne peaks muutuma kiireloomuliseks ja seda juhivad teadmised, mis neil on ja meil mitte."

Ajatempel:

Veel alates Tume lugemine