ניהול ידני של הגדרות של חברות שילוח

נתמך ב:

בדף הזה מוסבר איך ליצור ולשנות באופן ידני קובץ הגדרות של מעביר נתונים ב-Google Security Operations. כדי להגדיר את המעביר דרך ממשק המשתמש (מומלץ), אפשר לעיין במאמר בנושא ניהול הגדרות של מעבירים דרך ממשק המשתמש של Google SecOps.

לכל מעביר נתונים של Google SecOps שמוטמע נדרש קובץ הגדרה של מעביר נתונים. קובץ הגדרות של מעביר נתונים מציין את ההגדרות להעברת הנתונים למופע של Google SecOps.

מידע על התקנה והגדרה של המעביר של Google SecOps, על דרישות המערכת ועל הגדרות ההגדרה זמין במאמר התקנה והגדרה של המעביר.

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

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

יצירת קובץ התצורה

כדי ליצור את קובץ התצורה באופן ידני, פועלים לפי השלבים הבאים:

  1. מורידים את קובצי ההגדרות דרך ממשק המשתמש.

  2. שומרים את שני הקבצים באותה תיקייה לפי מוסכמת השמות הבאה:

    ‫FORWARDER_NAME.conf – משתמשים בקובץ הזה כדי להגדיר את הגדרות התצורה שקשורות להוספת נתונים ליומן.

    ‫FORWARDER_NAME_auth.conf – משתמשים בקובץ הזה כדי להגדיר את פרטי ההרשאה.

  3. משנים את הקבצים כך שיכללו את ההגדרות של מופע המעביר.

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

  4. מוודאים שיש רשומה לכל קלט בקובץ FORWARDER_NAME_auth.conf, גם אם לקלט אין פרטי אימות תואמים. הפעולה הזו נדרשת כדי למפות את הנתונים בצורה נכונה.

כל שינוי שתבצעו בקובץ ההגדרות יחול באופן אוטומטי על ידי המעביר תוך חמש דקות.

הגדרות לדוגמה

אתם יכולים להשתמש בקובצי ההגדרות הבאים כתבניות כדי ליצור קבצים משלכם.

דוגמה להגדרה של שני קבצים

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

בדוגמת הקוד הבאה מוצג הפורמט של קובצי ההגדרות של מעביר נתונים.

הקובץ FORWARDER_NAME.conf

output:
  url: {region}-chronicle.googleapis.com (for example: us-chronicle.googleapis.com)
  use_dataplane : true
  project_id: PROJECT_ID
  region: {region} (for example: {us})
  identity:
    identity:
    collector_id: COLLECTOR_ID \
    customer_id: CUSTOMER_ID \

collectors:
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DHCP"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10514
      udp_address: 0.0.0.0:10514
      connection_timeout_sec: 60
      tcp_buffer_size: 524288
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DNS"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10515
      connection_timeout_sec: 60
      tcp_buffer_size: 524288

הקובץ FORWARDER_NAME_auth.conf

output:
  identity:
    secret_key: |
      {
        "type": "service_account",
        "project_id": "PROJECT_ID" \,
        "private_key_id": "PRIVATE_KEY_ID" \,
        "private_key": "-----BEGIN PRIVATE KEY-----\\"PRIVATE_KEY" \n-----END PRIVATE KEY-----\n",
        "client_email": "CLIENT_EMAIL" \,
        "client_id": "CLIENT_ID" \,
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/example-account-1%40example-account.iam.gserviceaccount.com"
      }

collectors:
  - syslog:
  - syslog:
      certificate: "../forwarder/inputs/testdata/localhost.pem"
      certificate_key: "../forwarder/inputs/testdata/localhost.key"

דוגמה להגדרות של קובץ יחיד

