Sigma 규칙 작성
이식 가능한 탐지 규칙 구문
Sigma 규칙 작성은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
Sigma란 무엇인가
Sigma는 로그 기반 탐지를 위한 범용적이고 특정 공급업체에 종속되지 않는 서명 형식입니다. YAML로 탐지 로직을 한 번 작성한 다음 Splunk SPL, Elastic 쿼리, Sentinel KQL 및 여러 다른 백엔드용 형식으로 변환할 수 있습니다.
Sigma는 로그 탐지에서 YARA가 파일 탐지에서 하는 역할과 같습니다. 즉, 이식 가능한 공통 언어입니다. 팀이 규칙을 공개적으로 공유하고 SIEM마다 같은 아이디어를 다시 작성하지 않도록 해 줍니다.
규칙의 구성
Sigma 규칙은 필수 섹션과 선택적 섹션으로 구성된 YAML 문서입니다. 핵심 요소는 title, logsource, detection입니다.
title: Suspicious PowerShell Encoded Command
id: 7e3f3c1a-1f2b-4c3d-9a8b-1234567890ab
status: experimental
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\\powershell.exe'
CommandLine|contains: '-enc'
condition: selection
level: highlogsource 블록
logsource 블록은 규칙이 적용되는 로그가 무엇인지 변환기에 알려 줍니다. 데이터를 직접 조회하는 것이 아니라, 변환 중에 올바른 필드 매핑과 인덱스를 선택합니다.
일반적인 키:
product— 예: windows, linux, awscategory— 예: process_creation, network_connection, file_eventservice— 예: sysmon, security, sshd
데이터가 지원하는 가장 구체적인 조합을 선택하여 처리 흐름이 필드를 올바르게 매핑하도록 하십시오.
선택 항목과 검색 식별자
detection 내부에서는 하나 이상의 이름이 지정된 검색 식별자(선택 항목)를 정의합니다. 각각은 필드와 값으로 이루어진 조건의 맵입니다. 하나의 선택 항목 안에 있는 여러 필드는 논리적 AND로 결합됩니다.
여기서는 selection이 일치하려면 두 조건이 모두 참이어야 합니다.
detection:
selection:
EventID: 4688
NewProcessName|endswith: '\\whoami.exe'
condition: selection필드 수정자
수정자는 값의 일치 방식을 더 구체적으로 지정합니다. 파이프 뒤의 필드 이름에 연결하여 사용합니다.
contains— 부분 문자열 일치startswith/endswith— 시작 또는 끝에 고정된 일치all— 목록의 모든 값이 있어야 함re— 정규 표현식base64offset|contains— base64로 인코딩된 부분 문자열 일치
수정자는 왼쪽에서 오른쪽으로 연결되며 순서대로 적용됩니다.
detection:
selection:
CommandLine|contains|all:
- 'Invoke-WebRequest'
- 'DownloadString'
condition: selection목록과 맵의 OR / AND
선택 항목 내부의 논리를 지배하는 두 가지 규칙이 있습니다:
- 한 필드 아래의 값 목록은 OR입니다. 값 중 하나라도 일치하면 됩니다.
- 여러 필드의 맵은 AND입니다. 모든 필드가 일치해야 합니다.
아래에서 Image는 두 이진 파일 중 하나와 일치하고, User는 반드시 SYSTEM과 같아야 합니다.
detection:
selection:
Image|endswith:
- '\\net.exe'
- '\\net1.exe'
User: 'SYSTEM'
condition: selectioncondition 표현식
condition은 이름이 지정된 선택 항목을 불리언 논리로 결합합니다. 여기에서 필터와 제외 조건을 표현합니다.
연산자에는 and, or, not, 괄호와 count() 같은 집계가 포함됩니다. 또한 1 of selection* / all of selection*을 사용하여 접두사에 따라 식별자 그룹을 참조할 수 있습니다.
detection:
selection:
EventID: 4625
timeframe: 5m
condition: selection | count() by SourceIp > 10잡음 제거
정상으로 알려진 활동을 억제하려면 별도의 식별자를 정의하고 not을 사용하여 condition에서 제외하십시오. 이렇게 하면 악성 로직을 읽기 쉽게 유지하면서 제외 조건을 명확하게 표현할 수 있습니다.
여기서 규칙은 rundll32가 네트워크 연결을 생성할 때 실행되지만, 정상으로 알려진 업데이트 프로세스인 경우에는 실행되지 않습니다.
detection:
selection:
Image|endswith: '\\rundll32.exe'
filter_legit:
ParentImage|endswith: '\\MicrosoftEdgeUpdate.exe'
condition: selection and not filter_legit초기 분석을 위한 메타데이터
좋은 규칙은 로직뿐만 아니라 대응 담당자가 신속하게 조치하고 엔지니어가 탐지 범위를 유지 관리하는 데 도움이 되는 메타데이터도 포함합니다.
level— 정보, 낮음, 중간, 높음, 심각tags— ATT&CK 기법, 예: attack.t1059.001falsepositives— 정상으로 알려진 트리거references— 위협 보고서 또는 문서author및date
이러한 필드는 작성하는 데 몇 분밖에 걸리지 않지만, 사고가 발생했을 때 여러 시간을 절약해 줍니다.
상관관계 규칙
단일 이벤트 규칙으로는 여러 단계의 공격을 표현할 수 없습니다. Sigma 상관관계 규칙은 여러 기본 규칙을 시간에 따라 결합하여 연속적인 동작과 패턴을 포착합니다.
지원되는 유형에는 event_count(일정 시간 범위 내 N회 일치), value_count(고유 값의 수, 예: 로그인에 실패한 사용자가 많음), temporal(규칙 A 다음에 규칙 B)이 있습니다. 이를 통해 실패가 급증한 직후 성공한 로그인을 탐지할 수 있습니다.
name: bruteforce_then_success
correlation:
type: temporal
rules: [failed_logins, successful_login]
group-by: [SourceIp, TargetUser]
timespan: 10m대상 시스템으로 변환
sigma-cli를 사용하면 규칙을 대상 쿼리 언어로 변환할 수 있습니다. 처리 흐름이 Sigma 필드 이름을 실제 데이터 구조에 매핑합니다.
출력 결과는 바로 배포할 수 있는 쿼리이므로 붙여 넣거나 API를 통해 전송할 수 있습니다.
sigma convert -t splunk -p sysmon \
-f default rule.yml
# Example output (Splunk SPL):
# Image="*\\powershell.exe" CommandLine="*-enc*"간단한 확인
Sigma 탐지 로직에 대한 이해도를 확인합니다.
복습
이제 이식 가능한 Sigma 규칙을 작성할 수 있습니다:
logsource가 적용할 로그와 필드 매핑을 선택합니다- 선택 항목은 이름이 지정된 필드-값 조건입니다(필드 = AND, 값 목록 = OR)
- 수정자인 contains, endswith, all, re 등이 일치 방식을 더 구체적으로 지정합니다
condition이 선택 항목을 and/or/not, 필터 및 집계와 결합합니다- 별도의 제외 식별자로 정상으로 알려진 잡음을 제거합니다
- 메타데이터(level, tags, falsepositives)가 초기 분석을 신속하게 합니다
sigma convert가 규칙을 SIEM 백엔드용 형식으로 컴파일합니다
다음으로 MITRE ATT&CK을 사용하여 이 규칙들을 공격자의 기법에 연결합니다.
자주 묻는 질문
“Sigma 규칙 작성” 강의는 무료인가요?
네 — “Sigma 규칙 작성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“Sigma 규칙 작성”에서 뭘 배우나요?
이식 가능한 탐지 규칙 구문 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“Sigma 규칙 작성” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 코드형 탐지 원칙
- Sigma 규칙 작성
- MITRE ATT&CK에 매핑하기
- 탐지 테스트 및 조정