क्या एईएम में सुरक्षा एक मंच या कार्यान्वयन मुद्दा है?

द्वारा पोस्ट: एंड्री पिंचुक | प्रमाणित वरिष्ठ एईएम डेवलपर

स्थिति की कल्पना करें: आप शांति से सोते हैं और अपना तीसरा सपना देखते हैं, जब अचानक फोन बजता है - एक असंतुष्ट ग्राहक शिकायत करता है कि पूरी प्रणाली अनुपलब्ध है। सहमत हूं, ऐसे आयोजन एईएम डेवलपर, पूरी टीम और समाधान प्रदाता के जीवन के लिए असुविधाजनक हैं। कुछ भी नहीं किया जाना है, एक शुरुआती वृद्धि और आगे समाधान की तलाश है।


अपने पेशेवर जीवन में होने वाले ऐसे आनंदमय क्षणों को रोकने के लिए, मैं आपको विशिष्ट सुरक्षा समस्याओं और उनके खिलाफ बेहतर बीमा करने के बारे में बताता हूँ।



मैं इस तरह की योजना का पालन करूंगा:


  1. लेखक के स्तर पर सुरक्षा;
  2. स्तर की सुरक्षा प्रकाशित करें;
  3. डिस्पैचर सुरक्षा
  4. सीएसआरएफ ढांचा संरक्षण;
  5. DDoS पर हमला।


बेसिक एडोब एक्सपीरियंस मैनेजर सिक्योरिटी टिप्स


एईएम परियोजनाओं की दुनिया और भी बेहतर हो जाएगी यदि प्रत्येक डेवलपर को सामान्य रूप से डेटा रिसाव से मंच की रक्षा करने की सामान्य समझ हो। नीचे दिए गए आरेख के अनुसार, हमारे पास एक लेखक, कई प्रकाशक और दो या अधिक डिस्पैचर (तथाकथित बैलेंसर्स) हैं। वास्तव में, ये तीन स्तर डेटा संरक्षण के मामले में पहले स्थान पर ध्यान देने योग्य हैं। ये काम के क्लासिक नियम हैं जो आम तौर पर दुनिया भर में एईएम समुदाय में स्वीकार किए जाते हैं।




1. HTTPS का उपयोग करें । एईएम तेजी से विकसित हो रहा है, एक लेखक को दूसरे, अधिक सुरक्षित प्रोटोकॉल पर बनाने के लिए लचीलापन प्रदान करता है। यह "SSL विज़ार्ड" कुंजी उत्पन्न करने के लिए पर्याप्त है, इसके लिए एक रास्ता बनाएं और इस प्रकार, अधिक सुरक्षित प्रोटोकॉल का उपयोग करें। एडोब से सिफारिशों में - यह कदम सुरक्षा में पहली प्राथमिकता है।


2. नवीनतम अपडेट के साथ पैकेज स्थापित करें। डेवलपर की मानक प्रक्रिया इस तथ्य से कम होती है कि घटकों और सेवाओं पर काम करते समय, आपको Google में समाधान खोजना होगा। इस चरण का लक्ष्य नियमित रूप से सर्विस पैक और हॉट फ़िक्स की निगरानी करना है। फिर बहुत सारी समस्याएं दूर हो जाती हैं, जिनमें डेटा सुरक्षा से संबंधित भी शामिल हैं। हालाँकि यह कोई रामबाण दवा नहीं है, लेकिन महत्वपूर्ण बात यह है कि सिस्टम को अपडेट रखा जाए।




3. त्रुटि संदेशों के साथ स्वच्छ पेज बनाना। यदि आप शुरू में त्रुटि के संक्षिप्त विवरण के साथ एक पेज बनाते हैं, तो क्लाइंट तुरंत देखेगा कि यह काम नहीं कर रहा है, जबकि डेवलपर पहले से ही समस्या को हल करने की प्रक्रिया में होगा। यह तर्कसंगत है कि यह जानकारी आपके पास नहीं होगी, लेकिन आप ग्राहक और परीक्षकों से घबराहट, कार्यों में भ्रम से बचेंगे।


