엘라스틱서치(Elasticsearch) SIEM 설치

정보보안 통합 솔루션 플랫폼을 이용해 애플리케이션 로그, 시스템 로그, 보안 솔루션 로그 등 다양한 이기종 장비에 대한 통합 분석이 가능하다. 보안 업무 수행 시 가장 많은 리소스를 소모하는 과정은 사고 발생 조사 과정에서 보안 이벤트 분석이다. 단편적으로 남아 있는 보안 로그를 사고 분석가나 관제팀에서 추적하면 연결고리를 찾아 분석하기 때문에 시간이 많이 소요된다. 대규모 사고 발생 시 사고분석에 오랜 시간이 걸리는 원인도 이러한 로그를 찾아 추적하고 분석하는데 시간이 많이 소요되기 때문이다.

SIEM 제품과 같은 통합 보안 솔루션은 다양한 보안로그와 시스템로그를 통합해 이상 탐지 및 사이버 보안 위협 탐지 기능을 제공한다. 대표적인 통합 플랫폼인 Elasticsearch Security 제품의 무료버전을 설치해 보자. 트라이얼 기능을 이용해 임시로 유료 기능도 활용해 볼 수 있다.

Elasticsearch Security 플랫폼은 XDR 플랫폼으로서 엔드포인트 컴포넌트인 EDR 에이전트와 중앙관리 서버(Fleet)를 포함해서 다음과 같이 구성된다. Elasticsearch 엔진과 Kibaba(키바나), 플릿(Fleet) 서버를 통해 XDR 플랫폼으로 실시간 보안 위협 탐지와 예방, 대응 기능을 제공한다.

<그림> Elasticsearch 구성도 (구축형)

https://www.elastic.co/docs/reference/fleet/add-fleet-server-on-prem

플랫폼을 구성을 위해서 가장 먼저 핵심 엔진인 Elasticsearch 패키지를 설치한다. 설치 파일은 웹 사이트에서 다운받아 설치한다.[1]


[1] https://www.elastic.co/docs/deploy-manage/deploy/self-managed/installing-elasticsearch

<그림> Elasticsearch 설치파일 다운로드 및 설치 가이드

윈도우, 리눅스 계열 운영체제에 따라 필요한 설치 파일을 다운받아 설치를 진행한다. 우분투 기반의 운영체제에서 데비안 패키지 파일을 이용해 설치하는 과정을 살펴 본다. 설치 후 30일 동안 트라이얼 라이센스를 적용하면 모든 기능을 활용하거나 테스트할 수 있다. 설치 가이드 설명을 참고해서 데비안 패키지 파일을 다운로드 받는다. 설치 환경에 따라 설치 패키지 파일명이 다르다. 맥운영 체제 기반의 가상 환경에서 설치를 하기 위해 amd64 버전이 아닌 arm64 버전의 설치 파일을 다운로드 받았다. 설치 시 플랫폼에 따라 필요한 설치 파일은 링크[1]에서 직접 확인 후 다운로드 가능하다.


[1] https://www.elastic.co/downloads/elasticsearch

그림 Elasticsearch 설치 파일
그림 Elasticsearch 설치 파일 다운로드

설치 파일 다운로드가 완료되면 패키지 설치 명령을 통해 설치를 진행한다. 명령 실행 시 설치 파일명은 다운받은 파일명에 맞게 적용한다.

sudo dpkg -i elasticsearch-9.0.0-amd64.deb

설치가 완료되면 시스템 데몬은 다시 적용하고 재부팅 이후에도 Elasticsearch 서비스가 동작하도록 등록한다. 명령은 설치 CLI 화면에 내용을 복사해서 실행한다.

그림 Elasticsearch 설정

설치 과정에서 elastic 계정 패스워드를 별도로 메모한다. 키바나(Kibana) 설치 후 시스템 로그인 과정에 인증 정보가 필요하다.

그림 Elasticsearch 설치정보

설치가 완료되면 서비스를 시작하고 정상적으로 실행되었는지 확인한다.

그림 Elasticsearch 서비스 시작

서비스 상태가 실행상태를 확인하면 설치가 완료된다. Elasticsearch 설치가 완료되면 키바나(Kibana)를 설치한다. 키바나는 사용자가 Elasticsearch SIEM 기능을 운영하기 위해 필요한 웹 기반의 사용자 GUI 이다. Kibana GUI의 주요 기능은 다음과 같다.

  • 데이터 시각화: 로그, 대시보드
  • 보안 룰 설정 및 경보 설정
  • 자산 정보 관리 및 RISK 관리
  • 보안 경고 및 사고 조사
  • 클라우드 보안 관리
그림 키바나 대시보드 예제

키바나 설치 파일은 링크[1]를 통해 다운로드 한다. 데비안 패키지 파일을 다운받기 위해 설치 파일 종류를 선택한다.


