X-Force

במסמך הזה מוסבר איך לשלב את X-Force עם Google SecOps.

הגדרה של X-Force לעבודה עם Google Security Operations

  1. כדי לקבל מפתח API אישי, צריך להתחבר לאתר IBM X-Force Exchange באמצעות מזהה IBM פעיל.

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

  3. בדף ההגדרות, לוחצים על API Access (גישת API) ואז על הלחצן Generate (יצירה) בקטע API Key Generation (יצירת מפתח API).

הגדרת השילוב של X-Force ב-Google SecOps

הוראות מפורטות להגדרת שילוב ב-Google SecOps מופיעות במאמר הגדרת שילובים.

פעולות

קבלת מידע על גיבוב

תיאור

שליחת שאילתה ל-X-Force לקבלת מידע על הגיבוב.

פרמטרים

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

תרחישים לדוגמה

לא רלוונטי

ריצה

הפעולה הזו מופעלת בישות Filehash.

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

העשרה של ישויות
שם שדה ההעשרה לוגיקה – מתי להחיל
תוכנה זדונית הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תגים הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תובנות

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

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_risk נכון/לא נכון is_risk:False
תוצאת JSON
[
    {
        "EntityResult":
        {
            "malware":
            {
                "hash": "0x474B9CCF5AB9D72CA8A333889BBB34F0",
                "family": ["tsunami"],
                "origins":
                {
                    "downloadServers": {},
                    "subjects": {},
                    "CnCServers":
                    {
                        "count": 1,
                        "rows":
                        [{
                            "count": 483,
                            "origin": "CnC",
                            "domain": "pc-guard.net",
                            "filepath": "v.html",
                            "ip": "1.1.1.1",
                            "uri": "http://pc-guard.net/v.html",
                            "lastseen": "2014-10-20T23:19:00Z",
                            "md5": "474B9CCF5AB9D72CA8A333889BBB34F",
                            "type": "CnC",
                            "firstseen": "2014-10-20T23:19:00Z",
                            "schema": "http"
                        }]},
                    "emails": {},
                    "external":
                    {
                        "detectionCoverage": 46,
                        "family": ["heuristic", "trojan"]
                    }},
                "created": "2014-10-20T23:19:00Z",
                "familyMembers":
                {
                    "tsunami":
                    {
                        "count": 61
                    }},
                "md5": "0x474B9CCF5AB9D72CA8A333889BBB34F0",
                "type": "md5",
                "risk": "high"
            },
            "tags": []
        },
        "Entity": "474B9CCF5AB9D72CA8A333889BBB34F0"
    }
]

קבלת כתובת IP לפי קטגוריה

תיאור

קבלת כתובת IP לפי קטגוריה.

פרמטרים

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

תרחישים לדוגמה

לא רלוונטי

ריצה

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

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

העשרה של ישויות

לא רלוונטי

תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאת JSON
[
    {
        "ip": "string",
        "score": "integer",
        "created": "string"
    }
]

קבלת מידע על כתובת IP

תיאור

מריצים שאילתה ב-X-Force כדי לקבל מידע על כתובת IP.

פרמטרים

פרמטר סוג ערך ברירת המחדל תיאור
סף מחרוזת לא רלוונטי הסף חייב להיות מספר שלם (לדוגמה: 3).

תרחישים לדוגמה

לא רלוונטי

ריצה

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

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

העשרה של ישויות

ישויות מסומנות כחשודות אם הן חורגות מסף. אחרת: False.

שם שדה ההעשרה לוגיקה – מתי להחיל
רשתות משנה הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
reasonDescription הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תגים הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
ip הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
reason הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
score הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
categoryDescriptions הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
חתולים הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
geo הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
היסטוריה הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תובנות