4. पासवर्ड सेट करने से मना करें और "एडमिन-एडमिन" पर लॉगइन करें। यह हास्यास्पद नहीं होगा, लेकिन खराब गुणवत्ता वाले लॉगिन और पासवर्ड की समस्या एईएम में भी काफी सामान्य है। नतीजतन, गति या अन्य विचारों की खोज में, हमें सबसे कमजोर प्रणाली मिलती है। एक बार जब आप पाते हैं कि आदिम लॉगिन विवरण सेट किए गए हैं, तो टीम / वरिष्ठ अधिकारियों को समझाने और उन्हें जल्द से जल्द अधिक विश्वसनीय लोगों में बदलने का प्रयास करें।


लेखक स्तर पर सुरक्षा


सबसे पहले, वीपीएन का उपयोग करें । वर्चुअल प्रोटेक्टेड नेटवर्क का उपयोग करना आपके और सर्वर के बीच एक सुरक्षित कनेक्शन स्थापित करने के लिए एक सुरक्षित निजी नेटवर्क का काम है। यह एक सरल और महत्वपूर्ण उपकरण है: चूंकि आपका ट्रैफ़िक एन्क्रिप्ट किया जाएगा, इसलिए यह पता लगाना असंभव है कि आप अपना डेटा कहां से भेज रहे हैं। यह पता चला है कि vPn के साथ कोई भी आपके उदाहरण तक नहीं पहुंच पाएगा।


यह दृष्टिकोण दूरस्थ डेवलपर्स और उन सभी के लिए उपयुक्त है, जिनका काम विभिन्न स्थानों से एक अस्थिर इंटरनेट कनेक्शन के साथ किया जाता है।


दूसरे, आपका "लेखक" हमेशा Google से बंद होना चाहिए । तो आप एक पासवर्ड उठा सकते हैं और सिस्टम को हैक कर सकते हैं: लापरवाही से, लेखक को अनुक्रमित किया जा सकता है। किसी खोज इंजन में अपनी भेद्यता की जांच करने के लिए, इसकी पंक्ति में अपने डोमेन और लेखक और crx का रास्ता लिखें। हां, आप SERP में इस तरह की लाइन को हटाने के अनुरोध के साथ Yandex या Google से संपर्क कर सकते हैं। लेकिन, जबकि समस्या का समाधान हो रहा है, सिस्टम पहले से ही सार्वजनिक रूप से उपलब्ध होगा।




तीसरा, "व्यवस्थापक" उपयोगकर्ता के विशेषाधिकारों को कम मत समझो , जो अक्सर किसी भी उपलब्ध संचालन को करने की क्षमता रखते हैं।


यह विशेष रूप से उस समय महत्वपूर्ण होता है जब कोई कर्मचारी कंपनी को अलविदा कहता है। दरअसल, अधिकांश व्यवसायों के लिए उदाहरण तक पहुंच व्यक्तिगत नहीं है, लेकिन एक व्यवस्थापक खाते के माध्यम से है। इसके विपरीत करना अधिक तर्कसंगत है और एक विशिष्ट लेखक से सिस्टम में विशिष्ट परिवर्तनों के बारे में पता होना।


एईएम 6.1 ने एक नया दृष्टिकोण पेश किया जहां आप एक बंडल या उपयोगकर्ता सेवा के लिए विशिष्ट अधिकार निर्धारित कर सकते हैं। लेकिन व्यक्तिगत प्रोफ़ाइल बनाना बेहतर है: यह कर्मचारी के लिए सुखद है, और व्यवसाय के लिए यह ट्रैक करना आसान है कि सिस्टम में किस स्तर तक पहुंच है। यह दृष्टिकोण लेखक और प्रकाशक स्तरों के लिए प्रासंगिक है।


सुरक्षा प्रकाशित करें


एक नियम के रूप में, परियोजना पर लंबे समय के बाद ही वे नोटिस करते हैं कि उन्होंने अनाम उपयोगकर्ता की जांच नहीं की थी। और जबकि एक साधारण उपयोगकर्ता के संचालन पर प्रतिबंध हो सकता है, एक अनाम उपयोगकर्ता - अक्सर होता है, ऑपरेशन करने के लिए बहुत अधिक अधिकार होते हैं।




