안녕하세요
보안솔루션 SIEM 중에 하나인 Wazuh를 구축하는 방법을 알아보도록 하겠습니다.
SIEM이란 Security Information and Event Management
보안 정보 및 이벤트 관리를 해주는 솔루션을 의미합니다.
사용을 잘할 수 있다면 굉장히 다재다능하고 편리한 보안 솔루션입니다.
Wazuh의 공식 사이트입니다.
사실 여기서 따라해보려고 해도 잘 되지 않는 경우가 많습니다.
그래서 간단한 설치를 위한 메뉴얼을 작성하였습니다.
Rocky Linux 9.4에다가 구축을 하였습니다
https://download.rockylinux.org/vault/rocky/9.4/isos/x86_64/
다운로드는 여기서 받을 수 있으니 참고해주세요
Rocky-9.4-x86_64-minimal.iso 버전을 다운로드 해주셔서
버추얼박스나 VMWare 같은 가상머신에 설치하여 주면 됩니다
설치하기 위한 하드웨어의 사양입니다
Agents | CPU | RAM | Storage (90 Days) |
1-25 | 4 vCPU | 8GiB | 50 GB |
25-50 | 8 vCPU | 8GiB | 100 GB |
50-100 | 8 vCPU | 8GiB | 200 GB |
https://documentation.wazuh.com/current/quickstart.html
여기서 참고한 자료입니다
가상머신을 생성할 때 최소한의 하드웨어 사양입니다. 이 이하의 사양이면 설치가 되지 않을 수 있습니다.
제가 설정한 하드웨어 사양입니다. 가상 CPU 3개, Memory 8192MB, 하드디스크 50GB로 설정하였습니다.
테스트 단계면 이정도로도 충분할 거구요
사용자의 하드웨어 사양이 충분하다면 리소스를 넉넉하게 할당하셔도 됩니다.
하드웨어 리소스를 충분히 설정하고 가상머신을 설치합니다.
간단하게 Putty 같은 ssh 프로그램으로 들어가시면 복사붙혀넣기가 편합니다.
가상머신 설치 파트는 생략하고 넘어가겠습니다.
가상 머신 설치 시 중요한 사항
1. 설치하려는 머신의 리소스 적용 여부
가상 CPU 3개, Memory 8192MB, 하드디스크 50GB
저는 이렇게 리소스를 할당했습니다.
2. 외부 인터넷과의 통신 유무
NAT를 사용하든 어댑터브릿지를 사용하든(추천) 어떤 방식으로든 외부 인터넷과 연결이 되어야 합니다.
즉 IP 주소가 부여되어 있어야 하며. 탐지 서버의 역할을 하기 때문에 고정 IP로 할당하시면 가장 좋습니다.
3. 이 방법은 단순히 Rocky Linux에서만 테스트한 방법이며, 우분투나 다른 리눅스는 설치되지 않을 수 있습니다.
리눅스가 설치되었다면 리눅스 Shell에 Root 사용자로 로그인을 합니다.
curl -sO https://packages.wazuh.com/4.9/wazuh-install.sh && sudo bash ./wazuh-install.sh -a
명령어를 입력합니다.
그러면 Wazuh가 자동으로 설치가 시작됩니다.
조금 시간이 소요되니까 기다려주시면 되겠습니다.
만약 여기서 리소스 관련 경고가 출력되며 설치가 되지 않을 수 있습니다.
리소스를 무시하고 설치하는 명령어
curl -sO https://packages.wazuh.com/4.9/wazuh-install.sh && sudo bash ./wazuh-install.sh -a -i
그 때는 -i 옵션을 같이 사용하면 리소스 문제는 무시하고 설치가 가능합니다.
물론 리소스를 초반에 충분히 할당하는 것이 가장 베스트입니다.
설치가 다 되었다는 메시지가 출력이 됩니다.
출력된 메시지를 보시면
https://<wazuh-dashboard-ip>:443
User: admin
Password: <password>
부분이 출력이 된 것을 알 수 있는데요
이 메시지가 대시보드에서 로그인을 하기 위한 관리자 계정의 사용자 이름과 패스워드입니다
물론 추후에 확인이 가능합니다.
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=1514/tcp
firewall-cmd --permanent --add-port=1515/tcp
firewall-cmd --permanent --add-port=1516/tcp
firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --permanent --add-port=9200/tcp
firewall-cmd --permanent --add-port=9300-9400/tcp
firewall-cmd --permanent --add-port=55000/tcp
firewall-cmd --permanent --add-port=1514/udp
firewall-cmd --permanent --add-port=1515/udp
firewall-cmd --permanent --add-port=514/udp
firewall-cmd --reload
열어줘야할 포트들이 많은데요
저는 보기 편하시라고 하나하나 입력을 했는데, 그냥 전부 복사하셔서 한번에 붙혀넣으셔도 됩니다.
이 포트들을 열어주시면 추후에 탐지 관련 되어서도 특별한 문제가 발생하지 않았습니다.
dnf install -y tar
그 다음 패스워드를 확인하려고 하는데 tar 패키지가 없을 수 있습니다.
설치를 해주시구요
sudo tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt
이 명령어를 실행하면 사용자 이름과 패스워드가 나옵니다.
어디 txt 파일로 잘 저장해놓도록 합니다. 잊어버리면 곤란할 수 있으니까요.
근데 아마도 admin 사용자 외에는 나머지는 로그인이 안되는 것으로 기억을 하는데 이번엔 테스트를 하지 않아서 정확히는 모르겠습니다.
그래서 그 부분에 대한 원인을 잘 알지 못합니다.
https://<Rocky Linux IP Address>
https://192.168.219.108
그 다음에 Rocky Linux에 설정된 IP 주소를 이용하여 접속을 합니다.
그러면 안전하지 않음 페이지로 접속을 하시면 됩니다.
어차피 내부망에서 사용하는 거라서 안전하지 않음 페이지로 이동해도 보안상의 문제는 없습니다.
인증서가 없어서 발생하는 메시지 입니다.
그러면 로그인 창이 뜨는데요
아까전에 확인한 admin 사용자로 로그인을 합니다.
그러면 로그인이 됩니다.
Wazuh의 대시보드가 출력이 됩니다.
보안 위험도에 따라서 레벨을 나누어 관리를 하고 있는데요
레벨이 올라갈수록 중대한 침해사고를 의미합니다.
현재 탐지가 된 것은 Wazuh가 가지고 있는 기본적인 Rule 때문에 탐지가 되는 것인데요
기본적인 Rule 만으로도 스캐닝 등의 공격부터 ssh 접속까지 탐지가 가능합니다.
우선 탐지될 대상인 에이전트와 연결이 되어야 탐지가 가능할 것입니다.
빨간색 박스로 체크된 부분을 순서대로 클릭하시면
Agent 생성이 나옵니다.
Deploy new agent를 클릭합니다.
Agent의 OS를 지정합니다
저는 Ubuntu 시스템을 탐지할 예정이라
DEB amd64로 설정하였습니다.
Wazuh가 가동되고 있는 Rocky Linux의 IP를 지정합니다.
Wazuh Server IP 를 지정하신다고 생각하시면 됩니다.
Agent와 Server가 통신을 하기 위해서 입니다.
Agent의 이름을 임의로 설정합니다.
저는 기존에 구축한 Snort IDS를 탐지해볼 예정입니다.
(애석하게도 지금 구축해놓은 Web Server가 없습니다.)
아래 Select one or more existing groups를 클릭하셔서 Default로 세팅해주시구요
그러면 Shell 명령어가 아래에 자동으로 생성이 됩니다.
복사를 합니다.
그 다음 Agent의 Shell 로 접속하여 생성된 명령어를 입력해줍니다.
간단한 작업이에요.
아래에 같이 있는 명령어들도 그대로 복사합니다.
그대로 붙혀넣습니다.
그러면 약간의 시간이 지나면 Agent가 연결이 됩니다.
Agent가 Active 상태로 돌아가고 있는 것을 확인할 수 있습니다.
연결이 잘 되어 있는 것을 알 수 있습니다.
Ubuntu에 firewalld를 설치해보도록 하겠습니다.
설치가 잘 되고 난 후 대시보드에서 생성된 메시지를 확인합니다.
data.package 부분에 서버에 패키지가 설치된 것을 확인할 수 있습니다.
서버에 무슨 일이 발생할 경우, 또는 어떤 악성코드나 패키지가 설치되더라도 탐지가 가능합니다.
하나 더 테스트를 해보았습니다.
Kali에서 ssh로 ubuntu agent에 접속을 하였습니다.
마찬가지로 탐지가 되는 것을 알 수 있습니다.
ssh 인증 성공, 로그인 세션 오픈 이라는 메시지가 뜨는 것이 보이네요
Web Server가 아니라 그렇지 Web Server인 경우는 dirbuster나 nmap 등도 탐지를 합니다.
그땐 어떤 프로그램을 이용하여 스캐닝을 했는지 어떤 디렉토리를 스캐닝을 했는지에 대한 탐지 정보가 출력이 됩니다.
이건 이 전에 테스트 해본 내용중 하나입니다
위험한 위협이 탐지되면 어떤 CVE 취약점이 들어왔는지에 대해서도 탐지를 합니다.
추후에 Rule 작성 기회가 되면 한번 포스트를 만들어보겠습니다.
이상으로 설치와 연동, 탐지를 마치겠습니다.
gobuster 사용법 및 옵션 (0) | 2025.01.19 |
---|---|
AI가 예측하는 2030년 미래 IT 기술 전망 10가지 (0) | 2025.01.19 |
Nmap 옵션 종류 (0) | 2025.01.04 |
Ubuntu 24.04에 Snort3(NIDS) 구축하기 (0) | 2025.01.03 |
Python 흑백 사진 AI로 컬러로 바꾸는 프로그램 모델 파일 추가 (0) | 2023.12.31 |