
CloudMapper आपको अपने Amazon Web Services (AWS) वातावरण का विश्लेषण करने में मदद करता है।
नोट नेटवर्क विज़ुअलाइज़ेशन कार्यक्षमता (कमांड prepare) अब अनुरक्षित नहीं है।
CloudMapper आपको आपके Amazon Web Services (AWS) वातावरण का विश्लेषण करने में मदद करता है। मूल उद्देश्य नेटवर्क आरेख उत्पन्न करना और उन्हें आपके ब्राउज़र में प्रदर्शित करना था (कार्यक्षमता अब अनुरक्षित नहीं है)। अब इसमें सुरक्षा मुद्दों के ऑडिट सहित और अधिक कार्यक्षमता शामिल है।
audit: संभावित गलत कॉन्फ़िगरेशन की जाँच करें।collect: किसी खाते के बारे में मेटाडेटा एकत्र करें। अधिक विवरण यहाँ।find_admins: IAM नीतियों को देखकर व्यवस्थापक उपयोगकर्ताओं और भूमिकाओं, या विशिष्ट अनुमतियों वाले प्रिंसिपलों की पहचान करें। अधिक विवरण यहाँ।find_unused: खाते में अप्रयुक्त संसाधनों की खोज करें। अप्रयुक्त सुरक्षा समूह, इलास्टिक IP, नेटवर्क इंटरफ़ेस, वॉल्यूम और इलास्टिक लोड बैलेंसर ढूँढता है।prepare/webserver: देखें नेटवर्क विज़ुअलाइज़ेशनpublic: सार्वजनिक होस्ट और पोर्ट रेंज खोजें। अधिक विवरण यहाँ।sg_ips: सुरक्षा समूहों में विश्वसनीय CIDR पर जियोआईपी जानकारी प्राप्त करें। अधिक विवरण यहाँ।stats: खातों के लिए संसाधनों की गणना दिखाएं। अधिक विवरण यहाँ।weboftrust: वेब ऑफ ट्रस्ट दिखाएं। अधिक विवरण यहाँ।report: HTML रिपोर्ट उत्पन्न करें। इसमें खातों का सारांश और ऑडिट निष्कर्ष शामिल हैं। अधिक विवरण यहाँ।iam_report: किसी खाते की IAM जानकारी के लिए HTML रिपोर्ट उत्पन्न करें। अधिक विवरण यहाँ।यदि आप अपने स्वयं के निजी कमांड जोड़ना चाहते हैं, तो आप एक private_commands निर्देशिका बना सकते हैं और उन्हें वहाँ जोड़ सकते हैं।
|
आवश्यकताएँ:
pip, और virtualenvjq (https://stedolan.github.io/jq/) और लाइब्रेरी pyjq (https://github.com/doloopwhile/pyjq) की भी आवश्यकता होगी, जिनके लिए कुछ अतिरिक्त उपकरण स्थापित करने होंगे जो दिखाए जाएंगे।macOS पर:
# clone the repo
git clone https://github.com/duo-labs/cloudmapper.git
# Install pre-reqs for pyjq
brew install autoconf automake awscli freetype jq libtool python3
cd cloudmapper/
python3 -m venv ./venv && source venv/bin/activate
pip install --prefer-binary -r requirements.txt
Linux पर:
# clone the repo
git clone https://github.com/duo-labs/cloudmapper.git
# (AWS Linux, Centos, Fedora, RedHat etc.):
# sudo yum install autoconf automake libtool python3-devel.x86_64 python3-tkinter python-pip jq awscli
# (Debian, Ubuntu etc.):
# You may additionally need "build-essential"
sudo apt-get install autoconf automake libtool python3.7-dev python3-tk jq awscli
cd cloudmapper/
python3 -m venv ./venv && source venv/bin/activate
pip install -r requirements.txt
डेमो डेटा का एक छोटा सेट प्रदान किया गया है। यह डेमो साइट https://duo-labs.github.io/cloudmapper/ के समान वातावरण प्रदर्शित करेगा।
# Generate the data for the network map
python cloudmapper.py prepare --config config.json.demo --account demo
# Generate a report
python cloudmapper.py report --config config.json.demo --account demo
python cloudmapper.py webserver
यह http://127.0.0.1:8000/ पर एक स्थानीय वेबसर्वर चलाएगा। उस लिंक से नेटवर्क मैप देखें, या http://127.0.0.1:8000/account-data/report.html पर रिपोर्ट देखें।
config.json.demo को config.json में कॉपी करें और इसे अपने खाता आईडी और नाम (जैसे "prod") के साथ-साथ किसी भी बाहरी CIDR नाम को शामिल करने के लिए संपादित करें। CIDR एक IP रेंज है जैसे 1.2.3.4/32 जिसका अर्थ केवल IP 1.2.3.4 है।
यह चरण CLI का उपयोग करके describe और list कॉल करता है और जॉनसन को account-data के अंतर्गत खाता नाम द्वारा निर्दिष्ट फ़ोल्डर में रिकॉर्ड करता है।
आपके पास AWS क्रेडेंशियल्स कॉन्फ़िगर होने चाहिए जो CLI द्वारा एकत्रित करने के लिए विभिन्न मेटाडेटा के लिए पढ़ने की अनुमति के साथ उपयोग किए जा सकें। मैं aws-vault का उपयोग करने की सलाह देता हूँ। CloudMapper IAM जानकारी एकत्र करेगा, जिसका अर्थ है कि आपको MFA का उपयोग करना होगा। केवल collect चरण के लिए AWS एक्सेस की आवश्यकता है।
आपके पास निम्नलिखित विशेषाधिकार होने चाहिए (ये विभिन्न मेटाडेटा की रीड एक्सेस प्रदान करते हैं):
arn:aws:iam::aws:policy/SecurityAuditarn:aws:iam::aws:policy/job-function/ViewOnlyAccessडेटा एकत्र करना इस प्रकार किया जाता है:
python cloudmapper.py collect --account my_account
यहाँ से, विभिन्न कमांड चलाने का प्रयास करें, जैसे:
python cloudmapper.py report --account my_account
python cloudmapper.py webserver
फिर अपने ब्राउज़र में 127.0.0.1:8000/account-data/report.html पर रिपोर्ट देखें।
सीधे config.json को संशोधित करने के बजाय, वहाँ डेटा कॉन्फ़िगर करने के लिए एक कमांड है, यदि आवश्यक हो:
python cloudmapper.py configure {add-account|remove-account} --config-file CONFIG_FILE --name NAME --id ID [--default DEFAULT]
python cloudmapper.py configure {add-cidr|remove-cidr} --config-file CONFIG_FILE --cidr CIDR --name NAME
यह आपको अपने वातावरण में उपयोग किए जाने वाले विभिन्न AWS खातों और ज्ञात CIDR IP को परिभाषित करने की अनुमति देगा।
यदि आप AWS Organizations का उपयोग करते हैं, तो आप config.json में संगठन सदस्य खातों को स्वचालित रूप से जोड़ सकते हैं:
python cloudmapper.py configure discover-organization-accounts
इस कमांड को चलाने से पहले आपको AWS CLI में प्रमाणित होना चाहिए और organization:ListAccounts की अनुमति होनी चाहिए।
आप पा सकते हैं कि आप कुछ ऑडिट आइटम की परवाह नहीं करते। आप पूरी तरह से जाँच को अनदेखा करना चाह सकते हैं, या केवल विशिष्ट संसाधनों को। config/audit_config_override.yaml.example को config/audit_config_override.yaml में कॉपी करें और वहाँ टिप्पणियों के आधार पर फ़ाइल को संपादित करें।
बनाया गया Docker कंटेनर इंटरैक्टिव रूप से उपयोग करने के लिए है।
docker build -t cloudmapper .
Cloudmapper को IAM कॉल करने की आवश्यकता है और संग्रह के लिए सत्र क्रेडेंशियल का उपयोग नहीं कर सकता, इसलिए यदि आप डेटा एकत्र करना चाहते हैं तो आप aws-vault सर्वर का उपयोग नहीं कर सकते, और कंटेनर के अंदर सीधे भूमिका क्रेडेंशियल पास करनी होगी या मैन्युअल रूप से aws क्रेडेंशियल कॉन्फ़िगर करने होंगे। निम्नलिखित कोड आपके रॉ क्रेडेंशियल्स को कंटेनर के अंदर उजागर करता है।
(
export $(aws-vault exec YOUR_PROFILE --no-session -- env | grep ^AWS | xargs) && \
docker run -ti \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-p 8000:8000 \
cloudmapper /bin/bash
)
यह आपको कंटेनर में डाल देगा। aws sts get-caller-identity चलाकर पुष्टि करें कि यह सही ढंग से सेटअप हुआ है। Cloudmapper डेमो डेटा Docker कंटेनर में कॉपी नहीं किया गया है, इसलिए आपको अपने सिस्टम से लाइव डेटा एकत्र करने की आवश्यकता होगी। ध्यान दें कि Docker डिफ़ॉल्ट आपके कंटेनर के लिए उपलब्ध मेमोरी को सीमित कर सकते हैं। उदाहरण के लिए Mac OS पर डिफ़ॉल्ट 2GB है जो एक मध्यम आकार के खाते पर रिपोर्ट उत्पन्न करने के लिए पर्याप्त नहीं हो सकता है।
python cloudmapper.py configure add-account --config-file config.json --name YOUR_ACCOUNT --id YOUR_ACCOUNT_NUMBER
python cloudmapper.py collect --account YOUR_ACCOUNT
python cloudmapper.py report --account YOUR_ACCOUNT
python cloudmapper.py prepare --account YOUR_ACCOUNT
python cloudmapper.py webserver --public
आपको http://127.0.0.1:8000/account-data/report.html पर जाकर रिपोर्ट देखने में सक्षम होना चाहिए।
Fargate के माध्यम से CloudMapper को तैनात करने के लिए एक CDK ऐप, ताकि यह रात में चले, ऑडिट निष्कर्षों को Slack चैनल पर अलर्ट के रूप में भेजे, और S3 पर सहेजी गई रिपोर्ट उत्पन्न करे, इसका वर्णन यहाँ किया गया है।
नेटवर्क आरेखों के लिए, आप https://github.com/lyft/cartography या https://github.com/anaynayak/aws-security-viz आज़मा सकते हैं
ऑडिटिंग और अन्य AWS सुरक्षा उपकरणों के लिए https://github.com/toniblyx/my-arsenal-of-aws-security-tools देखें
|
|
|
|
|