שילוב של Mandiant Attack Surface Management עם Google SecOps

במאמר הזה מוסבר איך לשלב את Mandiant Attack Surface Management עם Google Security Operations (Google SecOps).

בפלטפורמת Google SecOps, השילוב של Mandiant Attack Surface Management נקרא Mandiant ASM.

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

השילוב של Mandiant ASM משתמש ביכולות של Google SecOps כדי לתמוך בתרחישי השימוש הבאים:

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

  • בעיות בהעברה: העברת בעיות מ-Mandiant Attack Surface Management כהתראות ב-Google SecOps.

  • העשרת אירועים: העשרת אירועי אבטחה במידע מפורט על ישויות בשטח ההתקפה.

  • תעדוף פעולות לתיקון: כדאי לתעדף את הפעולות לתיקון על סמך רמת החומרה של הפגיעות והבעיות ב-Mandiant Attack Surface Management.

  • עדכון סטטוסים של בעיות: אפשר לעדכן את הסטטוסים של בעיות ב-Mandiant Attack Surface Management ישירות מפלטפורמת Google SecOps.

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

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

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

השילוב של Mandiant Attack Surface Management דורש את הפרמטרים הבאים:

פרמטרים תיאור
API Root

חובה.

שורש ה-API של המכונה ב-Mandiant.

ערך ברירת המחדל הוא https://asm-api.advantage.mandiant.com.

כדי לבצע אימות באמצעות פרטי הכניסה של Google Threat Intelligence, מזינים את הערך הבא: https://www.virustotal.com.

Access Key

זה שינוי אופציונלי.

מפתח הגישה ל-API של חשבון Mandiant Attack Surface Management.

כדי ליצור את מפתח הגישה ב-Mandiant Attack Surface Management, עוברים אל Account settings > API keys > Generate new key (הגדרות חשבון > מפתחות API > יצירת מפתח חדש).

Secret Key

זה שינוי אופציונלי.

מפתח הסוד של ה-API בחשבון Mandiant Attack Surface Management.

כדי ליצור את מפתח ה-Secret ב-Mandiant Attack Surface Management, עוברים אל Account settings > API keys > Generate new key (הגדרות חשבון > מפתחות API > יצירת מפתח חדש).

Project Name

זה שינוי אופציונלי.

שם הפרויקט שבו רוצים להשתמש בשילוב.

אם משתמשים בפרמטרים Access Key ו-Secret Key כדי לבצע אימות, הפרמטר הזה נדרש כדי להריץ את הפעולות Search ASM Entities ו-Search Issues.

GTI API Key

זה שינוי אופציונלי.

מפתח ה-API של Google Threat Intelligence.

כדי לבצע אימות באמצעות Google Threat Intelligence, מגדירים את ערך הפרמטר API Root ל-https://www.virustotal.com.

כשמבצעים אימות באמצעות מפתח Google Threat Intelligence API, הוא מקבל עדיפות על פני שיטות אימות אחרות.

Verify SSL

חובה.

אם האפשרות הזו נבחרה, האינטגרציה מאמתת את התוקף של אישור ה-SSL לחיבור לשרת Mandiant.

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

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

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

פעולות

מידע נוסף על פעולות זמין במאמרים איך מגיבים לפעולות שממתינות לאישור ב-Your Workdesk ואיך מבצעים פעולה ידנית.

קבלת פרטים על ישויות ב-ASM

משתמשים בפעולה Get ASM Entity Details כדי להחזיר מידע על ישות של Mandiant Attack Surface Management.

הפעולה הזו לא מופעלת על ישויות ב-Google SecOps.

הוספת נתונים לפעולה

הפעולה Get ASM Entity Details (קבלת פרטי ישות ASM) דורשת את הפרמטרים הבאים:

פרמטר תיאור
Entity ID

חובה.

רשימה מופרדת בפסיקים של מזהי ישויות שרוצים לאחזר את הפרטים שלהן.

פלט של פעולות

