대시보드 필터 구성
이 문서에서는 데이터 소스 필터링을 통해 관련 차트에 표시되는 데이터를 세부적으로 조정하는 방법을 설명합니다.
필터 추가
필터를 추가하려면 다음 단계를 따르세요.
대시보드 수정 페이지에서 필터를 클릭하여 필터를 추가합니다.
필터 관리 창에서 추가를 클릭하여 새 필터를 추가합니다.
필터링할 필드 필드에 데이터를 필터링하는 데 사용할 필드를 입력합니다. 지원되는 데이터 소스 및 필드에 대한 자세한 내용은 지원되는 데이터 소스를 참고하세요.
필터 이름 필드에 필터 이름을 입력합니다.
적용 대상 필드에서 필터를 적용할 차트를 선택합니다.
선택사항: 필터의 기본값을 설정합니다.
완료를 클릭하여 필터를 추가하고 필터 관리 창을 닫습니다.
고급 필터링
Google Security Operations는 내장 대시보드 플랫폼 내에서 고급 필터링을 제공합니다. 특정 필드에 연결된 기본 필터와 달리 고급 필터는 토큰이라고도 하는 쿼리 변수로 작동합니다. 이 기능을 사용하면 보안 분석가가 런타임에 동적 값, 복잡한 정규 표현식 또는 불리언 논리를 YARA-L 쿼리에 직접 삽입할 수 있습니다.
주요 특징
- 유연한 필터링: 단일 필터 입력 (예:
$token$)을 사용하여 대시보드 내 여러 차트에서 여러 필드를 기반으로 동시에 필터링합니다. - 동적 드롭다운 옵션: 별도의 YARA-L 쿼리 결과를 사용하여 필터 선택사항을 동적으로 채웁니다. 이렇게 하면 사용자가 항상 최신 데이터 중에서 선택할 수 있습니다.
- 유연한 형식 지정: 맞춤 접두사, 접미사, 구분자 (예: 정규식의 경우
/,IN절의 경우,)를 정의하여 쿼리에 삽입되기 전에 사용자가 선택한 값의 형식을 지정합니다. - 기본값: 대시보드가 즉시 데이터와 함께 로드되도록 기본값을 구성하고 사용자 상호작용이 발생하지 않는 자동 예약 보고서를 지원합니다.
- 다중 선택 지원: 사용자가 사용자 정의 구분자로 연결된 단일 토큰에 여러 값을 선택할 수 있도록 지원합니다.
보안 및 권한
고급 필터링은 기존 역할 기반 액세스 제어 (RBAC) 권한을 사용하며 새 권한은 필요하지 않습니다. 다음 Identity and Access Management (IAM) 권한이 관련이 있습니다.
| IAM 권한 | 목적 |
|---|---|
nativedashboards.update |
대시보드 내에서 고급 필터를 만들고 구성합니다. |
nativeDashboards.get |
대시보드를 보고 필터 입력 컨트롤을 사용합니다. |
dashboardQueries.execute |
대체된 토큰으로 최종 해결된 쿼리를 실행합니다. |
데이터 RBAC 시행의 경우 동적 드롭다운을 채우는 데 사용되는 쿼리는 보기 사용자의 컨텍스트에서 실행됩니다. 이렇게 하면 사용자에게 액세스 권한이 있는 값 (예: 특정 IP)만 표시됩니다.
고급 필터 구성 및 사용
다음 섹션에서는 Google SecOps 대시보드 내에서 고급 필터를 설정하고 활용하는 프로세스를 자세히 설명합니다.
새 고급 필터 만들기
새 고급 필터를 만들려면 다음 단계를 따르세요.
- 대시보드에서 필터 관리 대화상자를 엽니다.
- 를 선택한 다음 필터 유형으로 고급 필터를 선택합니다.
- 필터 이름 (라벨)과 토큰 변수 (예:
token)를 입력합니다.- 토큰 변수 구문 제약 조건: 토큰 변수 이름에는 영숫자 문자와 밑줄 (
^[a-zA-Z0-9_]+$)만 허용됩니다. - 고유성: 토큰 이름은 고유해야 합니다. 충돌이 발생하면 필터를 저장할 수 없습니다.
- 토큰 변수 구문 제약 조건: 토큰 변수 이름에는 영숫자 문자와 밑줄 (
- 쿼리에서 생성 (동적 YARA-L 결과) 또는 수동 입력 (정적 목록)을 선택합니다.
- 쿼리에서 생성을 선택한 경우:
- 쿼리를 입력하고 기간을 정의합니다.
- 검색 실행을 클릭합니다.
- 열 선택 드롭다운 메뉴에서 열을 선택합니다.
- 미리보기 필터 드롭다운 드롭다운 메뉴에서 값을 선택합니다.
- 수동 입력을 선택한 경우 수동 입력 필드에 값을 입력하고 추가를 클릭합니다.
- 쿼리에서 생성을 선택한 경우:
- 정규 표현식과 같은 특정 로직의 값을 래핑할 접두사와 접미사를 선택합니다.
- 토큰이 YARA-L 쿼리의 정규 표현식 구분 기호 (예:
principal.ip = /$token$/) 내에서 사용되는 경우 일반적으로 접두사 또는 접미사를 지정할 필요가 없습니다. - 토큰이 정규 표현식 구분 기호 없이 사용되지만 고정된 정규 표현식 (예:
principal.ip = $token$)으로 작동해야 하는 경우 접두사를/^로, 접미사를$/로 설정합니다.
- 토큰이 YARA-L 쿼리의 정규 표현식 구분 기호 (예:
- 여러 옵션 선택 허용 버튼을 전환하여 구분자 (예: 정규 표현식
OR논리의 경우|)를 정의합니다. - 드롭다운 메뉴에서 기본값을 선택합니다.
- 기본값에 프리픽스/서픽스 적용 체크박스를 선택하거나 선택 해제합니다.
- 완료를 클릭합니다.
차트 쿼리에서 토큰 사용
대시보드 작성자는 $ 기호로 래핑된 토큰을 차트의 쿼리에 수동으로 삽입해야 합니다.
예:
principal.hostname = $hostname$re.regex(target.ip, $ip_regex$)
토큰 유효성 검사의 경우 쿼리에서 정의되지 않은 토큰을 사용하면 노란색 경고 배너가 표시됩니다. 이러한 경우 시스템은 토큰을 리터럴 문자열로 취급합니다.
로드 시 기본 동작
Google SecOps 대시보드의 고급 필터는 문자열 대체를 통해서만 작동합니다. 표준 필터와 달리 시스템은 로직을 해석하지 않지만 쿼리가 컴파일되기 전에 선택한 값으로 $token$의 '찾기 및 바꾸기'를 실행합니다. 쿼리는 템플릿 역할을 하며, 최종 토큰 대체 쿼리가 구문상 올바른지 확인하는 것은 사용자의 책임입니다.
기본값 및 쿼리 유효성
입력이 제공되지 않으면 시스템에서 토큰을 자동으로 무시하지 않으므로 초기 로드 및 예약된 보고서에 유효한 쿼리 구조를 유지하는 기본값을 정의해야 합니다.
다음은 효과적인 기본값 구성의 예입니다.
| 사용 사례 | 질문 컨텍스트 | 기본값 구성 | 결과 로직 |
|---|---|---|---|
| 완전 일치 검색 | principal.hostname = $host$ |
잘못됨: 비워 두면 구문이 잘못됩니다 (principal.hostname =). 올바름: 유효한 구문을 유지하는 자리표시자를 사용합니다. |
기본값이 비어 있는 예: principal.hostname =이 잘못된 YARA-L이므로 실패합니다. |
| 완전 일치 검색 | principal.hostname = "$host$" |
비워 두기 | 성공: principal.hostname = ""로 평가되며, 결과는 반환되지 않지만 구문적으로 유효합니다. |
| 와일드 카드 (모두 표시) | principal.hostname = /.*$host$.*/ |
.* |
성공: 모든 결과를 반환하는 '모두 선택' 정규 표현식인 principal.hostname = /.*/로 평가됩니다. |
| 정규 표현식 (모두 표시) | principal.hostname = $host$ |
/.*/ |
성공: 모든 호스트 이름과 일치하는 principal.hostname = /.*/로 평가됩니다. |
| 정규 표현식 앵커 | metadata.product_name = /^$token$$/ |
.* |
성공: 로드 시 metadata.product_name = /^.*$/로 평가되어 모든 제품과 일치합니다. |
| 정수 (모두 표시) | principal.host = $token$ |
0 or 1=1 |
성공: principal.host = 0 or 1=1로 평가되어 모든 결과를 효과적으로 반환합니다. |
| 정수 (모두 표시) | cast.as_string(principal.host) = $token$ |
/.*/ |
성공: 호스트 정수의 모든 문자열 표현과 일치하는 cast.as_string(principal.host) = /.*/로 평가됩니다. |
| 기본 all 논리가 있는 단일 선택 토큰 | $log = metadata.log_type \n $log = if($log$ = "", metadata.log_type, $log$)\n match: $log |
비워 두기 (접두사: ", 접미사: ") |
성공: 기본값이 비어 있으면 $log가 ""이 됩니다. if 문은 $log = if("" = "", metadata.log_type, "")가 되고 이는 $log = metadata.log_type로 단순화됩니다. 그러면 쿼리가 모든 로그 유형과 일치합니다. |
| 단일 특정 기본값 | $et = metadata.event_type \n $et = $et2$ \n match: $et |
EMAIL_TRANSACTION (프리픽스: ", 서픽스: ") |
성공: 로드 시 $et = "EMAIL_TRANSACTION"로 평가되어 기본 결과를 특정 이벤트 카테고리로 제한합니다. |
| 정규 표현식 다중 선택 | $log = metadata.log_type \n $log = $logs$ \n match: $log |
.* (프리픽스: /, 접미사: /, 구분자: |) |
성공: 로드 시 $log = /.*/로 평가되어 모든 로그 유형과 일치합니다. 여러 값 (예: DNS, DHCP)을 선택하면 $log = /DNS|DHCP/로 평가됩니다. |
| 항상 참 기본값 (모두 표시) | $et = metadata.event_type \n $et = $et4$ \n match: $et |
"USER_LOGIN" or 1=1(구분자: " or metadata.event_type = ", 기본값에 프리픽스/서픽스 적용: 선택되지 않음) |
성공: 로드 시 $et = "USER_LOGIN" or 1=1로 평가되어 모든 이벤트와 일치합니다. 특정 옵션을 선택하면 문자열이 명시적 OR 동등성 절로 대체됩니다. |
| 전체 절 삽입 (다중 선택) | $et$ \n $et = metadata.event_type \n match: $et |
비워 둠(접두사: metadata.event_type = ", 접미사: ", 구분자: " or metadata.event_type = ", 기본값에 접두사/접미사 적용: 선택되지 않음) |
성공: 토큰 자체가 전체 타겟 필드 술어를 삽입합니다. USER_LOGIN 및 NETWORK_DNS을 선택하면 metadata.event_type = "USER_LOGIN" or metadata.event_type = "NETWORK_DNS"로 확장됩니다. |
| 정규식 기본 캐치올 | $pet = metadata.product_event_type \n $pet = $pet$ \n match: $pet |
/.*/(접두사: ", 접미사: ", 기본값에 접두사/접미사 적용: 선택되지 않음) |
성공: 로드 시 $pet = /.*/로 평가되어 모든 제품 이벤트 유형과 일치합니다. 특정 값을 선택하면 따옴표가 적용됩니다 (예: $pet = "USER_LOGIN"). |
고급 필터의 구문 고려사항
시스템은 특수문자 (예: 따옴표 또는 슬래시)에 대해 자동 이스케이프를 실행하지 않습니다. 구성된 접두사, 접미사, 구분자가 사용 중인 쿼리 언어 (YARA-L)의 구문과 일치하는지 항상 확인하세요.
API 사양
자세한 API 사양은 AdvancedFilterConfig를 참고하세요.
전역 시간 필터 관리
전역 시간 필터는 차트의 데이터 소스와 관계없이 모든 차트에 적용됩니다.
전역 시간 필터를 적용할 차트를 선택하려면 다음 단계를 따르세요.
대시보드 수정 페이지에서 필터를 클릭하여 필터를 추가합니다.
필터 관리 창의 필터 목록에서 전역 시간 필터를 선택합니다.
전환 버튼을 클릭하여 전역 시간 필터가 사용 설정되어 있는지 확인합니다.
적용 대상 필드에서 전역 시간 필터를 적용할 차트를 선택합니다.
기본값 설정 필드에서 절대값 또는 상대값을 사용하여 데이터를 볼 기간을 설정합니다.
완료를 클릭하여 필터를 사용 설정하고 필터 관리 창을 닫습니다.
대시보드 필터 적용
필터를 적용하려면 다음 단계를 따르세요.
대시보드 수정 페이지에서 뒤로 > 필터를 클릭하여 대시보드 필터를 확인합니다.
대시보드 필터 창에서 생성한 필터를 선택합니다.
선택한 필드의 값을 입력합니다.
적용을 클릭합니다. 필터가 적용되는 차트가 새 데이터로 새로고침됩니다.
전역 시간 필터 변경
대시보드를 열면 기본 시간 범위로 해당 차트에 전역 시간 필터가 적용됩니다.
전역 시간 필터 값을 변경하려면 다음 단계를 따르세요.
일정을 클릭합니다.
전역 시간 필터 대화상자에서
past또는between연산자를 선택합니다.기간을 선택합니다.
적용을 클릭합니다. 선택한 차트가 전역 시간 필터를 기반으로 새 데이터로 업데이트됩니다.
Past 연산자 이해하기
past 연산자는 사용자가 제공한 값과 단위를 기반으로 시작 시간을 계산합니다. 종료 시간은 항상 현재 시점입니다.
시작 시간 계산은 단위에 따라 다릅니다.
- 초, 분, 시간: 이 단위는 현재 타임스탬프에서 정확한 초, 분 또는 시간을 빼서 시작 시간을 계산합니다.
- 일, 주, 월, 년: 이러한 단위는 시작 시간을 현재 또는 이전 기간의 시작 (예: 현재 일 또는 월의 시작)으로 스냅합니다.
다음 표는 현재 타임스탬프가 2025년 7월 2일 13시 13분인 경우의 예를 보여줍니다.
| 값 | 단위 | 필터 시작 시간 |
|---|---|---|
n |
초 | 2025년 7월 2일 13시 13분 0초에서 n초를 뺀 시간 |
n |
분 | 2025년 7월 2일 13시 13분 0초에서 n분을 뺀 시간 |
n |
시간 | 2025년 7월 2일 13시 13분 00초에서 n시간을 뺀 시간 |
1 |
일 | 2025년 7월 2일 00:00:00 (현재 날짜의 시작) |
2 |
일 | 2025년 7월 1일 00:00:00 (전날 시작) |
1 |
주 | 현재 주의 첫날 00:00:00 한 주의 시작 요일은 시스템의 언어 설정에 따라 다릅니다. |
1 |
월 | 00:00:00 2025년 7월 1일 (현재 월 시작) |
2 |
개월 | 2025년 6월 1일 00:00:00 (전월 시작) |
1 |
연도 | 2025년 1월 1일 00:00:00 (올해 시작) |
2 |
연 | 2024년 1월 1일 00:00:00 (전년도 시작) |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.