LabHub
배우기 러닝패스 코스

cron 이 새벽 세 시에 curl 을 했다 · 규칙은 문장이 아니라 자료 구조다 · 퀴즈

퀴즈: Sigma 규칙 읽기

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. Sigma 규칙에서 반드시 있어야 하는 항목 셋은?

    1. `title`·`id`·`level` 이며 나머지는 백엔드가 채워 준다
    2. `logsource`·`detection`·`falsepositives` 세 가지다
    3. `title`·`logsource`·`detection` 이고 나머지는 선택이다
    4. `title`·`description`·`condition` 세 가지가 최소 단위다
  2. 한 selection 안에 필드 두 개를 적고 그중 한 필드에 값 세 개를 리스트로 주면?

    1. 필드끼리도 OR, 값끼리도 OR 라서 여섯 가지 중 하나만 맞으면 된다
    2. 필드끼리도 AND, 값끼리도 AND 라서 모든 조건이 동시에 맞아야 한다
    3. 리스트가 있는 쪽이 우선해 그 필드만 평가되고 나머지는 무시된다
    4. 필드끼리는 AND 이고 한 필드 안의 값끼리는 OR 로 묶인다
  3. `condition: selection and not filter_internal` 이 하는 일은?

    1. selection 에 맞은 것 중 filter_internal 에도 맞는 것을 빼고 남긴다
    2. selection 과 filter_internal 을 순서대로 평가해 뒤엣것만 남긴다
    3. 두 선택 중 하나라도 맞으면 알림을 내되 심각도를 한 단계 낮춘다
    4. filter_internal 을 먼저 평가해 맞으면 selection 을 건너뛰고 끝낸다
  4. `1 of selection_*` 와 `all of selection_*` 의 차이는?

    1. 앞엣것은 첫 번째 선택만 보고 뒤엣것은 마지막 선택까지 본다
    2. 앞엣것은 이름이 selection_ 로 시작하는 것 중 하나라도 맞으면 참이다
    3. 앞엣것은 규칙 하나만 만들고 뒤엣것은 선택마다 규칙을 하나씩 만든다
    4. 앞엣것은 필드를 OR 로 묶고 뒤엣것은 값을 AND 로 묶는 수식어다
  5. `CommandLine|contains: 'nc'` 라고 쓴 규칙이 `rsync -a /var/backups/` 를 잡았다. 이유는?

    1. rsync 가 내부적으로 nc 를 불러 실행하기 때문에 같이 걸린 것이다
    2. contains 수식어가 대소문자를 구분하지 않아 다른 낱말까지 맞은 것이다
    3. contains 는 부분 문자열을 보므로 rsync 안의 n 과 c 가 이어져 맞았다
    4. 리스트가 아닌 단일 값에는 자동으로 정규식이 적용되기 때문이다
  6. 이번 사건의 목적지 도메인을 규칙에 그대로 적어 두면 생기는 문제는?

    1. 규칙 파일이 길어져 백엔드가 질의문으로 번역하지 못하게 된다
    2. 도메인 문자열은 로그에 남지 않아 애초에 맞출 수가 없다
    3. 같은 도메인을 쓰는 정상 트래픽까지 전부 오탐으로 잡힌다
    4. 주소가 바뀌는 순간 규칙이 아무것도 못 잡는데 아무도 모른다