[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합보안 과정
클라우드기반 시스템 운영 구축 실무 #05
Zeek
• 네트워크 침입탐지시스템(NIDS)
- Bro에서 zeek으로 바뀌면서 프로토콜 분석에 이용하게 되었다
- 네트워크를 모니터링 할 수 있는 오픈 소스 프로그램
• IP헤더와 TCP 헤더를 분석하여 로그를 생성한다
• 응용 프로토콜의 헤더를 분석하여 로그를 생성한다
- FTP, HTTP, SMTP, X.509 ..
HIDS: 한 Host 내에서 이상 징후 탐지
Zeek 설치 방법
망의 트래픽을 zeek에 모두 넘기려면, 확장이 필요하다
- Switch의 SPAN 또는 Port Mirroring
- TAP 이용
그러나, 가상 머신은 HUB를 이용하므로 확장이 필요하지 않다.
1. [ZeekIDS - Ubuntu] Zeek 설치
Step 1. 설치 전 환경 설정
sudo su -
apt update
apt-get install curl gnupg2 wget -y
curl: 원격 서버에서 또는 원격 서버로 데이터를 전송하는 도구. HTTP, HTTPS, SCP, SFTP, FTP 등 지원되는 프로토콜을 사용하여 데이터를 다운로드/업로드 할 수 있다.
gnupg2: 데이터 암호화, 디지털 서명을 위한 도구. 공개 키 암호화와 관련된 모든 것을 처리하며, 사용자는 신뢰할 수 있는 소프트웨어를 통해 안전하게 통신할 수 있다.
wget: 웹 서버에서 파일이나 웹 페이지를 다운로드하는 데 사용되는 도구. HTTP, HTTPS, FTP 프로토콜을 지원. 웹 사이트를 미러링하는 데 사용될 수 있다.
# 지정된 사이트로부터 키 저장
curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_20.04/Release.key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/security_zeek.gpg
# zeek에 저장소 등록
echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_20.04/ /' | tee /etc/apt/sources.list.d/security:zeek.list
Step 2. Zeek 설치
# 변경된 저장소로부터 업데이트 받기
apt update -y
# zeek 설치
apt-get install zeek -y
보라색 화면이 뜨면 스페이스바 등의 키를 눌러 진입한다
로컬 전용 선택, <Enter>
이메일 입력(zeekids@test.com), <Enter>
Step 3. PATH 설정
echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc
source ~/.bashrc
zeek --version
Step 4. Zeek Configuration 설정
cd /opt/zeek/etc
# networks.cfg, node.cfg 파일을 확인하고 수정
ls -l
# 관제할 범위 설정
nano networks.cfg
192.168.0.0/16 Private IP space
# 모니터링할 LAN Card 설정
nano node.cfg
[zeek]
type=standalone
host=localhost
interface=ens33
Step 5. Zeek 활성화
zeekctl check
zeekctl deploy
# 상태 보기
zeekctl status
ls -l /opt/zeek/spool/zeek
< 로그 생성하기 >
[WebServere - CentOS]
"HTTPS 구성 실습"에서 만든 페이지 접속 가능하게 하는 설정
service httpd start
service iptables start
[kali]에서도 로그 생성하려면
Firefox > 설정 > 네트워크 설정 > No porxy 설정 후 진행
192.168.10.30 접속하거나
192.168.10.60 (metasploit) 기본 페이지 접속하는 등 이것 저것 클릭 수행
< 로그 확인 >
# 실시간 로그가 저장되는 디렉터리
cd /opt/zeek/spool/zeek
nano http.log
http 헤더의 내용으로 log 필드 내용이 채워진다
# 일정 시간이 지나면 /logs/날짜 폴더 아래에 압축된 파일로 저장되고, 실시간 로그는 초기화된다
/opt/zeek/spool/zeek/logs/2024-01-09
Zeek에서 수행하는 것
- 패킷 수집
- 헤더 분석
- 프로토콜 분류
- 프로토콜 로그 생성
➞ 이렇게 수집한 로그를 분석기가 있는 중앙 관제 서버로 전송해 분석할 수 있도록 한다
FTP(File Transfer Protocol) 서버를 이용하거나, 오늘 실습할 openssh를 이용하는 방법이 있다
# 전송 설정
2. [SplunkServer & ZeekIDS - Ubuntu] SCP 설치
[SplunkServer - Ubuntu]
sudo su -
❶ SSH 서비스 활성화
- scp를 이용하기 위해서는 ssh 서비스가 활성화되어야 한다
[SplunkServer & ZeekIDS]
apt-get install –y openssh-server
[SplunkServer]
# 방화벽 openssh 22번 포트 허용
ufw allow 22/tcp
# 방화벽 상태 확인
ufw status
# inactive인 경우
ufw enable
/tmp 디렉터리를 보면, 't' sticky bit가 설정된 걸 볼 수 있다
따라서, 누구나 사용할 수 있는 공용 디렉터리이고, (파일/디렉터리 생성)
dir소유자, 파일 소유자, 슈퍼유저만 파일을 삭제하거나 수정할 수 있다
이 디렉터리로 zeek로그 파일을 전송받을 것이다.
[ZeekIDS]
❷ SCP를 이용해 Zeek 로그 파일을 SplunkServer로 전송
압축 파일을 전송하는 것이 맞지만, 원활한 확인을 위해 실시간 로그 파일 하나를 보내본다
# scp [전송파일명] [서버계정명]@[전송받을 서버]:[전송받을 서버 디렉터리]
cd /opt/zeek/spool/zeek
scp http.log splunk@192.168.10.10:/tmp
yes
1234
[SplunkServer]
❸ 전송받은 파일 확인
cd /tmp
ls -l
'SK shieldus Rookies > 클라우드 기반 시스템 운영ㆍ구축 실무' 카테고리의 다른 글
[SK shieldus Rookies 16기] Splunk 실습 - DNS Log 분석 (0) | 2024.01.11 |
---|---|
SIEM - Splunk 실습(Splunk Enterprise) & 검색 명령어 (미완) (0) | 2024.01.10 |
Web 구조, HTTP 메시지 구조 (미완) (0) | 2024.01.09 |
[SK shieldus Rookies 16기] HTTPS 구성 실습 (0) | 2024.01.08 |
[SK shieldus Rookies 16기] 대칭키/비대칭키 암호화, 공개 키 기반 구조(PKI) (0) | 2024.01.05 |