다음을 통해 공유


Microsoft Sentinel 데이터 레이크에서 KQL 쿼리 실행

Microsoft Defender 포털의 데이터 레이크 탐색은 데이터 레이크를 분석하는 통합 인터페이스를 제공합니다. KQL(Kusto 쿼리 언어) 쿼리를 실행하고, 작업을 만들고, 관리할 수 있습니다.

데이터 레이크 탐색 아래의 KQL 쿼리 페이지에서는 데이터 레이크 리소스에 대한 KQL 쿼리를 편집하고 실행할 수 있습니다. 데이터 레이크에서 분석 계층으로 데이터를 승격하는 작업을 만들거나 데이터 레이크 계층에서 집계 테이블을 만듭니다. 필요에 따라 작업을 실행하거나 일정을 예약합니다. 작업 페이지에서 작업을 관리할 수 있습니다. 사용, 사용 안 함, 편집 또는 삭제 자세한 내용은 Microsoft Sentinel 데이터 레이크에서 작업 만들기를 참조하세요.

필수 조건

Microsoft Sentinel 데이터 레이크에서 KQL 쿼리를 실행하려면 다음과 같은 필수 구성 요소가 필요합니다.

데이터 레이크에 온보딩

온보딩 프로세스를 완료한 후 Microsoft Defender 포털에서 KQL 쿼리를 실행할 수 있습니다. 온보딩에 대한 자세한 내용은 Microsoft Sentinel 데이터 레이크에 온보딩을 참조하세요.

권한

Microsoft Entra ID 역할을 사용하면 데이터 레이크의 모든 작업 영역에 액세스할 수 있습니다. 또는 Azure RBAC 역할을 사용하여 개별 작업 영역에 대한 액세스 권한을 부여할 수 있습니다. Microsoft Sentinel 작업 영역에 대한 Azure RBAC 권한이 있는 사용자는 데이터 레이크 계층에서 해당 작업 영역에 대해 KQL 쿼리를 실행할 수 있습니다. 역할 및 권한에 대한 자세한 내용은 Microsoft Sentinel 데이터 레이크 역할 및 사용 권한을 참조하세요.

KQL 쿼리 작성

데이터 레이크에 대한 쿼리 작성은 고급 헌팅 환경에서 쿼리를 작성하는 것과 비슷합니다. 동일한 KQL 구문과 함수를 사용할 수 있습니다. KQL은 고급 분석 및 기계 학습 함수를 지원합니다. 쿼리 편집기는 IntelliSense 및 자동 완성과 같은 기능을 갖춘 KQL 쿼리를 실행하기 위한 인터페이스를 제공하여 효율적으로 작성하는 데 도움이 됩니다. KQL 구문 및 함수에 대한 자세한 개요는 KQL(Kusto Query Language) 개요를 참조하세요.

Defender 포털의 KQL 쿼리

새 쿼리를 선택하여 새 쿼리 탭을 만듭니다. 포털은 각 탭에 마지막 쿼리를 저장합니다. 탭 간을 전환하여 동시에 여러 쿼리에서 작동합니다.

쿼리 기록 탭에는 이전에 실행한 쿼리, 쿼리 처리 시간 및 완료 상태 목록이 표시됩니다. 목록에서 선택하여 새 탭에서 이전 쿼리를 열 수 있습니다. 포털은 쿼리 기록을 30일 동안 저장합니다. 쿼리를 선택하여 편집하거나 다시 실행합니다.

Defender 포털의 KQL 쿼리 페이지 스크린샷

작업 영역 선택

단일 작업 영역 또는 여러 작업 영역에 대해 쿼리를 실행할 수 있습니다. 선택한 작업 영역 드롭다운을 사용하여 쿼리 편집기의 오른쪽 위 모서리에 있는 작업 영역을 선택합니다 . 선택한 작업 영역에 따라 쿼리에 사용할 수 있는 테이블이 결정됩니다. 선택한 작업 영역은 쿼리 편집기에서 모든 쿼리 탭에 적용됩니다. 여러 작업 영역을 union() 사용하는 경우 연산자는 기본적으로 서로 다른 작업 영역의 이름과 스키마가 같은 테이블에 적용됩니다. 연산자를 workspace() 사용하여 특정 작업 영역에서 테이블을 쿼리합니다(예: workspace("MyWorkspace").AuditLogs).

온보딩 과정에서 빈 작업 영역 또는 작업 영역을 하나만 선택하면 스키마 브라우저에 테이블이 표시되지 않습니다.

작업 영역 선택 패널을 보여 주는 스크린샷

시간 범위 선택

