Rumah  >  Artikel  >  Peranti teknologi  >  Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah "dipilih sendiri" untuk keselamatan ingatan

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah "dipilih sendiri" untuk keselamatan ingatan

PHPz
PHPzke hadapan
2024-03-01 22:16:11348semak imbas

Baru-baru ini, Pejabat Pengarah Siber Negara (ONCD) Rumah Putih menyatakan perkara penting dalam laporan 19 halaman: pembangun harus menggunakan bahasa pengaturcaraan yang selamat memori, seperti bahasa Rust. Laporan itu menunjukkan bahawa memilih bahasa pengaturcaraan yang selamat memori adalah cara utama untuk memastikan perisian dibangunkan dengan cara yang selamat mengikut reka bentuk.

ONCD juga menegaskan bahawa cadangan dalam laporan itu dibangunkan dengan kerjasama syarikat teknologi, akademia dan institusi lain, dan mendapat sokongan daripada beberapa syarikat teknologi terkenal, termasuk HP, Accenture dan Palantir.

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Alamat laporan: https://www.whitehouse.gov/wp-content/uploads/2024/02/Final-ONCD-Technical-Report.pdf

Sebenarnya, ini bukan rasmi Amerika Syarikat Buat pertama kalinya, organisasi menyeru untuk berpindah dari C dan C++.

Pada Disember tahun lalu, Agensi Keselamatan dan Infrastruktur Siber A.S. (CISA), bersama-sama dengan agensi lain, mengeluarkan "Panduan Pelan Keselamatan Memori", menunjukkan C dan C++ sebagai bahasa pengaturcaraan yang tidak selamat memori, menekankan pembangunan perisian Vendor harus menggunakan bahasa pengaturcaraan selamat ingatan lain seperti Rust dan Java. Tujuan panduan ini adalah untuk meningkatkan kesedaran tentang isu keselamatan memori dalam pembangunan perisian dan menggalakkan penggunaan bahasa pengaturcaraan yang lebih dipercayai untuk mengurangkan potensi kelemahan keselamatan. CISA secara khusus menekankan kepentingan menggunakan bahasa pengaturcaraan yang selamat memori kerana ini membantu mengurangkan risiko serangan berniat jahat dan kebocoran data. Langkah ini juga untuk menggalakkan pembangunan industri pembangunan perisian ke arah yang lebih selamat dan boleh dipercayai,

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Sumber: https://www.cisa.gov/sites/default/files/2023-12/ The-Case -for-Memory-Safe-Roadmaps-508c.pdf

Abaikan C dan C++, beralih ke Rust, hanya untuk keselamatan memori

Adalah penting untuk menekankan penggunaan bahasa pengaturcaraan yang selamat memori, kerana keselamatan ingatan boleh menghalang kejadian seperti penimbalan Masalah seperti limpahan kawasan dan penunjuk berjuntai boleh membawa kepada pepijat dan kelemahan. Oleh itu, adalah penting untuk memahami konsep keselamatan ingatan.

Seberapa bahayakah ketidakamanan ingatan? Pada 2019, jurutera keselamatan Microsoft melaporkan bahawa kira-kira 70% isu keselamatan berpunca daripada isu keselamatan ingatan. Pada tahun 2020, Google melaporkan data serupa untuk pepijat yang ditemui dalam penyemak imbas Chromium.

Untuk bahasa pengaturcaraan, kedua-dua C dan C++ membenarkan aritmetik penunjuk arbitrari menggunakan alamat ingatan terus dan tanpa semakan sempadan. Laporan itu menunjukkan bahawa pakar telah mendapati bahawa beberapa bahasa pengaturcaraan, yang diwakili oleh C dan C++, kedua-duanya kekurangan ciri berkaitan keselamatan memori dan sangat meresap dalam beberapa sistem kritikal. Oleh itu, C dan C++ dianggap sebagai bahasa pengaturcaraan "tidak selamat".

