SIEM Architecture 작년 10~11월 공부 내용 업로드
Status
- 작년 하반기 "회사의 요구로 " 무려 400달러를 (한화 및 수수료로 56만원) 일시불로 사비로 시험치고
- aws에 비해 너무 양이나 질적으로 쉽다보니 이틀간 100프로 다 외워서 시험쳤건만 회사에서 준 시험 족보가 하필 짭이라
맹렬하게 FAIL 했다
어이없어서 화도 안났다.
덤프 업데이트 "당연히" 됐었을 텐데 돈 좀 쓰시지 그러셨어요..
😋
저는 돈도 자존심도 없으니까요
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
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으로 커넥터 연동을 함