쿼리 편집기 위의 시간 선택기를 사용하여 쿼리의 시간 범위를 선택합니다. 사용자 지정 시간 범위 옵션을 사용하여 특정 시작 및 종료 시간을 설정할 수 있습니다. 시간 범위는 최대 12년의 기간일 수 있습니다.

시간 범위 선택기를 보여 주는 스크린샷

KQL 쿼리 구문에서 시간 범위를 지정할 수도 있습니다. 예를 들면 다음과 같습니다.

  • where TimeGenerated between (datetime(2020-01-01) .. datetime(2020-12-31))
  • where TimeGenerated between(ago(180d)..ago(90d))

비고

쿼리는 500,000개 행 또는 64MB의 데이터로 제한되며 8분 후에 시간이 초과됩니다. 광범위한 시간 범위를 선택하면 쿼리가 이러한 제한을 초과할 수 있습니다. 장기 실행 쿼리에 비동기 쿼리를 사용하는 것이 좋습니다. 자세한 내용은 비동기 쿼리를 참조하세요.

스키마 정보 보기

스키마 브라우저는 범주별로 그룹화된 선택한 작업 영역에 대해 사용 가능한 테이블 및 해당 열 목록을 제공합니다. 시스템 테이블은 자산 범주에 표시됩니다. _CL, _KQL_CL, _SPARK, 및 _SPARK_CL 사용자 지정 테이블은 사용자 지정 로그 범주에 그룹화됩니다. 스키마 브라우저를 사용하여 데이터 레이크에서 사용할 수 있는 데이터를 탐색하고 테이블 및 열을 검색합니다. 검색 상자를 사용하여 특정 테이블을 빠르게 찾을 수 있습니다.

KQL 편집기에서 스키마 브라우저 패널을 보여 주는 스크린샷

결과 창

결과 창에 쿼리 결과가 표시됩니다. 결과를 테이블 형식으로 볼 수 있으며 결과 창의 왼쪽 위 모서리에 있는 내보내기 단추를 사용하여 결과를 CSV 파일로 내보 낼 수 있습니다. 빈 열 표시 단추를 사용하여 빈 열 의 표시 유형을 전환합니다. 열 사용자 지정 단추를 사용하면 결과 창에 표시할 열을 선택할 수 있습니다.

결과 창의 오른쪽 위 모서리에 있는 검색 상자를 사용하여 결과를 검색할 수 있습니다.

KQL 쿼리 편집기에서 결과 창을 보여 주는 스크린샷

즉시 적용 가능한 쿼리

쿼리 탭은 기본 KQL 쿼리 컬렉션을 제공합니다. 이러한 쿼리는 보안 인시던트 조사 및 위협 헌팅과 같은 일반적인 시나리오 및 사용 사례를 다룹니다. 이러한 쿼리를 as-is 사용하거나 특정 요구 사항에 맞게 수정할 수 있습니다.

... 아이콘을 사용하여 목록에서 쿼리를 선택합니다. 편집을 위해 새 쿼리 탭에서 열거나 즉시 실행할 수 있습니다.

샘플 쿼리에 대한 자세한 내용은 Microsoft Sentinel 데이터 레이크에 대한 샘플 KQL 쿼리를 참조하세요.

KQL 쿼리 편집기의 샘플 쿼리 탭 스크린샷

비동기 쿼리

장기 실행 쿼리를 비동기적으로 실행할 수 있으므로 서버에서 쿼리가 실행되는 동안 작업을 계속할 수 있습니다. 쿼리를 비동기적으로 실행하려면 쿼리 실행 단추에서 아래쪽 화살표를 선택한 다음 , 비동기 쿼리 실행을 선택합니다. 비동기 쿼리를 식별하는 쿼리 이름을 입력합니다. 쿼리를 제출한 후 비동기 쿼리 탭에서 상태를 모니터링할 수 있습니다. 쿼리가 완료되면 목록에서 쿼리 이름을 선택하여 결과를 볼 수 있습니다.

KQL 쿼리 편집기에서 비동기 쿼리 탭을 보여 주는 스크린샷

동기 쿼리를 실행하는 데 2분 이상이 걸리면 쿼리를 비동기적으로 실행할지 묻는 프롬프트가 나타납니다. 비동기 실행을 선택하여 비동기적으로 실행할 쿼리를 변경합니다.

장기 실행 쿼리를 비동기 쿼리로 변경하라는 프롬프트를 보여 주는 스크린샷

비동기 쿼리 결과 가져오기