הפעולה Get ASM Entity Details מספקת את הפלט הבא:

סוג הפלט של הפעולה זמינות
קיר המארז לא זמין
קישור לקיר של הפנייה לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט JSON יש גישה
הודעות פלט יש גישה
תוצאת סקריפט יש גישה
תוצאה בפורמט JSON

בדוגמה הבאה מוצג פלט של תוצאת JSON שהתקבל כשמשתמשים בפעולה Get ASM Entity Details:

{
 "uuid": "UUID",
 "dynamic_id": "Intrigue::Entity::Uri#http://192.0.2.73:80",
 "collection_name": "cpndemorange_oum28bu",
 "alias_group": 8515,
 "aliases": [
   "http://192.0.2.73:80"
 ],
 "allow_list": false,
 "ancestors": [
   {
     "type": "Intrigue::Entity::NetBlock",
     "name": "192.0.2.0/24"
   }
 ],
 "category": null,
 "collection_naics": null,
 "confidence": null,
 "deleted": false,
 "deny_list": false,
 "details": {
   "asn": null,
   "ssl": false,
   "uri": "http://192.0.2.73:80",
   "code": "404",
   "port": 80,
   "forms": false,
   "title": "404 Not Found",
   "verbs": null,
   "cookies": null,
   "headers": [
     "Date: Fri, 30 Sep 2022 06:51:11 GMT",
     "Content-Type: text/html",
     "Content-Length: 548",
     "Connection: keep-alive"
   ],
   "host_id": 8615,
   "net_geo": "US",
   "scripts": [],
   "service": "http",
   "auth.2fa": false,
   "auth.any": false,
   "dom_sha1": "540707399c1b58afd2463ec43da3b41444fbde32",
   "net_name": "",
   "protocol": "tcp",
   "alt_names": null,
   "auth.ntlm": false,
   "generator": null,
   "auth.basic": false,
   "auth.forms": false,
   "ip_address": "192.0.2.73",
   "favicon_md5": null,
   "fingerprint": [
     {
       "cpe": "cpe:2.3:a:example:example::",
       "hide": false,
       "tags": [
         "Web Server"
       ],
       "type": "fingerprint",
       "tasks": null,
       "issues": null,
       "method": "ident",
       "update": null,
       "vendor": "Example",
       "product": "Example",
       "version": null,
       "inference": false,
       "description": "example (default page)",
       "match_logic": "all",
       "positive_matches": [
         {
           "match_type": "content_body",
           "match_content": "(?i-mx:<hr><center>example\/?([\\d.]*)<\/center>)"
         }
       ]
     },
     {
       "cpe": "cpe:2.3:a:example:example::",
       "hide": false,
       "tags": [
         "Web Server"
       ],
       "type": "fingerprint",
       "tasks": null,
       "issues": null,
       "method": "ident",
       "update": null,
       "vendor": "example",
       "product": "example",
       "version": null,
       "inference": false,
       "description": "example (default page - could be redirect)",
       "match_logic": "all",
       "positive_matches": [
         {
           "match_type": "content_body",
           "match_content": "(?i-mx:<hr><center>example\/?[\\d.]*<\/center>)"
         }
       ]
     }
   ],
   "geolocation": {
     "asn": {
       "asn": 16509,
       "isp": "Example Inc.",
       "name": "example.com, Inc.",
       "organization": "Example Services",
       "connection_type": "Corporate"
     },
     "city": "Singapore",
     "country": "Singapore",
     "latitude": 1.35208,
     "continent": "Asia",
     "longitude": 103.82,
     "time_zone": "Asia/Singapore",
     "country_code": "SG",
     "continent_code": "AS"
   },
   "vuln_checks": [
     "log4shell_cve_2021_44228"
   ],
   "api_endpoint": false,
   "cloud_hosted": true,
   "favicon_sha1": null,
   "domain_cookies": null,
   "log4shell_uuid": "55be320622c4937c01738e092579edaa338fd90e2a",
   "redirect_chain": [],
   "redirect_count": 0,
   "cloud_providers": [
     "Cloud Provider Name"
   ],
   "hidden_original": "http://192.0.2.73:80",
   "net_country_code": null,
   "screenshot_exists": true,
   "cloud_fingerprints": [],
   "response_data_hash": "1GUXIXXTXUk/sWM+I3cAAivYSfoSMWR5CxaLgxissJA=",
   "extended_favicon_data": null,
   "extended_path_to_seed": [
     {
       "id": 8620,
       "_id": 8605,
       "name": "http://192.0.2.73:80",
       "seed": false,
       "type": "Intrigue::Entity::Uri",
       "_type": "Entity",
       "creates": [
         {
           "id": 6158,
           "_id": 6152,
           "name": "192.0.2.0/24",
           "seed": true,
           "type": "Intrigue::Entity::NetBlock",
           "_type": "Entity",
           "creates.verb": "queried",
           "creates.source_name": "search_shodan",
           "creates.source_type": "internet_scan_database"
         }
       ]
     }
   ],
   "extended_configuration": [
     {
       "hide": false,
       "name": "Example Page Content",
       "task": null,
       "type": "content",
       "issue": null,
       "result": 566218143
     },
     {
       "hide": false,
       "name": "Example",
       "task": null,
       "type": "content",
       "issue": null,
       "result": 566218143
     },
     {
       "cpe": "cpe:2.3:a:example:example::",
       "hide": false,
       "tags": [
         "Web Server"
       ],
       "type": "fingerprint",
       "tasks": null,
       "issues": null,
       "method": "ident",
       "update": null,
       "vendor": "Example",
       "product": "Example",
       "version": null,
       "inference": false,
       "description": "example (default page)",
       "match_logic": "all",
       "positive_matches": [
         {
           "match_type": "content_body",
           "match_content": "(?i-mx:<hr><center>example\/?([\\d.]*)<\/center>)"
         }
       ]
     },
     {
       "cpe": "cpe:2.3:a:example:example::",
       "hide": false,
       "tags": [
         "Web Server"
       ],
       "type": "fingerprint",
       "tasks": null,
       "issues": null,
       "method": "ident",
       "update": null,
       "vendor": "Example",
       "product": "Example",
       "version": null,
       "inference": false,
       "description": "example (default page - could be redirect)",
       "match_logic": "all",
       "positive_matches": [
         {
           "match_type": "content_body",
           "match_content": "(?i-mx:<hr><center>example\/?[\\d.]*<\/center>)"
         }
       ]
     }
   ],
   "extended_response_body": "<html>\r\n<head><title>404 Not Found</title></head>\r\n<body>\r\n<center><h1>404 Not Found</h1></center>\r\n<hr><center>example</center>\r\n</body>\r\n</html>\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n",
   "exfil_lookup_identifier": "55be320622c4937c01738e092579edaa",
   "extended_shodan_details": {
     "ip": 50387017,
     "os": null,
     "asn": "ASN",
     "isp": "Example.com, Inc.",
     "org": "Example Services",
     "data": "HTTP/1.1 404 Not Found\r\nDate: Fri, 30 Sep 2022 05:16:32 GMT\r\nContent-Type: text/html\r\nContent-Length: 548\r\nConnection: keep-alive\r\n\r\n",
     "hash": -744989972,
     "http": {
       "host": "192.0.2.73",
       "html": "<html>\r\n<head><title>404 Not Found</title></head>\r\n<body>\r\n<center><h1>404 Not Found</h1></center>\r\n<hr><center>example</center>\r\n</body>\r\n</html>\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n",
       "title": "404 Not Found",
       "robots": null,
       "server": null,
       "status": 404,
       "sitemap": null,
       "location": "/",
       "html_hash": -2090962452,
       "redirects": [],
       "components": {},
       "robots_hash": null,
       "securitytxt": null,
       "headers_hash": -873436690,
       "sitemap_hash": null,
       "securitytxt_hash": null
     },
     "tags": [
       "cloud"
     ],
     "cloud": {
       "region": "ap-southeast-1",
       "service": "Example",
       "provider": "Example"
     },
     "ip_str": "192.0.2.73",
     "_shodan": {
       "id": "ID",
       "ptr": true,
       "module": "http",
       "region": "eu",
       "crawler": "f4bb88763d8ed3a0f3f91439c2c62b77fb9e06f3",
       "options": {}
     },
     "domains": [
       "example.com"
     ],
     "location": {
       "city": "Singapore",
       "latitude": 1.28967,
       "area_code": null,
       "longitude": 103.85007,
       "region_code": "01",
       "country_code": "SG",
       "country_name": "Singapore"
     },
     "hostnames": [
       "ec2-192-0-2-73.ap-southeast-1.compute.example.com"
     ],
     "timestamp": "2022-09-30T05:16:33.068993"
   },
   "hidden_port_open_confirmed": true,
   "extended_screenshot_contents": "iVBORw0KGgoAAA"
 },
 "details_file": "data/v4/cpndemorange_oum28bu/2022_09_30/cpndemorange_oum28bu/entities/ID.json",
 "description": null,
 "first_seen": "2022-09-30T21:20:19.000Z",
 "hidden": false,
 "last_seen": "2022-09-30T21:20:19.000Z",
 "name": "http://192.0.2.73:80",
 "scoped": true,
 "scoped_reason": "entity_scoping_rules: fallback value",
 "seed": false,
 "source": null,
 "status": null,
 "task_results": [],
 "type": "Intrigue::Entity::Uri",
 "uid": "UID",
 "created_at": "2022-09-30T21:25:05.232Z",
 "updated_at": "2022-09-30T21:25:05.239Z",
 "collection_id": 117139,
 "elasticsearch_mappings_hash": null,
 "collection": "cpndemorange_oum28bu",
 "collection_uuid": "UUID",
 "organization_uuid": "UUID",
 "collection_type": "user_collection",
 "fingerprint": [
   {
     "cpe": "cpe:2.3:a:example:example::",
     "hide": false,
     "tags": [
       "Web Server"
     ],
     "type": "fingerprint",
     "tasks": null,
     "issues": null,
     "method": "ident",
     "update": null,
     "vendor": "Example",
     "product": "Example",
     "version": null,
     "inference": false,
     "description": "example (default page)",
     "match_logic": "all",
     "positive_matches": [
       {
         "match_type": "content_body",
         "match_content": "(?i-mx:<hr><center>example\/?([\\d.]*)<\/center>)"
       }
     ],
     "local_icon_path": "/assets/fingerprints/example.png"
   },
   {
     "cpe": "cpe:2.3:a:example:example::",
     "hide": false,
     "tags": [
       "Web Server"
     ],
     "type": "fingerprint",
     "tasks": null,
     "issues": null,
     "method": "ident",
     "update": null,
     "vendor": "Example",
     "product": "Example",
     "version": null,
     "inference": false,
     "description": "example (default page - could be redirect)",
     "match_logic": "all",
     "positive_matches": [
       {
         "match_type": "content_body",
         "match_content": "(?i-mx:<hr><center>example\/?[\\d.]*<\/center>)"
       }
     ],
     "local_icon_path": "/assets/fingerprints/example.png"
   }
 ],
 "summary": {
   "scoped": true,
   "issues": {
     "current_with_cve": 0,
     "current_by_severity": {
       "1": 1
     },
     "all_time_by_severity": {
       "1": 1
     },
     "current_count": 1,
     "all_time_count": 1,
     "critical_or_high": true
   },
   "task_results": [
     "search_shodan",
     "port_scan",
     "port_scan_lambda",
     "search_shodan"
   ],
   "screenshot_exists": true,
   "geolocation": {
     "city": "Singapore",
     "country_code": "SG",
     "country_name": null,
     "latitude": 1.35208,
     "longitude": 103.82,
     "asn": null
   },
   "http": {
     "code": 404,
     "title": "404 Not Found",
     "content": {
       "favicon_hash": null,
       "hash": null,
       "forms": false
     },
     "auth": {
       "any": false,
       "basic": false,
       "ntlm": false,
       "forms": false,
       "2fa": false
     }
   },
   "ports": {
     "tcp": [
       80
     ],
     "udp": [],
     "count": 1
   },
   "network": {
     "name": "example.com, Inc.",
     "asn": 16509,
     "route": null,
     "type": null
   },
   "technology": {
     "cloud": true,
     "cloud_providers": [
       "Cloud Provider Name"
     ],
     "cpes": [],
     "technologies": [],
     "technology_labels": []
   },
   "vulns": {
     "current_count": 0,
     "vulns": []
   }
 },
 "tags": [],
 "id": "ID",
 "scoped_at": "2022-09-30 06:51:57 +0000",
 "detail_string": "Fingerprint: Example |  Title: 404 Not Found",
 "enrichment_tasks": [
   "enrich/uri",
   "sslcan"
 ],
 "generated_at": "2022-09-30T21:21:18Z"
}
הודעות פלט

