Google Cloud API

במסמך הזה מוסבר איך להגדיר ולשלב אתGoogle Cloud API עם Google Security Operations.

תרחישים לדוגמה

השילוב של Google Cloud API משתמש ביכולות של Google SecOps כדי לתמוך בתרחישי השימוש הבאים:

  • ניהול משאבים אוטומטי: ביצוע פעולות בשירותים של Google Cloudכמו Compute Engine או Cloud Storage כדי לטפל באיומים או לנהל את התשתית באופן דינמי.

  • ניהול זהויות והרשאות גישה: התאמה אוטומטית של כללי מדיניות או תפקידים בניהול זהויות והרשאות גישה (IAM) בתגובה לאירועי אבטחה שזוהו.

  • תזמור מותאם אישית של API: אינטראקציה עם כל API מופעל Google Cloud שאין לו שילוב ייעודי, כדי לספק גמישות מקסימלית ל-playbooks מורכבים.

  • אימות ללא מפתח: גישה מאובטחת למשאבי Google Cloud באמצעות Workload Identity כדי למנוע את הסיכונים שקשורים למפתחות סטטיים של חשבונות שירות.

לפני שמתחילים

לפני שמגדירים את השילוב בפלטפורמת Google SecOps, צריך לוודא שיש לכם את הדברים הבאים:

  • ממשקי API לטירגוט שהופעלו: מזהים ומפעילים אתGoogle Cloud השירותים הספציפיים שאתם מתכננים להפוך לאוטומטיים.

  • הרשאות IAM: מוודאים שלזהות שלכם יש את התפקידים הנדרשים לביצוע הפעולות הספציפיות שאתם רוצים לבצע.

  • שיטת אימות: בוחרים בין השיטה המומלצת Workload Identity לבין מפתח JSON של חשבון שירות לצורך אימות.

זיהוי והפעלה של ממשקי API לטירגוט

השילוב הזה הוא שער כללי, ולכן אין בו ממשקי API קבועים. הדרישות משתנות בהתאם לתרחיש השימוש הספציפי. כדי להפעיל את ממשקי ה-API של היעד (כמו Compute Engine, ‏ Cloud Storage או IAM) באמצעות השילוב, צריך להפעיל אותם בפרויקט.

כדי לזהות ולהפעיל את ממשקי ה-API של היעד, פועלים לפי השלבים הבאים:

  1. במסוף Google Cloud , נכנסים אל APIs & Services > Library.

  2. מחפשים את השירותים הנדרשים ומפעילים אותם.

הגדרת הרשאות IAM

לחשבון השירות או לזהות שמשמשים את האינטגרציה הזו צריכים להיות תפקידי ה-IAM המתאימים.

  • העיקרון של הרשאות מינימליות: הקצאה רק של התפקידים הספציפיים שנדרשים לקריאות ה-API המיועדות.

  • דרישות דינמיות: ההרשאות משתנות בהתאם לפעולה. לדוגמה, כדי לנהל משאבים נדרשים תפקידים שונים מאלה שנדרשים כדי להציג אותם.

בחירה של שיטת אימות

‫Google SecOps תומך בשתי דרכי אימות לשילוב הזה:

אימות באמצעות Workload Identity (מומלץ)

Workload Identity היא השיטה הכי מאובטחת כי היא מבטלת את הצורך לנהל או להחליף מפתחות JSON לטווח ארוך. היא משתמשת בהתחזות לחשבון שירות כדי לאפשר לפלטפורמה לגשת למשאבים שלכם בצורה מאובטחת.

זיהוי הזהות של מופע Google SecOps

כדי למצוא את הזהות הייחודית של המופע:

  1. ב-Google SecOps, עוברים אל Content Hub > Response Integrations.

  2. בוחרים בשילוב Google Cloud API.

  3. מזינים את כתובת האימייל של חשבון השירות של היעד בשדה Workload Identity Email.

  4. לוחצים על שמירה ואז על בדיקה. הבדיקה צפויה להיכשל.

  5. לוחצים על close_small משמאל לבדיקה ומחפשים בהודעת השגיאה את כתובת האימייל של הזהות שמתחילה ב-gke-init-python@... או ב-soar-python@....

  6. מעתיקים את כתובת האימייל הייחודית הזו.

מתן הרשאות להתחזות

כדי לתת לזהות של המופע הרשאה לגשת למשאבים שלכם, מבצעים את השלבים הבאים:

  1. במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts.

    לדף Service accounts

  2. בוחרים את חשבון השירות של היעד ועוברים אל Permissions > Grant Access (הרשאות > הענקת גישה).

  3. מדביקים את כתובת האימייל הייחודית בשדה New principals ומקצים את התפקיד Service Account Token Creator (roles/iam.serviceAccountTokenCreator).

