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 שאין לו שילוב ייעודי, כדי לספק גמישות מקסימלית ל-playbook מורכבים.

  • אימות ללא מפתח: גישה מאובטחת למשאבי 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 משמאל ל-Test ומחפשים בהודעת השגיאה את כתובת האימייל של הזהות שמתחילה ב-gke-init-python@... או ב-soar-python@....

    מעתיקים את כתובת האימייל הייחודית הזו ומדביקים אותה ב-Workload Identity Email במהלך הגדרת השילוב.

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

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

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

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

  3. מדביקים את כתובת האימייל הייחודית בשדה New principals.

  4. מקצים את התפקיד יצירת אסימונים בחשבון שירות (roles/iam.serviceAccountTokenCreator).

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

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

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

  1. במסוף Cloud, יוצרים חשבון שירות. Google 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 לבדיקה של אימות ל-API של Google Cloud . הפרמטר הזה משתמש בבקשת 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 מזהה הפרויקט שבו משתמשים עבור ממשקי API וחיוב. כדי להשתמש בפרמטר הזה, צריך להקצות לחשבון השירות את התפקיד Service Usage Consumer. Google Cloud

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

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

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

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

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

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

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

OAuth Scopes אופציונלי

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

Verify SSL חובה

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

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

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

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

פעולות

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

ביצוע בקשת HTTP

משתמשים בפעולה Execute HTTP Request כדי ליצור ולהפעיל בקשת 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 דורשת את הפרמטרים הבאים:

פרמטר תיאור
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. הפעולה יוצרת מטען ייעודי (payload) שונה בהתאם לערך הכותרת 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 מספקת את הפלטים הבאים:

סוג הפלט של הפעולה זמינות
קיר המארז לא זמין
קישור לקיר של הפנייה לא זמין
טבלת קיר עם תושבת לא זמין
טבלת העשרה לא זמין
תוצאה בפורמט 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 (ביצוע בקשת HTTP) מספקת את הודעות הפלט הבאות:

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

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 מספקת את הפלטים הבאים:

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

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

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

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

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

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

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

תוצאת סקריפט

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

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

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