הפעולה Get ASM Entity Details יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה

Successfully return details for the following entities using information from Mandiant ASM: ENTITY_ID

Action wasn't able to return details for the following entities using information from Mandiant ASM: ENTITY_ID

הפעולה הסתיימה בהצלחה.
Error executing action "Get ASM Entity Details". Reason: ERROR_REASON

הפעולה נכשלה.

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

תוצאת סקריפט

בטבלה הבאה מפורט הערך של פלט תוצאת הסקריפט כשמשתמשים בפעולה Get ASM Entity Details:

שם התוצאה של הסקריפט ערך
is_success True או False

חיפוש ישויות ב-ASM

משתמשים בפעולה Search ASM Entities כדי לחפש ישויות ב-Mandiant Attack Surface Management.

אם משתמשים בפרמטרים Access Key ו-Secret Key לאימות, צריך להגדיר גם את הפרמטר Project Name בפרמטרים של שילוב.

הפעולה הזו לא מופעלת על ישויות ב-Google SecOps.

הוספת נתונים לפעולה

הפעולה Search ASM Entities דורשת את הפרמטרים הבאים:

פרמטר תיאור
Entity Name

זה שינוי אופציונלי.

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

כדי למנוע כשל בפעולה, אל תשתמשו בתו / הלוכסן כשאתם מגדירים ערכים לפרמטר הזה.

