Microsoft Sentinel 관심 목록

Microsoft Sentinel 관심 목록은 보안 분석가가 이벤트 데이터를 효율적으로 상호 연관시키고 보강하는 데 도움이 됩니다. 고부가가치 자산 또는 해고된 직원 목록과 같은 참조 데이터를 유연하게 관리할 수 있는 방법을 제공합니다. 검색 규칙, 위협 헌팅 및 대응 워크플로에 관심 목록을 통합하여 경고 피로를 줄이고 위협에 더 빠르게 대응합니다. 이 문서에서는 Microsoft Sentinel 관심 목록을 사용하는 방법을 설명하고, 주요 시나리오 및 제한 사항을 간략하게 설명하고, 보안 작업을 향상시키기 위해 관심 목록을 만들고 쿼리하는 방법에 대한 지침을 제공합니다.

검색 쿼리, 탐지 규칙, 위협 헌팅 및 대응 플레이북에서 관심 목록을 사용하세요. 관심 목록은 테이블의 Microsoft Sentinel 작업 영역에 Watchlist 이름-값 쌍으로 저장되고 최적의 쿼리 성능을 위해 캐시됩니다.

중요

관심 목록 템플릿의 기능과 Azure Storage의 파일에서 관심 목록을 만드는 기능은 현재 미리 보기로 제공됩니다. Azure 미리 보기 추가 약관에는 베타, 미리 보기 또는 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 추가 법적 조건이 포함됩니다.

관심 목록을 사용하는 경우

다음 시나리오에서 관심 목록을 사용합니다.

  • CSV(쉼표로 구분된 값) 파일에서 IP 주소, 파일 해시 및 기타 데이터를 가져와 위협을 조사한 다음, 경고 규칙, 위협 헌팅, 통합 문서, 노트북 및 쿼리에서 조인과 필터에 감시 목록 이름-값 쌍을 사용합니다.

  • 비즈니스 데이터를 관심 목록으로 가져옵니다. 예를 들어 권한 있는 시스템 액세스 권한이 있는 사용자 목록 또는 종료된 직원 목록을 가져옵니다. 그런 다음 관심 목록을 사용하여 허용 목록 및 차단 목록을 만들어 해당 사용자가 네트워크에 로그인하지 못하도록 검색하거나 방지합니다.

  • 알림 피로 줄이기. 승인된 IP 주소의 사용자처럼 일반적으로 경고를 발생시키는 작업을 수행하는 특정 사용자 그룹에서 발생하는 경고를 억제할 수 있도록 허용 목록을 만듭니다. 무해한 이벤트가 경고가 되지 않도록 방지합니다.

  • 외부 데이터 원본의 이름-값 조합으로 이벤트 데이터를 보강합니다.

관심 목록 제한 사항

관심 목록을 만들기 전에 다음 제한 사항을 검토합니다.

제한 사항 세부 정보
관심 목록 이름 및 별칭 길이 관심 목록 이름 및 별칭은 3~64자 사이여야 합니다. 첫 문자와 마지막 문자는 영숫자여야 합니다. 공백, 하이픈 및 밑줄 사이에 허용됩니다.
의도한 사용 참조 데이터에만 관심 목록을 사용합니다. 관심 목록은 대용량 데이터 볼륨용으로 설계되지 않았습니다.
최대 활성 관심 목록 항목 작업 영역의 모든 관심 목록에 최대 1,000만 개의 활성 관심 목록 항목을 포함할 수 있습니다. 삭제된 항목은 계산되지 않습니다. 더 큰 볼륨의 경우 사용자 지정 로그를 사용합니다.
데이터 보존 Log Analytics 관심 목록 테이블의 데이터는 28일 동안 보존됩니다.
새로 고침 간격 관심 목록은 12일마다 새로 고쳐지며 TimeGenerated 필드가 업데이트됩니다.
작업 영역 간 관리 Azure Lighthouse를 사용하여 작업 영역에서 관심 목록을 관리하는 것은 지원되지 않습니다.
로컬 파일 업로드 크기 로컬 파일 업로드는 최대 3.8MB의 파일로 제한됩니다.
Azure Storage 파일 업로드 크기(미리 보기) Azure Storage 업로드는 최대 500MB의 파일로 제한됩니다.
열 및 테이블 제한 관심 목록은 열과 이름에 대해 Kusto Query Language (KQL) 엔터티 이름 지정 제한을 따라야 합니다.

관심 목록 만들기 메서드 Microsoft Sentinel

Microsoft Sentinel 관심 목록을 만들려면 다음 방법 중 하나를 사용합니다.

  • 로컬 폴더 또는 Azure Storage 계정에서 파일을 업로드합니다.
  • Microsoft Sentinel 관심 목록 템플릿을 다운로드하고, 데이터를 추가하고, 파일을 업로드합니다.

큰 파일(최대 500MB)에서 관심 목록을 만들려면 파일을 Azure Storage 계정에 업로드합니다. Microsoft Sentinel 관심 목록 데이터를 검색할 수 있도록 SAS(공유 액세스 서명) URL을 만듭니다. SAS URL에는 스토리지 계정의 CSV 파일과 같이 리소스에 대한 리소스 URI와 SAS 토큰이 모두 포함됩니다. Microsoft Sentinel 작업 영역에 관심 목록을 추가합니다.

