Cloud & IT Cert Prep · पाठ

सर्वरलेस और फ़ंक्शन सुरक्षा

सर्वरलेस फ़ंक्शन की विशिष्ट हमलावर सतह (अत्यधिक विशेषाधिकार वाली IAM भूमिकाएँ, इवेंट इंजेक्शन और निर्भरता जोखिम) पहचानें और न्यूनतम-अधिकार तथा इनपुट सत्यापन नियंत्रण लागू करें।

पाठ 3, कुल 4 में से13 चरण

सर्वरलेस और फ़ंक्शन सुरक्षा, CoddyKit पर Cloud & IT Cert Prep का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cloud & IT Cert Prep सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cloud & IT Cert Prep पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

सर्वरलेस कंप्यूटिंग क्या है

सर्वरलेस कंप्यूटिंग (Functions as a Service, FaaS) डेवलपर को अंतर्निहित सर्वर प्रबंधित किए बिना, घटनाओं—HTTP अनुरोधों, कतार संदेशों, डेटाबेस ट्रिगर या निर्धारित टाइमर—द्वारा सक्रिय किए जाने वाले अलग-अलग फ़ंक्शन परिनियोजित करने देती है। प्रमुख प्लेटफ़ॉर्म में AWS Lambda, Google Cloud Functions और Azure Functions शामिल हैं। क्लाउड प्रदाता पैचिंग, स्केलिंग और आधारभूत संरचना का प्रबंधन करता है। इससे परिचालन का बोझ कम होता है, लेकिन सुरक्षा ज़िम्मेदारी का मॉडल बदल जाता है: प्रदाता रनटाइम को सुरक्षित करता है, जबकि डेवलपर फ़ंक्शन कोड, अनुमतियों और कॉन्फ़िगरेशन के लिए पूरी तरह ज़िम्मेदार होता है।

सर्वरलेस की विशिष्ट आक्रमण सतह

पारंपरिक अनुप्रयोगों की तुलना में सर्वरलेस फ़ंक्शन एक अलग आक्रमण सतह प्रस्तुत करते हैं: फ़ंक्शन सामान्यतः कम समय तक चलने वाले होते हैं (कुछ सेकंड से कुछ मिनट), इसलिए पारंपरिक EDR और नेटवर्क निगरानी कम प्रभावी होती है; वे घटना-आधारित होते हैं, अर्थात कई अलग-अलग इनपुट स्रोत (S3 घटनाएँ, API Gateway, SNS) निष्पादन शुरू कर सकते हैं; वे अक्सर IAM अनुमतियों के साथ चलते हैं, जिनसे अन्य क्लाउड Resource तक पहुँचा जा सकता है; और वे तृतीय-पक्ष निर्भरताओं (npm, pip पैकेज) का उपयोग करते हैं, जिनमें दुर्भावनापूर्ण कोड हो सकता है। आक्रमण सतह घटना इनपुट, IAM अनुमतियों और निर्भरता की विश्वास शृंखलाओं से निर्धारित होती है।

अत्यधिक विशेषाधिकार प्राप्त IAM भूमिकाएँ: सबसे बड़ा खतरा

सबसे सामान्य सर्वरलेस सुरक्षा भेद्यता अत्यधिक विशेषाधिकार प्राप्त IAM भूमिकाएँ हैं। जब डेवलपर को किसी फ़ंक्शन से एक S3 बकेट तक पहुँच चाहिए होती है, तो अनुमति संबंधी त्रुटियों से बचने के लिए s3:* (पूर्ण S3 पहुँच) देना आकर्षक लगता है। इस भूमिका वाला कोई समझौता किया गया या असुरक्षित फ़ंक्शन खाते के किसी भी बकेट को पढ़, लिख या हटा सकता है। बचाव के लिए कड़े न्यूनतम-विशेषाधिकार वाली IAM भूमिकाएँ अपनाएँ: प्रत्येक फ़ंक्शन की एक समर्पित भूमिका होनी चाहिए, जो उस फ़ंक्शन के विशिष्ट कार्यों के लिए आवश्यक केवल न्यूनतम अनुमतियाँ दे। AWS IAM Access Analyzer और Cloudsplaining जैसे उपकरण अत्यधिक विशेषाधिकार प्राप्त Lambda भूमिकाओं की स्वचालित पहचान करते हैं।

# IAM policy: least privilege for specific Lambda function
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Action': ['s3:GetObject'],
    'Resource': 'arn:aws:s3:::my-specific-bucket/uploads/*'
  }]
}

घटना इंजेक्शन आक्रमण