Sepadan dengan C dan C++, Rust dianggap sebagai contoh klasik bahasa pengaturcaraan yang selamat memori. Rust ialah bahasa pengaturcaraan sistem yang memfokuskan pada keselamatan, terutamanya keselamatan serentak. Ia menyokong bahasa berbilang paradigma seperti paradigma pengaturcaraan fungsional, penting dan generik, dan rangka kerja pembelajaran mendalam seperti TensorFlow juga menggunakannya sebagai bahasa front-end yang sangat baik.

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Dalam Laporan Tinjauan Pembangun 2021 bagi tapak web soal jawab pengaturcara Stack Overflow, bahasa Rust menjadi bahasa pengaturcaraan paling popular dalam kalangan pembangun. Salah satu sebab Rust popular dalam dunia pengaturcaraan sistem ialah ia boleh membantu menghapuskan kelemahan keselamatan berkaitan memori.

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Ciri keselamatan ingatan Rust telah lama disahkan oleh industri. Pada April 2021, Google mengumumkan bahawa Android akan menambah sokongan untuk bahasa Rust. Sebabnya ialah pepijat keselamatan ingatan dalam C dan C++ merupakan sumber ralat yang paling sukar untuk diselesaikan Google telah melaburkan banyak usaha dan sumber untuk mengesan, membetulkan dan mengurangkan pepijat tersebut, serta menghalang sejumlah besar pepijat daripada memasukinya dengan berkesan. versi Android.

Walau bagaimanapun, di sebalik usaha ini, pepijat keselamatan memori kekal sebagai punca utama isu kestabilan, menyumbang kira-kira 70% daripada kelemahan keselamatan kritikal Android dari semasa ke semasa. Oleh itu, Google menambah pilihan ke-3, Rust, untuk pembangun sistem pengendalian.

Dan Grossman, profesor sains komputer di University of Washington, berkata bahawa semua orang telah mengetahui tentang bahaya C dan C++ selama beberapa dekad, dan kini akhirnya adalah masa yang baik untuk mempromosikan bahasa pengaturcaraan yang selamat memori, lagipun, di sana. adalah alternatif yang praktikal dan matang.

Beliau juga percaya bahawa menyingkirkan C dan C++ tidak boleh dicapai dalam sekelip mata, terutamanya dalam sistem terbenam. Walau bagaimanapun, proses ini dijangka akan mempercepatkan apabila bahasa pengaturcaraan lain seperti Rust semakin digunakan secara meluas dalam perisian sistem.

Untuk sikap rasmi terhadap C dan C++, lebih ramai orang nampaknya tidak membelinya.

Sesetengah orang berpendapat bahawa C++ moden adalah selamat memori dan semua sistem pengendalian menggunakan C atau C++ untuk pengaturcaraan. Sesetengah orang juga percaya bahawa walaupun C++ tidak selamat untuk memori, C++ moden mempunyai lebih banyak "pengadang" dan kos rendah atau bahkan percuma.

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Bagi Rust, yang telah "dipilih sendiri" untuk keselamatan ingatan, sesetengah orang merasakan tahap sokongannya tidak begitu tinggi dan ia tidak layak untuk disepadukan ke dalam sistem kerajaan. . bahasa pengaturcaraan selamat memori. JavaScript

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Ruby

Python

