1 पॉइंट द्वारा GN⁺ 4 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • AUR(Arch User Repository) में बड़ी संख्या में malicious commits डाले गए, जिनसे पैकेज इंस्टॉलेशन प्रक्रिया के दौरान npm install atomic-lockfile चलाने के लिए छेड़छाड़ की गई — यह एक supply chain attack है
  • read-only mirror खोज परिणामों के अनुसार, लगभग 408 पैकेजों के PKGBUILD, .install, और .hook फ़ाइलों में वही malicious command मिला
  • malicious commits ने पिछले commit के नाम और email की नकल करके वैध maintainer का रूप धारण किया; यह commit forgery तरीका है, और यह ज़रूरी नहीं कि account takeover हुआ हो
  • Arch पक्ष malicious commits को reset/delete करने और accounts को block करने की प्रक्रिया में है, और अतिरिक्त malicious packages मिलने पर उन्हें एक ही thread में इकट्ठा करके report करने का अनुरोध किया गया
  • community सदस्यों ने अलग-अलग पैकेज commits की लगातार रिपोर्ट करते हुए सहयोगात्मक प्रतिक्रिया शुरू की; यह AUR package ecosystem के बड़े हिस्से को प्रभावित करने वाला मामला है

घटना का सार और प्रतिक्रिया का अनुरोध

  • AUR में बड़े पैमाने पर malicious commits डाले जाने के संकेत साझा किए गए, और malicious commits को reset/delete करने तथा accounts को block करने का काम जारी है
  • अगर अतिरिक्त malicious packages मिलें, तो उन्हें एक ही thread में संकलित करने के लिए इस email का reply करके report करने का अनुरोध किया गया
  • समन्वय संभालने वाले व्यक्ति ने उत्तर देकर बताया कि सभी प्राप्त reports देख ली गई हैं, और रिपोर्टिंग में समय देने वाले प्रतिभागियों का आभार व्यक्त किया

मैलवेयर पैटर्न — atomic-lockfile

  • छेड़छाड़ किए गए पैकेज आम तौर पर npm install atomic-lockfile चलाते हैं, और उसके बाद ora, fast-glob, glob, minimist, axios, commander, execa, chalk, debug जैसे अतिरिक्त npm package नाम जुड़े होते हैं
  • जिन फ़ाइल प्रकारों में malicious command मिला
    • *-deps.install प्रकार की installation scripts
    • *.install package installation scripts
    • *.hook फ़ाइलें — उदाहरण: Exec = /bin/sh -c 'cd /tmp && npm install atomic-lockfile ... 2>/dev/null; exit 0' के रूप में, /tmp में चलाकर error छिपाने और exit करने के लिए
    • कुछ मामलों में यह install.sh जैसी संबंधित फ़ाइलों में भी शामिल था
  • नए बनाए गए malicious package के उदाहरण के रूप में exodus-wallet-bin की रिपोर्ट हुई, जो पहले commit के आधार पर लगभग 4 घंटे पहले बनाया गया नया package था

पता लगाने का तरीका और प्रभाव का दायरा

  • read-only mirror की सीधे जाँच करके इसका पता लगाया गया
    • git clone https://github.com/archlinux/aur.git के बाद, सभी refs पर घूमते हुए git grep 'atomic-lockfile' चलाया गया
    • परिणामस्वरूप atomic-lockfile इंस्टॉल करने वाले लगभग 408 पैकेजों की लंबी सूची मिली, जिसका उपयोग automated cleanup में किया जा सकता है
  • प्रभावित बताए गए पैकेजों के उदाहरण
    • runescape-launcher, oracle-bin, tesseract-gui, python-starsessions, bitcoin-core-git, apple-music-desktop, exodus-wallet-bin, anythingllm-appimage, arm-linux-gnueabihf-binutils आदि
    • cutefish-*, python2-*, python-* जैसी व्यापक package families भी शामिल हैं
  • अलग-अलग रिपोर्टों की संख्या बढ़ने से mail बहुत अधिक हो गए, इसलिए कई मामलों को एक email में जोड़कर भेजने की सलाह दी गई, और IRC में एक संयुक्त package list अलग से साझा की गई

प्रतिरूपण/फ़र्ज़ीवाड़े का तरीका

  • एक विशेष account (arojas) से जुड़े पैकेजों को लेकर यह सवाल उठा कि मामला account takeover का है या commit forgery का
  • इसके जवाब में पुष्टि की गई कि malicious commits पिछले commit के नाम और email का impersonation करते हैं — यानी commit metadata की फ़र्ज़ीबाज़ी
  • उसी उपयोगकर्ता के कुछ अन्य पैकेजों के पहले ही ठीक किए जाने की भी रिपोर्ट मिली

प्रतिक्रिया की वर्तमान स्थिति

  • रिपोर्ट किए गए पैकेज commits को क्रमशः प्रोसेस किया गया, और कुछ आइटम्स पर सुधार पूरा (Done) होने की पुष्टि मिली
  • अतिरिक्त रिपोर्टें आने पर समन्वयकर्ता ने प्राप्त सभी मामलों की सामूहिक समीक्षा की, साथ ही चल रही blocking और reset प्रक्रिया भी जारी रही
  • कई प्रतिभागियों ने commit links के साथ अलग-अलग पैकेजों की रिपोर्ट की, और यह community-led collaborative response के रूप में आगे बढ़ा

