Microsoft Sentinel에서 분석 규칙 만들기 및 사용자 지정

완료됨

Microsoft Sentinel에 데이터 원본을 연결한 후, 사용자 환경에서 위협 및 비정상적인 동작을 검색하는 데 도움이 되는 사용자 지정 분석 규칙을 만듭니다.

분석 규칙은 사용자 환경에서 특정 이벤트 또는 이벤트 집합을 검색하고, 특정 이벤트 임계값 또는 조건에 도달하면 경고를 생성하고, SOC에서 심사 및 조사를 위해 인시던트를 생성하고, 자동화된 추적 및 수정 프로세스를 통해 위협에 대응합니다.

예약된 쿼리를 사용하여 사용자 지정 분석 규칙 만들기

  1. Microsoft Sentinel 탐색 메뉴에서 분석을 선택합니다.

  2. 상단의 작업 표시줄에서 + 만들기를 선택하고 예약된 쿼리 규칙을 선택합니다. Analytics 규칙 마법사가 열립니다.

예약된 쿼리를 실행하는 방법의 예를 보여 주는 스크린샷.

분석 규칙 마법사 - 일반 탭

  • 고유한 이름 및 설명을 제공합니다.
  • 전술과 기술 필드에서 규칙을 분류할 공격 범주 중에서 선택할 수 있습니다. 이는 MITRE ATT&CK 프레임워크의 전술과 기술을 기반으로 합니다.
  • MITRE ATT&CK 전술 및 기술에 매핑된 규칙을 통해 탐지되는 경고에서 생성된 인시던트는 규칙의 매핑을 자동으로 상속합니다.
  • 경고 심각도를 적절하게 설정합니다.
    • 정보 제공용. 시스템에는 영향을 미치지 않지만 해당 정보는 위협 행위자가 계획한 향후 단계를 나타낼 수 있습니다.
    • 낮음. 즉각적인 영향은 최소화될 것입니다. 위협 행위자가 환경에 영향을 미치려면 여러 단계를 수행해야 할 수 있습니다.
    • 보통. 위협 행위자는 해당 활동을 통해 환경에 어느 정도 영향을 미칠 수 있지만 범위가 제한되거나 추가 활동이 필요합니다.
    • 높음. 식별된 활동은 위협 행위자에게 환경에 대한 광범위한 액세스 권한을 제공하거나 환경에 미치는 영향에 의해 트리거됩니다.
  • 심각도 수준 기본값은 현재 또는 환경 영향 수준을 보장하지 않습니다. 경고 세부 정보를 사용자 지정하여 쿼리 출력의 관련 필드 값을 사용하여 특정 경고 인스턴스의 심각도, 전략, 기타 속성을 사용자 지정합니다.
  • Microsoft Sentinel 분석 규칙 템플릿의 심각도 정의는 분석 규칙에 의해 만들어진 경고에만 해당합니다. 다른 서비스에서 수집된 경고의 경우 심각도는 소스 보안 서비스에 의해 정의됩니다.
  • 규칙을 만들 때 상태는 기본적으로 사용으로 설정되어 있습니다. 즉, 규칙 만들기를 완료한 후 즉시 실행됩니다. 즉시 실행하지 않으려면 사용 안 함을 선택합니다. 규칙은 활성 규칙 탭에 추가되고 여기에서 필요할 때 사용하도록 설정할 수 있습니다.

새 규칙을 만드는 방법의 예를 보여 주는 스크린샷.

규칙 쿼리 논리 정의 및 설정 구성

규칙 논리 설정 탭에서 규칙 쿼리 필드에 직접 쿼리를 작성하거나 Log Analytics에서 쿼리를 만든 다음 여기에 복사하여 붙여넣을 수 있습니다.

  • 쿼리는 Kusto Query Language(KQL)로 작성됩니다.
  • 이 스크린샷에서 표시된 예는 SecurityEvent 테이블을 쿼리하여 실패한 Windows 로그온 이벤트의 유형을 표시합니다.

규칙 논리를 설정하는 방법의 예를 보여 주는 스크린샷.

다음은 Azure 활동에서 비정상적으로 많은 리소스가 생성될 때 경고하는 또 다른 샘플 쿼리입니다.

Kusto

AzureActivity

| where OperationNameValue == "MICROSOFT.COMPUTE/VIRTUALMACHINES/WRITE" or OperationNameValue == "MICROSOFT.RESOURCES/DEPLOYMENTS/WRITE"

| where ActivityStatusValue == "Succeeded"

