Android 14-მა შეიძლება დაამატოს ახალი ბეტა ფუნქცია, სახელწოდებით „მეხსიერების გაფართოებული დაცვა“, რომელსაც შეუძლია დაიცვას მეხსიერების უსაფრთხოების შეცდომები თავსებად მოწყობილობებზე.
მეხსიერების უსაფრთხოება ბოლო დროს Google-ისთვის მთავარი პრიორიტეტია, რადგან მეხსიერების უსაფრთხოების შეცდომები, როგორც წესი, პროგრამული უზრუნველყოფის შემუშავების ყველაზე მწვავე ხარვეზებია. ფაქტობრივად, მეხსიერების უსაფრთხოების დაუცველობა იყო მძიმე Android-ის უმეტესი ნაწილი დაუცველობა 2022 წლამდე, როდესაც Google-მა დაწერა Android-ის ახალი მშობლიურის მნიშვნელოვანი ნაწილი კოდი -ში Rust პროგრამირების ენა C/C++-ის ნაცვლად. Google მუშაობს Android-ში მეხსიერების უსაფრთხოების ხარვეზების შესამცირებლად სხვა საშუალებების მხარდაჭერაზე, რომელთაგან ერთ-ერთს მეხსიერების ტეგირება ეწოდება. გაშვებულ მხარდაჭერილ მოწყობილობებზე Android 14, შესაძლოა არსებობდეს ახალი „მეხსიერების გაფართოებული დაცვა“ პარამეტრი, რომელსაც შეუძლია ამ ფუნქციის გადართვა.
Memory Tagging Extension (MTE) Arm v9 CPU-ების სავალდებულო ტექნიკის ფუნქციაა, რომელიც იცავს მეხსიერებისგან. უსაფრთხოების ხარვეზები (გაშვების დროის მცირე ხარჯის ზედმეტად) მეხსიერების შესახებ დეტალური ინფორმაციის მიწოდებით დარღვევები.
როგორც Google განმარტავს, „მაღალ დონეზე, MTE იტებს მეხსიერების თითოეულ განაწილებას/განაწილებას დამატებითი მეტამონაცემებით. ის ანიჭებს ტეგს მეხსიერების მდებარეობას, რომელიც შემდეგ შეიძლება ასოცირებული იყოს მაჩვენებლებთან, რომლებიც მიუთითებენ ამ მეხსიერების მდებარეობაზე. გაშვების დროს CPU ამოწმებს, რომ მაჩვენებელი და მეტამონაცემების ტეგები ემთხვევა თითოეულ ჩატვირთვასა და შენახვას.Google მუშაობს MTE-ის მხარდასაჭერად Android პროგრამული უზრუნველყოფის დასტაზე რამდენიმე გამოშვებისთვის. Android 12-ში, სკუდომ, Android-ის გროვის გამანაწილებელმა, დაამატა მხარდაჭერა სამი MTE ოპერაციული რეჟიმისთვის თავსებადი მოწყობილობებზე: სინქრონული რეჟიმი, ასინქრონული რეჟიმი და ასიმეტრიული რეჟიმი. Google-მა ასევე შესაძლებელი გახადა MTE სისტემის პროცესების ჩართვა მშენებლობის დროს ან სისტემის თვისებების და/ან გარემოს ცვლადების მეშვეობით. აპლიკაციებს შეუძლიათ მიიღონ მონაწილეობა MTE-ის მხარდაჭერაზე android: memtagMode ატრიბუტი. როდესაც MTE ჩართულია Android-ში პროცესებისთვის, მეხსიერების უსაფრთხოების შეცდომების მთელი კლასი, როგორიცაა გამოყენების შემდეგ თავისუფალი და ბუფერული გადადინება, იწვევს ავარიას ჩუმი მეხსიერების გაფუჭების ნაცვლად.
In Android 13, Google-მა დაამატა ABI მომხმარებელთა სივრცისთვის მოთხოვნილი MTE ოპერაციული რეჟიმის ჩამტვირთველთან კომუნიკაციისთვის. ეს შეიძლება გამოყენებულ იქნას MTE-ის გასააქტიურებლად თავსებად მოწყობილობებზე, რომლებიც არ იგზავნება ნაგულისხმევად ჩართულით. ან ალტერნატიულად შეიძლება გამოყენებულ იქნას მისი გამორთვა თავსებად მოწყობილობებზე, რომლებშიც ის ჩართულია ნაგულისხმევი. Android 13-ში ro.arm64.memtag.bootctl_supported სისტემის თვისების „true“-ზე დაყენება სისტემას ეუბნება, რომ ჩამტვირთავი მხარს უჭერს ABI-ს და ასევე ააქტიურებს ღილაკს, რათა გამოჩნდეს Developer Options მენიუში, რომელიც მომხმარებელს საშუალებას აძლევს ჩართოს MTE შემდეგში. გადატვირთვა. ეს გამიზნული იყო დეველოპერებისთვის, რომლებსაც სურდათ შეემოწმებინათ თავიანთი აპლიკაციების ქცევა MTE ჩართულით.
თუმცა, Android 14-ში MTE-ის ჩართვა თავსებადი მოწყობილობებზე შეიძლება აღარ მოითხოვდეს Developer Options-ში ჩასვლას. თუ მოწყობილობა აღჭურვილია Arm v8.5+ CPU MTE-ის მხარდაჭერით, მოწყობილობის დანერგვა მხარს უჭერს ABI-ს მოთხოვნილი MTE ოპერაციული რეჟიმის ჩამტვირთველთან კომუნიკაციისთვის და ახალი სისტემის თვისება „ro.arm64.memtag.bootctl_settings_toggle“ დაყენებულია ჭეშმარიტად, შემდეგ შეიძლება გამოჩნდეს ახალი „მეხსიერების გაფართოებული დაცვა“ გვერდიდან: პარამეტრები > უსაფრთხოება და კონფიდენციალურობა > მეტი უსაფრთხოება პარამეტრები. ამ გვერდის გაშვება ასევე შესაძლებელია ახლის საშუალებით ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS განზრახვის მოქმედება.
აღსანიშნავია, რომ Tensor G2 ჩიპსეტი ში Google Pixel 7 სერია იყენებს Arm v8.2 CPU ბირთვებს, ამიტომ ისინი არ უჭერენ მხარს MTE-ს. თუ მომავალი Google Pixel 8 სერია გამოიყენებს ახალ Arm v9 CPU ბირთვებს, როგორც ამას ბევრი სხვა ფლაგმანი Android მოწყობილობა აკეთებს, მაშინ მათ ექნებათ აპარატურა, რომელსაც შეუძლია MTE-ის მხარდაჭერა. ჯერ კიდევ გასარკვევია, ეს "მეხსიერების გაფართოებული დაცვის" ფუნქცია რეალურად გახდება თუ არა სტაბილურ გამოშვებაში.
მადლობა უსაფრთხოების მკვლევარს @flawedworlddev ამ სტატიაში მათი დახმარებისთვის!