sonar-create-stream-rule-batch
입력 레코드로부터 실시간 룰을 생성합니다. 생성된 룰은 비활성 상태입니다.
입력 레코드:
- name (필수) - 탐지 시나리오 이름. 중복된 이름은 사용할 수 없습니다
- schema_code (필수) - 로그 스키마 코드. sonar-log-schemas의 code 값입니다. 예: session
- msg (필수) - 이벤트 제목 템플릿. $필드로 로그 필드 값을 넣습니다. 예: SSH 접속: $src_ip -> $dst_ip
- priority (필수) - LOW, MEDIUM, HIGH 중 하나
- commands (필수) - 명령문 목록. 각 원소가 룰 본문의 명령문 하나입니다
- query (필수) - 룰 본문 전체를 담은 쿼리 문자열. 파이프 단위로 명령문로 분리됩니다
- description (선택) - 설명
- source_type (선택) - LOGGER 또는 LOGGER_MODEL
- logger_guids (선택) - 수집기 GUID 목록. 목록 또는 쉼표로 구분된 문자열
- logger_model_guids (선택) - 수집 모델 GUID 목록. 목록 또는 쉼표로 구분된 문자열
- category_guid (선택) - 분류 GUID
- ticket_repo_guid (선택) - 티켓 분류 GUID
- suppress_key (선택) - 중복 제거 기준 템플릿. 예: $src_ip$dst_ip. 조합마다 이벤트 하나가 발생합니다
- event_suppress_interval (선택) - 중복 이벤트 제거 간격(초)
- ticket_suppress_interval (선택) - 중복 티켓 축약 간격(초)
- keep_alive (선택) - true 또는 false
- enabled (선택) - true 또는 false. 지정하지 않으면 false
- mitre_tactics (선택) - MITRE 전술 ID(TA0011 형태). 목록, 공백 구분 문자열, 쉼표 구분 문자열을 받습니다
- mitre_techs (선택) - MITRE 기법 ID(T1071.001 형태). 목록, 공백 구분 문자열, 쉼표 구분 문자열을 받습니다
commands와 query는 같은 것을 담는 두 방식이며 둘 중 하나가 필요합니다.
sonar-create-stream-rule-batch [run=값]
- run=값
- 선택. t로 지정한 경우에만 룰을 생성합니다.
출력 필드
| 필드 | 타입 | 이름 | 설명 |
|---|---|---|---|
| _status | 문자열 | 상태 | 예: success. success(반영됨), applicable(검증은 통과했으나 run=t가 없어 반영되지 않음), failure(거부됨, 사유는 _error) 중 하나입니다. |
| _guid | 문자열 | GUID | 생성된 룰의 GUID |
| _id | 32비트 정수 | ID | 생성된 룰의 ID |
| _error | 문자열 | 오류 | 예: name field is required. 레코드가 거부된 사유 |
| _warning | 문자열 | 경고 | 예: unresolved technique ids: T9999. 생성되었으나 요청 일부가 반영되지 않은 사유 |