שילוב APIVoid עם Google SecOps

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

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

לפני שמגדירים את השילוב של APIVoid ב-Google SecOps לגרסה 2, צריך לוודא שיש לכם את הדברים הבאים:

  • חשבון APIVoid v2: חשבון פעיל עם גישה לשירותי API v2.

  • מפתח API של APIVoid v2: מפתח API חדש שנוצר במיוחד לממשקי API בגרסה 2 מלוח הבקרה של המשתמש ב-APIVoid.

  • נקודות קצה מעודכנות של API: חשוב להכיר את כתובות ה-URL המעודכנות של נקודות הקצה של API v2 עבור שירותי APIVoid הספציפיים שאתם מתכננים להשתמש בהם (למשל, IP Reputation API, ‏ Domain Reputation API).

יצירת מפתח API של APIVoid v2

כדי ליצור מפתח API של APIVoid v2, צריך לבצע את השלבים הבאים:

  1. נכנסים אל מרכז הבקרה למשתמש ב-APIVoid.

  2. עוברים לקטע מפתחות API. (המיקום עשוי להשתנות בהתאם לעדכונים בלוח הבקרה).

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

רשת

תפקיד יציאה שמוגדרת כברירת מחדל כיוון פרוטוקול
API ערכים מרובים להעברת נתונים apikey

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

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

שם הפרמטר סוג ערך ברירת המחדל חובה תיאור
שם המכונה String לא רלוונטי לא שם המופע שרוצים להגדיר עבורו שילוב.
תיאור String לא רלוונטי לא תיאור המופע.
הבסיס של ה-API String https://endpoint.apivoid.com כן הכתובת של מופע APIVoid.
מפתח API סיסמה לא רלוונטי כן מפתח API שנוצר במסוף של APIVoid.
אימות SSL תיבת סימון התיבה לא מסומנת לא מסמנים את תיבת הסימון הזו אם החיבור ל-APIVoid דורש אימות SSL.
הרצה מרחוק תיבת סימון התיבה לא מסומנת לא מסמנים את התיבה כדי להריץ את השילוב שהוגדר מרחוק. אחרי שמסמנים את התיבה, מופיעה האפשרות לבחור את המשתמש (הסוכן) מרחוק.

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

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

פעולות

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

קבלת מוניטין של דומיין

קבלת בדיקות מוניטין של דומיין אם דומיין נכלל ברשימת חסימה של דומיינים פופולרית ומהימנה, כמו URLVir,‏ ThreatLog,‏ OpenPhish,‏ Spam404,‏ PhishTank,‏ ZeuS Tracker ועוד. שירותי רשימת החסימה של הדומיינים מזהים אתרים שעלולים להיות זדוניים ורמאותיים שמעורבים בהפצת תוכנות זדוניות, באירועי פישינג ובחנויות מקוונות מזויפות.

פרמטרים

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

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

אחד מתרחישי השימוש ב-Domain Reputation API הוא לבדוק אם האתרים של הלקוח מוחרגים, לבדוק כתובות URL שנשלחו על ידי משתמשים באפליקציה שלכם או לזהות אתרים שעלולים להיות זדוניים ולא בטוחים.

הפעלה ב-

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

  • שם המארח
  • כתובת URL

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

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

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

