- 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 sisteminiopensslile çözdü; anahtar ve IV aynı model ailesinde ortak kullanıldı - Vite derleme değişkeni tüm
process.envolarak ayarlandığı için CI işinin ortam değişkenleri çıktıya yazıldı veGITHUB_NPM_TOKENile ç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
binwalkile incelendiğinde, kamera için AI bileşenlerini içeren ayrı bir tarball ile şifrelifwimage.tgzbulundu - Matt Brown’un Hanwha firmware şifre çözüm analizi doğrultusunda
HTWile model numarasının birleşiminden oluşan parola kullanıldı- İncelenen örnekte
HTWXNP-9300RWçalıştı
- İncelenen örnekte
- Açılan tarball içinde farklı bir yöntemle şifrelenmiş başka bir
fwimage.tgzdaha 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
fwupgraderikilisi Ghidra ve Claude Code ile analiz edilerek gerçek kök dosya sistemi çıkarıldı fwupgraderiç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
opensslkomut 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
trufflehogile 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.envolarak 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ı
SWARM_MASTER_NFS_ADDRESS:55.101.212.23OTEL_ELASTIC_URL:http://55.101.212.21:5601/<snip>CIMIP:55.101.211.213
- 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
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
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
Kararlılığı Apple HomeKit'e benziyor, yani pek de harika değil
İki Sonoff Slim Gen2 sorunsuz yükseltilmiş
Stránka nenalezena,There's been a glitch...hataları veriyor ve çalışmıyor gibi görünüyorAsı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
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
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
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*="://"]::afterseçicisi, dahili bağlantılarınhref="/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 ekleniyorSite adresiyle başlayan bağlantıları hariç tutarak çözülebilir:
a[href*="://"]:not([href^="https://hhh.hn"])::afterYakı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ış
Güvenliği önemseyen bir geliştirici, App Attest ya da Google Store'daki benzerini kullanırdı
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
Araştırmacıları hukuki sonuçlardan koruyan bir şirket vardı ama adı hatırlanmıyor
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
Devlet destekli yapılar ya da suç amaçlı hacker grupları bu zahmete fazlasıyla katlanıyor
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