איסוף יומני גישה לשרת AWS S3

גרסת כלי הניתוח: 4.0

נתמך ב:

במאמר הזה מוסבר איך לאסוף יומני גישה לשרת AWS S3 על ידי הגדרת פיד של Google Security Operations. המנתח מחלץ שדות באמצעות תבניות grok, מטפל בקלט JSON פוטנציאלי וממפה את השדות שחולצו ל-UDM. הוא מבצע טרנספורמציות של נתונים, המרות של סוגים ולוגיקה מותנית על סמך הנוכחות והערכים של שדות ספציפיים כדי להבטיח ייצוג מדויק של UDM.

לפני שמתחילים

ודאו שהדרישות המוקדמות הבאות מתקיימות:

  • מופע של Google SecOps
  • גישה מיוחדת ל-AWS

איך מגדירים רישום ביומן של גישה לשרת AWS S3

ב-Google SecOps אפשר לאסוף יומנים באמצעות Amazon S3 דרך Amazon SQS.

  1. נכנסים למסוף AWS Management.
  2. נכנסים למסוף Amazon S3.
  3. עוברים אל Amazon S3 > Buckets (מאגרי מידע).
  4. בוחרים דלי קיים או יוצרים דלי חדש.
  5. לוחצים על מאפיינים.
  6. בקטע Server access logging, לוחצים על Edit.
  7. לוחצים על הפעלה.
  8. בשדה Target bucket, מזינים שם לקטגוריה החדשה שאליה יישלחו אובייקטים של רשומות יומן, או בוחרים קטגוריה קיימת כיעד.
  1. לוחצים על שמירת השינויים.
  2. כדי ליצור את תור ה-SQS לקטגוריית S3, מגדירים מכונה של Amazon SQS עם אחסון S3. מידע נוסף זמין במאמר הגדרת קטגוריה לקבלת התראות (נושא SNS או תור SQS).

על סמך השירות והאזור, אפשר לזהות את נקודות הקצה לקישוריות בעזרת מסמכי התיעוד הבאים של AWS:

הגדרת פידים

יש שתי נקודות כניסה שונות להגדרת פידים בפלטפורמת Google SecOps:

  • הגדרות SIEM > פידים > הוספת פיד חדש
  • מרכז התוכן > חבילות תוכן > מתחילים

איך מגדירים את הפיד של AWS S3 Service Access

  1. לוחצים על החבילה Amazon Cloud Platform.
  2. מאתרים את סוג היומן AWS S3 Service Access.
  3. ‫Google SecOps תומך באיסוף יומנים באמצעות מזהה מפתח גישה ושיטה סודית. כדי ליצור את מזהה מפתח הגישה והסוד, אפשר לעיין במאמר הגדרת אימות כלי באמצעות AWS.
  4. מציינים את הערכים בשדות הבאים.

    • סוג המקור: Amazon SQS V2
    • ‫Queue Name (שם התור): השם של תור ה-SQS שממנו ייקראו הנתונים
    • ‫S3 URI: ה-URI של הקטגוריה.
      • s3://your-log-bucket-name/
        • מחליפים את your-log-bucket-name בשם בפועל של קטגוריית ה-S3.
    • אפשרויות מחיקה של מקור: בוחרים את אפשרות המחיקה בהתאם להעדפות ההטמעה שלכם.

    • הגיל המקסימלי של הקובץ: כולל קבצים שעברו שינוי במספר הימים האחרון. ברירת המחדל היא 180 ימים.

    • מזהה מפתח הגישה לתור SQS: מפתח גישה לחשבון שהוא מחרוזת אלפאנומרית באורך 20 תווים.

    • מפתח גישה סודי לתור SQS: מפתח גישה לחשבון שהוא מחרוזת אלפאנומרית באורך 40 תווים.

    אפשרויות מתקדמות

    • שם הפיד: ערך שמאכלס מראש את השדה ומזהה את הפיד.
    • מרחב שמות של נכס: מרחב השמות שמשויך לפיד.
    • תוויות להעברה: תוויות שמוחלות על כל האירועים מהפיד הזה.
  5. לוחצים על יצירת פיד.