שם שדה ההעשרה לוגיקה – מתי להחיל
alexa_top_100k הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
domain_length הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
alexa_top_10k הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
רשימות שחורות הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
שרת הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
מארח הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
most_abused_tld הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
alexa_top_250k הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תובנות
חוּמרה תיאור
אזהרה תובנה מסוג אזהרה נוצרת כדי לעדכן לגבי הסטטוס הזדוני של הישות המועשרת. התובנה נוצרת כשמספר המנועים שזיהו את הישות שווה לסף המינימלי החשוד שנקבע לפני הסריקה או גדול ממנו.
תוצאת סקריפט
שם התוצאה של הסקריפט אפשרויות ערך דוגמה
הפעולה בוצעה נכון/לא נכון success:False
תוצאה בפורמט JSON
[
    {
        "EntityResult": {
            "alexa_top_100k": false,
            "domain_length": 17,
            "alexa_top_10k": false,
            "blacklists": {
                "scantime": "0.07",
                "detection_rate": "0%",
                "detections": 0,
                "engines_count": 29,
                "engines": [{
                    "engine": "ThreatLog",
                    "detected": false,
                    "confidence": "high",
                    "reference": "http://www.threatlog.com/"
                }, {
                    "engine": "Threat Sourcing",
                    "detected": false,
                    "confidence": "high",
                    "reference": "https://www.threatsourcing.com/"
                }, {
                    "engine": "URLVir",
                    "detected": false,
                    "confidence": "high",
                    "reference": "http://www.urlvir.com/"
                }]},
            "server": {
                "region_name": null,
                "reverse_dns": " ",
                "ip": " ",
                "isp": null,
                "continent_code": null,
                "latitude": null,
                "city_name": null,
                "longitude": null,
                "country_code": null,
                "country_name": null,
                "continent_name": null
            },
            "host": "example.com",
            "most_abused_tld": false,
            "alexa_top_250k": false
        },
        "Entity": "example.com"
    }, {
        "EntityResult": {
            "alexa_top_100k": false,
            "domain_length": 9,
            "alexa_top_10k": false,
            "blacklists": {
                "scantime": "0.03",
                "detection_rate": "0%",
                "detections": 0,
                "engines_count": 29,
                "engines": [{
                    "engine": "ThreatLog",
                    "detected": false,
                    "confidence": "high",
                    "reference": "http://www.threatlog.com/"
                }, {
                    "engine": "Threat Sourcing",
                    "detected": false,
                    "confidence": "high",
                    "reference": "https://www.threatsourcing.com/"
                }, {
                    "engine": "URLVir",
                    "detected": false,
                    "confidence": "high",
                    "reference": "http://www.urlvir.com/"
                }]},
            "server": {
                "region_name": null,
                "reverse_dns": " ",
                "ip": " ",
                "isp": null,
                "continent_code": null,
                "latitude": null,
                "city_name": null,
                "longitude": null,
                "country_code": null,
                "country_name": null,
                "continent_name": null
            },
            "host": "192.0.2.1",
            "most_abused_tld": false,
            "alexa_top_250k": false
        },
        "Entity": "192.0.2.1"
    }
]

קבלת מוניטין של כתובת IP

‫IP Reputation API מזהה כתובות IP שעלולות להיות זדוניות, שמשמשות בדרך כלל לספאם, להתקפות על אתרים או לפעילות שמקורה בתרמית.

פרמטרים

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

הפעלה ב-

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

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

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

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

שם שדה ההעשרה לוגיקה – מתי להחיל
מידע הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
רשימות שחורות הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
אנונימיות הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
ip הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תובנות
חוּמרה תיאור
אזהרה תובנה מסוג אזהרה נוצרת כדי לעדכן לגבי הסטטוס הזדוני של הגיבוב המועשר. התובנה נוצרת כאשר מספר המנועים שזיהו את הגיבוב שווה לסף המינימלי החשוד שנקבע לפני הסריקה או גבוה ממנו.
תוצאת סקריפט
שם התוצאה של הסקריפט אפשרויות ערך דוגמה
הפעולה בוצעה נכון/לא נכון success:False
תוצאה בפורמט JSON
[
    {
        "EntityResult": {
            "information": {
                "is_proxy": false,
                "is_vpn": false,
                "region_name": "Zhejiang",
                "is_webproxy": false,
                "latitude": 28.680280685424805,
                "isp": "ChinaNet Zhejiang Province Network",
                "continent_code": "AS",
                "is_tor": false,
                "reverse_dns": " ",
                "detections": 18,
                "engines_count": 76,
                "longitude": 121.44277954101562,
                "city_name": "Jiaojiang",
                "country_name": "China",
                "continent_name": "Asia",
                "detection_rate": "24%",
                "country_code": "CN",
                "is_hosting": false
            },
            "blacklists": {
                "scantime": "0.57",
                "detection_rate":
                "24%",
                "detections": 18,
                "engines_count": 76,
                "engines": [{
                    "engine": "PlonkatronixBL",
                    "detected": false,
                    "reference": "http://bl.plonkatronix.com/"
                }, {
                    "engine": "Engine",
                    "detected": true,
                    "reference": "https://home.nuug.no/~engine/"
                }, {"engine": "Malc0de",
                    "detected": false,
                    "reference": "http://malc0de.com/database/index.php"
                   }]},
            "anonymity": {
                "is_tor": false,
                "is_proxy": false,
                "is_vpn": false,
                "is_webproxy": false,
                "is_hosting": false
            },
            "ip": "192.0.2.1"
        },
        "Entity": "192.0.2.1"
    }
]

