שילוב של Anomali עם Google SecOps

במאמר הזה מוסבר איך לשלב את Anomali עם Google Security Operations ‏ (Google SecOps).

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

כדי לקבל מפתח API אישי, פועלים לפי השלבים הבאים:

  1. נכנסים לחשבון Anomali ThreatStream.

  2. לוחצים על My API Keys (מפתחות ה-API שלי).

  3. מעתיקים את הערך של מפתח ה-API ומדביקים אותו בשדה הפרמטר Api Key בתיבת הדו-שיח Configure Instance ב-Google SecOps.

רשת

תפקיד יציאת ברירת המחדל כיוון פרוטוקול
API ערכים מרובים להעברת נתונים apikey

פרמטרים של שילוב

כדי להגדיר את השילוב, משתמשים בפרמטרים הבאים:

שם הפרמטר סוג ערך ברירת המחדל חובה תיאור
שם המכונה String לא רלוונטי לא שם המכונה שרוצים להגדיר לה את השילוב.
תיאור String לא רלוונטי לא תיאור המכונה.
הרמה הבסיסית (root) של ה-API String https://api.threatstream.com/api כן הכתובת של המכונה ב-Anomali.
שם משתמש String user@domain.com כן כתובת האימייל של המשתמש שצריך להשתמש בה כדי להתחבר ל-Anomali.
סיסמה סיסמה לא רלוונטי כן הסיסמה של המשתמש הרלוונטי.
מפתח API String לא רלוונטי כן מפתח API שנוצר במסוף AlienVault.
הפעלה מרחוק תיבת סימון התיבה לא מסומנת לא מסמנים את השדה כדי להפעיל את השילוב שהוגדר מרחוק. אחרי שמסמנים את התיבה, מופיעה האפשרות לבחור את המשתמש המרוחק (הנציג).

איך מגדירים שילובים ב-Google SecOps

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

פעולות

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

קבלת מידע על איומים

העשרת ישויות באמצעות מידע מ-Anomali ThreatStream. ישויות נתמכות: כתובת IP, כתובת URL, גיבוב, כתובות אימייל (ישויות משתמש שתואמות לביטוי הרגולרי של כתובת אימייל).

פרמטרים

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

בינוני

ערכים אפשריים:

  • גבוהה מאוד
  • גבוהה
  • בינוני
  • נמוכה
לא צריך לציין מה צריך להיות סף החומרה של הישות כדי לסמן אותה כחשודה. אם נמצאו כמה רשומות לאותה ישות, הפעולה תתבצע לפי רמת החומרה הגבוהה ביותר מבין כל הרשומות הזמינות.
סף רמת הסמך מספר שלם 50 לא צריך לציין מה צריך להיות סף הסמך של הישות כדי לסמן אותה כחשודה. הערה: המספר המקסימלי הוא 100. אם נמצאו כמה רשומות של הישות, הפעולה תתבצע לפי הממוצע. רשומות פעילות מקבלות עדיפות. ברירת המחדל: 50.
התעלמות מסטטוס של תוצאה חיובית כוזבת תיבת סימון התיבה לא מסומנת לא אם המדיניות מופעלת, הפעולה תתעלם מהסטטוס "חיובי כוזב" ותסמן את הישות כחשודה על סמך סף החומרה וסף הסבירות. אם האפשרות מושבתת, הפעולה אף פעם לא תתייג ישויות חיוביות מוטעות כחשודות, גם אם הן עומדות בתנאים של סף החומרה וסף המהימנות.

הפעלה ב-

הפעולה הזו פועלת על הישויות הבאות:

  • כתובת IP
  • כתובת URL
  • גיבוב (hash)
  • כתובות אימייל (ישויות של משתמשים שתואמות לביטוי הרגולרי של כתובת אימייל)

תוצאות הפעולה

