1 पॉइंट द्वारा GN⁺ 3 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Hanwha Vision कैमरा firmware के वेब admin UI की लगभग 30 फाइलों में वही GitHub token मौजूद था, और इस token के पास संगठन के सैकड़ों repositories पर admin अधिकार थे
  • firmware के fwupgrader ने hardcoded AES key को static table के साथ XOR करके restore किया, फिर openssl से root file system decrypt किया; key और IV एक ही model family में common तौर पर इस्तेमाल किए गए थे
  • Vite build variable को पूरे process.env पर set कर देने से CI job के environment variables output में लिख गए, और GITHUB_NPM_TOKEN समेत कई internal settings भी camera firmware में शामिल हो गईं
  • इसी तरीके से लगभग 500 firmware की जांच में 62% extract किए गए, और जिन 3 firmware में GitHub token मिला, उन सभी में वही token था
  • Hanwha ने report के बाद 12 घंटों के भीतर token revoke कर दिया, लेकिन CI environment को पूरा client output में inject करने वाली configuration credentials और internal infrastructure जानकारी को products में expose कर सकती है

firmware हासिल करना और encryption की पहली layer

  • Hanwha Vision वेबसाइट camera models के हिसाब से firmware images public करती है, इसलिए files download करके analyze की जा सकती थीं
  • binwalk से image की जांच करने पर camera के AI components वाला एक अलग tarball और encrypted fwimage.tgz मिला
  • Matt Brown के Hanwha firmware decryption analysis के अनुसार HTW और model number को जोड़कर बने password का इस्तेमाल होता है
    • analyzed target में HTWXNP-9300RW काम कर गया
  • unpack किए गए tarball के अंदर अलग तरीके से encrypted एक और fwimage.tgz था, इसलिए पुराने decryption procedure को जस का तस reuse नहीं किया जा सकता था

fwupgrader से decryption तरीका restore करना

  • external tarball में शामिल fwupgrader binary को Ghidra और Claude Code से analyze करके असली root file system extract किया गया
  • fwupgrader में decryption method छिपाने के लिए obfuscation लागू था
    • AES key को binary के अंदर मौजूद छोटी static key table के साथ XOR करने के बाद runtime पर reassemble किया जाता है
    • IV binary में plaintext के रूप में मौजूद है
    • openssl command fragments भी इसी तरह XOR obfuscate किए गए हैं
  • restore की गई command SHA-256 और AES-256-CBC इस्तेमाल करने वाले इस रूप में है
    openssl enc -md sha256 -aes-256-cbc -d \  
      -K <KEY> -iv <IV> -in <INPUT> -out <OUTPUT>  
    
  • key और IV hardcoded थे और एक ही model family में common तौर पर इस्तेमाल किए गए
    KEY = dfa049bb922e63e2decc764af5628068e5b7a2662e479a615b14643e567579b0  
    IV  = 53f926801b81454a4f889c9a390db6e6  
    

firmware में शामिल GitHub admin token

  • extract किए गए root file system को trufflehog से scan करने पर वही GitHub token करीब 30 files में duplicate मिला
  • इस token के पास Hanwha के GitHub organization के सैकड़ों repositories पर admin permissions थे
  • camera UI Vite से build होता है, और एक build variable को पूरे process.env पर set कर दिया गया था, जिससे CI job का पूरा environment result files में लिखा गया, यह confirm हुआ
    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  
    }  
    
  • वास्तविक camera न होने की वजह से behavior verify नहीं किया जा सका
    • संभव है कि admin UI access करने वाले user को token network के जरिए भेजा गया हो
    • यह संभावना भी बनी हुई है कि file सिर्फ disk पर मौजूद थी और वास्तव में serve नहीं की गई

CI environment में शामिल DoD addresses

  • exposed environment variables में अमेरिकी रक्षा विभाग को allocated IP addresses भी शामिल थे
  • यह confirm नहीं हुआ कि इन addresses को बाहरी दुनिया से communicate न करने वाली internal services के लिए मनमाने तौर पर इस्तेमाल किया गया था या वे Hanwha और अमेरिकी रक्षा विभाग के संबंध से जुड़े थे
  • Hanwha Vision, Samsung Techwin के रूप में स्थापित एक video surveillance company और Hanwha Group की subsidiary है
    • उसके past products में K9 Thunder self-propelled howitzer, K10 ammunition resupply armored vehicle, K2 Black Panther subsystems, और SGR-A1 sentry robot शामिल हैं
    • SGR-A1 एक armed sentry robot है
  • संभव है कि CI Hanwha की central organization देती हो और affiliate Hanwha Aerospace या Hanwha Defense USA की requirements की वजह से related variables share हुए हों, लेकिन यह unverified speculation है