Apache Sling Referrer फ़िल्टर आपके एप्लिकेशन को सुरक्षित बनाने के लिए एक सुविधाजनक और प्रभावी तंत्र है। उदाहरण के लिए, एईएम को मैट्रिक्स भेजें, आप इनबॉक्स में डेटा भेजने के बारे में जानकारी देखते हैं। यदि आप डिफ़ॉल्ट मान को पार कर जाते हैं, तो तृतीय-पक्ष प्रणाली यह अनुरोध भेज सकती है। इसका मतलब है कि कोई भी अनुरोध भेजने में सक्षम नहीं होगा। आप डोमेन को कॉन्फ़िगरेशन में दर्ज करते हैं, अनुरोध के समय, यह मूल रूप से दर्ज किए गए डेटा के साथ तुलना करता है और, अगर सब कुछ मेल खाता है, तो एकीकरण जगह है।


यह फ़िल्टर के साथ अधिक लचीले कॉन्फ़िगरेशन को पूरा करने के लिए बाहर होगा: आप अनुरोध, विधि, होस्ट निर्दिष्ट कर सकते हैं। इसके अलावा अधिक विस्तृत प्रश्नों के लिए एक खाली मान या तारांकन है।




डिस्पैचर स्तर पर सुरक्षा


डेवलपर्स को 10% मामलों में विवाद का सामना करना पड़ता है। तो, यह मुख्य कॉन्फ़िगरेशन फ़ाइल है, जहां हम URL के प्रकार (निषेध / अनुमति) निर्धारित करते हैं।



आमतौर पर, डेवलपर्स एक छोटा कार्य करते हैं, एक नियम बनाते हैं और भूल जाते हैं कि यह भेद्यता को जोड़ देगा। ताकि कोई भी आपके उदाहरण पर हमला करने की कोशिश न करे, आपको उपलब्धता के समय चयनकर्ताओं के साथ यूआरएल को जांचना होगा।


कॉन्फ़िगरेशन फ़ाइल के माध्यम से, आप हेडर के प्रसंस्करण को निर्दिष्ट कर सकते हैं। क्योंकि आप अधिक सटीक रूप से ज़ैग, विधि आदि को निर्दिष्ट करते हैं, ऐसी विस्तृत सेटिंग निश्चित रूप से कुछ भी नहीं तोड़ देगी। ये प्राथमिक उदाहरण हैं। क्या होगा अगर ऐसे सैकड़ों नियम हैं और उन्हें नेविगेट करना अधिक कठिन है?


सबसे आसान तरीका लॉगिंग को सक्षम करना है। अपाचे के संस्करण के आधार पर, काम का तंत्र थोड़ा बदल सकता है। लेकिन सिस्टम आपको तुरंत उजागर करेगा कि कौन सा url आपके लिए कौन से विशेष नियम पर काम कर रहा है और जिसे अभी भी ठीक करने की आवश्यकता है।


आप नियमों में डोमेन भी निर्दिष्ट कर सकते हैं: यह एकीकरण का संदर्भ है।
एक बार डिस्पैचर का उपयोग कैशिंग के लिए किया जाता है, अनुरोधों को कई बार तेजी से निष्पादित किया जाता है: आपको कहीं भी जाने और जांचने की आवश्यकता नहीं है, और आप इसे तुरंत क्लाइंट को दे सकते हैं। साथ ही, यह विधि आपके एप्लिकेशन की सुरक्षा में बहुत सुधार करती है।


क्रॉस साइट रिक्वेस्ट फोर्जरी - फर्जी रिक्वेस्ट।



CSRF का सामान्य सिद्धांत: मान लीजिए कि आप बैंक की वेबसाइट पर अपने खाते का उपयोग करते हैं। प्राधिकरण के बाद, आपके पास ब्राउज़र में कुकीज़ के साथ एक मानक सत्र है, आप एक ईमेल प्राप्त करते हैं और एक संदिग्ध साइट के लिंक का पालन करते हैं। इस पर, एक हमलावर ने एक फ़ॉर्म एम्बेड किया, जिसके पूरा होने पर आपका डेटा बैंक की वेबसाइट पर भेजा जाता है।


बिंदु HTTP प्रोटोकॉल में है। एक हमलावर को बहुत अधिक डेटा की आवश्यकता नहीं है: यह अनुरोध पर्याप्त है। बैंक सर्वर देखेंगे: एक अनुरोध आ गया है, कुकीज़ और एक सत्र हैं, सब कुछ ठीक है। यह कैसे विशिष्ट हमलों काम करता है।


