איסוף יומנים של AWS Inspector
גרסת כלי הניתוח: 1.0
במאמר הזה מוסבר איך להטמיע יומנים של AWS Inspector ב-Google Security Operations באמצעות Amazon S3.
Amazon Inspector הוא שירות לניהול נקודות חולשה שמגלה באופן אוטומטי עומסי עבודה וסורק אותם באופן רציף כדי לזהות נקודות חולשה בתוכנה וחשיפה לא מכוונת של הרשת. הוא סורק מכונות Amazon EC2, קובצי אימג' של קונטיינרים ב-Amazon ECR ופונקציות של AWS Lambda, ומפיק ממצאים מפורטים עם ציוני חומרה והמלצות לתיקון. השילוב הזה משתמש בתכונת הייצוא המובנית של ממצאי Amazon Inspector כדי להעביר דוחות ממצאים בפורמט JSON לקטגוריית S3, ש-Google SecOps מעכלת באמצעות פיד Amazon S3 V2.
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מכונה של Google SecOps
- גישה עם הרשאות ניהול ל-AWS Management Console עם הרשאות לניהול:
- Amazon Inspector (ממצאים, דוחות)
- Amazon S3 (קטגוריות, מדיניות קטגוריות)
- AWS KMS (כללי מדיניות של מפתחות)
- AWS IAM (תפקידים, כללי מדיניות, משתמשים)
הגדרת קטגוריית S3 לייצוא של ממצאים מ-Amazon Inspector
Amazon Inspector מצפין את דוחות הממצאים באמצעות מפתח AWS KMS לפני שהוא מאחסן אותם בקטגוריית S3. כדי לאפשר ל-Amazon Inspector גישה, צריך להגדיר גם את המדיניות של קטגוריית S3 וגם את המדיניות של מפתח KMS.
יצירה והגדרה של קטגוריית S3
- יוצרים קטגוריה ב-Amazon S3 לפי המדריך למשתמש בנושא יצירת קטגוריה.
שומרים את השם והאזור של הקטגוריה לעיון בהמשך (לדוגמה,
inspector-findings-to-secops).בוחרים את הקטגוריה שנוצרה במסוף Amazon S3 בכתובת https://console.aws.amazon.com/s3.
לוחצים על הכרטיסייה הרשאות.
בקטע Bucket policy, לוחצים על Edit.
מוסיפים את ההצהרה הבאה למדיניות הקטגוריה (מחליפים את
inspector-findings-to-secopsבשם הקטגוריה, את111122223333במזהה החשבון ב-AWS ואתus-east-1באזור ב-AWS):{ "Version": "2012-10-17", "Statement": [ { "Sid": "allow-inspector", "Effect": "Allow", "Principal": { "Service": "inspector2.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::inspector-findings-to-secops/*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:inspector2:us-east-1:111122223333:report/*" } } } ] }לוחצים על שמירת השינויים.
הגדרת מפתח AWS KMS
כדי להצפין דוחות ממצאים, ל-Amazon Inspector נדרש מפתח סימטרי של AWS KMS בניהול הלקוח, באותו אזור שבו נמצאת קטגוריית S3.
- פותחים את מסוף AWS KMS בכתובת https://console.aws.amazon.com/kms.
- בחלונית הניווט, בוחרים באפשרות מפתחות בניהול הלקוח.
- בוחרים את מפתח ה-KMS שרוצים להשתמש בו (או יוצרים מפתח הצפנה סימטרי חדש).
- בוחרים בכרטיסייה Key policy ולוחצים על Edit.
מוסיפים את ההצהרה הבאה למדיניות המפתחות (מחליפים את
111122223333במזהה החשבון ב-AWS ואתus-east-1באזור ב-AWS):{ "Sid": "Allow Amazon Inspector to use the key", "Effect": "Allow", "Principal": { "Service": "inspector2.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:inspector2:us-east-1:111122223333:report/*" } } }לוחצים על שמירת השינויים.
ייצוא ממצאים של Amazon Inspector ל-S3
- נכנסים למסוף Amazon Inspector בכתובת https://console.aws.amazon.com/inspector/v2/home.
- בחלונית הניווט, עוברים אל ממצאים > כל הממצאים.
אופציונלי: משתמשים בסרגל הסינון שמעל לטבלת הממצאים כדי לציין אילו ממצאים לכלול בדוח.
לוחצים על ייצוא הממצאים.
בקטע הגדרות ייצוא, בוחרים באפשרות JSON בשדה סוג קובץ לייצוא.
בקטע Export location (מיקום הייצוא), בשדה S3 URI (מזהה משאב אחיד של S3), לוחצים על Browse S3 (עיון ב-S3) ובוחרים את קטגוריית S3
inspector-findings-to-secops.בשדה KMS key, בוחרים את מפתח AWS KMS שהגדרתם.
לוחצים על ייצוא.
אוטומציה של ייצוא הממצאים באמצעות AWS CLI
כדי לייצא דוחות של ממצאים על בסיס קבוע, משתמשים בפקודה create-findings-report של AWS CLI. אפשר לתזמן את הפקודה הזו באמצעות Amazon EventBridge Scheduler או משימת cron.
פקודה לדוגמה:
aws inspector2 create-findings-report \ --report-format JSON \ --s3-destination bucketName=inspector-findings-to-secops,keyPrefix=findings/,kmsKeyArn=arn:aws:kms:us-east-1:111122223333:key/your-kms-key-id
מידע נוסף זמין במאמר בנושא create-findings-report ב-AWS CLI.
הגדרת משתמש IAM ל-Google SecOps
כדי להטמיע את הממצאים המיוצאים, ל-Google SecOps צריך להיות משתמש IAM עם הרשאת קריאה לדלי S3.
- יוצרים משתמש לפי המדריך למשתמש: יצירת משתמש IAM.
- בוחרים את המשתמש שנוצר.
- לוחצים על הכרטיסייה פרטי כניסה לאבטחה.
- בקטע מפתחות גישה, לוחצים על יצירת מפתח גישה.
- בוחרים באפשרות שירות של צד שלישי בתור תרחיש שימוש.
- לוחצים על הבא.
- אופציונלי: מוסיפים תג תיאור.
- לוחצים על Create access key (יצירת מפתח גישה).
- לוחצים על הורדת קובץ CSV כדי לשמור את מפתח הגישה ואת מפתח הגישה הסודי לעיון עתידי.
- לוחצים על סיום.
- לוחצים על הכרטיסייה הרשאות.
- בקטע Permissions policies, לוחצים על Add permissions.
- לוחצים על הוספת הרשאות.
- בוחרים באפשרות צירוף מדיניות ישירות.
- מחפשים את המדיניות AmazonS3FullAccess.
- בוחרים את המדיניות.
- לוחצים על הבא.
- לוחצים על הוספת הרשאות.
הגדרת פיד ב-Google SecOps להטמעת יומנים של AWS Inspector
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- מזינים שם ייחודי בשם הפיד.
- בוחרים באפשרות Amazon S3 V2 בתור סוג המקור.
- בוחרים באפשרות AWS Inspector בתור סוג היומן.
- לוחצים על הבא ואז על שליחה.
מציינים ערכים בשדות הבאים:
- S3 URI:
s3://inspector-findings-to-secops/findings/ - אפשרות למחיקת מקור: בוחרים את אפשרות המחיקה לפי ההעדפה שלכם
- גיל הקובץ המקסימלי: הכללת קבצים ששונו במספר הימים האחרונים (ברירת המחדל היא 180 ימים)
- מזהה מפתח הגישה: מפתח הגישה של המשתמש עם גישה לקטגוריית S3
- מפתח גישה סודי: מפתח סודי של משתמש עם גישה לקטגוריית S3
- מרחב השמות של הנכס: מרחב השמות של הנכס
- תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה
- S3 URI:
לוחצים על הבא ואז על שליחה.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
duration_ms_label |
additional.fields |
ממוזג |
evnt_app_class_label |
additional.fields |
ממוזג |
evnt_cloud_application_class_label |
additional.fields |
ממוזג |
evnt_cloud_sandbox_md5_label |
additional.fields |
ממוזג |
evnt_cloudapp_rule_label |
additional.fields |
ממוזג |
evnt_content_type_label |
additional.fields |
ממוזג |
evnt_customer_label |
additional.fields |
ממוזג |
evnt_department_label |
additional.fields |
ממוזג |
evnt_location_label |
additional.fields |
ממוזג |
evnt_lpclagg_label |
additional.fields |
ממוזג |
evnt_lpcltype_label |
additional.fields |
ממוזג |
evnt_network_service_label |
additional.fields |
ממוזג |
evnt_tenant_label |
additional.fields |
ממוזג |
evnt_url_category_label |
additional.fields |
ממוזג |
exception_label |
additional.fields |
ממוזג |
function_label |
additional.fields |
ממוזג |
id_label |
additional.fields |
ממוזג |
level_no_label |
additional.fields |
ממוזג |
line_label |
additional.fields |
ממוזג |
location_label |
additional.fields |
ממוזג |
logger_field |
additional.fields |
ממוזג |
msg_location_label |
additional.fields |
ממוזג |
msg_record_functionName_label |
additional.fields |
ממוזג |
msg_record_functionVersion_label |
additional.fields |
ממוזג |
msg_record_initializationType_label |
additional.fields |
ממוזג |
msg_record_instancId_label |
additional.fields |
ממוזג |
msg_record_instanceMaxMemory_label |
additional.fields |
ממוזג |
msg_record_phase_label |
additional.fields |
ממוזג |
msg_service_label |
additional.fields |
ממוזג |
msg_type_label |
additional.fields |
ממוזג |
msg_xray_trace_id_label |
additional.fields |
ממוזג |
protocol_label |
additional.fields |
ממוזג |
record_version_label |
additional.fields |
ממוזג |
repr_label |
additional.fields |
ממוזג |
service_label |
additional.fields |
ממוזג |
sourcetype_label |
additional.fields |
ממוזג |
thread_name_label |
additional.fields |
ממוזג |
type_label |
additional.fields |
ממוזג |
xray_trace_id_label |
additional.fields |
ממוזג |
evnt_device_hostname |
intermediary.hostname |
מיפוי ישיר |
evnt_fwd_method_label |
intermediary.resource.attribute.labels |
ממוזג |
desc_msg |
metadata.description |
מיפוי ישיר |
message |
metadata.description |
מיפוי ישיר |
msg |
metadata.description |
מיפוי ישיר |
msg_desc_msg |
metadata.description |
מיפוי ישיר |
msg_record_desc_msg |
metadata.description |
מיפוי ישיר |
msg_text |
metadata.description |
מיפוי ישיר |
msg.time |
metadata.event_timestamp |
ניתוח הכתובות שברשימה: ISO8601 |
repr_time |
metadata.event_timestamp |
ניתוח הכתובות שברשימה: ISO8601 |
timestamp |
metadata.event_timestamp |
ניתוח הכתובות שברשימה: ISO8601 |
has_host |
metadata.event_type |
מיפוי: true → STATUS_UPDATE |
has_user |
metadata.event_type |
מיפוי: true ← USER_COMMUNICATION, true ← USER_UNCATEGORIZED |
msg_record_module |
metadata.product_event_type |
מיפוי ישיר |
id_1 |
metadata.product_log_id |
מיפוי ישיר |
evnt_bytes_in |
network.received_bytes |
מיפוי ישיר |
evnt_bytes_out |
network.sent_bytes |
מיפוי ישיר |
evnt_app_name |
principal.application |
מיפוי ישיר |
msg_record_process_name |
principal.application |
מיפוי ישיר |
evnt_device_app_version_label |
principal.asset.attribute.labels |
ממוזג |
evnt_ssl_policy_label |
principal.asset.attribute.labels |
ממוזג |
evnt_server_ip |
principal.asset.ip |
ממוזג |
evnt_src_ip |
principal.asset.ip |
ממוזג |
evnt_src_translated_ip |
principal.asset.ip |
ממוזג |
msg_record_file_path |
principal.file.full_path |
מיפוי ישיר |
msg_record_file_name |
principal.file.names |
ממוזג |
evnt_hostname |
principal.hostname |
מיפוי ישיר |
host |
principal.hostname |
מיפוי ישיר |
evnt_server_ip |
principal.ip |
ממוזג |
evnt_src_ip |
principal.ip |
ממוזג |
evnt_src_translated_ip |
principal.ip |
ממוזג |
evnt_os |
principal.platform |
מופו: Windows ← WINDOWS, Linux ← LINUX |
evnt_src_port |
principal.port |
מיפוי ישיר |
port_number |
principal.port |
מיפוי ישיר |
msg_record_process_id |
principal.process.pid |
מיפוי ישיר |
cmd_status_label |
principal.resource.attribute.labels |
ממוזג |
evnt_format_label |
principal.resource.attribute.labels |
ממוזג |
evnt_os_label |
principal.resource.attribute.labels |
ממוזג |
msg_record_runtimeVersionArn_label |
principal.resource.attribute.labels |
ממוזג |
msg_record_runtimeVersion_label |
principal.resource.attribute.labels |
ממוזג |
record_requestId_labels |
principal.resource.attribute.labels |
ממוזג |
requestId_labels |
principal.resource.attribute.labels |
ממוזג |
msg_record_name |
principal.resource.name |
מיפוי ישיר |
id |
principal.resource.product_object_id |
מיפוי ישיר |
evnt_url |
principal.url |
מיפוי ישיר |
evnt_device_owner |
principal.user.user_display_name |
מיפוי ישיר |
evnt_user |
principal.user.userid |
מיפוי ישיר |
msg_extra_desc_msg_body_account_id |
principal.user.userid |
מיפוי ישיר |
evnt_action |
security_result.action |
מיפוי: allow → security_result_action |
security_result_action |
security_result.action |
ממוזג |
security_result_category_details |
security_result.category_details |
ממוזג |
security_result_url_super_category |
security_result.category_details |
ממוזג |
elapsed_time_label |
security_result.detection_fields |
ממוזג |
evnt_session_count_label |
security_result.detection_fields |
ממוזג |
evnt_ssl_decrypted_label |
security_result.detection_fields |
ממוזג |
evnt_url_class_label |
security_result.detection_fields |
ממוזג |
level_icon_label |
security_result.detection_fields |
ממוזג |
level |
security_result.severity |
מיפוי: INFO ← INFORMATIONAL, WARNING ← MEDIUM |
msg_level |
security_result.severity |
מיפוי: INFO ← INFORMATIONAL, WARNING ← MEDIUM |
evnt_dest_ip |
target.ip |
ממוזג |
evnt_dest_country |
target.location.country_or_region |
מיפוי ישיר |
evnt_dest_port |
target.port |
מיפוי ישיר |
dst_url |
target.url |
מיפוי ישיר |
| לא רלוונטי | metadata.event_type |
קבוע: USER_COMMUNICATION |
| לא רלוונטי | metadata.product_name |
קבוע: AWS Inspector |
| לא רלוונטי | metadata.vendor_name |
קבוע: AWS Inspector |
| לא רלוונטי | network.ip_protocol |
קבוע: UDP |
| לא רלוונטי | principal.platform |
קבוע: WINDOWS |
| לא רלוונטי | security_result.detection_fields |
קבוע: client_tunnel_ip_label |
| לא רלוונטי | security_result.severity |
קבוע: INFORMATIONAL |
יומן שינויים
צפייה ביומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.