איסוף יומנים של 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.
- רושמים את שם הרשת (לדוגמה,
example.comאו שם הארגון). - ודאו שיש לכם את התוכנית הנדרשת:
- הזרמת יומני ביקורת של הגדרות: זמין בתוכניות Personal, Personal Plus ו-Enterprise.
- הזרמת יומן של תעבורת רשת: זמין רק בתוכנית Enterprise.
הגדרה של קטגוריית AWS S3 ו-IAM ל-Google SecOps
- יוצרים קטגוריה ב-Amazon S3 לפי מדריך המשתמש הזה: יצירת קטגוריה
- שומרים את השם של ה-bucket ואת האזור לעיון בעתיד (לדוגמה,
tailscale-logs). - יוצרים משתמש לפי מדריך המשתמש הזה: יצירת משתמש IAM.
- בוחרים את המשתמש שנוצר.
- לוחצים על הכרטיסייה פרטי כניסה לאבטחה.
- בקטע מפתחות גישה, לוחצים על יצירת מפתח גישה.
- בוחרים באפשרות שירות של צד שלישי בתור תרחיש השימוש.
- לוחצים על הבא.
- אופציונלי: מוסיפים תג תיאור.
- לוחצים על Create access key (יצירת מפתח גישה).
- לוחצים על הורדת קובץ CSV כדי לשמור את מפתח הגישה ואת מפתח הגישה הסודי לשימוש מאוחר יותר.
- לוחצים על סיום.
- לוחצים על הכרטיסייה Permissions (הרשאות).
- בקטע 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
הגדרה של סטרימינג של יומן ביקורת של הגדרות
- במסוף Admin של Tailscale, עוברים אל Logs > Configuration logs (יומני הגדרות).
- לוחצים על התחלת השידור.
- בוחרים באפשרות Amazon S3 כיעד.
- מספקים את פרטי ההגדרה הבאים:
- מזהה חשבון AWS: מזהה החשבון ב-AWS.
- שם קטגוריית S3:
tailscale-logs. - Role ARN: ה-ARN של תפקיד ה-IAM שיצרתם.
- קידומת של מפתח S3:
tailscale/configuration/(אופציונלי).
- לוחצים על התחלת השידור.
- מוודאים שהסטטוס הוא פעיל.
הגדרה של סטרימינג של יומני זרימת נתונים ברשת (רק בתוכנית Enterprise)
- אם עדיין לא הפעלתם את האפשרות הזו, עוברים אל הגדרות > יומני זרימת נתונים ברשת ומפעילים את יומני זרימת הנתונים ברשת עבור ה-tailnet.
- עוברים אל יומנים > יומני זרימת רשת.
- לוחצים על התחלת השידור.
- בוחרים באפשרות Amazon S3 כיעד.
- מספקים את פרטי ההגדרה הבאים:
- מזהה חשבון AWS: מזהה חשבון AWS שלכם
- שם קטגוריית S3:
tailscale-logs - Role ARN: ה-ARN של תפקיד ה-IAM שיצרתם
- S3 Key Prefix:
tailscale/network/(אופציונלי)
- לוחצים על התחלת השידור.
- מוודאים שהסטטוס הוא פעיל.
אופציונלי: יצירת משתמש IAM ומפתחות לקריאה בלבד עבור Google SecOps
- ב-AWS Console, עוברים אל 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.