sonar-assess-risk

이벤트 로그의 위험 점수를 계산합니다. 탐지 룰과 자산 정보를 기반으로 ETIR 위험 점수를 산출하여 레코드에 추가하며, 보안관제 운영 시 이벤트 심각도 우선순위 판별에 활용합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행지원
분산 실행수집 노드에서 실행 (mapper)

문법

sonar-assess-risk [simple=BOOL] [rule=BOOL]

옵션

simple=BOOL
t로 지정하면 _rule_name, _private_ip, _capec_id, _likelihood_type, _likelihood_target, _exploit_target, _exploit_cve_id 필드를 생략합니다 (기본값: f).
rule=BOOL
t로 지정하면 룰 관련 필드(_rule_ticket_issue_cond, _rule_enabled)를 추가로 출력합니다 (기본값: f).

입력 필드

필드타입필수 여부설명
_rule_type문자열필수탐지 룰 유형 (STREAM 또는 BATCH)
_rule32비트 정수필수탐지 룰 ID
signature문자열선택탐지된 시그니처 문자열. 탐지 룰에 연계된 시그니처 앱에서 일치하는 시그니처를 조회하여 CAPEC 매핑 정보(_capec_id)를 가져오는 데 사용합니다
_site문자열선택사이트 이름. 지정하면 해당 사이트에 등록된 자산 정보로 조회 범위를 좁힙니다
host_ip문자열선택탐지된 호스트 IP 주소. 자산 정보(기밀성·무결성·가용성 등급, CVE 취약점) 조회에 사용합니다
src_ip문자열선택이벤트 출발지 IP 주소. host_ip와 동일하게 자산 정보 조회에 사용합니다
dst_ip문자열선택이벤트 목적지 IP 주소. host_ip와 동일하게 자산 정보 조회에 사용합니다

출력 필드

이 명령어는 입력 레코드에 필드를 추가하는 가공 쿼리이므로, 아래 표에 없는 입력 필드는 그대로 유지됩니다. 탐지 룰을 찾은 경우 아래 필드가 항상 추가됩니다(단, 시그니처·자산 매칭 정보가 없으면 _risk_score 값이 null일 수 있습니다).

필드타입설명
_rule_type문자열입력 필드 유지 (STREAM 또는 BATCH)
_rule32비트 정수입력 필드 유지 (탐지 룰 ID)
host_ip문자열입력 필드 유지
src_ip문자열입력 필드 유지
dst_ip문자열입력 필드 유지
_signature_guid문자열입력 필드 유지 (이 명령어는 값을 채우지 않으며, CAPEC 조회는 signature 필드를 사용합니다)
_risk_score32비트 정수산출된 위험 점수 (0-100 사이의 값. 값이 클수록 위험도가 높음)

simple=f(기본값)일 때 추가로 출력됩니다. simple=t이면 아래 필드는 생략됩니다.

필드타입설명
_rule_name문자열탐지 룰 이름
_private_ip문자열이벤트에서 식별된 내부 IP 주소
_capec_id문자열시그니처에 연결된 CAPEC ID
_likelihood_type문자열가능성 계산에 사용된 유형
_likelihood_target문자열가능성 계산 대상
_exploit_target문자열취약점이 확인된 자산의 IP 주소
_exploit_cve_id문자열연관된 CVE ID

rule=t일 때 추가로 출력됩니다.

필드타입설명
_rule_ticket_issue_cond문자열티켓 발행 조건 (NEVER, ETIR_THRESHOLD, ALWAYS)
_rule_enabled불리언탐지 룰 활성화 여부

계산 오류 발생 시 출력됩니다.

필드타입설명
_error문자열오류 메시지
_error_file문자열오류가 발생한 소스 파일명
_error_line32비트 정수오류가 발생한 소스 코드 행 번호

오류 코드

파싱 오류

해당 사항 없음

런타임 오류

해당 사항 없음

처리 중 예외가 발생하면 레코드를 버리지 않고 _error, _error_file, _error_line 필드에 오류 정보를 기록한 뒤 파이프라인으로 전달합니다.

설명

sonar-assess-risk는 이벤트 레코드에 포함된 _rule_type과 _rule 필드로 해당 탐지 룰 객체를 조회하고, signature·_site·host_ip·src_ip·dst_ip 필드를 참고하여 ETIR 서비스에서 위험 점수를 계산해 레코드에 추가합니다.

_rule_type과 _rule 필드는 이벤트를 발생시킨 원본 로그에만 기록되므로, event 명령어에 raw=t 옵션을 지정해 조회한 결과를 입력으로 사용하세요.

_rule ID에 해당하는 탐지 룰이 존재하지 않으면 해당 레코드에는 아무 필드도 추가하지 않고 그대로 파이프라인으로 전달합니다. 반면 _rule_type이나 _rule 필드가 없거나 값이 올바르지 않아 룰 조회 자체가 실패하면 계산 오류로 처리되어 _error 등 오류 필드도 추가됩니다.

simple=t 옵션을 사용하면 _rule_name, _private_ip, _capec_id, _likelihood_type, _likelihood_target, _exploit_target, _exploit_cve_id 필드를 생략하여 출력이 간결해집니다. 위험 점수만 필요한 필터링 파이프라인에서 유용합니다.

rule=t 옵션을 사용하면 탐지 룰의 티켓 발행 조건(_rule_ticket_issue_cond)과 활성화 상태(_rule_enabled)도 함께 확인할 수 있습니다.

사용 예

  1. 최근 1시간 이내 이벤트의 위험 점수 계산

    event duration=1h raw=t
    | sonar-assess-risk
    | fields _rule_type, _rule, _rule_name, src_ip, dst_ip, _risk_score
    
  2. simple=t 옵션으로 위험 점수만 추가하여 고위험 이벤트 필터링

    event duration=1d raw=t
    | sonar-assess-risk simple=t
    | search _risk_score >= 80
    | sort -_risk_score
    
  3. 탐지 룰 정보를 포함하여 위험 점수 계산

    event duration=1h raw=t
    | sonar-assess-risk rule=t
    | fields _rule, _rule_name, _rule_enabled, _rule_ticket_issue_cond, _risk_score
    

변경 이력

sonar-assess-risk 명령어는 소나 4.0.2609.0(5.0 계열은 5.0.2603.0) 버전부터 사용 가능합니다.

4.0 계열 웹 콘솔은 자산에 CVE 취약점을 등록하는 화면을 제공하지 않으므로 _exploit_target, _exploit_cve_id 필드가 항상 비어 있습니다. 또한 탐지 룰의 티켓 발행 조건을 ETIR_THRESHOLD로 지정할 수 없어 _rule_ticket_issue_cond는 ALWAYS 또는 NEVER만 출력됩니다.