קבלת מוניטין של כתובת URL

קבלת מוניטין בטיחות וציון סיכון של כתובת URL.

פרמטרים

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

סף הסיכון של כתובת ה-URL. סף ההמרה חייב להיות ערך מספרי. דוגמה: 3

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

אנליסט יכול לאחזר את המוניטין של כתובת URL, בדומה לאחזור המוניטין של דומיין או כתובת IP.

הפעלה ב-

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

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

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

מסמנים את הישות כחשודה אם מספר המנועים השליליים שווה לסף שצוין או גבוה ממנו. if data.get("report", {}).get("risk_score", {}).get("result") > threshold

שם שדה ההעשרה לוגיקה – מתי להחיל
domain_blacklist הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
html_forms הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
server_details הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
response_headers הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
הפניה אוטומטית הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
file_type הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
risk_score הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
security_checks הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
geo_location הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
url_parts הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
site_category הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
web_page הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
dns_records הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תוצאת סקריפט
שם התוצאה של הסקריפט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
[
    {
        "EntityResult": {
            "domain_blacklist": {
                "detections": 0,
                "engines": [{
                    "detected": false,
                        "name": "SpamhausDBL", "reference": "https://www.spamhaus.org/lookup/"
                    }, {
                        "detected": false,
                        "name": "ThreatLog",
                        "reference": "http://www.threatlog.com/"
                    }, {
                        "detected": false,
                        "name": "OpenPhish",
                        "reference": "http://www.openphish.com/"
                    }, {
                        "detected": false,
                        "name": "PhishTank",
                        "reference": "http://www.phishtank.com/"
                    }, {
                        "detected": false,
                        "name": "Phishing.Database",
                        "reference": "https://github.com/mitchellkrogza/Phishing.Database"
                    }, {
                        "detected": false,
                        "name": "PhishStats",
                        "reference": "https://phishstats.info/"
                    }, {
                        "detected": false,
                        "name": "URLVir",
                        "reference": "http://www.urlvir.com/"
                    }, {
                        "detected": false,
                        "name": "URLhaus",
                        "reference": "https://urlhaus.abuse.ch/"
                    }, {
                        "detected": false,
                        "name": "RPiList Not Serious",
                        "reference": "https://github.com/RPiList/specials"
                    }, {
                        "detected": false,
                        "name": "precisionsec",
                        "reference": "https://precisionsec.com/"
                    }, {
                        "detected": false,
                        "name": "AntiSocial Blacklist",
                        "reference": "https://theantisocialengineer.com/"
                    }, {
                        "detected": false,
                        "name": "PhishFeed",
                        "reference": "https://phishfeed.com/"
                    }, {
                        "detected": false,
                        "name": "Spam404",
                        "reference": "https://www.spam404.com/"
                    }]},
            "html_forms": {
                "number_of_total_input_fields": 0,
                "email_field_present": false,
                "number_of_total_forms": 0,
                "password_field_present": false,
                "two_text_inputs_in_a_form": false,
                "credit_card_field_present": false
            },
            "server_details": {
                "continent_name": "Asia",
                "hostname": "example.com",
                "region_name": "Seoul-teukbyeolsi",
                "ip": "192.0.2.141",
                "isp": "Example Corporation",
                "continent_code": "AS",
                "country_name": "Korea (Republic of)",
                "city_name": "Seoul",
                "longitude": 126.97782897949219,
                "country_code": "KR",
                "latitude": 37.568260192871094
            },
            "response_headers": {
                "status": "HTTP/1.1 404 Not Found",
                "content-length": "177",
                "code": 404,
                "server": "nginx/1.4.6 (Ubuntu)",
                "connection": "keep-alive",
                "date": "Wed, 15 Jul 2020 08:21:54 GMT",
                "content-type": "text/html"
            },
            "redirection": {
                "url": null,
                "found": false,
                "external": false
            },
            "file_type": {
                "headers": "HTML",
                "extension": "HTML",
                "signature": " "
            },
            "risk_score": {
                "result": 10
            },
            "security_checks": {
                "is_suspended_page": false,
                "is_defaced_heuristic": false,
                "is_windows_exe_file": false,
                "is_credit_card_field": false,
                "is_windows_exe_file_on_free_hosting": false,
                "is_masked_linux_elf_file": false,
                "is_exe_on_directory_listing": false,
                "is_php_on_directory_listing": false,
                "is_masked_windows_exe_file": false,
                "is_sinkholed_domain": false,
                "is_robots_noindex": false,
                "is_windows_exe_file_on_free_dynamic_dns": false,
                "is_doc_on_directory_listing": false,
                "is_non_standard_port": false,
                "is_linux_elf_file_on_free_dynamic_dns": false,
                "is_suspicious_domain": false, "is_suspicious_url_pattern": false,
                "is_china_country": false,
                "is_risky_geo_location": false,
                "is_pdf_on_directory_listing": false,
                "is_valid_https": false,
                "is_external_redirect": false, "is_windows_exe_file_on_ipv4": false,
                "is_phishing_heuristic": false,
                "is_linux_elf_file_on_ipv4": false,
                "is_email_address_on_url_query": false,
                "is_uncommon_clickable_url": false,
                "is_most_abused_tld": false,
                "is_domain_blacklisted": false,
                "is_host_an_ipv4": false,
                "is_linux_elf_file_on_free_hosting": false,
                "is_zip_on_directory_listing": false,
                "is_password_field": false,
                "is_linux_elf_file": false,
                "is_empty_page_title": false,
                "is_directory_listing": false,
                "is_masked_file": false,
                "is_suspicious_file_extension": false,
                "is_suspicious_content": false
            },
            "geo_location": {
                "countries": ["KR"]
            },
            "url_parts": {
                "host_nowww": "example.com",
                "host": "www.example.com",
                "path": "/dynamic/example.html",
                "query": null,
                "scheme": "http",
                "port": 80},
            "site_category": {
                "is_vpn_provider": false,
                "is_url_shortener": false,
                "is_anonymizer": false,
                "is_torrent": false,
                "is_free_dynamic_dns": false,
                "is_free_hosting": false
            },
            "web_page": {
                "keywords": "",
                "description": "",
                "title": "404 Not Found"
            },
            "dns_records": {
                "ns": {
                    "records": [{
                        "country_name": "Korea (Republic of)",
                        "ip": "192.0.2.95",
                        "isp": "Example Corporation",
                        "target": "example.com",
                        "country_code": "KR"
                    }, {
                        "country_name": "Korea (Republic of)",
                        "ip": "192.0.2.26",
                        "isp": "LX",
                        "target": "example.com",
                        "country_code": "KR"
                    }]},
                "mx": {
                    "records": []
                }}},
        "Entity": "www.example.com:80/dynamic/example.html"
    }
]
Case wall
סוג התוצאות תיאור סוג
הודעת פלט*
  1. ישויות שהצליחו: 'APIVoid: Fetched reputation for the following entities: <entities identifer list>‎
  2. יחידות שנכשלו: "אירעה שגיאה ביחידות הבאות: <entities identifer list>"
  3. ישויות חסרות (אין נתונים): 'לא ניתן למצוא נתונים על המוניטין של הישויות הבאות: <entities identifer list>"
  4. התראה ללא ישויות של כתובות URL: "APIVoid: לא נמצאו כתובות URL".
