Зарыг хаах

Санах ойн аюулгүй байдал нь сүүлийн үед Google-ийн нэн тэргүүний асуудал болоод байгаа тул санах ойн алдаа нь програм хангамж боловсруулахад хамгийн ноцтой асуудал болж байна. Үнэн хэрэгтээ энэ хэсгийн эмзэг байдал нь чухал эмзэг байдлын дийлэнх хувийг хариуцдаг байсан AndroidӨнгөрсөн жил Google шинэ эх кодын нэлээд хэсгийг бий болгох хүртэл AndroidC/C++-ийн оронд Rust програмчлалын хэл дээр. Програм хангамжийн аварга компани нь өөрийн систем дэх санах ойн эмзэг байдлыг багасгах бусад хэрэгслийг дэмжихээр ажиллаж байгаа бөгөөд тэдгээрийн нэг нь санах ойн тэмдэглэгээ гэж нэрлэгддэг. Системтэй дэмжигдсэн төхөөрөмжүүд дээр Android 14-т энэ функцийг сэлгэх боломжтой Нарийвчилсан санах ойн хамгаалалт хэмээх шинэ тохиргоо байж магадгүй.

Санах ойн тэмдэглэгээний өргөтгөл (MTE) нь Arm v9 архитектурт суурилсан процессоруудын заавал байх техник хангамжийн онцлог бөгөөд нарийвчилсан мэдээллийг өгдөг. informace санах ойн эвдрэлийн талаар, санах ойн аюулгүй байдлын алдаанаас хамгаалдаг. Google-ийн тайлбарласнаар: "Өндөр түвшинд MTE нь санах ойн хуваарилалт / хуваарилалт бүрийг нэмэлт мета өгөгдөлтэй тэмдэглэдэг. Санах ойн байршилд маркер оноож, дараа нь тухайн санах ойн байршилд хамаарах заагчтай холбогдож болно. Ажиллаж байх үед процессор нь заагч болон мета өгөгдлийн тэмдэглэгээг ачаалж, хадгалах бүрт таарч байгаа эсэхийг шалгадаг."

Google программ хангамжийн багцыг бүхэлд нь MTE-г дэмжихээр ажиллаж байна Android урт хугацаанд. руу Androidu 12 нь Scudo санах ойн хуваарилагчийг нэмсэн бөгөөд тохирох төхөөрөмжүүд дээр ажиллах гурван MTE горимыг дэмждэг: синхрон горим, асинхрон горим, тэгш бус горим. Мөн компани нь системийн шинж чанар ба/эсвэл орчны хувьсагчаар дамжуулан системийн процессуудад MTE-г идэвхжүүлэх боломжийг олгосон. Програмууд нь атрибутаар дамжуулан MTE дэмжлэгийг нэмж болно android: memtagMode. доторх процессуудад MTE идэвхжсэн үед Androidu, Use-After-Free болон буфер халих зэрэг санах ойн аюулгүй байдлын алдааны бүхэл ангиуд нь чимээгүй санах ойн эвдрэлийн оронд эвдрэл үүсгэдэг.

Do Androidu 13 Google нь ачаалагчтай хүссэн MTE үйлдлийн горимыг дамжуулахын тулд Userspace Application Binary Interface (ABI)-г нэмсэн. Үүнийг MTE-г анхдагчаар идэвхжүүлээгүй тохирох төхөөрөмжүүд дээр MTE-г идэвхжүүлэх эсвэл анхдагчаар идэвхжүүлсэн тохирох төхөөрөмжүүдэд үүнийг идэвхгүй болгоход ашиглаж болно. ro.arm64.memtag.bootctl_supported системийн шинж чанарыг систем дээр "true" болгож тохируулж байна Android 13 системд ачаалагч нь ABI-г дэмждэг бөгөөд хөгжүүлэгчийн сонголтуудын цэсэн дэх товчлуурыг идэвхжүүлсэн бөгөөд энэ нь хэрэглэгчийг дараагийн дахин ачаалах үед MTE-г идэвхжүүлэх боломжийг олгосон.

V Androidu 14 Гэсэн хэдий ч, тохирох төхөөрөмжүүд дээр MTE-г идэвхжүүлэхийн тулд хөгжүүлэгчийн сонголтуудын цэс рүү орох шаардлагатай байж магадгүй юм. Хэрэв төхөөрөмж нь MTE дэмжлэгтэй Arm v8.5+ процессорыг ашигладаг бол төхөөрөмжийн хэрэгжилт нь ачаалагч руу хүссэн MTE үйлдлийн горимыг дамжуулахад зориулсан ABI-г дэмждэг бөгөөд шинэ ro.arm64.memtag.bootctl_settings_toggle системийн шинж чанарыг "үнэн" гэж тохируулсан байна. , дараа нь шинэ хуудас Нарийвчилсан санах ойн хамгаалалт v Тохиргоо → Аюулгүй байдал ба нууцлал → Хамгаалалтын нэмэлт тохиргоо. Мөн энэ хуудсыг шинэ ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS үйлдлээр нээх боломжтой.

Сонирхолтой нь Google Pixel 2 цувралыг тэжээдэг Tensor G7 чипсет нь Arm v8.2 процессорын цөмийг ашигладаг бөгөөд энэ нь MTE-г дэмждэггүй гэсэн үг юм. Хэрэв удахгүй гарах Google Pixel 8 цуврал нь бусад тэргүүлэх цувралуудын нэгэн адил шинэ Arm v9 цөмийг ашиглах болно androidутаснууд, дараа нь тэдний техник хангамж нь MTE-г дэмжих чадвартай байх ёстой. Гэсэн хэдий ч "санах ойн дэвшилтэт хамгаалалт" функц нь үүнийг тогтвортой хувилбарт хүргэх эсэх нь асуулт хэвээр байна Android14 онд

Өнөөдрийн хамгийн их уншсан

.