31 पॉइंट द्वारा GN⁺ 2024-04-03 | 7 टिप्पणियां | WhatsApp पर शेयर करें
  • 2 साल से अधिक समय तक "Jia Tan" नाम का उपयोग करने वाला एक हमलावर xz compression library में एक मेहनती और प्रभावी contributor के रूप में सक्रिय रहा, और अंततः उसे commit access और maintainer अधिकार दे दिए गए।
  • उसने इन अधिकारों का उपयोग करके liblzma में, जो xz का हिस्सा है और Debian, Ubuntu, Fedora तथा अन्य systemd-आधारित Linux सिस्टम में OpenSSH sshd की dependency भी है, एक बहुत ही सूक्ष्म और सावधानी से छिपाया गया backdoor स्थापित किया।
  • यह backdoor SSH session शुरू होने पर हमलावर द्वारा भेजे गए छिपे हुए command पर नज़र रखता था, जिससे हमलावर बिना login किए target system पर मनचाहा command चला सकता था। यह unauthenticated target remote code execution था।
  • इस हमले का 29 मार्च 2024 को सार्वजनिक खुलासा हुआ, और यह व्यापक रूप से उपयोग किए जाने वाले open source software पर पहला गंभीर supply-chain attack प्रतीत होता है।
  • open source supply-chain security के लिए यह एक watershed moment है।
  • यह पोस्ट इस हमले के social engineering पहलुओं की एक विस्तृत timeline है, जिसकी शुरुआत संभवतः 2021 के अंत तक जाती है।

प्रस्तावना

  • 2005-2008 में, Lasse Collin ने अन्य लोगों की मदद से .xz file format डिज़ाइन किया, जिसमें LZMA compression algorithm का उपयोग होता है और यह फ़ाइलों को gzip की तुलना में लगभग 70% आकार तक compress करता है।
  • समय के साथ यह format tar files, Linux kernel images आदि को compress करने के लिए व्यापक रूप से इस्तेमाल होने लगा।

Jia Tan का उभरना और समर्थक

  • 2021-10-29: Jia Tan ने xz-devel mailing list पर अपना पहला हानिरहित patch भेजा।
  • 2021-11-29: Jia Tan ने दूसरा हानिरहित patch भेजा।
  • 2022-04-19: Jia Tan ने एक और हानिरहित patch भेजा।
  • 2022-04-22: "Jigar Kumar" ने शिकायत की कि Jia Tan का patch अभी तक merge नहीं हुआ है।
  • 2022-05-19: "Dennis Ens" ने XZ for Java की maintenance स्थिति के बारे में पूछा।
  • 2022-05-19: Lasse Collin ने धीमे जवाब के लिए माफ़ी मांगी और उत्तर दिया कि "Jia Tan off-list XZ Utils में मदद कर रहा है, और कम से कम XZ Utils में बड़ी भूमिका ले सकता है।"
  • 2022-05-27: Jigar Kumar ने patch thread पर दबाव बनाने वाला email भेजा।
  • 2022-06-07: Jigar Kumar ने Java thread पर दबाव बनाने वाला email भेजा।
  • 2022-06-08: Lasse Collin ने जवाब दिया कि उनकी रुचि खत्म नहीं हुई है, लेकिन mental health समस्याओं के कारण वे सीमित हैं।
  • 2022-06-10: Lasse Collin ने Jia Tan द्वारा लिखा गया पहला commit merge किया।
  • 2022-06-14: Jugar Kumar ने एक और दबाव वाला email भेजा।
  • 2022-06-21: Dennis Ens ने maintenance किसी और को सौंपने का सुझाव देने वाला दबावपूर्ण email भेजा।
  • 2022-06-22: Jigar Kumar ने C patch thread पर दबाव वाला email भेजा।
  • 2022-06-29: Lasse Collin ने उत्तर में संकेत दिया कि "Jia Tan project में बड़ी भूमिका ले सकता है।"

