70% masalah keamanan ing Chromium disebabake kesalahan memori

Pangembang proyek Chromium dianalisis 912 kerentanan berisiko tinggi lan kritis sing diidentifikasi ing rilis stabil Chrome wiwit 2015, lan nyimpulake yen 70% kasebut disebabake ora aman ing memori (kesalahan nalika nggarap penunjuk ing kode C / C ++). Setengah saka masalah iki (36.1%) disebabake akses menyang buffer sawise mbebasake memori sing digandhengake karo (nggunakake sawise-free).

70% masalah keamanan ing Chromium disebabake kesalahan memori

Nalika ngrancang Chromium wiwitane dekek, sing bisa kanggo kasalahan katon ing kode, supaya emphasis amba diselehake ing nggunakake isolasi kothak wedhi kanggo matesi jalaran saka vulnerabilities. Saiki, kemungkinan nggunakake teknologi iki wis tekan watesan kemampuane lan fragmentasi luwih lanjut dadi proses ora praktis saka sudut pandang konsumsi sumber daya.

Kanggo njaga keamanan basis kode, Google uga ngetrapake "aturan loro", miturut kode sing ditambahake kudu ora luwih saka rong saka telung syarat: nggarap data input sing ora valid, nggunakake basa pamrograman sing ora aman (C / C ++) lan mlaku kanthi hak istimewa sing luwih dhuwur. Aturan iki nuduhake yen kode kanggo ngolah data eksternal kudu dikurangi dadi hak istimewa minimal (terisolasi) utawa ditulis nganggo basa pamrograman sing aman.

Kanggo luwih ningkatake keamanan basis kode, sawijining proyek wis diluncurake kanggo nyegah kesalahan memori katon ing basis kode. Ana telung pendekatan utama: nggawe perpustakaan C ++ kanthi fungsi kanggo operasi memori sing aman lan ngembangake ruang lingkup pengumpul sampah, nggunakake mekanisme perlindungan hardware. Mte (Ekstensi Tagging Memori) lan komponen nulis ing basa sing njamin kerja sing aman karo memori (Jawa, Kotlin, JavaScript, Rust, Swift).

Dikarepake karya bakal fokus ing rong wilayah:

  • Owah-owahan sing signifikan ing proses pangembangan C ++, sing ora ngilangi pengaruh negatif ing kinerja (pemeriksaan wates tambahan lan koleksi sampah). Tinimbang penunjuk mentah, disaranake nggunakake jinis kasebut AjaibPtr, sing ngijini sampeyan kanggo ngurangi kesalahan nggunakake-sawise-free exploitable kanggo tubrukan sing ora nuduhke ancaman keamanan, tanpa impact negatif ngelingke ing kinerja, konsumsi memori lan stabilitas.
  • Panganggone basa sing dirancang kanggo nindakake pemeriksaan keamanan memori ing wektu kompilasi (bakal ngilangi pengaruh negatif ing kinerja sing ana ing pamriksan kasebut sajrone eksekusi kode, nanging bakal nyebabake biaya tambahan kanggo ngatur interaksi kode ing basa anyar kanthi kode ing C++).

Nggunakake perpustakaan sing aman memori minangka cara sing paling gampang, nanging uga kurang efisien. Kode nulis ulang ing Rust dirating minangka cara sing paling efektif, nanging uga larang banget.

70% masalah keamanan ing Chromium disebabake kesalahan memori

Source: opennet.ru

Add a comment