비동기 쿼리 결과를 보려면 비동기 쿼리 탭에서 완료된 비 동기 쿼리를 선택하고 결과 가져오기를 선택합니다. 쿼리는 쿼리 편집기에서 주석으로 표시되고 결과는 결과 탭에 표시됩니다.

결과는 24시간 동안 저장되며 여러 번 액세스할 수 있습니다. 결과 창의 왼쪽 위 모서리에 있는 내보내기 단추를 사용하여 결과를 CSV 파일로 내보 낼 수 있습니다.

KQL 쿼리 편집기의 비동기 쿼리 결과를 보여 주는 스크린샷

직업

작업은 데이터 레이크 계층의 데이터에 대해 KQL 쿼리를 실행하고 결과를 분석 계층으로 승격하는 데 사용됩니다. 일회성 또는 예약된 작업을 만들 수 있으며 작업 페이지에서 작업을 사용, 사용 안 함, 편집 또는 삭제할 수 있습니다. 현재 쿼리를 기반으로 작업을 만들려면 작업 만들기 단추를 선택합니다. 작업 만들기 및 관리에 대한 자세한 내용은 Microsoft Sentinel 데이터 레이크에서 작업 만들기를 참조하세요.

Azure Data Explorer(아주르 데이터 탐색기)

Azure ADX(Data Explorer)를 사용하여 Microsoft Sentinel 데이터 레이크에 대해 KQL 쿼리를 실행할 수 있습니다. ADX는 강력한 쿼리 엔진 및 고급 분석 기능을 제공합니다. ADX를 사용하여 데이터 레이크에 연결하려면 다음 URI를 사용하여 새 연결을 만듭니다. https://api.securityplatform.microsoft.com/lake/kql

ADX를 사용하여 데이터 레이크의 테이블을 쿼리할 때는 이 함수를 external_table() 사용하여 데이터에 액세스해야 합니다. 다음은 그 예입니다.

external_table("AADRiskyUsers")
| take 100

쿼리 고려 사항 및 제한 사항

  • 쿼리는 선택한 작업 영역에 대해 실행됩니다. 쿼리를 실행하기 전에 올바른 작업 영역을 선택해야 합니다.

  • Microsoft Sentinel 데이터 레이크에서 KQL 쿼리를 실행하면 쿼리 청구 미터에 따라 요금이 발생합니다. 자세한 내용은 비용 계획 및 Microsoft Sentinel 가격 책정 및 청구 이해를 참조하세요.

  • 데이터 수집 및 테이블 보존 정책을 검토합니다. 쿼리 시간 범위를 설정하기 전에 데이터 레이크 테이블의 데이터 보존 및 선택한 시간 범위에 데이터를 사용할 수 있는지 여부를 알고 있어야 합니다. 자세한 내용은 Microsoft Defender 포털에서 데이터 계층 및 보존 관리를 참조하세요.

  • 데이터 레이크에 대한 KQL 쿼리는 분석 계층의 쿼리보다 성능이 떨어집니다. 기록 데이터를 탐색하거나 테이블이 데이터 레이크 전용 모드로 저장된 경우에만 데이터 레이크에 대해 KQL 쿼리를 사용합니다.

  • 현재 지원되는 KQL 컨트롤 명령은 다음과 같습니다.

    • .show version
    • .show databases
    • .show databases entities
    • .show database
  • stored_query_results 명령을 사용할 때 KQL 쿼리에 시간 범위를 지정하십시오. 쿼리 편집기 위의 시간 선택기는 이 명령에서 작동하지 않습니다.

  • 데이터 레이크에 대한 KQL 쿼리에서는 기본 제공 함수 또는 사용자 지정 함수를 사용할 수 없습니다.

  • 데이터 레이크에 대해 KQL 쿼리를 통해 외부 데이터를 호출하는 것은 지원되지 않습니다.

  • 다음을 제외한 모든 KQL 연산자 및 함수가 지원됩니다.

    • adx()
    • arg()
    • externaldata()
    • ingestion_time()

레이크 계층의 KQL 쿼리에 대한 서비스 매개 변수 및 제한

다음 서비스 매개 변수 제한 사항은 Microsoft Sentinel 데이터 레이크에서 쿼리를 작성할 때 적용됩니다.

카테고리 매개 변수/제한
동시 대화형 쿼리 분당 45개
결과 데이터 쿼리 64MB
쿼리 결과 행 500,000개 행
쿼리 범위 여러 작업 영역
쿼리 제한 시간 8분
쿼리 가능한 시간 범위 데이터 보존에 따라 최대 12년

KQL 쿼리 문제를 해결하려면 Microsoft Sentinel 데이터 레이크에서 KQL 쿼리 문제 해결을 참조하세요.