Jia Tan maintainer बनता है

  • ऐसा लगता है कि Lasse ने Jia Tan के साथ अधिक नज़दीकी से काम करना शुरू किया। Jigar Kumar और Dennis Ens संभवतः नकली व्यक्ति थे।
  • 2022-09-27: Jia Tan ने 5.4.0 release summary दी।
  • 2022-11-30: Lasse Collin ने bug report email को अपने निजी पते से बदलकर Jia Tan के साथ साझा alias पर कर दिया।
  • 2022-12-30: Jia Tan ने xz repository में सीधे अपना पहला commit merge किया।
  • 2023-01-11: Lasse Collin ने अपनी आख़िरी release v5.4.1 को tag और build किया।
  • 2023-03-18: Jia Tan ने अपनी पहली release v5.4.2 को tag और build किया।
  • 2023-03-20: Jia Tan ने Google oss-fuzz configuration अपडेट किया ताकि bug reports उसे भेजी जाएँ।
  • 2023-06-22: Hans Jansen ने "GNU indirect function" feature का उपयोग करने वाले patch की एक जोड़ी भेजी, जिसे Lasse Collin ने rework किया और Jia Tan ने merge किया।
  • 2023-07-07: Jia Tan ने oss-fuzz build के दौरान ifunc support को disable कर दिया।
  • 2024-01-19: Jia Tan ने web site को GitHub Pages पर migrate किया और XZ Utils web page पर नियंत्रण हासिल कर लिया।

हमला शुरू

  • 2024-02-23: Jia Tan ने test input files के भीतर छिपा backdoor binary code merge किया।
  • 2024-02-24: Jia Tan ने v5.6.0 tag किया और malicious build-to-host.m4 शामिल करने वाला xz-5.6.0.tar.gz distribution प्रकाशित किया।
  • 2024-02-24: Gentoo में 5.6.0 पर crash होना शुरू हुआ।
  • 2024-02-26: Debian ने xz-utils 5.6.0-0.1 को unstable में जोड़ा।
  • 2024-02-28: Debian ने xz-utils 5.6.0-0.2 को unstable में जोड़ा।
  • 2024-02-29: GitHub पर @teknoraver ने liblzma को libsystemd से link न करने के लिए pull request भेजा।
  • 2024-02-28: Jia Tan ने Landlock support की जाँच के लिए उपयोग होने वाले C program में एक सूक्ष्म typo जोड़ा, जिससे configure script की Landlock detection टूट गई।
  • 2024-03-04: RedHat distributions में liblzma के _get_cpuid में Valgrind errors आने लगे।
  • 2024-03-05: libsystemd PR merge हो गया और liblzma हटा दिया गया।
  • 2024-03-05: Debian ने xz-utils 5.6.0-0.2 को testing में जोड़ा।
  • 2024-03-05: Jia Tan ने ifunc bug fix commit किया।
  • 2024-03-08: Jia Tan ने Valgrind fix के लिए commit किया।
  • 2024-03-09: Jia Tan ने backdoor files अपडेट करने वाला commit किया।
  • 2024-03-09: Jia Tan ने v5.6.1 tag किया और xz 5.6.1 distribution प्रकाशित किया।
  • 2024-03-20: Lasse Collin ने kernel के xz compression code के maintainer के रूप में अपने और Jia Tan के नाम जोड़ने वाला patch set LKML पर भेजा।
  • 2024-03-25: Hans Jansen ने xz-utils को 5.6.1 पर अपडेट करने के लिए Debian bug file किया।
  • 2024-03-28: Jia Tan ने Ubuntu bug file किया ताकि Debian से xz-utils को 5.6.1 पर अपडेट किया जाए।