Minimum Vulnerabilities Count

זה שינוי אופציונלי.

מספר נקודות החולשה שקשורות לישות המוחזרת.

Minimum Issues Count

זה שינוי אופציונלי.

מספר הבעיות שקשורות לישות שהוחזרה.

Tags

זה שינוי אופציונלי.

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

Max Entities To Return

זה שינוי אופציונלי.

מספר הישויות שיוחזרו.

ערך ברירת המחדל הוא 50. הערך המקסימלי הוא 200.

Critical or High Issue

זה שינוי אופציונלי.

אם האפשרות הזו נבחרה, הפעולה מחזירה רק ישויות עם בעיות מסוג High או Critical.

לא מסומן כברירת מחדל.

פלט של פעולות

הפעולה Search ASM Entities מספקת את הפלט הבא:

סוג הפלט של הפעולה זמינות
קיר המארז לא זמין
קישור לקיר של הפנייה לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט JSON יש גישה
הודעות פלט יש גישה
תוצאת סקריפט יש גישה
תוצאה בפורמט JSON

בדוגמה הבאה מוצג פלט תוצאות JSON שהתקבל כשמשתמשים בפעולה Search ASM Entities:

{
 "id": "ID",
 "dynamic_id": "Intrigue::Entity::IpAddress#192.0.2.92",
 "alias_group": "1935953",
 "name": "192.0.2.92",
 "type": "Intrigue::Entity::IpAddress",
 "first_seen": "2022-02-02T01:44:46Z",
 "last_seen": "2022-02-02T01:44:46Z",
 "collection": "cpndemorange_oum28bu",
 "collection_type": "Intrigue::Collections::UserCollection",
 "collection_naics": [],
 "collection_uuid": "COLLECTION_UUID",
 "organization_uuid": "ORGANIZATION_UUID",
 "tags": [],
 "issues": [],
 "exfil_lookup_identifier": null,
 "summary": {
     "scoped": true,
     "issues": {
         "current_by_severity": {},
         "current_with_cve": 0,
         "all_time_by_severity": {},
         "current_count": 0,
         "all_time_count": 0,
         "critical_or_high": false
     },
     "task_results": [
         "search_shodan"
     ],
     "geolocation": {
         "city": "San Jose",
         "country_code": "US",
         "country_name": null,
         "latitude": "-121.8896",
         "asn": null
     },
     "ports": {
         "count": 0,
         "tcp": null,
         "udp": null
     },
     "resolutions": [
         "ec2-192-0-2-92.us-west-1.compute.example.com"
     ],
     "network": {
         "name": "EXAMPLE-02",
         "asn": "16509.0",
         "route": "2001:db8::/32",
         "type": null
     },
     "technology": {
         "cloud": true,
         "cloud_providers": [
             "Cloud Provider Name"
         ]
     }
 }
}
הודעות פלט

