EDR(Endpoint Detection and Response)은 향상된 가시성과 사고 대응, 위협 탐지, Threat hunting 그리고 조사에 필요한 데이터를 제공합니다. EDR(Endpoint Detection and Response)이 XDR(Extended Detection and Response)로 발전함에 따라 데이터의 양과 유형은 증가할 것입니다. 데이터가 늘어났지만 걱정하지 않으셔도 됩니다. 작년에 SentinelOne은 Scalyr를 인수하면서 풍부한 데이터 분석 기능을 확보했습니다. 이 기능을 통해 고객은 모든 데이터를 더 빠르고 쉽게 이해할 수 있게되었습니다.
향상된 쿼리 기능을 발표하게 되어 기쁩니다!
Singularity XDR을 위한 PowerQuery 소개
SentinelOne PowerQuery 인터페이스는 데이터 요약, 변환 및 조작을 위한 많은 기능을 제공합니다. 데이터를 필터링하고, 계산을 하고, 그룹과 통계 요약을 만들어 복잡한 질문에 답할 수 있게 합니다.
PowerQuery를 사용하면 데이터를 검색할 수 있을 뿐만 아니라 수천 개의 이벤트를 자동으로 요약해 줍니다. 고객이 Singularity Marketplace 를 통해 서드파티 데이터를 등록하고 PowerQuery를 사용하면 EDR 이상의 원격 측정 소스에서 데이터를 결합할 수 있습니다.
PowerQuery는 다음과 같은 경우에 매우 유용할 수 있습니다 .
- 그룹 데이터(정렬, 카운트 등)
- 통계를 쿼리의 일부로 사용하여 이상 징후를 찾거나 검색을 할 때
- 환경 전체에서 특정 항목을 찾고 요약을 할 때
- 원하는 데이터를 빠르게 찾기 위해 두 개 이상의 쿼리 결합을 원할 때
주요 기능
- 자동 완성을 사용하면 스키마를 이해하지 않고도 쿼리를 빠르고 쉽게 작성할 수 있습니다.
- UI 또는 API를 통해 쿼리를 저장하고 내보낼 수 있습니다.
- 간단한 데이터 요약으로 위협을 찾고 질문에 더 쉽고 빠르게 답변할 수 있습니다.
- 데이터에 대해 숫자, 문자열 및 시간 기반 함수를 수행 할 수 있습니다.
- 데이터 집합(합계, 개수, 평균, 중앙값, 최소값, 최대값, 백분위수 등)
- 쿼리에서 RegEx를 지원합니다.
- 산술 연산자에 대한 쿼리 지원(+, -, *, /, % 및 부정)
- 복잡한 논리를 수행하기 위한 삼항 연산자(let SLA_Status = (latency > 3000 OR error_percentage > .2 ) ? “violation” : “ok”)
PowerQuery 명령에는 다음이 포함됩니다.
- Filter : 모든 표준 데이터 쿼리를 자동 완성 기능을 통해 단순화합니다.
- Columns: 요약 테이블에서 원하는 열 정의를 할 수 있습니다.
- Group by Functions : 레코드를 하나 이상의 필드로 그룹화하고, 각 그룹에 대한통계를 계산하고 (sum, count, estimate_distinct, 백분위수, min, max와 같은 기능을 지원합니다.
- Join:두 개 이상의 서브 쿼리를 실행하고 결과를 단일 테이블로 병합합니다. 쿼리와 일치하는 레코드의 데이터만 결과에 포함됩니다.
- Limit : 후속 명령에 의해 표시되거나 처리되는 레코드 수를 제한합니다.
- Sort : 레코드가 표시되는 순서를 결정합니다.
- Filter : 특정 조건과 일치하지 않는 레코드를 삭제합니다.
- Transpose : 테이블에서 열을 제거하고 해당 값에서 새 열을 만듭니다.
- Parse: regex를 사용하여 열을 인라인으로 추출합니다.
- Union : 두 개 이상의 서브 쿼리를 실행하고 결과를 단일 테이블로 병합합니다.
- Let : 테이블에서 하나 이상의 새 필드를 정의합니다.
PowerQuery에는 많은 사용 사례가 있지만 대량의 데이터를 내보내고 요약하는 몇 가지 예를 뽑아봤습니다.
예 1: Conti 랜섬웨어 IOC Hunt
기존의 랜섬웨어 검색에는 파일 해시에 대한 간단한 쿼리가 필요할 수 있습니다. 이는 환경에 몇 가지 예시나 일치하는 항목만 있는 경우에는 효과적입니다. 만약 문제가 더 커진다면 수천 행의 데이터를 다시 가져와야 됐습니다. PowerQuery를 사용하면 이 해시를 본 모든 호스트를 단일 쿼리의 추가 세부 정보와 함께 빠르게 요약할 수 있습니다. 문제는 ‘이 Conti해시를 본 모든 시스템의 목록을 보여주세요’입니다. 이는 PowerQuery로 신속하게 해결할 수 있습니다.
이 PowerQuery 예에서는 해시에 대한 간단한 검색으로 시작한 다음 엔드포인트 이름 별로 그룹화하는 기능을 추가하고 소스 프로세스 이름 및 개수 에 대한 테이블에 다른 열을 추가 한 다음 가장 큰 수에서 가장 작은 수로 정렬합니다.
- 1번 : 특정 SHA 해시 검색합니다.
- 2번 : 각 엔드포인트 및 소스 프로세스에 대한 이벤트 개수별 그룹화합니다.
- 3번 : 엔드포인트 이름 , 소스 프로세스 이름 및 개수 에 대한 열을 테이블에 추가합니다.
- 4번 : 가장 큰 이벤트부터 가장 작은 이벤트 수로 정렬합니다.
이 쿼리는 수백만 개의 레코드에 대한 읽기 쉽고 이해하기 쉬운 요약을 제공합니다.
예 2: 사용자 및 엔드포인트별 네트워크 연결 볼륨
Threat Hunting 또는 조사의 일환으로 네트워크에 많은 양의 연결이 있는 호스트를 확인하는 것이 도움이 될 수 있습니다. PowerQuery를 사용하면 엔드포인트 및 사용자 테이블을 작성하기 위한 통계 계산을 수행할 수 있습니다.
이 예에서는 프로세스 사용자에 대한 표준 쿼리로 시작합니다 .
유저와 엔드포인트에 의한 네트워크 연결 볼륨다음 쿼리를 한 줄씩 진행하면 됩니다.
- 1번 : 소스 프로세스 사용자를 위한 간단한 와일드카드를 검색합니다.
- 2번 : 프로세스 유저와 엔드포인트 이름으로 connection_count, the sum of the src.process.netConnCount필드를 그룹으로 만듭니다.
- 3번 : 엔드포인트 및 사용자를 위한 테이블에 열을 추가합니다.
- 4번 : connection_count를 가장 큰 이벤트부터 가장 작은 이벤트 수로 정렬합니다.
- 5번: 상위 25개로 결과들을 제한합니다.
우리는 사용 가능한 필드 및 다음에 수행할 작업을 쉽게 이해할 수 있도록 자동 완성 기능을 제공합니다.
예 3: 엔드포인트별 상위 위협 지표
위협 지표는 호스트에 대한 Threat hunting과 조사에 중요한 데이터 소스가 될 수 있습니다. PowerQuery를 사용하면 상당히 많은 수의 위협 지표가 있는 호스트를 식별해 잠재적으로 공격의 초기 단계나 침입한 호스트를 식별할 수 있습니다.
PowerQuery로 이 질문에 답하려면 몇 가지 추가 변환이 필요합니다.
- 1번 : “General”이 아닌 관련 지표 범주가 있는 레코드를 검색합니다.
- 2번 : Indicator.category 필드 와 동일한 Tactic 이라는 새 열을 만듭니다.
- 3번 : 엔드포인트 , Indicator name 및 Tactic 과 같은 테이블의 열을 정의합니다.
- 4번 : 각 열의 indicator count 별로 데이터 그룹화합니다.
- 5번 : 일정기간 동안 1000개 이상의 indicator가 있는 엔드포인트로 데이터를 필터링합니다.
- 6번 : 가장 큰 Indicator count에서 가장 작은 Indicator count로 정렬합니다.
PowerQuery는 당신의 데이터에서 더 많은 가치를 추출합니다.
PowerQuery는 EDR 및 XDR 데이터의 잠재력을 최대한 활용하는 데 필요한 데이터 분석 기능을 제공하기 위한 다음 단계입니다. 이 블로그 게시물에는 PowerQuery의 세 가지 간단한 예가 포함되어 있지만 초보자와 고급 사용자가 데이터에서 답변을 얻을 수 있도록 하는 도구에는 다양한 기능이 있습니다.
사용자는 쿼리하는 데이터의 행 수에 훨씬 더 많은 제한이 있으며 추가 분석을 위해 검색 결과를 CSV로 내보낼 필요가 없습니다. 사용자는 이러한 쿼리를 쉽게 저장하여 몇 초 안에 돌아와 업데이트된 테이블을 생성하거나 API를 사용하여 이 데이터를 외부 애플리케이션으로 가져올 수 있습니다.
PowerQueries, Singularity XDR 그리고 SentinelOne Data Platform에 대해 자세히 알고싶다면 연락을 주시거나 무료 데모를 요청하세요!