| make-series dcount(ResourceId) default=0 on EventSubmissionTimestamp in range(ago(7d), now(), 1d) by Caller

Important

쿼리는 네이티브 테이블이 아닌 ASIM(고급 보안 정보 모델) 파서를 사용하는 것이 좋습니다. 이렇게 하면 쿼리가 단일 데이터 원본이 아닌 현재 또는 향후의 관련 데이터 원본을 지원할 수 있습니다.

규칙 쿼리 모범 사례:

  • 쿼리 길이는 1~10,000자 사이여야 하며 search * 또는 union *을 포함할 수 없습니다. 사용자 정의 함수를 사용하여 쿼리 길이 제한을 극복할 수 있습니다.
  • ADX 함수를 사용하여 Log Analytics 쿼리 창 내에서 Azure Data Explorer 쿼리를 만드는 것은 지원되지 않습니다.
  • 쿼리에서 bag_unpack 함수를 사용할 때 project field1을 사용하여 열을 필드로 프로젝션했는데 해당 열이 존재하지 않으면 쿼리가 실패합니다. 이러한 상황을 방지하려면 다음과 같이 열을 프로젝트해야 합니다.
    • project field1 = column_ifexists("field1","")

경고 보강

  • 엔터티 매핑 구성 섹션을 사용하여 쿼리 결과의 매개 변수를 Microsoft Sentinel 인식 엔터티에 매핑합니다. 엔터티는 다음에 나오는 조사 프로세스 및 수정 작업의 빌딩 블록으로 제공되는 필수 정보를 사용하여 규칙의 출력(경고 및 인시던트)을 보강합니다. 이는 또한 인시던트 설정 탭에서 경고를 인시던트로 그룹화할 수 있는 기준이기도 합니다.
  • 사용자 지정 세부 정보 구성 섹션을 사용하여 쿼리에서 이벤트 데이터 항목을 추출하고 이 규칙에 의해 생성된 경고에 표시하여 경고 및 인시던트에 즉시 이벤트 콘텐츠를 표시합니다.
  • 경고 세부 정보 구성 섹션을 사용하여 기본 쿼리 결과의 세부 정보로 경고 속성의 기본값을 재정의합니다. 예를 들어, 경고 세부 정보를 사용하여 경고 자체의 제목에 공격자의 IP 주소 또는 계정 이름을 표시할 수 있으며 이러한 항목이 인시던트 큐에 표시되므로 사용자는 위협 환경에 대한 보다 풍부하고 명확한 정보를 얻을 수 있습니다.

참고 항목

전체 경고의 크기 제한은 64KB입니다.

  • 64KB보다 커지는 경고는 잘립니다. 엔터티가 식별되면 경고 크기가 64KB에 도달할 때까지 엔터티가 경고에 하나씩 추가되고 나머지 엔터티는 경고에서 삭제됩니다.
  • 다른 경고 보강은 경고의 크기에도 영향을 줍니다.
  • 경고 크기를 줄이려면 쿼리에서 project-away 연산자를 사용하여 불필요한 필드를 제거합니다. (유지해야 할 필드가 몇 개뿐인 경우 project 연산자도 고려합니다.)

쿼리 일정 및 경고 임계값

  • 쿼리 일정 섹션에서 다음 매개 변수를 설정합니다.

새 예약 규칙을 만드는 예를 보여 주는 스크린샷.

  • 쿼리가 실행되는 빈도(5분마다 자주 또는 14일마다 한 번 드물게)를 제어하려면 쿼리 실행 간격을 설정합니다.
  • 마지막 데이터 조회를 설정하여 쿼리가 적용되는 데이터의 기간을 결정합니다. 예를 들어 지난 10분간의 데이터 또는 지난 6시간의 데이터를 쿼리할 수 있습니다. 최댓값은 14일입니다.
  • 새 실행 시작 설정(미리 보기):
    • 원래 동작을 자동으로 계속하도록 설정된 상태로 둡니다. 규칙은 만들어지는 즉시 처음으로 실행되고 그 후에는 쿼리 실행 간격 설정에 설정된 간격으로 실행됩니다.
    • 규칙이 즉시 실행되도록 하지 않고 처음 실행되는 시기를 결정하려면
    • 스위치를 특정 시간에로 전환합니다. 그런 다음 달력 선택기를 사용하여 날짜를 선택하고 표시된 예의 형식으로 시간을 입력합니다.

쿼리 예약 매개 변수를 구성하는 방법의 예를 보여 주는 스크린샷.

