איסוף יומני IOC של Proofpoint Emerging Threats Pro

גרסת מנתח הנתונים: 2.0

נתמך ב:

במאמר הזה מוסבר איך להטמיע יומני IOC של Proofpoint Emerging Threats Pro ב-Google Security Operations באמצעות Google Cloud Storage. Emerging Threats Intelligence מפרסמת רשימות מוניטין של כתובות IP ודומיינים בפורמט CSV מדי שעה, עם נתוני מודיעין איומי סייבר שכוללים קטגוריות, ציונים ומידע זמני. קוד הניתוח מעבד נתוני מודיעין איומי סייבר של ET_PRO בפורמט CSV. הוא מחלץ כתובות IP, דומיינים, קטגוריות, ציונים ומידע רלוונטי אחר, ממפה אותם לפורמט IOC סטנדרטי ולסכימת UDM של Chronicle לצורך ניתוח נוסף ושימוש ב-Google SecOps.

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

חשוב לוודא שמתקיימות דרישות הסף הבאות:

  • מופע של Google SecOps
  • פרויקט ב-GCP עם Cloud Storage API מופעל
  • הרשאות ליצירה ולניהול של קטגוריות GCS
  • הרשאות לניהול מדיניות IAM בקטגוריות GCS
  • הרשאות ליצירת שירותי Cloud Run, נושאי Pub/Sub ומשימות Cloud Scheduler
  • מינוי ל-Proofpoint ET Intelligence עם גישה לרשימות מוניטין
  • מפתח ET Intelligence API מכתובת https://etadmin.proofpoint.com/api-access

איסוף הדרישות המוקדמות של Emerging Threats Pro

  1. נכנסים ל-ET Intelligence Admin Portal בכתובת https://etadmin.proofpoint.com.
  2. עוברים אל גישה באמצעות API.
  3. מעתיקים ושומרים את מפתח ה-API.
  4. פונים לנציג Proofpoint כדי לקבל:
    • כתובת URL של רשימת מוניטין מפורטת של כתובות IP
    • כתובת URL של רשימת מוניטין מפורטת של דומיינים

‫ET Intelligence מספק קובצי CSV נפרדים לרשימות של מוניטין כתובות IP ודומיינים, שמתעדכנים מדי שעה. משתמשים בפורמט 'מפורט' שכולל את העמודות הבאות:

  • רשימת הדומיינים: שם הדומיין, קטגוריה, ניקוד, הפעם הראשונה שהדומיין נצפה, הפעם האחרונה שהדומיין נצפה, יציאות
  • רשימת IP‏: כתובת IP, קטגוריה, ניקוד, הפעם הראשונה שהכתובת נראתה, הפעם האחרונה שהכתובת נראתה, יציאות

בדרך כלל כתובות ה-URL המפורטות בנויות לפי התבנית הבאה:

  • רשימת כתובות IP: https://rules.emergingthreatspro.com/[your-code]/reputation/detailed-iprepdata.txt
  • רשימת הדומיינים: https://rules.emergingthreatspro.com/[your-code]/reputation/detailed-domainrepdata.txt

כותרת ההרשאה חייבת להכיל את הערך הגולמי של מפתח ה-API ללא הקידומת Bearer, בהתאם לדרישות של Emerging Threats API.

יצירת קטגוריה של Google Cloud Storage

  1. נכנסים אל מסוף Google Cloud.
  2. בוחרים פרויקט או יוצרים פרויקט חדש.
  3. בתפריט הניווט, עוברים אל Cloud Storage > Buckets.
  4. לוחצים על Create bucket.
  5. מזינים את פרטי ההגדרה הבאים:

    הגדרה ערך
    Name your bucket (שם הקטגוריה) מזינים שם ייחודי גלובלית (לדוגמה, et-pro-ioc-bucket)
    סוג מיקום בוחרים לפי הצרכים שלכם (אזור, בשני אזורים, במספר אזורים)
    Location בוחרים את המיקום (לדוגמה, us-central1).
    סוג אחסון (storage class) רגיל (מומלץ ליומנים שמתבצעת אליהם גישה לעיתים קרובות)
    בקרת גישה אחיד (מומלץ)
    כלים להגנה אופציונלי: הפעלת ניהול גרסאות של אובייקטים או מדיניות שמירת נתונים
  6. לוחצים על יצירה.

יצירת חשבון שירות לפונקציית Cloud Run