כללי
קיר של כרטיסיות של פניות תמיכה בפורמט CSV

אם יש נתונים זמינים, צריך ליצור טבלת CSV של ישות חדשה:

  1. דוח על רשימת חסימה של דומיינים: data.get("report",{}).get("domain_blacklist",{}).get("engines", [])
כללי
העשרה

אם יש נתונים זמינים, מוסיפים את הפרטים הבאים כהעשרה של הישות: (חשוב להוסיף את הקידומת APIVoid)

  1. geo_location: data.get("report",{}).get("geo_location",{}).get("countries", [])
  2. is_suspicious_domain: data.get("report",{}).get("security_checks",{}).get("is_suspicious_domain")
  3. is_domain_blacklisted: data.get("report",{}).get("security_checks",{}).get("is_domain_blacklisted")
  4. is_risky_geo_location: data.get("report",{}).get("security_checks",{}).get("is_risky_geo_location")
  5. risk_score: data.get("report", {}).get("risk_score", {}).get("result")
  6. is_external_redirect: data.get("report",{}).get("security_checks",{}).get("is_external_redirect")
ישות

צילום מסך

לצלם צילום מסך באיכות גבוהה של כל אתר או כתובת URL.

פרמטרים

לא רלוונטי

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

אנליסט יכול לצלם צילומי מסך באיכות גבוהה של כל אתר או כתובת URL, בפורמט תמונה PNG או JPG.