पूरे firmware की जांच

  • यह कोई accidental single case था या और अलग tokens मौजूद थे, यह देखने के लिए Hanwha website से download किए जा सकने वाले camera firmware इकट्ठा किए गए
  • लगभग 600 cameras में से जिन models के लिए firmware उपलब्ध था, उन्हें target कर करीब 500 firmware हासिल किए गए
  • इसी तरीके से 62% extract किए जा सके, और बाकी fail क्यों हुए यह confirm नहीं हो पाया
  • जिन firmware में GitHub token था वे 3 थे, और सभी में वही token शामिल था

report और response

  • token की location identify करने के लिए जरूरी न्यूनतम जानकारी Hanwha के public security reporting email पर भेजी गई
  • Hanwha ने report के बाद 12 घंटों के भीतर जवाब दिया और उस token को revoke कर दिया
  • GitHub token का firmware में शामिल होना गलती है, लेकिन report receive करने और उसे resolve करने की प्रक्रिया बहुत तेजी से हुई

1 टिप्पणियां

 
GN⁺ 3 시간 전
Hacker News की राय
  • ऐसे white-label IP camera या लगभग plug-and-play प्रोडक्ट की तलाश है, जिन्हें निर्माता सपोर्ट करता हो लेकिन ज़रूरत पड़ने पर rootfs हटाया जा सके
    पहले तो बिना केस वाले महंगे development kit ही मिलते थे, लेकिन अब शायद GoodCam जैसे विकल्प आ गए हैं

    • चाहे firmware open न हो, isolated network में ONVIF इस्तेमाल करें तो काफ़ी हद तक काम चल जाता है
      ONVIF camera ज़्यादातर network video recorder (NVR) के साथ compatible होते हैं, और कई open source NVR भी मौजूद हैं
      सस्ते PoE camera को बाहर exposed न किया जाए तो manufacturer firmware की security उतनी अहम नहीं रहती, लेकिन VLAN और network isolation बहुत सावधानी से सेट करना चाहिए
    • इसी समस्या को हल करने के लिए Wyrecam बनाया गया, जो Wyze v3 के Ingenic T31 को support करता है
      इसकी reliability Apple HomeKit जैसी है, यानी बहुत शानदार नहीं
    • Thingino के supported camera की सूची साफ़ है, और अगर model में SD card flashing support है तो installation भी आसान है
      दो Sonoff Slim Gen2 को बिना किसी समस्या के upgrade किया गया
    • कुछ camera में Thingino से मौजूदा firmware बदला जा सकता है, और OpenIPC supported hardware list भी देखने लायक है
    • लगता है store page काम नहीं कर रहा, Stránka nenalezena, There's been a glitch... जैसी errors दे रहा है
  • firmware में US Department of Defense IP address हार्डकोडेड होना ज़्यादा बड़ी समस्या लगती है, और इससे लगता है कि Korean security products से बचना चाहिए

    • कुछ कंपनियाँ US DoD के पूरे IP range को blackhole करके internal address की तरह इस्तेमाल भी करती हैं, तो शायद ऐसा मामला हो सकता है, लेकिन फिर भी यह बहुत अजीब है
    • लगता है Canadian Navy ने भी हाल की एक बड़ी डील में ऐसा ही फ़ैसला लिया: search results
    • US DoD के पास इतना विशाल IP address space है कि संयोग से overlap हो जाना भी संभव है
    • Korean IoT products में भी यही हाल है; जिन products को सीधे देखा है, उनकी security practices बेहूदा स्तर की थीं
    • अपने देश के products भी security vulnerability और लचर engineering की वजह से अक्सर बुरी हालत में होते हैं
  • कई vendors खतरनाक defaults, टूटी हुई security, और hardcoded values का इस्तेमाल करते हैं
    भले security सबसे पहली प्राथमिकता न हो, कम से कम hardcoded credential checks जैसी basic checks तो होनी ही चाहिए

    • security camera में security का प्राथमिकता न होना अपने-आप में irony है
    • जब काम सबसे कम अनुभवी और सबसे सस्ते लोगों को दिया जाता है, तो minimum baseline checks की भी उम्मीद करना मुश्किल है
    • आजकल तो repository में basic security scanning जोड़ना भी आसान है, इसलिए बहानों की लगभग कोई गुंजाइश नहीं
  • camera को अलग VLAN में रखना और उस VLAN की internet access पूरी तरह बंद कर देना कम से कम की जाने वाली कार्रवाई है

  • पहले देखा था कि कई OBD-II dongle एक ही MAC address के साथ ship हुए थे, और उसके चलते कई websites की सारी जानकारी तक access मिल जाता था
    ऐसे मसले आप बचना भी चाहें तो बार-बार सामने आते ही रहते हैं

    • यह जानने की जिज्ञासा है कि एक ही MAC address से full access कैसे मिल गया
      अगर website client द्वारा दिए गए MAC address को authentication के तौर पर इस्तेमाल कर रही थी, तो यह IoT security failure का textbook example है
  • product name से security हटाकर इसे बस camera कहना ज़्यादा सही होगा

  • इस blog में external link icon का गलत इस्तेमाल परेशान करता है

    • a[href*="://"]::after selector यह मानकर चलता है कि internal link href="/about" जैसी relative path होगी, लेकिन यह site navigation link में भी [https://hhh.hn/about](https://hhh.hn/about) जैसे absolute URL इस्तेमाल करती है, इसलिए हर link पर icon लग जाता है
      site address से शुरू होने वाले links को exclude कर दें तो समस्या हल हो सकती है: a[href*="://"]:not([href^="https://hhh.hn";])::after
  • हाल में खरीदी गई indoor ambient light को dedicated app के बिना control नहीं किया जा सकता था
    Google store से APK लेकर analyze किया तो backend और Shopify जैसी services की API keys लगभग खुली पड़ी थीं, लेकिन अभी तक उनका इस्तेमाल करके कुछ नहीं किया गया है

    • public keys अक्सर कोई खास access नहीं देतीं
      जो developer security को गंभीरता से लेते हैं, वे App Attest या Google store के equivalent feature का इस्तेमाल करेंगे
    • light app को Shopify API access की ज़रूरत क्यों होगी, इसका कोई वाजिब कारण समझ नहीं आता
      हालांकि Shopify store consulting का अनुभव रखने के नाते यह हैरान करने वाली बात नहीं, क्योंकि सस्ते consultants या designers का code quality अक्सर बहुत खराब होता है
    • दिखावट की वजह से हमेशा सबसे अच्छा विकल्प न भी हो, फिर भी Zigbee या Z-Wave जैसे local control वाले smart devices खरीदना ज़्यादा सुरक्षित है
    • ऐसी जानकारी public करने पर company कानूनी कार्रवाई कर सकती है, इसलिए जोखिम है
      एक company थी जो researchers को कानूनी नतीजों से बचाने में मदद करती थी, लेकिन उसका नाम याद नहीं
    • चूँकि dedicated app के बिना भी इसे आखिरकार control किया जा सकता है, इसलिए उम्मीद है कि protocol reverse-engineer करके तरीका public किया जाएगा
  • LLM की वजह से code obfuscation लगभग बेअसर हो गया है
    obfuscation सिर्फ काम को उबाऊ बनाकर रुकावट डालता था, लेकिन AI को ऐसी मेहनत से फ़र्क नहीं पड़ता

    • obfuscation का असर सिर्फ उन हल्के attackers पर था जो बोरियत नहीं झेल पाते
      राज्य-समर्थित groups या आपराधिक hacker groups इतनी मेहनत आसानी से कर लेते हैं
    • अच्छी बात यह है कि छोटे local LLM से भी ऐसे low-quality code को आसानी से बेहतर बनाया जा सकता है
  • इस तरह के system को US defense industry trade show में देखा गया है, इसलिए संभव है कि यह वास्तव में कहीं इस्तेमाल हो रहा हो