פונקציית Cloud Run צריכה חשבון שירות עם הרשאות כתיבה לקטגוריית GCS והרשאה להפעלה על ידי Pub/Sub.

יצירת חשבון שירות

  1. במסוף GCP, נכנסים אל IAM & Admin > Service Accounts.
  2. לוחצים על יצירת חשבון שירות.
  3. מזינים את פרטי ההגדרה הבאים:
    • שם חשבון השירות: מזינים et-pro-ioc-fetcher-sa.
    • תיאור חשבון השירות: מזינים Service account for Cloud Run function to collect Proofpoint ET Pro IOC logs.
  4. לוחצים על יצירה והמשך.
  5. בקטע Grant this service account access to project (מתן גישה של חשבון השירות הזה לפרויקט), מוסיפים את התפקידים הבאים:
    1. לוחצים על בחירת תפקיד.
    2. מחפשים את Storage Object Admin ובוחרים בו.
    3. לוחצים על + הוספת תפקיד נוסף.
    4. מחפשים את התפקיד Cloud Run Invoker (הפעלת שירותים ב-Cloud Run) ולוחצים עליו.
    5. לוחצים על + הוספת תפקיד נוסף.
    6. מחפשים את האפשרות Cloud Functions Invoker (הפעלת פונקציות של Cloud Functions) ולוחצים עליה.
  6. לוחצים על Continue.
  7. לוחצים על סיום.

התפקידים האלה נדרשים כדי:

  • אדמין של אובייקט אחסון: כתיבת יומנים לקטגוריית GCS וניהול קובצי מצב
  • Cloud Run Invoker: מתן הרשאה ל-Pub/Sub להפעיל את הפונקציה
  • Cloud Functions Invoker: מאפשר הפעלה של פונקציות

מתן הרשאות IAM בקטגוריית GCS

נותנים לחשבון השירות הרשאות כתיבה בקטגוריית GCS:

  1. נכנסים אל Cloud Storage > Buckets (קטגוריות).
  2. לוחצים על שם הקטגוריה.
  3. עוברים לכרטיסייה Permissions.
  4. לוחצים על הענקת גישה.
  5. מזינים את פרטי ההגדרה הבאים:
    • Add principals (הוספת ישויות מורשות): מזינים את כתובת האימייל בחשבון השירות (לדוגמה, et-pro-ioc-fetcher-sa@PROJECT_ID.iam.gserviceaccount.com).
    • הקצאת תפקידים: בוחרים באפשרות אדמין של אובייקטים באחסון.
  6. לוחצים על Save.

יצירת נושא Pub/Sub

יוצרים נושא Pub/Sub ש-Cloud Scheduler יפרסם בו ופונקציית Cloud Run תירשם אליו.

  1. במסוף GCP, עוברים אל Pub/Sub > Topics.
  2. לוחצים על יצירת נושא.
  3. מזינים את פרטי ההגדרה הבאים:
    • מזהה הנושא: מזינים et-pro-ioc-trigger.
    • משאירים את שאר ההגדרות כברירת מחדל.
  4. לוחצים על יצירה.

יצירת פונקציית Cloud Run לאיסוף יומנים

