Tenable Security Center

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

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

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

דרישות מוקדמות לאימות

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

  • שם משתמש וסיסמה: משתמשים בפרטי הכניסה הרגילים.

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

    במאמר הרשאה באמצעות מפתח API מוסבר איך ליצור מפתחות API.

אימות SSL

כברירת מחדל, השילוב מאמת את אישור ה-SSL של שרת Tenable Security Center. אם בסביבה שלכם נעשה שימוש באישור בחתימה עצמית או באישור פנימי, צריך להשבית את ההגדרה Verify SSL.

נתוני קלט של שילוב

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

פרמטרים
Server Address חובה

הכתובת של שרת Tenable Security Center לשימוש בשילוב.

Username אופציונלי

שם המשתמש לכניסה לשרת Tenable Security Center.

חובה לספק את שני המאפיינים Username ו-Password.

Password אופציונלי

הסיסמה לכניסה לשרת Tenable Security Center.

חובה לספק את שני המאפיינים Username ו-Password.

Access Key אופציונלי

מפתח הגישה של חשבון Tenable Security Center.

חובה לספק את שני המאפיינים Access Key וSecret Key.

Secret Key אופציונלי

המפתח הסודי של חשבון Tenable Security Center.

חובה לספק את שני המאפיינים Access Key ו-Secret Key.

Verify SSL אופציונלי

אם בוחרים באפשרות הזו, המערכת בודקת שאישור ה-SSL של החיבור לשרת Tenable תקף.

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

פעולות

הוספת כתובת IP לנכס מסוג רשימת כתובות IP

מוסיפים כתובת IP לנכס מסוג רשימת כתובות IP ב-Tenable Security Center.

פרמטרים

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

הפעלה ב-

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

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

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
{
    "type": "regular",
    "response": {
        "id": "41",
        "name": "api_test_5",
        "type": "static",
        "description": "",
        "tags": "qweqwe",
        "context": "",
        "status": "0",
        "createdTime": "1606129689",
        "modifiedTime": "1606129689",
        "ioSyncStatus": "Not Synced",
        "ioFirstSyncTime": "-1",
        "ioLastSyncSuccess": "-1",
        "ioLastSyncFailure": "-1",
        "ioSyncErrorDetails": null,
        "typeFields": {
            "definedIPs": "203.0.113.1,203.0.113.10"
        },
        "repositories": [
            {
                "ipCount": "-1",
                "repository": {
                    "id": "1",
                    "name": "Example-Repository",
                    "description": ""
                }
            }
        ],
        "ipCount": -1,
        "groups": [],
        "assetDataFields": [],
        "canUse": "true",
        "canManage": "true",
        "creator": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "owner": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "ownerGroup": {
            "id": "0",
            "name": "Full Access",
            "description": "Full Access group"
        },
        "targetGroup": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "template": {
            "id": -1,
            "name": "",
            "description": ""
        }
    },
    "error_code": 0,
    "error_msg": "",
    "warnings": [],
    "timestamp": 1606129688
}
Case wall
סוג התוצאה ערך/תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של פלייבוק:
If static code 200(is_success = true): print "Successfully added the following IPs to the IP List Asset {0} in Tenable Security Center:\n{1}".format(name, entity.identifier)

אם אין ישויות IP: לא נוספו כתובות IP לנכס של רשימת כתובות ה-IP‏ {0}.format(name)

הפעולה אמורה להיכשל ולהפסיק את ההרצה של פלייבוק:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, או שגיאה אחרת: print "Error executing action "Add IP to IP List Asset". Reason:{0}''.format(error.Stacktrace)


If asset not found: print "Error executing action "Add IP to IP List Asset". הסיבה: הנכס {0} לא נמצא ב-Tenable Security Center. ''.format(error.Stacktrace)

אם לא קוד סטטי 200 (is_success = false): print "Error executing action "Add IP to IP List Asset". הסיבה: {0}''.format(error_msg)

כללי

יצירת נכס של רשימת כתובות IP

יוצרים נכס של רשימת כתובות IP ב-Tenable Security Center. נדרשת לפחות ישות IP אחת כדי שההפעלה תתבצע בהצלחה.

פרמטרים

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