אימות באמצעות מפתח JSON

משתמשים בשיטה הזו רק אם Workload Identity לא זמין בסביבה שלכם.

כדי לאמת את השילוב באמצעות מפתח JSON של חשבון שירות, פועלים לפי השלבים הבאים:

  1. במסוף Google Cloud Cloud, יוצרים חשבון שירות.

  2. עוברים לכרטיסייה Keys ובוחרים באפשרות Add key > Create new key.

  3. בוחרים באפשרות JSON בתור סוג המפתח ומורידים את הקובץ.

  4. מעתיקים את כל התוכן של הקובץ הזה ומדביקים אותו ב-Service Account Json File Content במהלך הגדרת השילוב ב-Google SecOps.

שילוב Google Cloud API עם Google SecOps SOAR

השילוב דורש את הפרמטרים הבאים:

פרמטרים תיאור
Test URL אופציונלי

כתובת URL לבדיקה לצורך אימות של Google Cloud ה-API. הפרמטר הזה משתמש בבקשת GET.

Service Account Json File Content אופציונלי

התוכן של קובץ ה-JSON של מפתח חשבון השירות.

אפשר להגדיר את הפרמטר הזה, את הפרמטר Workload Identity Email או את כל פרמטרי השילוב הקודמים.

כדי להגדיר את הפרמטר הזה, צריך לספק את התוכן המלא של קובץ ה-JSON של מפתח חשבון השירות שהורדתם כשיוצרים חשבון שירות.

מידע נוסף על שימוש בחשבונות שירות כשיטת אימות זמין במאמרים סקירה כללית על חשבונות שירות והתחזות לחשבון שירות.

באינטגרציה הזו, לאימות באמצעות קובץ ה-JSON של מפתח חשבון השירות יש עדיפות על פני האימייל של זהות עומס העבודה.

Organization ID אופציונלי

מזהה הארגון לשימוש בשילוב.

כדי לאחזר את הערך מהפרמטר הזה במהלך הביצוע של הפעולה, צריך להגדיר את placeholder הבא: {{org_id}}.

Project ID אופציונלי

מזהה הפרויקט שבו רוצים להשתמש בשילוב.

כדי לאחזר את הערך מהפרמטר הזה במהלך ההפעלה של הפעולה, צריך להגדיר את placeholder הבא: {{project_id}}.

Quota Project ID אופציונלי

Google Cloud מזהה הפרויקט שבו אתם משתמשים עבור Google Cloud ממשקי API וחיוב. כדי להשתמש בפרמטר הזה, צריך להקצות לחשבון השירות את התפקיד Service Usage Consumer.

השילוב מצרף את ערך הפרמטר הזה לכל בקשות ה-API.

אם לא מגדירים ערך לפרמטר הזה, השילוב מאחזר את מזהה הפרויקט מחשבון השירות Google Cloud .

Workload Identity Email אופציונלי

כתובת האימייל של הלקוח בחשבון השירות.

אפשר להגדיר את הפרמטר הזה או את הפרמטר Service Account Json File Content.

באינטגרציה הזו, לאימות באמצעות קובץ ה-JSON של מפתח חשבון השירות יש עדיפות על פני האימייל של זהות עומס העבודה.

כדי להתחזות לחשבונות שירות באמצעות Workload Identity, צריך להקצות את התפקיד Service Account Token Creator לזהות של מופע Google SecOps בחשבון השירות. לפרטים נוספים על זהויות של עומסי עבודה ואיך עובדים איתן, אפשר לעיין במאמר זהויות לעומסי עבודה.

OAuth Scopes אופציונלי

רשימה מופרדת בפסיקים של היקפי הרשאות OAuth שנדרשים להפעלת בקשות ה-API של Google Cloud .

Verify SSL חובה

אם בוחרים באפשרות הזו, האינטגרציה בודקת שאישור ה-SSL לחיבור אל Google Cloud השירות תקף.

האפשרות הזו מסומנת כברירת מחדל.

הוראות להגדרת שילוב ב-Google SecOps מופיעות במאמר הגדרת שילובים.

במקרה הצורך, אפשר לבצע שינויים בשלב מאוחר יותר. אחרי שמגדירים מופע של שילוב, אפשר להשתמש בו ב-playbooks. מידע נוסף על הגדרת מופעים מרובים ותמיכה בהם זמין במאמר בנושא תמיכה במופעים מרובים.

פעולות

