sonar-assess-risk
이벤트 로그의 위험 점수를 계산합니다. 탐지 룰과 자산 정보를 기반으로 ETIR 위험 점수를 산출하여 레코드에 추가하며, 보안관제 운영 시 이벤트 심각도 우선순위 판별에 활용합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
옵션
simple=BOOLt로 지정하면 최종 위험 점수 필드(_risk_score)만 출력하고 나머지 분석 필드는 생략합니다 (기본값:f).rule=BOOLt로 지정하면 룰 관련 필드(_rule_ticket_issue_cond,_rule_enabled)를 추가로 출력합니다 (기본값:f).
입력 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
_rule_type | 문자열 | 필수 | 탐지 룰 유형 (STREAM 또는 BATCH) |
_rule | 32비트 정수 | 필수 | 탐지 룰 ID |
_signature_guid | 문자열 | 선택 | 시그니처 GUID |
host_ip | 문자열 | 선택 | 탐지된 호스트 IP 주소 |
src_ip | 문자열 | 선택 | 이벤트 출발지 IP 주소 |
dst_ip | 문자열 | 선택 | 이벤트 목적지 IP 주소 |
출력 필드
simple=f(기본값)일 때 출력됩니다. simple=t이면 _risk_score만 출력됩니다.
| 필드 | 타입 | 설명 |
|---|---|---|
_rule_type | 문자열 | 입력 필드 유지 (STREAM 또는 BATCH) |
_rule | 32비트 정수 | 입력 필드 유지 (탐지 룰 ID) |
_rule_name | 문자열 | 탐지 룰 이름 |
host_ip | 문자열 | 입력 필드 유지 |
src_ip | 문자열 | 입력 필드 유지 |
dst_ip | 문자열 | 입력 필드 유지 |
_signature_guid | 문자열 | 입력 필드 유지 |
_risk_score | 문자열 | 산출된 위험 점수 (예: Critical, High, Medium, Low) |
_private_ip | 문자열 | 이벤트에서 식별된 내부 IP 주소 |
_capec_id | 문자열 | 시그니처에 연결된 CAPEC ID |
_likelihood_type | 문자열 | 가능성 계산에 사용된 유형 |
_likelihood_target | 문자열 | 가능성 계산 대상 |
_exploit_target | 문자열 | 공격 대상 자산 |
_exploit_cve_id | 문자열 | 연관된 CVE ID |
rule=t일 때 추가로 출력됩니다.
| 필드 | 타입 | 설명 |
|---|---|---|
_rule_ticket_issue_cond | 문자열 | 티켓 발행 조건 (ALWAYS, ONCE) |
_rule_enabled | 불리언 | 탐지 룰 활성화 여부 |
계산 오류 발생 시 출력됩니다.
| 필드 | 타입 | 설명 |
|---|---|---|
_error | 문자열 | 오류 메시지 |
_error_file | 문자열 | 오류가 발생한 소스 파일명 |
_error_line | 32비트 정수 | 오류가 발생한 소스 코드 행 번호 |
오류 코드
파싱 오류
해당 사항 없음
런타임 오류
해당 사항 없음
처리 중 예외가 발생하면 레코드를 버리지 않고
_error,_error_file,_error_line필드에 오류 정보를 기록한 뒤 파이프라인으로 전달합니다.
설명
sonar-assess-risk는 이벤트 레코드에 포함된 _rule_type과 _rule 필드를 사용하여 해당 탐지 룰 객체를 조회하고, ETIR 서비스에서 위험 점수를 계산하여 레코드에 추가합니다.
룰 객체를 찾을 수 없는 경우(_rule_type 또는 _rule 필드가 없거나, 해당 ID의 룰이 존재하지 않는 경우) 해당 레코드에는 아무 필드도 추가하지 않고 파이프라인으로 전달합니다.
simple=t 옵션을 사용하면 _risk_score 필드만 추가되어 출력이 간결해집니다. 위험 점수 값만 필요한 집계나 필터링 파이프라인에서 유용합니다.
rule=t 옵션을 사용하면 탐지 룰의 티켓 발행 조건(_rule_ticket_issue_cond)과 활성화 상태(_rule_enabled)도 함께 확인할 수 있습니다.
사용 예
-
최근 1시간 이내 이벤트의 위험 점수 계산
table duration=1h sonar_events | sonar-assess-risk | fields _rule_type, _rule, _rule_name, src_ip, dst_ip, _risk_score -
위험 점수만 추가하여 위험 점수 기준으로 집계
table duration=1d sonar_events | sonar-assess-risk simple=t | stats count by _risk_score -
탐지 룰 정보를 포함하여 위험 점수 계산
table duration=1h sonar_events | sonar-assess-risk rule=t | fields _rule, _rule_name, _rule_enabled, _rule_ticket_issue_cond, _risk_score
호환성
sonar-assess-risk 명령어는 소나 5.0.2603.0 버전부터 사용 가능합니다.