הפעולה חיפוש ישויות ב-ASM יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה

Successfully returned entities based on the provided criteria in Mandiant ASM.

No entities were found based on the provided criteria in Mandiant ASM.

הפעולה הסתיימה בהצלחה.
Error executing action "Search ASM Entities". Reason: ERROR_REASON

הפעולה נכשלה.

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

תוצאת סקריפט

בטבלה הבאה מפורט הערך של פלט התוצאה של הסקריפט כשמשתמשים בפעולה Search ASM Entities:

שם התוצאה של הסקריפט ערך
is_success True או False

בעיות בחיפוש

משתמשים בפעולה חיפוש בעיות כדי לחפש בעיות ב-Mandiant Attack Surface Management.

אם משתמשים בפרמטרים Access Key ו-Secret Key לאימות, צריך להגדיר גם את הפרמטר Project Name בפרמטרים של שילוב.

הפעולה הזו לא מופעלת על ישויות ב-Google SecOps.

הוספת נתונים לפעולה

הפעולה Search Issues דורשת את הפרמטרים הבאים:

פרמטר תיאור
Issue ID

זה שינוי אופציונלי.

רשימה מופרדת בפסיקים של מזהי בעיות שרוצים לקבל את הפרטים שלהן.

Entity ID

זה שינוי אופציונלי.

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