output:
  url: us-chronicle.googleapis.com
  use_dataplane: true
  project_id: PROJECT_ID
  region: us
    identity:
    collector_id: COLLECTOR_ID \
    customer_id: CUSTOMER_ID \
    secret_key: |
      {
        "type": "service_account",
        "project_id": "PROJECT_ID" \,
        "private_key_id": "PRIVATE_KEY_ID" \,
        "private_key": "-----BEGIN PRIVATE KEY-----\ "PRIVATE_KEY" \n-----END PRIVATE KEY-----\n",
        "client_email": "CLIENT_EMAIL" \,
        "client_id": "CLIENT_ID" \,
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/malachite-test-1%40malachite-test.iam.gserviceaccount.com"
      }

collectors:
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DHCP"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10514
      udp_address: 0.0.0.0:10514
      connection_timeout_sec: 60
      tcp_buffer_size: 524288
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DNS"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10515
      connection_timeout_sec: 60
      certificate: "../forwarder/inputs/testdata/localhost.pem"
      certificate_key: "../forwarder/inputs/testdata/localhost.key"
      tcp_buffer_size: 524288

המרת מערכת קבצים מקובץ יחיד לשני קבצים

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

  1. יוצרים עותק של קובץ התצורה הקיים.

  2. שומרים קובץ אחד כקובץ FORWARDER_NAME.conf ומוחקים את פרטי ההרשאה מהקובץ.

  3. שומרים את הקובץ השני כקובץ FORWARDER_NAME_auth.conf ומוחקים ממנו את כל הנתונים שאינם נתוני הרשאה. אפשר להשתמש בהגדרת הדוגמה כהפניה. חשוב לפעול לפי מוסכמת מתן השמות וההנחיות האחרות שמפורטות בקטע התאמה אישית של ההגדרות.

הגדרת סוגי נתונים בקובץ ההגדרות

הקטעים הבאים יעזרו לכם להגדיר את המעביר של Google SecOps כדי להטמיע סוגים שונים של נתונים, שמועברים למופע של Google SecOps.

נתוני Splunk

