WebSocket Error – Splunk Phantom

2020.05.16

웹소켓 에러가 계속 발생하는데 어느 부분을 수정해야 해결되는지 모르겠다.

 

2020.05.17

원인 : 8888를 사용하는 대몬이 있는데 그게 안 떠 있어서 그렇다.

python2.7 /opt/phantom/www/phantom_ui/websocket_server.py

오늘 확인해보니 이게 떠 있네,,

해결책 : 이 대몬을 어떻게 수동으로 올려주는지는 모르겠다.

아마도 이건 내일 알수 있을까?

아니다. 방금 해결의 실마리를 찾았다.

위 대몬의 부모 PID를 확인해보니 아래였다.

/opt/phantom/usr/bin/python2.7 /opt/phantom/usr/bin/supervisord -c /opt/phantom/etc/supervisord.conf

뭐지,,,

한번더 정리하면 아래 명령어로 시작과 중지하면 웹소켓도 자동으로 열린다.

그런데, 왜 갑자기 안된걸까?

/opt/phantom/bin/start_phantom.sh

/opt/phantom/bin/stop_phantom.sh

Splunk Phantom Playbook 동작 방식

팬텀을 알게 된게 1년은 넘은 것 같은데, Playbook을 동작시키는 방법을 오늘에서야 알게 되었다.

패텀은 Playbook을 기반으로 동작하는데 외부에서 유입되는 이벤트에 대해서 자동화 처리를 한다.

이때 자동화처리하는 기준은 바로 아래 Operates on : 이 부분에서 사용하는 라벨의 이름이다.

이 이름이 매치되면 실행된다. 실제 실행여부에 대해서는 그 아래 Acitve 토글을 켜주면 된다.

이렇게 되면 이벤트 이름 라벨링이 상당히 중요하게 된다.

 

sysmon + winlogbeat를 활용하여 간단한 EDR 만들기

sysmon은 윈도우에서 발생하는 이벤트를 필터링해서 윈도우 이벤트 관리자에 저장하게 해준다.

그리고 winlogbeat는 저장된 이벤트를 ElasticSearch에 저장한다.

이 프로세스를 활용하여 간단한 EDR을 만들어 보자.

여기까지 오신 분은 이미 ELK 클러스터를 구성했다고 보고, 이 부분은 생략하겠습니다.

sysmon 설치는 아래 URL에서 설정 파일을 받아서 자신에 맞게 수정해서 사용하변 됩니다.
https://github.com/SwiftOnSecurity/sysmon-config

sysmon 서비스 설치는 아래처럼 실행하시면 됩니다.

sysmon64 -i config.xml

이렇게 하면 자동으로 winlogbeat에서 이벤트를 보내줍니다.

 

이제  sysmon특정 이벤트를 탐지할 수 있는 설정을 추가해서 분석하면 됩니다.

 

여기서 막히시는 분은 다시 sysmon 설정부터 다시 보셔야 됩니다.

왜냐면 sysmon의 많은 데이터를 모두 볼 수 없으니, 상황에 맞게 잘 설정해야 합니다.

 

Winlogbeat 서비스 설치 – get-help about_signing

winlogbeat 서비스 설치 시 아래 메세지가 나오면서 설치가 안된다.

“get-help about_signing”

원인은 파워셀 스크립트 실행시 기본으로 Restricted인데 이 모드에서는 개별 명령어는 실행 가능하지만, 스크립트 실행은 안되기 때문입니다.

해결책은 모드를 RemoteSigned로 변경하면 되고, 아래 명려어를 실행하면 된다.

Set-ExecutionPolicy RemoteSigned

 

 

SOAR의 여러 관점 – 고객사, 제품 제조사, 리셀러 등

대형 고객사의 임원

  • 어떻게 하면 인력을 줄여서 원가를 절감할 수 있을까?

 

대형 고객사의 실무 담당자

  • 진보적 성향 : 어떻게 하면 잡다한 일들을 자동으로 처리하고 진짜 일을 할 수 있을까?
  • 중립적 성향 : 지금 잘 하고 있는데 왜 바꿔,, 뭐가 문제야! 그리고 내가 짤리는건 아니겠지.
  • 보수적 성향 : 변경했을때 문제되면 니가 책임 지냐?

 

제품 제조사

  • SIEM 제품 제조사 : 자사 제품과 잘 연동되는 걸 만들어야 하는데,,,
  • SIEM 제품이 없는 제조사 : 타사 제품과 연동 잘되는걸 만들어야 하는데,,,

 

리쎌러

  • 암튼,, 얼마나 팔 수 있어!

 

자신이 처한 위치에 따라 제품의 관점이 다 달라진다.

 

