다음을 통해 공유


QRadar 검색 규칙을 Microsoft Sentinel로 마이그레이션

이 문서에서는 QRadar 검색 규칙을 식별, 비교하고 Microsoft Sentinel 기본 제공 규칙으로 마이그레이션하는 방법을 설명합니다.

규칙 식별 및 마이그레이션

Microsoft Sentinel은 기계 학습 분석을 사용하여 충실도가 높고 실행 가능한 인시던트를 생성하며 기존 탐지 중 일부는 Microsoft Sentinel에서 중복될 수 있습니다. 따라서 모든 검색 및 분석 규칙을 무분별하게 마이그레이션하지 마세요. 기존 검색 규칙을 식별할 때 이러한 고려 사항을 검토합니다.

  • 비즈니스 우선 순위와 효율성을 고려하여 규칙 마이그레이션에 타당한 사용 사례를 선택해야 합니다.
  • Microsoft Sentinel 규칙 유형을 이해하는지 확인합니다.
  • 규칙 용어를 이해하는지 확인합니다.
  • 지난 6~12개월 동안 경고를 트리거하지 않은 규칙을 검토하고 아직 관련성이 있는지 확인합니다.
  • 일상적으로 무시하는 낮은 수준의 위협이나 경고를 제거합니다.
  • 기존 기능을 사용하고 Microsoft Sentinel의 기본 제공 분석 규칙이 현재 사용 사례를 해결할 수 있는지 확인합니다. Microsoft Sentinel은 기계 학습 분석을 사용하여 충실도가 높은 실행 가능한 인시던트를 생성하므로 일부 기존 검색이 더 이상 필요하지 않을 수 있습니다.
  • 연결된 데이터 원본을 확인하고 데이터 연결 방법을 검토합니다. 데이터 수집 대화를 다시 논의하여 검색하려는 사용 사례 전반에서 데이터의 깊이와 범위를 확인합니다.
  • SOC Prime Threat Detection Marketplace와 같은 커뮤니티 리소스를 살펴보고 규칙을 사용할 수 있는지 확인합니다.
  • Uncoder.io 같은 온라인 쿼리 변환기가 규칙에 적합한지 여부를 살펴봅니다.
  • 규칙을 사용할 수 없거나 변환할 수 없는 경우 KQL 쿼리를 사용하여 수동으로 만들어야 합니다. 규칙 매핑을 검토하여 새 쿼리를 만듭니다.

검색 규칙 마이그레이션 모범 사례에 관해 자세히 알아봅니다.

분석 규칙을 Microsoft Sentinel로 마이그레이션하려면 다음을 수행합니다.

  1. 마이그레이션하려는 각 규칙에 대한 테스트 시스템이 있는지 확인합니다.

    1. 전체 테스트 시나리오 및 스크립트를 포함하여 마이그레이션된 규칙에 대한 유효성 검사 프로세스를 준비합니다.

    2. 마이그레이션된 규칙을 테스트하는 데 유용한 리소스가 팀에 있는지 확인합니다.

    3. 필요한 데이터 원본이 연결되어 있는지 확인하고 데이터 연결 방법을 검토합니다.

  2. Microsoft Sentinel에서 탐지를 기본 제공 템플릿으로 사용할 수 있는지 확인합니다.

    • 기본 제공 규칙이 충분하면 기본 제공 규칙 템플릿을 사용하여 자신의 작업 영역에 대한 규칙을 만듭니다.

      Microsoft Sentinel에서 구성 > 분석 > 규칙 템플릿 탭으로 이동한 다음, 관련된 각 분석 규칙을 만들고 업데이트합니다.

      자세한 내용은 곧바로 위협 탐지를 참조하세요.

    • Microsoft Sentinel의 기본 제공 규칙에서 처리되지 않는 탐지가 있는 경우 Uncoder.io와 같은 온라인 쿼리 변환기를 사용하여 쿼리를 KQL로 변환합니다.

      트리거 조건 및 규칙 작업을 파악한 다음, KQL 쿼리를 구성하고 검토합니다.

    • 기본 제공 규칙과 온라인 규칙 변환기가 모두 충분하지 않으면 규칙을 수동으로 만들어야 합니다. 이런 경우 다음 단계를 사용하여 규칙 만들기를 시작합니다.

      1. 규칙에서 사용할 데이터 원본을 식별합니다. Microsoft Sentinel에서 데이터 원본과 데이터 테이블 간에 매핑 테이블을 만들어서 쿼리할 테이블을 식별하는 것이 좋습니다.

      2. 규칙에 사용할 데이터의 특성, 필드 또는 엔터티를 식별합니다.

      3. 규칙 조건과 논리를 식별합니다. 이 단계에서는 규칙 템플릿을 KQL 쿼리를 구성하는 방법에 대한 샘플로 사용할 수 있습니다.

        필터, 상관 관계 규칙, 활성 목록, 참조 집합, 관심 목록, 탐지 이상 항목, 집계 등을 고려합니다. 레거시 SIEM에서 제공한 참조를 사용하여 쿼리 구문을 가장 잘 매핑하는 방법을 파악할 수 있습니다.

      4. 트리거 조건 및 규칙 작업을 파악한 다음, KQL 쿼리를 구성하고 검토합니다. 쿼리를 검토할 때 KQL 최적화 지침 리소스를 고려하세요.

  3. 각각의 관련 사용 사례로 규칙을 테스트합니다. 예상한 결과를 제공하지 않으면 KQL을 검토하고 다시 테스트할 수 있습니다.

  4. 만족스러우면 마이그레이션된 규칙을 고려할 수 있습니다. 필요에 따라 규칙 작업에 대한 플레이북을 만듭니다. 자세한 내용은 Microsoft Sentinel의 플레이북을 사용하여 위협 대응 자동화를 참조하세요.

