लिङ्कप्रो लिनक्स रुटकिट
अमेजन वेब सर्भिसेज (AWS) वातावरणको हालैको सम्झौताले पहिले कागजात नगरिएको GNU/Linux रुटकिट प्रकट गर्यो, जुन LinkPro को रूपमा ट्र्याक गरिएको थियो। यो ब्याकडोर eBPF मोड्युलहरूको दोहोरो प्रयोगको लागि उल्लेखनीय छ: एउटा सेट कलाकृतिहरू लुकाउनको लागि, र अर्को जसले स्टिल्थी ट्रिगरको रूपमा काम गर्दछ - एक 'नक' जसले विशेष रूपमा तयार पारिएको TCP प्याकेट देखिएपछि मात्र रिमोट कमाण्ड कार्यक्षमता जगाउँछ। आक्रमण श्रृंखला र रुटकिटको संयन्त्रले एक परिष्कृत अपरेटरलाई चित्रण गर्दछ जसले कन्टेनर दुरुपयोग, कर्नेल-स्तर लुकाउने, र लचिलो नेटवर्क सक्रियतालाई पत्ता लगाउने र फोरेन्सिक सहसम्बन्धलाई निराश पार्न मिश्रण गर्दछ।
सामग्रीको तालिका
संक्रमण भेक्टर र प्रारम्भिक तैनाती
घुसपैठ CVE‑2024‑23897 (CVSS 9.8) को जोखिममा रहेको खुला जेनकिन्स उदाहरणको शोषणबाट सुरु भयो। त्यो आधारबाट, आक्रमणकारीहरूले एक दुर्भावनापूर्ण डकर छवि (kvlnt/vv, डकर हबबाट हटाइएदेखि) धेरै कुबर्नेट्स क्लस्टरहरूमा धकेले। छविले काली लिनक्स आधार प्रयोग गर्यो र स्थिरता, रिमोट पहुँच, र स्टेज गरिएको ब्याकडोर डाउनलोड स्थापना गर्ने उद्देश्यले सानो अनुप्रयोग फोल्डर बोकेको थियो।
मालिसियस डकर छवि भित्र
छविको एप फोल्डरमा फरक भूमिका भएका तीन प्रमुख फाइलहरू थिए:
start.sh — एउटा शेल स्क्रिप्ट जसले SSH सेवा सुरु गर्छ र अन्य दुई कम्पोनेन्टहरू कार्यान्वयन गर्छ।
लिङ्क — VPN/प्रोक्सी क्लाइन्टको रूपमा काम गर्न कम्पाइल/प्याकेज गरिएको खुला-स्रोत कार्यक्रम (vnt), जसले आउटबाउन्डलाई vnt.wherewego[.]top:29872 मा जडान गर्दछ। यसले आक्रमणकारीलाई जहाँबाट पनि सम्झौता गरिएको होस्टमा पुग्न र यस मार्फत अन्य लक्ष्यहरूमा पिभोट गर्न दिन्छ।
एप — रस्ट-आधारित डाउनलोडर (vGet भनेर चिनिन्छ) जसले S3 बकेटबाट इन्क्रिप्टेड vShell पेलोड ल्याउँछ, त्यसपछि 56.155.98[.]37 मा यसको कमाण्ड-एन्ड-कन्ट्रोल (C2) सर्भरमा WebSocket लिङ्क स्थापना गर्दछ।
कुबर्नेट्स नोडहरूमा थप पेलोडहरू डेलिभर गरियो
दुर्भावनापूर्ण छविसँगै, अपरेटरहरूले नोडहरूमा दुई अन्य कम्पोनेन्टहरू पनि छोडे: एउटा ड्रपर जसले अर्को vShell ब्याकडोर स्थापना गर्दछ, र LinkPro, Golang-लिखित रुटकिट। LinkPro दुई मोडहरू मध्ये एकमा चलाउन डिजाइन गरिएको छ - निष्क्रिय (उल्टो) वा सक्रिय (अगाडि) - यसको कन्फिगरेसनमा निर्भर गर्दछ। निष्क्रिय मोडमा, यो एक विशेष नेटवर्क प्याकेट द्वारा सक्रिय हुन पर्खन्छ; सक्रिय मोडमा, यसले C2 मा नै सम्पर्क सुरु गर्दछ। फर्वार्ड मोडले पाँच यातायात प्रोटोकलहरू (HTTP, WebSocket, UDP, TCP, DNS) लाई समर्थन गर्दछ, जबकि रिभर्स मोडले HTTP मा सञ्चार सीमित गर्दछ।
LinkPro कसरी रहन्छ
मालवेयरको समग्र कार्यान्वयन र दृढता व्यवहारले स्पष्ट अनुक्रम पछ्याउँछ:
- Hide eBPF मोड्युल स्थापना गर्नुहोस्। यस मोड्युलमा LinkPro को प्रक्रियाहरू र नेटवर्क गतिविधि लुकाउन प्रयोग गरिने Tracepoint र Kretprobe eBPF प्रोग्रामहरू समावेश छन्।
- यदि Hide eBPF मोड्युल स्थापना गर्न असफल भएमा - वा यदि यो असक्षम पारिएको छ भने - /etc/libld.so मा साझा पुस्तकालय स्थापना गर्नुहोस् र त्यो मार्गलाई /etc/ld.so.preload मा फलब्याक लुकाउने संयन्त्रको रूपमा थप्नुहोस्।
- रिभर्स (प्यासिभ) अपरेशनको लागि, Knock eBPF मोड्युल स्थापना गर्नुहोस्। Knock मा XDP प्रोग्राम र TC प्रोग्राम हुन्छ, त्यसैले C2 च्यानल विशिष्ट 'म्याजिक प्याकेट' प्राप्त गरेपछि मात्र सक्रिय हुन्छ।
- प्रणालीगत सेवा सिर्जना गरेर दृढता स्थापित गर्नुहोस्।
- C2 बाट प्राप्त आदेशहरू कार्यान्वयन गर्नुहोस्।
- बन्द हुँदा वा संकेत गरिएको बेला (SIGHUP, SIGINT, SIGTERM), eBPF मोड्युलहरू अनइन्स्टल गर्नुहोस् र /etc/libld.so प्रिलोड परिमार्जन हटाउनुहोस्/पुनर्स्थापना गर्नुहोस् ताकि प्रणाली पहिलेको अवस्थामा फर्कियोस्।
म्याजिक प्याकेट र नक सक्रियता संयन्त्र
LinkPro को निष्क्रिय सक्रियता एक सटीक TCP प्याकेटमा निर्भर गर्दछ: कुनै पनि TCP प्याकेट जसको विन्डो आकार 54321 बराबर हुन्छ, 'जादुई प्याकेट' को रूपमा व्यवहार गरिन्छ। जब Knock ले त्यो प्याकेट पत्ता लगाउँछ, यसले स्रोत IP भण्डारण गर्छ र यसलाई एक घण्टाको म्याद समाप्तिको साथ ट्याग गर्छ। त्यो स्रोतबाट पछिल्ला TCP प्याकेटहरू निगरानी गरिन्छ र, उपयुक्त हुँदा, Knock ले हेडरहरू पुन: लेख्छ ताकि अपरेटरको ट्राफिक LinkPro को सुन्ने पोर्ट (2333) मा पुन: निर्देशित हुन्छ। आउटबाउन्ड प्याकेटहरू मूल पोर्टलाई नेटवर्कमा फिर्ता प्रस्तुत गर्न समायोजन गरिन्छ (स्रोत पोर्ट 2233 मा पुन: लेखिएको)। उद्देश्य सीधा तर प्रभावकारी छ: आक्रमणकारीलाई फ्रन्ट-एन्ड फायरवालले अनुमति दिएको कुनै पनि पोर्ट मार्फत LinkPro मा पुग्न अनुमति दिनुहोस्, जबकि होस्टको आन्तरिक नेटवर्क गतिविधिसँग बाह्य फायरवाल लगहरू सहसम्बन्ध गर्न गाह्रो बनाउँछ।
LinkPro ले आफूलाई कसरी लुकाउँछ
LinkPro ले दुई-स्तरीय लुकाउने रणनीति प्रयोग गर्दछ:
कर्नेल/eBPF लुकाउने : EBPF लुकाउने मोड्युलले Tracepoint र Kretprobe प्रोग्रामहरू स्थापना गर्दछ जसले getdents (फाइलहरू/डाइरेक्टरीहरू लुकाउन) र sys_bpf (यसको आफ्नै BPF प्रोग्रामहरू लुकाउन) जस्ता प्रणाली कलहरूलाई अवरोध गर्दछ। यो दृष्टिकोणलाई CONFIG_BPF_KPROBE_OVERRIDE सक्षम पारिएको कर्नेल आवश्यक पर्दछ।
प्रयोगकर्ता-स्पेस LD_PRELOAD फलब्याक : यदि कर्नेल क्षमता उपस्थित छैन भने, LinkPro ले साझा पुस्तकालय (libld.so) लेख्छ र यसको मार्ग /etc/ld.so.preload मा राख्छ। किनभने /etc/ld.so.preload ले निर्दिष्ट पुस्तकालयलाई प्रत्येक गतिशील रूपमा लिङ्क गरिएको प्रक्रियामा लोड गर्न लगाउँछ (/lib/ld-linux.so र glibc प्रयोग गर्नेहरू), प्रत्यारोपित libld.so ले libc प्रकार्यहरूलाई चाँडै (glibc को आफ्नै व्यवहार अघि) हुक गर्छ र libc कलहरूबाट फिर्ताहरू परिवर्तन गर्दछ जसले अन्यथा यसको उपस्थितिलाई उजागर गर्ने कलाकृतिहरू लुकाउँछ।
रुटकिट क्षमताहरू र आदेश सेट
LinkPro ले अन्तरक्रियात्मक र स्वचालित रिमोट कार्यहरू दुवैलाई समर्थन गर्दछ। यसका कार्यान्वयन गरिएका सुविधाहरूमा समावेश छन्:
- /bin/bash स्यूडो-टर्मिनल सुरु गर्दै र अन्तरक्रियात्मक शेल सत्रहरू चलाउँदै।
- मनमानी शेल आदेशहरू कार्यान्वयन गर्दै।
- फाइलहरू र निर्देशिकाहरू गणना गर्ने र फाइल सञ्चालनहरू गर्ने।
- डिस्कमा फाइलहरू डाउनलोड र लेख्दै।
- पिभोटिंग र लिभिङ-अफ-द-ल्याण्ड प्रोक्सीइङको लागि SOCKS5 प्रोक्सी टनेल स्थापना गर्दै।
नेटवर्क प्रोटोकल समर्थन र C2 व्यवहार
सक्रिय (फर्वार्ड) मोडमा LinkPro लचिलो छ: यसले HTTP, WebSocket, UDP, TCP, वा DNS ट्रान्सपोर्टहरू प्रयोग गरेर सञ्चार गर्न सक्छ। निष्क्रिय (रिभर्स) मोडमा यसको सञ्चार HTTP मा सीमित छ तर स्टिल्थबाट फाइदा हुन्छ किनभने यसले Knock म्याजिक प्याकेटले अस्थायी एक-घण्टा कमाण्ड विन्डो खोलेपछि मात्र सुन्छ।
व्यवहार सफा र स्थापना रद्द गर्नुहोस्
यदि प्रक्रियाले समाप्ति संकेतहरू प्राप्त गर्छ भने, LinkPro ले ट्रेसहरू हटाउने लक्ष्य राख्छ: यसले स्थापित eBPF मोड्युलहरू अनइन्स्टल गर्छ र /etc/libld लाई मेटाउँछ वा पुनर्स्थापित गर्छ, यसलाई पहिलेको अवस्थामा समूहबद्ध गर्छ ताकि प्रणाली अपरिवर्तित देखिन्छ। यो जानाजानी सफाई दिनचर्याले अपरेटरलाई चोरी र दीर्घकालीन फोरेन्सिक पदचिह्नहरू कम गर्ने बारे चिन्तित रहेको संकेत गर्दछ।
सञ्चालन सन्दर्भ र विशेषता
अभियानले उच्च-गम्भीरता जेनकिन्स शोषण, दुर्भावनापूर्ण कन्टेनर छविहरू, धेरै ब्याकडोर भेरियन्टहरू, र कर्नेल-स्तरको स्टिल्थ प्रयोग गर्यो - एक संयोजन जसले प्रेरित, सक्षम अपरेटरलाई औंल्याउँछ। कुनै निश्चित एट्रिब्युशन सार्वजनिक गरिएको छैन; यद्यपि, प्रोक्सीइङ र निरन्तर रिमोट पहुँचको लागि सम्झौताको उपकरणसेट र स्पष्ट प्रयोगले आर्थिक रूपमा प्रेरित गतिविधि (पिभोटिंग, थप घुसपैठको लागि प्रोक्सीइङ, वा पहुँचको पुन: बिक्री) लाई दृढतापूर्वक सुझाव दिन्छ।
कर्नेल निर्भरता र फलब्याक व्यवहार
LinkPro ले यसको स्टिल्थी कर्नेल अवरोधको लागि BPF kprobe ओभरराइड सुविधाहरूमा निर्भर गर्ने भएकोले, यसले होस्ट कर्नेलले CONFIG_BPF_KPROBE_OVERRIDE लाई उजागर गर्दा मात्र कर्नेल-स्तर लुकाउने प्रविधि लागू गर्दछ। जहाँ त्यो कर्नेल क्षमता हराइरहेको छ, LinkPro जानाजानी LD_PRELOAD साझा-पुस्तकालय विधिमा फर्कन्छ जसले गर्दा प्रयोगकर्ता ठाउँमा आफूलाई लुकाउन सकिन्छ, जसले गर्दा वातावरणको विस्तृत दायरामा लुकाउने सुनिश्चित हुन्छ।
समापन नोट
LinkPro ले कसरी आधुनिक घुसपैठहरूले कन्टेनर सम्झौता, स्टेज्ड लोडरहरू, कर्नेल इन्स्ट्रुमेन्टेसन (eBPF), र चतुर नेटवर्क ट्रिक्सहरू (जादुई-प्याकेट सक्रियता र पोर्ट-रिराइटिङ) लाई स्टिल्थ र लचिलोपन कायम राख्न संयोजन गर्न सक्छन् भनेर देखाउँछ। पत्ता लगाउने र उपचारको लागि अनधिकृत eBPF कार्यक्रमहरू, /etc/ld.so.preload मा अप्रत्याशित प्रविष्टिहरू, असामान्य प्रणालीगत सेवाहरू, र संकेत गरिएको पूर्वाधारमा नेटवर्क जडानहरूको लागि सावधानीपूर्वक निरीक्षण आवश्यक पर्दछ (फोरेन्सिक सूचकहरूमा IP 56.155.98[.]37, पोर्टहरू 29872, 2333, 2233, र हटाइएको डकर छवि नाम kvlnt/vv समावेश छन्)।