שילוב קובץ CSV עם Google SecOps
במאמר הזה מוסבר איך לשלב CSV עם Google Security Operations.
במאמר הזה מוסבר איך לשלב CSV עם Google Security Operations.
תרחישים לדוגמה
ב-Google SecOps, השילוב של CSV תומך בתרחישי השימוש הבאים:
איתור איומים מבוסס-קובץ: חיפוש מהיר בקובצי יומן CSV מקומיים או מרוחקים של מחרוזות ספציפיות או ישויות זדוניות, כדי לזהות איומים שתועדו בעבר.
יצירת התראות אוטומטית: המערכת קולטת באופן אוטומטי רשומות ממערכות מדור קודם שמפיקות נתונים בפורמט CSV, וממירה אותן להתראות שניתן לפעול לפיהן עם מיפוי חומרת התראות בהתאמה אישית.
ניוד נתונים ודיווח: אפשר להמיר באופן אוטומטי תוצאות JSON מפעולות אחרות ב-Playbook לפורמט CSV, כדי לייצא אותן בקלות לכלי דיווח חיצוניים או לאחסון מקומי.
העשרה אוטומטית של ישויות: אפשר להשתמש בקובצי CSV כמקור מקומי למודיעין איומים כדי להעשיר ישויות באופן אוטומטי ולסמן אותן כחשודות במהלך הפעלת תרחיש שימוש.
סנכרון נתונים בין מערכות שונות: עיבוד יעיל של קבצים עם קידודים שונים של תווים, כמו פורמטים מדור קודם של Excel, כדי להבטיח עקביות של הנתונים בכלים שונים לאבטחה.
לפני שמתחילים
לפני שמגדירים את השילוב ב-Google SecOps, צריך לוודא שיש לכם את הדברים הבאים:
יכולות פלטפורמה פנימיות: השילוב הזה מספק יכולות מובנות לעיבוד קבצים, ולא דורש מפתחות API או פרטי כניסה חיצוניים של צד שלישי לצורך אימות.
הרשאות למערכת הקבצים: אם נעשה שימוש בסוכן מרוחק, השילוב דורש הרשאות ספציפיות כדי לגשת לקבצים במערכת המארחת ולנהל אותם. מריצים את הפקודה הבאה במכונת הסוכן כדי להעניק את ההרשאות הנדרשות לספריית היעד:
chown scripting:scripting "directory_path"
פרמטרים של שילוב
השילוב של CSV מחייב את הפרמטרים הבאים:
| השם המוצג של הפרמטר | סוג | ערך ברירת המחדל | חובה | תיאור |
|---|---|---|---|---|
| שם המכונה | String | לא רלוונטי | לא | השם של המופע שרוצים להגדיר עבורו שילוב. |
| תיאור | String | לא רלוונטי | לא | תיאור המופע. |
| הרצה מרחוק | תיבת סימון | לא מסומן | לא | מסמנים את התיבה כדי להפעיל את השילוב שהוגדר מרחוק. אחרי שמסמנים את התיבה, מופיעה האפשרות לבחור את המשתמש המרוחק (הסוכן). |
הוראות להגדרת שילוב ב-Google SecOps מופיעות במאמר הגדרת שילובים.
במקרה הצורך, אפשר לבצע שינויים בשלב מאוחר יותר. אחרי שמגדירים מופע של שילוב, אפשר להשתמש בו ב-playbooks. מידע נוסף על הגדרה ותמיכה במספר מופעים זמין במאמר תמיכה במספר מופעים.
פעולות
מידע נוסף על פעולות זמין במאמרים איך מגיבים לפעולות שממתינות לאישור ב-Your Workdesk ואיך מבצעים פעולה ידנית.
שמור JSON לקובץ CSV
שמור אובייקט JSON לקובץ CSV.
פרמטרים
| שם הפרמטר | סוג | ערך ברירת המחדל | חובה | תיאור |
|---|---|---|---|---|
| אובייקט JSON | JSON | לא רלוונטי | כן | מציינים את אובייקט ה-JSON שרוצים לשמור כקובץ CSV. |
| החלפה | בוליאני | לא נכון | לא | אם האפשרות הזו מופעלת, הפעולה מחליפה את הקובץ הקיים. |
| נתיב הקובץ | String | לא רלוונטי | כן | מציינת את הנתיב המוחלט לקובץ ה-CSV שנוצר. אם מספקים רק את שם הקובץ, הפעולה שומרת את הקובץ בתיקייה /tmp/. |
ריצה
לא רלוונטי
תוצאות הפעולה
תוצאת הסקריפט
| שם התוצאה של הסקריפט | ערך |
|---|---|
| is_success | נכון/לא נכון |
תוצאה בפורמט JSON
{"filepath": "{file name}"}
Case Wall
הפעולה מספקת את הודעות הפלט הבאות:
| הודעת פלט | תיאור ההודעה |
|---|---|
| אובייקט ה-JSON בוצע בהצלחה ושמור אותו בנתיב הקובץ שסופק. | הפעולה הושלמה בהצלחה. |
| לא נמצא קובץ עבור הנתיב שסופק. | הקובץ אינו קיים. |
| לא נמצאה פעילות עבור חשבונות השירות שסופקו ב Google Cloud מודיעין מדיניות | הפעולה לא הצליחה למצוא נתונים עבור אף אחד מחשבונות השירות המפורטים. |
| שגיאה בביצוע הפעולה "שמירת JSON ל-CSV". | הפעולה החזירה שגיאה. צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה. |
חיפוש לפי מחרוזת
חפש מחרוזות בקבצי CSV.
פרמטרים
| שם הפרמטר | סוג | ערך ברירת המחדל | חובה | תיאור |
|---|---|---|---|---|
| נתיב CSV | String | לא רלוונטי | כן | ציין את נתיב הקובץ לקובץ ה-CSV או נתיב תיקייה המכיל את כל קבצי ה-CSV. אם סופקה תיקייה, הפעולה תתבצע איטרציה על פני כל קבצי ה-CSV בתיקייה. |
| עמודה בקובץ CSV | String | לא רלוונטי | לא | מציינים רשימה מופרדת בפסיקים של עמודות שיכולות להכיל פרטי ישות. אם לא מציינים עמודה, הפעולה תחפש בכל העמודות. |
| ימים אחורה | String | 10 | לא | מציינים כמה ימים אחורה לעבד את קובצי ה-CSV. |
| ערך החיפוש | String | לא רלוונטי | לא | מציינים מחרוזת שצריך לחפש. אם האפשרות 'חיפוש של כמה מחרוזות' מופעלת, הפרמטר הזה מטופל כרשימה של מחרוזות שמופרדות באמצעות פסיקים, שצריך לחפש. |
| החזרת השורה הראשונה בלבד. | תיבת סימון | לא מסומן | לא | אם האפשרות הזו מופעלת, הפעולה תחזיר רק שורה אחת בקובץ הראשון שתואם לישות. |
| סוגי קידוד של קבצים | String | utf-8, latin-1, iso-8859-1 | כן | רשימה של סוגי קידוד CSV מופרדים בפסיקים שמשמשים לפענוח קובצי ה-CSV, למשל utf-8, latin-1, iso-8859-1, utf-16... הסדר שבו מציינים את סוגי הקידוד קובע את הסדר שבו הם ישמשו לפענוח קבצים.לדוגמה (מהדוגמה שלמעלה), ל-utf-8 יש את העדיפות הכי גבוהה והוא ישמש בעיקר לפענוח כל הקבצים. אם יש קובץ CSV שמשתמש בקידוד אחר, המערכת תשתמש בקידוד הבא בסדר: latin-1, וכן הלאה, עד שהיא תשתמש בקידוד האחרון. |
| חיפוש של כמה מחרוזות | תיבת סימון | לא מסומן | לא | אם מופעל, "ערך חיפוש" יפעל כרשימת ערכים מופרדת בפסיקים, במקום כמחרוזת בודדת. |
| שדות להחזרה | CSV | לא רלוונטי | לא | ציין רשימה מופרדת בפסיקים של ערכים שיש להחזיר. |
תרחישים לדוגמה
חפש מחרוזות בקבצי CSV.
ריצה
הפעולה הזו מופעלת על כל הישויות.
תוצאות הפעולה
תוצאת הסקריפט
| שם תוצאת הסקריפט | אפשרויות ערך | דוגמה |
|---|---|---|
| count_rows_csv | כל מספר שורות | ספירת_שורות += 1 |
תוצאה בפורמט JSON
[
{
"EntityResult": {
"Field2": "Value2",
"Field3": "Value3",
"Field1": "Value1",
"Field4": "Value4",
"Field5": "Value5"
},
"Entity": "host"
}, {
"EntityResult": {
"Field2": "Value2",
"Field3": "Value3",
"Field1": "Value1",
"Field4": "Value4",
"Field5": "Value5"
}, "Entity": "1.1.1.1"
}
]
Case Wall
| סוג התוצאה | ערך / תיאור | סוג |
|---|---|---|
| הודעת פלט* | עבור רשומות שנמצאו: "מידע על המחרוזות הבאות נמצא בהצלחה: \n (search_string)" אם לא נמצאו רשומות עבור מחרוזות מסוימות: "הפעולה לא הצליחה למצוא מידע על המחרוזות הבאות:" אם לא נמצאו תוצאות עבור כל הרשומות: "לא נמצא מידע עבור הפריטים שסופקו." אם כל הקידודים לא תקינים: "שגיאה בהפעלת הפעולה 'חיפוש CSV לפי מחרוזת'. הקידודים שצוינו לא תקינים. כדאי לבדוק את האיות". |
כללי |
חיפוש לפי ישות
חיפוש ישויות בקובצי CSV והוספת מידע עליהן.
פרמטרים
| שם הפרמטר | סוג | ערך ברירת המחדל | חובה | תיאור |
|---|---|---|---|---|
| נתיב CSV | String | לא רלוונטי | כן | ציין את נתיב הקובץ לקובץ ה-CSV או נתיב תיקייה המכיל את כל קבצי ה-CSV. אם סופקה תיקייה, הפעולה תתבצע איטרציה על פני כל קבצי ה-CSV בתיקייה. |
| עמודה בקובץ CSV | String | לא רלוונטי | כן | מציינים רשימה מופרדת בפסיקים של עמודות שיכולות להכיל פרטי ישות. אם לא מציינים עמודה, הפעולה תחפש בכל העמודות. |
| ימים אחורה | String | 10 | כן | מציינים כמה ימים אחורה לעבד את קובצי ה-CSV. |
| סימון כ'חשוד' | תיבת סימון | לא מסומן | לא | אם ההגדרה מופעלת, הפעולה תסמן ישות כחשודה אם היא נמצאה בקובץ. |
| החזרת השורה הראשונה בלבד. | תיבת סימון | לא מסומן | לא | אם האפשרות הזו מופעלת, הפעולה תחזיר רק שורה אחת בקובץ הראשון שתואם לישות. |
| סוגי קידוד של קבצים | String | utf-8, latin-1, iso-8859-1 | כן | רשימה של סוגי קידוד CSV מופרדים בפסיקים שמשמשים לפענוח קובצי ה-CSV, למשל utf-8, latin-1, iso-8859-1, utf-16... הסדר שבו מציינים את סוגי הקידוד קובע את הסדר שבו הם ישמשו לפענוח קבצים.לדוגמה (מהדוגמה שלמעלה), ל-utf-8 יש את העדיפות הכי גבוהה והוא ישמש בעיקר לפענוח כל הקבצים. אם יש קובץ CSV שמשתמש בקידוד אחר, המערכת תשתמש בקידוד הבא בסדר: latin-1, וכן הלאה, עד שהיא תשתמש בקידוד האחרון. |
| העשרת ישויות | תיבת סימון | סימן אישור | לא | אם האפשרות הזו מופעלת, הפעולה תוסיף מידע מקובץ ה-CSV לטבלת ההעשרה של הישות. |
| יצירת תובנה | תיבת סימון | סימן אישור | לא | אם הפעולה מופעלת, היא תיצור תובנה אם נמצאה ישות בקובץ. |
| שדות להחזרה | CSV | לא רלוונטי | לא | ציין רשימה מופרדת בפסיקים של ערכים שיש להחזיר. |
ריצה
הפעולה הזו מופעלת על כל הישויות.
תוצאות הפעולה
תוצאת הסקריפט
| שם תוצאת הסקריפט | אפשרויות ערך | דוגמה |
|---|---|---|
| count_rows_csv | כל מספר שורות | ספירת_שורות += 1 |
תוצאה בפורמט JSON
[
{
"EntityResult": [{
"domain": "example.dom",
"fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
"reporter": "Symantec Antivirus",
"app": "Arcsight",
"id": "1011",
"eventTime": "9/4/2017 10:00",
"antivirusAction": "blocked",
"virusName": "ECAT",
"rule": "malicious",
"eventName": "Virus detected",
"User": "Ziv",
"eventHostName": "WS-ZivDevComp",
"File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
"machineAddress": "192.168.11.11"
}, {
"domain": "SmartCompany.dom",
"fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
"reporter": "Symantec Antivirus",
"app": "ESM",
"id": "1012",
"eventTime": "9/4/2017 10:00",
"antivirusAction": "allowed",
"virusName": "ECAT",
"rule": "malicious",
"eventName": "Virus detected",
"User": "GG",
"eventHostName": "WS-GGDevComp",
"File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
"machineAddress": "192.168.11.11"
}],
"Entity": "192.168.11.11"
}
]
Case Wall
| סוג התוצאה | ערך / תיאור | סוג |
|---|---|---|
| הודעת פלט* | עבור ישויות שנמצאו: "מידע על הישויות הבאות נמצא בהצלחה: \n (entity.identifier)" עבור ישויות שלא נמצאו: "לא נמצא מידע על הישויות הבאות: \n (entity.identifier)" אם לא נמצאה הצלחה עבור כל ישות: "לא נמצא מידע עבור הישויות שסופקו." אם כל הקידודים אינם חוקיים: "שגיאה בביצוע הפעולה 'חיפוש CSV לפי מחרוזת'". הקידודים שצוינו לא תקינים. כדאי לבדוק את האיות". |
כללי |
פינג
בדיקת הקישוריות.
פרמטרים
לא רלוונטי
ריצה
הפעולה הזו מופעלת על כל הישויות.
תוצאות הפעולה
תוצאת הסקריפט
לא רלוונטי
תוצאה בפורמט JSON
N/A
מחברים
מחבר CSV
אחזור נתונים מקבצי CSV הממוקמים בתיקייה ספציפית, והמרה של נתונים אלה להתראות במערכת Google SecOps.
נושא זה ממחיש את המנגנון והתצורה שבאמצעותם Google SecOps מייצר קבצי CSV יחד עם זרימות עבודה נתמכות ופעולות שבוצעו בתוך הפלטפורמה.
תרחישים לדוגמה
ללקוח יש קבצי CSV המגיעים ממערכת, והקבצים עשויים להיות מקידודים שונים.
* Add support for comma-separated encodings in the Encoding field in the
connector.
* The connector should try the different encodings by their order in
the field (first encoding - highest priority, last - lowest
priority) with try/except. If no matching encoding was found -
consider the file as an error and notify.
* Put a default value for the fields - a list of most common CSV
encodings by priority (utf8, latin1, and iso...)
גישה לקובצי CSV
גישת Google SecOps לקובצי CSV: מגדירים תיקייה לקובצי ה-CSV.
העברת רשומות CSV אל Google SecOps
עבודה עם רשומות בקובצי CSV
כשמגדירים את Google SecOps לעבודה עם קובצי CSV כמקור התראות, תתבקשו לציין תיקייה ספציפית שממנה יאוחזרו קובצי ה-CSV. Google SecOps יאחזר כל רשומה בקובץ CSV ויעביר אותה לתרגום, ויספק הקשר כהתראות למקרים.
איך ממפים את רמת החומרה במחבר
כדי למפות את רמת החומרה, צריך לציין באיזה שדה להשתמש כדי לקבל את הערך של רמת החומרה בפרמטר Severity Field Name (שם השדה של רמת החומרה). בתגובה אפשר לקבל 3 סוגים של ערכים: מספרים שלמים, מספרים עשרוניים ומחרוזות. למספרים שלמים ולמספרים עשרוניים, לא צריך לבצע הגדרה נוספת. המחבר יקרא את הערכים האלה וימפה אותם בהתאם לתקנים של Google SecOps. תזכורת קצרה לגבי המיפוי של ערכים מספריים שלמים:
- 100 – קריטית
- 100 > x >= 80 גבוה
- 80 > x >=60 בינוני
- 60 > x >=40 Low
- 40 > x מידע בלבד
אם בתגובה אנחנו עובדים עם מחרוזות, נדרש תהליך הגדרה נוסף. בתיקייה שבה נמצאים סקריפטים של המחבר, יהיה קובץ תצורה בשם severity_map_config.json. בקובץ הזה מוגדרים כללי מיפוי לדרגת החומרה.
בתחילה, הקובץ ייראה כך: 1 2 3 { "Default": 50 }
נניח שהערכים הנדרשים נמצאים ב-event.severity. הערכים האפשריים של event.severity הם: Malicious, Benign ו-Unknown.
קודם צריך לציין בפרמטר Severity Field Name (שם שדה חומרת הבעיה) שנשתמש ב-event.severity. בשלב השני, צריך לעדכן את קובץ ההגדרות. אחרי השינויים, הקובץ severity_map_config.json צריך להיראות כך: 1 2 3 4 5 6 7 8 {
"event.severity": { "Malicious": 100, "Unknown": 60, "Benign": -1 }, "Default":
50 }
עכשיו, כשהמחבר יקבל אירוע עם event.severity = "Malicious", הוא יקצה לו חומרה קריטית.
הגדרת מחבר CSV ב-Google SecOps
הוראות מפורטות להגדרת מחבר ב-Google SecOps מופיעות במאמר בנושא הגדרת המחבר.
פרמטרים של מחברים
משתמשים בפרמטרים הבאים כדי להגדיר את המחבר:
| שם הפרמטר | סוג | ערך ברירת המחדל | חובה | תיאור |
|---|---|---|---|---|
| שם שדה המוצר | String | device_product | כן | שם השדה המשמש לקביעת מוצר המכשיר. |
| שם השדה של האירוע | String | name | לא | שם השדה שמשמש לקביעת שם האירוע (סוג משנה). |
| זמן קצוב לתפוגת סקריפט (בשניות) | String | 60 | כן | מגבלת הזמן הקצוב (בשניות) עבור תהליך הפייתון שמריץ את הסקריפט הנוכחי. |
| נתיב תיקיית CSV | String | לא רלוונטי | כן | נתיב התיקייה המכיל את כל קבצי ה-CSV שיש לקלוט. |
| מגבלת CSV | String | לא רלוונטי | לא | כמה קבצי CSV לעבד בכל איטרציה אחת. |
| שם שדה מחולל הכללים | String | לא רלוונטי | לא | שם השדה שמכיל מידע על יוצר הכלל. |
| שם שדה הזמן | String | לא רלוונטי | לא | שם השדה שמכיל מידע על זמן האירוע. |
| לקובץ ה-CSV יש כותרת | תיבת סימון | סימן אישור | כן | מציין אם קובץ ה-CSV כולל כותרת. |
| סוג הקידוד של הקובץ | String | utf-8 | כן | מגדירים את סוג הקידוד של קובץ ה-CSV, למשל iso-8859-1, latin1, utf-8, utf-16. |
| שם שדה ההתראה | String | לא רלוונטי | לא | שם השדה שמכיל מידע על שם ההתראה. |
| שם שדה מידת החומרה | String | לא רלוונטי | לא | שם השדה שמכיל מידע על חומרת הבעיה. |
כללים של מחברים
תמיכה בפרוקסי
המחבר אינו תומך ב-Proxy.
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.