리쎌러 입장에서는 일단 2가 방향을 생각할 수 있다.

  • 대형 고객사에 비싼 라이센스와 컨설팅 비용으로 수익 창출이 가능하다.
    역시 여긴 뭐든지 까다롭다. 돈 많이 받으니 원하는건 웬만한건 다 해줘야지….
  • 중형 고객사에 저렴한 라이센스와 컨설팅 비용으로 수익 창출이 가능하다.
    중형 고객사에서 SOAR를 도입하는 이유는 기존에 운영하는 사람이 없는데, 채용하긴 힘들고
    그래서 도입하기 때문에 1명 인건비 정도로 컨설팅 비용을 받을 수 있다.
    이런 경우엔 비슷한 플레이 북으로 재탕할 수 도 있다.

Sysmon + ELK 연동 방법

쉬운 방안 : sysmon – nxlog – logstash – elasticsearch – kibana

장점 : 쉽게 설정 가능하다.

단점 : SPOF 문제 발생(logstash)에 대응하기 힘들다.

 

복잡하지만 안정적인 방안 : sysmon – winlogbeat – elasticsearch(ingest node) – kibana

장점 : 안정적인 서비스 가능(ingest 노드에 1대에 장애가 생겨도 클러스터링 구성에 의해 서비스 중단 없음)

단점 : 클러스터 구성에서 가능한 구조이기 때문에 서버 비용 발생

 

분석 서버가 1대인 곳은 당연히 logstash를 사용하는게 맞고, 분석 서버가 10대 이상 둘 수 있는 곳은 당연히 ingest node로 전송하는게 맞다.

 

이벤트 분석 자동화

기존
– 이벤트 탐지 후 분석은 사람이 한다.
– 분석을 자동화 할려면 엔드 포인트로그를 수집해야 한다.
– 엔드 포인트로그를 수집할려면 많은 비용이 든다.
– 다시 원점으로 돌아와서 사람이 분석한다.
 
변경
– sysmon으로 엔드포인트 로그를 저장한다.
– 저장된 로그를 파일비트를 사용해서 elasticsearch에 저장한다.
– 이벤트 탐지 후 해당 이벤트를 팬텀으로 전송한다.
– 팬텀에서 dbxquery로 elasticsearch의 데이터를 분석 후 조치한다.

SIEM 솔루션 입장에서 악성코드 분석의 의미

SIEM 솔루션에서 보안 제품들의 로그를 사용해서 악성코드를 탐지할 수 있는 방법이 있을까?

악성코드를 분석하는 강좌를 보고 있는데, 이 작접 자체가 엄청난 리소스를 필요로 한다.

그래서 이 부분을 자동화하거나 작업을 최소할 수 있는 방법을 찾는게 중요하다.

악성코드가 유입되는 경로는 아래와 같다.

  1. 브라우저를 통한 다운로드
  2. USB를 통한 유입
  3. 별도 프로그램을 통한 다운로드(Slack같은 프로그램)

일단 위 경로의 파일들을 검사하는게 중요하다.

그리고 다운로드된 후 실행되는데, 이때 EDR 솔루션에서 탐지하는 로그를 가지고 분석할 수 있다.

엔드포인트단의 로그를 분석한다는 것은 이미 해당 시스템이 공격당했을 가능성이 있다.

SIEM에서는 해당 PC에서 다른 PC로 확산되지 않도록 조치할 수 있다.

 

이 부분은 Phantom을 사용해서 자동화 시킬 수도 있다.

예를 들면 다운로드 파일의 리소스 분석을 해서 파이썬 코드가 있는지 분석해서 관리자에게 알림을 보내는 방법이 있다.

이것을 좀더 세분화시킨 영상이 있어서 소개합니다.

 

  1. 랜섬웨어 파일 생성
  2. sysmon에서 로그 생성
  3. 유니버셜 포워더에서 로그를 스플렁크에 전송
  4. 스플렁크에서 1분에 10개 이상의 파일이 생성되면 팬텀에 전송
  5. 팬텀에서 해당 파일을 바이러스 토탈에 전송
  6. 바이러스 토탈의 결과로 후속 조치

위 6개의 단계로 랜섬웨어에 대응하는 것을 봤는데, 사실 SIEM 솔루션은 랜섬웨어 차단을 100% 할 수 있는 솔루션은 아니다.

대신에 확산되지 않도록 할 수 는 있다.

스플렁크를 사용하지 않고 ELK를 사용하는 회사라면 3번을 filebeat로 변경하고 4번을 elasticsearch로 변경하면 된다.

5번 팬텀은 커뮤니티 버전은 무료라서 그냥 써도 된다.

 

sysinternals 이 프로그램을 믿고 사용해되 될까?

15년전에 검색엔진 유지보수 업무를 할때 이 회사 제품을 많이 사용했다.

가장 많이 사용한 것은 바로 pskill이었는데, 사용하면서도 뭔가 찜찜했었다.

찾아보니 2006년 7월에 MS에서 인수했다고 한다. 인수를 해도 윈도우 OS에 포함되지 않고 별도로 계속 운영중이다.

그래서 지금은 맘 놓고 이 프로그램을 사용해도 된다.

침해사고 분석시 pslist(현재프로세스 리스트), listdlls(프로세스에서 사용하는 DLL), handle(프로세스에서 사용하는 파일핸들) 이걸 많이 사용하는데, 이것도 맘놓고 사용해도 된다.