הפונקציה של Cloud Run מופעלת על ידי הודעות Pub/Sub מ-Cloud Scheduler כדי לאחזר יומנים מ-Proofpoint ET Intelligence API ולכתוב אותם ב-GCS.

  1. במסוף GCP, עוברים אל Cloud Run.
  2. לוחצים על יצירת שירות.
  3. בוחרים באפשרות Function (שימוש בעורך מוטבע ליצירת פונקציה).
  4. בקטע Configure (הגדרה), מזינים את פרטי ההגדרה הבאים:

    הגדרה ערך
    שם השירות et-pro-ioc-fetcher
    אזור בוחרים אזור שתואם ל-GCS Bucket (לדוגמה, us-central1)
    זמן ריצה בוחרים באפשרות Python 3.12 ואילך
  5. בקטע Trigger (optional) (טריגר (אופציונלי)):

    1. לוחצים על + הוספת טריגר.
    2. בוחרים באפשרות Cloud Pub/Sub.
    3. בקטע Select a Cloud Pub/Sub topic, בוחרים באפשרות et-pro-ioc-trigger.
    4. לוחצים על Save.
  6. בקטע אימות:

    1. לוחצים על דרישת אימות.
    2. בודקים את ניהול זהויות והרשאות גישה (IAM).
  7. גוללים למטה ומרחיבים את Containers, Networking, Security.

  8. עוברים לכרטיסייה אבטחה:

    • חשבון שירות: לוחצים על et-pro-ioc-fetcher-sa.
  9. עוברים לכרטיסייה מאגרי תגים:

    1. לוחצים על Variables & Secrets (משתנים וסודות).
    2. לוחצים על + הוספת משתנה לכל משתנה סביבתי:
    שם המשתנה ערך לדוגמה תיאור
    GCS_BUCKET et-pro-ioc-bucket שם קטגוריית GCS
    GCS_PREFIX et-pro-ioc קידומת לקובצי יומן
    STATE_KEY et-pro-ioc/state.json נתיב קובץ המצב
    ET_API_KEY your-et-api-key מפתח ET Intelligence API
    ET_IP_LIST_URL https://rules.emergingthreatspro.com/[your-code]/reputation/detailed-iprepdata.txt כתובת URL של רשימת מוניטין מפורטת של כתובות IP
    ET_DOMAIN_LIST_URL https://rules.emergingthreatspro.com/[your-code]/reputation/detailed-domainrepdata.txt כתובת URL של רשימת מוניטין מפורטת של דומיינים
    TIMEOUT 120 פסק-זמן לבקשת HTTP בשניות
  10. גוללים למטה בכרטיסייה Variables & Secrets (משתנים וסודות) אל Requests (בקשות):

    • זמן קצוב לתפוגת בקשה: מזינים 600 שניות (10 דקות).
  11. עוברים לכרטיסייה הגדרות במאגרי תגים:

    • בקטע מקורות מידע:
      • זיכרון: בוחרים באפשרות ‎512 MiB או יותר.
      • מעבד: בוחרים באפשרות 1.
    • לוחצים על סיום.
  12. גוללים אל סביבת הפעלה:

    • בוחרים באפשרות ברירת מחדל (מומלץ).
  13. בקטע Revision scaling:

    • מספר מינימלי של מופעים: מזינים 0.
    • מספר מקסימלי של מופעים: מזינים 100 (או משנים בהתאם לעומס הצפוי).
  14. לוחצים על יצירה.

  15. ממתינים ליצירת השירות (דקה או שתיים).

  16. אחרי שיוצרים את השירות, עורך הקוד המוטבע נפתח באופן אוטומטי.