אם ציון הסיכון גבוה מהסף, מוסיפים תובנה ומסמנים אותה כחשודה.

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_risky נכון/לא נכון is_risky:False
תוצאת JSON
[
    {
        "EntityResult":
        {
            "subnets":
            [{
                "subnet": "1.1.1.1/14",
                "reasonDescription": "One of the five RIRs announced a (new) location mapping of the IP.",
                "created": "2017-10-18T06:23:00.000Z",
                "ip": "1.1.1.1",
                "asns":
                {
                    "8359":
                    {
                        "Company": "MTS, RU",
                        "cidr": 14
                    }},
                "reason": "Regional Internet Registry",
                "score": 1,
                "categoryDescriptions": {},
                "cats": {},
                "geo":
                {
                    "country": "Russia",
                    "countrycode": "RU"
                }}, {
                    "subnet": "1.1.1.1/20",
                    "reasonDescription": "Based on statistical DNS analysis.",
                    "created": "2014-01-22T19:56:00.000Z",
                    "ip": "1.1.1.1",
                    "reason": "DNS heuristics",
                    "score": 1,
                    "categoryDescriptions":
                    {
                        "Dynamic IPs": "This category contains IP addresses of dialup hosts and DSL lines."
                    },
                    "cats":
                    {
                        "Dynamic IPs": 71
                    }}],
            "reasonDescription": "One of the five RIRs announced a (new) location mapping of the IP.",
            "tags": [],
            "ip": "1.1.1.1",
            "reason": "Regional Internet Registry",
            "score": 1,
            "categoryDescriptions":
            {
                "Dynamic IPs": "This category contains IP addresses of dialup hosts and DSL lines."
            },
            "cats":
            {
                "Dynamic IPs": 71
            },
            "geo":
            {
                "country": "Russia",
                "countrycode": "RU"
            },
            "history":
            [{
                "reasonDescription": "One of the five RIRs announced a (new) location mapping of the IP.",
                "created": "2012-03-22T07:26:00.000Z",
                "ip": "1.1.1.1/14",
                "reason": "Regional Internet Registry",
                "score": 1,
                "categoryDescriptions": {},
                "cats": {},
                "geo":
                {
                    "country": "Russia",
                    "countrycode": "RU"
                }}, {
                    "reasonDescription": "Based on statistical DNS analysis.",
                    "created": "2012-04-13T13:34:00.000Z",
                    "ip": "1.1.1.1/14",
                    "reason": "DNS heuristics",
                    "score": 1,
                    "categoryDescriptions":
                    {
                        "Dynamic IPs": "This category contains IP addresses of dialup hosts and DSL lines."
                    },
                    "cats":
                    {
                        "Dynamic IPs": 100
                    },
                    "geo":
                    {
                        "country": "Russia",
                        "countrycode": "RU"
                    }}, {
                        "reasonDescription": "Based on statistical DNS analysis.",
                        "created": "2014-01-22T19:56:00.000Z",
                        "ip": "1.1.1.1/20",
                        "reason": "DNS heuristics",
                        "score": 1,
                        "categoryDescriptions":
                        {
                            "Dynamic IPs\": "This category contains IP addresses of dialup hosts and DSL lines."
                        },
                        "cats":
                        {
                            "Dynamic IPs": 71
                        },
                        "geo":
                        {
                            "country": "Russia",
                            "countrycode": "RU"
                        }}]},
        "Entity": "1.1.1.1"
    }
]

קבלת תוכנות זדוניות ל-IP

תיאור

שליחת שאילתה ל-X-Force לגבי התוכנה הזדונית שמשויכת לכתובת IP.

פרמטרים

פרמטר סוג ערך ברירת המחדל תיאור
סף מחרוזת לא רלוונטי הסף חייב להיות מספר שלם (לדוגמה: 3).

תרחישים לדוגמה

לא רלוונטי

ריצה

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

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

העשרה של ישויות

ישויות מסומנות כחשודות אם הערך של malware_count גדול מ-0.

שם שדה ההעשרה לוגיקה – מתי להחיל
תוכנה זדונית הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תובנות

מוסיפים תובנה של אזהרה שהישות שויכה לתוכנה זדונית ומסמנים אותה כחשודה אם malware_count > 0.

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_malware נכון/לא נכון is_malware:False
תוצאת JSON
[
    {
        "EntityResult":
        {
            "malware":
            [{
                "count": 13,
                "origin": "CnC",
                "domain": "l33t-milf.info",
                "last": "2016-10-29T06:31:00Z",
                "family": ["kasidet"],
                "filepath": "dom/tasks.php",
                "ip": "0x00000000000000000000ffff08080808",
                "uri": "http://example.com/dom/tasks.php",
                "first": "2016-10-29T06:31:00Z",
                "host": "dom",
                "lastseen": "2016-10-29T06:31:00Z",
                "md5": "4C10F74CE20328B7CC4207245BC9D725",
                "type": "CnC",
                "firstseen": "2016-10-29T06:31:00Z",
                "schema": "http"
            }]},
        "Entity": "1.1.1.1"
    }
]

קבלת פרטי כתובת URL

תיאור

שליחת שאילתה ל-X-Force לקבלת מידע על כתובת URL.

פרמטרים

פרמטר סוג ערך ברירת המחדל תיאור
סף מחרוזת לא רלוונטי הסף חייב להיות מספר שלם(לדוגמה: 3).

תרחישים לדוגמה

לא רלוונטי

ריצה

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

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

העשרה של ישויות

התנאי מתקיים אם היישויות חורגות מהסף. אחרת: False.

שם שדה ההעשרה לוגיקה – מתי להחיל
שמשויכים לכל אחד הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
result הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תגים הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תובנות

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

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_risk נכון/לא נכון is_risk:False
תוצאת JSON
[
    {
        "EntityResult":
        {
            "associated":
            [{
                "url": "markossolomon.com",
                "cats": {},
                "score": null,
                "categoryDescriptions": {}
            }],
            "result":
            {
                "url": "markossolomon.com/f1q7qx.php",
                "cats":
                {
                    "Botnet Command and Control Server": true
                },
                "score": 10,
                "categoryDescriptions":
                {
                    "Botnet Command and Control Server": "This category contains Web sites or domains that host a botnet command and control server."
                }},
            "tags": []
        },
        "Entity": "HTTP://MARKOSSOLOMON.COM/F1Q7QX.PHP"
    }
]

פינג

תיאור

בדיקת הקישוריות ל-X-Force.

פרמטרים

לא רלוונטי

תרחישים לדוגמה

לא רלוונטי

ריצה

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

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

העשרה של ישויות

לא רלוונטי

תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_connected נכון/לא נכון is_connected:False
תוצאת JSON
N/A

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