분석 규칙에 대해 자세히 알아봅니다.

규칙 용어 비교

이 표는 QRadar에 비교하여 Microsoft Sentinel의 규칙 개념을 명확히 하는 데 도움이 됩니다.

QRadar Microsoft Sentinel
규칙 유형 • 이벤트
• 흐름
• 일반
• 공격
• 변칙 검색 규칙
• 예약된 쿼리
• 퓨전
• Microsoft 보안
• ML(기계 학습) 동작 분석
조건 테스트 조건에서 정의 KQL에서 정의
트리거 조건 규칙에서 정의 임계값: 쿼리 결과 수
작업 • 공격 만들기
• 새 이벤트 디스패치
• 참조 세트 또는 데이터에 추가
• 기타 등등
• 경고 또는 인시던트 만들기
• Logic Apps와 통합

규칙 샘플 매핑 및 비교

이러한 샘플을 사용하여 다양한 시나리오에서 규칙을 비교하고 QRadar에서 Microsoft Sentinel로 매핑합니다.

규칙 구문 샘플 검색 규칙(QRadar) 샘플 KQL 쿼리 리소스
공용 속성 테스트 QRadar 구문 정규식 예제
AQL 필터 쿼리 예제
같음/같지 않음 예제
정규식 예제
AQL 필터 쿼리 예제
같음/같지 않음 예제
• 정규식: regex와 일치
• AQL 필터 쿼리: 문자열 연산자
• 같음/같지 않음: 문자열 연산자
날짜/시간 테스트 QRadar 구문 선택한 월의 날짜 예제
선택한 요일 예제
이후/이전/해당 시점 예제
선택한 월의 날짜 예제
선택한 요일 예제
이후/이전/해당 시점 예제
날짜 및 시간 연산자
• 선택한 월의 날짜: dayofmonth()
• 선택한 요일: dayofweek()
• 이후/이전/해당 시점: format_datetime()
이벤트 속성 테스트 QRadar 구문 IP 프로토콜 예제
이벤트 페이로드 문자열 예제
IP 프로토콜 예제
이벤트 페이로드 문자열 예제
• IP 프로토콜: 문자열 연산자
• 이벤트 페이로드 문자열: has
함수: 카운터 QRadar 구문 이벤트 속성 및 시간 예제 이벤트 속성 및 시간 예제 summarize
함수: 부정 조건 QRadar 구문 부정 조건 예제 부정 조건 예제 join()
문자열 연산자
숫자 연산자
함수: 단순 QRadar 구문 단순 조건 예제 단순 조건 예제 or
IP/포트 테스트 QRadar 구문 원본 포트 예제
원본 IP 예제
원본 포트 예제
원본 IP 예제
로그 원본 테스트 QRadar 구문 로그 원본 예제 로그 원본 예제

공용 속성 테스트 구문

공용 속성 테스트 규칙의 QRadar 구문은 다음과 같습니다.

Diagram illustrating a common property test rule syntax.

공용 속성 테스트: 정규식 예제(QRadar)

정규식을 사용하는 샘플 QRadar 공용 속성 테스트 규칙의 구문은 다음과 같습니다.

when any of <these properties> match <this regular expression>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a common property test rule that uses a regular expression.

공용 속성 테스트: 정규식 예제(KQL)