자세한 내용은 다음 항목을 참조하세요.

검색 및 탐지 규칙용 쿼리의 감시 목록

관심 목록 데이터를 다른 Microsoft Sentinel 데이터와 연계하려면 join 테이블과 함께 lookupWatchlist와 같은 Kusto 테이블형 연산자를 사용합니다. Microsoft Sentinel 관심 목록을 쿼리하는 데 도움이 되는 다음과 같은 기본 제공 함수를 제공합니다.

  • _GetWatchlistAlias - 모든 관심 목록의 별칭을 반환합니다.
  • _GetWatchlist - 지정된 관심 목록의 이름-값 쌍을 쿼리합니다.

관심 목록을 만들 때 SearchKey를 정의합니다. 검색 키는 관심 목록에 있는 열의 이름으로, 다른 데이터와의 조인 또는 검색의 빈번한 개체로 사용할 것으로 예상합니다. 예를 들어 국가/지역 이름과 해당 두 글자 국가 코드를 포함하는 서버 관심 목록이 있다고 가정해 보겠습니다. 검색 또는 조인에 국가 코드를 자주 사용해야 합니다. 따라서 국가 코드 열을 검색 키로 사용합니다.

Heartbeat
| lookup kind=leftouter _GetWatchlist('mywatchlist') 
  on $left.RemoteIPCountry == $right.SearchKey

다른 예제 쿼리를 살펴보겠습니다.

분석 규칙에서 관심 목록을 사용하려는 경우를 가정해 보겠습니다. ipwatchlistIPAddress에 대한 열이 있는 Location라는 관심 목록을 만듭니다. IPAddress을(를) SearchKey(으)로 설정했습니다.

IPAddress,Location
10.0.100.11,Home
172.16.107.23,Work
10.0.150.39,Home
172.20.32.117,Work

감시 목록의 IP 주소에서 발생한 이벤트만 포함하려면 watchlist를 변수 또는 인라인으로 사용하는 쿼리를 사용할 수 있습니다.

이 예제 쿼리는 관심 목록을 변수로 사용합니다.

  //Watchlist as a variable
  let watchlist = (_GetWatchlist('ipwatchlist') | project IPAddress);
  Heartbeat
  | where ComputerIP in (watchlist)

이 예제 쿼리는 관심 목록에 대해 정의된 쿼리 및 검색 키와 함께 관심 목록을 인라인으로 사용합니다.

  //Watchlist inline with the query
  //Use SearchKey for the best performance
  Heartbeat
  | where ComputerIP in ( 
      (_GetWatchlist('ipwatchlist')
      | project SearchKey)
  )

관심 목록을 사용하여 쿼리 및 검색 규칙을 작성하는 방법에 대한 자세한 내용은 Microsoft Sentinel에서 관심 목록을 사용하여 쿼리 및 검색 규칙 작성을 참조하고, Kusto 연산자 및 문에 대해서는 다음 문서를 참조하세요.

KQL에 대한 자세한 내용은 Kusto 쿼리 언어(KQL) 개요를 참조하세요.

기타 리소스:

인시던트 및 쿼리 문제 발생 시 감시 목록 문제 해결

포털 또는 API 가용성 문제 해결

관심 목록 페이지가 비어 있거나, 반복적으로 새로 고침되거나, 관심 목록 작업이 반환 502 Bad Gateway 되거나 다른 5XX 응답인 경우 먼저 관심 목록 구성을 변경하기 전에 문제가 서비스 쪽일 가능성이 있는지 확인합니다.

다음 검사를 사용합니다.

  • 문제가 모든 관심 목록 또는 여러 관심 목록에 영향을 주는지 확인합니다.

  • 문제가 여러 사용자에게 영향을 주는지 확인합니다.

  • 이 문제가 Azure 포털과 자동화 또는 API 기반 작업에 모두 영향을 주는지 확인합니다.

  • 관심 목록 데이터를 로그에서 계속 쿼리할 수 있는지 확인합니다.

    _GetWatchlistAlias
    

    관심 목록의 별칭을 알고 있는 경우 다음을 테스트합니다.

    _GetWatchlist('watchlist-alias')
    | take 10
    
  • Azure Service Health 및 현재 진행 중인 인시던트 관련 공지에서 Microsoft Sentinel 관련 영향 여부를 확인하세요.

  • 인시던트가 활성 상태인 동안에는 삭제 및 재생성을 반복해서 시도하지 마세요. 포털 또는 API 오류가 반드시 관심 목록 데이터 손실을 나타내는 것은 아닙니다.

  • 여러 사용자 또는 작업 영역 전반에서 빈 포털 화면이 표시되거나 관심 목록의 만들기, 읽기, 업데이트 및 삭제(CRUD) 작업 수행 시 502 또는 기타 5XX 오류가 반환되면, 더 광범위한 플랫폼 영향 가능성을 배제할 때까지 이를 잠재적인 서비스 인시던트로 처리합니다.

  • 감시 목록 작업을 호출하는 Logic Apps 워크플로가 502 Bad Gateway 또는 이와 유사한 일시적 오류를 반환하기 시작하는 경우, 문제가 커넥터 권한이나 워크플로 구성 때문에 발생한 것이라고 판단하기 전에 먼저 Microsoft Sentinel 서비스 상태를 확인하세요. 자동화 오류는 워크플로 ID 및 구성이 변경되지 않은 경우에도 관심 목록 서비스 인시던트 중에 일반 액세스 또는 게이트웨이 오류로 표시될 수 있습니다.