העשרת ישויות
שם לוגיקה – מתי להחיל
id מוחזר אם הוא קיים בתוצאת ה-JSON
סטטוס מוחזר אם הוא קיים בתוצאת ה-JSON
itype מוחזר אם הוא קיים בתוצאת ה-JSON
expiration_time מוחזר אם הוא קיים בתוצאת ה-JSON
ip מוחזר אם הוא קיים בתוצאת ה-JSON
feed_id מוחזר אם הוא קיים בתוצאת ה-JSON
מובהקות מוחזר אם הוא קיים בתוצאת ה-JSON
uuid מוחזר אם הוא קיים בתוצאת ה-JSON
retina_confidence מוחזר אם הוא קיים בתוצאת ה-JSON
trusted_circle_ids מוחזר אם הוא קיים בתוצאת ה-JSON
מקור מוחזר אם הוא קיים בתוצאת ה-JSON
קו רוחב מוחזר אם הוא קיים בתוצאת ה-JSON
סוג מוחזר אם הוא קיים בתוצאת ה-JSON
description מוחזר אם הוא קיים בתוצאת ה-JSON
תגים מוחזר אם הוא קיים בתוצאת ה-JSON
threat_score מוחזר אם הוא קיים בתוצאת ה-JSON
source_confidence מוחזר אם הוא קיים בתוצאת ה-JSON
modification_time מוחזר אם הוא קיים בתוצאת ה-JSON
org_name מוחזר אם הוא קיים בתוצאת ה-JSON
asn מוחזר אם הוא קיים בתוצאת ה-JSON
creation_time מוחזר אם הוא קיים בתוצאת ה-JSON
tlp מוחזר אם הוא קיים בתוצאת ה-JSON
מדינה מוחזר אם הוא קיים בתוצאת ה-JSON
קו אורך מוחזר אם הוא קיים בתוצאת ה-JSON
severity מוחזר אם הוא קיים בתוצאת ה-JSON
סוג משנה מוחזר אם הוא קיים בתוצאת ה-JSON
תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות לערכים דוגמה
הפעולה בוצעה נכון או לא נכון success:False
תוצאת JSON
    {
        "Entity": "ENTITY_ID",
        "EntityResult": {
            "Info": [{
                "source_created": null,
                "status": "inactive",
                "itype": "mal_domain",
                "expiration_ts": "2020-11-28T13:29:57.000Z",
                "ip": "192.0.2.1",
                "is_editable": false,
                "feed_id": 1111111,
                "update_id": 1111111111,
                "longitude": -0.1223454,
                "is_public": true,
                "threat_type": "malware",
                "workgroups": [],
                "rdns": null,
                "confidence": 11111,
                "uuid": "UUID",
                "retina_confidence": 1111111,
                "trusted_circle_ids": null,
                "id": 111111111111111110000,
                "source": "COVID19 Cyber Threat Coalition Blocklist - Domains",
                "owner_organization_id": 111,
                "import_session_id": null,
                "source_modified": null,
                "type": "domain",
                "sort": [1607193157800, "56224953198"],
                "description": null,
                "tags": [{
                    "id": "wu6",
                    "name": "Blocklist"
                }, {
                    "id": "pvj",
                    "name": "Coronavirus"
                }, {
                    "id": "01i",
                    "name": "COVID-19"
                }, {
                    "id": "o70",
                    "name": "Malicious"
                }, {
                    "id": "fk0",
                    "name": "Source:COVID19-Cyber-Threat-Coalition"
                }],
                "threatscore": 11111,
                "source_reported_confidence": 11111,
                "modified_ts": "2020-12-05T18:32:37.800Z",
                "org": "Namecheap",
                "asn": "11111111",
                "created_ts": "2020-10-29T13:33:24.904Z",
                "tlp": null,
                "is_anonymous": false,
                "latitude": 51.4964,
                "country": "GB",
                "can_add_public_tags": false,
                "value": "VALUE",
                "subtype": null,
                "meta": {
                    "registration_updated": "2020-10-24T22:16:59+00:00",
                    "detail2": "bifocals_deactivated_on_2020-12-05_18:30:00.085789",
                    "severity": "high",
                    "registration_created": "2020-10-24T22:16:42+00:00"
                },
                "resource_uri": "/api/v2/intelligence/"
            }],
            "Campaigns": [{
                "association_info": [{
                    "comment": null,
                    "created": "2020-10-29T13:33:29.200283",
                    "from_id": "ID"
                }],
                "can_add_public_tags": true,
                "circles": [],
                "created_ts": "2020-03-15T04:24:55.428496",
                "end_date": "2020-03-23T16:05:00.761000",
                "feed_id": 0,
                "id": "ID",
                "is_anonymous": true,
                "is_cloneable": "yes",
                "is_public": true,
                "modified_ts": "2021-02-02T02:38:19.892072",
                "name": "Coronavirus (COVID-19)",
                "objective": null,
                "organization": {
                    "id": 0,
                    "name": "Analyst",
                    "title": "Analyst"
                },
                "publication_status": "published",
                "published_ts": "2020-04-06T21:40:24.452312",
                "resource_uri": "/api/v1/campaign/",
                "source_created": null,
                "source_modified": null,
                "start_date": "2020-01-30T13:10:00.070000",
                "status": {
                    "display_name": "Ongoing",
                    "id": 1,
                    "resource_uri": "/api/v1/campaignstatus/1/"
                },
                "tags": ["Malware", "Fraud", "Phishing", "COVID-19", "Coronavirus", "Scams"],
                "tags_v2": [{
                    "id": "wqe",
                    "name": "Coronavirus"
                }, {
                    "id": "hlg",
                    "name": "COVID-19"
                }, {
                    "id": "74i",
                    "name": "Phishing"
                }, {
                    "id": "0y2",
                    "name": "Malware"
                }, {
                    "id": "u63",
                    "name": "Scams"
                }, {
                    "id": "1er",
                    "name": "Fraud"
                }],
                "tlp": "white",
                "uuid": "UUID",
                "workgroups": []
            }],
            "Tip": [{
                "all_circles_visible": true,
                "association_info": [{
                    "comment": null,
                    "created": "2020-10-29T13:33:29.212118",
                    "from_id": "ID"
                }],
                "body_content_type": "richtext",
                "campaign": null,
                "can_add_public_tags": true,
                "circles": [],
                "created_ts": "2020-03-19T04:23:35.714929",
                "feed_id": 0,
                "id": "ID",
                "is_anonymous": true,
                "is_cloneable": "yes",
                "is_editable": true,
                "is_email": false,
                "is_public": true,
                "modified_ts": "2021-02-02T02:38:20.061912",
                "name": "Coronavirus (COVID-19) Cyber Threats",
                "original_source": null,
                "original_source_id": null,
                "owner_org": {
                    "id": 0,
                    "name": "Analyst",
                    "title": "Analyst"
                },
                "parent": null,
                "published_ts": "2020-05-25T18:39:36.890647",
                "resource_uri": "/api/v1/ID/",
                "source_created": null,
                "source_modified": null,
                "starred_by_me": false,
                "starred_total_count": 5,
                "status": "published",
                "tags": ["Scams", "HCL-", "Malware"],
                "tags_v2": [{
                    "id": "ID",
                    "name": "Coronavirus"
                }, {
                    "id": "ID",
                    "name": "COVID-19"
                }, {
                    "id": "ID",
                    "name": "Phishing"
                }],
                "threat_actor": null,
                "tlp": "white",
                "ttp": null,
                "uuid": "UUID",
                "votes": {
                    "me": null,
                    "total": 0
                },
                "watched_by_me": false,
                "watched_total_count": 11111,
                "workgroups": []
            }],
            "Actors": [],
            "Incidents": [],
            "TTP": []
        }
    }
קיר נרתיק הטעינה
סוג התוצאות תיאור סוג
הודעת פלט*

אם יש נתונים זמינים לישות אחת (is_success=true): "Successfully returned information about the following entities from Anomali ThreatStream: {entity.identifier}"

אם אין נתונים זמינים לישות אחת (is_success=true): "הפעולה לא הצליחה להחזיר מידע על הישויות הבאות מ-Anomali ThreatStream:‏ {entity.identifier}"

אם לא זמין לכל הישויות (is_success=false): "לא הועשרו ישויות.

שגיאה קריטית (נכשל):שגיאה בביצוע הפעולה "קבלת מידע על איומים". הסיבה: {error traceback}"

כללי

פינג

בודקים את הקישוריות ל-Anomali ThreatStream.

פרמטרים

לא רלוונטי

הפעלה ב-

הפעולה הזו פועלת בכל הישויות.

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות לערכים דוגמה
הפעולה בוצעה נכון או לא נכון success:False

אחזור שיוכים שקשורים לישות מ-Anomali ThreatStream.

פרמטרים

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

הפעלה ב-

הפעולה הזו פועלת על הישויות הבאות:

  • גיבוב (hash)
  • כתובת IP
  • כתובת URL
  • אימייל

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות לערכים דוגמה
הפעולה בוצעה נכון או לא נכון success:False
תוצאת JSON
{
    "campaign": [
        {
            "name": "Example 1",
            "id": 1
        },
        {
            "name": "Example 2",
            "id": 2
        }
    ],
    "actor": [
        {
            "name": "Actor 1",
            "id": 1
        },
        {
            "name": "Actor 2",
            "id": 2
        }
    ],
    "attackpattern": [
        {
            "name": "Pattern 1",
            "id": 1
        },
        {
            "name": "Pattern 2",
            "id": 2
        }
    ],
    "courseofaction": [
        {
            "name": "Course of Action 1",
            "id": 1
        },
        {
            "name": "Course Of Action 2",
            "id": 2
        }
    ],
    "identity": [
        {
            "name": "Identity 1",
            "id": 1
        },
        {
            "name": "Identity 2",
            "id": 2
        }
    ],
    "incident": [
        {
            "name": "Incident 1",
            "id": 1
        },
        {
            "name": "Incident 2",
            "id": 2
        }
    ],
    "infrastructure": [
        {
            "name": "Infrustructure 1",
            "id": 1
        },
        {
            "name": "Infrustructure 2",
            "id": 2
        }
    ],
    "intrusionset": [
        {
            "name": "Intrusion set 1",
            "id": 1
        },
        {
            "name": "Intrusion set 2",
            "id": 2
        }
    ],
    "malware": [
        {
            "name": "Malware 1",
            "id": 1
        },
        {
            "name": "Malware 2",
            "id": 2
        }
    ],
    "signature": [
        {
            "name": "Signature 1",
            "id": 1
        },
        {
            "name": "Signature 2",
            "id": 2
        }
    ],
    "tool": [
        {
            "name": "Tool 1",
            "id": 1
        },
        {
            "name": "Tool 2",
            "id": 2
        }
    ],
    "ttp": [
        {
            "name": "TTP 1",
            "id": 1
        },
        {
            "name": "TTP 2",
            "id": 2
        }
    ],
    "vulnerability": [
        {
            "name": "Vulnerability 1",
            "id": 1
        },
        {
            "name": "Vulnerability 2",
            "id": 2
        }
    ],
}
קיר נרתיק הטעינה
סוג התוצאות תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של הפלייבוק:

אם הפעולה הצליחה ונמצא לפחות שיוך אחד בין ישויות (is_success=true): "Successfully retrieved related associations from Anomali"

אם לא נמצאו שיוכים (is_success=false): "לא נמצאו שיוכים קשורים".

הודעה אסינכרונית: "ממתין לאחזור של כל פרטי השיוך"

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם מדווחת שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת או שגיאה אחרת: "שגיאה בביצוע הפעולה "קבלת שיוך קשור". הסיבה: {0}''.format(error.Stacktrace)

כללי
שולחן קיר עם ויטרינה

שם הטבלה: "שיוכים קשורים"

עמודות בטבלה:

  • מזהה
  • שם
  • סוג
  • סטטוס

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