ייצוא יומנים למערכת SIEM

בדף הזה מוסבר איך לייצא יומנים מ-Google Distributed Cloud (GDC) עם air gap למערכת חיצונית לניהול אבטחת מידע ואירועים (SIEM). השילוב הזה מאפשר ניתוח מרכזי של נתוני היומן וניטור משופר לצורכי אבטחה.

הליבה של ייצוא היומנים כוללת פריסה של משאב מותאם אישית של SIEMOrgForwarder. המשאב הזה פועל כקובץ תצורה, ומציין את הפרטים של מכונת ה-SIEM החיצונית שמיועדת לקבל את היומנים. הגדרת הפרמטרים האלה בקובץ SIEMOrgForwarder מאפשרת לאדמינים ליצור צינור עיבוד נתונים יעיל ומאובטח לייצוא יומנים.

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

כדי לקבל את ההרשאות שדרושות לניהול משאבים בהתאמה אישית של SIEMOrgForwarder, צריך לבקש ממנהל חשבון ארגוני ב-IAM להקצות לכם את אחד מהתפקידים שמשויכים ל-SIEM Export Org.

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

אחרי שמקבלים את ההרשאות הנדרשות, מבצעים את השלבים הבאים לפני שמייצאים את היומנים למערכת SIEM חיצונית:

  1. יצירת קישוריות: מוודאים שיש חיבור בין GDC לבין יעד ה-SIEM החיצוני. אם צריך, אפשר לעבוד עם מפעיל התשתית (IO) כדי ליצור חיבור uplink לרשת של הלקוח.

  2. הגדרה של משתני סביבה: מגדירים את משתני הסביבה הבאים כדי להריץ את הפקודות מהדף הזה:

    • הנתיב של קובץ ה-kubeconfig:

      export KUBECONFIG=KUBECONFIG_PATH
      

      מחליפים את KUBECONFIG_PATH בנתיב לקובץ kubeconfig של שרת Management API.

    • מרחב השמות של הפרויקט:

      export PROJECT_NAMESPACE=PROJECT_NAMESPACE
      

הגדרת ייצוא של יומנים

יוצרים את הסוד ואת המשאב בהתאמה אישית של SIEMOrgForwarder באותו מרחב שמות. אפשר להשתמש בכל מרחב שמות של פרויקט. כל SIEMOrgForwarder מייצא יומני פלטפורמה מכל האשכולות בארגון, כך שאין צורך ליצור את המשאבים האלה בפרויקטים או באשכולות אחרים.

מומלץ להשתמש במרחב השמות platform-obs כי SIEMOrgForwarder מייצא רק יומני פלטפורמה. התפקידים ברמת הארגון של ייצוא ל-SIEM גם נותנים גישת קריאה לכל הסודות במרחב השמות שבו הם מוקצים, לכן בקשו ממנהל החשבון הארגוני ב-IAM להקצות את התפקידים האלה רק לאדמינים של הפלטפורמה.

