איסוף יומנים מ-AWS Control Tower
גרסת המנתח: 1.0
במאמר הזה מוסבר איך להטמיע יומנים של AWS Control Tower ב-Google Security Operations. AWS Control Tower מאפשרת ניהול, תאימות וניטור לצורכי אבטחה בכמה חשבונות AWS. השילוב הזה מאפשר לכם לנתח יומנים מ-AWS Control Tower כדי לשפר את הנראות ואת מצב האבטחה.
לפני שמתחילים
חשוב לוודא שמתקיימות דרישות הסף הבאות:
- מופע של Google SecOps
- גישה עם הרשאות מיוחדות ל-AWS
הגדרת קטגוריה ב-Amazon S3
- יוצרים קטגוריה של Amazon S3 לפי המדריך למשתמש: יצירת קטגוריה
- שומרים את שם הקטגוריה ואת האזור שלה לשימוש מאוחר יותר.
- יוצרים משתמש לפי מדריך המשתמש הזה: יצירת משתמש IAM.
- בוחרים את המשתמש שנוצר.
- לוחצים על הכרטיסייה פרטי כניסה לאבטחה.
- בקטע Access Keys, לוחצים על Create Access Key.
- בוחרים באפשרות שירות של צד שלישי בתור תרחיש השימוש.
- לוחצים על הבא.
- אופציונלי: מוסיפים תג תיאור.
- לוחצים על Create access key (יצירת מפתח גישה).
- לוחצים על Download CSV file כדי לשמור את Access Key ואת Secret Access Key לשימוש מאוחר יותר.
- לוחצים על סיום.
- לוחצים על הכרטיסייה הרשאות.
- בקטע Permissions policies, לוחצים על Add permissions.
- לוחצים על הוספת הרשאות.
- בוחרים באפשרות צירוף מדיניות ישירות.
- מחפשים את כללי המדיניות AmazonS3FullAccess ו-CloudWatchLogsFullAccess ובוחרים אותם.
- לוחצים על הבא.
- לוחצים על הוספת הרשאות.
הגדרת CloudTrail ב-AWS Control Tower
- נכנסים ל-AWS Management Console.
- עוברים אל AWS Control Tower.
- בסרגל החיפוש, מקלידים CloudTrail ובוחרים אותו מרשימת השירותים.
לוחצים על Create Trail כדי ליצור מעקב חדש.
מגדירים את ההגדרות של Trail:
- שם המעקב: נותנים שם משמעותי למעקב (לדוגמה, ControlTowerTrail).
- החלת נתיב על כל האזורים: מוודאים שבוחרים באפשרות כן עבור החלת נתיב על כל האזורים.
- אירועי ניהול: מוודאים שאירועי קריאה/כתיבה מוגדרים להכול.
- אופציונלי: אירועי נתונים: מפעילים אירועי נתונים של S3 ואירועי נתונים של Lambda כדי לתעד פעילות מפורטת של נתונים.
- אופציונלי: אימות קובץ יומן: מפעילים את האפשרות הזו כדי לוודא שלא יתבצעו שינויים בקובצי היומן אחרי שהם נשמרים.
בבורר Event, בוחרים לתעד ביומן את Management events ואת Data events.
איך מגדירים את CloudTrail
- נכנסים למסוף AWS IAM.
- לוחצים על תפקידים.
- מחפשים את התפקיד שבו משתמש CloudTrail
AWSServiceRoleForCloudTrail(התפקיד נוצר אוטומטית כשמגדירים את CloudTrail). - בכרטיסייה Permissions (הרשאות) של התפקיד, לוחצים על Attach policies (צירוף מדיניות).
- חיפוש של
CloudTrailS3DeliveryPolicy. - מסמנים את התיבה לצד המדיניות
CloudTrailS3DeliveryPolicy. - לוחצים על צירוף מדיניות.
- עוברים אל מסוף CloudTrail של AWS.
- בקטע Storage location, בוחרים באפשרות S3 כיעד לקובצי היומן.
- בוחרים את S3 bucket שיצרתם קודם.
- כשמתבקשים לתת ל-CloudTrail הרשאה לכתוב יומנים לקטגוריה שבחרתם, לוחצים על אישור.
- בודקים את ההגדרות ולוחצים על Create (או על Save changes אם עורכים מעקב קיים).
הגדרת פידים
יש שתי נקודות כניסה שונות להגדרת פידים בפלטפורמת Google SecOps:
- הגדרות SIEM > פידים > הוספת פיד חדש
- מרכז התוכן > חבילות תוכן > להתחלה
איך מגדירים את הפיד של AWS Control Tower
- לוחצים על חבילת Amazon Cloud Platform.
- מאתרים את סוג היומן AWS Control Tower.
מציינים את הערכים בשדות הבאים.
- סוג המקור: Amazon SQS V2
- Queue Name (שם התור): השם של תור ה-SQS שממנו ייקראו הנתונים
- S3 URI: מזהה ה-URI של הקטגוריה.
s3://your-log-bucket-name/- מחליפים את
your-log-bucket-nameבשם בפועל של קטגוריית ה-S3.
- מחליפים את
אפשרויות מחיקה של מקור: בוחרים את אפשרות המחיקה בהתאם להעדפות ההטמעה שלכם.
גיל מקסימלי של קובץ: כולל קבצים ששונו במספר הימים האחרונים. ברירת המחדל היא 180 ימים.
SQS Queue Access Key ID (מזהה מפתח גישה לתור SQS): מפתח גישה לחשבון שהוא מחרוזת אלפאנומרית באורך 20 תווים.
מפתח גישה סודי לתור SQS: מפתח גישה לחשבון שמורכב ממחרוזת אלפאנומרית באורך 40 תווים.
אפשרויות מתקדמות
- שם הפיד: ערך שמזהה את הפיד וממולא מראש.
- מרחב שמות של נכס: מרחב השמות שמשויך לפיד.
- תוויות להעברה: תוויות שמוחלות על כל האירועים מהפיד הזה.
לוחצים על יצירת פיד.
למידע נוסף על הגדרת כמה פידים לסוגים שונים של יומנים בתוך משפחת המוצרים הזו, אפשר לעיין במאמר בנושא הגדרת פידים לפי מוצר.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| awsAccountId | target.user.group_identifiers | מספר חשבון AWS שמשויך לאירוע. |
| digestPublicKeyFingerprint | target.file.sha1 | טביעת האצבע של המפתח הציבורי שמשמש לחתימה על התקציר. |
| digestPublicKeyFingerprint | target.resource.attribute.labels.value | טביעת האצבע של המפתח הציבורי ששימש לחתימה על התקציר. |
| digestS3Bucket | target.resource.name | השם של קטגוריית S3 שבה מאוחסן התקציר. |
| digestS3Object | target.file.full_path | הנתיב לאובייקט התקציר בקטגוריית S3. |
| digestSignatureAlgorithm | network.tls.cipher | האלגוריתם שמשמש לחתימה על הגיבוב. |
| digestSignatureAlgorithm | target.resource.attribute.labels.value | האלגוריתם שמשמש לחתימה על התקציר. |
| digestStartTime | metadata.event_timestamp | שעת ההתחלה של תקופת הסיכום. השדה הזה משמש כשעת האירוע אם השדה eventTime לא זמין. |
| eventCategory | security_result.category_details | הקטגוריה של האירוע. |
| eventID | metadata.product_log_id | המזהה הייחודי של האירוע. |
| eventName | metadata.product_event_type | שם האירוע. |
| eventName | security_result.summary | שם האירוע, שמשמש ליצירת סיכום תוצאות האבטחה. |
| eventSource | target.application | המקור של האירוע. |
| eventTime | metadata.event_timestamp | השעה שבה האירוע התרחש. |
| eventType | additional.fields.value.string_value | סוג האירוע. |
| logFiles.hashValue | about.file.sha256 | גיבוב SHA-256 של קובץ היומן. |
| logFiles.s3Bucket | about.resource.name | השם של קטגוריית ה-S3 שבה מאוחסן קובץ היומן. |
| logFiles.s3Object | about.file.full_path | הנתיב לאובייקט של קובץ היומן בקטגוריית S3. |
| previousDigestHashValue | target.file.sha256 | גיבוב SHA-256 של התקציר הקודם. |
| recipientAccountId | target.resource.attribute.labels.value | מספר חשבון AWS של הנמען של האירוע. |
| Records.awsRegion | principal.location.name | האזור ב-AWS שבו התרחש האירוע. |
| Records.errorCode | security_result.rule_id | קוד השגיאה, אם יש, שמשויך לבקשה. |
| Records.errorMessage | security_result.description | הודעת השגיאה שמשויכת לבקשה, אם יש כזו. |
| Records.eventCategory | security_result.category_details | הקטגוריה של האירוע. |
| Records.eventID | metadata.product_log_id | המזהה הייחודי של האירוע. |
| Records.eventName | metadata.product_event_type | שם האירוע. |
| Records.eventName | security_result.summary | שם האירוע, שמשמש ליצירת סיכום תוצאות האבטחה. |
| Records.eventSource | target.application | המקור של האירוע. |
| Records.eventTime | metadata.event_timestamp | השעה שבה האירוע התרחש. |
| Records.eventType | additional.fields.value.string_value | סוג האירוע. |
| Records.requestID | target.resource.attribute.labels.value | מזהה הבקשה. |
| Records.requestParameters.groupName | target.group.group_display_name | שם הקבוצה שמשויכת לבקשה, אם יש כזו. |
| Records.requestParameters.userName | src.user.userid | שם המשתמש שמשויך לבקשה, אם יש כזה. |
| Records.requestParameters.userName | src.user.user_display_name | השם של המשתמש, אם יש כזה, שמשויך לבקשה. |
| Records.responseElements.ConsoleLogin | security_action | התוצאה של ניסיון ההתחברות למסוף. |
| Records.responseElements.ConsoleLogin | security_result.summary | התוצאה של ניסיון הכניסה למסוף, שמשמשת ליצירת סיכום תוצאות האבטחה. |
| Records.sourceIPAddress | principal.hostname | כתובת ה-IP של חשבון המשתמש. הערך משמש כשם מארח אם הוא לא כתובת IP תקינה. |
| Records.sourceIPAddress | principal.ip | כתובת ה-IP של חשבון המשתמש. |
| Records.tlsDetails.cipherSuite | network.tls.cipher | סט האלגוריתמים להצפנה (cipher suite) שמשמש לחיבור ה-TLS. |
| Records.tlsDetails.tlsVersion | network.tls.version | גרסת ה-TLS שמשמשת לחיבור. |
| Records.userAgent | network.http.user_agent | סוכן המשתמש של הבקשה. |
| Records.userIdentity.accessKeyId | additional.fields.value.string_value | מזהה מפתח הגישה ששימש לבקשה. |
| Records.userIdentity.accountId | principal.user.group_identifiers | מזהה החשבון של המשתמש ב-AWS. |
| Records.userIdentity.arn | principal.user.attribute.labels.value | ה-ARN של המשתמש. |
| Records.userIdentity.arn | target.user.userid | ה-ARN של המשתמש. משמש כמזהה משתמש אם userName לא זמין. |
| Records.userIdentity.principalId | principal.user.product_object_id | המזהה הראשי של המשתמש. |
| Records.userIdentity.sessionContext.attributes.mfaAuthenticated | principal.user.attribute.labels.value | אם נעשה שימוש באימות רב-שלבי (MFA) בבקשה. |
| Records.userIdentity.sessionContext.sessionIssuer.userName | principal.user.userid | שם המשתמש של המשתמש שהנפיק את הסשן. |
| Records.userIdentity.type | principal.resource.type | סוג הזהות שמשמשת לבקשה. |
| Records.userIdentity.userName | target.user.userid | שם המשתמש של המשתמש. |
| - | extensions.auth.mechanism | צריך להגדיר את הערך "REMOTE". |
| - | metadata.event_type | מגדירים את הערך "STATUS_UPDATE", "USER_RESOURCE_ACCESS", "USER_LOGIN" או "GENERIC_EVENT" בהתאם ל-eventName. |
| - | metadata.log_type | מגדירים את הערך 'AWS_CONTROL_TOWER'. |
| - | metadata.product_name | מגדירים את האפשרות AWS Control Tower. |
| - | metadata.vendor_name | מגדירים את האפשרות 'AWS'. |
| - | principal.asset.attribute.cloud.environment | מגדירים את הערך "AMAZON_WEB_SERVICES". |
| - | security_result.action | צריך להגדיר את הערך "ALLOW" או "BLOCK" בהתאם ל-errorCode. |
| - | security_result.severity | הגדירו את הערך INFORMATIONAL. |
יומן שינויים
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.