השתקת ממצאים ספציפיים

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

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להשתקת ממצאים או לביטול ההשתקה שלהם, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בארגון, בתיקייה או בפרויקט:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

השתקת ממצא ספציפי

אפשר להשתיק ממצא ספציפי באופן סטטי באמצעות מסוףGoogle Cloud , ה-CLI של gcloud או Security Command Center API.

השתקה סטטית של ממצא לא משפיעה על הפעילות שלו. אם משתיקים ממצא פעיל, ערך המאפיין state לא משתנה: state="ACTIVE". הממצא מוסתר, אבל הוא נשאר פעיל עד שהפגיעות, הטעות בהגדרה או האיום הבסיסיים נפתרים. בנוסף, השתקה סטטית של ממצא מבטלת את כל כללי ההשתקה הדינמיים שחלים על הממצא.

השתקת שילוב רעיל שזוהה סוגרת את המקרה המתאים של שילוב רעיל.

כדי להשתיק את כל הממצאים העתידיים שתואמים לקריטריונים שציינתם, ראו ניהול כללי השתקת ממצאים.

קוד לדוגמה להשתקת ממצא מופיע במאמר השתקת ממצא.

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

המסוף

  1. במסוף Google Cloud , עוברים לדף Findings של Security Command Center.

    כניסה לדף Findings

  2. אם צריך, בוחרים את Google Cloud הפרויקט או הארגון.
  3. אם הממצא שרוצים להשתיק לא מופיע בחלונית Findings query results, בוחרים את הקטגוריה של הממצא בקטע Category בחלונית Quick filters.
  4. בוחרים את הממצא שרוצים להשתיק. אפשר לבחור ממצא אחד או יותר.
  5. בסרגל הפעולות תוצאות שאילתת הממצאים, לוחצים על אפשרויות השתקה ואז על החלת ביטול השתקה.

    המאפיין mute של הממצאים שנבחרו מוגדר כ-MUTED, והממצא מוסר מהחלונית Findings query results. אפשר גם להשתיק ממצא מחלונית הפרטים שלו:

  6. בחלונית Finding query results בדף Findings, בעמודה Category, לוחצים על השם של ממצא ספציפי. חלונית הפרטים של הממצא נפתחת.

  7. לוחצים על יוצרים קמפיינים.

  8. בתפריט Take action (ביצוע פעולה), בוחרים באפשרות Apply mute override (החלת ביטול השתקה).

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

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי להגדיר את מצב ההשתקה של ממצא ל-MUTED, משתמשים בפקודה set-mute ב-CLI של gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=MUTED

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫FINDING_ID: המזהה של הממצא שרוצים להשתיק

      כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון במאפיין canonicalName, לדוגמה: projects/123456789012/sources/1234567890123456789/findings`/5ee30aa342e799e4e1700826de053aa9.

    • ‫PARENT: משאב האב (project,‏ folder או organization), תלוי אותיות רישיות

    • ‫PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט

    • LOCATION: the Security Command Center location in which to mute or unmute findings; if data residency is enabled, use eu, sa, or us; otherwise, use the value global

    • ‫SOURCE_ID: מזהה המקור

      הוראות לאחזור מזהה מקור מפורטות במאמר איך מאחזרים את מזהה המקור.

המשך

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// setMute mutes an individual finding.
// If a finding is already muted, muting it again has no effect.
// Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
func setMute(w io.Writer, findingPath string) error {
	// findingPath: The relative resource name of the finding. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Use any one of the following formats:
	//  - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
	//  - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
	//  - projects/{project_id}/sources/{source_id}/finding/{finding_id}
	// findingPath := fmt.Sprintf("projects/%s/sources/%s/finding/%s", "your-google-cloud-project-id", "source", "finding-id")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.SetMuteRequest{
		Name: findingPath,
		Mute: securitycenterpb.Finding_MUTED}

	finding, err := client.SetMute(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to set the specified mute value: %w", err)
	}
	fmt.Fprintf(w, "Mute value for the finding: %s is %s", finding.Name, finding.Mute)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.Finding;
import com.google.cloud.securitycenter.v2.Finding.Mute;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import com.google.cloud.securitycenter.v2.SetMuteRequest;
import java.io.IOException;

public class SetMuteFinding {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the variables within {}
    // findingPath: The relative resource name of the finding. See:
    // https://cloud.google.com/apis/design/resource_names#relative_resource_name
    // Use any one of the following formats:
    //  - organizations/{org_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - folders/{folder_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - projects/{project_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //
    String findingPath = "{path-to-the-finding}";

    setMute(findingPath);
  }

  // Mute an individual finding.
  // If a finding is already muted, muting it again has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
  public static Finding setMute(String findingPath) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      SetMuteRequest setMuteRequest =
          SetMuteRequest.newBuilder()
              // Relative path for the finding.
              .setName(findingPath)
              .setMute(Mute.MUTED)
              .build();

      Finding finding = client.setMute(setMuteRequest);
      System.out.println(
          "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
      return finding;
    }
  }
}

Python

def set_mute_finding(finding_path: str) -> None:
    """
      Mute an individual finding.
      If a finding is already muted, muting it again has no effect.
      Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
    Args:
        finding_path: The relative resource name of the finding. See:
        https://cloud.google.com/apis/design/resource_names#relative_resource_name
        Use any one of the following formats:
        - organizations/{organization_id}/sources/{source_id}/finding/{finding_id},
        - folders/{folder_id}/sources/{source_id}/finding/{finding_id},
        - projects/{project_id}/sources/{source_id}/finding/{finding_id}.
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.SetMuteRequest()
    request.name = finding_path
    request.mute = securitycenter_v2.Finding.Mute.MUTED

    finding = client.set_mute(request)
    print(f"Mute value for the finding: {finding.mute.name}")
    return finding

REST

ב-Security Command Center API, משתמשים ב-method‏ findings.setMute כדי להשתיק ממצא. גוף הבקשה הוא enum שמציין את מצב ההשתקה שיתקבל:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute

{
  "mute": "MUTED"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PARENT: משאב האב (organizations,‏ folders או projects).
  • ‫PARENT_ID: המזהה של הארגון, התיקייה או הפרויקט ברמת ההורה.
  • LOCATION: the Security Command Center location in which to mute or unmute findings; if data residency is enabled, use eu, sa, or us; otherwise, use the value global
  • ‫SOURCE_ID: המזהה המספרי של המקור.

    הוראות לאחזור מזהה מקור מפורטות במאמר איך מאחזרים את מזהה המקור.

  • ‫FINDING_ID: המזהה של הממצא שרוצים להשתיק.

    כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון של מאפיין canonicalName, לדוגמה, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

אחרי שמשתיקים ממצא, מאפיין mute שלו מוגדר לערך MUTED.

ביטול השתקה של ממצאים ספציפיים

אפשר לבטל השתקה באופן סטטי של ממצא ספציפי באמצעות Google Cloud המסוף, ה-CLI של gcloud או Security Command Center API.

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

השתקת הממצאים תבוטל רק אם תבצעו השתקה ידנית. כללים להשתקת ממצאים שנוצרו באמצעות ה-CLI של gcloud או Security Command Center API לא ישפיעו על ממצאים שהמשתמשים ביטלו את ההשתקה שלהם.

לקוד לדוגמה לביטול השתקה של ממצא, ראו ביטול השתקה של ממצא.

המסוף

כדי לבטל השתקה של ממצא ספציפי באמצעות Google Cloud המסוף, לוחצים על הכרטיסייה של רמת השירות:

  1. במסוף Google Cloud , עוברים לדף Findings של Security Command Center.

    כניסה לדף Findings

  2. אם צריך, בוחרים את Google Cloud הפרויקט או הארגון. הדף ממצאים נפתח עם השאילתה שמוגדרת כברירת מחדל שמוצגת בקטע תצוגה מקדימה של השאילתה. מסנני השאילתות שמוגדרים כברירת מחדל מסננים ממצאים שהושתקו, ולכן צריך לערוך את השאילתה כדי שהממצאים שהושתקו יופיעו בחלונית Findings query results.
  3. משמאל לקטע תצוגה מקדימה של השאילתה, לוחצים על עריכת השאילתה כדי לפתוח את עורך השאילתות.
  4. בשדה עורך השאילתות, מחליפים את הצהרת ההשתקה הקיימת בהצהרה הבאה:
    mute="MUTED"
  5. לוחצים על אישור. התוצאות בחלונית Findings query results מתעדכנות וכוללות רק את הממצאים שהושתקו.
  6. אם צריך, מסננים ממצאים אחרים שהושתקו. לדוגמה, בחלונית Quick filters (מסננים מהירים) בקטע Category (קטגוריה), בוחרים את שם הממצא שרוצים לבטל את ההשתקה שלו כדי לסנן את כל הקטגוריות האחרות של הממצאים.
  7. בוחרים את הממצא שרוצים לבטל את ההשתקה שלו. אפשר לבחור ממצא אחד או יותר.
  8. בסרגל הפעולות Findings query results (תוצאות של שאילתת ממצאים), לוחצים על Mute Options (אפשרויות השתקה) ואז על Apply unmute override (החלת ביטול השתקה). המאפיין mute של הממצאים שנבחרו מוגדר כ-UNMUTED, והממצא מוסר מהחלונית Findings query results. אפשר גם לבטל את ההשתקה של ממצא מחלונית הפרטים שלו:
  9. בחלונית Finding query results בדף Findings, בעמודה Category, לוחצים על השם של ממצא ספציפי. חלונית הפרטים של הממצא נפתחת.
  10. לוחצים על יוצרים קמפיינים.
  11. בתפריט פעולה, בוחרים באפשרות החלת ביטול השתקה.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי להגדיר את מצב ההשתקה של ממצא ל-UNMUTED, משתמשים בפקודה set-mute ב-CLI של gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=UNMUTED

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫FINDING_ID: המזהה של הממצא שרוצים להשתיק

      כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון במאפיין canonicalName, לדוגמה: projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • ‫PARENT: משאב האב (project,‏ folder או organization), תלוי אותיות רישיות

    • ‫PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט

    • LOCATION: the Security Command Center location in which to mute or unmute findings; if data residency is enabled, use eu, sa, or us; otherwise, use the value global

    • ‫SOURCE_ID: מזהה המקור

      הוראות לאחזור מזהה מקור מפורטות במאמר איך מקבלים את מזהה המקור.

המשך


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// setUnmute unmutes an individual finding.
// Unmuting a finding that isn't muted has no effect.
// Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
func setUnmute(w io.Writer, findingPath string) error {
	// findingPath: The relative resource name of the finding. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Use any one of the following formats:
	//  - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
	//  - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
	//  - projects/{project_id}/sources/{source_id}/finding/{finding_id}
	// findingPath := fmt.Sprintf("projects/%s/sources/%s/finding/%s", "your-google-cloud-project-id", "source", "finding-id")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.SetMuteRequest{
		Name: findingPath,
		Mute: securitycenterpb.Finding_UNMUTED}

	finding, err := client.SetMute(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to set the specified mute value: %w", err)
	}
	fmt.Fprintf(w, "Mute value for the finding: %s is %s", finding.Name, finding.Mute)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.Finding;
import com.google.cloud.securitycenter.v2.Finding.Mute;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import com.google.cloud.securitycenter.v2.SetMuteRequest;
import java.io.IOException;

public class SetUnmuteFinding {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the variables within {}
    // findingPath: The relative resource name of the finding. See:
    // https://cloud.google.com/apis/design/resource_names#relative_resource_name
    // Use any one of the following formats:
    //  - organizations/{org_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - folders/{folder_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - projects/{project_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //
    String findingPath = "{path-to-the-finding}";

    setUnmute(findingPath);
  }

  // Unmute an individual finding.
  // Unmuting a finding that isn't muted has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
  public static Finding setUnmute(String findingPath) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      SetMuteRequest setMuteRequest =
          SetMuteRequest.newBuilder()
              .setName(findingPath)
              .setMute(Mute.UNMUTED)
              .build();

      Finding finding = client.setMute(setMuteRequest);
      System.out.println(
          "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
      return finding;
    }
  }
}

Python

def set_unmute_finding(finding_path: str) -> None:
    """
      Unmute an individual finding.
      Unmuting a finding that isn't muted has no effect.
      Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
    Args:
        finding_path: The relative resource name of the finding. See:
        https://cloud.google.com/apis/design/resource_names#relative_resource_name
        Use any one of the following formats:
        - organizations/{organization_id}/sources/{source_id}/finding/{finding_id},
        - folders/{folder_id}/sources/{source_id}/finding/{finding_id},
        - projects/{project_id}/sources/{source_id}/finding/{finding_id}.
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.SetMuteRequest()
    request.name = finding_path
    request.mute = securitycenter_v2.Finding.Mute.UNMUTED

    finding = client.set_mute(request)
    print(f"Mute value for the finding: {finding.mute.name}")
    return finding

REST

ב-Security Command Center API, משתמשים ב-method‏ findings.setMute כדי לבטל את ההשתקה של ממצא. גוף הבקשה הוא enum שמציין את מצב ההשתקה שיתקבל:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute

{
  "mute": "UNMUTED"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PARENT: משאב האב (organizations,‏ folders או projects)
  • ‫PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט
  • LOCATION: the Security Command Center location in which to mute or unmute findings; if data residency is enabled, use eu, sa, or us; otherwise, use the value global
  • ‫SOURCE_ID: המזהה המספרי של המקור

    הוראות לאחזור מזהה מקור מפורטות במאמר איך מקבלים את מזהה המקור.

  • ‫FINDING_ID: המזהה של הממצא שרוצים להשתיק.

    כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון במאפיין canonicalName, לדוגמה: projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

הממצאים שנבחרו כבר לא מוסתרים, והמאפיין mute של הממצאים מוגדר לערך UNMUTED.

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

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

כדי להסיר את ההגדרה של השתקת ממצא ספציפי, אפשר להשתמש במסוף Google Cloud , ב-CLI של gcloud או ב-API של Security Command Center.

לפני שמסירים את ההגדרה לביטול ההשתקה מממצא, חשוב להבין את הנקודות הבאות:

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

כדי להסיר את ההשתקה של ממצא מסוים:

המסוף

  1. במסוף Google Cloud , עוברים לדף Findings של Security Command Center.

    כניסה לדף Findings

  2. בוחרים את Google Cloud הפרויקט או הארגון.
  3. משמאל לקטע תצוגה מקדימה של השאילתה, לוחצים על עריכת השאילתה כדי לפתוח את עורך השאילתות.
  4. בשדה עורך השאילתות, מחליפים את הצהרת ההשתקה הקיימת בהצהרה הבאה:
    mute="MUTED" OR mute="UNMUTED"
  5. לוחצים על אישור. התוצאות בחלונית Findings query results מתעדכנות וכוללות ממצאים שהושתקו או שההשתקה שלהם בוטלה.
  6. אם צריך, מסננים את הממצאים האחרים. לדוגמה, בחלונית Quick filters, בקטע Category, בוחרים את שם הממצא שרוצים לאפס כדי לסנן את כל שאר הקטגוריות של הממצאים.
  7. בוחרים את הממצא שרוצים לאפס. אפשר לבחור ממצא אחד או יותר.
  8. בסרגל הפעולות תוצאות השאילתה של הממצאים, לוחצים על אפשרויות השתקה ואז על הסרת ביטולי השתקה. המאפיין mute של הממצאים שנבחרו מוגדר כ-UNDEFINED, והממצא מוסר מהחלונית Findings query results. אפשר גם לבטל את ההשתקה של ממצא מחלונית הפרטים שלו:
  9. בחלונית Finding query results בדף Findings, בעמודה Category, לוחצים על השם של ממצא ספציפי. חלונית הפרטים של הממצא נפתחת.
  10. לוחצים על יוצרים קמפיינים.
  11. בתפריט פעולה, בוחרים באפשרות הסרת שינויים בהגדרות ההשתקה.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי להגדיר את מצב ההשתקה של ממצא ל-UNDEFINED, משתמשים בפקודה set-mute ב-CLI של gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=UNDEFINED

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫FINDING_ID: המזהה של הממצא שרוצים לאפס

      כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון של מאפיין canonicalName, לדוגמה, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • ‫PARENT: משאב האב (project,‏ folder או organization), תלוי אותיות רישיות

    • ‫PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט

    • LOCATION: the Security Command Center location in which to mute or unmute findings; if data residency is enabled, use eu, sa, or us; otherwise, use the value global

    • ‫SOURCE_ID: מזהה המקור

      הוראות לאחזור מזהה מקור מפורטות במאמר קבלת מזהה המקור.

REST

ב-Security Command Center API, משתמשים ב-method‏ findings.setMute כדי לאפס את מצב ההשתקה של ממצא. גוף הבקשה הוא enum שמציין את מצב ההשתקה שיתקבל:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute

{
  "mute": "UNDEFINED"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PARENT: משאב האב (organizations,‏ folders או projects)
  • ‫PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט
  • LOCATION: the Security Command Center location in which to mute or unmute findings; if data residency is enabled, use eu, sa, or us; otherwise, use the value global
  • ‫SOURCE_ID: המזהה המספרי של המקור

Java


import com.google.cloud.securitycenter.v2.Finding;
import com.google.cloud.securitycenter.v2.Finding.Mute;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import com.google.cloud.securitycenter.v2.SetMuteRequest;
import java.io.IOException;

public class SetMuteUndefinedFinding {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the variables within {}

    // findingPath: The relative resource name of the finding. See:
    // https://cloud.google.com/apis/design/resource_names#relative_resource_name
    // Use any one of the following formats:
    // - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
    // - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
    // - projects/{project_id}/sources/{source_id}/finding/{finding_id}
    String findingPath = "{path-to-the-finding}";
    setMuteUndefined(findingPath);
  }

  // Reset mute state of an individual finding.
  // If a finding is already reset, resetting it again has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE/UNDEFINED.
  public static Finding setMuteUndefined(String findingPath) throws IOException {
    // Initialize client that will be used to send requests. This client only needs
    // to be created once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      SetMuteRequest setMuteRequest =
          SetMuteRequest.newBuilder()
              .setName(findingPath)
              .setMute(Mute.UNDEFINED)
              .build();

      Finding finding = client.setMute(setMuteRequest);
      System.out.println(
          "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
      return finding;
    }
  }
}

השתקה או איפוס של כמה ממצאים קיימים

אפשר לבצע את הפעולות הבאות להשתקת מספר ממצאים קיימים בבת אחת באמצעות הפקודה gcloud scc findings bulk-mute ב-CLI של gcloud או באמצעות ה-method‏ bulkMute של Security Command Center API:

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

  • הסרת ההשתקה של כמה ממצאים קיימים. אם מסירים את ההגדרה לשינוי מצב ההשתקה בתוצאת חיפוש, מצב ההשתקה משתנה מ-MUTED (השתקה סטטית) או מ-UNMUTED (ביטול השתקה סטטי) ל-UNDEFINED. היכולת הזו יכולה להיות שימושית אם עוברים מכללי השתקה סטטיים לכללי השתקה דינמיים.

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

אם הופעל מיקום אחסון הנתונים ב-Security Command Center, פעולות השתקה בכמות גדולה מוגבלות להיקף המיקום של Security Command Center שבו הן מבוצעות.

דוגמאות קוד להשתקת ממצאים בכמות גדולה זמינות במאמר בנושא השתקת ממצאים בכמות גדולה.

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

המסוף

במסוף Google Cloud אפשר להשתיק כמות גדולה של ממצאים רק על ידי יצירת כללי השתקה. במסוףGoogle Cloud , יצירת כללים להשתקת ממצאים משתיקה ממצאים קיימים ועתידיים.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי להשתיק או לאפס כמה ממצאים בבת אחת, מריצים את הפקודה gcloud scc findings bulk-mute:

    gcloud scc findings bulk-mute \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --filter="FILTER" \
      --mute-state=MUTE_STATE

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PARENT: ההיקף בהיררכיית המשאבים שאליו חל כלל להשתקת ממצאים, organization, folder או project.
    • ‫PARENT_ID: המזהה המספרי של הארגון, התיקייה או הפרויקט ברמת ההורה, או המזהה האלפאנומרי של הפרויקט ברמת ההורה.
    • ‫LOCATION: המיקום של Security Command Center שבו רוצים להשתיק או לבטל את ההשתקה של הממצאים. אם מופעלת שמירת נתונים באזור גיאוגרפי מסוים, צריך להשתמש בערכים eu,‏ sa או us. אחרת, צריך להשתמש בערך global.
    • ‫FILTER: הביטוי שאתם מגדירים כדי לסנן את הממצאים.

      לדוגמה, כדי להשתיק את כל הממצאים הקיימים ברמת חומרה נמוכה OPEN_FIREWALL וPUBLIC_IP_ADDRESS בפרויקט internal-test, המסנן יכול להיות "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

    • ‫MUTE_STATE: הערך שמציין אם הממצא מושתק באופן סטטי או לא. הערכים התקפים הם MUTED ו-UNDEFINED. ערך ברירת המחדל הוא MUTED. מגדירים את הערך הזה ל-UNDEFINED רק אם מאפסים את מצב ההשתקה של כמה ממצאים קיימים.

REST

ב-Security Command Center API, משתמשים בשיטה findings.bulkMute כדי להשתיק או לאפס את מצב ההשתקה של כמה ממצאים קיימים. גוף הבקשה מכיל את הביטוי שמשמש לסינון הממצאים:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/findings:bulkMute

{
  "filter": "FILTER",
  "muteState": "MUTE_STATE"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PARENT: משאב האב (organizations,‏ folders או projects).
  • ‫PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט.
  • ‫LOCATION: המיקום של Security Command Center שבו רוצים להשתיק או לבטל את ההשתקה של הממצאים. אם מופעלת שמירת נתונים באזור גיאוגרפי מסוים, צריך להשתמש בערכים eu,‏ sa או us. אחרת, צריך להשתמש בערך global.
  • ‫FILTER: הביטוי שאתם מגדירים כדי לסנן את הממצאים.

    לדוגמה, כדי להשתיק את כל הממצאים הקיימים ברמת חומרה נמוכה OPEN_FIREWALL וPUBLIC_IP_ADDRESS בפרויקט internal-test, המסנן יכול להיות "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

  • ‫MUTE_STATE: הערך שמציין אם הממצא מושתק או לא. הערכים התקינים הם MUTED או UNDEFINED. ערך ברירת המחדל הוא MUTED. מגדירים את הערך הזה ל-UNDEFINED רק אם מאפסים את מצב ההשתקה של כמה ממצאים קיימים.

כל הממצאים הקיימים במשאב שבחרתם, שתואמים בדיוק למסנן, מוסתרים. המאפיין mute של הממצאים מוגדר כ-MUTED.

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

הצגת ממצאים שהושתקו במסוף Google Cloud

אפשר לראות את הממצאים שהושתקו ב Google Cloud מסוף על ידי עריכת שאילתת הממצאים כדי לבחור ממצאים שכוללים את ערך הנכס mute="MUTED".

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

state="ACTIVE"
AND mute="MUTED"

כדי להציג את כל הממצאים הפעילים, גם אלה שהושתקו וגם אלה שלא הושתקו, משמיטים את המאפיין mute מהשאילתה לחלוטין:

state="ACTIVE"

כברירת מחדל, בשאילתת הממצאים במסוף Google Cloud מוצגים רק ממצאים שלא הושתקו.

הצגת ממצאים שהושתקו לפי סוג כלל להשתקת ממצאים

בקטעים הבאים מוסבר איך לשלוח שאילתות לגבי ממצאים פעילים לפי סוג כלל להשתקת ממצאים.

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

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

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

state="ACTIVE" AND
muteInfo.staticMute.applyTime>=TIMESTAMP AND
muteInfo.staticMute.state="MUTED"

מחליפים את TIMESTAMP במחרוזת של תאריך ושעה שמציינת את תחילת התקופה שרוצים לשלוח לגביה שאילתה. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes.

ממצאים של שאילתות שהושתקו על ידי כללי השתקה דינמיים

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

state="ACTIVE" AND
muteUpdateTime>=TIMESTAMP AND
contains(muteInfo.dynamicMuteRecords, muteConfig="PARENT_ID/muteConfigs/CONFIG_ID")

מחליפים את מה שכתוב בשדות הבאים:

  • ‫TIMESTAMP: מחרוזת של תאריך ושעה שמציינת את תחילת התקופה שרוצים לשלוח לגביה שאילתה. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes.
  • ‫PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט, שצוין בפורמט של organizations/123, folders/456 או projects/789.
  • ‫CONFIG_ID: השם של כלל ההשתקה. המזהה צריך להכיל תווים אלפאנומריים ומקפים, והאורך שלו צריך להיות בין תו אחד ל-63 תווים.

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

הפסקה של ההתראות והייצוא של ממצאים מושתקים

אם מפעילים התראות על ממצאים, ממצאים חדשים או מעודכנים שהושתקו ומתאימים למסנני ההתראות עדיין מיוצאים ל-Pub/Sub.

כדי להפסיק את הייצוא וההתראות לגבי ממצאים שהושתקו, משתמשים במאפיין mute כדי להחריג ממצאים שהושתקו במסנן NotificationConfig. לדוגמה, המסנן הבא שולח התראות רק על ממצאים פעילים שלא הושתקו או שלא הוגדר להם מאפיין ההשתקה:

FILTER="state=\"ACTIVE\" AND -mute=\"MUTED\""