2 puan yazan GN⁺ 2024-10-08 | 2 yorum | WhatsApp'ta paylaş
  • Yalnızca piezoelektrik bir sigara çakmağı kullanarak bir dizüstü bilgisayarın DDR3 bellek veri yolunda elektromanyetik hatalar tetiklenip, yetkisiz bir Linux kullanıcısından root shell elde etmeye kadar giden yerel yetki yükseltme deneyi başarıyla gerçekleştirildi
  • Samsung S3520 dizüstü bilgisayarın SODIMM veri pinine 15Ω direnç ve anten görevi gören bir tel lehimlendi; yakında çakmak tıklatılarak belirli bitlerin ters dönmesine yol açan bellek hataları oluşturuldu
  • CPython deneyinde DQ7 hattındaki hata, nesne işaretçisinin bit 7 değerini ters çevirerek bytes içindeki sahte bir bytearray yapısına referans vermesini sağladı ve keyfi bellek okuma/yazma primitifi kuruldu
  • Linux yetki yükseltme, sayfa tablolarını fiziksel belleğe yoğun biçimde püskürttükten sonra PTE okuması sırasında bit 29 hatası tetikleyip kullanıcı tarafından erişilebilir bir eşlemenin sayfa tablosunu göstermesini sağlama yöntemiyle çalışıyor
  • Başarıdan sonra /usr/bin/su dosyasının ilk sayfası fiziksel bellekte bulunup küçük bir setuid root ELF ile değiştirilerek sayfa önbelleği kirletildi; deney ortamında güvenilirlik SSH ile bağlanıldığında hissedilir olarak yaklaşık %50, grafik shell’de ise yaklaşık %20 idi

Çakmak tabanlı EMFI deneyinin çıkış noktası

  • Yazılım hatası olmadığında bile hata enjeksiyonu (fault injection) ile istisnai davranışlar oluşturulabilir
    • Hata enjeksiyonu yöntemleri arasında yazılım kontrollü veri bozma, güç glitch’i, saat glitch’i, elektromanyetik darbe ve lazer yer alır
  • Donanım hata enjeksiyonu genellikle hatanın verileceği zaman ve konumda hassasiyet gerektirir; bu da özel ekipman ve maliyet demektir
  • Çıkış noktası, piezoelektrik bir BBQ ateşleyiciyi bir indüktöre bağlayıp düşük bütçeli bir elektromanyetik hata enjeksiyonu (EMFI) aracı olarak kullanma yaklaşımıydı
    • Daha önce Arduino üzerinde çalışan yazılım AES uygulamasına DFA ile saldırmakta başarı sağlanmıştı
  • Nintendo Switch 2 duyurusunun yaklaştığı bağlamda, Switch 1’e benzer sistem yazılımı ve yazılım hatası eksikliği beklenerek düşük maliyetli EMFI deneyi yeniden yürütüldü

Test hedefi ve DDR veri yolu hatası

  • Test hedefi, Intel i3-2310M CPU ve 1GB DDR3 RAM taşıyan, 2011 üretimi Samsung S3520 dizüstü bilgisayardı
    • Hafif bir masaüstü Linux dağıtımı olan Arch’ı çalıştırabiliyor ve zarar görse de büyük sorun yaratmayacak bir cihaz olduğu için seçildi
  • Amaç, enjekte edilen donanım hatalarına dayalı çalışan bir yerel yetki yükseltme exploit’i yazmaktı
  • Fiziksel olarak en savunmasız nokta olarak DRAM belleği sistemle bağlayan DDR veri yolu seçildi
    • SODIMM üzerinde okuma/yazma veri bitlerini taşıyan 64 DQ pini, DQ0~DQ63 bulunur
  • Deney düzeneği, DQ26 olduğu tahmin edilen pine 15Ω direnç ve bir tel lehimlenen bir yapıdaydı
    • Tel, anten gibi çevredeki elektromanyetik girişimi alıp veri yoluna iletir
    • Direnç, normal bellek çalışmasını sürekli bozmamak için girişim şiddetini sınırlayan bir unsurdur; aslında gerekli olmayabilir
  • Sıradan bir piezoelektrik çakmağı anten telinin yakınında tıklatmak bile memtest’te kararlı şekilde bellek hataları üretmeye yetti
    • Gösterilen hataların tamamı bit 29’un ters dönmesi biçimindeydi
    • Lehimlenen pinin DQ26 olduğu tahmin edilse de bit 29’un ters dönmesinin nedeni pinin yanlış sayılması ya da anakartın veri hatlarını farklı bağlamış olması olabilir
  • Parmak tepki hızı düzeyinde olduğundan hata enjeksiyonu için zamanlama kontrolü hassas değildir
    • Hata oluştuğunda belirli bir 64 bit okuma veya yazmada aynı bitin ters dönme olasılığı yüksektir

