שימוש בנתונים מועשרים בהקשר בכללים
כדי לעזור לאנליסטים של אבטחה במהלך חקירה, מערכת Google Security Operations קולטת נתונים הקשריים ממקורות שונים, מנתחת את הנתונים שנקלטו ומספקת הקשר נוסף לגבי ארטיפקטים בסביבת לקוח. במסמך הזה מפורטות דוגמאות לאופן שבו אנליסטים משתמשים בנתונים מועשרים בהקשר בכללים של Detection Engine.
מידע נוסף על העשרת נתונים זמין במאמר איך Google SecOps מעשיר נתונים של אירועים וישויות.
שימוש בשדות שמועשרים בנתוני שכיחות בכללים
בדוגמאות הבאות אפשר לראות איך משתמשים בשדות המועשרים שקשורים לשיעור השכיחות ב-Detection Engine. כאן מפורטת רשימת השדות המועשרים שקשורים לשיעור השכיחות.
זיהוי גישה לדומיין עם שכיחות נמוכה
כלל הזיהוי הזה יוצר אירוע זיהוי, ולא התראת זיהוי, כשנמצאת התאמה. הוא נועד בעיקר לשמש כאינדיקטור משני כשבודקים נכס. לדוגמה, יש התראות אחרות ברמת חומרה גבוהה יותר שהפעילו אירוע.
$enrichment.graph.metadata.entity_type = "FILE"
$enrichment.graph.metadata.product_name = "VirusTotal Relationships"
$enrichment.graph.metadata.vendor_name = "VirusTotal"
מידע נוסף על הוספת מסנן לשיפור הביצועים של הכלל מופיע במאמר בנושא הוספת מסנן של סוג אירוע.
מידע על כל סוג של העשרה זמין במאמר איך Google SecOps מעשיר נתונים של אירועים וישויות.
שימוש בשדות שמועשרים בנתוני שכיחות בכללים
בדוגמאות הבאות אפשר לראות איך משתמשים בשדות המועשרים שקשורים לשיעור השכיחות ב-Detection Engine. כאן מפורטת רשימת השדות המועשרים שקשורים לשיעור השכיחות.
זיהוי גישה לדומיינים עם ציון שכיחות נמוך
אפשר להשתמש בכלל הזה כדי לזהות גישה לדומיינים עם ציון שכיחות נמוך. כדי שהבדיקה תהיה יעילה, צריך להיות קיים בסיס להשוואה של ציוני השכיחות של הארטיפקטים. בדוגמה הבאה נעשה שימוש ברשימות הפניה כדי לשפר את התוצאה, ומוגדר ערך סף של שכיחות.
rule network_prevalence_low_prevalence_domain_access {
meta:
author = "Google Security Operations"
description = "Detects access to a low prevalence domain. Requires baseline of prevalence be in place for effective deployment."
severity = "LOW"
events:
$e.metadata.event_type = "NETWORK_HTTP"
$e.principal.ip = $ip
// filter out URLs with RFC 1918 IP addresses, internal assets
not re.regex($e.target.hostname, `(127(?:\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$)|(10(?:\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$)|(192\.168(?:\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){2}$)|(172\.(?:1[6-9]|2\d|3[0-1])(?:\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){2})`)
// used an explicit exclusion reference list
not $e.target.hostname in %exclusion_network_prevalence_low_prevalence_domain_access
// only match valid FQDN, filter out background non-routable noise
re.regex($e.target.hostname, `(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]`)
$domainName = $e.target.hostname
//join event ($e) to entity graph ($d)
$e.target.hostname = $d.graph.entity.domain.name
$d.graph.metadata.entity_type = "DOMAIN_NAME"
// tune prevalence as fits your results
$d.graph.entity.domain.prevalence.rolling_max > 0
$d.graph.entity.domain.prevalence.rolling_max <= 10
match:
$ip over 1h
outcome:
$risk_score = max(
// increment risk score based upon rolling_max prevalence
if ( $d.graph.entity.domain.prevalence.rolling_max >= 10, 10) +
if ( $d.graph.entity.domain.prevalence.rolling_max >= 2 and $d.graph.entity.domain.prevalence.rolling_max <= 9 , 20) +
if ( $d.graph.entity.domain.prevalence.rolling_max = 1, 30)
)
$domain_list = array_distinct($domainName)
$domain_count = count_distinct($domainName)
condition:
$e and #d > 10
}
זיהוי דומיינים עם שכיחות נמוכה באמצעות התאמה ל-IOC
כלל הזיהוי הזה יוצר התראת זיהוי ומספק התאמה ברמת מהימנות גבוהה בהשוואה לדומיין עם שכיחות נמוכה שהוא גם IOC ידוע.
rule network_prevalence_uncommon_domain_ioc_match {
meta:
author = "Google Security Operations"
description = "Lookup Network DNS queries against Entity Graph for low prevalence domains with a matching IOC entry."
severity = "MEDIUM"
events:
$e.metadata.event_type = "NETWORK_DNS"
$e.network.dns.questions.name = $hostname
//only match FQDNs, such as: exclude chrome dns access tests and other internal hosts
$e.network.dns.questions.name = /(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/
//prevalence entity graph lookup
$p.graph.metadata.entity_type = "DOMAIN_NAME"
$p.graph.entity.domain.prevalence.rolling_max > 0
$p.graph.entity.domain.prevalence.rolling_max <= 3
$p.graph.entity.domain.name = $hostname
//ioc entity graph lookup
$i.graph.metadata.vendor_name = "ET_PRO_IOC"
$i.graph.metadata.entity_type = "DOMAIN_NAME"
$i.graph.entity.hostname = $hostname
match:
$hostname over 10m
outcome:
$risk_score = max(
//increment risk score based upon rolling_max prevalence
if ( $p.graph.entity.domain.prevalence.rolling_max = 3, 50) +
if ( $p.graph.entity.domain.prevalence.rolling_max = 2, 70) +
if ( $p.graph.entity.domain.prevalence.rolling_max = 1, 90)
)
condition:
$e and $p and $i
}
שימוש בזמן הראשון שבו נצפה ישות בכלל
אתם יכולים לכתוב כללים שכוללים את השדות first_seen_time או last_seen_time מרשומות של ישויות.
השדות first_seen_time ו-last_seen_time מאוכלסים בישויות שמתארות דומיין, כתובת IP וקובץ (גיבוב). במקרה של ישויות שמתארות משתמש או נכס, רק השדה first_seen_time מאוכלס. הערכים האלה לא מחושבים לישויות שמתארות סוגים אחרים, כמו קבוצה או משאב.
רשימת השדות ב-UDM שאוכלסו מופיעה במאמר חישוב הזמן שבו ישויות נראו בפעם הראשונה והזמן שבו הן נראו בפעם האחרונה.
הנה דוגמה שמראה איך להשתמש ב-first_seen_time בכלל:
rule first_seen_data_exfil {
meta:
author = "Google Security Operations"
description = "Example usage first_seen data"
severity = "LOW"
events:
$first_access.metadata.event_type = "NETWORK_HTTP"
$ip = $first_access.principal.ip
// Join first_access event with entity graph to use first/last seen data.
$ip = $first_last_seen.graph.entity.ip
$first_last_seen.graph.metadata.entity_type = "IP_ADDRESS"
// Check that the first_access UDM event is the first_seen occurrence in the enterprise.
$first_last_seen.graph.entity.artifact.first_seen_time.seconds = $first_access.metadata.event_timestamp.seconds
$first_last_seen.graph.entity.artifact.first_seen_time.nanos = $first_access.metadata.event_timestamp.nanos
// Check for another access event that appears shortly after the first_seen event,
// where lots of data is being sent.
$next_access_data_exfil.metadata.event_type = "NETWORK_CONNECTION"
// Next access event goes to the same IP as the first.
$next_access_data_exfil.principal.ip = $ip
// Next access occurs within 60 seconds after first access.
$next_access_data_exfil.metadata.event_timestamp.seconds > $first_access.metadata.event_timestamp.seconds
60 > $next_access_data_exfil.metadata.event_timestamp.seconds - $first_access.metadata.event_timestamp.seconds
// Lots of data is being sent over the next access event.
$next_access_data_exfil.network.sent_bytes > 10 * 1024 * 1024 * 1024 // 10GB
// Extract hostname of next access event, for match section.
$hostname = $next_access_data_exfil.principal.hostname
match:
$hostname over 1h
condition:
$first_access and $next_access_data_exfil and $first_last_seen
}
שימוש בשדות עם נתוני מיקום גיאוגרפי בכללים
אפשר להשתמש בכללים של מנוע הזיהוי בשדות UDM שמאחסנים נתונים עם מיקום גיאוגרפי. רשימת השדות ב-UDM שאוכלסו מופיעה במאמר בנושא הוספת נתונים של מיקום גיאוגרפי לאירועים.
הדוגמה הבאה ממחישה איך לזהות אם יש אימות של ישות משתמש ממספר מדינות שונות.
rule geoip_user_login_multiple_states_within_1d {
meta:
author = "Google Security Operations"
description = "Detect multiple authentication attempts from multiple distinct locations using geolocation-enriched UDM fields."
severity = "INFORMATIONAL"
events:
$geoip.metadata.event_type = "USER_LOGIN"
(
$geoip.metadata.vendor_name = "Google Workspace" or
$geoip.metadata.vendor_name = "Google Cloud Platform"
)
/* optionally, detect distinct locations at a country */
(
$geoip.principal.ip_geo_artifact.location.country_or_region != "" and
$geoip.principal.ip_geo_artifact.location.country_or_region = $country
)
(
$geoip.principal.ip_geo_artifact.location.state != "" and
$geoip.principal.ip_geo_artifact.location.state = $state
)
$geoip.target.user.email_addresses = $user
match:
$user over 1d
condition:
$geoip and #state > 1
}
שימוש בשדות מועשרים של גלישה בטוחה בכללים
Google SecOps קולט נתונים מרשימות איומים שקשורות לגיבוב קבצים. המידע המועשר הזה מאוחסן כיישות ב-Google SecOps.
רשימת השדות ב-UDM שאוכלסו מופיעה במאמר בנושא העשרת ישויות במידע מרשימות האיומים של הגלישה הבטוחה.
אתם יכולים ליצור כללים במנוע הזיהוי כדי לזהות התאמות לישויות שנקלטו מ'גלישה בטוחה'. בהמשך מופיעה דוגמה לכלל במנוע הזיהוי שמבצע שאילתה על המידע המועשר הזה כדי ליצור ניתוח מודע-הקשר.
rule safe_browsing_file_execution {
meta:
author = "Google Security Operations"
description = "Example usage of Safe Browsing data, to detect execution of a file that's been deemed malicious"
severity = "LOW"
events:
// find a process launch event, match on hostname
$execution.metadata.event_type = "PROCESS_LAUNCH"
$execution.principal.hostname = $hostname
// join execution event with Safe Browsing graph
$sb.graph.entity.file.sha256 = $execution.target.process.file.sha256
// look for files deemed malicious
$sb.graph.metadata.entity_type = "FILE"
$sb.graph.metadata.threat.severity = "CRITICAL"
$sb.graph.metadata.product_name = "Google Safe Browsing"
$sb.graph.metadata.source_type = "GLOBAL_CONTEXT"
match:
$hostname over 1h
condition:
$execution and $sb
}
שימוש בשדות מועשרים של WHOIS בכלל
אפשר לכתוב כללים שמחפשים שדות מועשרים של WHOIS בישויות שמייצגות דומיין. הישויות האלה כוללות את השדה entity.metadata.entity_type עם הערך DOMAIN_NAME. רשימת השדות ב-UDM שאוכלסו מופיעה במאמר העשרת ישויות בנתוני WHOIS.
בדוגמה הבאה מוצגת כלל שמראה איך עושים את זה. הכלל הזה כולל את שדות הסינון הבאים בקטע events כדי לעזור לכם לשפר את הביצועים של הכלל.
$whois.graph.metadata.entity_type = "DOMAIN_NAME"
$whois.graph.metadata.product_name = "WHOISXMLAPI Simple Whois"
$whois.graph.metadata.vendor_name = "WHOIS"
rule whois_expired_domain_executable_download {
meta:
author = "Google Security Operations"
description = "Example usage of WHOIS data, detecting an executable file download from a domain that's recently expired"
severity = "LOW"
events:
$access.metadata.event_type = "NETWORK_HTTP"
$hostname = $access.principal.hostname
// join access event to entity graph to use WHOIS data
$whois.graph.entity.domain.name = $access.target.hostname
// use WHOIS data to look for expired domains
$whois.graph.metadata.entity_type = "DOMAIN_NAME"
$whois.graph.metadata.product_name = "WHOISXMLAPI Simple Whois"
$whois.graph.metadata.vendor_name = "WHOIS"
$whois.graph.entity.domain.expiration_time.seconds < $access.metadata.event_timestamp.seconds
// join access event with executable file creation event by principal hostname
$creation.principal.hostname = $access.principal.hostname
$creation.metadata.event_type = "FILE_CREATION"
$creation.target.file.full_path = /exe/ nocase
// file creation comes after expired domain access
$creation.metadata.event_timestamp.seconds >
$access.metadata.event_timestamp.seconds
match:
$hostname over 1h
condition:
$access and $whois and $creation
}
שליחת שאילתות לנתוני Google Cloud Threat Intelligence
Google SecOps קולטת נתונים ממקורות נתונים של Google Cloud Threat Intelligence (GCTI) שמספקים לכם מידע הקשרי שתוכלו להשתמש בו כשאתם חוקרים פעילות בסביבה שלכם. אפשר לשלוח שאילתות למקורות הנתונים הבאים:
- GCTI Tor Exit Nodes
- GCTI Benign Binaries
- כלים לגישה מרחוק ל-GCTI
תיאור של פידים כאלה של איומים ושל כל השדות שאוכלסו מופיע במאמר בנושא הטמעה ואחסון Google Cloud נתונים של מודיעין איומים.
במסמך הזה, ה-placeholder <variable_name> מייצג את שם המשתנה הייחודי שמשמש בכלל לזיהוי רשומה ב-UDM.
שאילתת כתובות IP של צומתי יציאה של Tor
כלל לדוגמה שמחזיר זיהוי כשNETWORK_CONNECTION
אירוע מכיל כתובת IP שמאוחסנת בשדה target.ip ושנמצאת גם במקור הנתונים Tor Exit Nodes של GCTI. חשוב לוודא שהכלל כולל את השדות <variable_name>.graph.metadata.threat.threat_feed_name, <variable_name>.graph.metadata.vendor_name ו-<variable_name>.graph.metadata.product_name.
זהו מקור נתונים מתוזמן. האירועים יותאמו לתמונת המצב של מקור הנתונים בנקודת הזמן הזו.
rule gcti_tor_exit_nodes {
meta:
author = "Google Cloud Threat Intelligence"
description = "Alert on known Tor exit nodes."
severity = "High"
events:
// Event
$e.metadata.event_type = "NETWORK_CONNECTION"
$e.target.ip = $tor_ip
// Tor IP search in GCTI Feed
$tor.graph.entity.artifact.ip = $tor_ip
$tor.graph.metadata.entity_type = "IP_ADDRESS"
$tor.graph.metadata.threat.threat_feed_name = "Tor Exit Nodes"
$tor.graph.metadata.source_type = "GLOBAL_CONTEXT"
$tor.graph.metadata.vendor_name = "Google Cloud Threat Intelligence"
$tor.graph.metadata.product_name = "GCTI Feed"
match:
$tor_ip over 1h
outcome:
$tor_ips = array_distinct($tor_ip)
$tor_geoip_country = array_distinct($e.target.ip_geo_artifact.location.country_or_region)
$tor_geoip_state = array_distinct($e.target.ip_geo_artifact.location.state)
condition:
$e and $tor
}
שאילתה לקבצים תקינים של מערכת ההפעלה
כלל לדוגמה: שילוב של מקורות הנתונים Benign Binaries ו-Tor Exit Nodes כדי להציג התראה כשקובץ בינארי תמים יוצר קשר עם צומת יציאה של Tor. הכלל מחשב ציון סיכון באמצעות נתוני מיקום גיאוגרפי ש-Google SecOps העשיר באמצעות כתובת ה-IP של היעד. חשוב לוודא שכללתם את <variable_name>.graph.metadata.vendor_name, <variable_name>.graph.metadata.product_name ו-<variable_name>.graph.metadata.threat.threat_feed_name עבור מקורות הנתונים Benign Binaries ו-Tor Exit Nodes בכלל.
זהו מקור נתונים נצחי. האירועים תמיד יתאימו לתמונת המצב האחרונה של מקור הנתונים, בלי קשר לזמן.
rule gcti_benign_binaries_contacts_tor_exit_node {
meta:
author = "Google Cloud Threat Intelligence"
description = "Alert on Benign Binary contacting a Tor IP address."
severity = "High"
events:
// Event
$e.metadata.event_type = "NETWORK_CONNECTION"
$e.principal.process.file.sha256 = $benign_hash
$e.target.ip = $ip
$e.principal.hostname = $hostname
// Benign File search in GCTI Feed
$benign.graph.entity.file.sha256 = $benign_hash
$benign.graph.metadata.entity_type = "FILE"
$benign.graph.metadata.threat.threat_feed_name = "Benign Binaries"
$benign.graph.metadata.source_type = "GLOBAL_CONTEXT"
$benign.graph.metadata.vendor_name = "Google Cloud Threat Intelligence"
$benign.graph.metadata.product_name = "GCTI Feed"
// Tor IP search in GCTI Feed
$tor.graph.entity.artifact.ip = $ip
$tor.graph.metadata.entity_type = "IP_ADDRESS"
$tor.graph.metadata.threat.threat_feed_name = "Tor Exit Nodes"
$tor.graph.metadata.source_type = "GLOBAL_CONTEXT"
$tor.graph.metadata.vendor_name = "Google Cloud Threat Intelligence"
$tor.graph.metadata.product_name = "GCTI Feed"
match:
$hostname over 1h
outcome:
$risk_score = max(
if($tor.graph.metadata.threat.confidence = "HIGH_CONFIDENCE", 70) +
// Unauthorized target geographies
if($e.target.ip_geo_artifact.location.country_or_region = "Cuba", 20) +
if($e.target.ip_geo_artifact.location.country_or_region = "Iran", 20) +
if($e.target.ip_geo_artifact.location.country_or_region = "North Korea", 20) +
if($e.target.ip_geo_artifact.location.country_or_region = "Russia", 20) +
if($e.target.ip_geo_artifact.location.country_or_region = "Syria", 20)
)
$benign_hashes = array_distinct($benign_hash)
$benign_files = array_distinct($e.principal.process.file.full_path)
$tor_ips = array_distinct($ip)
$tor_geoip_country = array_distinct($e.target.ip_geo_artifact.location.country_or_region)
$tor_geoip_state = array_distinct($e.target.ip_geo_artifact.location.state)
condition:
$e and $benign and $tor
}
שאילתת נתונים לגבי כלים לגישה מרחוק
כלל לדוגמה שמחזיר זיהוי כשסוג האירוע PROCESS_LAUNCH מכיל גיבוב שנמצא גם במקור הנתונים של Google Cloud Threat Intelligence Remote Access Tools.
זהו מקור נתונים נצחי. האירועים תמיד יתאימו לתמונת המצב האחרונה של מקור הנתונים, בלי קשר לזמן.
rule gcti_remote_access_tools {
meta:
author = "Google Cloud Threat Intelligence"
description = "Alert on Remote Access Tools."
severity = "High"
events:
// find a process launch event
$e.metadata.event_type = "PROCESS_LAUNCH"
$e.target.process.file.sha256 != ""
$rat_hash = $e.target.process.file.sha256
// join graph and event hashes
$gcti.graph.entity.file.sha256 = $rat_hash
// look for files identified as likely remote access tools
$gcti.graph.metadata.entity_type = "FILE"
$gcti.graph.metadata.vendor_name = "Google Cloud Threat Intelligence"
$gcti.graph.metadata.product_name = "GCTI Feed"
$gcti.graph.metadata.threat.threat_feed_name = "Remote Access Tools"
match:
$rat_hash over 5m
outcome:
$remote_hash = array_distinct($e.target.process.file.sha256)
condition:
$e and $gcti
}
שימוש בשדות מטא-נתונים מועשרים של VirusTotal בכללים
הכלל הבא מזהה יצירת קובץ או הפעלה של תהליך של קובץ מסוג מסוים, ומציין שחלק מהגיבובים ברשימת המעקב נמצאים במערכת. ציון הסיכון מוגדר כשהקבצים מתויגים כ-exploit באמצעות העשרה של מטא-נתוני קבצים ב-VirusTotal.
רשימה של כל השדות של UDM שאוכלסו מופיעה במאמר העשרת אירועים במטא-נתונים של קבצים מ-VirusTotal.
rule vt_filemetadata_hash_match_ioc {
meta:
author = "Google Cloud Threat Intelligence"
description = "Detect file/process events that indicate watchlisted hashes are on a system"
severity = "High"
events:
// Process launch or file creation events
$process.metadata.event_type = "PROCESS_LAUNCH" or $process.metadata.event_type ="FILE_CREATION"
$process.principal.hostname = $hostname
$process.target.file.sha256 != ""
$process.target.file.sha256 = $sha256
$process.target.file.file_type = "FILE_TYPE_DOCX"
// IOC matching
$ioc.graph.metadata.product_name = "MISP"
$ioc.graph.metadata.entity_type = "FILE"
$ioc.graph.metadata.source_type = "ENTITY_CONTEXT"
$ioc.graph.entity.file.sha256 = $sha256
match:
$hostname over 15m
outcome:
$risk_score = max(
// Tag enrichment from VirusTotal file metadata
if($process.target.file.tags = "exploit", 90)
)
$file_sha256 = array($process.target.file.sha256)
$host = array($process.principal.hostname)
condition:
$process and $ioc
}
שימוש בנתוני קשרים מ-VirusTotal בכללים
Google SecOps קולט נתונים מחיבורים שקשורים ל-VirusTotal. הנתונים האלה מספקים מידע על הקשר בין גיבובי קבצים לבין קבצים, דומיינים, כתובות IP וכתובות URL. המידע המועשר הזה מאוחסן כיישות ב-Google SecOps.
אתם יכולים ליצור כללים במנגנון הזיהוי כדי לזהות התאמות לישויות שנקלטו מ-VirusTotal. הכלל הבא שולח התראה על הורדה של גיבוב קבצים ידוע מכתובת IP ידועה עם קשרים ב-VirusTotal. ציון הסיכון מבוסס על סוג הקובץ והתגים מתוך המטא-נתונים של הקובץ ב-VirusTotal.
הנתונים האלה זמינים רק ברישיונות מסוימים של VirusTotal ו-Google SecOps. כדי לבדוק את ההרשאות שלכם, אפשר לפנות לנציג של חשבון Google. רשימה של כל השדות של UDM שאוכלסו מופיעה במאמר העשרת ישויות בנתוני קשר של VirusTotal.
rule virustotal_file_downloaded_from_url {
meta:
author = "Google Cloud Threat Intelligence"
description = "Alerts on downloading a known file hash from a known IP with VirusTotal relationships. The risk score is based on file type and tags from VirusTotal file metadata."
severity = "High"
events:
// Filter network HTTP events
$e1.metadata.event_type = "NETWORK_HTTP"
$e1.principal.user.userid = $userid
$e1.target.url = $url
// Filter file creation events
$e2.metadata.event_type = "FILE_CREATION"
$e2.target.user.userid = $userid
$e2.target.file.sha256 = $file_hash
// The file creation event timestamp should be equal or greater than the network http event timestamp
$e1.metadata.event_timestamp.seconds <= $e2.metadata.event_timestamp.seconds
// Join event file hash with VirusTotal relationships entity graph
$vt.graph.metadata.entity_type = "FILE"
$vt.graph.metadata.source_type = "GLOBAL_CONTEXT"
$vt.graph.metadata.vendor_name = "VirusTotal"
$vt.graph.metadata.product_name = "VirusTotal Relationships"
$vt.graph.entity.file.sha256 = $file_hash
// Join network HTTP target URL with VirusTotal relationships entity graph
$vt.graph.relations.entity_type = "URL"
$vt.graph.relations.relationship = "DOWNLOADED_FROM"
$vt.graph.relations.entity.url = $url
match:
$userid over 1m
outcome:
$risk_score = max(
// Tag enrichment from VirusTotal file metadata
if($e2.target.file.tags = "via-tor" or $e2.target.file.tags = "malware" or $e2.target.file.tags = "crypto", 50) +
// File types enrichment from VirusTotal file metadata
if($e2.target.file.file_type = "FILE_TYPE_HTML", 5) +
if($e2.target.file.file_type = "FILE_TYPE_ELF", 10) +
if($e2.target.file.file_type = "FILE_TYPE_PE_DLL",15) +
if($e2.target.file.file_type = "FILE_TYPE_PE_EXE", 20)
)
condition:
$e1 and $e2 and $vt and $risk_score >= 50
}
מודל עקביות הדרגתי
כללים שתלויים בהעשרה מסתמכים על עיבוד של נתונים נוספים לפני שניתן להעריך כלל באופן מלא. עם הזמן, תהליך ההעשרה מסתיים והכלל מוערך מחדש עם הנתונים המדויקים והעדכניים ביותר. התהליך הזה של עקביות סופית הוא צפוי, והוא אומר שלמרות שאולי יהיו אי-התאמות ראשוניות, המערכת מבטיחה שכל האירועים יועשרו בסופו של דבר באופן מלא, והכללים יוערכו בצורה מדויקת. איך Google SecOps מעשיר את הנתונים של אירועים וישויות
המאמרים הבאים
במאמרים הבאים מוסבר איך להשתמש בנתונים מועשרים עם תכונות אחרות של Google SecOps:
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.