הוספת קוד פונקציה

  1. מזינים main בFunction entry point (נקודת הכניסה לפונקציה).
  2. בעורך הקוד המוטבע, יוצרים שני קבצים:

    • הקובץ הראשון: main.py:
    import functions_framework
    from google.cloud import storage
    import json
    import os
    import urllib3
    from datetime import datetime, timezone
    import time
    
    # Initialize HTTP client with timeouts
    http = urllib3.PoolManager(
        timeout=urllib3.Timeout(connect=5.0, read=30.0),
        retries=False,
    )
    
    # Initialize Storage client
    storage_client = storage.Client()
    
    @functions_framework.cloud_event
    def main(cloud_event):
        """
        Cloud Run function triggered by Pub/Sub to fetch ET Pro IOC reputation lists and write to GCS.
    
        Args:
            cloud_event: CloudEvent object containing Pub/Sub message
        """
    
        # Get environment variables
        bucket_name = os.environ.get('GCS_BUCKET')
        prefix = os.environ.get('GCS_PREFIX', 'et-pro-ioc').strip('/')
        state_key = os.environ.get('STATE_KEY', f'{prefix}/state.json')
        et_api_key = os.environ.get('ET_API_KEY')
        et_ip_list_url = os.environ.get('ET_IP_LIST_URL')
        et_domain_list_url = os.environ.get('ET_DOMAIN_LIST_URL')
        timeout = int(os.environ.get('TIMEOUT', '120'))
    
        if not all([bucket_name, et_api_key, et_ip_list_url, et_domain_list_url]):
            print('Error: Missing required environment variables')
            return
    
        try:
            # Get GCS bucket
            bucket = storage_client.bucket(bucket_name)
    
            # Generate timestamp for file naming
            now = datetime.now(timezone.utc)
            timestamp = now.strftime('%Y/%m/%d/%H%M%S')
    
            results = []
            errors = []
    
            # Fetch IP reputation list
            try:
                print('Fetching IP reputation list...')
                ip_data = fetch_with_retry(et_ip_list_url, et_api_key, timeout)
                ip_key = f'{prefix}/ip/{timestamp}.csv'
                save_to_gcs(bucket, ip_key, ip_data)
                results.append({'type': 'ip', 'key': ip_key, 'size': len(ip_data)})
                print(f'Successfully fetched IP list: {len(ip_data)} bytes')
            except Exception as e:
                error_msg = f'Failed to fetch IP list: {str(e)}'
                print(error_msg)
                errors.append(error_msg)
    
            # Fetch Domain reputation list
            try:
                print('Fetching Domain reputation list...')
                domain_data = fetch_with_retry(et_domain_list_url, et_api_key, timeout)
                domain_key = f'{prefix}/domain/{timestamp}.csv'
                save_to_gcs(bucket, domain_key, domain_data)
                results.append({'type': 'domain', 'key': domain_key, 'size': len(domain_data)})
                print(f'Successfully fetched Domain list: {len(domain_data)} bytes')
            except Exception as e:
                error_msg = f'Failed to fetch Domain list: {str(e)}'
                print(error_msg)
                errors.append(error_msg)
    
            # Save state
            state = {
                'last_fetch': now.isoformat(),
                'results': results,
                'errors': errors
            }
            save_state(bucket, state_key, state)
    
            if errors:
                print(f'Completed with {len(errors)} error(s)')
            else:
                print('Successfully completed all fetches')
    
        except Exception as e:
            print(f'Error processing logs: {str(e)}')
            raise
    
    def fetch_with_retry(url, api_key, timeout, max_retries=3):
        """Fetch URL with retry logic for rate limits."""
        if not url.lower().startswith('https://'):
            raise ValueError('Only HTTPS URLs are allowed')
    
        headers = {'Authorization': api_key}
    
        for attempt in range(max_retries):
            try:
                response = http.request('GET', url, headers=headers, timeout=timeout)
    
                if response.status == 200:
                    return response.data
                elif response.status == 429:
                    # Rate limited, wait and retry
                    wait_time = min(30 * (2 ** attempt), 300)
                    print(f'Rate limited, waiting {wait_time}s...')
                    time.sleep(wait_time)
                else:
                    raise Exception(f'HTTP {response.status}: {response.reason}')
            except Exception as e:
                if attempt == max_retries - 1:
                    raise
                time.sleep(5 * (attempt + 1))
    
        raise Exception(f'Failed to fetch {url} after {max_retries} attempts')
    
    def save_to_gcs(bucket, key, content):
        """Save content to GCS with appropriate content type."""
        blob = bucket.blob(key)
        blob.upload_from_string(content, content_type='text/csv')
        print(f'Saved {len(content)} bytes to gs://{bucket.name}/{key}')
    
    def save_state(bucket, key, state):
        """Save state to GCS."""
        try:
            blob = bucket.blob(key)
            blob.upload_from_string(
                json.dumps(state, indent=2),
                content_type='application/json'
            )
        except Exception as e:
            print(f'Warning: Could not save state: {str(e)}')
    
    • הקובץ השני: requirements.txt:
    functions-framework==3.*
    google-cloud-storage==2.*
    urllib3>=2.0.0
    
  3. לוחצים על Deploy (פריסה) כדי לשמור ולפרוס את הפונקציה.

  4. ממתינים עד שהפריסה תושלם (2-3 דקות).

יצירת משימה ב-Cloud Scheduler

‫Cloud Scheduler מפרסם הודעות בנושא Pub/Sub במרווחי זמן קבועים, וכך מפעיל את הפונקציה של Cloud Run.

  1. במסוף GCP, עוברים אל Cloud Scheduler.
  2. לוחצים על יצירת משימה.
  3. מזינים את פרטי ההגדרה הבאים:

    הגדרה ערך
    שם et-pro-ioc-fetcher-hourly
    אזור בחירה באותו אזור כמו פונקציית Cloud Run
    תדירות 0 * * * * (כל שעה, בדיוק בשעה)
    אזור זמן בחירת אזור זמן (מומלץ להשתמש ב-UTC)
    סוג הטירגוט Pub/Sub
    נושא בחירת et-pro-ioc-trigger
    גוף ההודעה {} (אובייקט JSON ריק)
  4. לוחצים על יצירה.

אפשרויות לתדירות התזמון

  • בחירת התדירות בהתאם לנפח היומן ולדרישות זמן האחזור:

    תדירות ביטוי Cron תרחיש לדוגמה
    כל שעה 0 * * * * רגיל (מומלץ ל-ET Pro IOC)
    כל שעתיים 0 */2 * * * תדר נמוך יותר
    כל 6 שעות 0 */6 * * * עדכונים מינימליים