CPython’da bit flip’ten yararlanma

  • İlk deney, CPython’da sandbox kaçışı biçiminde bir exploit oluşturmaktı
    • CPython’ın kendisi bir sandbox olmadığından bu gerçek bir güvenlik sınırını aşmak değildir; aşina olunan iç yapıları kullanan bir hazırlık aşamasıdır
  • Bu deneyde, önceki fotoğraftaki DQ26 yerine DQ7’ye lehimlenen tel kullanıldı
  • CPython nesneleri çöp toplama heap’inde bulunur; nesne başlığında refcount ve tür nesnesi işaretçisi yer alır, ardından türe özgü alanlar gelir
    • bytes nesnesinde uzunluk alanının ardından verinin kendisi aynı heap tahsisi içinde bulunur
    • bytearray nesnesinde uzunluk alanının ardından gerçek veri depolama tamponunu gösteren bir işaretçi bulunur
  • Temel strateji, bytes nesnesinin içine veri olarak sahte bir bytearray yapısı koymaktır
    • CPython bu sahte nesneye referans vermesi için kandırılırsa, saldırganın seçtiği bytearray uzunluğu ve işaretçi alanlarıyla keyfi bellek okuma/yazma mümkün olur
  • bit 7’yi ters çeviren hata, 64 bit sözcükte işaretçiye 128 ekleme veya çıkarma etkisi yaratır
    • Sahte bytearray, bytes nesnesinin içinde +128 bayt ofsete yerleştirilirse, bytes nesnesi işaretçisi hata sonucu sahte bytearray işaretçisine dönüşebilir
    • Bu dönüşüm %50 olasılıkla istenen yönde gerçekleşir
  • Önemli nokta, bellek içeriğinin kendisinin değil, bellek veri yolundaki okuma/yazma işlemlerinin glitch’e uğratılmasıdır
    • Rowhammer gibi depolanmış verinin değiştiği bir yöntem değil; veri yolunda devam eden erişim bozulur
  • İstenen işaretçi erişiminin veri yolu etkinliğinin büyük bölümünü oluşturması için aynı nesne referansı büyük bir tuple’a doldurulur
    • CPU önbelleği DRAM erişimini azalttığından, 3MiB önbellekten daha büyük bir yapı sıralı erişilerek her seferinde DRAM’den okuma yapılması sağlanır
    • Python’daki is, işaretçi karşılaştırması gibi davranır ve işaretçinin değişip değişmediğini doğrulamak için kullanılır
  • CPython exploit’inin tüm kaynak kodu ddr3_dq7.py dosyasındadır
    • TESTING değişkeniyle donanım olmadan yazılımda bit flip simüle edilebilir

Linux yetki yükseltme için gereken bellek yapıları

  • Linux yerel yetki yükseltmede önbellek, sanal bellek ve sayfa tabloları ile TLB temel yapılar olarak kullanılır
  • DRAM görece yavaş olduğundan CPU L1, L2, L3 önbelleklerini kullanır
    • Deney dizüstü bilgisayarının L3 önbelleği 3MiB’dir
    • Önbellek isabetinde DRAM’e erişilmez; DRAM okuması için önbellek ıskalaması gerekir
  • Önbellek açısından en küçük birim önbellek satırıdır; bu dizüstü bilgisayarda 64 bayttır
    • Tek bir bayt okunsa bile veri önbellekte değilse 64 baytlık DRAM okuması gerçekleşir
    • DDR veri yolu 64 bit genişliğinde olduğundan bu okuma 8 ardışık erişimli burst olarak işlenir
  • x86-64’te sanal bellek, 4KiB sayfalar ve ağaç biçimli sayfa tabloları ile uygulanır
    • Bu platformda 4 seviyeli sayfa tablosu vardır
    • Her sayfa tablosu 4KiB’lik bir sayfadır ve 512 adet 64 bit PTE içerir
    • Üst seviye PTE’ler bir sonraki seviye sayfa tablosunun fiziksel adresini gösterir; level 0 PTE ise hedef fiziksel sayfayı gösterir
    • Kök sayfa tablosunun fiziksel adresi CR3 CPU yazmacında tutulur
  • PTE’de gereken kısım fiziksel adres alanıdır
    • Bayrak bitleri maskelendiğinde geriye sayfa hizalı fiziksel bellek adresi kalır
  • TLB, sanal adresten fiziksel adrese sayfa eşlemelerini önbelleğe alan CPU içi donanımdır
    • Deney dizüstü bilgisayarının kesin TLB boyutu bilinmiyor, ancak yaklaşık 1024 giriş düzeyinde görünüyor

Sayfa tablolarını kullanıcı belleğine çekme

  • Linux exploit stratejisi, Mark Seaborn’un Rowhammer exploit unsurlarından ilham aldı
  • Amaç, kendi sürecinin sayfa tablolarını kullanıcı erişimli belleğe eşlemekti
    • Böylece PTE’ler değiştirilerek keyfi fiziksel belleğe erişilebilir
  • Fiziksel bellek yerleşimini hassas biçimde kontrol etmek yerine, fiziksel belleğin tam %50’si level-0 sayfa tablolarıyla dolduruldu
  • Ardından TLB’yi aşmak için R/W eşlemelerine tekrar tekrar erişildi
    • Eşleme sayısı TLB boyutunu aştığı için her erişimde sayfa tablosu yürüyüşü zorlanabilir
    • Bu yürüyüş sırasında level-0 PTE okumasında bit 29 hatası oluşturmak hedeflenir
  • bit 29 ters döndüğünde PTE’nin gösterdiği fiziksel adres 512MiB ofset kadar değişir
    • Şanslı olunursa değişen adres daha önce püskürtülen level-0 sayfa tablolarından birini gösterir
    • Bu durumda normalde sıradan bir R/W sayfası gibi görünmesi gereken eşleme, sayfa tablosunu sıradan bir R/W sayfası gibi açığa çıkarır
  • Teoride bit 29’dan bit 12’ye kadar herhangi bir bit flip çalışabilir
    • bit 12, 4KiB ofsete karşılık gelir
    • Temel nokta, PTE’nin “başka bir yeri” göstermesi ve fiziksel belleğin yaklaşık %50’sinin istismar edilebilir sayfa tablolarıyla doldurulmuş olmasıdır
  • Anten teli lehimleme zorunlu olmayabilir
    • Yeterince güçlü elektromanyetik girişim oluşturulabilirse mümkün olabilir; ancak sistem çökmesi veya hasar olasılığı çok daha yükselir

level-0 sayfa tablosu püskürtme yöntemi

  • Önce Linux’un memfd_create çağrısıyla bellek tabanlı bir dosya oluşturulur
    • Mark Seaborn exploit’indeki /dev/shm/ dosyasıyla aynı rolü oynar, ancak dosya sistemine doğrudan dokunmaz
  • Aynı tampon mmap ile defalarca eşlenir
    • MAP_FIXED seçeneğiyle her eşlemenin sanal bellekte 2MiB hizalı olması zorlanır
    • Bu hizalama her seferinde yeni bir level-0 sayfa tablosu oluşturulmasını garanti eder
  • Linux’ta süreç başına eşleme sayısı, yani VMA için yaklaşık 2^16 sınırı vardır
    • Her eşleme 32MiB uzunlukta yapılarak tek bir eşlemenin 16 level-0 sayfa tablosu oluşturması sağlanır
  • Her eşleme sanal adres alanında 32MiB yer kaplar, ancak PTE’ler aynı fiziksel sayfaları gösterir
    • Fiziksel bellek maliyeti yalnızca level-0 sayfa tablolarıdır
    • Bu yöntemle bellek dolana kadar sayfa tabloları püskürtülebilir