Delphi/Object Pascal
  • Ada
  • Sejauh manakah popular bahasa pengaturcaraan di atas? Indeks populariti bahasa pengaturcaraan TIOBE pada Februari 2024 menunjukkan bahawa dari segi pengaturcaraan, Python berada pada kedudukan pertama, C# berada pada kedudukan kelima, Java berada pada kedudukan keempat, JavaScript berada pada kedudukan keenam, Go berada pada kedudukan kelapan dan Delphi/Object Pascal berada pada kedudukan ke-16, Rust berada pada kedudukan ke-18, dan Ruby hampir tidak menduduki tempat ke-20.
  • Seperti yang anda lihat, kebanyakan bahasa yang dipilih oleh NSA adalah dalam 20 teratas, hanya Ada sahaja yang tidak ada, tetapi hanya ada 5 dalam sepuluh teratas.
  • Sumber: https://www.tiobe.com/tiobe-index/
  • Laporan itu juga memerlukan pengukuran keselamatan perisian yang lebih baik. ONCD percaya: Metrik yang lebih baik membolehkan penyedia teknologi merancang, meramal dan mengurangkan kelemahan yang lebih baik sebelum ia menjadi masalah.
  • Laporan itu juga mengkaji misi Apollo 13, yang NASA klasifikasikan sebagai "kegagalan yang berjaya." Misi itu sendiri mengalami kegagalan besar, dan ketiga-tiga angkasawan itu membuat pembaikan sementara dan mengurangkan beberapa masalah untuk pulang dengan selamat. Laporan itu menyatakan: Kod keselamatan memori adalah sangat penting untuk program angkasa lepas. Penjelajahan angkasa lepas manusia harus menggunakan bahasa yang selamat memori, bahasa yang sedekat mungkin dengan inti untuk mengelakkan kemalangan pada masa hadapan.
  • Apabila semakin banyak dunia menjadi digital, pengekodan yang lebih baik menjadi semakin penting dan kod yang buruk boleh digunakan dengan niat jahat.
  • Rust Language
Bahasa Rust ialah bahasa pengaturcaraan yang disusun untuk kegunaan umum yang diketuai oleh Mozilla. Kriteria reka bentuk ialah "keselamatan, keselarasan dan kepraktisan" dan menyokong gaya pengaturcaraan berfungsi, serentak, prosedur dan berorientasikan objek.

Kelebihan bahasa Rust yang paling menonjol ialah ia boleh memberikan jaminan keselamatan memori tanpa kehilangan prestasi tambahan. Dalam proses pembangunan bahasa pengaturcaraan peringkat sistem tradisional (C/C++), ranap atau pepijat yang disebabkan oleh pelbagai ralat memori sering berlaku, seperti penunjuk nol, penunjuk liar, kebocoran memori, memori di luar sempadan, segfault, perlumbaan data, dan lelaran Kegagalan peranti, dsb.

Masalah ingatan ialah bahaya tersembunyi utama yang menjejaskan kestabilan dan keselamatan program, dan merupakan faktor utama yang mempengaruhi kecekapan pembangunan. Dua gergasi teknologi utama Google dan Microsoft telah menyatakan bahawa 70% daripada isu keselamatan program dalam produk penting mereka adalah disebabkan oleh isu ingatan, dan kedua-dua syarikat gergasi sedang mempertimbangkan untuk menggunakan bahasa Rust untuk menyelesaikan isu keselamatan memori.

Selain itu, Rust juga mempunyai keupayaan merentas platform yang sangat baik, menyokong kompilasi silang, dan juga mesra kepada persekitaran terbenam.

Walau bagaimanapun, bahasa Rust juga mempunyai beberapa kelemahan yang rumit.

Pertama sekali, kerana Rust mempunyai beberapa sintaks khas, agak sukar untuk pemula untuk bermula, seperti "seumur hidup". Sebagai perbandingan, bahasa seperti Python dan Java lebih mudah dan mudah dipelajari. Tetapi jika anda sudah mengetahui bahasa C++, mempelajari bahasa Rust adalah lebih mudah kerana ia meminjam banyak sintaks C++.

Kedua, penyemakan pengkompil bahasa Rust sangat ketat, dan kebanyakan proses pembangunan dibelanjakan untuk menyelesaikan masalah kompilasi. Walau bagaimanapun, setelah kompilasi diluluskan, pembangun tidak perlu bimbang tentang keselamatan memori, kebocoran memori dan sakit kepala lain, dan hanya perlu menumpukan pada logik perniagaan.

Atas ialah kandungan terperinci Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah "dipilih sendiri" untuk keselamatan ingatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam