1 puan yazan GN⁺ 2 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Hanwha Vision kamera firmware’inin web yönetim UI dosyalarının yaklaşık 30’unda aynı GitHub token’ı bulunuyordu ve bu token, organizasyon içindeki yüzlerce depoda yönetici yetkisine sahipti
  • Firmware’deki fwupgrader, sabit kodlanmış AES anahtarını statik bir tabloyla XOR’layarak geri yükledikten sonra kök dosya sistemini openssl ile çözdü; anahtar ve IV aynı model ailesinde ortak kullanıldı
  • Vite derleme değişkeni tüm process.env olarak ayarlandığı için CI işinin ortam değişkenleri çıktıya yazıldı ve GITHUB_NPM_TOKEN ile çeşitli iç yapılandırmalar da kamera firmware’ine dahil oldu
  • Aynı yöntemle yaklaşık 500 firmware incelendi ve %62’si çıkarıldı; GitHub token’ı bulunan 3 firmware’in tamamında aynı token vardı
  • Hanwha, bildirimden sonra 12 saat içinde token’ı iptal etti, ancak tüm CI ortamını istemci çıktısına gömen bu yapılandırma, kimlik bilgilerini ve iç altyapı bilgisini ürüne sızdırabilir

Firmware’in elde edilmesi ve ilk şifreleme katmanı

  • Hanwha Vision web sitesi, kamera modellerine göre firmware image dosyalarını herkese açık sunduğu için dosyalar indirilip analiz edilebildi
  • Image binwalk ile incelendiğinde, kamera için AI bileşenlerini içeren ayrı bir tarball ile şifreli fwimage.tgz bulundu
  • Matt Brown’un Hanwha firmware şifre çözüm analizi doğrultusunda HTW ile model numarasının birleşiminden oluşan parola kullanıldı
    • İncelenen örnekte HTWXNP-9300RW çalıştı
  • Açılan tarball içinde farklı bir yöntemle şifrelenmiş başka bir fwimage.tgz daha vardı, bu yüzden mevcut çözme prosedürü aynen yeniden kullanılamadı

fwupgrader içinden çözme yönteminin geri kazanılması

  • Dış tarball içindeki fwupgrader ikilisi Ghidra ve Claude Code ile analiz edilerek gerçek kök dosya sistemi çıkarıldı
  • fwupgrader içinde çözme yöntemini gizlemek için obfuscation uygulanmıştı
    • AES anahtarı, ikili içindeki küçük statik bir anahtar tablosuyla XOR’landıktan sonra çalışma sırasında yeniden birleştiriliyordu
    • IV, ikili içinde düz metin olarak yer alıyordu
    • openssl komut parçaları da aynı şekilde XOR obfuscation ile gizlenmişti
  • Geri kazanılan komut, SHA-256 ve AES-256-CBC kullanan şu biçimdeydi
    openssl enc -md sha256 -aes-256-cbc -d \
      -K <KEY> -iv <IV> -in <INPUT> -out <OUTPUT>  
    
  • Anahtar ve IV sabit kodlanmıştı ve aynı model ailesinde ortak kullanılıyordu
    KEY = dfa049bb922e63e2decc764af5628068e5b7a2662e479a615b14643e567579b0  
    IV  = 53f926801b81454a4f889c9a390db6e6  
    

Firmware’de yer alan GitHub yönetici token’ı

  • Çıkarılan kök dosya sistemi trufflehog ile tarandığında, aynı GitHub token’ı yaklaşık 30 dosyada tekrar tekrar bulundu
  • Bu token, Hanwha’nın GitHub organizasyonuna ait yüzlerce depoda yönetici yetkisine sahipti
  • Kamera UI’si Vite ile derleniyor ve bir derleme değişkeni tüm process.env olarak ayarlandığı için CI işinin tüm ortamının çıktı dosyalarına yazıldığı doğrulandı
    var W = {  
      DATAPORT: "9090",  
      GIT_LFS_SKIP_SMUDGE: "1",  
      npm_command: "run-script",  
      KUBERNETES_SERVICE_PORT_HTTPS: "443",  
      GITHUB_NPM_TOKEN: "<snip>:ghp_…REDACTED…",  
      npm_config_userconfig: "/home/docker/.npmrc",  
      // etc  
    }  
    
  • Gerçek bir kamera olmadığı için bunun gerçekten çalışıp çalışmadığı doğrulanamadı
    • Yönetim UI’sine erişen kullanıcılara token’ın ağ üzerinden gönderilmiş olma ihtimali var
    • Dosyanın yalnızca diskte bulunup gerçekte hiç sunulmuyor olma ihtimali de sürüyor

CI ortamına dahil edilen DoD adresleri

  • Sızan ortam değişkenleri arasında ABD Savunma Bakanlığı’na tahsis edilmiş IP adresleri de vardı
  • Bu adreslerin dış dünya ile iletişim kurmayan iç servislerde keyfi olarak mı kullanıldığı, yoksa Hanwha ile ABD Savunma Bakanlığı arasındaki bir ilişkiden mi kaynaklandığı doğrulanamadı
  • Hanwha Vision, Samsung Techwin olarak kurulmuş bir video gözetim şirketi ve Hanwha Group’un bir iştirakidir
    • Geçmişteki ürünleri arasında K9 Thunder kundağı motorlu obüs, K10 mühimmat ikmal zırhlı aracı, K2 Black Panther alt sistemleri ve SGR-A1 nöbet robotu bulunuyor
    • SGR-A1, silahlı bir nöbet robotudur
  • CI altyapısı Hanwha’nın merkezi organizasyonu tarafından sağlanıyor ve ilgili değişkenler, iştiraklerden Hanwha Aerospace ya da Hanwha Defense USA talepleri nedeniyle paylaşılmış olabilir; ancak bu doğrulanmamış bir tahmin

Tüm firmware’lerin incelenmesi

  • Bunun tesadüfi tekil bir vaka mı olduğu, yoksa daha fazla ve farklı token olup olmadığını görmek için Hanwha web sitesinden indirilebilen kamera firmware’leri toplandı
  • Yaklaşık 600 kamera arasından firmware sunulan modeller için yaklaşık 500 firmware elde edildi
  • Aynı yöntemle %62’si çıkarılabildi; geri kalanların neden başarısız olduğu anlaşılamadı
  • GitHub token’ı içeren firmware sayısı 3’tü ve hepsinde aynı token bulunuyordu

Bildirim ve müdahale

  • Token konumunu belirlemeye yetecek en az bilgi, Hanwha’nın herkese açık güvenlik bildirim e-posta adresine iletildi
  • Hanwha, bildirimden sonra 12 saat içinde yanıt verdi ve ilgili token’ı iptal etti
  • GitHub token’ının firmware’e dahil edilmiş olması ciddi bir hata olsa da, bildirimin alınması ve çözüm süreci son derece hızlı ilerledi