서비스 인시던트 중에 가장 안전한 첫 번째 유효성 검사는 관심 목록이 여전히 쿼리 가능한지 확인하는 것입니다. 쿼리 액세스도 실패하는 경우 지원 요청을 열기 전에 타임스탬프, 작업 및 HTTP 상태 코드를 캡처합니다.

보존 및 새로 고침 동작 이해

28일 보존 값이 28일 후에 관심 목록을 사용할 수 없게 되는 것은 아닙니다.

관심 목록은 삭제할 때까지 계속 사용할 수 있습니다. 보존 값은 기본 Log Analytics 관심 목록 테이블의 레코드에 적용되며 관심 목록 서비스는 되풀이 간격으로 관심 목록 데이터를 새로 고칩니다. 관심 목록은 정기적으로 새로 고쳐지므로 삭제하거나 다른 문제가 가용성에 영향을 미치지 않는 한 시간이 지남에 따라 쿼리할 수 있습니다.

이러한 구분은 장기 분석을 계획하거나 관심 목록이 쿼리 결과에 계속 표시되어야 하는지 여부를 확인하는 경우에 중요합니다.

만든 후 행이 0개 표시되는 관심 목록 문제 해결

관심 목록이 성공적으로 생성되었지만 포털 또는 _GetWatchlist()에 행이 표시되지 않으면, 문제를 해결하는 과정에서 작업 영역 수집 제약 조건을 검토하세요.

  • 관심 목록이 예상 작업 영역에서 만들어졌는지 확인합니다.

  • 별칭으로 관심 목록을 쿼리합니다.

    _GetWatchlist('watchlist-alias')
    | take 10
    
  • 일일 한도를 포함하여 수집 제한에 대한 Log Analytics 작업 영역 구성을 검토합니다.

  • 작업 영역이 일일 한도에 도달한 경우, 수집이 다시 재개되도록 한 다음 관심 목록을 다시 확인하세요.

행이 0인 결과가 항상 관심 목록 정의가 누락되었음을 나타내는 것은 아닙니다. 수집 관련 작업 영역 제한은 관심 목록 데이터가 작업 영역에 표시될 때 영향을 줄 수 있습니다.

관리 평면 및 쿼리 동작 차이 문제 해결

쿼리 액세스 및 관리 액세스는 일시적인 서비스 문제 중에 다르게 동작할 수 있습니다.

경우에 따라 포털 환경, 편집 작업 또는 기타 관리 평면 작업을 일시적으로 사용할 수 없는 경우에도 _GetWatchlistAlias 또는 _GetWatchlist()을 사용하여 관심 목록을 조회할 수 있습니다. 쿼리 결과가 반환되지만 포털이 비어 있거나 관심 목록 업데이트가 실패하는 경우 관심 목록이 삭제되었거나 해당 스키마가 변경되었다고 가정하기 전에 서비스 상태의 유효성을 검사합니다.

성공적인 KQL 쿼리는 관리 환경이 저하된 경우에도 관심 목록 데이터를 작업 영역에서 계속 사용할 수 있음을 나타냅니다.

빈 쿼리 또는 부분 쿼리 결과 문제 해결

중요

관심 목록 쿼리 결과는 쿼리 시간 범위 및 주변 쿼리에 적용된 필터의 영향을 받을 수 있습니다.

관심 목록은 되풀이 간격으로 새로 고쳐지고 쿼리 함수는 기본 관심 목록 데이터에서 현재 관심 목록 상태를 반환합니다. 문제를 해결하는 동안 좁은 전역 날짜/시간 범위 또는 기타 제한 필터를 적용하는 경우 쿼리는 예상 관심 목록 콘텐츠를 반환하는 데 필요한 레코드를 제외할 수 있습니다. 이 경우 _GetWatchlist() 관심 목록이 여전히 존재하더라도 빈 결과 또는 부분 결과를 반환하는 것처럼 보일 수 있습니다.

예기치 않은 빈 결과를 해결하는 경우:

  • 올바른 관심 목록 별칭을 쿼리하고 있는지 확인합니다.
  • 쿼리 수준 시간 범위를 제거하거나 확장합니다.
  • 쿼리를 다시 실행하고 결과를 비교합니다.

쿼리 수준 날짜/시간 범위에 의존하는 시나리오의 경우 관심 목록 새로 고침 주기를 포함할 만큼 광범위한 시간 범위를 사용합니다.