2020-07-06 20:20 (월)
[홍석범-보안 TIP] 강력한 호스트 보안을 위한 무료 솔루션…’Wazuh’ 활용법
상태바
[홍석범-보안 TIP] 강력한 호스트 보안을 위한 무료 솔루션…’Wazuh’ 활용법
  • 길민권 기자
  • 승인 2020.06.03 15:38
이 기사를 공유합니다

"유용한 툴 잘 활용해 지속적으로 취약한 시스템 보안 수준 개선 필요"
Wazuh의 전반적인 작동 아키텍처
Wazuh의 전반적인 작동 아키텍처

대부분 네트워크 보안을 위해 IDS/IPS 또는 방화벽(Firewall) 설치는 당연히 생각하지만 정작 중요한 각 개별 호스트에 대한 보안은 관리의 어려움이나 비용 문제로 인해 잘 관리되지 않는 것이 사실이다. 그러나 최근에 개별 호스트 보안을 위한 무료 솔루션인 ‘Wazuh’가 여러 주목을 받고 있어, 이번 기고에서는 이의 기능과 활용 방안에 대해 소개하고자 한다.

◇Wazuh 소개

Wazuh(https://wazuh.com/)는 대표적인 호스트 기반 오픈소스 IDS/IPS인 ossec을 기반으로 한 솔루션이지만, 이외에도 추가적인 다양한 기능을 통합하여 제공하고 있는데, 주로 다음과 같은 특징을 가지고 있다.

-개인이나 기업에 관계없이 모든 기능 사용에 제한이 없는 무료 솔루션이다.

-로그 모니터링, 침입탐지, 파일무결성체크, 안티멀웨어/루트킷 탐지, OS 취약성 점검, 패치 관리 등 PCI와 같은 대부분의 컴플라이언스가 요구하는 다양한 요구조건을 만족한다.

-에이전트 설치와 동시에 매니저에 자동 등록되어 OS/IP/설치된 패키지등의 각종 상태가 자동적으로 업데이트 되므로 자산관리(asset management)시스템으로도 활용할 수 있다.

-기존 ossec이 아쉽게도 룰(rule)이나 새로운 기능 등 업데이트가 거의 없었는데 반해 wazuh는 활발하게 업데이트되고 있다.

-Centos,Redhat,Debian,Ubuntu등 리눅스 뿐만 아니라 각종 Unix,Windows,MacOS등 거의 대부분의 OS를 지원한다.

-각종 통계나 관리 등은 GUI 메뉴 뿐만 아니라 Restful API를 통해서도 가능하다.

먼저 wazuh는 ①모니터링하고자 하는 각 시스템에 설치하는 에이전트와 ②이 에이전트로부터 전송 받은 로그 및 정보를 룰에 따라 분석하고, 조건에 따라 얼랏(경고) 하거나 차단하는 매니저 ③그리고 백엔드에서 상세 정보를 디스플레이해 주는 엘라스틱(Elastic) 프로세스로 나뉜다.

◇Wazuh 서버 설치

이를 이용하기 위해서는 먼저 서버 설치부터 시작해야 하는데, 매니저와 엘라스틱을 구성하기 위한 각각의 구성요소(Wazuh-manager, API, Filebeat,ElasticSearch, Kibana등)를 가이드에서 언급한 순서대로 설치하도록 한다. 각각의 OS에 따라 설치방법이 상세하게 안내되어 있으므로 순서대로 따라가면서 copy & paste로 설치하면 어렵지 않게 진행할 수 있다.

또는 이 과정이 복잡하다면, 사전에 pre-built된 virtual machine image(OVA)형식의 파일도 제공하고 있으므로, VirtualBox의 ova 파일을 다운로드해 쉽게 사용할 수도 있다. 또는 Wazuh에서 제공하는 유료 Cloud서비스를 이용하는 방법도 있는데, 서버 설치 및 운영에 대한 걱정없이 에이전트 설치만으로 즉시 활용이 가능하다는 장점도 있다. 이에 대해서는 뒤에서 다시 설명하도록 하겠다.

◇Wazuh 에이전트 설치 및 등록

에이전트 설치는 매우 간단한데, 이를테면 centos의 경우 yum 저장소를 등록 후 아래와 같이 간단한 명령어로 설치할 수 있다. (10.0.0.2는 매니저 IP 예)

# WAZUH_MANAGER="10.0.0.2" yum install wazuh-agent

서버에서 에이전트를 인증해 등록하는 방식은 CLI, API를 이용하는 방식 또는 패스워드 방식과 인증서 키를 이용한 방식 등 여러가지가 있는데, 각자의 환경에 따라 편한 방법으로 사용하면 된다.

이를테면 아래는 패스워드를 이용한 등록 예를 보여주고 있는데, 매우 간단하다는 것을 알 수 있다.

-manager에서 설정

(1)/var/ossec/etc/ossec.conf 파일에 password 인증을 한다고 선언한다.

<auth>

<use_password>yes</use_password>

</auth>

(2)설정하고자 하는 암호를 특정 파일(authd.pass)에 설정한다.

# echo "<custom_password>" > /var/ossec/etc/authd.pass

(3)변경 후 적용을 위해 데몬을 재가동한다.

# systemctl restart wazuh-manager

-에이전트에서 설정

(1)매니저에서 미리 설정한 동일한 암호를 각 에이전트의 파일에 동일하게 설정하고 등록한다.

# echo "<custom_password>" > /var/ossec/etc/authd.pass

# /var/ossec/bin/agent-auth -m 10.0.0.2

(2)적용을 위해 데몬을 재가동한다.

# systemctl restart wazuh-agent

◇Wazuh 대시보드

모든 설치가 끝나면, 이제 매니저 주소(https://10.0.0.2:443/wazuh/) 로 접속을 해 보자.

각종 기능을 제공하는 wazuh 대시보드
각종 기능을 제공하는 wazuh 대시보드

대시보드를 보면, 먼저 전체적인 에이전트의 등록 현황을 보여주고, 에이전트 메뉴를 클릭하면 등록된 전체 에이전트 목록 및 OS버전이나 네트워크 구성, 설치된 패키지 등의 세부적인 정보를 확인할 수 있다. 위 그림에서 보듯이 대시보드에서는 크게 4가지 하위 메뉴로 나뉘어지는데, 각각에 대해 간략히 살펴보도록 하자.

-“Security Information Management” 부분은 가장 핵심적인 기능으로서 ossec등에서 발생하는 각종 보안 이벤트 및 파일의 추가, 변경, 삭제를 모니터링할 수 있는 FIM(File Integrity Monitoring) 기능을 제공한다.

전체적인 보안 이벤트 탐지 현황을 보여주는 대시보드
전체적인 보안 이벤트 탐지 현황을 보여주는 대시보드

 

상세한 보안 이벤트 목록, 다량의 SSH 스캔이 발생하고 있음을 알 수 있다.
상세한 보안 이벤트 목록, 다량의 SSH 스캔이 발생하고 있음을 알 수 있다.
파일 무결성 이벤트 목록
파일 무결성 이벤트 목록

각각의 화면에서 에이전트별, severity 별로 나누어 보안 이벤트를 볼 수도 있는데, 보다 상세한 내용을 보고자 하는 항목을 선택 후 “Discover”를 클릭하면 기간별로 다음과 같은 상세한 로그 정보도 확인할 수 있다.

상세한 로그 정보 모니터링
상세한 로그 정보 모니터링

-“Auditing and Policy Monitoring” 부분은 rootcheck를 통한 rootkit 파일 탐지 뿐만 아니라, OpenScap이나 CIS-Benchmark를 이용한 configuration assessment 기능을 제공하는데, 이를 통해 시스템내 설정 파일을 체크하여, 보안 설정이 부족한 부분이 없는지 여부를 체크할 수 있게 된다.

rootcheck를 이용한 루트킷 탐지 현황
rootcheck를 이용한 루트킷 탐지 현황

화면을 보면 어떤 체크리스트 항목을 pass 하였고, 또 fail 하였는지 여부를 확인할 수 있는데, 이를테면 /etc/ssh/sshd_config 파일의 설정 중 default port인 22/tcp를 사용하고 있고, “Protocol 2”만을 사용하도록 설정되어 있지 않아 compliance check에서 fail한 것을 알 수 있다. 물론 가이드에 따라 설정을 변경하면 잠시 후 fail이 pass 로 바뀌게 된다.

Config 파일의 pass, fail 여부를 제공하는 예
Config 파일의 pass, fail 여부를 제공하는 예

Detection and Response” 부분은 agent에 설치된 패키지 버전과, redhat 등 벤더에서 제공하는 취약성DB를 조회하여 아직 패치되지 않은 패키지가 있는지 여부를 알려주는 Vulnerability 기능을 제공하는데, severity 및 cve정보와 함께 상세한 정보를 제공하여 전반적인 취약성 현황을 모니터링할 수 있고, agent 별로 또는 특정 cve별로 취약성 여부도 손쉽게 확인할 수 있다. 만약, 취약한 버전을 업데이트하여 최신 버전으로 패치를 하면 잠시 후 해당 이벤트는 사라지게 되므로, 항상 최신의 취약성 상태를 알 수 있게 된다는 장점이 있다.

취약성 현황을 보여주는 Vulnerability 화면
취약성 현황을 보여주는 Vulnerability 화면

◇Wazuh Cloud활용 방안

만약 서버(매니저 및 elastic) 설치 및 운영이 부담스럽다면 wazuh에서 제공하는 유료 클라우드 서비스를 고려해 볼 수 있는데, 특히 2주간의 무료 trial을 제공하므로 빠르게 기능을 확인하고자 한다면 부담없이 시도해 볼 수 있다. trial 등록을 하면 다음과 같은 에이전트 등록 정보 및 가이드가 제공되어 각 에이전트 OS 별로 copy & paste 해 에이전트만 설치하면, 즉시 사용이 가능하다는 장점이 있다.

wazuh cloud 등록정보
wazuh cloud 등록정보
wazuh-agent 등록 가이드
wazuh-agent 등록 가이드

trial 이후에 계약을 하게 되면, 이벤트를 저장하기 위한 스토리지 사용 용량에 따라 billing이 되므로 alert를 최적화하고, 사전에 비용 계산을 하여야 할 것이다.

지금까지 Wazuh의 전반적인 기능에 대해 간략히 살펴보았는데, 이외에도 재미있는 기능이 매우 많다. 이를테면, 특정 레벨 이상의 이벤트 발생시에 이메일로 알람하는 기능이라던가, 공격 IP를 자동 차단하는 기능 외에도 docker나 aws, MS Azure등의 클라우드 환경 지원 등 더욱 많은 기능들이 있고, 새로운 룰 업데이트나 기능 추가 등이 커뮤니티를 통해 매우 활발하게 업데이트 되고 있으므로 폭넓게 활용 할 수 있는 기회가 많을 것으로 생각한다. Wazuh에 대한 좀 더 자세한 정보는 아래 사이트를 참고하기 바란다.

-https://github.com/wazuh/ :소스코드 및 룰 업데이트

-https://wazuh.com/community/ : Q&A 및 online 기술지원

◇유용한 툴 잘 활용해 지속적으로 취약한 시스템 보안 수준 개선 필요

“Security is not one-time event but continuous efforts”라는 말이 뜻하듯이 “강력한 보안” 은 보안 솔루션만 설치했다고 끝나는 것이 아니므로, 지금 소개한 wazuh를 포함한 여러 유용한 툴을 잘 활용해 지속적으로 이벤트를 모니터링하고, 취약한 시스템의 보안 수준을 하나씩 개선해 나간다면, 전체 조직의 보안 수준을 한 단계 높여 나갈 수 있을 것으로 기대한다.

[글. 홍석범 / antihong@gmail.com / 보안전문가. 정보보안 칼럼리스트]

★정보보안 대표 미디어 데일리시큐!★


관련기사