1 yorum

 
GN⁺ 2 시간 전
Hacker News yorumları
  • Üretici desteği sunulan, ama gerektiğinde rootfs'i kaldırmaya izin veren white-label IP kamera ya da yarı tak-çalıştır ürünler arıyor
    Eskiden yalnızca kasası bile olmayan pahalı geliştirme kitleri vardı; şimdi ise GoodCam gibi seçenekler ortaya çıkmış görünüyor

    • Açık firmware olmasa bile, izole bir ağda ONVIF kullanıldığında buna oldukça yaklaşılıyor
      ONVIF kameralar çoğu ağ video kaydediciyle (NVR) uyumlu ve birkaç açık kaynak NVR da mevcut
      Ucuz PoE kameraları dışarıya açmıyorsanız üretici firmware'inin güvenliği daha az önemlidir, ancak VLAN ve ağ ayrımını çok dikkatli kurmak gerekir
    • Bu sorunu çözmek için Wyrecam yapılmış; Wyze v3'ün Ingenic T31'ini destekliyor
      Kararlılığı Apple HomeKit'e benziyor, yani pek de harika değil
    • Thingino desteklenen kamera listesini açıkça veriyor; SD kart flashlama destekleyen modellerde kurulum da kolay
      İki Sonoff Slim Gen2 sorunsuz yükseltilmiş
    • Bazı kameralarda mevcut firmware, Thingino ile değiştirilebiliyor; OpenIPC desteklenen donanım listesi de bakmaya değer
    • Mağaza sayfası Stránka nenalezena, There's been a glitch... hataları veriyor ve çalışmıyor gibi görünüyor
  • Asıl daha büyük sorun, firmware'e ABD Savunma Bakanlığı IP adreslerinin gömülü olması gibi görünüyor; bu da Kore yapımı güvenlik ürünlerinden kaçınma hissi veriyor

    • Bazı şirketler ABD Savunma Bakanlığı'nın tüm IP aralığını blackhole edip iç adres olarak kullanabiliyor; böyle bir durum olabilir, ama yine de çok tuhaf
    • Kanada Donanması da yakın zamanda büyük bir projede benzer bir karar almış gibi görünüyor: arama sonuçları
    • ABD Savunma Bakanlığı o kadar büyük bir IP adres alanına sahip ki, bunun tesadüfen çakışmış olması da gayet mümkün
    • Kore yapımı IoT ürünleri için de aynı şey geçerli; doğrudan uğraştığım ürünlerdeki güvenlik uygulamaları saçma düzeydeydi
    • Kendi ülkelerindeki ürünler de çoğu zaman güvenlik açıkları ve özensiz mühendislikle berbat durumda olabiliyor
  • Birçok tedarikçi tehlikeli varsayılanlar, bozuk güvenlik ve hardcode edilmiş değerler kullanıyor
    Güvenliği en üst öncelik yapmasalar bile, en azından hardcode edilmiş kimlik bilgisi denetimi gibi temel kontroller gerekli

    • Güvenlik kameralarında güvenliğin öncelik olmaması başlı başına ironik
    • İşlerin en deneyimsiz ve en ucuz personele verildiği bir çalışma düzeninde, asgari standart kontrollerini bile beklemek zor
    • Artık depoya temel güvenlik kontrolleri eklemek yeterli olduğundan, mazeret için pek yer kalmadı
  • Kameraları ayrı bir VLAN'a koyup bu VLAN'ın internete erişimini tamamen engellemek asgari önlemdir

  • Daha önce baktığımda birçok OBD-II dongle aynı MAC adresiyle gönderiliyordu; bunun sonucunda da birkaç web sitesindeki tüm bilgilere erişilebiliyordu
    Bu tür sorunlar, kaçınmak isteseniz de sürekli ortaya çıkıyor

    • Aynı MAC adresinin nasıl tam erişim yetkisine dönüştüğünü merak ediyorum
      Eğer web sitesi istemcinin verdiği MAC adresini kimlik doğrulama aracı olarak kullandıysa, bu tipik bir IoT güvenlik fiyaskosudur
  • Ürün adından güvenlik kelimesini çıkarıp buna sadece kamera demek daha doğru olabilir

  • Bu blogun harici bağlantı simgesini yanlış kullanması sinir bozucu

    • a[href*="://"]::after seçicisi, dahili bağlantıların href="/about" gibi göreli yollar olduğunu varsayıyor; ama bu site gezinme bağlantılarında bile [https://hhh.hn/about](https://hhh.hn/about) gibi mutlak URL'ler kullandığı için her bağlantıya simge ekleniyor
      Site adresiyle başlayan bağlantıları hariç tutarak çözülebilir: a[href*="://"]:not([href^="https://hhh.hn";])::after
  • Yakın zamanda alınan bir iç mekân ambiyans ışığı, özel uygulama olmadan kontrol edilemiyordu
    Google Store'dan APK alınıp incelendiğinde backend ve Shopify gibi servislerin API anahtarlarının neredeyse olduğu gibi içinde yer aldığı görülmüş, ama bunlarla henüz bir şey yapılmamış

    • Açık anahtarlar çoğu zaman özel erişim yetkisi vermez
      Güvenliği önemseyen bir geliştirici, App Attest ya da Google Store'daki benzerini kullanırdı
    • Bir ışık uygulamasının Shopify API erişimine ihtiyaç duyması için makul bir neden akla gelmiyor
      Yine de Shopify mağaza danışmanlığı yapmış biri olarak, ucuz danışmanların ya da tasarımcıların sağladığı kod kalitesinin çoğu zaman korkunç olması şaşırtıcı değil
    • Görünüm yüzünden her zaman en iyi seçenek olmasa da, Zigbee veya Z-Wave gibi yerel kontrol sunan akıllı cihazları almak daha güvenli
    • Bu bilgileri açıklamak riskli olabilir; şirket yasal yollara başvurabilir
      Araştırmacıları hukuki sonuçlardan koruyan bir şirket vardı ama adı hatırlanmıyor
    • Sonuçta özel uygulama olmadan da kontrol edilebildiğine göre, protokolü tersine mühendislikle çözüp yöntemi paylaşması umuluyor
  • LLM'ler yüzünden kod obfuscation artık fiilen etkisiz kaldı
    Obfuscation sadece işi sıkıcı hale getirip engel çıkarıyordu; yapay zeka ise bu zahmeti umursamıyor

    • Obfuscation yalnızca sıkıcılığa dayanamayan hafif saldırganlara karşı etkiliydi
      Devlet destekli yapılar ya da suç amaçlı hacker grupları bu zahmete fazlasıyla katlanıyor
    • Olumlu tarafından bakılırsa, küçük bir yerel LLM ile bile bu tür düşük kaliteli kodları kolayca iyileştirmek mümkün
  • Bu tür sistemler daha önce bir ABD savunma sanayii fuarında görülmüş; yani gerçekten bir yerlerde kullanılıyor olma ihtimali yüksek