מידע נוסף על פעולות זמין במאמרים איך מגיבים לפעולות בהמתנה ממרכז העבודה ואיך מבצעים פעולה ידנית.

ביצוע בקשת HTTP

משתמשים בפעולה Execute HTTP Request (הפעלת בקשת HTTP) כדי ליצור ולהפעיל בקשת HTTP API מותאמת אישית מול כתובת URL של יעד.

הפעולה הזו לא מופעלת בישויות של Google SecOps.

התנהגות הפעולה

הפעולה הזו תומכת בהתנהגויות מורכבות, כולל שליחת בקשות אסינכרוניות, יצירה דינמית של מטען ייעודי (payload) וניהול קבצים.

דגימה אסינכרונית

כשמספקים את Expected Response Values, הפעולה פועלת במצב אסינכרוני. במצב הזה, הפעולה מבצעת שוב ושוב בדיקה של נקודת הקצה של היעד כדי לעקוב אחרי מצב התגובה (לדוגמה, המתנה לסיום של משימה ממושכת).

הפעולה מעריכה את גוף התגובה בהתאם לתנאי ה-JSON שצוינו בפרמטר, וממשיכה את ההרצה עד שהתנאים מתקיימים או עד שהפעולה מגיעה לזמן הקצוב לתפוגה.

לוגיקה של תנאים

הפעולה תומכת בלוגיקה הבאה למעקב אחרי מצבי תגובה:

  • התאמה של שדה יחיד: הפעולה ממתינה עד ששדה ספציפי יגיע לערך יחיד.

    {
      "state": "finished"
    }
    
  • כמה ערכים (לוגיקת OR): הפעולה מפסיקה את הביצוע אם שדה תואם לאחד מהערכים ברשימה שסופקה. האפשרות הזו שימושית כדי לעצור במצבים 'הצלחה' ו'שגיאה' וכך להימנע מבדיקות מיותרות.

    {
      "state": ["finished", "error"]
    }
    
  • כמה שדות (לוגיקת AND): הפעולה ממתינה עד שכל השדות שצוינו יתאימו לערכים שלהם בו-זמנית.

    {
      "state": "finished",
      "percentage": "100"
    }
    
  • לוגיקה משולבת: אפשר לשלב כמה תנאים באובייקט JSON.

    {
      "state": ["finished", "error"],
      "percentage": "10"
    }
    
התנהגות בניתוח JSON

כשמעריכים תנאים, הפעולה מתבצעת לפי הכללים הבאים:

  • חיפוש גלובלי: הפעולה מחפשת את המפתחות שצוינו בכל אובייקט התגובה בפורמט JSON. צריך לציין את שם המפתח בדיוק כפי שהוא מופיע ב-JSON, בלי להוסיף לפניו את שמות אובייקטי האב או להשתמש בקידומות (לדוגמה, צריך להשתמש ב-"state" ולא ב-"data_state" או ב-"data-state").

  • כמה מפתחות זהים: אם התגובה מכילה כמה מפתחות עם אותו שם ברמות שונות בהיררכיית ה-JSON, הפלט הצפוי יתקבל רק אם כל שמות המפתחות התואמים יספקו את אותו ערך צפוי.

    לדוגמה, כדי לחפש את המצב finished בתגובת ה-JSON ולהתעלם ממצבים אחרים, צריך להגדיר את כל המפתחות state ב-Expected Response Values לערך finished:

    {
    "data": {
      "state": "finished"
      },
      "state": "finished"
    }
    
יצירת מטען ייעודי (Payload) של גוף הבקשה

הפעולה יוצרת את גוף הבקשה על סמך הכותרת Content-Type שצוינה ב-Headers.

זהו הקלט Body Payload שמשמש בדוגמאות הבאות של בנייה:

{
  "Id": "123123",
  "sorting": "asc"
}
  • ‫application/x-www-form-urlencoded: הפעולה יוצרת את מטען הייעודי (payload) בתור Id=123123&sorting=asc.

  • ‫application/json: הפעולה יוצרת את מטען ה-JSON הייעודי (payload) הבא:

    {
      "Id": "123123",
      "sorting": "asc"
    }
    
  • ‫XML: אם המוצר של צד שלישי דורש XML, צריך לספק קלט בפורמט XML ישירות ב-Body Payload:

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="[http://schemas.xmlsoap.org/soap/envelope/](http://schemas.xmlsoap.org/soap/envelope/)">
    <soap:Body>
      <NumberToWords xmlns="[http://www.dataaccess.com/webservicesserver/](http://www.dataaccess.com/webservicesserver/)">
        <ubiNum>500</ubiNum>
      </NumberToWords>
    </soap:Body>
    </soap:Envelope>
    