הפעלה ב-

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

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

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

מסמנים את הישות כחשודה אם מספר המנועים השליליים שווה לסף הנתון או גדול ממנו. is_suspicious: if data.get("score") > threshold

שם שדה ההעשרה לוגיקה – מתי להחיל
דומיין הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
should_block הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
score הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
חד-פעמי הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
has_mx_records הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
has_spf_records הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תוצאת סקריפט
שם התוצאה של הסקריפט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
[
    {
        "EntityResult": {
            "domain": "example.com",
            "valid_tld": true,
            "email": "user@example.co",
            "role_address": false,
            "should_block": false,
            "risky_tld": false,
            "dirty_words_username": false,
            "suspicious_domain": false,
            "score": 100,
            "educational_domain": false,
            "dirty_words_domain": false,
            "did_you_mean": " ",
            "username": "user",
            "valid_format": true,
            "is_spoofable ": false,
            "disposable": false,
            "government_domain": false,
            "has_spf_records": true,
            "domain_popular": false,
            "has_mx_records": true,
            "china_free_email": false,
            "free_email": false,
            "russian_free_email": false,
            "police_domain": false,
            "dmarc_enforced": false,
            "suspicious_username": false
        },
        "Entity": "USER@EXAMPLE.COM"
    }
]
Case wall
סוג התוצאות תיאור סוג
הודעת פלט*
  1. ישויות שהצליחו: "APIVoid: Added screenshots for the following entities: <entities identifier list>"
  2. יחידות שנכשלו: "אירעה שגיאה ביחידות הבאות: <entities identifier list>"
  3. ישויות חסרות (ללא נתונים): 'לא נמצאו צילומי מסך עבור הישויות הבאות: <entities identifier list>'
  4. התראה ללא ישויות של כתובות URL: "APIVoid: No URL entities found for capturing screenshots."
  5. לישויות גדולות מדי (גודל קובץ מצורף > 3MB): "לא הצלחנו להוסיף צילומי מסך כקבצים מצורפים לישויות הבאות: <<entities identifier list>>"
