Chromium дахь аюулгүй байдлын асуудлын 70% нь санах ойн алдаанаас үүдэлтэй

Chromium төслийн хөгжүүлэгчид дүн шинжилгээ хийсэн 912 оноос хойш Chrome-ын тогтвортой хувилбаруудад 2015 өндөр эрсдэлтэй, чухал эмзэг байдлыг илрүүлсэн бөгөөд тэдгээрийн 70% нь санах ойн аюулгүй байдлаас (C/C++ код дээр заагчтай ажиллахад гарсан алдаа) үүссэн гэж дүгнэсэн. Эдгээр асуудлын тал хувь нь (36.1%) нь санах ойг сулласны дараа буферт хандсанаас үүдэлтэй (үнэгүй ашиглах).

Chromium дахь аюулгүй байдлын асуудлын 70% нь санах ойн алдаанаас үүдэлтэй

Chromium-ийг зохион бүтээхдээ анх ийм байсан тавьсанкодонд алдаа гарч болзошгүй тул эмзэг байдлын үр дагаврыг хязгаарлахын тулд хамгаалагдсан хязгаарлагдмал орчны тусгаарлалтыг ашиглахад ихээхэн анхаарал хандуулсан. Одоогийн байдлаар энэ технологийг ашиглах боломжууд боломжийнхоо хязгаарт хүрсэн бөгөөд нөөцийн хэрэглээний үүднээс цаашлаад үйл явц болгон хуваах нь боломжгүй юм.

Кодын баазын аюулгүй байдлыг хангахын тулд Google мөн "хоёрын дүрэм", үүний дагуу аливаа нэмэлт код нь баталгаажаагүй оролтын өгөгдөлтэй ажиллах, аюулгүй програмчлалын хэл (C/C++) ашиглах, өндөр эрхтэйгээр ажиллах гэсэн гурван нөхцлийн хоёроос илүүгүй шаардлагыг хангасан байх ёстой. Энэ дүрэм нь гадаад өгөгдлийг боловсруулах кодыг хамгийн бага давуу эрх болгон багасгах (тусгаарлах) эсвэл аюулгүй програмчлалын хэлээр бичих ёстой гэсэн үг юм.

Кодын баазын аюулгүй байдлыг улам сайжруулахын тулд кодын санд санах ойн алдаа гарахаас урьдчилан сэргийлэх төслийг эхлүүлсэн. Гурван үндсэн арга байдаг: санах ойг аюулгүй ажиллуулах функц бүхий C++ номын санг бий болгох, техник хангамжийн хамгаалалтын механизмыг ашиглан хог цуглуулагчийн хамрах хүрээг өргөжүүлэх. Mte (Санах ойн тэмдэглэгээний өргөтгөл) болон санах ойтой аюулгүй ажиллах боломжийг олгодог хэлээр бичих бүрэлдэхүүн хэсгүүд (Java, Kotlin, JavaScript, Rust, Swift).

Ажил хоёр чиглэлд чиглэгдэх төлөвтэй байна.

  • Гүйцэтгэлд сөрөг нөлөө үзүүлэхгүй (нэмэлт хязгаарлалтын шалгалт, хог цуглуулах) C++ хөгжүүлэлтийн процесст мэдэгдэхүйц өөрчлөлт орсон. Түүхий заагчийн оронд төрлийг ашиглахыг санал болгож байна MiraclePtr, энэ нь гүйцэтгэл, санах ойн зарцуулалт, тогтвортой байдалд мэдэгдэхүйц сөрөг нөлөө үзүүлэхгүйгээр аюулгүй байдлын аюул занал учруулахгүй сүйрлийн дараа ашиглах боломжтой алдаануудыг багасгах боломжийг олгодог.
  • Эмхэтгэх үед санах ойн аюулгүй байдлын шалгалтыг хийхэд зориулагдсан хэлийг ашиглах нь (код гүйцэтгэх явцад ийм шалгалтын гүйцэтгэлд үзүүлэх сөрөг нөлөөллийг арилгах боловч шинэ хэл дээрх кодтой кодын харилцан үйлчлэлийг зохион байгуулахад нэмэлт зардал гарах болно) C++).

Санах ойд аюулгүй номын санг ашиглах нь хамгийн энгийн боловч үр ашиг багатай арга юм. Rust дээр кодыг дахин бичих нь хамгийн үр дүнтэй боловч маш үнэтэй арга гэж тооцогддог.

Chromium дахь аюулгүй байдлын асуудлын 70% нь санах ойн алдаанаас үүдэлтэй

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх