שילוב של Anomali עם Google SecOps
במאמר הזה מוסבר איך לשלב את Anomali עם Google Security Operations (Google SecOps).
לפני שמתחילים
כדי לקבל מפתח API אישי, פועלים לפי השלבים הבאים:
נכנסים לחשבון Anomali ThreatStream.
לוחצים על My API Keys (מפתחות ה-API שלי).
מעתיקים את הערך של מפתח ה-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.