הפעלה ב-

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

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

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
{
    "type": "regular",
    "response": {
        "id": "41",
        "name": "api_test_5",
        "type": "static",
        "description": "",
        "tags": "qweqwe",
        "context": "",
        "status": "0",
        "createdTime": "1606129689",
        "modifiedTime": "1606129689",
        "ioSyncStatus": "Not Synced",
        "ioFirstSyncTime": "-1",
        "ioLastSyncSuccess": "-1",
        "ioLastSyncFailure": "-1",
        "ioSyncErrorDetails": null,
        "typeFields": {
            "definedIPs": "203.0.113.1,203.0.113.10"
        },
        "repositories": [
            {
                "ipCount": "-1",
                "repository": {
                    "id": "1",
                    "name": "Example-Repository",
                    "description": ""
                }
            }
        ],
        "ipCount": -1,
        "groups": [],
        "assetDataFields": [],
        "canUse": "true",
        "canManage": "true",
        "creator": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "owner": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "ownerGroup": {
            "id": "0",
            "name": "Full Access",
            "description": "Full Access group"
        },
        "targetGroup": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "template": {
            "id": -1,
            "name": "",
            "description": ""
        }
    },
    "error_code": 0,
    "error_msg": "",
    "warnings": [],
    "timestamp": 1606129688
}
Case wall
סוג התוצאה ערך/תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההפעלה של פלייבוק:
If static code 200(is_success = true): print "Successfully created new IP List Asset {0} with the following IPs in Tenable Security Center:\n{1}".format(name, entity.identifier)

אם אין ישויות IP: המערכת תדפיס את ההודעה 'צריך לפחות ישות IP אחת כדי ליצור נכס של רשימת כתובות IP'.


הפעולה תיכשל והרצת ה-Playbook תיפסק:
אם יש שגיאה קריטית, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: print "Error executing action "Create IP List Asset". Reason: {0}''.format(error.Stacktrace)

If not static code 200 (is_success = false): print "Error executing action "Create IP List Asset". הסיבה: {0}''.format(error_msg)

כללי

הוספת פרטים לכתובת IP

קבלת מידע על כתובות IP והעשרת הנתונים שלהן.

פרמטרים

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

הפעלה ב-

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

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

העשרה של ישויות
שם שדה ההעשרה לוגיקה – מתי להחיל
macAddress הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
severityLow הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
קישורים הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
ip הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
הסריקה האחרונה הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
severityCritical הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
total הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
severityAll הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
mcafeeGUID הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
policyName הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
uuid הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
lastAuthRun הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
severityInfo הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
osCPE הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
ייחודיות הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
dnsName הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
מאגר הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
ip הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
description הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
name הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
lastUnauthRun הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
biosGUID הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
tpmID הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
score הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
hasPassive הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
pluginSet הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
hasCompliance הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
severityHigh הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
netbiosName הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
severityMedium הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
os הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
[
{
"EntityResult":
{
"macAddress": "",
"severityLow": "0",
"links": [],
"ip": "203.0.113.1",
"lastScan": "1549425224",
"severityCritical": "0",
"total": "2",
"severityAll": "0,0,0,0,2",
"mcafeeGUID": "",
"policyName": "1e2e4247-0de7-56d5-8026-34ab1f3150ef-1130313/Basic Discovery Scan",
"uuid": "",
"lastAuthRun": "",
"severityInfo": "2",
"osCPE": "",
"uniqueness": "repositoryID,ip,dnsName",
 "dnsName": "example.com",
"repository":
          {
"id": "1",
"description": "",
"name": "repository"
          },
"lastUnauthRun": "1549363419",
"biosGUID": "",
"tpmID": "",
"score": "0",
"hasPassive": "No",
"pluginSet": "201902020242",
"hasCompliance": "No",
"severityHigh": "0",
"netbiosName": "",
"severityMedium": "0",
"os": ""
},
"Entity": "203.0.113.1"
}
]

אפשר לקבל נכסים שקשורים לכתובת IP.

פרמטרים

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

הפעלה ב-

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

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

העשרה של ישויות
שם שדה ההעשרה לוגיקה – מתי להחיל
id הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
name הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
[
{
"EntityResult":
[
{
"id": "0",
"description": "All defining ranges of the Group in whose context this Asset is being evaluated.",
"name": "All Defined Ranges"
}, {
"id": "2",
"description": "This asset uses the Scan Summary plugin to detect if a host has been scanned by Nessus. The Scan Summary plugin contains the list of tests conducted during the most recent scan.",
"name": "Systems that have been Scanned"
}, {
"id": "13",
"description": "Leverage Nessus plugin 10180 (Ping the remote host) and Nessus plugin 12503 (Host Fully Qualified Domain Name (FQDN) Resolution) to find hosts that don't have a resolvable FQDN in DNS.",
"name": "Scanned Hosts Not in DNS"
}
],
"Entity": "203.0.113.1"
}
]

לצפייה בדוח