घटना इंजेक्शन तब होता है जब किसी घटना पेलोड में हमलावर-नियंत्रित डेटा को फ़ंक्शन कोड असुरक्षित तरीके से संसाधित करता है। चूँकि सर्वरलेस फ़ंक्शन कई घटना स्रोतों—HTTP हेडर, क्वेरी पैरामीटर, डेटाबेस परिवर्तन रिकॉर्ड, कतार संदेश बॉडी और ईमेल सामग्री—द्वारा सक्रिय किए जा सकते हैं, इसलिए इनमें से कोई भी दुर्भावनापूर्ण पेलोड ले जा सकता है। सामान्य इंजेक्शन प्रकारों में शामिल हैं: यदि फ़ंक्शन घटना डेटा का उपयोग करके डेटाबेस से पूछताछ करता है तो SQL इंजेक्शन, JSON पेलोड में MongoDB ऑपरेटर वाला NoSQL इंजेक्शन, यदि घटना डेटा का उपयोग OS कमांड में किया जाता है तो कमांड इंजेक्शन, और यदि घटना डेटा से मिले URL प्राप्त किए जाते हैं तो SSRF (सर्वर-साइड अनुरोध जालसाजी)। इनपुट सत्यापन और पैरामीटरयुक्त क्वेरी आवश्यक बचाव हैं।

# Vulnerable: event data used directly in shell command
# const filename = event.filename;
# exec('convert ' + filename + ' output.jpg');

# Safe: validate and sanitize input
# const filename = path.basename(event.filename);
# if (!/^[a-z0-9_-]+\.(jpg|png)$/i.test(filename)) throw new Error('Invalid');
# execFile('convert', [filename, 'output.jpg']);

निर्भरता जोखिम: तृतीय-पक्ष पैकेज

सर्वरलेस फ़ंक्शन अक्सर दर्जनों तृतीय-पक्ष पैकेज पर निर्भर होते हैं। ये निर्भरताएँ सप्लाई चेन जोखिम पैदा करती हैं: कोई दुर्भावनापूर्ण या समझौता किया गया पैकेज फ़ंक्शन के निष्पादन वातावरण में मनमाना कोड चला सकता है, पर्यावरण चर तक पहुँच सकता है (जिनमें अक्सर सीक्रेट होते हैं), बाहर जाने वाले नेटवर्क कनेक्शन बना सकता है और क्लाउड Resource तक पहुँचने के लिए फ़ंक्शन की IAM भूमिका का उपयोग कर सकता है। event-stream npm package से जुड़ा 2018 का समझौता और कई टाइपोस्क्वॉटिंग पैकेज इस जोखिम को स्पष्ट करते हैं। बचाव में निर्भरता पिनिंग, CI/CD में SCA स्कैनिंग और न्यूनतम निर्भरता-समूह शामिल हैं।

सर्वरलेस में सीक्रेट: पर्यावरण चर

सर्वरलेस फ़ंक्शन को अक्सर क्लाउड कंसोल में कॉन्फ़िगर किए गए पर्यावरण चर के माध्यम से सीक्रेट मिलते हैं। ये पर्यावरण चर Lambda कॉन्फ़िगरेशन तक IAM पहुँच रखने वाले किसी भी व्यक्ति को दिखाई दे सकते हैं और फ़ंक्शन के भीतर चलने वाला कोई भी कोड इन्हें पढ़ सकता है। सर्वोत्तम तरीके: सीक्रेट को सीधे सादे टेक्स्ट वाले पर्यावरण चर के रूप में संग्रहीत करने से बचें; इसके बजाय ARN या सीक्रेट नाम संग्रहीत करें और रनटाइम पर AWS Secrets Manager या Parameter Store से सीक्रेट प्राप्त करें; उपयोग में न होने की स्थिति में Lambda पर्यावरण चर के लिए KMS एन्क्रिप्शन सक्षम करें; और पर्यावरण चर को कभी लॉग न करें (कई डीबग लॉगर त्रुटि होने पर सभी पर्यावरण चर लिख देते हैं)।

# Retrieve secret at runtime instead of hardcoding
# Using AWS SDK in Lambda
# const secretsClient = new SecretsManagerClient({});
# const response = await secretsClient.send(
#   new GetSecretValueCommand({ SecretId: 'prod/myapp/db-password' })
# );
# const dbPassword = response.SecretString;

फ़ंक्शन टाइमआउट और समवर्तीता सीमाएँ