כללי
קבצים מצורפים

אם הנתונים זמינים, יוצרים אובייקט קובץ חדש:

  1. כותרת הקובץ המצורף: 'Screenshot - {0}'.format(entity.identifier)
  2. שם הקובץ צריך להיות כתובת ה-URL ללא הסיומת (https/http) + ‎ '_capture.<file format>‎'‎
  3. צילום המסך מוחזר כמחרוזת בקידוד base64 –> תוכן הקובץ צריך להיות b64decode(data.get('base64_file'))
  4. אל תשכחו להוסיף try, except – יש לנו מגבלה של 3MB מהפלטפורמה. במקרה של שגיאה – מוסיפים הודעה רלוונטית ל-logger.
כללי

פינג

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

פרמטרים

לא רלוונטי

הפעלה ב-

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

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

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

אימות של כתובת האימייל

בודקים אם כתובת אימייל היא זמנית, אם יש לה רשומות MX ועוד.

פרמטרים

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

סף הסיכון של האימייל. סף ההמרה חייב להיות ערך מספרי.

דוגמה: 3

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

אנליסט יכול לבדוק אם כתובת אימייל היא זמנית, לקבל רשומות MX ועוד.

הפעלה ב-

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

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

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

מסמנים את הישות כחשודה אם מספר המנועים השליליים שווה לסף הנתון או גדול ממנו. is_suspicious: if data.get("score") > threshold

שם שדה ההעשרה לוגיקה – מתי להחיל
דומיין הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
should_block הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
score הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
חד-פעמי הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
has_mx_records הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
has_spf_records הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תוצאת סקריפט
שם התוצאה של הסקריפט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאה בפורמט JSON
[
    {
        "EntityResult": {
            "domain": "example.com",
            "valid_tld": true,
            "email": "user@example.com",
            "role_address": false,
            "should_block": false,
            "risky_tld": false,
            "dirty_words_username": false,
            "suspicious_domain": false,
            "score": 100,
            "educational_domain": false,
            "dirty_words_domain": false,
            "did_you_mean": " ",
            "username": "user",
            "valid_format": true,
            "is_spoofable ": false,
            "disposable": false,
            "government_domain": false,
            "has_spf_records": true,
            "domain_popular": false,
            "has_mx_records": true,
            "china_free_email": false,
            "free_email": false,
            "russian_free_email": false,
            "police_domain": false,
            "dmarc_enforced": false,
            "suspicious_username": false
        },
        "Entity": "USER@EXAMPLE.COm"
    }
]
Case wall
סוג התוצאות תיאור סוג
הודעת פלט*
  1. יחידות מוצלחות: "APIVoid: Fetched information for the following entities: <entities identifer list>
  2. יחידות שנכשלו: "אירעה שגיאה ביחידות הבאות: <entities identifer list>"
  3. ישויות חסרות (אין נתונים): 'לא מצאנו מידע על הישויות הבאות: <entities identifer list>"
  4. התראה ללא ישויות של כתובות URL: "APIVoid: No emails found."
כללי
קיר של כרטיסיות של פניות תמיכה בפורמט CSV תוכן CSV: נתוני ישויות(דוגמה בהמשך) כללי
העשרה

אם יש נתונים זמינים, מוסיפים את הפרטים הבאים כהעשרה של הישות: (חשוב להוסיף את הקידומת APIVoid)

  1. suspicious_domain: data.get("suspicious_domain")
  2. should_block: data.get("should_block")
  3. score: data.get("score")
  4. disposable: data.get("disposable")
  5. has_mx_records: data.get("has_mx_records")
  6. has_spf_records: data.get("has_spf_records")
ישות

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