אחזור תוכן הדוח לפי מזהה או שם.

פרמטרים

פרמטר סוג ערך ברירת המחדל תיאור
מזהה הדוח String לא רלוונטי מספר מזהה הדוח.אפשר למצוא אותו בכתובת ה-URL של הדוח.

ריצה

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

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

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
{
"pubSites":
[
"https://example.com",
"https://example.net"
]
}

קבלת תוצאות הסריקה

מחכים שהסריקה תסתיים ומקבלים את התוצאות שלה.

פרמטרים

פרמטר סוג ערך ברירת המחדל תיאור
מזהה תוצאת הסריקה

String

לא רלוונטי מזהה תוצאות הסריקה.

הפעלה ב-

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

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

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

{
"severity_summary":
[
{
"count": "0",
"severity":
{
"id": "4",
"name": "Critical",
"description": "Critical Severity"
}
}, {
"count": "0",
"severity":
{
"id": "3",
"name": "High",
"description": "High Severity"
}
}, {
"count": "3",
"severity":
{"id": "2",
"name": "Medium",
"description": "Medium Severity"
}}
],
"results":
[
{
"name": "DNS Server Recursive Query Cache Poisoning Weakness",
"family": "DNS",
"hostTotal": "1",
"pluginID": "10539",
"total": "1",
"severity": "Medium"
}, {
"name": "DNS Server Spoofed Request Amplification DDoS",
"family": "DNS",
"hostTotal": "1",
"pluginID": "35450",
"total": "1",
"severity": "Medium"
}, {
"name": "SSL Medium Strength Cipher Suites Supported",
"family": "General",
"hostTotal": "1",
"pluginID": "42873",
"total": "1",
"severity": "Medium"
}
]
}

קבלת נקודות חולשה לכתובת IP

קבלת סיכום של נקודות חולשה ורמת חומרה של כתובת IP.

פרמטרים

לא רלוונטי

הפעלה ב-

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

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

העשרה של ישויות
שם שדה ההעשרה לוגיקה – מתי להחיל
macAddress הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
פרוטוקול הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
uuid הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
משפחה הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
pluginInfo הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
ip הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
pluginID הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
severity הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
מאגר הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
ייחודיות הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
dnsName הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
יציאה הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
netbiosName הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
name

הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
[
{
"EntityResult":
[
{
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "Web Servers",
"pluginInfo": "10107 (443/6) HTTP Server Type and Version",
"ip": "203.0.113.1",
"pluginID": "10107",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "HTTP Server Type and Version"
}, {
"macAddress": "",
"protocol": "UDP",
"uuid": "",
"family": "DNS",
"pluginInfo": "10539 (53/17) DNS Server Recursive Query Cache Poisoning Weakness",
"ip": "203.0.113.1",
"pluginID": "10539",
"severity": "Medium",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "exaample.com",
"port": "53",
"netbiosName": "",
"name": "DNS Server Recursive Query Cache Poisoning Weakness"
}, {
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "General",
"pluginInfo": "10863 (443/6) SSL Certificate Information",
"ip": "203.0.113.1",
"pluginID": "10863",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "SSL Certificate Information"
}
],
"Entity": "203.0.113.1"
}
]

פינג

בודקים את הקישוריות.

הפעלה ב-

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

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

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
null לא רלוונטי לא רלוונטי

סריקת כתובות IP

להתחיל סריקה של כתובות IP.

פרמטרים

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

הפעלה ב-

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

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

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
scan_result_id לא רלוונטי לא רלוונטי

הפעלת סריקת נכסים

מריצים סריקת נכסים ב-Tenable Security Center.

איפה אפשר למצוא את מזהה המדיניות ואת מזהה המאגר

למזהה מדיניות:

  1. נווט אל https://INSTANCE_IP_ADDRESS/#policies.
  2. בוחרים את המדיניות שרוצים להשתמש בה בפעולה.
  3. בכתובת ה-URL יופיע מזהה של המדיניות הזו.

למזהה המאגר:

  1. נווט אל https://INSTANCE_IP_ADDRESS/#repositories.
  2. בוחרים את המאגר שבו רוצים להשתמש בפעולה.
  3. בכתובת ה-URL יופיע מזהה של המאגר.

פרמטרים

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

