איסוף יומנים של Tailscale
במאמר הזה מוסבר איך להטמיע יומנים של Tailscale ב-Google Security Operations באמצעות התכונה המובנית של Tailscale להזרמת יומנים של Amazon S3. Tailscale יוצרת נתונים תפעוליים בצורה של יומני ביקורת של הגדרות ויומני זרימת נתונים ברשת. השילוב הזה משתמש ביכולת המובנית של Tailscale להזרמת S3 כדי לשלוח את היומנים האלה באופן אוטומטי ל-Google SecOps לצורך ניתוח ומעקב.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- גישה עם הרשאות למסוף Admin של Tailscale (תפקיד של בעלים, אדמין, אדמין רשת או אדמין IT)
- גישת אדמין ל-AWS (S3, IAM)
איסוף דרישות מוקדמות של Tailscale (מידע על tailnet)
- נכנסים למסוף Admin של Tailscale.
- שימו לב לשם ה-tailnet (לדוגמה,
example.comאו שם הארגון). - ודאו שיש לכם את התוכנית הנדרשת:
- הזרמת יומן ביקורת של ההגדרות: זמין בתוכניות Personal, Personal Plus ו-Enterprise.
- הזרמת יומני זרימת נתונים ברשת: זמין רק בתוכנית Enterprise.
הגדרה של קטגוריית AWS S3 ו-IAM ל-Google SecOps
- יוצרים קטגוריה ב-Amazon S3 לפי המדריך למשתמש: יצירת קטגוריה
- שומרים את השם והאזור של הקטגוריה לעיון בהמשך (לדוגמה,
tailscale-logs). - יוצרים משתמש לפי מדריך המשתמש הזה: יצירת משתמש IAM.
- בוחרים את המשתמש שנוצר.
- לוחצים על הכרטיסייה פרטי כניסה לאבטחה.
- בקטע Access Keys, לוחצים על Create Access Key.
- בוחרים באפשרות שירות של צד שלישי בתור תרחיש השימוש.
- לוחצים על הבא.
- אופציונלי: מוסיפים תג תיאור.
- לוחצים על Create access key (יצירת מפתח גישה).
- לוחצים על הורדת קובץ CSV כדי לשמור את מפתח הגישה ואת מפתח הגישה הסודי לשימוש מאוחר יותר.
- לוחצים על סיום.
- לוחצים על הכרטיסייה הרשאות.
- בקטע Permissions policies, לוחצים על Add permissions.
- לוחצים על הוספת הרשאות.
- בוחרים באפשרות צירוף מדיניות ישירות.
- מחפשים את המדיניות AmazonS3FullAccess ובוחרים בה.
- לוחצים על הבא.
- לוחצים על הוספת הרשאות.
הגדרת מדיניות ותפקיד IAM להעלאות ל-S3
- במסוף AWS, עוברים אל IAM > Policies (מדיניות) > Create policy (יצירת מדיניות) > JSON tab (כרטיסיית JSON).
מזינים את המדיניות הבאה:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowTailscalePutObjects", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::tailscale-logs/*" } ] }- מחליפים את
tailscale-logsאם הזנתם שם קטגוריה אחר.
- מחליפים את
לוחצים על הבא > יצירת מדיניות.
עוברים אל IAM > תפקידים > יצירת תפקיד > מדיניות אמון בהתאמה אישית.
מזינים את מדיניות ההרשאות הבאה:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::982722776073:role/tailscale-log-streaming" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "YOUR_TAILNET_NAME" } } } ] }- מחליפים את
YOUR_TAILNET_NAMEבשם הרשת שלכם.
- מחליפים את
לוחצים על הבא.
מצרפים את המדיניות שנוצרה בשלב 1.
נותנים לתפקיד את השם
TailscaleS3StreamingRoleולוחצים על יצירת תפקיד.מעתיקים את מספר ה-ARN של התפקיד לשימוש בהגדרות של Tailscale.
הגדרה של סטרימינג מקומי של יומני S3 ב-Tailscale
הגדרת סטרימינג של יומן ביקורת של הגדרות
- במסוף האדמין של Tailscale, עוברים אל Logs > Configuration logs (יומני הגדרות).
- לוחצים על התחלת השידור.
- בוחרים באפשרות Amazon S3 כיעד.
- מספקים את פרטי ההגדרה הבאים:
- מזהה חשבון AWS: מזהה החשבון ב-AWS.
- S3 Bucket Name:
tailscale-logs. - Role ARN: ה-ARN של תפקיד ה-IAM שיצרתם.
- S3 Key Prefix:
tailscale/configuration/(אופציונלי).
- לוחצים על התחלת השידור.
- מוודאים שהסטטוס הוא פעיל.
הגדרה של סטרימינג של יומני זרימת נתונים ברשת (רק בתוכנית Enterprise)
- אם עדיין לא הפעלתם את האפשרות הזו, עוברים אל הגדרות > יומני זרימת נתונים ברשת ומפעילים את האפשרות הזו עבור ה-tailnet.
- עוברים אל Logs > Network flow logs.
- לוחצים על התחלת השידור.
- בוחרים באפשרות Amazon S3 כיעד.
- מספקים את פרטי ההגדרה הבאים:
- מזהה חשבון AWS: מזהה חשבון AWS שלכם
- שם קטגוריית S3:
tailscale-logs - Role ARN: ה-ARN של תפקיד ה-IAM שיצרתם
- S3 Key Prefix:
tailscale/network/(אופציונלי)
- לוחצים על התחלת השידור.
- מוודאים שהסטטוס הוא פעיל.
אופציונלי: יצירת משתמש IAM ומפתחות עם הרשאת קריאה בלבד ל-Google SecOps
- במסוף AWS, עוברים אל IAM > Users > Add users.
- לוחצים על הוספת משתמשים.
- מספקים את פרטי ההגדרה הבאים:
- משתמש:
secops-reader - סוג הגישה: מפתח גישה – גישה פרוגרמטית
- משתמש:
- לוחצים על יצירת משתמש.
- מצרפים מדיניות קריאה מינימלית (מותאמת אישית): משתמשים > secops-reader > הרשאות > הוספת הרשאות > צירוף מדיניות ישירות > יצירת מדיניות.
בעורך ה-JSON, מזינים את המדיניות הבאה:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::tailscale-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::tailscale-logs" } ] }מגדירים את השם ל-
secops-reader-policy.עוברים אל יצירת מדיניות > מחפשים או בוחרים > הבא > הוספת הרשאות.
עוברים אל Security credentials > Access keys > Create access key (פרטי כניסה לאבטחה > מפתחות גישה > יצירת מפתח גישה).
מורידים את קובץ ה-CSV (הערכים האלה מוזנים לפיד).
הגדרת פיד ב-Google SecOps להטמעה של יומני Tailscale
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על + הוספת פיד חדש.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Tailscale logs). - בוחרים באפשרות Amazon S3 V2 בתור סוג המקור.
- בוחרים באפשרות Tailscale בתור סוג היומן.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- S3 URI:
s3://tailscale-logs/tailscale/ - אפשרויות למחיקת המקור: בוחרים את אפשרות המחיקה הרצויה.
- הגיל המקסימלי של הקובץ: כולל קבצים שעברו שינוי במספר הימים האחרון. ברירת המחדל היא 180 ימים.
- מזהה מפתח הגישה: מפתח הגישה של המשתמש עם גישה לקטגוריית S3.
- מפתח גישה סודי: מפתח סודי של משתמש עם גישה לקטגוריית S3.
- מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות להוספה: התווית שמוחלת על האירועים מהפיד הזה.
- S3 URI:
- לוחצים על הבא.
- בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
exit_traf_src_port_label |
additional.fields |
ממוזג |
exit_traf_txBytes_label |
additional.fields |
ממוזג |
exit_traf_txPkts_label |
additional.fields |
ממוזג |
nodeId_label |
additional.fields |
ממוזג |
origin_label |
additional.fields |
ממוזג |
phy_traf_rxBytes_label |
additional.fields |
ממוזג |
phy_traf_rxPkts_label |
additional.fields |
ממוזג |
phy_traf_txBytes_label |
additional.fields |
ממוזג |
phy_traf_txPkts_label |
additional.fields |
ממוזג |
target1_id_label |
additional.fields |
ממוזג |
target1_type_label |
additional.fields |
ממוזג |
vir_traf_rxBytes_label |
additional.fields |
ממוזג |
vir_traf_rxPkts_label |
additional.fields |
ממוזג |
vir_traf_txBytes_label |
additional.fields |
ממוזג |
vir_traf_txPkts_label |
additional.fields |
ממוזג |
action |
extensions.auth.type |
מיפוי: LOGIN → AUTHTYPE_UNSPECIFIED |
start |
metadata.event_timestamp |
ניתוח הכתובות שברשימה: ISO8601 |
event_type |
metadata.event_type |
מיפוי ישיר |
exit_traf.txPkts |
network.received_bytes |
מיפוי ישיר |
index |
network.received_bytes |
מיפוי: 0 → uinteger |
phy_traf.rxBytes |
network.received_bytes |
מיפוי ישיר |
phy_traf.rxPkts |
network.received_bytes |
מיפוי ישיר |
exit_traf.txBytes |
network.sent_bytes |
מיפוי ישיר |
index |
network.sent_bytes |
מיפוי: 0 → uinteger |
phy_traf.txBytes |
network.sent_bytes |
מיפוי ישיר |
phy_traf.txPkts |
network.sent_bytes |
מיפוי ישיר |
target1.name |
principal.asset.hostname |
מיפוי ישיר |
src_ip |
principal.asset.ip |
ממוזג |
target1.name |
principal.hostname |
מיפוי ישיר |
src_ip |
principal.ip |
ממוזג |
src_port |
principal.port |
מיפוי ישיר |
action |
security_result.action_details |
מיפוי ישיר |
action_details_label |
security_result.detection_fields |
ממוזג |
eventGroupID_label |
security_result.detection_fields |
ממוזג |
dst_ip |
target.asset.ip |
ממוזג |
dst_ip |
target.ip |
ממוזג |
dst_port |
target.port |
מיפוי ישיר |
actor_loginName |
target.user.email_addresses |
ממוזג |
actor_display_name |
target.user.user_display_name |
מיפוי ישיר |
actor_id |
target.user.userid |
מיפוי ישיר |
| לא רלוונטי | extensions.auth.type |
קבוע: AUTHTYPE_UNSPECIFIED |
| לא רלוונטי | metadata.event_type |
קבוע: GENERIC_EVENT |
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.