규칙의 향후 실행은 처음 실행 후 지정된 간격으로 발생합니다.

실행 시작 설정(왼쪽에 정보 아이콘 포함) 아래의 텍스트 행에는 현재 쿼리 예약 및 전환 확인 설정이 요약되어 있습니다.

쿼리 간격 및 되돌아보기 기간

이 두 설정은 한 지점까지 서로 독립적입니다. 간격보다 긴 기간을 포함하는 짧은 간격으로 쿼리를 실행할 수 있지만(실제로 쿼리가 겹치는 경우), 적용 기간을 초과하는 간격으로 쿼리를 실행할 수 없습니다. 그렇지 않으면 전체 쿼리 검사에 간격이 있습니다.

수집 지연

원본에서 이벤트를 생성하고 Microsoft Sentinel에 수집하는 동안 발생할 수 있는 대기 시간을 고려하여 데이터 중복 없이 전체 범위를 보장하기 위해 Microsoft Sentinel은 예약된 시간부터 5분 지연 시간을 두어 예약된 분석 규칙을 실행합니다.

경고 임계값 섹션을 사용하여 규칙의 민감도 수준을 정의합니다. 예를 들어 쿼리가 실행될 때마다 1000개보다 많은 결과를 반환하는 경우에만 규칙이 경고를 생성하도록 하려면 쿼리 결과 수가 다음일 때 경고 생성을 보다 큼으로 설정하고 숫자 1000을 입력합니다. 이 필드는 필수 필드이므로 임계값을 설정하지 않으려면, 즉 경고에 모든 이벤트를 등록하려는 경우 숫자 필드에 0을 입력합니다.

인시던트 만들기 설정 구성

인시던트 설정 탭에서 Microsoft Sentinel이 경고를 조치 가능한 인시던트로 설정하는지 여부와 방법을 선택할 수 있습니다. 이 탭을 그대로 두면 Microsoft Sentinel은 각 경고에서 별도의 단일 인시던트를 만듭니다. 이 탭에서 설정을 변경하여 인시던트를 만들지 않거나 여러 경고를 단일 인시던트로 그룹화하도록 선택할 수 있습니다.

인시던트 설정

인시던트 설정 섹션에서 이 분석 규칙에 의해 트리거된 경고에서 인시던트 만들기가 기본적으로 사용으로 설정됩니다. 즉, Microsoft Sentinel은 규칙에 의해 트리거되는 각 경고에서 별도의 단일 인시던트를 만듭니다.

  • 이 규칙을 사용하여 인시던트가 생성되는 것을 원하지 않는 경우(예: 이 규칙이 후속 분석을 위해 정보만 수집하는 경우) 사용 안 함으로 설정합니다.
  • 모든 단일 경고에 대해 하나의 인시던트 대신 경고 그룹에서 단일 인시던트를 만들려면 다음 섹션을 참조하세요.

경고 그룹화

경고 그룹화 섹션에서 최대 150개의 유사하거나 반복되는 경고 그룹에서 단일 인시던트를 생성하려면(참고 참조) 이 분석 규칙에 의해 트리거되는 관련 경고 그룹화를 사용으로 설정하고 다음 매개 변수를 설정합니다.

  • 선택한 기간 내에 생성된 경고로 그룹 제한: 유사하거나 반복되는 경고를 함께 그룹화할 기간을 결정합니다. 이 시간 프레임 내에 해당하는 모든 경고는 아래 그룹화 설정에 따라 인시던트 또는 인시던트 집합을 전체적으로 생성합니다. 이 시간 프레임을 벗어난 경고는 별도의 인시던트 또는 인시던트 집합을 생성합니다.
  • 다음 기준으로 이 분석 규칙에 의해 트리거된 경고를 단일 인시던트로 그룹화: 경고와 함께 그룹화할 기준을 선택합니다.
옵션 설명
모든 엔터티가 일치하는 경우 경고를 단일 인시던트로 그룹화 경고는 매핑된 각 엔터티에 대해 동일한 값을 공유하는 경우 함께 그룹화됩니다(위의 규칙 논리 설정 탭에 정의됨). 권장 설정입니다.
이 규칙으로 트리거된 모든 경고를 단일 인시던트로 그룹화 이 규칙에 의해 생성된 모든 경고가 동일한 값을 공유하지 않더라도 함께 그룹화됩니다.
선택한 엔터티 및 세부 정보가 일치하는 경우 경고를 단일 인시던트로 그룹화 경고는 매핑된 모든 엔터티, 경고 세부 정보 및 해당 드롭다운 목록에서 선택한 사용자 지정 세부 정보의 동일한 값을 공유하는 경우 함께 그룹화됩니다.

