איסוף יומני מערכת של Epic Systems
גרסת המנתח: 4.0
במאמר הזה מוסבר איך להטמיע יומני מערכת של Epic Systems ב-Google Security Operations באמצעות סוכן Bindplane.
Epic Systems היא פלטפורמה של תיקים רפואיים ממוחשבים (EHR) שיוצרת הודעות syslog בפורמט CEF לאירועי ביקורת, התחברות/התנתקות של משתמשים, גישה של מטופלים ופעולות על קבצים. המנתח מחלץ צמדי מפתח/ערך וממפה אותם למודל הנתונים המאוחד (UDM).
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
מכונה של Google SecOps
Windows Server 2016 ואילך, או מארח Linux עם
systemdקישוריות רשת בין סוכן Bindplane לבין שרת Epic Systems
אם אתם משתמשים בשרת proxy, ודאו שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
גישה מיוחדת ל-Epic Systems
קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane
כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים באחת מהשיטות הבאות:
- פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
- פריסות קודמות: ממשיכים להשתמש בקובץ האימות להטמעת נתונים (אפשרות 2) עד שה-Ingestion API יופסק ב-20 ביולי 2027.
אפשרות 1: יצירת חשבון שירות ל-Chronicle API (מומלץ)
- נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
- נכנסים לדף IAM & Admin > Service Accounts.
- לוחצים על Create service account.
- מזינים את פרטי ההגדרה הבאים:
- Service account name: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - Service account description: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- Service account name: מזינים שם לחשבון (לדוגמה,
- לוחצים על Create and continue.
- בקטע Grant this service account access to project, לוחצים על Select a role ובוחרים באפשרות Chronicle Editor.
- לוחצים על המשך ואז על סיום.
- לוחצים על חשבון השירות שיצרתם ועוברים לכרטיסייה Keys.
- לוחצים על Add key > Create new key.
- בוחרים באפשרות JSON ולוחצים על Create. קובץ המפתח יורד למחשב.
- שומרים את קובץ המפתח בתור
ingestion-auth.jsonבספריית Bindplane collector (/opt/observiq-otel-collector/ingestion-auth.jsonב-Linux אוC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonב-Windows), או מעדכנים אתcreds_file_pathב-config.yamlכך שיתאים לנתיב שבו שמרתם אותו. - עוברים אל IAM & Admin > Settings ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את הייצוא.
אפשרות 2: הורדה של קובץ האימות להטמעת נתונים (גרסה קודמת)
- נכנסים למסוף Google SecOps.
- עוברים אל הגדרות > ניהול נתונים > סוכני איסוף. אם אתם משתמשים בפלטפורמת SIEM בלבד, עוברים אל הגדרות > סוכני איסוף.
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.
איך מקבלים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל הגדרות > ניהול > פרופיל. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פרופיל.
מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת הסוכן של Bindplane
מתקינים את הסוכן של Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנת חלונות
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietמחכים שההתקנה תסתיים.
כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:
sc query observiq-otel-collectorהשירות אמור להופיע כ-RUNNING.
התקנה ב-Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shמחכים שההתקנה תסתיים.
כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:
sudo systemctl status observiq-otel-collectorהשירות אמור להופיע כפעיל (פועל).
מקורות מידע נוספים בנושא התקנה
לאפשרויות התקנה נוספות ולפתרון בעיות, עיינו במדריך להתקנת סוכן Bindplane.
הגדרת סוכן Bindplane להטמעת syslog ושליחה אל Google SecOps
מאתרים את קובץ התצורה
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
עריכת קובץ התצורה
מחליפים את כל התוכן של
config.yamlבהגדרות הבאות:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/epic: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: chronicle.googleapis.com log_type: EPIC raw_log_field: body service: pipelines: logs/epic_to_chronicle: receivers: - udplog exporters: - chronicle/epic
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת המקלט:
-
listen_address: כתובת ה-IP והיציאה להאזנה:-
0.0.0.0כדי להאזין בכל הממשקים (מומלץ) - יציאה
514היא יציאת syslog הרגילה (נדרש root ב-Linux; צריך להשתמש ב-1514ללא root)
-
-
הגדרת הייצוא:
-
creds_file_path: הנתיב המלא לקובץ המפתח של חשבון השירות בפורמט JSON (אפשרות 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
-
customer_id: מספר הלקוח שהועתק ממסוף Google SecOps -
location: מחליפים את<LOCATION>באזור של המכונה של Google SecOps (לדוגמה,us,europeאוasia-southeast1). המייצא מוסיף את הערך הזה בתחילתchronicle.googleapis.com. לרשימה המלאה, ראו נקודות קצה אזוריות. -
project: מחליפים את<PROJECT_NUMBER>במספר הפרויקט שמופיע בקטע IAM & Admin > Settings. -
endpoint: משאירים את הערךchronicle.googleapis.com.
-
מייצא API להטמעה מדור קודם
אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק
exportersבקוד הבא. מגדירים אתcreds_file_pathלנתיב של קובץ האימות להטמעת נתונים. אם המכונה נמצאת מחוץ לארה"ב, מחליפים אתmalachiteingestion-pa.googleapis.comבנקודת הקצה האזורית (לדוגמה,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/epic: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: EPIC raw_log_field: body
שמירת קובץ התצורה
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- Linux: לוחצים על
Ctrl+O, אחר כך עלEnterואז עלCtrl+X - Windows: לוחצים על קובץ > שמירה
- Linux: לוחצים על
מפעילים מחדש את הסוכן של Bindplane כדי להחיל את השינויים.
כדי להפעיל מחדש את הסוכן של Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart observiq-otel-collectorמוודאים שהשירות פועל:
sudo systemctl status observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
sudo journalctl -u observiq-otel-collector -f
כדי להפעיל מחדש את הסוכן של Bindplane ב-Windows, בוחרים באחת מהאפשרויות הבאות:
שורת הפקודה או PowerShell כאדמין:
net stop observiq-otel-collector && net start observiq-otel-collectorמסוף השירותים:
- לוחצים על
Win+R, מקלידיםservices.mscולוחצים על Enter. - מאתרים את observIQ OpenTelemetry Collector.
- לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
מוודאים שהשירות פועל:
sc query observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- לוחצים על
הגדרת השירות SendSIEMSyslogAudit
- נכנסים למסוף Epic Systems.
- עוברים אל Start > Epic > Interconnect >
<your instance>> Configuration editor. - בוחרים בטופס שירותים עסקיים.
- בכרטיסייה קטגוריית שירות, בוחרים באפשרות SendSIEMSyslogAudit.
- לוחצים על Save.
הגדרת Epic Systems לייצוא של syslog
- עוברים אל Epic system definitions > Security > Auditing options > SIEM syslog settings.
- מזינים את פרטי ההגדרה הבאים:
- Host: מזינים את כתובת ה-IP של סוכן Bindplane.
- יציאה: מזינים את מספר היציאה של סוכן Bindplane.
- פורמט SIEM: בוחרים באפשרות CEF (פורמט אירועים נפוץ).
- תו סיום של Syslog: בוחרים באפשרות שורה חדשה "\n".
- בתפריט הגדרות של יומן מערכת SIEM, בוחרים באפשרות יומן מערכת SIEM.
- לוחצים על מופעל.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | Logic (פונקציה לוגית) |
|---|---|---|
| APIID | read_only_udm.additional.fields.api.value.string_value | הערך נלקח מהשדה APIID ביומן הגולמי |
| APPLICATIONID | read_only_udm.additional.fields.application_id.value.string_value | הערך נלקח מהשדה APPLICATIONID ביומן הגולמי |
| תוכנית ההגנה המתקדמת (APP) | read_only_udm.target.application | הערך נלקח מהשדה APP ביומן הגולמי |
| סשן ביקורת | read_only_udm.network.session_id | הערך נלקח מהשדה AUDIT SESSION ביומן הגולמי |
| AUTH_SOURCE | השדה הזה לא ממופה ל-UDM | |
| BCAPCS | read_only_udm.target.application | הערך נלקח מהשדה BCAPCS ביומן הגולמי |
| BTGEXPLANATION | read_only_udm.security_result.description | הערך נלקח מהשדה BTGEXPLANATION ביומן הגולמי |
| BTGNOACCESSREAS | read_only_udm.security_result.summary | הערך נלקח מהשדה BTGNOACCESSREAS ביומן הגולמי |
| BTGREASON | read_only_udm.security_result.summary | הערך נלקח מהשדה BTGREASON ביומן הגולמי |
| CLIENTNAME | read_only_udm.principal.hostname | הערך נלקח מהשדה CLIENTNAME ביומן הגולמי |
| CSISESS_TOKEN | read_only_udm.network.session_id | הערך נלקח מהשדה CSISESS_TOKEN ביומן הגולמי |
| CTXT | read_only_udm.metadata.description | הערך נלקח מהשדה CTXT ביומן הגולמי |
| CVG | read_only_udm.additional.fields.cvg.value.string_value | הערך נלקח מהשדה CVG ביומן הגולמי |
| DAT | השדה הזה לא ממופה ל-UDM | |
| DEP | read_only_udm.principal.user.department | הערך נלקח מהשדה DEP ביומן הגולמי. אם השדות NEWDEPARTMENT ו-PREVDEPARTMENT קיימים ביומן הגולמי, הערך יהיה PREVDEPARTMENT:-{PREVDEPARTMENT}, NEWDEPARTMENT:-{NEWDEPARTMENT}. אם רק NEWDEPARTMENT קיים, הערך יהיה PREVDEPARTMENT:-NONE, NEWDEPARTMENT:{NEWDEPARTMENT}. אם רק PREVDEPARTMENT קיים, הערך יהיה PREVDEPARTMENT:{PREVDEPARTMENT}, NEWDEPARTMENT:-NONE |
| devTime | read_only_udm.metadata.event_timestamp | הערך נלקח מהשדה devTime ביומן הגולמי ומומר לשניות מאז תחילת התקופה |
| devTimeFormat | השדה הזה לא ממופה ל-UDM | |
| E3MID | read_only_udm.network.session_id | הערך נלקח מהשדה E3MID ביומן הגולמי |
| מוצפן | read_only_udm.additional.fields.encrypt.value.string_value | הערך נלקח מהשדה ENCRYPTED ביומן הגולמי |
| ERRMSG | read_only_udm.security_result.summary | הערך נלקח מהשדה ERRMSG ביומן הגולמי |
| eventCnt | השדה הזה לא ממופה ל-UDM | |
| FILENAME | read_only_udm.target.file.full_path | הערך נלקח מהשדה FILENAME ביומן הגולמי וכל המופעים של \\\\ מוחלפים ב-\ |
| אפשרות בשורת הפקודה (flag) | read_only_udm.security_result.description | הערך נלקח משדה הדגל ביומן הגולמי וכל התווים - בתחילת הערך ובסופו מוסרים |
| HKUAPVER | read_only_udm.metadata.product_version | הערך נלקח מהשדה HKUAPVER ביומן הגולמי |
| HKUDVCID | read_only_udm.principal.asset_id | הערך נלקח מהשדה HKUDVCID ביומן הגולמי ומעוצב כ-Device ID:{HKUDVCID} |
| HKUOSNAM | read_only_udm.principal.platform | הערך נלקח מהשדה HKUOSNAM ביומן הגולמי וממופה אל WINDOWS, MAC, LINUX או UNKNOWN_PLATFORM על סמך הערך |
| HKUOSVER | read_only_udm.principal.platform_version | הערך נלקח מהשדה HKUOSVER ביומן הגולמי |
| INSTANCEURN | read_only_udm.intermediary.hostname | הערך נלקח מהשדה INSTANCEURN ביומן הגולמי |
| קניין רוחני (IP) | read_only_udm.target.ip | הערך נלקח מהשדה IP ביומן הגולמי. אם הערך מכיל /, הוא מפוצל לשתי כתובות IP. אם הערך מכיל ,, הוא מפוצל לכמה כתובות IP. |
| LOGINERROR | read_only_udm.security_result.summary | הערך נלקח מהשדה LOGINERROR ביומן הגולמי |
| LOGIN_CONTEXT | read_only_udm.metadata.description | הערך נלקח מהשדה LOGIN_CONTEXT ביומן הגולמי |
| LOGIN_DEVICE | read_only_udm.additional.fields.login_device.value.string_value | הערך נלקח מהשדה LOGIN_DEVICE ביומן הגולמי |
| LOGIN_LDAP_ID | read_only_udm.principal.user.userid | הערך נלקח מהשדה LOGIN_LDAP_ID ביומן הגולמי |
| LOGIN_REASON | read_only_udm.security_result.summary | הערך נלקח מהשדה LOGIN_REASON ביומן הגולמי |
| LOGIN_REVAL | read_only_udm.additional.fields.login_reval.value.string_value | הערך נלקח מהשדה LOGIN_REVAL ביומן הגולמי |
| MASKMODE | read_only_udm.additional.fields.masked_mode.value.string_value | הערך נלקח מהשדה MASKMODE ביומן הגולמי |
| MYCACCT | read_only_udm.principal.user.userid | הערך נלקח מהשדה MYCACCT ביומן הגולמי |
| NEWDEPARTMENT | read_only_udm.principal.user.department | הצגת הלוגיקה של שדה ה-DEP |
| NEWUSER | השדה הזה לא ממופה ל-UDM | |
| NSC | read_only_udm.additional.fields.nsc.value.string_value | הערך נלקח מהשדה NSC ביומן הגולמי |
| OSUSR | read_only_udm.target.user.userid | הערך נלקח מהשדה OSUSR ביומן הגולמי |
| מטופל/ת | read_only_udm.target.user.userid | הערך נלקח מהשדה PATIENT ביומן הגולמי |
| PREVDEPARTMENT | read_only_udm.principal.user.department | הצגת הלוגיקה של שדה ה-DEP |
| PREVPROVIDER | השדה הזה לא ממופה ל-UDM | |
| PREVUSER | read_only_udm.principal.resource.attribute.labels.prev_user.value | הערך נלקח מהשדה PREVUSER ביומן הגולמי |
| PWREASON | read_only_udm.metadata.description | הערך נלקח מהשדה PWREASON ביומן הגולמי |
| תפקיד | read_only_udm.principal.user.attribute.roles.name | הערך נלקח מהשדה ROLE ביומן הגולמי |
| משאב | read_only_udm.target.hostname | הערך נלקח משדה המשאב ביומן הגולמי |
| SERVICEID | read_only_udm.additional.fields.service_id.value.string_value | הערך נלקח מהשדה SERVICEID ביומן הגולמי |
| SERVICECATEGORY | read_only_udm.additional.fields.service_category.value.string_value | הערך נלקח מהשדה SERVICECATEGORY ביומן הגולמי |
| SERVICEMSGID | השדה הזה לא ממופה ל-UDM | |
| SERVICENAME | read_only_udm.target.resource.name | הערך נלקח מהשדה SERVICENAME ביומן הגולמי |
| SERVICETYPE | read_only_udm.target.resource.type | הערך נלקח מהשדה SERVICETYPE ביומן הגולמי. אם הערך של event_id הוא PHI_CLIENT_FILE, הערך מוגדר כ-FILE |
| SERVICE_USER | read_only_udm.target.user.userid | הערך נלקח מהשדה SERVICE_USER ביומן הגולמי |
| SERVICE_USERTYP | read_only_udm.additional.fields.service_user_type.value.string_value | הערך נלקח מהשדה SERVICE_USERTYP ביומן הגולמי |
| sev | read_only_udm.security_result.severity | הערך נלקח מהשדה sev ביומן הגולמי וממופה ל-LOW, ל-HIGH או ל-CRITICAL על סמך הערך |
| shost | read_only_udm.target.resource.attribute.labels.workstation_type.value | הערך נלקח מהשדה shost ביומן הגולמי |
| מקור | read_only_udm.additional.fields.login_source.value.string_value | הערך נלקח מהשדה SOURCE ביומן הגולמי |
| בוצע בהצלחה | read_only_udm.additional.fields.success_yes_no.value.string_value | הערך נלקח מהשדה SUCCESS ביומן הגולמי |
| פסק זמן | read_only_udm.additional.fields.time_out.value.string_value | הערך נלקח מהשדה TIMEOUT ביומן הגולמי |
| UID | read_only_udm.principal.user.userid | הערך נלקח מהשדה UID ביומן הגולמי |
| USERJOB | השדה הזה לא ממופה ל-UDM | |
| usrName | read_only_udm.principal.user.userid, read_only_udm.principal.user.user_display_name | אם השדות UID או LOGIN_LDAP_ID קיימים ביומן הגולמי, usrName משמש ל-read_only_udm.principal.user.user_display_name והשדה השני משמש ל-read_only_udm.principal.user.userid. אחרת, המערכת משתמשת ב-usrName בשביל read_only_udm.principal.user.userid |
| WEBLGAPP | read_only_udm.target.application | הערך נלקח מהשדה WEBLGAPP ביומן הגולמי |
| read_only_udm.extensions.auth.type | הערך מוגדר כ-SSO אם LOGIN_LDAP_ID לא ריק. אחרת, הערך מוגדר כ-AUTHTYPE_UNSPECIFIED. |
|
| read_only_udm.intermediary.ip | הערך הוא כתובת ה-IP של מקור היומן. | |
| read_only_udm.metadata.event_type | הערך מוגדר כ-RESOURCE_READ אם event_id הוא אחד מהערכים IC_SERVICE_AUDIT, AC_BREAK_THE_GLASS_FAILED_ACCESS, AC_BREAK_THE_GLASS_INAPPROPRIATE_ATTEMPT, AC_BREAK_THE_GLASS_ACCESS או MCMEMEDISA, וגם target_ip_set הוא true או שהמשאב לא ריק. הערך מוגדר כ-USER_LOGIN אם event_id הוא אחד מהערכים הבאים: FAILEDLOGIN, LOGIN, ROVER_FAILED_LOGIN, SWITCHUSER, AUTHENTICATION, EW_LOGIN, ROVER_LOGIN, CTO_FAILED_LOGIN, CTO_LOGIN, HKU_FAILED_LOGIN, HKU_LOGIN, WPSEC_SEC_AUTH_OPT_OUT, WPSEC_SEC_AUTH_OPT_IN, BCA_LOGIN_FAILURE, BCA_LOGIN_SUCCESS, BCA_USER_LOCKED, WPSEC_LOGIN_FAIL או WPSEC_LOGIN_SUCCESS, ולפחות אחד מהערכים הבאים לא ריק: target_ip_set, resource, SERVICENAME, SERVICETYPE או shost. הערך מוגדר כ-USER_CHANGE_PASSWORD אם event_id הוא אחד מהערכים הבאים: E_ADMINPASSWORDCHANGE, E_FAILEDPASSWORDCHANGE, E_SELFPASSWORDCHANGE, WPSEC_USER_PASSWORD_CHANGE_FAIL או WPSEC_USER_PASSWORD_CHANGE. הערך מוגדר כ-USER_UNCATEGORIZED אם event_id הוא CONTEXTCHANGE. הערך מוגדר כ-USER_RESOURCE_ACCESS אם event_id הוא אחד מהערכים הבאים: SECURE, UNSECURE, MASKED_DATA_DISPLAY או MASKED_DATA_PRINTING. הערך מוגדר כ-USER_RESOURCE_UPDATE_CONTENT אם event_id הוא PHI_CLIENT_FILE. הערך מוגדר כ-STATUS_UPDATE אם CLIENTNAME לא ריק. הערך מוגדר כ-USER_UNCATEGORIZED אם השדה prin_usr_id לא ריק. אחרת, הערך מוגדר כ-GENERIC_EVENT. |
|
| read_only_udm.metadata.log_type | הערך מוגדר כ-EPIC. |
|
| read_only_udm.metadata.product_name | הערך מוגדר כ-Epic Systems. |
|
| read_only_udm.metadata.vendor_name | הערך מוגדר כ-EPIC. |
|
| read_only_udm.network.ip_protocol | הערך נגזר מהשדה proto ביומן הגולמי וממופה לשם המתאים של פרוטוקול ה-IP. | |
| read_only_udm.principal.resource.attribute.labels.workstation_type.key | הערך מוגדר כ-Workstation ID/Type. |
|
| read_only_udm.principal.resource.attribute.labels.prev_user.key | הערך מוגדר כ-Prev User. |
|
| read_only_udm.security_result.action | הערך מוגדר כ-BLOCK אם השדות ERRMSG או LOGINERROR קיימים ביומן הגולמי. |
|
REMOTEIP |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
CLIENTTYPE |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
INTERNETAREA |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
LOGINCLIENTID |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
LOGINCONTEXT |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
PERIMAUTHST |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
HYPACCESSID |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
UNRECDEVICE |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
יומן שינויים
הצגת יומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.