Fiziksel bellek okuma/yazma ve su sayfa önbelleği kirletme

  • Hata beklenirken R/W eşlemelerine tekrar tekrar erişilir; beklenenden farklı bir değer dönerse hata algılanır
    • Dönen veri PTE’ye benziyorsa sayfa tablosuna R/W erişimi elde edilmiş demektir
  • Sonraki adım, bu sayfa tablosunun hangi sanal adrese karşılık geldiğini bulmaktır
    • PTE, fiziksel adres 0’ı gösterecek şekilde değiştirilir
    • Ardından R/W eşlemeleri yeniden taranarak hangi eşlemenin değiştiği bulunur
  • PTE değiştirilse bile MMU bunu hemen fark etmez
    • Çünkü sanal-fiziksel eşleme TLB’de önbelleğe alınmıştır
    • Kullanıcı alanından TLB’yi doğrudan flush etmenin bir yolu bilinmediğinden, binlerce R/W eşlemesine tekrar tekrar erişilerek TLB’nin yeni değerlerle doldurulması ve eski değerlerin dışarı atılması sağlanır
  • Bu noktada tüm fiziksel belleğe okuma/yazma erişimi mümkün hale gelir
  • Ardından /usr/bin/su çalıştırılabilir dosyası salt okunur olarak açılır ve ilk sayfası mmap edilir
    • /usr/bin/su, setuid root bir çalıştırılabilir dosyadır
    • Tüm fiziksel bellek taranarak aynı sayfa bulunur
    • Bulunan fiziksel sayfaya yazma erişimiyle, root shell açan 4KiB’den küçük ELF payload ile değiştirilir
  • Linux, su bir sonraki kez çalıştırıldığında ilk sayfanın zaten bellekte olduğunu varsayar ve diskten tekrar okumaz
    • Kirletilen sayfa önbelleğini yeniden kullanarak enjekte edilen ELF’i çalıştırır
    • Enjekte edilen ELF, echo 1 > /proc/sys/vm/drop_caches ile sayfa önbelleğini boşaltır; böylece bir sonraki su çalıştırması normal davranır
  • Linux exploit’inin tüm kaynak kodu linux_x86_64_lpe.c dosyasındadır

Güvenilirlik ve ortam kısıtları

  • Demo çalıştırmasında şans yaver gitti ve tek bir çakmak tıklamasıyla iyi bir glitch oluştu
    • Önceki birçok denemede tüm sistem çöktü
  • Tüm exploit’in güvenilirliği kesin olarak ölçülmedi
    • Dizüstü bilgisayar ekranı kapalıyken SSH ile bağlı durumda hissedilen oran yaklaşık %50 gibi görünüyor
    • Grafik shell’de ise yaklaşık %20’ye yakın
  • Deney sistemi entegre grafik kullanıyor
    • GPU’nun bellek erişimlerinin exploit’i bozma olasılığı var
  • pipewire, sshd, systemd ile ilgili arka plan servisleri ve swap da açıktı
    • Bu, gerçekçi bir masaüstü Linux ortamını korumak için yapılan bir tercihti; devre dışı bırakılırsa güvenilirlik artabilir
  • Daha fazla RAM takılı olsaydı daha yüksek bir oran sayfa tablolarıyla doldurulabilir ve genel güvenilirlik artabilirdi

Olası kullanım alanları ve kalan sorular

  • Windows’ta yüksek güvenilirlikli bir EMFI yerel yetki yükseltme mümkün olursa, TPM tabanlı anti-cheat’in sistemde izin verilen yazılımları sınırladığı durumları etkileyebilir
  • Android’in SafetyNet veya Play Integrity kontrolleri için de benzer bir hikâye mümkün olabilir; ancak telefona glitch modchip’i takmak daha zordur
  • Düşük seviyeli performans optimizasyonlarında sayfa tabloları ve TLB bilgisi çoğu zaman doğrudan önemli değildir; ancak bu exploit’te sanal bellek yanılsamasını sürdüren yapı doğrudan saldırı hedefi olur
  • Uygulanabilirlik kapsamı için hâlâ doğrulanması gereken çok şey var
    • DDR4 ve DDR5’te de çalışıp çalışmadığı
    • ARM’da çalışıp çalışmadığı
    • ECC’nin çeşitli türlerinin, özellikle DDR5 Link-ECC’nin bunu ne ölçüde hafiflettiği
    • RP2040 gibi bir cihazla benzer hataları elektronik olarak tetiklemenin en basit yolunun ne olduğu
    • Hypervisor kaçışı için kullanılıp kullanılamayacağı
    • WebKit exploit’i veya Nintendo Switch kernel exploit’i haline getirilip getirilemeyeceği