हमले का पता लगना

  • 2024-03-28: Andres Freund ने bug खोजा और Debian तथा distros@openwall को निजी रूप से सूचित किया। RedHat ने CVE-2024-3094 assign किया।
  • 2024-03-28: Debian ने 5.6.1 rollback किया और 5.6.1+really5.4.5-1 पेश किया।
  • 2024-03-29: Andres Freund ने सार्वजनिक oss-security@openwall list पर backdoor alert पोस्ट किया और कहा कि उन्होंने इसे "पिछले कुछ हफ्तों में" खोजा था।
  • 2024-03-29: RedHat ने घोषणा की कि backdoor वाला xz Fedora Rawhide और Fedora Linux 40 beta में वितरित किया गया था।
  • 2024-03-30: Debian ने builds रोक दिए और Debian stable का उपयोग करके build machines को फिर से बनाया।

GN⁺ की राय

  • यह घटना open source software पर supply-chain attack के संदर्भ में एक महत्वपूर्ण turning point होगी। वजह यह है कि लंबे समय तक चले social engineering approach के ज़रिए साज़िशकर्ताओं ने भरोसा जीता, access अधिकार हासिल किए, और फिर व्यापक रूप से इस्तेमाल होने वाली core library में चुपचाप backdoor स्थापित कर दिया।
  • open source projects की governance और अधिकार-हस्तांतरण प्रक्रिया पर फिर से विचार करने की ज़रूरत है। यह देखने लायक है कि distributed governance model अपनाया जाए ताकि project किसी एक core maintainer की व्यक्तिगत परिस्थितियों पर निर्भर न रहे।
  • बड़े open source projects के लिए security audit और code review और भी अधिक महत्वपूर्ण होंगे। संदिग्ध changes पकड़ने और अधिकारों के दुरुपयोग को रोकने के लिए automated checking tools की भी ज़रूरत है। उदाहरण के लिए, binary data जोड़ने पर alert जैसी व्यवस्था।
  • open source model के फायदों को नुकसान पहुँचाए बिना—जहाँ development सार्वजनिक रूप से होता है और कोई भी योगदान दे सकता है—ऐसे तकनीकी और संस्थागत उपाय होने चाहिए जो malicious contributors की पहचान कर सकें और हमलों को शुरुआती चरण में रोक सकें।
  • जिन open source projects में security-weak languages या tools का उपयोग होता है, उनमें जोखिम अधिक होगा। memory safety, static analysis, fuzzing जैसी बहुआयामी सुरक्षा कोशिशों के साथ आधुनिक tools की ओर migration भी ज़रूरी होगा।
  • backdoor के छिपे activation conditions, distribution path, और impact scope जैसी बातों पर विस्तृत analysis results में रुचि केंद्रित होगी। इससे भविष्य में ऐसे ही हमलों से बचाव के लिए महत्वपूर्ण insights मिल सकते हैं।

7 टिप्पणियां

 
sagee 2024-04-09

इस घटना के बाद जो बात चिंता में डालती है..
ओपन सोर्स डेवलपर के PC को हैक करना, या उसका अपहरण/नज़रबंदी करने के बाद, या पैसे देकर खरीदकर उसमें malicious code डलवाना वगैरह..
पैसों की बात सोचकर यह भी खयाल आता है कि क्या ओपन सोर्स डेवलपर ठीक-ठाक जिंदगी जी रहे हैं?

 
botplaysdice 2024-04-05

मैं security side में काम करता हूँ, तो code review करते वक्त अगर कोई bug मिल जाए, तो ऐसा मज़ाक निकलता है—क्या तुम यह code घुसाने के लिए 5 साल पहले यहाँ join हुए थे? lol

 
aer0700 2024-04-04

Lesser Collin के लिए यह कई मायनों में काफ़ी मुश्किल रहा होगा...

 
xcutz 2024-04-03

हाँ, archlinux ने तो बहुत पहले ही patch कर दिया था~ आओ आओ, हाँ backdoor out, latest arch सबसे बढ़िया~

 
tpdns90321 2024-04-07

pacman -Syu

 
sdkfile 2024-04-03