Entity Name

זה שינוי אופציונלי.

רשימה מופרדת בפסיקים של שמות ישויות כדי למצוא בעיות שקשורות אליהן.

כדי למנוע כשל בפעולה, אל תשתמשו בתו / הלוכסן כשאתם מגדירים ערכים לפרמטר הזה.

Time Parameter

זה שינוי אופציונלי.

אפשרות סינון להגדרת זמן הבעיה.

הערכים האפשריים הם First Seen ו-Last Seen.

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

Time Frame

זה שינוי אופציונלי.

תקופה לסינון בעיות. אם בוחרים באפשרות Custom, מגדירים את הפרמטר Start Time.

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

  • Last Hour
  • Last 6 Hours
  • Last 24 Hours
  • Last Week
  • Last Month
  • Custom

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

Start Time

זה שינוי אופציונלי.

שעת ההתחלה של התוצאות.

אם בחרתם באפשרות Custom לפרמטר Time Frame, חובה לכלול את הפרמטר הזה. הערך צריך להיות בפורמט ISO 8601.

End Time

זה שינוי אופציונלי.

שעת הסיום של התוצאות.

אם בחרתם באפשרות Custom לפרמטר Time Frame ולא הגדרתם את שעת הסיום, הפרמטר הזה ישתמש בשעה הנוכחית כשעת הסיום. הערך צריך להיות בפורמט ISO 8601.

