보안정보
전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.
사용자 정의 R 통계를 이용한 서버 모니터링 대시보드
2020.03.04
5,906
1. 개요
· 기업이나 기관에 서버를 모니터링할 수 있는 EMS(Enterprise Management System), NMS, SMS 와 같은 솔루션이 없을 경우, SIEM 기능을 통해 서버들의 상태를 모니터링 할 수 있다.
· 모니터링 하고자 하는 대상서버들이 SIEM에 연동이 되어있어야 하며, 대시보드를 통하여 서버 상태를 직관적으로 모니터링 할 수 있다.
02. 서버 이벤트 수집
1) 리소스 데이터 수집
· 리소스와 Process 등 실시간 운영 시 발생하는 휘발성 데이터들은 파일로 생성되지 않고 사라진다.
· 이러한 데이터들은 Agent를 통해 수집이 가능하다. 이와 같이 수집한 휘발성 데이터들은 DDoS 공격 분석 시에도 활용되며, 통계 데이터 생성 후 서버들의 모니터링 시에도 활용 가능하다.
· 대시보드로 데이터를 표현하기 전에 기업 내부에 존재하는 서버의 리소스 이벤트를 사전 수집한다.
· 리소스 수집 방법은 Agent를 직접 설치하여 받아보는 방식과 Agent 설치가 불가능 한 장비의 경우 SNMP Polling 방식으로 수집할 수 있다.
· 리소스 이벤트는 서버의 가용성 정보(CPU,Memory), 파티션 관련 정보, 프로세스 정보 등을 수집 할 수 있다.
2) 시스템 이벤트 수집
[표 1] 로그 수집 대상 및 종류
· Agent를 통해 수집하는 시스템 로그는 [표 1]과 같다.
· Binary 형태인 로그는 서버에서 명령어를 통해서만 확인이 가능하나, Agent로 수집한 Binary 로그는 사용자가 식별할 수 있는 로그로 수집된다.
3) 프로세스 종료 데이터 수집
[그림 1] 프로세스 pid 종료 설정
· 대상 서버의 프로세스 PI가 변경되면 데이터를 수집하도록 설정한다.
· 감시대상목록 프로세스 명의 pid값이 1cycle 전의 pid 값과 변화가 있을 경우 이벤트를 수집한다.
03. 대시보드 구성 데이터
1) 사용자 정의 R 통계 생성
SIEM에서 수집하는 리소스 데이터 중 사용자가 대시보드로 표현하고자 하는 데이터를 지정하여 RDB에 저장할 수 있다.
[그림 3] 사용자 정의 통계 메뉴 1
리소스를 수집하는 필드 중 v2필드(CPU사용률)를 통계 관리 메뉴에 추가하는 과정이며 그 외 통계 데이터로 생성하고자 하는 데이터의 조건을 입력하여, 원하는 데이터 저장이 가능하다.
[그림 4] 사용자 정의 통계 메뉴 2
· R001: 대상 장비의 cpu memory 정보
· R002: 대상 장비의 disk 정보
· R003: 대상 장비의 모든 프로세스 정보 및 프로세스별 CPU 사용률
· R012: 대상 장비의 특정 Process 종료 정보
[그림 5] RDB 수집 결과
2) 서버 Ping Fail
· 번들 룰 메뉴에서는 [그림 4-7]처럼 Ping Fail 여부를 확인하는 체크 주기를 설정 할 수 있다.
· 경보를 발생시키는 분석엔진에서 대상 장비에게 ICMP 패킷을 요청하여, Fail 여부를 체크한다.
· Ping 실패 한 대상장비를 경보로 띄우고 대시보드로 표현하기 위한 사전 작업이다.
3) 비인가 사용자 로그인 실패
· Agent를 통해 수집한 시스템로그를 활용하여 다양한 서버관리 경보를 만들 수 있다.
· Linux에서 특정 user로 로그인을 시도하고 패스워드 불일치로 인한 접속 실패 시 btmp에 로그가 기록되며 해당 로그를 Agent를 통해 SIEM에서 수집한다
· 동일한 계정으로, 5분간 3회 이상 실패할 경우 접속을 시도한 출발지IP와 로그인 시도 계정명을 표현하는 경보를 생성하였으며, 이 경보 또한 대시보드로 표현하기위한 데이터이다.
· 앞서 생성한 Ping Fail 경보와 비인가 사용자 로그인 실패 룰 셋의 경우 조건에 해당하는 행위 발생 시 경보데이터로 저장 되며 TM의 경보 분석, 경보 관리 메뉴에서 이력을 조회 할 수 있다.
[그림 11] 경보 근거 데이터 확인
· 좌측 + 버튼 클릭 시 경보가 발생한 근거데이터 확인이 가능하여, 접근한 출발지IP와 로그인 시도한 계정명을 확인 할 수 있다.
· 해당데이터는 RDB에 저장되어 대시보드 쿼리로 표현이 가능하다.
04. 대시보드 생성
1) 대시보드 데이터 셋
[그림 12] 대시보드 데이터 셋
· Dataset 메뉴는 대시보드로 표현하기 위한 데이터 쿼리를 작성하여 저장하는 공간이다.
· 해당 영역은 담당엔지니어가 SMS대시보드를 구성하기 위해 사용할 쿼리를 생성하고 저장하는 영역이다.
· 생성 된 데이터 셋 이름을 선택하면 작성한 쿼리가 조회되며 수정이 가능하고, 복사해서 사용할 수 있다.
2) 대시보드 위젯
[그림 4-13] 대시보드 위젯
· Dataset 메뉴에서 쿼리를 작성하였다면, 해당 쿼리로 표현할 컴포넌트를 지정하는 메뉴이다.
· 데이터 셋 : 해당 데이터 셋을 지정하고, 저장 할 카테고리 영역을 지정한다.
· 카테고리 영역 : 저장된 위젯들을 볼 수 있으며 수정이가능하다.
3) 대시보드
[그림 14] 대시보드 구성화면
· 생성한 위젯을 대시보드로 표현하는 메뉴이다.
· 영역 추가 후 우측에 생성해 놓은 위젯을 마우스로 드래그 앤 드롭하면 대시보드로 표현된다.
4) 모니터링 대시보드
[그림 4-15] SMS종합 구성 화면
· 모니터링 대상은 총 8대의 서버로 구성하였다. 모니터링 방법은 아래와 같다.
1. 리소스 그래프를 통하여 각각 서버의 CPU & MEM 사용량을 확인하여 현재 서버의 부하량을 확인 할 수 있다.
2. 8대 서버의 파티션 별 디스크 사용량을 확인하여 가용성을 확보할 수 있다.
3. PING 체크 경보 발생 내역을 확인하여 종합적인 서버의 Health Check를 통하여 서버의 가용성을 확보 할 수 있다.
4. 서비스의 비정상적인 행위 및 종료의 대해서 확인하여 서비스 중단 여부를 확인 할 수 있다.
5. 프로세스 별 CPU 사용률이 높은 순서대로 확인 가능하며, 프로세스 별 CPU 부하량을 확인 할 수 있다.
6. 해당 데이터를 통하여 외부 보안 위협 혹은 인가 되지 않은 사용자의 접근을 확인하여 빠르게 대처 할 수 있다.
05. 결론
SPiDER TM V5.0에서는 보안장비 로그를 수집하여 보안위협을 대비하는 것 뿐만 아니라 대시보드 메뉴를 활용하여 사용자가 집중적으로 확인하고 싶은 데이터를 모니터링 하는 화면을 구성할 수 있다. 사용자가 관리하는 서버에 에이전트를 탑재하여 CPU, Memory, 프로세스, 시스템 로그 등의 가용성 데이터를 수집하여 서버 이상 행위를 빠르게 파악이 가능하다.
본 장에서 btmp로그를 이용한 로그인 실패 이력에 대한 데이터 표현을 다루었으며 bash_history 로그를 이용한다면 시스템 취약 명령어 수행 이력도 확인 할 수 있다.
따라서 고객사에서 중점적으로 모니터링 해야 하는 항목을 선정하여 운영 환경에 적합한 시스템 용도의 모니터링 대시보드를 구현 할 수 있다.