טיפול בקבצים

הפעולה תומכת בתהליכי העבודה הבאים לניהול קבצים:

  • הורדת קבצים:

    • כדי להחזיר נתוני קובץ כחלק מתוצאת ה-JSON בפורמט base64, בוחרים באפשרות Base64 Output.

    • כדי לשמור קובץ ישירות ב-Case Wall כארכיון ZIP, בוחרים באפשרות Save To Case Wall.

  • העלאת קבצים: כדי להעלות קובץ, צריך להמיר אותו למחרוזת בקידוד Base64 ולכלול אותו כחלק מהערך Body Payload.

    בדוגמה הבאה מוצג קובץ תמונה שהומר למחרוזת בקידוד Base64:

    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
    
  • אבטחה: לקבצים רגישים (כמו תוכנות זדוניות), בוחרים באפשרות Password Protect Zip. הפעולה הזו מצפינה באופן אוטומטי את ארכיון ה-ZIP שנשמר ונוצר באמצעות Save To Case Wall עם הסיסמה infected.

הגדרות של בלוקים ב-Playbook

ההגדרה הבאה מדגימה איך להשתמש בפעולה Execute HTTP Request בתוך בלוק של playbook. הדוגמה הזו תעזור לכם להבין איך להשתמש במחזיקי מקום ובקידומות של קלט.

כשמשתמשים בקלט של בלוקים כערכי placeholder, צריך לכלול את הקידומת Input. (לדוגמה, [Input.comment]).

  • Method: ‏ PUT

  • נתיב כתובת ה-URL:

    https://{API_URL}/[Input.table_name]/[Input.sys_id]
    
  • כותרות:

    {
      "Content-type": "application/json; charset=utf-8",
      "Accept": "application/json",
      "User-Agent": "GoogleSecops"
    }
    
  • מטען ייעודי (payload) של גוף הבקשה:

    {
      "work_notes": "[Input.comment]"
    }
    

הוספת נתונים לפעולה

הפעולה Execute HTTP Request (ביצוע בקשת HTTP) דורשת את הפרמטרים הבאים:

פרמטר תיאור
Method אופציונלי

שיטה לשימוש בבקשה.

ערך ברירת המחדל הוא GET.

הערכים האפשריים הם:
  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • HEAD
  • OPTIONS
URL Path אופציונלי

כתובת URL להרצה.

ערך ברירת המחדל הוא https://.

URL Params אופציונלי

הפרמטרים של כתובת ה-URL.

הפעולה משתמשת בכל ערך שמסופק לצד הערכים שסיפקתם ישירות בפרמטר URL Path.

הפרמטר הזה מחייב קלט בפורמט אובייקט JSON. ערך ברירת המחדל הוא:

{
    "URL Field Name": "URL_FIELD_VALUE"
    }
Headers אופציונלי

כותרות לשימוש בבקשת HTTP.

הפרמטר הזה מחייב קלט בפורמט אובייקט JSON. ערך ברירת המחדל הוא:

{
    "Content-Type": "application/json; charset=utf-8",
    "Accept": "application/json",
    "User-Agent" : "GoogleSecOps"
    }
Cookie אופציונלי

הפרמטרים לשימוש בכותרת Cookie.

הפרמטר הזה מחליף קובצי Cookie שמועברים בפרמטר Headers.

הפרמטר הזה מחייב קלט בפורמט אובייקט JSON. ערך ברירת המחדל הוא:

{
    "Cookie_1": "COOKIE_1_VALUE"
    }
Body Payload
אופציונלי

גוף לבקשת ה-HTTP. הפעולה יוצרת מטען ייעודי שונה בהתאם לערך הכותרת Content-Type שצוין בפרמטר Headers.

הפרמטר הזה מחייב פורמט של אובייקט JSON כקלט, אלא אם מוצר של צד שלישי דורש XML או את התוכן multipart/form-data. אם שולחים או מעלים קובץ באמצעות בקשת ה-API, צריך לספק את הגרסה של הקובץ עם קידוד base64 בפרמטר Body Payload ולהגדיר את הכותרת ל-"Content-type": "multipart/form-data".

ערך ברירת המחדל הוא:

{
    "Body Field Name": "BODY_FIELD_VALUE"
    }
Expected Response Values

זה שינוי אופציונלי.

אובייקט JSON שמכיל את צמדי השדות והערכים שמגדירים את המצב הנדרש של גוף התגובה.

Save To Case Wall אופציונלי

אם בוחרים באפשרות הזו, הקובץ נשמר ומצורף לקיר התיק. הקובץ יועבר לארכיון עם הסיומת .zip. קובץ .zip לא מוגן בסיסמה.