KQL에서 정규식을 사용하는 공용 속성 테스트 규칙은 다음과 같습니다.

CommonSecurityLog
| where tostring(SourcePort) matches regex @"\d{1,5}" or tostring(DestinationPort) matches regex @"\d{1,5}"

공용 속성 테스트: AQL 필터 쿼리 예제(QRadar)

AQL 필터 쿼리를 사용하는 샘플 QRadar 공용 속성 테스트 규칙의 구문은 다음과 같습니다.

when the event matches <this> AQL filter query

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a common property test rule that uses an A Q L filter query.

공용 속성 테스트: AQL 필터 쿼리 예제(KQL)

KQL에서 AQL 필터 쿼리를 사용하는 공용 속성 테스트 규칙은 다음과 같습니다.

CommonSecurityLog
| where SourceIP == '10.1.1.10'

공용 속성 테스트: 같음/같지 않음 예제(QRadar)

equals 또는 not equals 연산자를 사용하는 샘플 QRadar 공용 속성 테스트 규칙의 구문은 다음과 같습니다.

and when <this property> <equals/not equals> <this property>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a common property test rule that uses equals/not equals.

공용 속성 테스트: 같음/같지 않음 예제(KQL)

KQL에서 equals 또는 not equals 연산자를 사용하는 공용 속성 테스트 규칙은 다음과 같습니다.

CommonSecurityLog
| where SourceIP == DestinationIP

날짜/시간 테스트 구문

날짜/시간 테스트 규칙의 QRadar 구문은 다음과 같습니다.

Diagram illustrating a date/time tests rule syntax.

날짜/시간 테스트: 선택한 월의 날짜 예제(QRadar)

선택한 월의 날짜를 사용하는 샘플 QRadar 날짜/시간 테스트 규칙의 구문은 다음과 같습니다.

and when the event(s) occur <on/after/before> the <selected> day of the month

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a date/time tests rule that uses a selected day.

날짜/시간 테스트: 선택한 월의 날짜 예제(KQL)

KQL에서 선택한 월의 날짜를 사용하는 날짜/시간 테스트 규칙은 다음과 같습니다.

SecurityEvent
 | where dayofmonth(TimeGenerated) < 4

날짜/시간 테스트: 선택한 요일 예제(QRadar)

선택한 요일을 사용하는 샘플 QRadar 날짜/시간 테스트 규칙의 구문은 다음과 같습니다.