예를 들어, 원본 또는 대상 IP 주소를 기준으로 별도의 인시던트를 만들거나 특정 엔터티 및 심각도와 일치하는 경고를 그룹화하려는 경우 이 설정을 사용할 수 있습니다.

참고: 이 옵션을 선택하는 경우 규칙에 대해 하나 이상의 엔터티 형식 또는 필드를 선택해야 합니다. 그러지 않으면 규칙 유효성 검사가 실패하고 규칙이 만들어지지 않습니다.
  • 닫힌 일치 인시던트 다시 열기: 인시던트가 해결되어 닫힌 후 나중에 해당 인시던트에 속해야 하는 다른 경고가 생성되는 경우 닫힌 인시던트를 다시 열려면 이 설정을 사용으로 설정하고 경고가 새 인시던트를 만들도록 하려면 사용 안 함으로 그대로 둡니다.

참고 항목

최대 150개의 경고를 하나의 인시던트로 그룹화할 수 있습니다.

  • 모든 경고가 만들어진 후에만 인시던트가 만들어집니다. 모든 경고는 만드는 즉시 인시던트에 추가됩니다.
  • 단일 인시던트로 그룹화하는 규칙에 의해 150개가 넘는 경고가 생성되는 경우 원본과 동일한 인시던트 세부 정보를 사용하여 새 인시던트가 생성되고 초과 경고는 새 인시던트로 그룹화됩니다.

자동화된 대응 설정 및 규칙 만들기

자동 응답 탭에서 자동화 규칙을 사용하여 다음 세 가지 형식의 경우에 발생하도록 자동 응답을 설정할 수 있습니다.

  1. 이 분석 규칙에 의해 경고가 생성되는 경우.
  2. 이 분석 규칙에 의해 만들어진 경고로 인시던트가 만들어진 경우.
  3. 이 분석 규칙에 의해 생성된 경고로 인시던트가 업데이트되는 경우.

자동화 규칙 아래에 표시되는 그리드는 해당 규칙에 정의된 조건을 충족하기 때문에 이 분석 규칙에 이미 적용되는 자동화 규칙을 보여 줍니다. 각 행의 끝에 있는 줄임표를 선택하여 이러한 항목을 편집할 수 있습니다. 또는 새 자동화 규칙을 만들 수 있습니다.

자동화 규칙을 사용하여 기본 심사, 할당, 워크플로 및 인시던트 종결을 수행합니다.

보다 복잡한 작업을 자동화하고 원격 시스템에서 응답을 호출하여 이러한 자동화 규칙에서 플레이북을 호출하여 위협을 수정합니다. 인시던트 및 개별 경고에 대해 이 작업을 수행할 수 있습니다.

자동화된 응답을 구성하는 방법의 예를 보여 주는 스크린샷.

  • 화면 하단의 경고 자동화(클래식) 아래에는 이전 방법을 사용하여 경고가 생성될 때 자동으로 실행되도록 구성한 모든 플레이북이 표시됩니다.
    • 2023년 6월부터 이 목록에 플레이북을 더 이상 추가할 수 없습니다. 여기에 이미 나열된 플레이북은 이 방법이 더 이상 사용되지 않을 때까지(2026년 3월까자는 유효함) 계속 실행됩니다.
    • 나열된 플레이북이 아직 여기에 있으면 대신 경고 만들기 트리거를 기반으로 자동화 규칙을 만들고 거기에서 플레이북을 호출해야 합니다. 이 작업을 완료한 후 여기에 나열된 플레이북의 줄 끝에 있는 줄임표를 선택하고 제거를 선택합니다.

새 분석 규칙에 대한 모든 설정을 검토하려면 검토 및 만들기를 선택합니다. "유효성 검사 통과" 메시지가 나타나면 만들기를 선택합니다.

규칙 및 해당 출력 보기

  • 기본 분석 화면의 활성 규칙 탭 아래에 있는 표에서 새로 만든 사용자 지정 규칙('예약 됨'유형)을 찾을 수 있습니다. 이 목록에서 각 규칙을 사용 또는 사용하지 않도록 설정하거나 삭제할 수 있습니다.
  • 만든 분석 규칙의 결과를 보려면 인시던트 페이지로 이동하여 인시던트를 심사하고 조사하고 위협을 치료할 수 있습니다.
  • 가양성을 제외하도록 규칙 쿼리를 업데이트할 수 있습니다.