काठमाडौं । झट्ट क्रस साइट स्क्रिप्टिङ (एक्सएसएस) शब्द सुन्दा तपाईंलाई अलि जटिल र प्राविधिक जस्तो लाग्न सक्छ । यो एउटा यस्तो तरिका हो, जसमा ह्याकरहरूले वेबसाइटमा खराब कोड राखेर प्रयोगकर्ताहरूले हेर्ने पेजमा जाल बिछ्याउँछन् र हमला गर्छन् । यो प्रक्रिया कस्तो हो, भन्ने बुझ्न एउटा घटनालाई आधार मानौं ।
सेमी वर्म घटना
सन् २००५ मा भएको यो नै एक्सएसएसको सबैभन्दा चर्चित घटना हो । १६ वर्षीय युवक समी कमकारले उक्त आक्रमण सुरु गरेको बताइन्छ । उनी अहिले युट्युबमा इथिकल ह्याकिङ बारेमा सिकाउँछन् । उनका भिडिओ हेर्न यहाँ क्लिक गर्न सक्नुहुन्छ । त्यतिबेला उनी माइस्पेस (MySpace) नामक सामाजिक सञ्जाल प्लेटफर्म प्रयोग गरिरहेका थिए । उनले एउटा यस्तो काम गरे, जसले गर्दा धेरै ठुलो परिवर्तन आयो ।
समीले एउटा स्क्रिप्ट (कोड) लेखे र त्यसलाई माइस्पेसको प्रोफाइलमा इन्जेक्ट गरे । जसले उनको प्रोफाइल भिजिट गर्थ्यो, उसको प्रोफाइल सो कोडले संक्रमित तुल्याउँथ्यो । तर, उक्त व्यक्तिलाई प्रोफाइलमा परेको असर थाहै हुन्न थ्यो ।
जजसले समीको प्रोफाइल भिजिट गरे, ती व्यक्तिले थाहै नपाई उक्त कोडले समीलाई फ्रेन्डको रूपमा एड गर्थ्यो । र, कोडले आफैँ ‘तर सबै भन्दा धेरै, समी मेरो हिरो हो’ भन्ने मेसेज जान्थ्यो । त्यसबाट यो यसरी फैलियो कि जसले समीको प्रोफाइल भिजिट गर्थे, उनीहरूको प्रोफाइल आफैँ सङ्क्रमित हुन्थ्यो । यसैगरी सङ्क्रमित भएको अर्को प्रोफाइल हेर्ने व्यक्तिको प्रोफाइल पनि सङ्क्रमित हुन्थ्यो । २४ घण्टाको अवधिमा यसबाट लाखौं प्रयोगकर्ताका अकाउन्ट सङ्क्रमित भए ।
समीले यो केबल रमाइलोका लागि मात्र गरेका थिए । तर, यसको असरले गर्दा माइस्पेस प्लेटफर्म अफलाइन हुनुपर्ने परिस्थिति सिर्जना भयो । यता समी कानुनी झमेलामा परे । एउटा सानो घटना साइबर स्पेसमा कसरी भयानक घटनामा परिणत हुन्छ भन्ने विषय त्यसबाट उजागर भयो ।
पेपालमा क्रस साइट स्क्रिप्टिङ आक्रमण
भुक्तानी सेवा प्रदायक कम्पनी पेपाल सुरुवातदेखि नै सुरक्षित र भरपर्दो कारोबारका कारण बढी प्रयोग हुँदै आएको हो । सन् २००६ मा पेपालमा क्रस साइट स्क्रिप्टिङको कमजोरी भेटियो ।
यस आक्रमणको सहायताले ह्याकरले पेपालको वेबसाइटभित्र खराब कोड इन्जेक्ट गर्न सक्थे । जसबाट उनीहरूले ग्राहकहरूलाई उनीहरूको संवेदनशील जानकारी जस्तै क्रेडिट कार्ड नम्बर, सामाजिक सुरक्षा नम्बर र एटीएम पिन देखाउन बाध्य पार्थे ।
आक्रमणकारीले प्रयोगकर्तालाई पेपालकै सक्कली वेब पेजमार्फत नक्कली वेबपेजमा पुर्याउन सक्थे । जसलाई फिशिङ टेक्निक (माछालाई चारो देखाएर जालोमा पारे जस्तो इन्टरनेटमा प्रयोगकर्तालाई जालोमा पार्ने काम) पनि भन्ने गरिन्छ ।
त्यसमा उनीहरूले प्रयोगकर्तालाई लगइनका लागि अनुरोध गर्थे । र, प्रयोगकर्ता आफ्नो व्यक्तिगत विवरण बुझाउँथे । त्यस्तो जानकारी आक्रमणकारीहरूले ठुलो मात्रामा सङ्कलन गरे । यसले गर्दा पीडित प्रयोगकर्ताहरूको पहिचान चोरी र आर्थिक नोक्सान हुने सम्भावना बढ्यो ।
तर पेपालले तत्कालै यो सुरक्षा कमजोरी पत्ता लगायो र समाधान गर्यो । तर, यस घटनाले अनलाइन भुक्तानी प्रणालीहरूमा प्रयोगकर्ताको डेटा सुरक्षित राख्न सशक्त सुरक्षा उपायहरूको महत्त्वलाई उजागर गर्यो ।
ब्रिटिश एयरवेज डेटा ब्रिच
ब्रिटिश एयरवेज जस्तो ठुलो कम्पनी पनि एक्सएसएस जस्तो आक्रमणबाट बच्न सकेन । सन् २०१८ मा यसमा रहेको एक्सएसएस कमजोरीका कारण लाखौं प्रयोगकर्ताको डेटा बाहिरियो । यसको वेबसाइटमा भएको कमजोरीका कारण ह्याकरले हानिकारक कोड इन्जेक्ट गर्न सफल भए ।
यसबाट प्रयोगकर्ताको जानकारी, उनीहरूको भुक्तानी विवरण लगायत ह्याकरको हातमा परे । करिब तीन लाख ८० हजार ग्राहकको व्यक्तिगत तथा वित्तीय जानकारी यसरी चोरी भएको बताइएको छ ।
के हो त क्रस साइट स्क्रिप्टिङ अर्थात् एक्सएसएस ?
यो विषयको चर्चा गर्नु अघि पहिला वेबसाइट कसरी बन्छ भन्ने जानौं । सामान्यतः वेबसाइट तीन तत्व एचटीएमएल, सीएसएस र जाभास्क्रिप्टले बनेको हुन्छ । एचटीएमएलले आकार दिन्छ, सीएसएसले डिजाइन निर्धारण गर्छ र जाभास्क्रिप्टले मस्तिष्कको जस्तो काम गर्छ । यदि केही गरी कसैले मस्तिष्कलाई नै नियन्त्रणमा लिन सक्यो भने उसले जे चाह्यो, त्यही गराउन सक्छ ।
हो, यही जाभास्क्रिप्टलाई कसैले नियन्त्रणमा लिने गोप्य कोड थाहा पायो भने उसले चाहे जसरी वेबसाइट प्रयोग गर्न सक्छ । क्रस-साइट स्क्रिप्टिङमा यस्तो तरिका अपनाइन्छ, जसले वेबसाइटलाई नियन्त्रणमा लिन सघाउँछ । ह्याकरले यस्तो कोड पठाउँछन्, जसले गर्दा वेबसाइट ह्याकरको नियन्त्रणमा जान्छ । वा भनौं उसले चाहेको जस्तो काम गर्छ ।
अब यसको काम गर्ने तरिका बुझौं । सबैभन्दा पहिला एक्सएसएस कमजोरी फेला पारिसकेपछि आक्रमणकारीले त्यस ठाउँमा हानिकारक कोड राखिदिन्छन्, जहाँ भिजिटर बारम्बार पुगिरहेका हुन्छन् । जब प्रयोगकर्ताले उक्त पेज भिजिट गर्छ, त्यसपछि हानिकारक कोड उनीहरूको ब्राउजरमा एक्जिक्युट हुन्छ अर्थात् सर्च । र, उक्त स्क्रिप्टले संवेदनशील जानकारी जस्तै कुकिज, सेसन टोकन र व्यक्तिगत जानकारी चोरी गर्छ ।
एक्सएसएस सामान्यतः तीन प्रकारका हुन्छन् ।
१) स्टोर्ड एक्सएसएस
यस्तो स्क्रिप्ट, जसलाई स्थायी रूपमा टार्गेट गरिएको सर्भर जस्तैः डेटाबेस वा मेसेज बोर्डमा राखिन्छ । यसलाई एक्सएसएसको सबैभन्दा खरतनाख रूप मानिन्छ । जसलाई टार्गेट गरिएको सर्भरमा सधैंका लागि राखिने भएकाले जतिबेला त्यो पेज नयाँ भिजिटरले भिजिट गर्छ, कोड एक्जिक्युट हुन्छ । अर्थात् कोडले जे डेटा चोर्नुपर्ने हो, त्यो डेटा लिएर जान्छ ।
उदाहरणका लागि फेसबुकको वेबसाइट छ, जहाँ हामी विभिन्न पोस्टमा कमेन्ट गर्छौं । अब मानौं आक्रमणकारीले कमेन्ट सेक्सनमा स्क्रिप्ट इन्जेक्ट गरिदिएको छ । कमेन्ट फेसबुक वेबसाइटको डेटाबेसममा भण्डारण हुने भएकाले जब कुनै कोही व्यक्तिले उक्त कमेन्ट सेक्सन हेर्छ, त्यतिबेला उसको ब्राउजरमा आक्रमणकारीको कोड एक्जिक्युट हुन्छ । र, कुकिज, लग, एक्टिभिटी चोर्नुका साथै प्रयोगकर्तालाई खतरनाख वेबसाइटसम्म पुर्याउँछ ।
२) रिफ्लेक्टेड एक्सएसएस
यस्तो स्क्रिप्ट, जसले सर्च रिजल्ट वा इरर मेसेजका रूपमा वेब सर्भरलाई दर्शाउँछ । यो माथिको स्टोर्ड एक्सएसएस जस्तो सर्भरमा भण्डारण भने हुँदैन । यो वेबपेजमा देखिने भएकाले यसलाई रिफ्लेक्टेड एक्सएसएस भनिएको हो ।
यसमा प्रयोगकर्ताले क्लिक गर्ने ठाउँमा आक्रमणकारीले स्क्रिप्ट भएको खतरनाख लिङ्क राखेका हुन्छन् । उक्त स्क्रिप्ट खासगरी सर्चबारमा राखिएको हुन्छ । त्यसपछि सर्चबारमा इरर जस्तो पपअप देखिन्छ । र, खतरनाख स्क्रिप्ट एक्जिक्युट भई आफ्नो काम अर्थात् डेटा चोर्ने काम गर्छ ।
उदाहरणका लागि तपाईंले कुनै ईकमर्स साइट भिजिट गर्नुभयो । अब त्यसमा भएको सर्चबारमा कुनै प्रोडक्ट सर्च गर्नुभयो । तर, त्यसमा आक्रमणकारीले हानिकारक कोड इन्जेक्ट गरेको रहेछ भने इरर मेसेज सहितको लिङ्क
(http://example.com/search?q=<script>alert('Hacked!')</script>) देखाउँछ ।
यस्तोमा तपाईंले लिङ्क क्लिक गर्नुभयो भने कोड एक्जिक्युट हुन्छ र ह्याक भएको भनेर पपअप अलर्ट देखिन्छ । त्यसपछि उक्त कोडको सहायताले आक्रमणकारीले तपाईंको संवेदनशील जानकारी चोर्छ ।
३) डीओएम बेस्ड एक्सएसएस
यस्तो आक्रमण, जसलाई क्लाइन्टको साइडबाट एक्जिक्युट गरिन्छ । यसमा सर्भरसँगको रिक्वेस्ट आवश्यक पर्दैन । उदाहरणका लागि कुनै वेबसाइट छ, जसले यूआरएलको पारामिटर पढ्न जाभास्क्रिप्ट प्रयोग गर्छ ।
र, त्यही अनुसार वेबपेजको कन्टेन्ट अपडेट गर्छ । यदि जाभास्क्रिप्टले इन्पुटलाई सेनिटाइज नगर्ने समस्या छ भने आक्रमणकारीले यस्तो यूआरएल बनाउँछः http://example.com/#<script>alert('Hacked!')</script> । यदि वेबसाइटले आक्रमणकारीको इन्पुटलाई विश्वास गरेर लियो र भ्यालिडेट नगरी डीओएम अपडेट गर्यो भने प्रयोगकर्ताको ब्राउजरमा कोड एक्जिक्युट हुन्छ र, आक्रमणकारीले डेटा चोर्छ ।
कसरी जोगिने ?
एक्सएसएस हेर्दा एउटा प्राविधिक कमजोरी, जो डेभलपरको मात्र सवालको विषय हो भन्ने लाग्न सक्छ । तर, यसले हामी सबैलाई असर गर्छ । हामीले वेबसाइटमा लगइन गर्यौं, मेसेज पठायौं वा कमेन्ट गर्यौं भने हामीले ती प्लेटफर्म सुरक्षित छन् भन्ने विश्वास गरेका हुन्छौं ।
तर, यदि ह्याकरले ती वेबसाइटको कमजोरी पत्ता लगाई त्यसमा हानिकारक कोड इन्जेक्ट गरे भने हाम्रो डेटा पनि चोरिन्छ । त्यसैले वेबसाइट सञ्चालकले यस्ता विषयलाई गम्भीरतापूर्वक लिनुपर्छ । प्रयोगकर्ताले पनि जुन पायो, त्यही वेबसाइटमा लगइन गर्नु हुँदैन ।