Lowest Severity To Return

זה שינוי אופציונלי.

רמת החומרה הכי נמוכה של הבעיות שיוחזרו.

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

  • Select One
  • Critical
  • High
  • Medium
  • Low
  • Informational

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

אם בוחרים באפשרות Select One, המסנן הזה לא חל על החיפוש.

Status

זה שינוי אופציונלי.

מסנן הסטטוסים של החיפוש.

הערכים האפשריים הם Open,‏ Closed ו-Select One.

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

אם בוחרים באפשרות Select One, המסנן הזה לא חל על החיפוש.

Tags

זה שינוי אופציונלי.

רשימה מופרדת בפסיקים של שמות תגים לשימוש כשמחפשים בעיות.

Max Issues To Return

זה שינוי אופציונלי.

מספר הבעיות שיוחזרו.

ערך ברירת המחדל הוא 50. הערך המקסימלי הוא 200.

פלט של פעולות

הפעולה חיפוש בעיות מספקת את הפלט הבא:

סוג הפלט של הפעולה זמינות
קיר המארז לא זמין
קישור לקיר של הפנייה לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט JSON יש גישה
הודעות פלט יש גישה
תוצאת סקריפט יש גישה
תוצאה בפורמט JSON

הדוגמה הבאה מציגה את פלט תוצאות ה-JSON שמתקבל כשמשתמשים בפעולה חיפוש בעיות:

{
 "id": "ID",
 "uuid": "UUID",
 "dynamic_id": 20073997,
 "name": "exposed_ftp_service",
 "upstream": "intrigue",
 "last_seen": "2022-02-02T01:44:46.000Z",
 "first_seen": "2022-02-02T01:44:46.000Z",
 "entity_uid": "3443a638f951bdc23d3a089bff738cd961a387958c7f5e4975a26f12e544241f",
 "entity_type": "Intrigue::Entity::NetworkService",
 "entity_name": "192.0.2.204:24/tcp",
 "alias_group": "1937534",
 "collection": "cpndemorange_oum28bu",
 "collection_uuid": "COLLECTION_UUID",
 "collection_type": "user_collection",
 "organization_uuid": "ORGANIZATION_UUID",
 "summary": {
     "pretty_name": "Exposed FTP Service",
     "severity": 3,
     "scoped": true,
     "confidence": "confirmed",
     "status": "open_new",
     "category": "misconfiguration",
     "identifiers": null,
     "status_new": "open",
     "status_new_detailed": "new",
     "ticket_list": null
 },
 "tags": []
}
הודעות פלט

הפעולה חיפוש בעיות יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה

Successfully returned issues based on the provided criteria in Mandiant ASM.

No issues were found based on the provided criteria in Mandiant ASM.

הפעולה הסתיימה בהצלחה.
Error executing action "Search Issues". Reason: ERROR_REASON

הפעולה נכשלה.

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

תוצאת סקריפט

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

שם התוצאה של הסקריפט ערך
is_success True או False

עדכון בעיה

משתמשים בפעולה Update Issue (עדכון בעיה) כדי לעדכן בעיה ב-Mandiant Attack Surface Management.

הפעולה הזו לא מופעלת על ישויות ב-Google SecOps.

הוספת נתונים לפעולה

הפעולה Update Issue דורשת את הפרמטרים הבאים:

פרמטר תיאור
Issue ID

חובה.

המזהה של הבעיה שרוצים לעדכן.

Status

חובה.

הסטטוס שצריך להגדיר לבעיה.

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

  • Select One
  • New
  • Triaged
  • In Progress
  • Resolved
  • Duplicate
  • Out Of Scope
  • Not A Security Issue (Benign)
  • Risk Accepted
  • False Positive
  • Unable To Reproduce
  • Tracked Externally
  • Mitigated

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

