איסוף יומני 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.
- בוחרים באפשרות שירות של צד שלישי בתור תרחיש לדוגמה.
- לוחצים על הבא.
- אופציונלי: מוסיפים תג תיאור.
- לוחצים על יצירת מפתח גישה.
- לוחצים על Download CSV file כדי לשמור את Access Key ואת Secret Access Key לשימוש מאוחר יותר.
- לוחצים על סיום.
- לוחצים על הכרטיסייה הרשאות.
- בקטע מדיניות הרשאות, לוחצים על הוספת הרשאות.
- לוחצים על הוספת הרשאות.
- בוחרים באפשרות Attach policies directly.
- מחפשים את המדיניות AmazonS3FullAccess ובוחרים בה.
- לוחצים על הבא.
- לוחצים על הוספת הרשאות.
הגדרת המדיניות והתפקיד ב-IAM להעלאות ל-S3
- במסוף AWS, עוברים אל IAM > Policies > Create policy > הכרטיסייה JSON.
מזינים את המדיניות הבאה:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowTailscalePutObjects", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::tailscale-logs/*" } ] }- אם הזנתם שם אחר לקטגוריה, החליפו את
tailscale-logs.
- אם הזנתם שם אחר לקטגוריה, החליפו את
לוחצים על Next > Create policy.
עוברים אל IAM > Roles > Create role > Custom trust policy.
מזינים את מדיניות האמון הבאה:
{ "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בשם של ה-tailnet.
- מחליפים את
לוחצים על הבא.
מצרפים את המדיניות שנוצרה בשלב 1.
נותנים לתפקיד את השם
TailscaleS3StreamingRoleולוחצים על יצירת תפקיד.מעתיקים את ה-Role ARN כדי להשתמש בו בהגדרות של Tailscale.
הגדרת סטרימינג של יומני S3 מקוריים ב-Tailscale
הגדרת סטרימינג של יומן ביקורת של הגדרות אישיות
- במסוף Admin של Tailscale, נכנסים אל Logs > Configuration logs.
- לוחצים על התחלת השידור.
- בוחרים באפשרות Amazon S3 בתור היעד.
- מזינים את פרטי ההגדרה הבאים:
- AWS Account ID: מספר החשבון ב-AWS.
- thought
S3 Bucket Name:
tailscale-logs. - Role ARN: ה-ARN של תפקיד ה-IAM שיצרתם.
- S3 Key Prefix:
tailscale/configuration/(אופציונלי).
- לוחצים על התחלת השידור.
- מוודאים שהסטטוס שמוצג הוא פעיל.
הגדרת סטרימינג של יומן זרימת הנתונים ברשת (תוכנית Enterprise בלבד)
- אם עדיין לא הפעלתם את יומני זרימת הנתונים ברשת, עוברים אל הגדרות > יומני זרימת הנתונים ברשת ומפעילים את יומני זרימת הנתונים ברשת ב-tailnet.
- עוברים אל Logs > Network flow logs.
- לוחצים על התחלת השידור.
- בוחרים באפשרות Amazon S3 בתור היעד.
- מזינים את פרטי ההגדרה הבאים:
- AWS Account ID: מזהה החשבון ב-AWS
- S3 Bucket Name:
tailscale-logs - Role ARN: ה-ARN של תפקיד ה-IAM שיצרתם
- S3 Key Prefix:
tailscale/network/(אופציונלי)
- לוחצים על התחלת השידור.
- מוודאים שהסטטוס שמוצג הוא פעיל.
אופציונלי: יצירת משתמש ומפתחות IAM לקריאה בלבד ל-Google SecOps
- במסוף AWS, עוברים אל IAM > Users > Add users.
- לוחצים על הוספת משתמשים.
- מזינים את פרטי ההגדרה הבאים:
- משתמש:
secops-reader - סוג הגישה: מפתח גישה – גישה פרוגרמטית
- משתמש:
- לוחצים על Create user.
- מצרפים מדיניות קריאה מינימלית (בהתאמה אישית): Users > secops-reader > Permissions > Add permissions > Attach policies directly > Create policy.
בעורך ה-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.עוברים אל Create policy > חיפוש/בחירה > Next > Add permissions.
עוברים אל Security credentials > Access keys > Create access key.
מורידים את קובץ ה-CSV (הערכים האלה מוזנים בפיד).
הגדרת פיד ב-Google SecOps כדי להטמיע יומנים של Tailscale
- עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
- לוחצים על + הוספת פיד חדש.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Tailscale logs). - בוחרים באפשרות Amazon S3 V2 בתור סוג המקור.
- בוחרים באפשרות Tailscale בתור Log type.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- S3 URI:
s3://tailscale-logs/tailscale/ - אפשרויות למחיקת המקור: בוחרים את אפשרות המחיקה הרצויה.
- גיל הקובץ המקסימלי: כולל קבצים ששונו במספר הימים האחרונים. ברירת המחדל היא 180 ימים.
- מזהה מפתח הגישה: מפתח גישה של משתמש עם גישה לקטגוריית S3.
- מפתח גישה סודי: מפתח סודי של משתמש עם גישה לקטגוריית S3.
- מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות הטמעה: התווית שנוספה לאירועים מהפיד הזה.
- S3 URI:
- לוחצים על הבא.
- בודקים את הגדרות הפיד החדש במסך סיום ולוחצים על שליחה.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | Logic (פונקציה לוגית) |
|---|---|---|
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.