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.
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,
Sumber: https://www.cisa.gov/sites/default/files/2023-12/ The-Case -for-Memory-Safe-Roadmaps-508c.pdf
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.
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.
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.
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
Ruby
Delphi/Object Pascal
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!