배치 탐지 시나리오 수정
지정한 배치 탐지 시나리오를 수정합니다.
HTTP 요청
PUT /api/sonar/batch-rules/:guid
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
-d priority="LOW" \
-d name="웹 취약점 스캔" \
-d schedule="*/10 * * * *"
-d msg="웹 취약점 스캔: $dst_ip" \
-d query="table duration=30m weblog | search status >= 400 | stats count as error_count, dc(path) as page_count, values(concat(method, " ", path)) as request by src_ip | eval request = strjoin("\n", request) | lof eps=0.1 error_count, page_count | search _lof > 1.5 | sort -_lof" \
-X PUT \
https://HOSTNAME/api/sonar/batch-rules/410fe6af-b2f8-4674-af70-8d5b12ddc3fe
요청 매개변수
키 | 필수 | 타입 | 설명 | 비고 |
---|---|---|---|---|
priority | O | 문자열 | 중요도 | LOW , MEDIUM , HIGH 중 하나 |
guid | O | 문자열 | 배치 탐지 시나리오 GUID | 36자 |
name | O | 문자열 | 배치 탐지 시나리오 이름 | 최소 1자, 최대 255자 |
description | X | 문자열 | 배치 탐지 시나리오 설명 | 최대 2,000자 |
msg | O | 문자열 | 메시지 템플릿 | 최소 1자, 최대 2,000자 |
enabled | X | 불리언 | 활성화 여부 | true 혹은 false |
category_guid | X | 문자열 | 시나리오 분류 GUID | 36자 |
schedule | O | 문자열 | 실행 주기 | CRON 일정 문법 사용 |
duration | X | 32비트 정수 | 분석 대상 기간 | 초 단위로 지정. 최대 31536000 초 (365일) |
datetrunc | X | 32비트 정수 | 시간 절사 | 1 , 60 , 3600 , 86400 중 하나 (초 단위) |
dataset_guid | X | 문자열 | 데이터셋 GUID | dataset_guid와 query 중 하나는 필수 입력. 36자 |
query | X | 문자열 | 탐지 쿼리 | dataset_guid와 query 중 하나는 필수 입력. 최대 65535자 |
address_group_guid | X | 문자열 | 주소 그룹 GUID | 36자 |
address_field | X | 문자열 | 주소 필드 | 주소 그룹에 등록할 필드 이름. 최대 50자 |
ticket_repo_guid | X | 문자열 | 티켓 분류 GUID | 미설정 시 티켓 발생하지 않음. 36자 |
ticket_assignee_guid | X | 문자열 | 티켓 할당자 GUID | 지정 시 담당자 자동 할당 |
ticket_suppress_interval | X | 32비트 정수 | 중복 티켓 축약 기간 | 초 단위. 0 또는 미설정 시 동일 티켓을 병합하지 않음 |
event_suppress_interval | X | 32비트 정수 | 중복 이벤트 제거 기간 | 초 단위. 0 또는 미설정 시 중복 이벤트를 제거하지 않음 |
suppress_key | X | 문자열 | 중복 기준 필드 | $field 형식으로 매크로 사용 가능. 최대 2,000자 |
keep_alive | X | 불리언 | 축약 타이머 유지 여부 | 축약 타이머 유지 시 true , 초기화 시 false |
audit_category_guid | X | 문자열 | 소명 분류 GUID | 미설정 시 자동 소명 요청이 비활성화됨. 36자 |
auditor_guid | X | 문자열 | 소명 확인 계정 GUID | 미설정 시 부서장 전결. 36자 |
audit_days | X | 32비트 정수 | 소명 제출 마감 시한 | 최소 1일, 최대 365일 |
employee_key_field | X | 문자열 | 사번 필드 이름 | 미설정 시 자동 소명 요청이 비활성화됨. 최대 50자 |
alarm_group_guid | X | 문자열 | 알람 그룹 GUID | 36자 |
field_order | X | 문자열 | 근거 자료 필드 출력 순서 | 최대 2,000자 |
정상 응답
{}
오류 응답
필수 매개변수가 누락된 경우
HTTP 상태 코드 400
응답
{
"error_code": "null-argument",
"error_msg": "schedule should be not null"
}
매개변수 값의 길이가 잘못된 경우
HTTP 상태 코드 400
응답
{
"error_code": "invalid-argument",
"error_msg": "'address_field' must be shorter than or equal to 50 characters."
}
잘못된 중요도 값을 사용한 경우
HTTP 상태 코드 400
응답
{
"error_code": "invalid-argument",
"error_msg": "priority should be one of 'LOW', 'MEDIUM', 'HIGH'."
}
식별자가 GUID 형식이 아닌 경우
HTTP 상태 코드 400
응답
{
"error_code": "invalid-param-type",
"error_msg": "category_guid should be guid type."
}
일정 CRON 문법이 잘못된 경우
HTTP 상태 코드 400
응답
{
"error_code": "invalid-argument",
"error_msg": "schedule has wrong cron expression format: * * * * * *"
}
데이터셋과 쿼리 모두 지정하지 않은 경우
HTTP 상태 코드 400
응답
{
"error_code": "null-argument",
"error_msg": "query should be not null"
}
시간 절사 값이 유효하지 않은 경우
HTTP 상태 코드 400
응답
{
"error_code": "invalid-argument",
"error_msg": "datetrunc should be one of 1 (1 second), 60 (1 minute), 3600 (1 hour), 86400 (1 day)."
}
시나리오가 존재하지 않는 경우
HTTP 상태 코드 500
응답
{
"error_code": "illegal-state",
"error_msg": "batch rule not found: 9071a6fe-6b91-4448-9761-7123381cb026"
}
시나리오 생성 권한이 없는 경우
HTTP 상태 코드 500
응답
{
"error_code": "illegal-state",
"error_msg": "no-permission"
}