NSA kanggo pangembang: Mikir babagan ngalih saka C lan C ++ menyang basa program aman memori

Gambar: Getty Images/iStockphoto

Badan Keamanan Nasional (NSA) njaluk pangembang supaya pindhah menyang basa sing aman memori – kayata C #, Go, Java, Ruby, Rust, lan Swift – kanggo nglindhungi kode kasebut saka eksekusi kode remot utawa serangan peretas liyane.

Saka basa sing kasebut ing ndhuwur, Jawa minangka sing paling akeh digunakake ing pangembangan aplikasi perusahaan lan Android, dene Swift minangka basa 10 paling ndhuwur, amarga sebagian saka pangembangan aplikasi iOS. Lan ana kapentingan akeh ing Rust minangka panggantos kanggo C lan C ++ ing program sistem.

“NSA menehi saran marang organisasi supaya nimbang nggawe owah-owahan strategis saka basa pamrograman sing nyedhiyakake proteksi memori sing sethithik utawa ora ana, kayata C/C ++, menyang basa sing aman memori yen bisa. Sawetara conto basa sing aman memori yaiku C#, Go , Java, Ruby, lan Swift,” ujare NSA.

Agensi mata-mata kasebut nyebutake riset anyar saka Google lan Microsoft yen 70% masalah keamanan, masing-masing ing Chrome lan Windows, ana hubungane karo memori lan akeh sing ana akibat nggunakake C lan C ++, sing luwih rentan marang kerentanan basis memori. .

ugi: Keamanan siber, awan lan coding: Napa telung katrampilan kasebut bakal mimpin permintaan ing 2023

“Aktor cyber angkoro bisa ngeksploitasi kerentanan kasebut kanggo eksekusi kode remot utawa efek ala liyane, sing asring bisa kompromi piranti lan dadi langkah pertama ing gangguan jaringan skala gedhe,” cathetan NSA ing “Software Memory Safety” Lembar Informasi Keamanan Siber.

“Basa sing umum digunakake, kayata C lan C ++, nyedhiyakake akeh kebebasan lan keluwesan ing manajemen memori nalika gumantung banget marang programmer kanggo nindakake mriksa sing dibutuhake ing referensi memori.”

Dadi, agensi kasebut nyaranake nggunakake basa sing aman memori yen bisa, manawa kanggo pangembangan aplikasi utawa pemrograman sistem.

“NSA nyaranake nggunakake basa memori aman yen bisa,” iku cathetan.

Nalika umume profesional infosec ngerti debat babagan basa sing aman memori, bisa uga ora kabeh pangembang. Sanadyan, mesthine kudune, amarga masalah iki wis pirang-pirang dekade, kaya sing dicritakake dening pangripta Jawa James Gosling ing diskusi babagan carane lan ngapa Jawa digawe.

Yen ana apa-apa, dokumen NSA nawakake pangembang panjelasan basa sing jelas lan jelas babagan alasan teknis kanggo pindhah menyang basa sing aman kanggo memori. Mbokmenawa basa paling rembugan ing safety memori wis Rust, kang calon utama minangka ‘panggantos’ kanggo C lan C ++.

Kernel Linux bubar ngenalake Rust minangka basa kapindho kanggo C, sawise Proyek Open Source Android. Proyèk iki ora bakal ngganti kode C/C ++ lawas, nanging luwih seneng Rust kanggo kode anyar. Uga, Microsoft Azure CTO Mark Russinovich bubar ngajak kabeh pangembang nggunakake Rust liwat C lan C ++ kanggo kabeh proyek anyar.

“Kanthi ngeksploitasi jinis masalah memori kasebut, aktor jahat – sing ora kaiket karo pangarepan normal babagan panggunaan piranti lunak – bisa nemokake manawa bisa ngetik input sing ora biasa menyang program kasebut, nyebabake memori bisa diakses, ditulis, dialokasikan, utawa ditangani kanthi cara sing ora dikarepake. , “NSA nerangake.

Nanging – minangka ahli wis nyathet ing debat babagan Rust lan C / C ++ – NSA ngelingake yen mung nggunakake basa sing aman memori ora kanthi gawan nyegah ngenalake bug memori menyang piranti lunak. Kajaba iku, basa asring ngidini perpustakaan sing ora ditulis ing basa sing aman memori.

“Sanajan nganggo basa sing aman kanggo memori, manajemen memori ora sakabehe aman kanggo memori. Umume basa sing aman memori ngerteni manawa piranti lunak kadhangkala kudu nindakake fungsi manajemen memori sing ora aman kanggo ngrampungake tugas tartamtu. Akibate, kelas utawa fungsi kasedhiya sing kasedhiya. diakoni minangka non-memori sing aman lan ngidini programmer nindakake tugas manajemen memori sing ora aman, “ujare NSA.

“Sawetara basa mbutuhake memori apa wae sing ora aman supaya bisa dianotasi kanthi jelas supaya programmer lan panaliti program kasebut ngerti yen ora aman. Basa sing aman memori uga bisa nggunakake perpustakaan sing ditulis ing basa sing ora aman kanggo memori lan Mangkono bisa ngemot fungsi memori ora aman. Senajan cara iki kalebu mekanisme aman memori subvert safety memori gawan, padha bantuan kanggo nemokake ngendi masalah memori bisa ana, saéngga kanggo nliti ekstra ing bagean kode. “

Uga: Cybersecurity: Iki minangka prekara anyar sing kudu dikuwatirake ing 2023

NSA nyathet yen sawetara basa sing aman memori bisa entuk biaya kinerja, sing mbutuhake pangembang sinau basa anyar. Uga nuduhake manawa ana langkah sing bisa ditindakake para pangembang kanggo harden basa non-memori sing aman. Tim Chrome Google, contone, njelajah macem-macem cara kanggo harden C ++, nanging pendekatan iki uga teka karo overheads kinerja. C++ bakal tetep ing basis kode Chrome kanggo mangsa ngarep.

NSA nyaranake tes keamanan aplikasi statis lan dinamis kanggo nemokake masalah memori. Rekomendasi uga njelajah cara hardening memori, kayata Control Flow Guard (CFG), sing bakal mbatesi watesan ing ngendi kode bisa dieksekusi. Kajaba iku, Address Space Layout Randomization (ASLR) lan Data Execution Prevention (DEP) dianjurake.

Leave a Comment

Your email address will not be published. Required fields are marked *