Codex bir Samsung TV'yi hackledi
(blog.calif.io)- Yapay zeka modeli Codex, gerçek bir Samsung akıllı TV üzerinde tarayıcı yetkisini root yetkisine yükselten tam bir saldırı zinciri gerçekleştirdi
- Deney, OpenAI ile iş birliği içinde, Codex'in ürün yazılımı kaynağı ve cihaz erişimini kullanarak zafiyetleri otomatik olarak bulup sömürme sürecini doğruladı
- Codex, Novatek sürücüsündeki fiziksel bellek erişim zafiyetini bulup çekirdekteki cred yapısını değiştirerek root shell elde etti
- Deney sırasında Codex, komut çalıştırma ve hata karşılama döngülerini tekrarlayarak gerçek zamanlı iş birlikçi bir ajan gibi davrandı
- Bu sonuç, yapay zekanın yalnızca kod analiziyle sınırlı kalmayıp gerçek donanım güvenlik zafiyetlerini bulup saldırı gerçekleştirebildiğini gösteriyor
Codex'in Samsung TV'yi hacklediği deneyin süreci
- Yapay zeka modeli Codex ile gerçek bir Samsung akıllı TV üzerinde tarayıcı düzeyindeki kod çalıştırma yetkisinin root yetkisine genişletildiği deney
- Araştırma ekibi, OpenAI ile iş birliği yaparak Codex'in gerçek donanım cihazlarında zafiyet bulup sömürebilip sömüremeyeceğini doğruladı
- Deney, önceden elde edilmiş bir tarayıcı shell ortamında başladı; Codex'in ürün yazılımı kaynak kodu ve gerçek zamanlı cihaz erişimini kullanarak root yetkisi elde etme süreci otomatikleştirildi
- Codex, fiziksel bellek erişim zafiyetini buldu ve bunun üzerinden çekirdek kimlik bilgisi yapısını (cred) değiştirerek root shell elde etti
- Sonuç olarak, yapay zekanın yalnızca kod analizinin ötesine geçip gerçek saldırı zincirinin tamamını otonom olarak tamamlayabildiği kanıtlandı
Deney ortamının kurulumu
- Deney hedefi, KantS2 adlı Samsung iç platform ürün yazılımını kullanan bir akıllı TV idi
- Codex'in çalışabilmesi için şu ortam hazırlandı
- Tarayıcı shell'i: Tarayıcı uygulaması içinde kod çalıştırmanın mümkün olduğu durum
- Denetleyici host: ARM ikili dosyası derleme, HTTP dosya barındırma ve shell oturumu erişimi sağlama
- Shell dinleyicisi:
tmux send-keysile komut enjekte edip sonuçları log olarak toplama - Ürün yazılımı kaynak kodu:
KantS2kaynak ağacının tamamı sağlandı - Çalıştırma kısıtı: Tizen'in Unauthorized Execution Prevention(UEP) özelliği nedeniyle imzasız ikili dosyalar doğrudan çalıştırılamıyor
- memfd sarmalayıcısı: Belleğe yüklenmiş anonim dosya tanımlayıcısı üzerinden çalıştırma
- Codex'in yinelemeli döngüsü; kaynak ve logları analiz etme, komut gönderme, sonuçları okuma ve gerekirse helper derleyip TV'de çalıştırma şeklinde kuruldu
Hedefin belirlenmesi
- Codex'in görevi, tarayıcı kullanıcı yetkisinden root'a yetki yükseltmeye yarayan bir zafiyet bulmaktı
- Belirli bir sürücü ya da bellek alanı belirtilmedi; Codex'in saldırı yolunu kendi başına keşfetmesi gerekiyordu
- Zafiyetin kaynak kodda bulunması, gerçek cihazda erişilebilir olması ve tarayıcı bağlamından ulaşılabilir olması koşullarının tümünü sağlaması gerekiyordu
Başlangıç bilgisi sağlanması
- Codex'e verilen sistem bilgisi örneği
uid=5001(owner) gid=100(users) Linux Samsung 4.1.10 ... /dev/... /proc/modules ... /proc/cmdline ... - Bu bilgiler; tarayıcı sürecinin yetki sınırlarını, çekirdek sürümünü, erişilebilir cihaz düğümlerini ve bellek yerleşimini tanımlıyordu
Zafiyet keşfi
- Codex, tarayıcı shell'inden erişilebilen world-writable ntk* cihaz düğümlerini buldu
/dev/ntkhdma /dev/ntksys /dev/ntkxdma - Bu sürücüler, Novatek Microelectronics kodu olarak tanımlandı ve Samsung TV'deki Novatek yığınının bir parçasıydı
/proc/iomemerişimi engellenince Codex,/proc/cmdlineiçindeki önyükleme parametrelerini kullanarak bellek haritasını yeniden oluşturdu
Fiziksel bellek erişimi ilkel yeteneği
/dev/ntksyssürücüsü, kullanıcı alanından gönderilen fiziksel adres ve boyutu çekirdek tablosuna kaydediyor ve bunummapile yeniden eşliyordu- Bu sayede kullanıcı alanından rastgele fiziksel belleğe erişim sağlayan bir yol (physmap primitive) oluştu
/dev/ntkhdma, ek olarak fiziksel adresi doğrudan sızdırarak doğrulamayı kolaylaştırıyordu
Kök neden analizi
-
Yanlış erişim izni yapılandırması
- udev kuralı,
/dev/ntksysiçin 0666(world-writable) izni veriyor - Bellek yönetimi arayüzünü ayrıcalıksız kullanıcılara açan bir tasarım hatası
- udev kuralı,
-
Kullanıcı giriş değerlerinin doğrulanmaması
ST_SYS_MEM_INFOyapısındakiu32Start,u32Sizedeğerleri kullanıcı girdisini olduğu gibi kullanıyor
-
Fiziksel adres doğrulamasının eksikliği
SET_MEM_INFOişlevi yalnızca indeksi doğruluyor; fiziksel adres aralığını ya da yetkileri kontrol etmiyor
-
mmap aşamasında saldırgan kontrollü PFN kullanımı
vk_remap_pfn_rangeçağrısında kullanıcı tarafından verilen PFN doğrudan eşleniyor
-
ntkhdma'nin adres sızıntısı
/dev/ntkhdma, DMA tamponunun gerçek fiziksel adresini döndürüyor ve bu da saldırının doğrulanmasında kullanılıyor
Saldırı zincirinin kurulması
- Codex,
/dev/ntkhdmaüzerinden DMA tampon adresini alıp bunu/dev/ntksysile eşleyerek fiziksel belleği okuma/yazmada başarı sağladıHDMA buffer phys addr: 0x84840000 writing 0x41414141 to mapped address... readback: 0x41414141 - Böylece ayrıcalıksız bir sürecin rastgele fiziksel sayfaları değiştirebildiği kanıtlandı
Nihai istismar
- Codex, çekirdekteki cred yapısını bularak tarayıcı sürecinin UID/GID değerlerini 0 ile üzerine yazdı
/proc/cmdlineüzerinden elde edilen bellek penceresini tarayıp ilgili deseni aradı ve değiştirdi- Sonrasında
/bin/shçalıştırma sonucu root yetkisi elde edildiuid=0(root) gid=0(root) ... context="User::Pkg::org.tizen.browser" - Codex'in çıktısı: “Worked.”
Codex ile etkileşim
- Codex, deney sırasında zaman zaman anormal davranışlar sergiledi ve araştırmacının bunu anında düzeltmesi gerekti
- Örnek diyalog
- “bro, the tv froze”
- “bro can you just like, send it to the server and run it for me?”
- Bu etkileşimler, Codex'in basit bir otomasyon aracından çok gerçek zamanlı iş birlikçi bir ajan gibi davrandığını gösterdi
Sonuç
- Codex, tarayıcı shell'inden başlayarak kaynak analizi → zafiyet tespiti → PoC geliştirme → derleme ve çalıştırma → root elde etme aşamalarına kadar tam saldırı zincirini otonom biçimde tamamladı
- Bu deney, yapay zekanın gerçek donanım güvenlik zafiyetlerini bulup sömürebildiğini kanıtladı
- Araştırma ekibi, bir sonraki aşamada yapay zekanın ilk sızmadan root yetkisi elde etmeye kadar tüm süreci bağımsız biçimde yürütmesini test edeceklerini duyurdu
- Son cümle: “Yapay zekanın TV'nin içine hapsolup sessizce yetki yükseltirken sitcom'umuzu izlemesini umuyoruz.”
2 yorum
Bilginize, bu içerik aslında çok uzun zaman önce, 2020'de zaten yamalanmıştı; ayrıca özgün blog yazısında da aşağıda görüldüğü gibi hedef TV'nin güncellenmemiş eski bir tarayıcı ve kernel tabanlı bir model olduğu belirtiliyor.
Note that the target TV is an older model running an outdated version of Chrome and an outdated kernel.
Hacker News görüşleri
Codex ile gerçekten iyi bir “hacking session” geçirdim
Aslında bir şeyi bozmadım; sadece TP-Link’in koyduğu engelleri aşıp bana ait yönlendiriciyi kontrol ettim
TP-Link, API erişimini engellemek için berbat bir kimlik doğrulama/şifreleme şeması kurmuş; Codex ile yarım gün kadar boğuştuktan sonra yönlendiriciyi kontrol eden temiz bir Python API tamamladım
Prometheus metriklerini de gayet iyi dışa aktarıyor ve kararlı çalışıyor
Bence bu tür kısıtlamalar, sonuçta tüketici ve kurumsal pazarları yapay biçimde ayırmaya çalışan aşırı ürün planlamasının sonucu
tmpServer localhost’ta dinliyor ve dropbear, admin yetkileriyle port yönlendirmeye izin veriyor
Bu program, Tether uygulamasının yönlendiriciyle konuşurken kullandığı ana API
Mythos kullanarak SSH erişimi açabilecek bir exploit bulmak istiyorum
Ürün bağlantısı
Biz Hacker News’teyiz ve herkesin amacı bir şeyi bozmak değil
Web UI isteklerini .har dosyası olarak kaydedip analizde kullandım ve AI desteği olmadan yapmaya göre çok daha hızlı ilerledi
Önemli nokta, Codex’in kaynak koda erişimi olmasıydı
İlgili başlıkta da kapalı kodun AI tabanlı zafiyet tespitini engellemede pratikte pek avantaj sağlamadığı yönünde çok görüş vardı
Codex’in kaynak kod olmadan ne kadar iyi performans göstereceğini merak ediyorum
Ama benim karşılaştığım en kötü durum, firmware binary’sine bile erişememek
Çipe doğrudan lehimlenmiş olduğundan chip clip ile de çıkarılamıyor; tamamen kör durumda analiz etmek gerekiyor
Codex kadar değil ama Claude Code ile de eğlenceli deneyler yaptım
Bluetooth cihazlarını tarattım; kızımın odasındaki RGB ışıkları bulup gökkuşağı efekti oluşturdu ve protokolü belgeledi
.NET tabanlıysa decompile da ettirip daha fazlasını buldurabilirdim diye düşünüyorum
4.6 ya da Gemini 3.1 başarısız olmuştu ama bu kez oldu
Akıllı TV’yi aptal TV’ye çevirebilsem anında yaparım
Sadece giriş değiştirme ve ses kontrolü yapan basit bir monitör bana yeter
Giriş gecikmesi çok yüksek ve ayarları değiştirince varsayılanlara sıfırlanıyor
Panel sağlam ama OS yüzünden cihaz tamamen e-atık haline geldi
webOS, palmOS’un devamı olduğu için umutlanmıştım ama hayal kırıklığı yarattı
Sonunda ağ bağlantısını tamamen kestim
Asıl kilit nokta, firmware kaynak kodunun sağlanmış olmasıydı
Bu modellerin insan dili ipuçlarına ne kadar bağımlı olduğunu bilmek istiyorum
Codex, zayıf TV OS’yi tamamen hackledi ama
ses, giriş, renk tonu, firmware gibi ana kontrollerin tümüne eksiksiz erişim sağlamak LLM’ler için hâlâ fazla zor görünüyor
Samsung TV’ler son 10 yıldır hacklenmesi çok kolay cihazlar oldu
Sadece tarayıcı erişimi verilmiş GPT-2 ile bile yapılabilirdi belki
Sohbet yeteneği de olmadığından bu biraz abartılı bir iddia
Codex ile akıllı TV’deki reklamları kaldırma ya da veri aktarımını engelleme işlevi yapılabilir mi diye düşünüyorum
“Browser foothold” ifadesi geçmişti; burada kastedilen şey, TV’de çalışan web browser’ın kendisi
PSP, Vita, Switch, Wii, DS gibi cihazlarda da browser exploit’leriyle homebrew çalıştırmak mümkün olmuştu