[1] https://www.elastic.co/docs/deploy-manage/deploy/self-managed/install-kibana

그림 키바나 설치 파일 다운로드

설치 파일을 다운로드 받는 방법과 설치 명령은 링크를 참고해서 설치를 진행한다. 설치 파일은 플랫폼에 필요한 설치 파일을 확인해서 다운로드 받는다. 일반적인 amd 기반의 CPU를 사용하는 플랫폼에서는 amd64 설치 파일을 다운받아 실행한다.

그림 키바나 설치

설치가 정상적으로 완료되면 Elasticsearch와 연동에 필요한 토큰 키를 생성한다. Root 권한으로 토큰키 생성 명령을 실행하면 다음 예제와 같이 키값이 생성 된다.

# /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana eyJ2ZXIiOiI4LjEzLjQiLCJhZHIiOlsiMTkyLjE2OC4yMjEuMTIxOjkyMDAiXSwiZmdyIjoiYjQ2OTc1MTA0YWI2NDA3M2I5MzAzNzYxMzExMzg5ZmQ3MzQ0YjA1N2NhZjM1NTRjYWQzYmI4Y2EzZDAyZjYxMCIsImtleSI6ImY0cE1oWThCUlFPdV82dXRvQkFYOi1ya0FKSHJhVHRPNEt4b1ZhSktUUmcifQ==

생성한 키값은 GUI를 통해 연동하기 위해 복사해 둔다. 키바나 서비스를 자동으로 시작하기 위해 시스템 서비스에 등록한다. 이후 데몬 정보를 업데이트하고 키바나 서비스를 시작해서 정상 구동을 확인한다.

# sudo /bin/systemctl enable kibana.service # sudo /bin/systemctl daemon-reload # sudo systemctl start kibana.service [sudo systemctl stop kibana.service]

정상 구동이 이뤄지면 키바나 설정 파일을 수정한다. 키바나 서버에 원격으로 접근하기 위해서 설정을 변경하다.

# vi /etc/kibana/kibana.yml

설정 파일의 “server.host” 항목을 호스트 IP 또는 0.0.0.0 으로 설정하면 원격에서 접근이 가능하다. 키바나에 원격 접근을 허용하는 경우 권한 없는 사용자의 접근을 제안하기 위해 시스템에 대한 Iptable을 활용하거나 네트워크 기반의 접근 제어를 적용하는 작업이 선행되어야 한다. 기타 설정 항목들은 향후 필요한 경우 개별 수정 할 수 있다.

그림 키바나 원격접근 설정

Elasticsearch와 키바나의 설정이 변경되면 변경된 설정을 적용하기 위해 서비스를 재시작해야 한다.

키바나의 사용시 민감한 데이터를 보호하기 위한 암호화 키를 적용할 수 있다. Root 권한으로 키바나 암호화 키를 생성한다.

#/usr/share/kibana/bin/kibana-encryption-keys generate

명령을 실행하면 암호화에 사용할 키 값이 생성된다.

그림 키바나 암호화 키 생성

생성한 키 값은 kibana.yml 파일에 복사해서 붙여 넣는다. 설정 값은 kibana.yml 파일의 제일 마지막에 새로 입력해서 넣는다.

그림 키바나 암호화 키 적용

변경된 설정을 적용하기 위해 시스템을 재시작한다. 재시작 후 정상 동작이 확인되면 GUI를 통해 접속한다.

그림 키바나 서비스 확인

브라우저를 통해 키바나 서비스에 접속 한다.

http://192.168.221.122:5601/app/home#/
그림 키바나초기 접속화면

Elasticsearch와 연동하기 위해 앞서 복사해둔 Enrollment 키값을 화면에 붙여 넣는다.

그림 키바나 Enrollment 입력

키바나 서버에서 확인 코드를 생성해서 입력한다.

그림 키바나 확인 코드 입력

# root@es02-01:/home/greg/download# /usr/share/kibana/bin/kibana-verification-code

그림 키바나 확인코드 생성
그림 키바나 구성 완료

모든 과정이 완료되면 구성 설정이 완료된다. 설치가 완료되면 브라우저를 새로 고침하고 다시 접속한다. 키바나 서버에 로그인하기 위한 화면이 나오면 앞서 복사해둔 Elastic 계정 정보를 입력한다.

그림 키바나 로그인

처음 로그인 하면 Integration 설정을 선택할 수 있다. 해당 설정은 나중에 진행하고 키바나 서버의 메뉴를 확인하기 위해 “explore on my own”을 선택한다.

그림 integration 설정 옵션

로그인이 완료되면 그림 처럼 메뉴 화면을 선택할 수 있다.

그림 키바나 메뉴

패키지 파일을 이용한 Elasticsearch와 키바나 설치 과정을 살펴 보았다.