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

במסמך הזה מוסבר איך לשלב את Armis עם Google Security Operations.

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

  1. לבצע פעולות העשרה.
  2. הטמעת ההתראות.
  3. מבצעים פעולת מיון (עדכון סטטוס ההתראה).

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

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

שם הפרמטר סוג ערך ברירת המחדל חובה תיאור
הרמה הבסיסית (root) של ה-API String כן שורש ה-API של Armis
API Secret סיסמה לא רלוונטי כן ‫API Secret של Armis
אימות SSL תיבת סימון סימן אישור כן אם ההגדרה מופעלת, המערכת מאמתת שאישור ה-SSL לחיבור לשרת Armis תקף.

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

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

פעולות

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

פינג

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

פרמטרים

לא רלוונטי

הפעלה ב-

הפעולה לא משתמשת בישויות, ואין לה פרמטרים של קלט חובה.

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

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

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

אם החיבור הצליח: "החיבור לשרת Armis בוצע בהצלחה באמצעות פרמטרי החיבור שסופקו"

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

אם החיבור נכשל: "החיבור לשרת של Armis נכשל. השגיאה היא {0}".format(exception.stacktrace)

כללי

העשרת ישויות

העשרת ישויות באמצעות מידע מ-Armis. ישויות נתמכות: כתובת IP, כתובת MAC.

פרמטרים

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

הפעלה ב-

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

  • כתובת IP
  • כתובת MAC

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

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

תוצאת JSON

{
    "accessSwitch": null,
    "category": "Computers",
    "dataSources": [
        {
            "firstSeen": "2021-03-07T04:04:22.562873+00:00",
            "lastSeen": "2021-03-07T04:04:22.562873+00:00",
            "name": "Example",
            "types": [
                "Asset & System Management",
                "Virtualization"
            ]
        },
        {
            "firstSeen": "2021-03-07T04:04:22.562873+00:00",
            "lastSeen": "2021-03-07T04:04:22.562873+00:00",
            "name": "Armis Smart Scanner",
            "types": [
                "Vulnerability Management"
            ]
        }
    ],
    "firstSeen": "2021-03-07T04:04:22.562873+00:00",
    "id": 1616,
    "ipAddress": "192.0.2.120",
    "ipv6": null,
    "lastSeen": "2021-03-21T08:05:40.244960+00:00",
    "macAddress": "01:23:45:ab:cd:ef",
    "manufacturer": "VMware",
    "model": "VMware Virtual Platform",
    "name": "Example",
    "operatingSystem": "CentOS",
    "operatingSystemVersion": "6.6",
    "purdueLevel": 4.0,
    "riskLevel": 5,
    "sensor": {
        "name": "North conference room",
        "type": "Physical Sensor"
    },
    "site": {
        "location": "Palo Alto",
        "name": "Palo Alto Offices"
    },
    "tags": [
        "Discover",
        "Example"
    ],
    "type": "Virtual Machines",
    "user": "",
    "visibility": "Full"
}

העשרת ישויות

שם שדה ההעשרה לוגיקה – מתי להחיל
קטגוריה כשהוא זמין ב-JSON
id כשהוא זמין ב-JSON
ipAddress כשהוא זמין ב-JSON
macAddress כשהוא זמין ב-JSON
name כשהוא זמין ב-JSON
os כשהוא זמין ב-JSON
purdue_level כשהוא זמין ב-JSON
risk_level כשהוא זמין ב-JSON
תגים כשהוא זמין ב-JSON
סוג כשהוא זמין ב-JSON
משתמש כשהוא זמין ב-JSON
visibility כשהוא זמין ב-JSON
אתר כשהוא זמין ב-JSON
קישור כשהוא זמין ב-JSON
קיר נרתיק הטעינה
סוג התוצאות תיאור סוג
הודעת פלט*

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

if enriched some(is_success = true): "Successfully enriched the following entities using Armis:\n".format(entity.identifier)

אם חלק מהנתונים לא הועשרו (is_success = true): "Action wasn't able to enriche the following entities using Armis:\n".format(entity.identifier)

אם לא כל הישויות הועשרו (is_success = false): "No entities were enriched".

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

כללי
טבלת ישויות ישות

רשימת החיבורים של ההתראות

רשימת החיבורים שקשורים להתראה ב-Armis.

פרמטרים

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

בינוני

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

  • נמוכה
  • בינונית
  • גבוהה
לא צריך לציין את רמת החומרה הנמוכה ביותר של החיבורים שבהם צריך להשתמש כשמאחזרים אותם.
מספר החיבורים המקסימלי להחזרה מספר שלם 50 לא מציינים כמה חיבורים להחזיר.

הפעלה ב-

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

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

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

תוצאת JSON

