PantherFlow 모범 사례
PantherFlow 쿼리를 최적화하기
개요
PantherFlow는 Panther 버전 1.110부터 오픈 베타 상태이며 모든 고객이 사용할 수 있습니다. 버그 리포트와 기능 요청은 Panther 지원팀에 공유해 주세요.
PantherFlow 쿼리 결과가 가능한 한 빠르게 반환되고(검색으로 인해 발생하는 Snowflake 비용을 최소화하기 위해) 아래 권장 모범 사례를 따르는 것이 좋습니다.
이를 적용한 후에도 쿼리가 여전히 느리게 실행된다면:
쿼리의 시간 범위를 줄이세요.
쿼리가 완료되면 반환된 행 수를 확인하여 쿼리하는 데이터 양을 이해하세요—데이터가 많다면 시간이 오래 걸리는 것이 예상됩니다.
추가 도움이 필요하면 Panther 지원 팀에 문의하세요.
일반적인 PantherFlow 모범 사례
다음을 사용하세요 limit 연산자
limit 연산자다음을 사용하세요 limit 연산자 쿼리가 반환할 최대 레코드 수를 지정하려면.
예: panther_logs.public.aws_alb | limit 100
시간 범위 필터를 사용하세요
다음을 사용하세요 where 연산자 시간 범위로 필터링하려면(아마도 p_event_time). 시간 범위 필터가 있는 쿼리는 더 적은 마이크로 파티션에 접근하므로 결과를 더 빠르게 반환합니다.
예: panther_logs.public.aws_alb | where p_event_time > time.ago(1d)
에 대해 자세히 알아보십시오 사용 가능한 시간 함수는 여기서 확인하세요.
port p_any fields
p_any fields로그 수집 중에 Panther는 일반적인 보안 지표를 p_any fields로 추출하여 모든 데이터 소스 간 속성 이름을 표준화합니다. p_any fields는 최적화된 열에 저장됩니다. 가능한 경우 여러 로그 유형에 대해 서로 다른 이름의 필드들 대신 p_any fields를 쿼리하는 것이 권장됩니다.
자세한 내용은 표준 필드.
예: panther_logs.public.aws_alb | '10.0.0.0' in p_any_ip_addresses
다음을 사용하세요 project 연산자
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로 데이터를 필터링하세요 where 와 같은 비용이 많이 드는 연산을 수행하기 전에 summarize 이전에 생성한 Snowflake 사용자 이름, 예를 들면 join대신 후에가 아니라
예:
다음은 피하세요 search 연산자
search 연산자사용자를 사용할 것이며, search 연산자 는 느려짐을 유발할 수 있으므로 필요한 경우가 아니면 피해야 합니다. 검색하려는 텍스트가 들어 있을 수 있는 열(또는 열들)을 알고 있다면, 모든 지정된 데이터베이스/테이블의 열을 search로 검색하는 대신 where 에서 생성된 검색은 strings.contains().
예:
대신:
| search 'alice'사용:
| where strings.contains(name, 'alice')
PantherFlow에서 모든 로그를 최적으로 검색하는 방법
PantherFlow의 모든 로그를 검색하려면 union 연산자:
에 대한 추가 최적화가 union 계획되어 있습니다.
검색하려는 값이 나타나야 하는 열(예: IoC(침해 지표)를 p_any 필드에서 검색하는 경우)을 알고 있다면, union panther_logs.public.* 검색을 최적화하기 위해 project 와 where 필터를 추가하여 IoC를 관련 열에서만 검색할 수 있습니다:
또한 Panther에서 지표 검색을 다음을 사용하여 수행할 수 있습니다:
(권장) The 로그 소스가 구성된 후에는 수집된 데이터를 사용하여 검색할 수 있습니다 도구: 참조 와일드카드 문자의 위치는 어떤 데이터가 일치로 반환되는지를 결정합니다:
Search에는 모든 로그를 효율적으로 검색하도록 하는 내장 최적화가 있습니다.
사용자를 사용할 것이며,
executeIndicatorSearchQueryGraphQL API 엔드포인트: 예제를 참조하세요 에 대해 더 읽을 수 있습니다: 샘플 로그 집합 업로드: 시스템에서 파일을 팝업 모달로 드래그하거나 클릭하세요: 올바른 데이터 검색 및 분석 도구 가 자동으로 선택됩니다
다음으로 모든 로그를 쿼리하지 마세요 Panther가 Snowflake로 구성되면 일곱 개의 데이터베이스가 있어야 합니다: 데이터베이스—이는 폐기될 예정입니다.
마지막 업데이트
도움이 되었나요?