האפשרות הזו לא מסומנת כברירת מחדל.

Password Protect Zip אופציונלי

אם בוחרים באפשרות הזו, הפעולה מוסיפה סיסמה לקובץ .zip שנוצר באמצעות הפרמטר Save To Case Wall. הסיסמה היא: infected.

משתמשים בפרמטר הזה כשעובדים עם קבצים חשודים.

האפשרות הזו מסומנת כברירת מחדל.

Follow Redirects אופציונלי

אם הפעולה נבחרה, היא תפעל לפי ההפניות האוטומטיות.

האפשרות הזו מסומנת כברירת מחדל.

Fail on 4xx/5xx אופציונלי

אם האפשרות הזו נבחרה, הפעולה תיכשל אם קוד הסטטוס של התגובה הוא שגיאות 4xx או 5xx.

האפשרות הזו מסומנת כברירת מחדל.

Base64 Output אופציונלי

אם בוחרים באפשרות הזו, הפעולה ממירה את התשובה לפורמט base64.

משתמשים בפרמטר הזה כשמורידים קבצים.

התוצאה בפורמט JSON לא יכולה להיות גדולה מ-15MB.

האפשרות הזו לא מסומנת כברירת מחדל.

Fields To Return חובה

השדות שיוחזרו. הערכים האפשריים הם:

  • response_data
  • redirects
  • response_code
  • response_cookies
  • response_headers
  • apparent_encoding
Request Timeout חובה

פרק זמן להמתנה עד שהשרת ישלח נתונים לפני שהפעולה תיכשל.

ערך ברירת המחדל הוא 120 שניות.

פלטים של פעולות

הפעולה Execute HTTP Request מספקת את הפלטים הבאים:

סוג פלט הפעולה זמינות
Case wall attachment לא זמין
קישור ל-Case wall לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט JSON יש גישה
הודעות פלט יש גישה
תוצאת הסקריפט יש גישה
תוצאה בפורמט JSON

בדוגמה הבאה מתואר פלט של תוצאת JSON שמתקבלת כשמשתמשים בפעולה Execute HTTP Request:

{
   "response_data": {
       "data": {
           "relationships": {
               "comment": [
                   {
                       "name": "item",
                       "description": "Object to which the comment belongs to."
                   },
                   {
                       "name": "author",
                       "description": "User who wrote the comment."
                   }
               ]
           }
       }
   },
   "redirects": [],
   "response_code": 200,
   "cookies": {},
   "response_headers": {
       "Content-Type": "application/json",
       "X-Cloud-Trace-Context": "VALUE",
       "Date": "Fri, 03 Nov 2023 16:14:13 GMT",
       "Server": "Google Frontend",
       "Content-Length": "36084"
   },
   "apparent_encoding": "ascii"
}
הודעות פלט

הפעולה Execute HTTP Request מספקת את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה

Successfully executed API request.

Successfully executed API request, but the status code {4xx/5xx} was returned. Please check the request or try again later.

הפעולה הסתיימה בהצלחה.
Failed to execute API request. Error: ERROR_REASON

הפעולה נכשלה.

צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה.

תוצאת הסקריפט

בטבלה הבאה מפורטים הערכים של פלט תוצאות הסקריפט כשמשתמשים בפעולה Execute HTTP Request:

שם התוצאה של הסקריפט ערך
is_success True או False

פינג

משתמשים בפעולה Ping כדי לבדוק את הקישוריות אל Google Cloud.

הפעולה הזו לא מופעלת בישויות של Google SecOps.

הוספת נתונים לפעולה

אין.

פלטים של פעולות

הפעולה Ping מספקת את הפלטים הבאים:

סוג פלט הפעולה זמינות
Case wall attachment לא זמין
קישור ל-Case wall לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט JSON יש גישה
הודעות פלט יש גישה
תוצאת הסקריפט יש גישה
תוצאה בפורמט JSON

בדוגמה הבאה מתואר פלט תוצאת ה-JSON שמתקבל כשמשתמשים בפעולה Ping:

{
"endpoint": "TEST_URL"
}
הודעות פלט

הפעולה Ping מספקת את הודעות הפלט הבאות:

הודעת הפלט תיאור ההודעה
Successfully tested connectivity. הפעולה הסתיימה בהצלחה.
Failed to test connectivity.

הפעולה נכשלה.

צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה.

תוצאת הסקריפט

בטבלה הבאה מפורטים הערכים של פלט התוצאה של הסקריפט כשמשתמשים בפעולה Ping:

שם התוצאה של הסקריפט ערך
is_success True או False

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.