בדיקת השילוב

  1. במסוף Cloud Scheduler, מאתרים את העבודה.
  2. לוחצים על הפעלה בכוח כדי להפעיל את המשימה באופן ידני.
  3. ממתינים כמה שניות.
  4. עוברים אל Cloud Run > Services (שירותים).
  5. לוחצים על שם הפונקציה (et-pro-ioc-fetcher).
  6. לוחצים על הכרטיסייה יומנים.
  7. מוודאים שהפונקציה בוצעה בהצלחה. מחפשים את הדברים הבאים:

    Fetching IP reputation list...
    Successfully fetched IP list: X bytes
    Fetching Domain reputation list...
    Successfully fetched Domain list: X bytes
    Successfully completed all fetches
    
  8. נכנסים אל Cloud Storage > Buckets (קטגוריות).

  9. לוחצים על שם הקטגוריה.

  10. עוברים לתיקיות עם הקידומות (et-pro-ioc/ip/ ו-et-pro-ioc/domain/).

  11. מוודאים שנוצרו קובצי .csv חדשים עם חותמת הזמן הנוכחית.

אם מופיעות שגיאות ביומנים:

  • HTTP 401: צריך לבדוק את ET_API_KEY במשתני הסביבה
  • HTTP 403: מוודאים שלמפתח ה-API יש את ההרשאות הנדרשות
  • HTTP 429: הגבלת קצב – הפונקציה תנסה שוב באופן אוטומטי עם השהיה לפני ניסיון חוזר (backoff)
  • חסרים משתני סביבה: צריך לוודא שכל המשתנים הנדרשים מוגדרים

אחזור חשבון השירות של Google SecOps

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

קבלת כתובת האימייל בחשבון השירות

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על הגדרת פיד יחיד.
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, ET Pro IOC - IP Reputation).
  5. בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
  6. בוחרים באפשרות Emerging Threats Pro בתור סוג היומן.
  7. לוחצים על Get Service Account (קבלת חשבון שירות). מוצגת כתובת אימייל ייחודית של חשבון השירות, לדוגמה:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. מעתיקים את כתובת האימייל הזו לשימוש בשלב הבא.

הענקת הרשאות IAM לחשבון השירות של Google SecOps

לחשבון השירות של Google SecOps צריך להיות התפקיד צפייה באובייקט אחסון בקטגוריית GCS.

  1. נכנסים אל Cloud Storage > Buckets (קטגוריות).
  2. לוחצים על שם הקטגוריה.
  3. עוברים לכרטיסייה Permissions.
  4. לוחצים על הענקת גישה.
  5. מזינים את פרטי ההגדרה הבאים:
    • Add principals (הוספת ישויות מורשות): מדביקים את כתובת האימייל בחשבון של חשבון השירות של Google SecOps.
    • הקצאת תפקידים: בוחרים באפשרות צפייה באובייקט אחסון.
  6. לוחצים על Save.

הגדרת פידים ב-Google SecOps להטמעה של יומני IOC של Proofpoint Emerging Threats Pro

צריך ליצור שני פידים נפרדים – אחד למוניטין של כתובת IP ואחד למוניטין של דומיין.

יצירת פיד של מוניטין כתובות IP

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על הגדרת פיד יחיד.
  4. בשדה Feed name, מזינים ET Pro IOC - IP Reputation.
  5. בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
  6. בוחרים באפשרות Emerging Threats Pro בתור סוג היומן.
  7. לוחצים על הבא.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:

    • כתובת ה-URL של קטגוריית האחסון: מזינים את ה-URI של קטגוריית GCS עם נתיב הקידומת:

      gs://et-pro-ioc-bucket/et-pro-ioc/ip/
      
      • מחליפים את et-pro-ioc-bucket בשם הקטגוריה שלכם ב-GCS.
    • אפשרות למחיקת המקור: בוחרים את אפשרות המחיקה לפי ההעדפה שלכם:

      • אף פעם: לא נמחקים קבצים אחרי ההעברה (מומלץ לבדיקות).
      • מחיקת קבצים שהועברו: הקבצים נמחקים אחרי שההעברה מסתיימת בהצלחה.
      • מחיקת קבצים שהועברו וספריות ריקות: מחיקת קבצים וספריות ריקות אחרי שההעברה מסתיימת בהצלחה.

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

    • מרחב השמות של הנכס: מרחב השמות של הנכס.

    • תוויות להעברה: התווית שמוחלת על האירועים מהפיד הזה.

  9. לוחצים על הבא.

  10. בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.

יצירת פיד של מוניטין הדומיין

חוזרים על תהליך יצירת הפיד:

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על הגדרת פיד יחיד.
  4. בשדה Feed name, מזינים ET Pro IOC - Domain Reputation.
  5. בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
  6. בוחרים באפשרות Emerging Threats Pro בתור סוג היומן.
  7. לוחצים על הבא.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:

    • כתובת ה-URL של קטגוריית האחסון: מזינים את ה-URI של קטגוריית GCS עם נתיב הקידומת:
    gs://et-pro-ioc-bucket/et-pro-ioc/domain/
    

    מחליפים את et-pro-ioc-bucket בשם הקטגוריה שלכם ב-GCS.

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

  10. בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM לוגיקה
קטגוריה השדה הזה נמצא בשימוש בלוגיקה של מנתח התוכן, אבל הוא לא ממופה ישירות ל-UDM. הוא קובע את הערך של event.ioc.categorization באמצעות טבלת מיפוי.
collection_time.nanos event.idm.entity.metadata.collected_timestamp.nanos ממופה ישירות מהיומן הגולמי.
collection_time.seconds event.idm.entity.metadata.collected_timestamp.seconds ממופה ישירות מהיומן הגולמי.
נתונים השדה הזה מנותח לכמה שדות UDM על סמך התוכן שלו.
first_seen event.idm.entity.metadata.interval.start_time הניתוח מתבצע כתאריך ומיפוי ל-UDM.
first_seen event.ioc.active_timerange.start הניתוח מתבצע כתאריך ומיפוי ל-UDM.
ip_or_domain event.idm.entity.entity.hostname ממופה ל-UDM אם תבנית ה-grok מחלצת מארח מהשדה.
ip_or_domain event.idm.entity.entity.ip משויך ל-UDM אם תבנית ה-grok לא מחלצת מארח מהשדה.
ip_or_domain event.ioc.domain_and_ports.domain ממופה ל-UDM אם תבנית ה-grok מחלצת מארח מהשדה.
ip_or_domain event.ioc.ip_and_ports.ip_address משויך ל-UDM אם תבנית ה-grok לא מחלצת מארח מהשדה.
last_seen event.idm.entity.metadata.interval.end_time הניתוח מתבצע כתאריך ומיפוי ל-UDM.
last_seen event.ioc.active_timerange.end הניתוח מתבצע כתאריך ומתבצע מיפוי ל-UDM.
ports event.idm.entity.entity.labels.value אם יש כמה יציאות, המערכת מנתחת אותן, מאחדת אותן באמצעות פסיק כתו מפריד וממפה אותן ל-UDM.
ports event.idm.entity.entity.port הנתונים מנותחים וממופים ל-UDM אם יש רק יציאה אחת.
ports event.ioc.domain_and_ports.ports הניתוח והמיפוי מתבצעים ל-UDM אם תבנית ה-grok מחלצת מארח מהשדה.
ports event.ioc.ip_and_ports.ports מנותח וממופה ל-UDM אם תבנית ה-grok לא מחלצת מארח מהשדה.
score event.ioc.confidence_score ממופה ישירות מהיומן הגולמי.
event.idm.entity.entity.labels.key אם יש כמה יציאות, צריך להגדיר את הערך כ-ports.
event.idm.entity.metadata.entity_type מגדירים את הערך 'DOMAIN_NAME' אם תבנית ה-grok מחלצת מארח מהשדה ip_or_domain, אחרת מגדירים את הערך 'IP_ADDRESS'.
event.idm.entity.metadata.threat.category הערך שמוגדר הוא SOFTWARE_MALICIOUS.
event.idm.entity.metadata.threat.category_details הערך נגזר מהשדה 'קטגוריה' באמצעות טבלת מיפוי.
event.idm.entity.metadata.threat.threat_name מגדירים את האפשרות 'רשימת נציגים של ET Intelligence'.
event.idm.entity.metadata.vendor_name הערך שמוגדר הוא ET_PRO_IOC.
event.ioc.feed_name מגדירים את האפשרות 'רשימת נציגים של ET Intelligence'.
event.ioc.raw_severity הוגדר כ'זדוני'.
timestamp.nanos הועתק מ-collection_time.nanos.
timestamp.seconds הועתק מ-collection_time.seconds.

שנה רישום

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

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