
बहु-क्लाउड सुरक्षा मुद्रा स्कैनर जो AWS, Azure, GCP और OCI में गलत कॉन्फ़िगरेशन, अनुपालन उल्लंघन (HIPAA, PCI, CIS) और सुरक्षा जोखिमों की ऑटोमेटेड प्लगिन-आधारित जांच के माध्यम से ऑडिट करता है।
$ git clone https://github.com/aquasecurity/cloudsploit.git
$ cd cloudsploit
$ npm install
$ ./index.js -h
$ git clone https://github.com/aquasecurity/cloudsploit.git
$ cd cloudsploit
$ docker build . -t cloudsploit:0.0.1
$ docker run cloudsploit:0.0.1 -h
$ docker run -e AWS_ACCESS_KEY_ID=XX -e AWS_SECRET_ACCESS_KEY=YY cloudsploit:0.0.1 --compliance=pci
CloudSploit by Aqua एक ओपन-सोर्स प्रोजेक्ट है जिसे क्लाउड इन्फ्रास्ट्रक्चर खातों में सुरक्षा जोखिमों का पता लगाने के लिए डिज़ाइन किया गया है, जिनमें शामिल हैं: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI), और GitHub। ये स्क्रिप्ट संभावित गलत कॉन्फ़िगरेशन और सुरक्षा जोखिमों की एक श्रृंखला वापस करने के लिए डिज़ाइन की गई हैं।
CloudSploit दो परिनियोजन विकल्पों में उपलब्ध है:
अपनी मशीन पर CloudSploit के ओपन-सोर्स संस्करण को कुछ सरल चरणों में तैनात करने के लिए नीचे दिए गए निर्देशों का पालन करें।
Aqua Wave पर होस्ट किया गया CloudSploit का एक व्यावसायिक संस्करण। आज ही Aqua Wave आज़माएँ!
सुनिश्चित करें कि NodeJS स्थापित है। यदि नहीं, तो इसे यहाँ से स्थापित करें।
$ git clone [email protected]:cloudsploit/scans.git
$ npm install
CloudSploit को आपके क्लाउड खाते में केवल-पढ़ने की अनुमति की आवश्यकता है। इस पहुँच को प्रदान करने के लिए नीचे दिए गए गाइड का पालन करें:
AWS के लिए, आप CloudSploit को सीधे चला सकते हैं और यह डिफ़ॉल्ट AWS क्रेडेंशियल चेन का उपयोग करके क्रेडेंशियल का पता लगाएगा।
CloudSploit कॉन्फ़िग फ़ाइल आपको क्लाउड प्रदाता क्रेडेंशियल पास करने की अनुमति देती है:
उदाहरण कॉन्फ़िग फ़ाइल को कॉपी करके शुरू करें:
$ cp config_example.js config.js
कॉन्फ़िग फ़ाइल को संपादित करें और जिस क्लाउड प्रदाता का आप परीक्षण कर रहे हैं, उसके लिए प्रासंगिक अनुभागों को अनकमेंट करें। प्रत्येक क्लाउड में एक credential_file विकल्प, साथ ही इनलाइन विकल्प होते हैं। उदाहरण के लिए:
azure: {
// OPTION 1: यदि क्रेडेंशियल JSON फ़ाइल का उपयोग कर रहे हैं, तो नीचे पथ दर्ज करें
// credential_file: '/path/to/file.json',
// OPTION 2: यदि हार्ड-कोडेड क्रेडेंशियल का उपयोग कर रहे हैं, तो उन्हें नीचे दर्ज करें
// application_id: process.env.AZURE_APPLICATION_ID || '',
// key_value: process.env.AZURE_KEY_VALUE || '',
// directory_id: process.env.AZURE_DIRECTORY_ID || '',
// subscription_id: process.env.AZURE_SUBSCRIPTION_ID || ''
}
यदि आप credential_file विकल्प का उपयोग करते हैं, तो अपनी फ़ाइल सिस्टम में एक फ़ाइल को इंगित करें जो आपके द्वारा उपयोग किए जा रहे क्लाउड के लिए सही प्रारूप का पालन करती है।
{
"accessKeyId": "YOURACCESSKEY",
"secretAccessKey": "YOURSECRETKEY"
}
{
"ApplicationID": "YOURAZUREAPPLICATIONID",
"KeyValue": "YOURAZUREKEYVALUE",
"DirectoryID": "YOURAZUREDIRECTORYID",
"SubscriptionID": "YOURAZURESUBSCRIPTIONID"
}
नोट: GCP के लिए, आप GCP कंसोल से सीधे एक JSON फ़ाइल उत्पन्न करते हैं, जिसे आपको संपादित नहीं करना चाहिए।
{
"type": "service_account",
"project": "GCPPROJECTNAME",
"client_email": "GCPCLIENTEMAIL",
"private_key": "GCPPRIVATEKEY"
}
{
"tenancyId": "YOURORACLETENANCYID",
"compartmentId": "YOURORACLECOMPARTMENTID",
"userId": "YOURORACLEUSERID",
"keyFingerprint": "YOURORACLEKEYFINGERPRINT",
"keyValue": "YOURORACLEKEYVALUE",
}
CloudSploit पर्यावरण चर पास करने का समर्थन करता है, लेकिन आपको पहले अपनी config.js फ़ाइल के उस अनुभाग को अनकमेंट करना होगा जो स्कैन किए जा रहे क्लाउड प्रदाता से संबंधित है।
फिर आप प्रत्येक अनुभाग में सूचीबद्ध चर पास कर सकते हैं। उदाहरण के लिए, AWS के लिए:
{
access_key: process.env.AWS_ACCESS_KEY_ID || '',
secret_access_key: process.env.AWS_SECRET_ACCESS_KEY || '',
session_token: process.env.AWS_SESSION_TOKEN || '',
}
एक मानक स्कैन चलाने के लिए, सभी आउटपुट और परिणाम दिखाते हुए, बस चलाएँ:
$ ./index.js
CloudSploit रन टाइम को अनुकूलित करने के लिए कई विकल्पों का समर्थन करता है। कुछ लोकप्रिय विकल्पों में शामिल हैं:
--govcloud--china--collection=file.json--ignore-ok--exit-code
--console=textअधिक आउटपुट विकल्पों के लिए नीचे आउटपुट प्रारूप देखें।
$ ./index.js -h
_____ _ _ _____ _ _ _
/ ____| | | |/ ____| | | (_) |
| | | | ___ _ _ __| | (___ _ __ | | ___ _| |_
| | | |/ _ \| | | |/ _` |\___ \| '_ \| |/ _ \| | __|
| |____| | (_) | |_| | (_| |____) | |_) | | (_) | | |_
\_____|_|\___/ \__,_|\__,_|_____/| .__/|_|\___/|_|\__|
| |
|_|
CloudSploit by Aqua Security, Ltd.
Cloud security auditing for AWS, Azure, GCP, Oracle, and GitHub
usage: index.js [-h] --config CONFIG [--compliance {hipaa,cis,cis1,cis2,pci}] [--plugin PLUGIN] [--govcloud] [--china] [--csv CSV] [--json JSON] [--junit JUNIT]
[--table] [--console {none,text,table}] [--collection COLLECTION] [--ignore-ok] [--exit-code] [--skip-paginate] [--suppress SUPPRESS]
optional arguments:
-h, --help show this help message and exit
--config CONFIG
The path to a cloud provider credentials file.
--compliance {hipaa,cis,cis1,cis2,pci}
Compliance mode. Only return results applicable to the selected program.
--plugin PLUGIN A specific plugin to run. If none provided, all plugins will be run. Obtain from the exports.js file. E.g. acmValidation
--govcloud AWS only. Enables GovCloud mode.
--china AWS only. Enables AWS China mode.
--csv CSV Output: CSV file
--json JSON Output: JSON file
--junit JUNIT Output: Junit file
--table Output: table
--console {none,text,table}
Console output format. Default: table
--collection COLLECTION
Output: full collection JSON as file
--ignore-ok Ignore passing (OK) results
--exit-code Exits with a non-zero status code if non-passing results are found
--skip-paginate AWS only. Skips pagination (for debugging).
--suppress SUPPRESS Suppress results matching the provided Regex. Format: pluginId:region:resourceId
CloudSploit अपने प्लगइन्स को विशेष अनुपालन नीतियों से मैप करने का समर्थन करता है। अनुपालन स्कैन चलाने के लिए, --compliance फ़्लैग का उपयोग करें। उदाहरण के लिए:
$ ./index.js --compliance=hipaa
$ ./index.js --compliance=pci
एक ही समय में कई अनुपालन मोड चलाए जा सकते हैं:
$ ./index.js --compliance=cis1 --compliance=cis2
CloudSploit वर्तमान में निम्नलिखित अनुपालन मैपिंग का समर्थन करता है:
$ ./index.js --compliance=hipaa
HIPAA स्कैन CloudSploit प्लगइन्स को 1996 के स्वास्थ्य बीमा पोर्टेबिलिटी और जवाबदेही अधिनियम (Health Insurance Portability and Accountability Act) से मैप करते हैं।
$ ./index.js --compliance=pci
PCI स्कैन CloudSploit प्लगइन्स को भुगतान कार्ड उद्योग डेटा सुरक्षा मानक (Payment Card Industry Data Security Standard) से मैप करते हैं।
$ ./index.js --compliance=cis
$ ./index.js --compliance=cis1
$ ./index.js --compliance=cis2
CIS बेंचमार्क समर्थित हैं, दोनों स्तर 1 और स्तर 2 नियंत्रणों के लिए। --compliance=cis पास करने से स्तर 1 और स्तर 2 दोनों नियंत्रण चलेंगे।
CloudSploit अन्य टूल्स द्वारा उपभोग के लिए कई प्रारूपों में आउटपुट का समर्थन करता है। यदि आप अन्यथा निर्दिष्ट नहीं करते हैं, तो CloudSploit आउटपुट को मानक आउटपुट (कंसोल) पर एक तालिका के रूप में लिखता है।
नोट: आप कई आउटपुट प्रारूप पास कर सकते हैं और आगे अनुकूलन के लिए विकल्पों को जोड़ सकते हैं। उदाहरण के लिए:
# कंसोल पर एक तालिका प्रिंट करें और एक CSV फ़ाइल सहेजें
$ ./index.js --csv=file.csv --console=table
# कंसोल पर टेक्स्ट प्रिंट करें और पासिंग परिणामों को अनदेखा करते हुए JSON और JUnit फ़ाइल सहेजें
$ ./index.js --json=file.json --junit=file.xml --console=text --ignore-ok
डिफ़ॉल्ट रूप से, CloudSploit परिणाम कंसोल पर एक तालिका प्रारूप (रंगों के साथ) में मुद्रित होते हैं। आप इसे ओवरराइड कर सकते हैं और इसके बजाय सादा टेक्स्ट का उपयोग कर सकते हैं:
$ ./index.js --console=text
वैकल्पिक रूप से, आप कंसोल आउटपुट को पूरी तरह से दबा सकते हैं:
$ ./index.js --console=none
आप आउटपुट से उन परिणामों को अनदेखा कर सकते हैं जो OK स्थिति लौटाते हैं, --ignore-ok कमांडलाइन तर्क पास करके।
$ ./index.js --csv=file.csv
$ ./index.js --json=file.json
$ ./index.js --junit=file.xml
CloudSploit क्लाउड प्रदाता API से क्वेरी किए गए डेटा को JSON प्रारूप में सहेजता है, जिसे डिबगिंग या ऐतिहासिक उद्देश्यों के लिए अन्य फ़ाइलों के साथ सहेजा जा सकता है।
$ ./index.js --collection=file.json
परिणामों को --suppress फ़्लैग पास करके दबाया जा सकता है (एकाधिक विकल्प समर्थित हैं) निम्नलिखित प्रारूप के साथ:
--suppress pluginId:region:resourceId
उदाहरण के लिए:
# acmValidation प्लगइन के सभी परिणाम दबाएँ
$ ./index.js --suppress acmValidation:*:*
# us-east-1 क्षेत्र के सभी परिणाम दबाएँ
$ ./index.js --suppress *:us-east-1:*
# सभी प्लगइन्स के लिए सभी क्षेत्रों में regex "certificate/*" से मेल खाने वाले सभी परिणाम दबाएँ
$ ./index.js --suppress *:*:certificate/*
--plugin फ़्लैग का उपयोग किया जा सकता है यदि आप केवल एक प्लगइन चलाना चाहते हैं।
$ ./index.js --plugin acmValidation
CloudSploit दो चरणों में काम करता है। पहले, यह आपके खाते के बारे में विभिन्न मेटाडेटा के लिए क्लाउड इन्फ्रास्ट्रक्चर API को क्वेरी करता है, अर्थात "संग्रह" चरण। एक बार सभी आवश्यक डेटा एकत्र हो जाने के बाद, परिणाम "स्कैनिंग" चरण में पास कर दिया जाता है। स्कैन एकत्र किए गए डेटा का उपयोग संभावित गलत कॉन्फ़िगरेशन, जोखिम और अन्य सुरक्षा मुद्दों को खोजने के लिए करता है, जो परिणामी आउटपुट होते हैं।
कृपया CloudSploit प्लगइन लिखने के लिए हमारे योगदान दिशानिर्देश और पूर्ण गाइड देखें।
--remediate फ़्लैग का उपयोग किया जा सकता है यदि आप इस तर्क के भाग के रूप में उल्लिखित प्लगइन्स के लिए रेमेडिएशन चलाना चाहते हैं। यह प्लगइन नामों की एक सूची लेता है।
अधिक विवरण के लिए कृपया हमारा रेमेडिएशन विकास गाइड देखें।
Aqua Wave SaaS उत्पाद, AWS सुरक्षा नीतियों और अधिक के बारे में अन्य विवरणों के लिए, यहाँ क्लिक करें।