TID - 기술지원 엔지니어의 삶

kyoungyeon·2024년 3월 8일

SIEM Architecture 작년 10~11월 공부 내용 업로드

Status

  • 작년 하반기 "회사의 요구로 " 무려 400달러를 (한화 및 수수료로 56만원) 일시불로 사비로 시험치고
    • aws에 비해 너무 양이나 질적으로 쉽다보니 이틀간 100프로 다 외워서 시험쳤건만 회사에서 준 시험 족보가 하필 짭이라
      맹렬하게 FAIL 했다

어이없어서 화도 안났다.

덤프 업데이트 "당연히" 됐었을 텐데 돈 좀 쓰시지 그러셨어요..

😋

  • "한달 반"뒤에 회사에서 돈 돌려받긴했어요 하하

  • 100만원이면 월급 절반입니다. 재시를 치라구요..?(한 달이 채 지나기전 들은 내용)
    제 소중한 월세와 생활비구요 대출을 갚는 용으로 쓰겠습니다.

    듣도보도 못한 자격증에 본인이라면 쓰시겠습니까 ...?

저는 돈도 자존심도 없으니까요


Definition

SIEM

  • 로그 수집기 =스플렁크가 유명하죠.

foritsiem만 그런지 모르겠는데
Syslog, WMI, snmp 위주로 수집한다

특히 multi-tenancy 를 총괄 관리하는 supervisor node 역할을 하며,
worker node와 collector가 연동과 각 고객사 site에서 열심히 갖고온 로그들을 event 분석하고 시각화하는 솔루션임.

  • 설치방법에 따라 구조가 좀 바뀐다 (총 3개 확인)
    1 ) Multi-tenacy Organizations 모드
    중앙집권화 cloud 환경 (MSSP - 관리형 보안 서비스)


    2 ) Enterprise 모드
    Super Organization ( SIEM)
    SMB
    All-in-one으로 한쌍의 슈퍼-워커 노드가 모든걸 관리하는 개념..


    3 ) Service Provider 모드
  • service Provider (주로 Fortisiem을 일컫는다)
  • multi-tenancy를 여러 organization을 통해 서포트 함
    • Super Local (default collector)
    • Super Global (default)
  • 옵션:
    Super local : Collector
    가비지 콜렉터..?
    와 유사하다. 연동된 devices들의 log를 열심히 수집해서 worker nodes에게 전달하는 역할을 함 (추가 여부는 배포 하는 사람 선택)

Architecture

  • shared Storage : NFS/ClickHouse/Elastic DB 가 설치됨
    • 참고로 스토리지는 super Node가 관리함.
  • env: VM /Onpremise VPN내 설치
  • Supervisor(Super node) : 핵심 기능 담당
    • 관리 기능 중심.
    • 내외부의 log 를 관리하는데, (ip addr, email , host등이 있음)
    • cmdb log 관리,
    • 이벤트 스토리지 관리,
    • 인시던트 관리
    • 헬스체크 (워커노드),
    • 기본적으로 쿠베의 컨트롤 플레인과 유사하다
  • WorkerNodes(n개) :
    • scale out 기능 (논리 노드),
    • event 프로세스와
    • query 프로세스를 담당하는 worker 노드 2종류로 나뉨

VPN 밖 TLS 통신(https로만 접근가능)

  • Collecors :
    물리, 가상 노드들 ,
    위치는 local이나 원격으로 움직임,
    • Collector는 Worker/SuperNode 둘다 tcp/433으로 통신함
      worker 노드에는 event, query 로그 공유
      supervisor에는 health 와 task 로그 공유
      backend 에서 discovery, health check, 퍼포먼스 check, event parsing, log data collection 등의 역할을 함
  • Nodes 역할
    • worker nodes : Collector로 부터 event data 받음, parsing
    • supervisor node : Collector로부터 health 체크와 Task 관련 받음 [예 : discovery (디바이스 자동으로 찾고 연동하는 역할), data collection ]

CMD

#phtools --stop all
Check that all processes have stopped.
#phstatus
You will see that these processes are still running, which is expected behavior.
These processes will continue to run, which is expected behavior:
phMonitor     1-01:55:17     0           992m         540m
Apache        1-01:56:45     0           236m         9720
AppSvr        1-01:56:35     0           3908m        758m
DBSvr         1-01:57:06     0           383m         6656
Copy the EventDB to the event DB location /data/eventdb. If you use the cp command, it may appear that the command has hung if there is a lot of data to copy. 
#phtools --start all
Check that all processes have started.
#phstatus
  • phtool : device 상태 체크
    phMonitor 등 프로세스 체크에 용이함. gui 환경 먹통일 때 사용해야함.

  • auditd : collecting logs 기능

Collector

  • scaling collectors at customer site?
    - direct log collection (TCP 통신/ https/ 443)
    : WMI , syslog
    • Perfomance monitoring and Siem collection jobs

EPS

  • Event
    • every 5 seconds / low EPS
    • every 10 MB / high EPS
    • maximum 10,000 event files buffered on collector
    • average size 200bytes
    • buffersize depend on EPS
  • buffersize와 collector의 연관관계
    • EPS가 커질수록 Estimated buffer time은 준다
      예 : EPS 500 BFT : 55.55 hrs
      EPS 2000 BFT : 13.88 hrs
      EPS 3000 BFT : 9.25 hrs
      참고로 Buffer 가 풀로 차면 collector가 event를 drop 시킴

Process

  • 노드에 따라 프로세스 이름이 직관적으로 지어짐
    • phQueryMaster
      supervisor node only ,
      ls -la /query

      GUI의 쿼리를 쪼개서 업무 할당함
      phQueryworker 과 쿼리 통신함
      query worker가 일을 다 끝내면 분류 를 통해 합침.

    • phQueryWorker
      super/worker node 다 존재
      ls -la /querywkr

    • phRuleWorker
      그룹기준 및 필터 조건으로 요약된 데이터를 superviosr node에 제공함

Agent

  • agent가 등록된 뒤에도 supervisor와 계속해서 연동하는 이유?
    • 새로운 agent template 수집
    • health ,status 보고

SQLite data base

  • baseline data 사용되는 db
    • daily database : 쿼리를 쓸 때 모집단 db
    • profile database : 필터링을 걸은 표본집단 db

UEBA

  • capture 대상
    • device ,process,user,resource, behavior

Playbook

  • connector step
    by name , by action으로 커넥터 연동을 함
profile
🏠TECH & GOSSIP

0개의 댓글