אפשר להגדיר את המעביר של Google SecOps כדי להעביר את הנתונים של Splunk ל-Google SecOps. Google Cloud מגדיר את המעביר של Google SecOps עם המידע הבא כדי להעביר את הנתונים מ-Splunk:

  • כתובת ה-URL של Splunk API בארכיטקטורת REST (לדוגמה, https://10.0.113.15:8089).

  • שאילתות Splunk ליצירת נתונים לכל אחד מסוגי הנתונים הנדרשים (לדוגמה, index=dns).

FORWARDER_NAME.conf
output:
collectors:
  - splunk:
      common:
        enabled: true
        data_type: WINDOWS_DNS
        data_hint: "#fields ts      uid     id.orig_h       id.orig_p       id.resp_h         id.resp_p       proto   trans_id        query   qclass  qclass_name"
        batch_n_seconds: 10
        batch_n_bytes: 819200
      url: https://127.0.0.1:8089
      is_ignore_cert: true
      minimum_window_size: 10s
      maximum_window_size: 30s
      query_string: search index=* sourcetype=dns
      query_mode: realtime
  • הופכים את פרטי הכניסה לחשבון Splunk לזמינים למעביר של Google SecOps. כדי לעשות את זה, יוצרים קובץ creds.txt.

כדי להשתמש בקובץ creds.txt:

  1. יוצרים קובץ מקומי לפרטי הכניסה שלכם ל-Splunk ונותנים לו את השם creds.txt.

  2. מזינים את שם המשתמש בשורה הראשונה ואת הסיסמה בשורה השנייה:

    cat creds.txt
    
    myusername
    mypassword
    
  3. כדי להשתמש ב-Google SecOps forwarder כדי לגשת למופע של Splunk, מעתיקים את הקובץ creds.txt לספריית התצורה (אותה ספרייה שבה נמצאים קובצי התצורה).

    Linux

    cp creds.txt /opt/chronicle/config/creds.txt
    

    Windows

    cp creds.txt c:/opt/chronicle/config/creds.txt
    
  4. מוודאים שהקובץ creds.txt נמצא בספרייה הרצויה:

    Linux

      ls /opt/chronicle/config
    

    Windows

    ls c:/opt/chronicle/config
    

נתוני Syslog

אפשר להשתמש בשרת להעברת נתונים כשרת Syslog. אתם יכולים להגדיר כל שרת שתומך בשליחת נתוני Syslog דרך חיבור TCP או UDP כדי להעביר את הנתונים שלו אל כלי ההעברה של Google SecOps. אתם יכולים לשלוט בנתונים שהשרת שולח למעביר, והמעביר יכול להעביר את הנתונים ל-Google SecOps.

קובץ ההגדרות FORWARDER_NAME.conf (שמסופק על ידיGoogle Cloud) מציין אילו יציאות צריך לנטר עבור כל סוג של נתונים מועברים (לדוגמה, יציאה 10514). כברירת מחדל, המעביר של Google SecOps מקבל חיבורי TCP ו-UDP.

אפשר לערוך את שטח האחסון הזמני של TCP. גודל ברירת המחדל של שטח האחסון הזמני של TCP הוא 64KB. ערך ברירת המחדל והערך המומלץ של הפרמטר connection_timeout הוא 60 שניות. חיבור ה-TCP יסתיים אם החיבור לא פעיל במשך יותר מ-60 שניות.

הגדרת rsyslog

כדי להגדיר את rsyslog, צריך לציין יעד לכל יציאה (לדוגמה, לכל סוג נתונים). בדוגמאות הבאות מוצגת הגדרת היעד rsyslog:

  • תנועת יומן TCP: dns.* @@192.168.0.12:10514

  • תנועת יומן UDP: dns.* @192.168.0.12:10514

פרטים נוספים מופיעים במסמכי העזרה של המערכת.

הפעלת TLS להגדרות Syslog

אפשר להפעיל TLS לחיבור Syslog למעביר של Google SecOps. בקובץ ההגדרות של המעביר (FORWARDER_NAME.conf), מציינים את המיקום של האישור ושל מפתח האישור שנוצרו, כמו בדוגמה הבאה. אפשר ליצור ספרייה בשם certs בספרייה configuration ולאחסן בה את קובצי האישורים.

Linux:

אישור /opt/chronicle/external/certs/client_generated_cert.pem
certificate_key /opt/chronicle/external/certs/client_generated_cert.key

‫Windows:

אישור c:/opt/chronicle/external/certs/client_generated_cert.pem
certificate_key c:/opt/chronicle/external/certs/client_generated_cert.key

על סמך הדוגמה שמוצגת, משנים את קובץ התצורה של המעביר (FORWARDER_NAME.conf) באופן הבא:

Linux:

 collectors:
- syslog:
   common:
     enabled: true
     data_type: WINDOWS_DNS
     data_hint:
     batch_n_seconds: 10
     batch_n_bytes: 1048576
   tcp_address: 0.0.0.0:10515
   tcp_buffer_size: 65536
   connection_timeout_sec: 60
   certificate: "/opt/chronicle/external/certs/client_generated_cert.pem"
   certificate_key: "/opt/chronicle/external/certs/client_generated_cert.key"
   minimum_tls_version: "TLSv1_3"

‫Windows:

  collectors:
- syslog:
    common:
      enabled: true
      data_type: WINDOWS_DNS
      data_hint:
      batch_n_seconds: 10
      batch_n_bytes: 1048576
    tcp_address: 0.0.0.0:10515
    tcp_buffer_size: 65536
    connection_timeout_sec: 60
    certificate: "c:/opt/chronicle/external/certs/client_generated_cert.pem"
    certificate_key: "c:/opt/chronicle/external/certs/client_generated_cert.key"
    minimum_tls_version: "TLSv1_3"

גרסת ה-TLS של בקשת הקלט צריכה להיות גדולה מגרסת ה-TLS המינימלית. גרסת ה-TLS המינימלית צריכה להיות אחת מהערכים הבאים: TLSv1_0, ‏ TLSv1_1, ‏ TLSv1_2, ‏ TLSv1_3.

הנתונים של הקבצים

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

מפעילים את Google SecOps forwarder מקונטיינר Docker כדי למפות את נפח הטעינה לקונטיינר:

Linux

     docker run 
--detach
--name cfps
--log-opt max-size=100m
--log-opt max-file=10
--net=host
-v /opt/chronicle/config:/opt/chronicle/external
-v /var/log/crowdstrike/falconhostclient:/opt/chronicle/edr
gcr.io/chronicle-container/cf_production_stable

Windows

  docker run `
    --name cfps `
    --log-opt max-size=100m `
    --log-opt max-file=10 `
    -p 10514:10514 `
    -v c:/opt/chronicle/config:c:/opt/chronicle/external `
    -v c:/var/log/crowdstrike/falconhostclient:c:/opt/chronicle/edr `
     gcr.io/chronicle-container/cf_production_stable_windows

אפשר להוסיף כמה יציאות באמצעות כמה אפשרויות או כמה טווחים. לדוגמה: -p 3001:3000 -p 2023:2022 או -p 7000-8000:7000-8000. מספרי היציאות שמופיעים בקוד לדוגמה הם רק דוגמאות. מחליפים את מספרי היציאות לפי הצורך.

על סמך הדוגמה, אפשר לשנות את הגדרות המעביר של Google SecOps (קובץ FORWARDER_NAME.conf) באופן הבא:

Linux

collectors:
 - file:
      common:
        enabled: true
        data_type: CS_EDR
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      file_path: /opt/chronicle/edr/sample.txt
      filter:

Windows

 collectors:
  - file:
       common:
         enabled: true
         data_type: CS_EDR
         data_hint:
         batch_n_seconds: 10
         batch_n_bytes: 1048576
       file_path: c:/opt/chronicle/edr/sample.txt
       filter:

הקובץ sample.txt צריך להיות בתיקייה /var/log/crowdstrike/falconhostclient.

הגדרות דיווח

‫skip_seek_to_end (bool): דגל זה מוגדר כ-false כברירת מחדל, וקובץ הקלט שולח רק שורות חדשות ביומן כקלט. הגדרה של הערך true גורמת לשליחה מחדש של כל השורות הקודמות ביומן במהלך הפעלה מחדש של המעביר. הפעולה הזו גורמת לשכפול של היומן. הגדרת הדגל הזה ל-true מועילה במצבים מסוימים (לדוגמה, במהלך הפסקות שירות), כי הפעלה מחדש של המעביר שולחת שוב את שורות היומן החסרות.

‫poll (bool): כלי איסוף הקבצים משתמש בספריית Tail כדי לבדוק אם יש שינויים במערכת הקבצים. אם מגדירים את הדגל הזה ל-true, ספריית Tail משתמשת בשיטת הסקר במקום בשיטת ההתראה שמוגדרת כברירת מחדל.

נתוני חבילות

הכלי להעברת נתונים של Google SecOps יכול לתעד חבילות במקום רשומות ביומן, ישירות מממשק רשת.

מערכות Linux

הכלי להעברת נתונים של Google SecOps יכול ללכוד חבילות באמצעות libcap ב-Linux. מידע נוסף על libcap זמין בדף העזרה של libcap – Linux.

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

‫Google SecOps מגדיר את מעביר הנתונים של Google SecOps באמצעות הביטוי של Berkeley Packet Filter (BPF) שמשמש ללכידת מנות (לדוגמה, יציאה 53 ולא localhost). מידע נוסף זמין במאמר בנושא Berkeley packet filters.

מערכות Windows

הכלי להעברת נתונים של Google SecOps יכול ללכוד מנות באמצעות Npcap במערכות Windows.

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

הדרישות להעברת נתוני PCAP:

  • מתקינים את Npcap במארח Microsoft Windows.

  • צריך להעניק למעביר של Google SecOps הרשאות root או הרשאות אדמין כדי לנטר את ממשק הרשת.

  • במהלך ההתקנה של Npcap, מפעילים את מצב התאימות של WinPcap.

כדי להגדיר מעביר PCAP, Google Cloud צריך את ה-GUID של הממשק שמשמש ללכידת חבילות. מריצים את הפקודה getmac.exe במכונה שבה מתכננים להתקין את Google SecOps forwarder (השרת או המכונה שמקשיבים ליציאת ה-SPAN) ושולחים את הפלט אל Google SecOps.

אפשר גם לשנות את קובץ התצורה. מחפשים את הקטע PCAP ומחליפים את ערך ה-GUID הקיים ב-GUID שהתקבל מהרצת הפקודה getmac.exe.

לדוגמה, הנה קטע מקורי של PCAP:

- pcap:
      common:
        enabled: true
        data_type: PCAP_DNS
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      interface: \Device\NPF_{1A7E7C8B-DD7B-4E13-9637-0437AB1A12FE}
      bpf: udp port 53

פלט מהרצת getmac.exe:

C:\>getmac.exe
  Physical Address    Transport Name
  ===========================================================================
  A4-73-9F-ED-E1-82   \Device\Tcpip_{2E0E9440-ABFF-4E5B-B43C-E188FCAD1234}

קטע PCAP מתוקן עם ה-GUID החדש:

- pcap:
      common:
        enabled: true
        data_type: PCAP_DNS
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
      bpf: udp port 53

הפלט getmac.exe של Transport Name מתחיל ב-\Device\Tcpip, ואילו החלק המקביל ב-pcap מתחיל ב-\Device\NPF.

נתונים מנושא Kafka

הכלי להעברת נתונים ב-Google SecOps תומך בהטמעת נתונים ישירות מנושאי Kafka. אפשר לפרוס עד שלושה מעבירי נתונים ולשלוף נתונים מאותו נושא ב-Kafka באמצעות קבוצות צרכנים לעיבוד יעיל ומקביל. מידע נוסף זמין במאמר בנושא Kafka. מידע נוסף על קבוצות של צרכני Kafka זמין במאמר בנושא צרכן Kafka.

ההגדרה הבאה של המעביר מראה איך להגדיר את המעביר כך שיקלוט נתונים מנושאי Kafka.

Linux

הקובץ FORWARDER_NAME.conf

   collectors:
   - kafka:
         common:
           batch_n_bytes: 1048576
           batch_n_seconds: 10
           data_hint: null
           data_type: NIX_SYSTEM
           enabled: true
         topic: example-topic
         group_id: chronicle-forwarder
         timeout: 60s
         brokers: ["broker-1:9092", "broker-2:9093"]
         tls:
           insecureSkipVerify: true
           certificate: "/path/to/cert.pem"
           certificate_key: "/path/to/cert.key"
   - syslog:
         common:
           batch_n_bytes: 1048576
           batch_n_seconds: 10
           data_hint: null
           data_type: WINEVTLOG
           enabled: true
         tcp_address: 0.0.0.0:30001
         connection_timeout_sec: 60
   

הקובץ FORWARDER_NAME_auth.conf

   collectors:
   - kafka:
         username: user
         password: password
   - syslog:
   

Windows

קובץ FORWARDER_NAME.conf

collectors:
- kafka:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: NIX_SYSTEM
        enabled: true
      topic: example-topic
      group_id: chronicle-forwarder
      timeout: 60s
      brokers: ["broker-1:9092", "broker-2:9093"]
      tls:
        insecureSkipVerify: true
        certificate: "c:/path/to/cert.pem"
        certificate_key: "c:/path/to/cert.key"
- syslog:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: WINEVTLOG
        enabled: true
      tcp_address: 0.0.0.0:30001
      connection_timeout_sec: 60

קובץ FORWARDER_NAME_auth.conf

collectors:
- kafka:
      username: user
      password: password
- syslog:

נתונים מ-WebProxy

הכלי להעברת נתונים ב-Google SecOps יכול ללכוד נתונים של WebProxy ישירות מממשק רשת.

Linux

הכלי להעברת נתונים של Google SecOps יכול ללכוד נתונים של WebProxy באמצעות libcap ב-Linux. מידע נוסף על libcap זמין בדף העזרה של libcap – Linux. כדי להפעיל את האפשרות ללכידת נתונים של WebProxy במערכת, צריך לפנות אל התמיכה של Google SecOps.

משנים את ההגדרה של המעביר ב-Google SecOps (קובץ FORWARDER_NAME.conf) באופן הבא:

   - webproxy:
         common:
           enabled : true
           data_type: <Your LogType>
           batch_n_seconds: 10
           batch_n_bytes: 1048576
         interface: any
         bpf: tcp and dst port 80

Windows

המעביר יכול ללכוד נתונים של WebProxy באמצעות Npcap ולשלוח אותם אל Google Cloud.

כדי להפעיל את האפשרות ללכידת נתונים של WebProxy במערכת, פנו לתמיכה של Google SecOps.

לפני שמריצים WebProxy forwarder, צריך לבצע את הפעולות הבאות:

  1. מתקינים את Npcap במארח Microsoft Windows. מפעילים את מצב התאימות של WinPcap במהלך ההתקנה.

  2. צריך להעניק למעביר הרשאות root או הרשאות אדמין כדי לנטר את ממשק הרשת.

  3. מקבלים את ה-GUID של הממשק שמשמש ללכידת מנות WebProxy.

    מריצים את הפקודה getmac.exe במכונה שבה רוצים להתקין את המעביר של Google SecOps ושולחים את הפלט אל Google SecOps. אפשר גם לשנות את קובץ התצורה. מאתרים את הקטע WebProxy ומחליפים את ה-GUID שמוצג ליד הממשק ב-GUID שמוצג אחרי שמריצים את הפקודה getmac.exe.

    משנים את קובץ ההגדרות של המעביר של Google SecOps‏ (FORWARDER_NAME.conf) באופן הבא:

      - webproxy:
        common:
            enabled : true
            data_type: <Your LogType>
            batch_n_seconds: 10
            batch_n_bytes: 1048576
          interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
          bpf: tcp and dst port 80
    

הגדרת מאפייני מפתח בקובץ התצורה

בטבלה הבאה מפורטים פרמטרים חשובים שמשמשים בקובץ ההגדרות של המעביר.

פרמטר תיאור
data_type סוג נתוני היומן שהכלי לאיסוף נתונים יכול לאסוף ולעבד.
מטא-נתונים מטא-נתונים, שמבטלים את המטא-נתונים הגלובליים.
max_file_buffer_bytes המספר המקסימלי של בייטים שיכולים להצטבר בדיסק או במאגר הקבצים. ערך ברירת המחדל הוא 1073741824, כלומר 1GB.
max_memory_buffer_bytes המספר המקסימלי של בייטים שיכולים להצטבר במאגר הזיכרון. ערך ברירת המחדל הוא 1073741824, כלומר 1GB.
write_to_disk_dir_path הנתיב שבו יש להשתמש עבור מאגר קבצים או דיסקים.
write_to_disk_buffer_enabled אם true, נעשה שימוש במאגר נתונים זמני בדיסק במקום במאגר נתונים זמני בזיכרון. ערך ברירת המחדל הוא false.
batch_n_bytes מספר הבייטים המקסימלי שיכולים להצטבר באיסוף הנתונים, שאחריו הנתונים נשלחים בקבוצות. ערך ברירת המחדל הוא 1048576, כלומר 1MB.
batch_n_seconds מספר השניות שאחריהן הנתונים שנאספים על ידי הכלי לאיסוף נתונים נארזים. ערך ברירת המחדל הוא 11 שניות.
data_hint פורמט הנתונים שהכלי לאיסוף נתונים יכול לקבל (בדרך כלל הכותרת של קובץ היומן שמתארת את הפורמט).

רשימה מפורטת של הפרמטרים שמשמשים בקובץ ההגדרות זמינה במאמרים שדות הגדרות של מעבירי נתונים ושדות הגדרות של אוספי נתונים.

דחיסת נתונים

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

כדי להפעיל דחיסה של היומן, מגדירים את השדה compression לערך true בקובץ ההגדרות של המעביר ב-Google SecOps, כמו בדוגמה הבאה:

הקובץ FORWARDER_NAME.conf

output:
  compression: true
    url: malachiteingestion-pa.googleapis.com:443
    identity:
      identity:
      collector_id: 10479925-878c-11e7-9421-10604b7cb5c1
      customer_id: ebdc4bb9-878b-11e7-8455-10604b7cb5c1
...

הקובץ FORWARDER_NAME_auth.conf

output:
  identity:
    secret_key: |
    {
     "type": "service_account",
...
    }

אגירת נתונים בדיסק

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

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

auto_buffer:
  enabled: true
  target_memory_utilization: 80

אם האפשרות 'אגירת נתונים אוטומטית בדיסק' מופעלת אבל target_memory_utilization לא מוגדר, המערכת משתמשת בערך ברירת המחדל 70.

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

הגדרה לדוגמה

ההגדרה הבאה כוללת תחביר להפעלת אחסון זמני בדיסק:

collectors:
- syslog:
    common:
      write_to_disk_buffer_enabled: true
      # /buffers/NIX_SYSTEM is part of the external mounted volume for the
forwarder
      write_to_disk_dir_path: /buffers/NIX_SYSTEM
      max_file_buffer_bytes: 1073741824
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

מסננים של ביטויים רגולריים

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

התנהגות ברירת המחדל במקרה של התאמה היא block. אפשר לציין מסננים באמצעות allow behaviour. אם מציינים מסנן allow, המעביר חוסם יומנים שלא תואמים לפחות למסנן allow אחד.

אפשר להגדיר מספר שרירותי של מסננים. מסנני Block קודמים למסנני allow.

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

הגדרה לדוגמה

בהגדרות של המעביר הבאות, היומנים WINEVTLOG שלא תואמים למסנן השורש (allow_filter) נחסמים. בהינתן הביטוי הרגולרי, המסנן מאפשר רק יומנים עם עדיפויות בין 0 ל-99. עם זאת, יומני NIX_SYSTEM שמכילים את המחרוזות foo או bar נחסמים, למרות allow_filter. הסיבה לכך היא שהמסננים משתמשים בלוגיקת OR. כל היומנים מעובדים עד שמסנן מופעל.

regex_filters:
  allow_filter:
    regexp: ^<[1-9][0-9]?$>.*$
    behavior_on_match: allow
collectors:
- syslog:
    common:
      regex_filters:
        block_filter_1:
          regexp: ^.*foo.*$
          behavior_on_match: block
        block_filter_2:
          regexp: ^.*bar.*$
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

תוויות שרירותיות

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

הגדרה לדוגמה

בהגדרת המעביר הבאה, צמדי המפתח/ערך foo=bar ו-meow=mix מצורפים ליומני WINEVTLOG, וצמדי המפתח/ערך foo=baz ו-meow=mix מצורפים ליומני NIX_SYSTEM.

metadata:
  labels:
    foo: bar
    meow: mix
collectors:
syslog:
    common:
      metadata:
        labels:
          foo: baz
          meow: mix
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

מרחבי שמות

אפשר להשתמש בתוויות של מרחב שמות כדי לזהות יומנים מפלחים שונים ברשת ולפתור בעיות שנובעות מכתובות IP חופפות. כל מרחב שמות שהוגדר עבור המעביר מופיע עם הנכסים המשויכים בממשק המשתמש של Google SecOps. אפשר גם לחפש מרחבי שמות באמצעות התכונה 'חיפוש' ב-Google SecOps.

מידע על הצגת מרחבי שמות בממשק המשתמש של Google SecOps זמין במאמר מרחבי שמות של נכסים.

הגדרה לדוגמה

בהגדרות של המעביר הבאות, היומנים WINEVTLOG מצורפים למרחב השמות FORWARDER והיומנים NIX_SYSTEM מצורפים למרחב השמות CORPORATE.

metadata:
  namespace: FORWARDER
collectors:
- syslog:
      common:
        metadata:
          namespace: CORPORATE
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: NIX_SYSTEM
        enabled: true
      tcp_address: 0.0.0.0:30000
      connection_timeout_sec: 60
- syslog:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: WINEVTLOG
        enabled: true
      tcp_address: 0.0.0.0:30001
      connection_timeout_sec: 60

אפשרויות של איזון עומסים וזמינות גבוהה

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

משתמשים בנתיבי כתובות ה-URL הבאים לבדיקות תקינות, מוכנות ופעילות. הערכים של <host:port> מוגדרים בתצורת המעביר.

  • ‫http://<host:port>/meta/available: בדיקות פעילות לתזמון או לניהול של קונטיינרים
  • ‫http://<host:port>/meta/ready: בדיקות מוכנות ובדיקות תקינות של מאזן העומסים

ההגדרה הבאה של מעביר היא דוגמה לאיזון עומסים ולזמינות גבוהה:

collectors:
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60
server:
  graceful_timeout: 15s
  drain_timeout: 10s
  http:
    port: 8080
    host: 0.0.0.0
    read_timeout: 3s
    read_header_timeout: 3s
    write_timeout: 3s
    idle_timeout: 3s
    routes:
    - meta:
        available_status: 204
        ready_status: 204
        unready_status: 503
נתיב ההגדרה תיאור
server : graceful_timeout משך הזמן שבו המעביר מחזיר בדיקת מוכנות או תקינות לא תקינה, ועדיין מקבל חיבורים חדשים. זה גם הזמן להמתנה בין קבלת אות להפסקת הפעולה לבין תחילת ההשבתה של השרת עצמו. כך מאזן העומסים מקבל זמן להסיר את המעביר מהמאגר.
server : drain_timeout משך הזמן שבו המעביר ממתין לחיבורים פעילים להיסגר בהצלחה בעצמם לפני שהם נסגרים על ידי השרת.
server : http : port מספר היציאה ששרת ה-HTTP מאזין לה לבדיקות תקינות ממאזן העומסים. הערך חייב להיות בין 1024 ל-65535.
server : http : host כתובת ה-IP או שם המארח שאפשר לתרגם לכתובות IP, שהשרת צריך להאזין להן. אם לא מציינים ערך, ברירת המחדל היא המערכת המקומית (0.0.0.0).
server : http : read_timeout משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. הזמן המקסימלי שמוקצב לקריאת הבקשה כולה, גם הכותרת וגם הגוף. אפשר להגדיר גם את read_timeout וגם את read_header_timeout.
server : http : read_header_timeout משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. הזמן המקסימלי שמוקצב לקריאת כותרות הבקשה. המועד האחרון לקריאה של החיבור מאופס אחרי קריאת הכותרת.
server : http : write_timeout משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. משך הזמן המקסימלי שמוקצב לשליחת תגובה. הערך מתאפס כשכותרת בקשה חדשה נקראת.
server : http : idle_timeout משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. הזמן המקסימלי להמתנה לבקשה הבאה כשחיבורים בלי פעילות מופעלים. אם idle_timeout הוא אפס, המערכת משתמשת בערך של read_timeout. אם שניהם אפס, נעשה שימוש ב-read_header_timeout.
routes : meta : ready_status קוד הסטטוס שמוחזר על ידי המעביר כשהוא מוכן לקבל את התנועה באחד מהמצבים הבאים:
  • הבדיקה מוכנות מתקבלת ממתזמן או מנהל של קונטיינרים.
  • הבדיקה של תקינות השרת מתקבלת ממאזן עומסים רגיל.
routes : meta : unready_status קוד הסטטוס שמוחזר על ידי המעביר כשהוא לא מוכן לקבל תנועה.
routes : meta : available_status קוד הסטטוס שמוחזר על ידי המעביר כשמתקבלת בדיקת פעילות והמעביר זמין. מתזמני קונטיינרים או כלי תזמור שולחים לעיתים קרובות בדיקות פעילות.

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