2 yorum

 
mammal 2024-10-08

Çakmaktan ateşleyiciyi çıkarıp arcade makinesinde jeton yükseltmeyi düşündürdü bana.

 
GN⁺ 2024-10-08
Hacker News yorumları
  • Buradaki ilham kaynağı Switch 2'de root yetkisi elde etmekti; Linux'ta root almak ise bir kavram kanıtıydı.
    Amaç, pratikte kötüye kullanılabilir temel bir güvenlik açığı göstermekten çok, TPM'i ya da oyunların kernel düzeyindeki anti-cheat sistemlerini kırmadan kendi donanımının gerçek sahipliğini geri almaya daha yakın.

    • Niyeti anlıyorum ama asıl noktayı pek kavrayamıyorum. 20 yıl önce konsollar zararına ya da düşük marjla satılan güçlü bilgisayarlar olduğunda bu daha anlamlıydı; ama bugün Nintendo konsolları kârla satıyor ve Switch 2 için de büyük olasılıkla durum böyle olacak.
      Etkileyici ve yazılım özgürlüğünü savunmaya yönelik işleri görmek güzel, ama ben açıkçası alternatifleri desteklemeyi tercih ederim. Neden onlara kurulu taban gibi görünen rakamlar ve kâr sağlayasınız? En baştan root erişimini bir özellik olarak sunan Steam Deck ya da başka bir el konsolu alın.
  • Yazı çok iyi yazılmış ve meydan okuma da harika, ama zihnim “fiziksel erişim varsa zaten iş bitmiştir” şeklindeki hacker sağduyusuna kayıyor.
    Aklıma ilk gelen şey, fiziksel erişim varsa BIOS'u yeniden flash'lamak, sürücüye backdoor kurmak, live OS ile boot edip /etc/{passwd,shadow,groups, etc} üzerinde oynamak gibi şeylerdi.
    Ama disk şifreliyse fiziksel erişim saldırılarının çoğunun mümkün olmadığını hatırladım; o zaman bu tür bir saldırı inanılmaz cazip görünmeye başlıyor. Anten fikri, içine parazit oluşturan bir donanım yerleştirilmesine kadar genişletilebilir; kablosuz bir ortam üzerinden dış dünyayla haberleştirilerek saldırganın uzaktan parazit oluşturması da sağlanabilir. Buna bir de kurbanın ziyaret etmesi için kandırıldığı, saldırganın kontrolündeki bir web sitesi eklenirse iş gerçekçi hâle gelir.

    • Girişteki motivasyon, taşınabilir oyun konsolunu root etmek/jailbreak yapmak. Fiziksel erişimin olduğu ama yine de “izin verilmemiş” erişim elde etmek istenen bir durum olarak gayet makul.
    • Bana göre BIOS'u yeniden flash'lamanın pek getirisi yok. Çünkü çalıştırma başlamadan önce CPU donanımı doğru özel anahtar imzasını kontrol ediyor; dolayısıyla önce imzalamanız gerekiyor.
      Bu elektromanyetik parazit tekniği CPU'nun kendisini kandırıyor; yeni bir sayfalama algoritması çıkmadıkça bunun nasıl düzeltilebileceğini pek göremiyorum.
    • “Disk şifreliyse fiziksel erişimle yapılan hack'lerin çoğu imkânsızdır” ifadesi ancak PC kapalıysa, yani keyfile ya da parola ile veriler henüz çözülüp sisteme boot edilmemişse doğru.
      Benim PC'm de tam disk şifrelemesi kullanıyor, ama boot ettiğinde şifre çözmede kullanılan keyfile devreye giriyor ve o andan itibaren fiziksel olarak erişilebilir bir PC hâline geliyor.
  • Hoşuma gitti. Ana fikir şu: bellek okuma ya da yazma sırasında elektrostatik bit çevirme meydana geliyor ve lehim de yaparsanız “güvenli” bir pointer'ı deterministik biçimde istediğiniz kötü niyetli pointer'a çevirebiliyorsunuz.
    Tarihsel olarak fiziksel erişime bakış “karşı taraf cihazı ele geçirirse oyun biter” şeklindeydi. TPM ve güvenilir yürütme ortamları bu bakışı “kullanıcının fiziksel erişimi olsa bile enclave içindeki belirli işlemlere güvenilebilir” hâline getirdi.
    Bir sonraki adım en ilginç olanı. Lehim yapmadan da bir ölçüde güvenilir sonuç alınabilir mi? Elektriksel parazitlerle uğraşma konusunda zaten çok düşünülmüş, bu yüzden çok daha zor olur gibi geliyor; ama mümkün de olabilir. Çakmağa her bastığınızda 64 bitlik bir okumada rastgele 1 bit çevriliyorsa ve exploit örneğin 4 bit çevirme seçeneğinden yalnızca biriyle bile çalışıyorsa, ortalama deneme sayısı o kadar yüksek olmayabilir.

    • Fiziksel erişiminiz olup anten lehimleyebiliyorsanız, “arka taraftan” programlanabilir özel bir DIMM takıp TPM olsun başka bir şey olsun delebilirsiniz.
      Belleğin herhangi bir bölümünü istediğiniz anda istediğiniz değere değiştirebileceğiniz için rastgele bit çevirmeye bel bağlamaya gerek yok. Doğrudan tüm programı enjekte edersiniz.
    • Anten yoksa çevrilmeyi tek bir bitle sınırlamak zor olur gibi geliyor. En azından benim tahminim bu.
  • Sadece başlığa bakınca birinin sigara çakmağında root yetkisi elde ettiğine dair bir yazı sandım ve buna inanmaya tamamen hazırdım.
    Annemlerin fırını bile düzenli olarak yazılım güncellemesi aldığı için, çakmağın “akıllı” olup olmadığından şüphe bile etmedim.

    • Başlığı görünce yarı yarıya lastik hortum kriptoanalizinin ateşli bir versiyonunu bekledim.
    • Üzerinde küçük bir güneş paneli ve pil olan bir çakmak olsa; lidar yakındaki sigara ya da puroyu algıladığında küçük bir taser gibi kıvılcım çıkarsa nasıl olur diye düşündüm. Parmaklara ya da hot dog'lara tepki vermesin, düğmesi olmasın, çakmak gazını da sonsuza kadar doldurmak gerekmeyin.
      Elbette lidar'ı çalıştıracak, aynı anda güçlü LED flaş ve fade efekti, haptik darbe ve ses efekti üretecek bir çip de gerekir. Keşke biri demo olarak yapsa. Küçük bir revolver gibi görünse güzel olurdu, ama parmak ve hot dog güvenliği için sanal bellek denetleyicisini güçlendirmek gerekecek gibi.
    • En sık kullandığım havya bile değiştirilebilir firmware'i bir RISC-V SoC üzerinde çalıştırıyor. (https://pine64.com/product/pinecil-smart-mini-portable-solde...)
      Lehim eritmek bu kadar karmaşık olabiliyormuş demek. O yüzden çakmağı root ettiklerine dair bir yazıya da rahatlıkla inanabilirim.
    • Alevin şekliyle karekök hesapladığını sanmıştım.
  • 80’ler-90’larda Sidney’deki arcade makinelerinde yapılan exploit’i hatırlattı. Okuldaki gaz sobalarında bizim “clicker” dediğimiz piezoelektrik ateşleyiciler vardı ve sobadan sökülebiliyorlardı.
    O clicker’ı mahalledeki arcade salonuna götürüp CRT’nin köşelerinden birinde tıklatınca sisteme bir darbe gidiyor ve oyun kredisi artıyordu. Muhtemelen CRT’nin topraklaması, fiziksel olarak parayı doğrulayan düzenekle aynı toprak hattını paylaştığı içindi.
    Zamanla işletmeciler durumu fark edip alarm gibi şeyler ekledi, ama o zamana kadar gerçekten harika günlerdi.

    • 80’lerin başında aynısını yapıyorduk; biz tek kullanımlık çakmakların içindeki clicker’ı kullanıyorduk.
      Bunu birkaç yıl yaptıktan sonra işletmeciler fark etti ve arcade kabinlerini şeffaf plastikle kaplamaya başladılar. Aynı zamanda kabinler plastikle kapatılınca havalandırma için arka tarafa delikler açtılar; biz de bambu bir çubukla jeton girişini kaydeden kola basabileceğimizi keşfettik.
      Sonra havalandırmayı arkadan üste taşıyıp kola ulaşılmasını engellediler, ama bu kez iade gözünden jetonu yukarı doğru itince jeton kayıt koluna dokunabildiğimizi fark ettik ve ücretsiz oyunlar devam etti. Sonunda iade kutusunun içine parmakları kesecek keskin vidalar taktılar; ondan sonra biz de SEGA aldık. Gerçekten çok eğlenceliydi.
    • Bir arkadaşımın, arcade makinesinin arkasına girip gücü kapatıp açınca ücretsiz bir token veren bir makineyi hatırlıyorum.
      Çalışanlar ücretsiz test edebilsin diye bilerek mi öyle tasarlanmıştı bilmiyorum, ama arkadaşım arkaya sürünerek girip bedavaya sürekli oynardı.
    • ABD’de de işe yarıyordu. 1990’lar civarında çoğu arcade salonu nakit bozuk para yerine kendi token’larını kullanıyordu; token’ların sıra halinde kayarak yığıldığı çok sayıda beceri tabanlı kumar makinesi de vardı.
      “Jungle Jive” sürümünde, sigara çakmağının elektrikli ateşleyicisiyle metal girişe hafif bir darbe verince makinenin öbür tarafından token çıkıyordu. Çok hızlı ve çok fazla tıklatırsanız uyarı moduna giriyordu. Tek başına da yapılabiliyordu ama en iyi düzen 1 kişi çalışanları gözetlemek, 1 kişi tıklatmak, 1 kişi de toplamak üzere 3 kişilik ekipti.
    • Bir pinball makinesinin yan tarafına tam doğru yerden vurunca ücretsiz oyun verdiğine dair bulanık bir anım var. Muhtemelen aynı prensipti.
    • Hacker Pengo’nun aynı yöntemle arcade kredisi eklediğinin bilindiğini bu kitapta okuduğumu hatırlıyorum.
      https://www.amazon.com/CYBERPUNK-Outlaws-Hackers-Computer-Fr...
  • Bir Avustralyalı olarak okuyunca farklı yorumlanıyor. Pazarlık yeteneğinize bağlı olarak, tek bir sigara çakmağıyla bile root elde edebilirsiniz.

  • Sadece eğlenceli bir exploit değil; CPU’da önbelleğin nasıl çalıştığını açıklayan harika bir mini giriş yazısı da.
    Yaklaşık bir yıl önce, bilgisayarların nasıl çalıştığını ve nasıl yapıldığını en küçük parça olan mantık kapılarından başlayarak anlatan bir yazı yayımlandığını hatırlıyorum. O web sitesinin ne olduğunu hatırlayan var mı?

  • “DQ26’ya lehimlenmiş tek şey 15 ohm’luk bir direnç ve bir kablo. Kablo anten gibi davranıp yakındaki elektromanyetik paraziti alıyor ve doğrudan veri yoluna aktarıyor.”
    Gerçekten harika bir hack. Çakmakla elektromanyetik parazit üretmek ha. DDR veri yolunun yanında ateşleyip ne olduğuna bakmam gerekecek.

  • Tabii önce belleğe anten lehimlemeniz gerekiyorsa mümkün :-)
    Yine de böyle bir glitch’in pratikte nasıl kötüye kullanılabileceğine dair mükemmel ve titiz bir yazı. Sigara çakmağı, veri merkezinin arka kapısında dolanıp yöneticinin sigara içmeye çıkmasını beklemek için de kullanılabilir.

    • “Teoride 29. bit ile 12. bit arasındaki herhangi bir konumda bit flip gerçekleşirse çalışır. Bu yüzden yeterince güçlü elektromanyetik parazit üretebilirseniz anten kablosunu lehimlemek tamamen zorunlu olmayabilir.”
    • “Pratik kullanım” bölümündeki bir kullanım alanı, konsollardaki kopya korumasını aşmak.
  • Başlığı görünce USB-C sigara çakmağı cihazıyla Hyundai otomobillerini hack’lemek hakkında bir hikâye sanmıştım.