सर्वरलेस फ़ंक्शन पर सेवा-अस्वीकृति का रूप बार-बार सक्रिय करने वाले आक्रमण का हो सकता है—जो हमलावर किसी फ़ंक्शन को बार-बार सक्रिय कर सकता है, वह खाते की समवर्तीता सीमा समाप्त कर सकता है (Lambda की डिफ़ॉल्ट सीमा प्रति क्षेत्र 1,000 समवर्ती निष्पादन है), जिससे खाते के अन्य फ़ंक्शन निष्पादित नहीं हो पाते। उपयोगकर्ता-नियंत्रित इनपुट संसाधित करने वाले फ़ंक्शन को API Gateway स्तर पर दर सीमित करना लागू करना चाहिए, पेलोड के आकार की सीमाओं का सत्यापन करना चाहिए और अनियंत्रित निष्पादन रोकने के लिए उपयुक्त टाइमआउट मान निर्धारित करने चाहिए। यदि इनपुट का आकार सीमित न हो, तो XML/YAML पार्सिंग में फ़ंक्शन को Billion Laughs-शैली के विस्तार आक्रमणों का भी निशाना बनाया जा सकता है।

# AWS Lambda: set reserved concurrency to prevent account-wide DoS
aws lambda put-function-concurrency \
  --function-name my-api-handler \
  --reserved-concurrent-executions 100

VPC एकीकरण और नेटवर्क पृथक्करण

डिफ़ॉल्ट रूप से AWS Lambda फ़ंक्शन इंटरनेट पहुँच वाले AWS-प्रबंधित VPC में चलते हैं, लेकिन आपके निजी VPC में मौजूद Resource (RDS डेटाबेस, ElastiCache, निजी API) तक उनकी पहुँच नहीं होती। निजी Resource तक पहुँचने के लिए Lambda को विशिष्ट सबनेट और सुरक्षा समूहों के साथ आपके VPC के भीतर चलने के लिए कॉन्फ़िगर करना आवश्यक है। हालाँकि, VPC से जुड़े Lambda फ़ंक्शन को डिफ़ॉल्ट रूप से इंटरनेट पहुँच नहीं मिलती—बाहर जाने वाले इंटरनेट कनेक्शन के लिए उन्हें NAT Gateway चाहिए। Lambda फ़ंक्शन से जुड़े सुरक्षा समूहों को न्यूनतम-विशेषाधिकार नियमों का पालन करना चाहिए: केवल आवश्यक विशिष्ट पोर्ट और गंतव्यों को अनुमति दें। उत्पादन फ़ंक्शन सुरक्षा समूहों में बाहर जाने वाले 0.0.0.0/0 नियमों का उपयोग करने से बचें।

सर्वरलेस फ़ंक्शन की निगरानी

सर्वरलेस सुरक्षा की निगरानी के लिए पारंपरिक होस्ट निगरानी से अलग तरीकों की आवश्यकता होती है। चूँकि फ़ंक्शन अस्थायी होते हैं, इसलिए होस्ट-आधारित एजेंट व्यावहारिक नहीं हैं। प्रभावी निगरानी में ये शामिल हैं: सभी Lambda API कॉल (सक्रियण, कॉन्फ़िगरेशन परिवर्तन, भूमिका धारण करना) दर्ज करने के लिए AWS CloudTrail; असामान्य पैटर्न के लिए फ़ंक्शन निष्पादन लॉग की पूछताछ करने हेतु CloudWatch Logs Insights; असामान्य Lambda नेटवर्क गतिविधि सहित खतरे का पता लगाने के लिए Amazon GuardDuty; और Protego (अब Check Point का हिस्सा) या Datadog की सर्वरलेस निगरानी जैसे व्यावसायिक सर्वरलेस-मूल सुरक्षा उपकरण, जो रनटाइम दृश्यता देने के लिए लेयर के माध्यम से फ़ंक्शन में निगरानी साधन जोड़ते हैं।

# Query CloudWatch Logs for Lambda errors and anomalies
aws logs start-query \
  --log-group-name '/aws/lambda/my-function' \
  --start-time $(date -d '-1 hour' +%s) \
  --end-time $(date +%s) \
  --query-string 'fields @timestamp, @message | filter @message like /ERROR|WARN|credential/'

सर्वरलेस सुरक्षा परीक्षण

सर्वरलेस सुरक्षा के परीक्षण के लिए विशिष्ट उपकरणों की आवश्यकता होती है: PureSec CLI (अब Check Point) और Prowler सर्वरलेस गलत कॉन्फ़िगरेशन के लिए क्लाउड कॉन्फ़िगरेशन स्कैन करते हैं; DAST उपकरण HTTP से सक्रिय होने वाले फ़ंक्शन में इंजेक्शन भेद्यताओं का परीक्षण कर सकते हैं; Bandit (Python) या ESLint सुरक्षा प्लगइन जैसे उपकरणों से फ़ंक्शन कोड का स्थैतिक विश्लेषण असुरक्षित कोडिंग पैटर्न पकड़ता है; और मैन्युअल परीक्षण में प्रत्येक फ़ंक्शन को सक्रिय कर सकने वाले सभी घटना स्रोतों की सूची बनाकर, हर स्रोत को विकृत और दुर्भावनापूर्ण पेलोड के साथ जाँचना चाहिए। OWASP Serverless Top 10 सर्वरलेस आर्किटेक्चर के लिए विशिष्ट कमज़ोरियों की एक व्यापक जाँचसूची उपलब्ध कराता है।