למידע נוסף על הגדרת כמה פידים לסוגים שונים של יומנים בתוך משפחת המוצרים הזו, אפשר לעיין במאמר בנושא הגדרת פידים לפי מוצר.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
aclRequired target.resource.attribute.labels.key: "aclRequired"
target.resource.attribute.labels.value: הערך של aclRequired
ממופה ישירות משדה היומן הגולמי aclRequired.
authenticationtype extensions.auth.auth_details ממופה ישירות משדה היומן הגולמי authenticationtype.
bucket target.resource.name ממופה ישירות משדה היומן הגולמי bucket.
bucket target.resource.resource_type: "STORAGE_BUCKET" אם השדה bucket קיים, מנתח התוכן מגדיר את resource_type כ-STORAGE_BUCKET.
bucketowner target.resource.product_object_id ממופה ישירות משדה היומן הגולמי bucketowner.
bytes_sent network.sent_bytes ממופה ישירות מהשדה bytes_sent ביומן הגולמי אחרי המרה למספר שלם ללא סימן והחלפת "-" ב-"0".
ciphersuite network.application_protocol: "HTTPS" אם השדה ciphersuite קיים, מנתח התוכן מגדיר את application_protocol כ-'HTTPS'.
ciphersuite network.tls.cipher ממופה ישירות משדה היומן הגולמי ciphersuite.
errorcode security_result.action_details ממופה ישירות משדה היומן הגולמי errorcode.
errorcode security_result.action: "BLOCK" אם השדה errorcode מכיל את הערך AccessDenied (לא תלוי באותיות רישיות), מנתח התוכן מגדיר את הערך של action כ-BLOCK.
hostheader target.hostname הערך חולץ משדה היומן הגולמי hostheader, ויכול להיות שמספר היציאה הוסר.
hostheader target.port הערך מחולץ משדה היומן הגולמי hostheader אם קיים מספר יציאה.
hostid target.resource.attribute.labels.key: "מזהה בקשה מורחב של S3"
target.resource.attribute.labels.value: הערך של hostid
ממופה ישירות משדה היומן הגולמי hostid.
http_capture network.http.method ה-method של ה-HTTP מחולץ מהשדה http_capture.
http_capture network.http.version גרסת ה-HTTP מחולצת מהשדה http_capture.
http_capture target.url כתובת ה-URL של היעד מורכבת מ-hostheader ומ-http_request_uri (שחולצו מ-http_capture), עם הקידומת http://‎ או https://‎ בהתאם לנוכחות של ciphersuite.
httpstatus network.http.response_code ממופה ישירות מהשדה httpstatus ביומן הגולמי אחרי המרה למספר שלם.
object_version_id target.resource.product_object_id ממופה ישירות משדה היומן הגולמי object_version_id.
objectsize target.file.size מופה ישירות משדה היומן הגולמי objectsize אחרי המרה למספר שלם לא מסומן והחלפה של '-' ב-'0'.
operation metadata.product_event_type ממופה ישירות משדה היומן הגולמי operation.
referrer network.http.referral_url ממופה ישירות משדה היומן הגולמי referrer אחרי הסרת המירכאות.
remoteip metadata.event_type: "USER_RESOURCE_ACCESS" המנתח מגדיר את event_type לערך USER_RESOURCE_ACCESS אם השדה remoteip ריק.
remoteip principal.ip ממופה ישירות משדה היומן הגולמי remoteip.
requester ‫target.resource.attribute.labels.key: "Access Point ARN"
target.resource.attribute.labels.value: הערך של requester
ממופה ישירות משדה היומן הגולמי requester.
requester_user principal.user.userid ממופה ישירות משדה היומן הגולמי requester_user.
requestid network.session_id ממופה ישירות משדה היומן הגולמי requestid.
request_time_ms network.session_duration.nanos מופה ישירות משדה היומן הגולמי request_time_ms אחרי המרה למספר שלם, החלפת המקף ב-0 וריפוד באפסים כדי לייצג ננו-שניות.
signatureversion ‫target.resource.attribute.labels.key: "Signature Version"
target.resource.attribute.labels.value: הערך של signatureversion
ממופה ישירות משדה היומן הגולמי signatureversion.
time metadata.event_timestamp הערך הזה מנותח משדה היומן הגולמי time ומומר לחותמת זמן.
tlsVersion network.tls.version ממופה ישירות משדה היומן הגולמי tlsVersion.
useragent network.http.user_agent ממופה ישירות משדה היומן הגולמי useragent אחרי הסרת המירכאות.
(לוגיקת הניתוח) metadata.event_type: 'NETWORK_HTTP' המנתח מגדיר את ברירת המחדל של event_type ל-"NETWORK_HTTP".
(לוגיקת הניתוח) metadata.log_type: "AWS_S3_SERVER_ACCESS" הכלי לניתוח מגדיר את הערך log_type כ-AWS_S3_SERVER_ACCESS.
(Parser Logic) ‫metadata.product_name: 'גישה לשרת AWS S3' הכלי לניתוח מגדיר את הערך product_name כ-AWS S3 Server Access.
(Parser Logic) metadata.product_version: ‏'HTTP/http_version' המנתח מגדיר את product_version באמצעות http_version שחולץ.
(לוגיקת הניתוח) ‫metadata.vendor_name: ‎"AMAZON"‎ הכלי לניתוח מחרוזות מגדיר את הערך vendor_name כ-AMAZON.
(לוגיקת הניתוח) network.application_protocol: "HTTP" אם השדה ciphersuite לא קיים, מנתח התוכן מגדיר את application_protocol כ-'HTTP'.
(Parser Logic) timestamp הכלי לניתוח מחרוזות מגדיר את האירוע timestamp לשעה הנוכחית כשמעבדים את האירוע.

יומן שינויים

צפייה ביומן השינויים של המנתח הזה

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.