{
    "band": null,
    "channel": null,
    "dhcpAuthenticationDuration": null,
    "duration": 12339,
    "endTimestamp": "2021-03-18T20:19:31.562873+00:00",
    "id": 33355,
    "inboundTraffic": 12412512,
    "outboundTraffic": 19626489,
    "protocol": "Bluetooth",
    "radiusAuthenticationDuration": null,
    "risk": "Medium",
    "rssi": null,
    "sensor": {
        "name": "EXAMPLE",
        "type": "Switch"
    },
    "site": {
        "location": "Location",
        "name": "Location HQ"
    },
    "snr": null,
    "sourceId": 2097,
    "startTimestamp": "2021-03-18T16:53:52.562873+00:00",
    "targetId": 217,
    "title": "Connection between Example and user's iPhone",
    "totalAssociationDuration": null,
    "traffic": 32039001,
    "wlanAssociationDuration": null
}
קיר נרתיק הטעינה
סוג התוצאות תיאור סוג
הודעת פלט*

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

אם הקוד הוא 200 ויש נתונים זמינים (is_success = true): "הוחזרו בהצלחה חיבורים שקשורים להתראה {alertId} על סמך הקריטריונים שצוינו ב-Armis".

אם הקוד הוא 200 ואין נתונים זמינים (is_success=false): "לא נמצאו חיבורים שקשורים להתראה {alertId} על סמך הקריטריונים שצוינו ב-Armis".

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

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

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

שם: Available Communications

עמודות:

  • כותרת
  • פרוטוקול
  • חוּמרה
  • שעת ההתחלה
  • שעת הסיום
כללי

עדכון סטטוס ההתראה

מעדכנים את סטטוס ההתראה ב-Armis.

פרמטרים

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

לא טופל

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

  • לא טופל
  • מבוטל
  • הסתיים
לא מציינים איזה סטטוס צריך להגדיר להתראה.

הפעלה ב-

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

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

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

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

‫אם 200 (is_success = true): "הסטטוס של ההתראה "{alert id}" עודכן בהצלחה ל-"{status}" ב-Armis".

אם 400 (is_success=true): "Alert "{alert id}" already has status "{status}" in Armis. '

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

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

אם השגיאה היא 404: "Error executing action "Update Alert Status".‎ הסיבה: ההתראה "{alert id}" לא נמצאה ב-Armis.'

כללי

מחבר

איך מגדירים מחברים ב-Google SecOps?

‫Armis – מחבר התראות

שליפת התראות עם פעילויות קשורות מ-Armis.

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

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

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

שם השדה שבו מאוחסן שם המוצר.

ערך ברירת המחדל הוא alert_type.

שם המוצר משפיע בעיקר על המיפוי. כדי לייעל ולשפר את תהליך המיפוי של המחבר, ערך ברירת המחדל alert_type מוחלף בערך חלופי שמוזכר בקוד. כל קלט לא חוקי בפרמטר הזה יקבל ערך חלופי כברירת מחדל.

שם השדה של האירוע String סוג כן

שם השדה שקובע את שם האירוע (סוג משנה).

שם השדה של הסביבה String "" לא

שם השדה שבו מאוחסן שם הסביבה.

אם שדה הסביבה חסר, המחבר משתמש בערך ברירת המחדל.

Environment Regex Pattern String .* לא

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

משתמשים בערך ברירת המחדל .* כדי לאחזר את הערך הגולמי הנדרש של Environment Field Name.

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

זמן קצוב לתפוגה של סקריפט (בשניות) מספר שלם 180 כן

מגבלת הזמן הקצוב לתפוגה, בשניות, של תהליך Python שמריץ את הסקריפט הנוכחי.

הרמה הבסיסית (root) של ה-API String https:// כן שורש ה-API של המכונה של Armis.
API Secret סיסמה לא רלוונטי כן ‫API Secret של חשבון Armis.
רמת החומרה הנמוכה ביותר לאחזור נמוכה נמוכה לא רמת החומרה הנמוכה ביותר שתשמש לאחזור התראות. ערכים אפשריים: Low,‏ Medium,‏ High.
מספר השעות המקסימלי אחורה מספר שלם 1 לא

מספר השעות לפני האיטרציה הראשונה של המחבר לאחזור ההתראות.

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

מספר ההתראות המקסימלי לאחזור מספר שלם 10 לא מספר ההתראות לעיבוד בכל איטרציה של מחבר. הערך המקסימלי הוא 1000.
Use whitelist as a blacklist תיבת סימון סימן אישור כן

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

אימות SSL תיבת סימון התיבה לא מסומנת כן אם האפשרות הזו נבחרת, השילוב מאמת את אישור ה-SSL כשמתחברים לשרת של Armis.
כתובת שרת ה-Proxy String לא כתובת שרת ה-Proxy שבו רוצים להשתמש.
שם המשתמש בשרת ה-proxy String לא שם המשתמש של שרת ה-proxy לאימות.
סיסמת שרת ה-Proxy סיסמה לא הסיסמה לאימות מול שרת ה-proxy.

כללי מחברים

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

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