1 टिप्पणियां

 
GN⁺ 4 시간 전
Lobste.rs की टिप्पणियाँ
  • इस घटना के बाद कम्युनिटी की गुमनाम और बिना सत्यापित योगदानों पर बची-खुची भरोसे की भावना शायद लगभग खत्म हो जाएगी
    ऐसा लग रहा है जैसे भरोसा रियल टाइम में घिसता जा रहा हो

    • सच कहूँ तो यह अच्छी बात है, और इसमें पहले ही देर हो चुकी थी। अब हमारी इंडस्ट्री को संभल जाना चाहिए
      हम कंप्यूटरों को व्यक्तिगत और संवेदनशील डेटा बहुत ज़्यादा सौंप चुके हैं, और वे आधुनिक जीवन के केंद्र में आ गए हैं। अगर किसी पर्सनल कंप्यूटर में संक्रमण हो जाए, तो वह सचमुच एक विनाशकारी घटना है, और तब बस यही उम्मीद की जा सकती है कि मैं इतना दिलचस्प न निकलूँ कि कोई हैकर खास तौर पर मुझे परेशान करने की ज़हमत उठाए
      फिर भी, किसी न किसी तरह हमने किसी भी रैंडम प्रोग्राम को पूर्ण अधिकारों के साथ चलाना सामान्य बना दिया है[1], और जब भी यह बुरा विचार साबित होता है तो हम हैरान होने का नाटक करते हैं
      [1] यह अभी के यूज़र परमिशन के संदर्भ में है। ज़्यादातर सेटअप में root का व्यावहारिक रूप से बहुत कम मतलब रह जाता है
    • KDE ने एक हफ्ते पहले अपनी बिल्ड पाइपलाइन से AUR हटा दिया था, और शायद यह इसी हमले के पहले वाले संस्करण के जवाब में था
    • AUR पैकेज रिव्यू में web of trust model लागू करना, और हाल की अपडेट्स के साथ cooling period जोड़ना दिलचस्प हो सकता है
      मैं ऐसा सिस्टम सोच सकता हूँ जो AUR पैकेज इंस्टॉल या अपडेट करते समय ऐसे विकल्प दे: अगर पैकेज हाल ही में अपडेट हुआ है तो उसे 1 हफ्ते तक ठंडा होने देना, खुद कुछ मिनट लगाकर पैकेज की समीक्षा करना और अपनी प्रतिष्ठा से जुड़ी signed review छोड़ना, या फिर पर्याप्त भरोसा जुटा चुके कई अलग-अलग लोगों की signed reviews पर निर्भर करना
      cooling period तकनीकी रूप से Arch की उस नीति से मेल न खाए जिसमें सभी पैकेजों को साथ-साथ up to date रखा जाता है। लेकिन AUR पैकेज वैसे भी आधिकारिक सपोर्ट के दायरे में नहीं आते
  • कई घंटे बीत चुके हैं, फिर भी NPM पैकेज अभी तक नहीं हटाया गया है: https://www.npmjs.com/package/atomic-lockfile

  • यह देखने के लिए कि इंस्टॉल किए गए पैकेज प्रभावित हुए हैं या नहीं, aur_pkg_list.txt फ़ाइल के साथ यह छोटा स्क्रिप्ट इस्तेमाल किया जा सकता है

    installed_pkgs="$(yay -Qq)";  
    grep refs aur_pkg_list.txt | awk -F/ '{print $4}' | tr -d ')' \  
    | while read -r pkg; do \  
        echo "$installed_pkgs" | grep "^$pkg\$"; \  
    done  
    

    इसमें semicolon डाले गए हैं, इसलिए इसे one-liner कमांड बनाना आसान है :-)

    • लगता है यह substring तक पकड़ रहा है। उदाहरण के लिए ktea, kteatime से भी मैच हो जाता है
      यह वाला वर्ज़न काम करता हुआ लग रहा है

      grep refs aur_pkg_list.txt | awk -F/ '{print $4}' | tr -d ')' | while read -r pkg; do  
         echo "$installed_pkgs" | grep "^$pkg\$";  
      done  
      
  • संभव है कि यह काफ़ी समय से चल रहा हो। 18 दिन पहले के इस ईमेल को देखें तो लगता है कि इसी तरह का malicious payload इस्तेमाल हुआ था, लेकिन लगता है कि malicious commit को repository से पूरी तरह हटा दिया गया है

  • इसी सिलसिले में, क्या लोकप्रिय Linux distributions की supply chain security posture की तुलना करने वाला कोई अच्छा स्रोत है? अब तक जो ज़्यादातर चीज़ें मिली हैं, वे या तो छुपा हुआ marketing लगती हैं या AI से बना कमजोर लेख। शायद मुझे खुद ही रिसर्च करनी पड़ेगी
    दुखद बात यह है कि मुझे community development के आदर्श पसंद हैं, लेकिन supply chain की चिंता की वजह से मैं ज़्यादा बंद विकल्पों या यहाँ तक कि proprietary software की तरफ़ भी अधिक गंभीरता से देखने लगता हूँ