
CloudMapper يساعدك في تحليل بيئات خدمات أمازون ويب (AWS) الخاصة بك.
ملاحظة وظيفة تصور الشبكة (الأمر prepare) لم تعد مدعومة.
يساعدك CloudMapper في تحليل بيئات Amazon Web Services (AWS). كان الغرض الأصلي هو إنشاء رسوم بيانية للشبكة وعرضها في المتصفح (وظيفة لم تعد مدعومة). يحتوي الآن على وظائف أكثر بكثير، بما في ذلك التدقيق بحثًا عن المشكلات الأمنية.
audit: فحص التكوينات الخاطئة المحتملة.collect: جمع البيانات الوصفية عن حساب. تفاصيل أكثر هنا.find_admins: فحص سياسات IAM لتحديد المستخدمين والأدوار الإدارية، أو الكيانات ذات الصلاحيات المحددة. تفاصيل أكثر هنا.find_unused: البحث عن الموارد غير المستخدمة في الحساب. يجد مجموعات الأمان غير المستخدمة، وعناوين IP المرنة، وواجهات الشبكة، ووحدات التخزين، وموازنات التحميل المرنة.prepare/webserver: راجع تصورات الشبكةpublic: العثور على المضيفات العامة ونطاقات المنافذ. تفاصيل أكثر هنا.sg_ips: الحصول على معلومات geoip حول نطاقات CIDR الموثوقة في مجموعات الأمان. تفاصيل أكثر هنا.stats: عرض إحصائيات الموارد للحسابات. تفاصيل أكثر هنا.weboftrust: عرض شبكة الثقة. تفاصيل أكثر هنا.report: إنشاء تقرير HTML. يتضمن ملخصًا للحسابات ونتائج التدقيق. تفاصيل أكثر هنا.iam_report: إنشاء تقرير HTML لمعلومات IAM لحساب. تفاصيل أكثر هنا.إذا كنت ترغب في إضافة أوامر خاصة بك، يمكنك إنشاء مجلد 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 وتسجل json في المجلد المحدد باسم الحساب تحت 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 المعروفة.
إذا كنت تستخدم 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
تطبيق CDK لنشر CloudMapper عبر Fargate بحيث يعمل ليلاً، ويرسل نتائج التدقيق كتنبيهات إلى قناة 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
|
|
|
|
|