and when the event(s) occur on any of <these days of the week{Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a date/time tests rule that uses a selected day of the week.

날짜/시간 테스트: 선택한 요일 예제(KQL)

KQL에서 선택한 요일을 사용하는 날짜/시간 테스트 규칙은 다음과 같습니다.

SecurityEvent
 | where dayofweek(TimeGenerated) between (3d .. 5d)

날짜/시간 테스트: 이후/이전/해당 시점(QRadar)

after, before 또는 at 연산자를 사용하는 샘플 QRadar 공용 속성 테스트 규칙의 구문은 다음과 같습니다.

and when the event(s) occur <after/before/at> <this time{12.00AM, 12.05AM, ...11.50PM, 11.55PM}>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a date/time tests rule that uses the after/before/at operator.

날짜/시간 테스트: 이후/이전/해당 시점(KQL)

KQL에서 after, before 또는 at 연산자를 사용하는 날짜/시간 테스트 규칙은 다음과 같습니다.

SecurityEvent
| where format_datetime(TimeGenerated,'HH:mm')=="23:55"

TimeGenerated는 UTC/GMT 기준입니다.

이벤트 속성 테스트 구문

이벤트 속성 테스트 규칙의 QRadar 구문은 다음과 같습니다.

Diagram illustrating an event property tests rule syntax.

이벤트 속성 테스트: IP 프로토콜 예제(QRadar)

IP 프로토콜을 사용하는 샘플 QRadar 이벤트 속성 테스트 규칙의 구문은 다음과 같습니다.

and when the IP protocol is one of the following <protocols>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating an event property tests rule that uses an I P protocol.

이벤트 속성 테스트: IP 프로토콜 예제(KQL)

CommonSecurityLog
| where Protocol in ("UDP","ICMP")

이벤트 속성 테스트: 이벤트 페이로드 문자열 예제(QRadar)

Event Payload 문자열 값을 사용하는 샘플 QRadar 이벤트 속성 테스트 규칙의 구문은 다음과 같습니다.

and when the Event Payload contains <this string>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating an event property tests rule that uses an Event Payload string.

이벤트 속성 테스트: 이벤트 페이로드 문자열 예제(KQL)

CommonSecurityLog
| where DeviceVendor has "Palo Alto"

search "Palo Alto"

성능을 최적화하려면 테이블 이름을 이미 알고 있는 경우 search 명령을 사용하지 마세요.

함수: 카운터 구문

카운터를 사용하는 함수 규칙의 QRadar 구문은 다음과 같습니다.

Diagram illustrating the syntax of a functions rule that uses counters.

카운터: 이벤트 속성 및 시간 예제(QRadar)

정의된 시간(분) 내에 정의된 수의 이벤트 속성을 사용하는 샘플 QRadar 함수 규칙의 구문은 다음과 같습니다.

and when at least <this many> events are seen with the same <event properties> in <this many> <minutes>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a functions rule that uses event properties.

카운터: 이벤트 속성 및 시간 예제(KQL)

CommonSecurityLog
| summarize Count = count() by SourceIP, DestinationIP
| where Count >= 5

함수: 부정 조건 구문

부정 조건을 사용하는 함수 규칙의 QRadar 구문은 다음과 같습니다.

Diagram illustrating the syntax of a functions rule that uses negative conditions.

부정 조건 예제(QRadar)

부정 조건을 사용하는 샘플 QRadar 함수 규칙의 구문은 다음과 같습니다.

and when none of <these rules> match in <this many> <minutes> after <these rules> match with the same <event properties>

QRadar에 정의된 두 가지 규칙은 다음과 같습니다. 부정 조건은 이러한 규칙을 기반으로 합니다.

Diagram illustrating an event property tests rule to be used for a negative conditions rule.

Diagram illustrating a common property tests rule to be used for a negative conditions rule.

위 규칙을 기반으로 하는 부정 조건 규칙의 샘플은 다음과 같습니다.

Diagram illustrating a functions rule with negative conditions.

부정 조건 예제(KQL)

let spanoftime = 10m;
let Test2 = (
CommonSecurityLog
| where Protocol !in ("UDP","ICMP")
| where TimeGenerated > ago(spanoftime)
);
let Test6 = (
CommonSecurityLog
| where SourceIP == DestinationIP
);
Test2
| join kind=rightanti Test6 on $left. SourceIP == $right. SourceIP and $left. Protocol ==$right. Protocol

함수: 단순 조건 구문

단순 조건을 사용하는 함수 규칙의 QRadar 구문은 다음과 같습니다.

Diagram illustrating the syntax of a functions rule that uses simple conditions.

단순 조건 예제(QRadar)

단순 조건을 사용하는 샘플 QRadar 함수 규칙의 구문은 다음과 같습니다.

and when an event matches <any|all> of the following <rules>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a functions rule with simple conditions.

단순 조건 예제(KQL)

CommonSecurityLog
| where Protocol !in ("UDP","ICMP") or SourceIP == DestinationIP

IP/포트 테스트 구문

IP/포트 테스트 규칙의 QRadar 구문은 다음과 같습니다.

Diagram illustrating the syntax of an IP/port tests rule.

IP/포트 테스트: 원본 포트 예제(QRadar)

원본 포트를 지정하는 샘플 QRadar 규칙의 구문은 다음과 같습니다.

and when the source port is one of the following <ports>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a rule that specifies a source port.

IP/포트 테스트: 원본 포트 예제(KQL)

CommonSecurityLog
| where SourcePort == 20

IP/포트 테스트: 원본 IP 예제(QRadar)

원본 IP를 지정하는 샘플 QRadar 규칙의 구문은 다음과 같습니다.

and when the source IP is one of the following <IP addresses>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a rule that specifies a source IP address.

IP/포트 테스트: 원본 IP 예제(KQL)

CommonSecurityLog
| where SourceIP in (“10.1.1.1”,”10.2.2.2”)

로그 원본 테스트 구문

로그 원본 테스트 규칙의 QRadar 구문은 다음과 같습니다.

Diagram illustrating the syntax of a log source tests rule.

로그 원본 예제(QRadar)

원본 원본을 지정하는 샘플 QRadar 규칙의 구문은 다음과 같습니다.

and when the event(s) were detected by one or more of these <log source types>

QRadar의 샘플 규칙은 다음과 같습니다.

Diagram illustrating a rule that specifies log sources.

로그 원본 예제(KQL)

OfficeActivity
| where OfficeWorkload == "Exchange"

다음 단계

이 문서에서는 QRadar에서 Microsoft Sentinel로 마이그레이션 규칙을 매핑하는 방법을 알아보았습니다.