AEM क्वेरी जालसाजी को रोकने के लिए क्या दे सकता है
संरक्षण का एक क्लासिक उदाहरण एक स्ट्रिंग में "गुप्त" की पीढ़ी है। जब प्रपत्र उत्पन्न होता है, तो यह गुप्त टोकन छिपे हुए फ़ील्ड से जोड़ा जाता है। यदि आप हमलावर की साइट पर जाते हैं, तो सिस्टम टोकन या उसकी अमान्यता की अनुपस्थिति का पता लगाएगा और डेटा भेजने से इनकार करेगा। कभी-कभी वे स्वयं उपयोगकर्ताओं से सुरक्षा करते हैं।


अब आपके पास एक नियमित खाता है, जिसमें आप एक छिपा हुआ क्षेत्र नहीं जोड़ सकते। प्राधिकरण चरण में, सर्वर आपके पास SCRF के साथ एक नाम के साथ एक कुकी लौटाता है, इसे हेडर पर स्थानांतरित करता है, इसे सर्वर पर भेजता है। तो आपने अनुरोध पर हस्ताक्षर किए।


एईएम आपके लिए सब कुछ करेगा: यह चाबियाँ, टोकन उत्पन्न करेगा, यह फॉर्म सबमिशन की जांच करेगा


ऐसे मामले होते हैं जब कोई एप्लिकेशन रिएक्ट में लिखा जाता है और एकीकरण के साथ एक मुश्किल क्षण होता है। एईएम ने इस स्थिति को ध्यान में रखा: बस एक बिंदु पर जाएं और इसे सत्यापन के लिए हस्ताक्षरित करें। गैर-मानक घटकों और पुस्तकालयों का उपयोग करते समय उपयुक्त।



सिस्टम की सुरक्षा के लिए और क्या किया जा सकता है:

  • पुस्तकालय जो इसके लिए जिम्मेदार हैं। जब तक आप कुछ भी नहीं तोड़ते तब तक जोड़ने में कोई समझदारी नहीं है।
  • निचले स्तर पर आप सभी "रहस्य" देख सकते हैं। यह आपके डेटा का एक प्रकार का सत्यापन है।
  • यह सरल है: एक तैयार एपी है और आप पहले से ही इस प्रकार के हमले से सुरक्षित हैं।


डीडीओएस हमला - दूसरा सबसे लोकप्रिय हमला


लक्ष्य सर्वर की भौतिक क्षमताओं को समाप्त करना है। कुछ मेजबान पर लाखों अनुरोध किए जा रहे हैं। जब वे असीम रूप से कई हो जाते हैं, तो सिस्टम शारीरिक रूप से सामना नहीं करना शुरू कर देता है। एक नियम के रूप में, वे कई स्रोतों से शक्तिशाली हमला करते हैं और वीपीएन का उपयोग करते हैं। इसका 100% बीमा नहीं है; लेकिन चलो उनकी मदद नहीं करते।



किन मामलों में प्रणाली कमजोर है:

  • गलत प्रत्यय के साथ सिस्टम को कॉन्फ़िगर करें;
  • एवी के लिए कई अनुरोध हैं, जनता पर डिस्पैचर उन्हें अग्रेषित नहीं कर सकता है;
  • जब असीमित संख्या में सामग्री नोड्स प्रदर्शित करने के लिए मना नहीं किया जाता है। विशेष रूप से, JSON रेंडरर, जो कई स्तरों पर पेड़ की संरचना को पार कर सकता है।
  • लोकलहोस्ट : 4502 / .json पूरे रिपॉजिटरी को JSON फॉर्मेट में डंप कर सकता है।


AEM को सुरक्षित बनाने के लिए, विशिष्ट उपयोगकर्ताओं की क्षमताओं पर ध्यान केंद्रित करें।


एडोब सिक्योरिटी चेकलिस्ट के माध्यम से जाने के लिए मत भूलना, और एईएम पर अपनी परियोजना के साथ सब कुछ स्थिर होने दें।

Source: https://habr.com/ru/post/hi468231/


All Articles