# Prowler: check Lambda security posture
prowler aws --service lambda
# Checks: public URL, over-privileged roles, unencrypted env vars,
# outdated runtime, missing VPC config, excessive timeout

सर्वरलेस में साझा ज़िम्मेदारी

सर्वरलेस कंप्यूटिंग साझा ज़िम्मेदारी मॉडल को प्रदाता की ओर और आगे बढ़ाती है। क्लाउड प्रदाता इनका ज़िम्मेदार होता है: फ़ंक्शन रनटाइम वातावरण, OS पैच, अंतर्निहित आधारभूत संरचना की सुरक्षा और भौतिक सुविधाएँ। ग्राहक इनका ज़िम्मेदार रहता है: फ़ंक्शन कोड सुरक्षा, IAM अनुमति का डिज़ाइन, सीक्रेट प्रबंधन, इनपुट सत्यापन, निर्भरता प्रबंधन, लॉगिंग कॉन्फ़िगरेशन और नेटवर्क नीतियाँ। कम आधारभूत संरचना ज़िम्मेदारी का अर्थ कम सुरक्षा ज़िम्मेदारी नहीं है—इसका अर्थ केवल यह है कि सुरक्षा निवेश का केंद्र बदलकर मुख्यतः अनुप्रयोग-स्तरीय और IAM सुरक्षा पर होना चाहिए।

त्वरित जाँच

इस पाठ में दिए गए CompTIA Security+ (SY0-701) के सिद्धांतों की अपनी समझ जाँचें।

पाठ का पुनरावलोकन

इस पाठ में आपने सीखा: अत्यधिक विशेषाधिकार प्राप्त IAM भूमिकाएँ सर्वरलेस का प्रमुख जोखिम हैं—प्रत्येक फ़ंक्शन को न्यूनतम-विशेषाधिकार वाली समर्पित भूमिका चाहिए; घटना इंजेक्शन आक्रमण ऐसे किसी भी घटना स्रोत का दुरुपयोग करते हैं, जो इनपुट सत्यापन न करने वाले फ़ंक्शन तक हमलावर-नियंत्रित डेटा पहुँचाता है; और तृतीय-पक्ष पैकेज से उत्पन्न निर्भरता सप्लाई चेन जोखिम IAM क्रेडेंशियल और सीक्रेट तक पहुँच के साथ फ़ंक्शन के निष्पादन को समझौता-ग्रस्त कर सकता है। अब हम परिनियोजन से पहले गलत कॉन्फ़िगरेशन पकड़ने के लिए Infrastructure as Code सुरक्षा स्कैनिंग का अध्ययन करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Cloud & IT Cert Prep सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
150
पाठ
600

अक्सर पूछे जाने वाले प्रश्न

क्या “सर्वरलेस और फ़ंक्शन सुरक्षा” पाठ निःशुल्क है?

हाँ—“सर्वरलेस और फ़ंक्शन सुरक्षा” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cloud & IT Cert Prep पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cloud & IT Cert Prep पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“सर्वरलेस और फ़ंक्शन सुरक्षा” में मैं क्या सीखूँगा?

सर्वरलेस फ़ंक्शन की विशिष्ट हमलावर सतह (अत्यधिक विशेषाधिकार वाली IAM भूमिकाएँ, इवेंट इंजेक्शन और निर्भरता जोखिम) पहचानें और न्यूनतम-अधिकार तथा इनपुट सत्यापन नियंत्रण लागू करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cloud & IT Cert Prep का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Cloud & IT Cert Prep शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cloud & IT Cert Prep शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“सर्वरलेस और फ़ंक्शन सुरक्षा” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Cloud & IT Cert Prep पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Cloud & IT Cert Prep पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. कंटेनर सुरक्षा: इमेज सुदृढ़ीकरण और रनटाइम सुरक्षा
  2. Kubernetes सुरक्षा: RBAC, नेटवर्क नीतियाँ और पॉड सुरक्षा
  3. सर्वरलेस और फ़ंक्शन सुरक्षा
  4. कोड के रूप में अवसंरचना की सुरक्षा स्कैनिंग
← Cloud & IT Cert Prep पर वापस जाएँ