Lasse Collin ने इस घटना को समेटते हुए एक लेख पोस्ट किया है
https://tukaani.org/xz-backdoor/

 
GN⁺ 2024-04-03
Hacker News की राय
  • घटना का शानदार सारांश और सभी लिंक एक ही जगह पर हैं, इसलिए जो लोग यह सीखना चाहते हैं कि social engineering हमला वास्तव में कैसे सामने आता है, उनके लिए यह एकदम उपयुक्त सामग्री है.

    • "हमले की शुरुआत" हिस्से में Ubuntu और Debian का ज़िक्र है, लेकिन Fedora छूट गया है, इसलिए पूर्णता के लिए उसे जोड़ा जा सकता है.
    • ऐसा लगता है कि Fedora पर social engineering का दबाव 4 मार्च 2024 से पहले वाले सप्ताह में शुरू हो गया था.
  • यह बताया गया कि Fedora timeline छूट गई है.

    • "Jia Tan" नाम के व्यक्ति ने 27 फ़रवरी से 27 मार्च के बीच संपर्क करने की कोशिश की, ताकि Fedora 40 और 41 में नया xz शामिल कराया जा सके.
  • यह राय रखी गई कि सिस्टम के भीतर समझना मुश्किल code को अब और बर्दाश्त नहीं किया जाना चाहिए.

    • तर्क दिया गया कि M4 और जटिल shell scripts को हटाने का समय आ गया है.
  • इसे उन सकारात्मक परिणामों में से एक माना गया जो upgrades के प्रति अधिक सतर्क रवैये को बढ़ा सकते हैं.

    • developers सहित बहुत से लोगों को upgrades को हमेशा अच्छी चीज़ मानने के बजाय उसके जोखिम और लाभ को सावधानी से तौलना चाहिए.
  • सुझाव दिया गया कि FOSS community में अशिष्ट users पर व्यवस्थित रूप से प्रतिबंध लगाया जा सकता है, या community awareness बढ़ाकर अशिष्ट व्यवहार के प्रति अधिक कड़ी प्रतिक्रिया देने वाला सांस्कृतिक बदलाव लाया जा सकता है.

  • यह इंगित किया गया कि email address format को लेकर की गई टिप्पणी ग़लत थी.

    • Jigar Kumar और Dennis Ens के email address format अलग हैं, और इससे यह न तो साबित होता है और न खारिज कि दोनों एक ही व्यक्ति (sokcpuppets) हैं.
  • इस बात पर चिंता जताई गई कि social pressure कितनी आसानी से लोगों से अपना नियंत्रण छुड़वा देता है.

    • यह कल्पना करना भी मुश्किल है कि XZ के मूल रचनाकार के लिए यह घटना कितनी चौंकाने वाली रही होगी, और उम्मीद जताई गई कि यह मामला दूसरे open source संबंधित लोगों के लिए एक मज़बूत उदाहरण बने कि वे दूसरों के दबाव के आगे न झुकें.
  • एक maintainer के रूप में यह ज़ोर देकर कहा गया कि contributor या user जितना ज़्यादा लगातार दबाव डालेगा, उसकी मांग मानने की संभावना उतनी ही कम हो जाएगी.

  • Joe Cooper की राय का हवाला देते हुए, project maintainers पर डाले जाने वाले दबाव को लेकर उनका दृष्टिकोण साझा किया गया.

  • यह समझाया गया कि छिपा हुआ backdoor binary code, binary test input files के भीतर बहुत चतुराई से छिपाया गया था, और चूँकि ये files ज़्यादातर hex editor से हाथ से बनाई गई थीं, इसलिए file खुद ही सबसे अच्छा "source code" है.

    • यह उन लोगों के लिए चेतावनी है जो open source software में unsupported hardware के लिए binary blobs का समर्थन करते हैं.
    • यह तर्क दिया गया कि या तो चीज़ें source form में reproducible हों, वरना उनका अस्तित्व ही नहीं होना चाहिए.