Açık, A12 ve A13 Bionic çiplerine sahip cihazları etkiliyor :
2019’da ortaya çıkan ve A5’ten A11’e kadar olan çipleri etkileyen ‘checkm8’ açığının aksine, usbliter8 bu saldırı sınıfını bir sonraki nesle taşıyor . A11 çipi, USB sürücüsünün her paket işleminden sonra DMA işaretçisini manuel olarak sıfırlaması sayesinde bu açıktan etkilenmiyor . A14 ve sonraki çipler ise SecureROM’da USB DART (bellek koruması) yapılandırmasını doğru yaptıkları için güvende .
Hata, çipin içindeki Synopsys DWC2 USB kontrolcüsünde bulunuyor . Teknik detay şöyle:
Halka tampon işaretçi uyuşmazlığı: Kontrolcü, üst üste üç USB Setup paketini bir DMA tamponunda saklar. Her yazma işleminden sonra donanım işaretçisini veri boyutu kadar artırır. Üçüncü paketten sonra işaretçiyi sabit 24 bayt geri çeker .
Küçük paket oyunu: Kontrolcü, standart 8 bayttan küçük paketleri kabul eder ancak bunları her zaman 4 baytlık hizalanmış bloklar halinde saklar. Küçük bir paket alındığında, işaretçi artışı (gerçek veri miktarı) 24 baytlık sabit azalma ile eşleşmez ve 12 baytlık bir tampon taşması meydana gelir .
Bellek üzerine yazma: Bu, saldırganın önyükleme sırasında erişilememesi gereken SRAM bölgelerini (yığın verisi ve öbek meta verileri dahil) değiştirmesine olanak tanır .
Kod yürütme: A12 çipinde saldırgan, USB görevinin yığınındaki bir bağlantı kaydını (LR) bularak program sayacını (PC) ele geçirir. A13’te ise İşaretçi Doğrulama Kodları (PAC) işleri zorlaştırır; saldırganın bu korumayı aşmak için öbek sağlama toplamlarını ve panik sayaçlarını da atlatan çok adımlı bir teknik kullanması gerekir .
BootROM (SecureROM), çipin açıldığında çalıştırdığı ilk koddur. Çip üretimi sırasında salt okunur belleğe (ROM) kazınır ve cihaz fabrikadan çıktıktan sonra değiştirilemez . Açığın temelinde bir yazılım hatası değil, USB kontrolcüdeki donanım hatası olduğu için Apple bunu bir donanım yazılımı veya işletim sistemi güncellemesiyle kapatamaz . Tek etkili önlem, A14 veya daha yeni bir çipe sahip bir cihaza geçmek .
Açık, A12 ve A13 Bionic çiplerine sahip cihazları etkiliyor :
2019’da ortaya çıkan ve A5’ten A11’e kadar olan çipleri etkileyen ‘checkm8’ açığının aksine, usbliter8 bu saldırı sınıfını bir sonraki nesle taşıyor . A11 çipi, USB sürücüsünün her paket işleminden sonra DMA işaretçisini manuel olarak sıfırlaması sayesinde bu açıktan etkilenmiyor . A14 ve sonraki çipler ise SecureROM’da USB DART (bellek koruması) yapılandırmasını doğru yaptıkları için güvende .
Hata, çipin içindeki Synopsys DWC2 USB kontrolcüsünde bulunuyor . Teknik detay şöyle:
Halka tampon işaretçi uyuşmazlığı: Kontrolcü, üst üste üç USB Setup paketini bir DMA tamponunda saklar. Her yazma işleminden sonra donanım işaretçisini veri boyutu kadar artırır. Üçüncü paketten sonra işaretçiyi sabit 24 bayt geri çeker .
Küçük paket oyunu: Kontrolcü, standart 8 bayttan küçük paketleri kabul eder ancak bunları her zaman 4 baytlık hizalanmış bloklar halinde saklar. Küçük bir paket alındığında, işaretçi artışı (gerçek veri miktarı) 24 baytlık sabit azalma ile eşleşmez ve 12 baytlık bir tampon taşması meydana gelir .
Bellek üzerine yazma: Bu, saldırganın önyükleme sırasında erişilememesi gereken SRAM bölgelerini (yığın verisi ve öbek meta verileri dahil) değiştirmesine olanak tanır .
Kod yürütme: A12 çipinde saldırgan, USB görevinin yığınındaki bir bağlantı kaydını (LR) bularak program sayacını (PC) ele geçirir. A13’te ise İşaretçi Doğrulama Kodları (PAC) işleri zorlaştırır; saldırganın bu korumayı aşmak için öbek sağlama toplamlarını ve panik sayaçlarını da atlatan çok adımlı bir teknik kullanması gerekir .
BootROM (SecureROM), çipin açıldığında çalıştırdığı ilk koddur. Çip üretimi sırasında salt okunur belleğe (ROM) kazınır ve cihaz fabrikadan çıktıktan sonra değiştirilemez . Açığın temelinde bir yazılım hatası değil, USB kontrolcüdeki donanım hatası olduğu için Apple bunu bir donanım yazılımı veya işletim sistemi güncellemesiyle kapatamaz . Tek etkili önlem, A14 veya daha yeni bir çipe sahip bir cihaza geçmek .