ייצוא יומנים למערכת SIEM חיצונית:

  1. צריך לספק אסימון כדי לחבר את מחסנית הרישום למערכת ה-SIEM. כדי לבצע את הפעולה הזו, צריך ליצור סוד במרחב השמות של הפרויקט כדי לאחסן את האסימון במקרה של Splunk ואת הסיסמה במקרה של Elastic SIEM:

    cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: SECRET_NAME
      namespace: ${PROJECT_NAMESPACE}
    type: Opaque
    stringData:
      SECRET_FIELD: FIELD_VALUE
    EOF
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SECRET_NAME: שם הסוד.
    • ‫SECRET_FIELD: שם השדה שבו רוצים לאחסן את הסוד. ב-Elastic, משתמשים באותו ערך כמו של HTTP_USER_NAME במשאב בהתאמה אישית.
    • ‫FIELD_VALUE: הערך של FIELD_VALUE הוא אסימון במקרה של Splunk וסיסמה במקרה של Elastic.
  2. פורסים את המשאב בהתאמה אישית SIEMOrgForwarder במרחב השמות של הפרויקט. צריך לציין את סוג היומן: יומן ביקורת או יומן תפעולי. כדי להגדיר את ייצוא היומנים לשני סוגי היומנים, צריך לפרוס משאב SIEMOrgForwarder לכל סוג.

    בדוגמה הבאה מוסבר איך להחיל הגדרה על משאב בהתאמה אישית של SIEMOrgForwarder ל-Splunk:

      cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
      apiVersion: logging.gdc.goog/v1
      kind: SIEMOrgForwarder
      metadata:
        name: SIEM_ORG_FORWARDER
        namespace: ${PROJECT_NAMESPACE}
      spec:
        source: LOG_TYPE
        destinations:
          splunkOutputs:
            - host: SIEM_HOST
              token:
                name: SECRET_NAME
                field: SECRET_FIELD
              tls: "TLS"
              netConnectTimeout: NET_CONNECT_TIMEOUT
      EOF
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SIEM_ORG_FORWARDER: השם של קובץ ההגדרה של SIEMOrgForwarder.
    • ‫LOG_TYPE: סוג היומן שאתם מייצאים. הערכים הקבילים הם audit ו-operational.
    • ‫SIEM_HOST: השם של מארח ה-SIEM.
    • ‫SECRET_NAME: שם הסוד.
    • ‫SECRET_FIELD: שם השדה שבו שמרתם את הסוד.
    • ‫TLS: הסטטוס של Transport Layer Security‏ (TLS). הערכים הקבילים הם "On" ו-"Off".
    • ‫NET_CONNECT_TIMEOUT: משך הזמן המקסימלי בשניות להמתנה עד ליצירת חיבור. לדוגמה, הערך 180 פירושו המתנה של 180 שניות.

    בדוגמה הבאה אפשר לראות איך מחילים הגדרה על משאב בהתאמה אישית של SIEMOrgForwarder ל-Elastic:

      cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
      apiVersion: logging.gdc.goog/v1
      kind: SIEMOrgForwarder
      metadata:
        name: SIEM_ORG_FORWARDER
        namespace: ${PROJECT_NAMESPACE}
      spec:
        source: LOG_TYPE
        destinations:
          elasticOutputs:
            - host: SIEM_HOST
              port: SIEM_PORT
              http_credential:
                http_user: HTTP_USER_NAME
                http_passwd: SECRET_NAME
              tls: "TLS"
              netConnectTimeout: NET_CONNECT_TIMEOUT
              index: INDEX
      EOF
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SIEM_ORG_FORWARDER: השם של קובץ ההגדרה של SIEMOrgForwarder.
    • ‫LOG_TYPE: סוג היומן שאתם מייצאים. הערכים הקבילים הם audit ו-operational.
    • ‫SIEM_HOST: השם של מארח ה-SIEM.
    • ‫SIEM_PORT: היציאה של מכונת ה-SIEM.
    • ‫HTTP_USER_NAME: שם המשתמש של מכונת ה-SIEM. הערך הזה חייב להיות גם המפתח SECRET_FIELD בסוד שבו מאוחסנת הסיסמה.
    • ‫SECRET_NAME: שם הסוד.
    • ‫TLS: הסטטוס של Transport Layer Security‏ (TLS). הערכים הקבילים הם "On" ו-"Off".
    • ‫NET_CONNECT_TIMEOUT: משך הזמן המקסימלי בשניות להמתנה עד ליצירת חיבור. לדוגמה, הערך 180 פירושו המתנה של 180 שניות.
    • ‫INDEX: האינדקס של המכונה של Elastic. אם לא מציינים ערך, המערכת משתמשת בסוג היומן (audit או operational). השדה הזה הוא אופציונלי.
  3. מאמתים את הסטטוס של המשאב המותאם אישית של SIEMOrgForwarder שנפרס:

      kubectl --kubeconfig=${KUBECONFIG} describe siemorgforwarder/SIEM_ORG_FORWARDER \
          -n ${PROJECT_NAMESPACE}
    

    בהתאם לסוג היומן, בודקים את הסטטוס הבא:

    • יומני ביקורת: בודקים את הסטטוס של AuditLoggingReady.
    • יומני פעילות: בדיקת הסטטוס של OperationalLoggingReady.