פלט של פעולות

הפעולה Update Issue מספקת את הפלט הבא:

סוג הפלט של הפעולה זמינות
קיר המארז לא זמין
קישור לקיר של הפנייה לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט JSON לא זמין
הודעות פלט יש גישה
תוצאת סקריפט יש גישה
הודעות פלט

הפעולה Update Issue יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully updated issue with ID "ISSUE_ID" in Mandiant ASM. הפעולה הסתיימה בהצלחה.
Error executing action "Update Issue". Reason: ERROR_REASON

הפעולה נכשלה.

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

תוצאת סקריפט

בטבלה הבאה מפורט הערך של פלט התוצאה של הסקריפט כשמשתמשים בפעולה Update Issue:

שם התוצאה של הסקריפט ערך
is_success True או False

מחברים

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

Mandiant ASM – Issues Connector

אפשר להשתמש במחבר הבעיות של Mandiant ASM כדי לשלוף מידע על בעיות מ-Mandiant Attack Surface Management.

מסנן הרשימה הדינמית פועל עם הפרמטר category.

‫Mandiant ASM – Issues Connector דורש את הפרמטרים הבאים:

פרמטר תיאור
Product Field Name

חובה.

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

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

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

Event Field Name

חובה.

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

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

Environment Field Name

זה שינוי אופציונלי.

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

אם השדה environment לא נמצא, הסביבה היא סביבת ברירת המחדל.

Environment Regex Pattern

זה שינוי אופציונלי.

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

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

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

Script Timeout (Seconds)

חובה.

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

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

API Root

חובה.

שורש ה-API של המכונה ב-Mandiant.

ערך ברירת המחדל הוא https://asm-api.advantage.mandiant.com.

כדי לבצע אימות באמצעות פרטי הכניסה של Google Threat Intelligence, מזינים את הערך הבא: https://www.virustotal.com.

Access Key

זה שינוי אופציונלי.

מפתח הגישה ל-API של חשבון Mandiant Attack Surface Management.

כדי ליצור את מפתח הגישה ב-Mandiant Attack Surface Management, עוברים אל Account settings > API keys > Generate new key (הגדרות חשבון > מפתחות API > יצירת מפתח חדש).

Secret Key

זה שינוי אופציונלי.

מפתח הסוד של ה-API בחשבון Mandiant Attack Surface Management.

כדי ליצור את מפתח ה-Secret ב-Mandiant Attack Surface Management, עוברים אל Account settings > API keys > Generate new key (הגדרות חשבון > מפתחות API > יצירת מפתח חדש).

Project Name

זה שינוי אופציונלי.

שם הפרויקט שבו רוצים להשתמש בשילוב.

חובה אם משתמשים בפרמטרים Access Key ו-Secret Key לאימות.

GTI API Key

זה שינוי אופציונלי.

מפתח ה-API של Google Threat Intelligence.

כדי לבצע אימות באמצעות Google Threat Intelligence, מגדירים את ערך הפרמטר API Root ל-https://www.virustotal.com.

לאימות באמצעות מפתח Google Threat Intelligence API יש עדיפות על פני שיטות אימות אחרות.

Lowest Severity To Fetch

זה שינוי אופציונלי.

רמת החומרה הנמוכה ביותר של הבעיות שיש לאחזר.

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

  • Critical
  • High
  • Medium
  • Low
  • Informational

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

Max Hours Backwards

זה שינוי אופציונלי.

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

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

Max Issues To Fetch

זה שינוי אופציונלי.

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

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

Use dynamic list as a blocklist

חובה.

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

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

Verify SSL

חובה.

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

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

Proxy Server Address

זה שינוי אופציונלי.

הכתובת של שרת ה-Proxy שבו רוצים להשתמש.

Proxy Username

זה שינוי אופציונלי.

שם המשתמש ב-proxy לאימות.

Proxy Password

זה שינוי אופציונלי.

סיסמת ה-proxy לאימות.

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