העברה של התראות CBN להתראות YARA-L
במאמר הזה מוסבר איך אפשר להעביר התראות CBN (נירמול מבוסס-הגדרה) להתראות זיהוי של YARA-L. אם אתם אנליסטים בתחום האבטחה, בעזרת המסמך הזה תוכלו להמשיך לקבל התראות על התראות ממערכות של צד שלישי באמצעות הדף התראות ואינדיקטורים של פריצה (IOC).
העברה של התראות CBN למנוע הזיהוי YARA-L
כדי להעביר התראות CBN, אפשר לוודא שהתראות CBN קודמות זמינות כהתראות של כללי זיהוי באמצעות האפשרויות הבאות.
שימוש בחיפוש UDM
באמצעות אפשרות החיפוש של UDM, אפשר להציג אירועים עם alert_state שהוגדר במנתחים:
security_result.alert_state = "ALERTING"
מתוצאות החיפוש ב-UDM, אפשר לבדוק את השדות הבאים כדי להבין אילו מקורות יוצרים התראות CBN בסביבה שלכם:
Metadata>Vendor NameMetadata>Product Name
הורדה של התראות ברירת מחדל לגבי הפרת זכויות יוצרים באמצעות Tools API ובדיקה ידנית
הגישה הקודמת עוזרת לכם למצוא התראות שהופעלו, אבל היא לא מתאימה למקרים שבהם לא ראיתם התראות בעבר.
אפשר להשתמש בשיטת המנתחים backstory.googleapis.com/v1/tools/cbn כדי להוריד את כללי ה-CBN שמוגדרים כברירת מחדל, כללי CBN נבחרים או את כל כללי ה-CBN, ולבדוק באופן ידני את הלוגיקה של המנתח שמוחלת כדי למצוא התראות על is_alert או alert_state.
אתם יכולים להעביר התראות של CBN להתראות של כללי מנוע הזיהוי YARA-L שבהם אתם משתמשים באופן פעיל.
העברת התראות של האנטי-וירוס Windows Defender שהוצגו בעבר ב-Enterprise Insights כהתראות CBN
בדוגמה הבאה אפשר לראות איך מעבירים התראות של האנטי וירוס Windows Defender שהוצגו בעבר ב-Enterprise Insights כהתראות CBN.
אפשר למצוא דוגמה להתראה באמצעות אחת מהשיטות שהוסברו קודם.
באמצעות הכלי Raw Log / UDM Event viewer (צפייה ביומן הגולמי / באירועי UDM), מעתיקים שדות UDM נבחרים שיספקו זיהוי מהימן. מקרה לדוגמה:
metadata.vendor_name = "Microsoft" metadata.product_name = "Windows Defender AV" metadata.product_event_type = "MALWAREPROTECTION_STATE_MALWARE_DETECTED" principal.asset.hostname = "client02.example.local" security_result.action = "BLOCK" security_result.severity = "MEDIUM"יוצרים כלל חדש במנוע הזיהוי YARA-L.
rule windows_defender_av_monitored_events { meta: author = "Chronicle" description = "Migration of CBN alerts to Google SecOps YARA-L detection engine rule alert." // Severity is set at the Outcome level via security_result.severity severity = "INFORMATIONAL" priority = "INFORMATIONAL" events: $windows_defender_av.metadata.vendor_name = "Microsoft" $windows_defender_av.metadata.product_name = "Windows Defender AV" $windows_defender_av.metadata.product_event_type = "MALWAREPROTECTION_STATE_MALWARE_DETECTED" $windows_defender_av.principal.asset.hostname = $host // optionally tune to only detection on ALLOW, i.e., failure to BLOCK //$windows_defender_av.security_result.action = "ALLOW" // optionally tune on severity of detection //$windows_defender_av.security_result.severity != "LOW" outcome: $risk_score = max( if ($windows_defender_av.security_result.severity = "UNKNOWN_SEVERITY", 0) + if ($windows_defender_av.security_result.severity = "LOW", 25) + if ($windows_defender_av.security_result.severity = "MEDIUM", 50) + if ($windows_defender_av.security_result.severity = "HIGH", 75) + if ($windows_defender_av.security_result.severity = "CRITICAL", 100) ) $severity = array_distinct($windows_defender_av.security_result.severity) condition: $windows_defender_av }
נראה שהתראה של CBN משתמשת בשדה שלא עבר ניתוח ל-UDM
אפשר לפתור את הבעיה הזו במהירות באמצעות האפשרות של תוספי ניתוח.
לדוגמה, התראה של Corelight CBN משתמשת בשדה notice ומתריעה רק אם התנאי מתקיים:
if [notice] == "true" {
mutate {
replace => {
"is_significant" => "true"
"is_alert" => "true"
}
}
}
מכיוון שהערך הזה לא מנורמל ל-UDM כברירת מחדל, אפשר להשתמש בתוסף של מנתח Grok באופן הבא כדי להוסיף את הערך הזה כשדה UDM מסוג Additional:
filter {
mutate {
replace => {
"notice" => ""
}
}
grok {
match => { "message" => [ "(?P<message>\{.*\})$" ] }
on_error => "_grok_not_syslog"
overwrite => [ "message" ]
}
json {
on_error => "not_json"
source => "message"
array_function => "split_columns"
}
if ![not_json] {
if [notice] != "" {
mutate {
convert => {
"notice" => "string"
}
}
mutate {
replace => {
"additional_notice.key" => "notice"
"additional_notice.value.string_value" => "%{notice}"
}
}
mutate {
merge => {
"event1.idm.read_only_udm.additional.fields" => "additional_notice"
}
}
mutate {
merge => {
"@output" => "event1"
}
}
}
}
}
אפשר להשתמש בזה אחר כך בכלל של מנוע זיהוי YARA-L באופן הבא, באמצעות הפונקציה Maps:
events:
// Corelight : Weird Log
(
$corelight.metadata.vendor_name = "Corelight" and
$corelight.metadata.product_name = "Zeek" and
// this requires a custom parser extension to extract notice
$corelight.metadata.product_event_type = "weird" and
$corelight.additional.fields["notice"] = "true"
)
כדי לקבל התראות, צריך להפעיל את הכללים שנוצרו. מידע נוסף זמין במאמר בנושא הפעלת כלל על נתונים בזמן אמת.