PantherFlow 모범 사례

PantherFlow 쿼리를 최적화하기

개요

circle-info

PantherFlow는 Panther 버전 1.110부터 오픈 베타 상태이며 모든 고객이 사용할 수 있습니다. 버그 리포트와 기능 요청은 Panther 지원팀에 공유해 주세요.

PantherFlow 쿼리 결과가 가능한 한 빠르게 반환되고(검색으로 인해 발생하는 Snowflake 비용을 최소화하기 위해) 아래 권장 모범 사례를 따르는 것이 좋습니다.

이를 적용한 후에도 쿼리가 여전히 느리게 실행된다면:

  • 쿼리의 시간 범위를 줄이세요.

  • 쿼리가 완료되면 반환된 행 수를 확인하여 쿼리하는 데이터 양을 이해하세요—데이터가 많다면 시간이 오래 걸리는 것이 예상됩니다.

  • 추가 도움이 필요하면 Panther 지원 팀에 문의하세요.

일반적인 PantherFlow 모범 사례

다음을 사용하세요 limit 연산자

다음을 사용하세요 limit 연산자 쿼리가 반환할 최대 레코드 수를 지정하려면.

예: panther_logs.public.aws_alb | limit 100

시간 범위 필터를 사용하세요

다음을 사용하세요 where 연산자 시간 범위로 필터링하려면(아마도 p_event_time). 시간 범위 필터가 있는 쿼리는 더 적은 마이크로 파티션arrow-up-right에 접근하므로 결과를 더 빠르게 반환합니다.

예: panther_logs.public.aws_alb | where p_event_time > time.ago(1d)

에 대해 자세히 알아보십시오 사용 가능한 시간 함수는 여기서 확인하세요.

port p_any fields

로그 수집 중에 Panther는 일반적인 보안 지표를 p_any fields로 추출하여 모든 데이터 소스 간 속성 이름을 표준화합니다. p_any fields는 최적화된 열에 저장됩니다. 가능한 경우 여러 로그 유형에 대해 서로 다른 이름의 필드들 대신 p_any fields를 쿼리하는 것이 권장됩니다.

자세한 내용은 표준 필드arrow-up-right.

예: panther_logs.public.aws_alb | '10.0.0.0' in p_any_ip_addresses

다음을 사용하세요 project 연산자

쿼리에 project 연산자 가 없으면 모든 열을 가져오게 되어 쿼리가 느려질 수 있습니다. 가능한 경우 조사에 필요한 필드만 쿼리하려면 project 를 사용하세요.

예: panther_logs.public.aws_alb | project targetIp, targetPort

결과 요약

요약은 전체 로그 레코드를 가져오는 쿼리보다 더 빠르게 실행됩니다. 요약을 사용하는 것은 장기간의 로그를 조사할 때나 조사 중인 시간 범위에 얼마나 많은 데이터가 있는지 모를 때 특히 유용합니다.

전체 데이터 세트를 쿼리하는 대신 summarize 연산자를 사용하세요. 이는 더 빠르게 실행되며 다음에 좁혀서 쿼리할 시간 범위를 결정하는 데 도움이 됩니다.

예: panther_logs.public.aws_alb | summarize count=agg.count() by targetIp

에 대해 자세히 알아보십시오 사용 가능한 집계 함수는 여기서 확인하세요.

초기에 where

로 데이터를 필터링하세요 where 와 같은 비용이 많이 드는 연산을 수행하기 전에 summarize 이전에 생성한 Snowflake 사용자 이름, 예를 들면 join대신 후에가 아니라

예:

사용자를 사용할 것이며, search 연산자 는 느려짐을 유발할 수 있으므로 필요한 경우가 아니면 피해야 합니다. 검색하려는 텍스트가 들어 있을 수 있는 열(또는 열들)을 알고 있다면, 모든 지정된 데이터베이스/테이블의 열을 search로 검색하는 대신 where 에서 생성된 검색은 strings.contains().

예:

  • 대신: | search 'alice'

  • 사용: | where strings.contains(name, 'alice')

PantherFlow에서 모든 로그를 최적으로 검색하는 방법

PantherFlow의 모든 로그를 검색하려면 union 연산자:

circle-info

에 대한 추가 최적화가 union 계획되어 있습니다.

검색하려는 값이 나타나야 하는 열(예: IoC(침해 지표)를 p_any 필드에서 검색하는 경우)을 알고 있다면, union panther_logs.public.* 검색을 최적화하기 위해 projectwhere 필터를 추가하여 IoC를 관련 열에서만 검색할 수 있습니다:

또한 Panther에서 지표 검색을 다음을 사용하여 수행할 수 있습니다:

circle-exclamation

마지막 업데이트

도움이 되었나요?