הפעלה ב-

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

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

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
{
    "type": "regular",
    "response": {
        "id": "11",
        "name": "Scan Name",
        "description": "",
        "ipList": "",
        "type": "policy",
        "dhcpTracking": "false",
        "classifyMitigatedAge": "0",
        "emailOnLaunch": "false",
        "emailOnFinish": "false",
        "timeoutAction": "import",
        "scanningVirtualHosts": "false",
        "rolloverType": "template",
        "status": "0",
        "createdTime": "1606132784",
        "modifiedTime": "1606132784",
        "maxScanTime": "3600",
        "reports": [],
        "assets": [
            {
                "id": "38",
                "name": "api_test_1",
                "description": ""
            }
        ],
        "credentials": [],
        "numDependents": "0",
        "schedule": {
            "id": -1,
            "objectType": -1,
            "type": "now",
            "start": "",
            "repeatRule": "",
            "enabled": "true",
            "nextRun": -1,
            "dependent": {
                "id": -1,
                "name": "",
                "description": ""
            }
        },
        "policy": {
            "id": "1000002",
            "context": "",
            "name": "Host Discovery",
            "description": "",
            "tags": "",
            "owner": {
                "id": "1",
                "username": "security_manager",
                "firstname": "Manager",
                "lastname": "Security"
            },
            "ownerGroup": {
                "id": "0",
                "name": "Full Access",
                "description": "Full Access group"
            }
        },
        "policyPrefs": [
            {
                "name": "MODE|discovery",
                "value": "host_enumeration"
            },
            {
                "name": "description",
                "value": ""
            },
            {
                "name": "display_unreachable_hosts",
                "value": "no"
            },
            {
                "name": "log_live_hosts",
                "value": "yes"
            },
            {
                "name": "name",
                "value": "Host Discovery"
            },
            {
                "name": "reverse_lookup",
                "value": "no"
            }
        ],
        "repository": {
            "id": "1",
            "name": "Example-Repository",
            "description": ""
        },
        "canUse": "true",
        "canManage": "true",
        "plugin": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "zone": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "ownerGroup": {
            "id": "0",
            "name": "Full Access",
            "description": "Full Access group"
        },
        "creator": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "owner": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "scanResultID": "34"
    },
    "error_code": 0,
    "error_msg": "",
    "warnings": [],
    "timestamp": 1606132783
}
Case wall
סוג התוצאה ערך/תיאור סוג
הודעת פלט*

הפעולה לא אמורה להיכשל או להפסיק את ההרצה של פלייבוק:
If static code 200(is_success = true): print "Successfully started asset scan {0} in Tenable Security Center.".format(name)

הפעולה תיכשל ותפסיק את ההרצה של ה-Playbook:
אם יש שגיאה חמורה, כמו פרטי כניסה שגויים, אין חיבור לשרת, או שגיאה אחרת: הפונקציה print תדפיס 'Error executing action "Run Asset Scan". Reason: {0}''.format(error.Stacktrace)

אם הנכס לא נמצא: מוצגת ההודעה "Error executing action "Run Asset Scan". Reason: Asset{0} was not found in Tenable Security Center. ''.format(name)

אם לא מדובר בקוד סטטי 200 (is_success = false): print "Error executing action "Run Asset Scan". Reason:{0}".format(error_msg)

כללי

מחברים

Tenable Security Center Connector

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

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

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

פרמטר סוג ערך ברירת המחדל תיאור
DeviceProductField String device_product שם השדה שמשמש לקביעת מוצר המכשיר.
EventClassId String name שם השדה שמשמש לקביעת שם האירוע (סוג משנה).
PythonProcessTimeout String 60 מגבלת הזמן הקצוב לתפוגה (בשניות) לתהליך Python שמריץ את הסקריפט הנוכחי.
כתובת השרת String null לא רלוונטי
שם משתמש String null לא רלוונטי
סיסמה סיסמה null לא רלוונטי
מפתח גישה String null אופציונלי

מפתח הגישה של חשבון Tenable Security Center.

חובה לספק את שני המאפיינים Access Key וSecret Key.

מפתח סודי סיסמה null אופציונלי

המפתח הסודי של חשבון Tenable Security Center.

חובה לספק את שני המאפיינים Access Key ו-Secret Key.

שימוש ב-SSL תיבת סימון התיבה לא מסומנת לא רלוונטי
מספר הימים המקסימלי אחורה מספר שלם 1 מספר הימים אחורה שממנו רוצים לאחזר נתונים.
מגבלה לכל מחזור מספר שלם 10 מספר ההתראות שנקלטו במחבר בכל מחזור ביצוע.
כתובת שרת ה-Proxy String null הכתובת של שרת ה-Proxy שבו רוצים להשתמש.
שם משתמש של שרת proxy String null שם המשתמש ב-proxy לאימות.
סיסמת שרת Proxy סיסמה null סיסמת ה-proxy לאימות.

כללים של Connectors

המחבר תומך בשרתי proxy.

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