본문 바로가기

Information Security/Hacking

SNMP (Simple Network Management Protocol)

반응형

SNMP 동작 방식

* SNMP : TCP/IP 기반의 네트워크상 각 호스트(보통 서버나 네트워크 장비)로 부터, 정기적으로 각종 관리 정보를 자동 수집, 실시간 모니터링 등을 목적으로 사용하는 프로토콜

 

 

 

* SNMP 주요 용어

주요 용어 내용
MIB
(Management Information Base)
* 관리 되어야 할 정보, 자원을 객체(Object)라 하며, 이 객체들을 모아놓은 집합체
- 관리자가 조회하거나 설정할 수 있는 객체들의 데이터베이스


* MIB는 객체별로 트리 형식의 구조를 이룸
SMI
(Structure Management Information)
* MIB를 정의하기 위한 구조를 의미함


* ASN.1(Abstract Syntax Notation) 언어를 사용
- 데이터와 데이터 속성들을 설명하기 위한 공식 언어로, 다수 프로그램 언어에서 데이터를 데이터 유형과 값으로 표현


* 정의된 모든 객체는 name, syntax, encoding을 가짐
- name : 해당 객체를 식별하기 위한 식별자 (OID : Object Identifier)
- syntax : 객체의 데이터 유형(ex. INTEGER, OCTET STRING 등)
- encoding : 메세지 전송 시 비트 변환 규칙(ASN.1의 encoding rule 중 BER(Basic Encoding Rules) 사용)

 

 

 

* SNMP 동작 방식

구성 요소 설명
Manager
(관리 시스템)
* Agent에 필요한 정보를 요청하는 모듈
- UDP 162 Port를 사용
Agent
(대행자)
* 관리 대상 시스템에 설치되어, 필요 정보(시스템, 네트워크 등)를 수집하여 MIB 형태로 보관, Manager에게 전달 해주는 역할
- UDP 161 Port 사용

- Manager와 Agent간 통신을 위해 최소 다음 3가지 사항 일치 필요 : SNMP Version, Community String, Protocol Data Unit(PDU : 통신을 위한 메세지 유형)

PDU Type 내용
Get Request * Manager가 Agent로 원하는 객체의 특정 정보를 요청
Get Next Request * Manager가 Agent로 이미 요청한 정보의 다음 정보를 요청
Set Reuqest * Manager가 Agent로 특정한 값을 설정하기 위해 사용
Get Response * Agent가 Manager에 해당 변수 값을 전송
Trap * Agent가 Manager에 어떤 정보를 비동기적(Asynchronous)으로 알리기 위해 사용
- notify 라고 하며, Callback 함수와 같은 역할


* Trap을 제외하고 모두 동기적(Synchronous)으로 동작함
Get Bulk Request
(SNMPv2)
* 요청할 객체 범위를 지정하여 Manager에서 Agent로 한번에 요청
InformRequest
(SNMPv2)
* Manager간 정보 전달 목적으로 사용

- SNMP는 아래 데이터 수집 방식을 따름

SNMP 데이터 수집 방식 내용
Polling 방식 * Manager가 Agent에게 정보를 요청하면 응답해주는 방식
- Agent가 UDP/161 사용
Event Reporting 방식 * Agent가 이벤트 발생 시, Manager에게 Trap 메세지로 알리는 방식
- Manager가 UDP/162 사용

 

 

 

* SNMP 접근 제한 설정

1) 보안 설정 : SNMP에 읽기 및 쓰기 권한이 있을 경우, 설정 파일을 열람 혹은 직접 네트워크 설정을 변경할 수 있으므로 주의 필요


2) SNMP 버전별 특징

버전별 특징 내용
SNMPv1 * 1988년 IAB(Internet Activities Board)에서 표준화 작업을 거쳐, SGMP(Simple Gateway Monitoring Protocol)을 개량하여 SNMP를 만듦


* 보안기능(암호화 및 인증)이 없으며, community String만 일치 할 시, 모든 정보를 얻을 수 있음
SNMPv2 * 전송 정보에 대한 암호화(DES)와 해시(MD5) 기능을 추가
- 단, 여전히 송신처 인증기능 없음


* 가장 많이 사용되는 SNMPv2c는 Version2에서 복잡한 보안기능을 제거한 버전으로 보안상 취약
SNMPv3 * 데이터 인증, 암호 기능, 암호 재사용 방지, 세분화된 접근통제 등을 제공
- Version2에 계정과 암호로 인증하는 보안기능을 추가

3) Community String : SNMP 데몬(Manager)과 Client(Agent)간 데이터 교환 전 인증을 위해 사용하는 패스워드이며, 초기값이 public 또는 private가 설정되어, 추측이 가능한 경우 할당된 권한에 따라 보안사고 유발이 가능(Read Only(RO), Read Write(RW) 등)

 

 

 

* SNMPv3 보안서비스

SNMPv3 메세지 구조

1) 개요

SNMPv3 특징 설명
사용자 기반 보안모델
(USM : User Security Model)
* 무결성 침해, 기밀성 침해, 재사용 공격에 대응
뷰 기반 접근통제 모델
(VACM : View-based Access Control Model)
* 인가된 사용자의 MIB 접근 통제 기능 제공
Authoritative 엔진 * SNMP 명령 처리 및 통지(Notification) 발생시킴
- Agent 기능을 수행하는 엔진을 의미

2) 보안매개변수 (msgSecurityParameter)

필드 설명
Authoritative 엔진 ID
(msgAuthoritativeEngineID)
* 재전송 공격 방지


* SNMP 엔진ID / 부트 횟수 / 엔진 시각 정보를 이용하여, 메시지의 유효 시간을 계산, 재전송 여부를 판단
Authoritative 엔진 부트횟수
(msgAuthoritativeEngineBoots)
Authoritative 엔진 시각
(msgAuthoritativeEngineTime)
사용자
(msgUserName)
* 위장 공격, 메세지 위/변조 공격 방지


* 메세지 인증을 위해 HMAC(MD5, SHA)을 사용
인증 매개변수
(msgAuthenticationParameters)
암호 매개변수
(msgPrivacyParameters)
* 도청/스니핑, 정보노출(Disclosure) 공격 방지


* 메세지 암호화(DES-CBC)를 지원

 

 

 

* NMS (Network Management System) : 네트워크상 자원들을 모니터링/제어 하기 위한 도구로 관리자-대행자(Manager-Agent) 구조로 운용됨

Manager-Agent 구조 : 전체 시스템에서 관리하는 네트워크 요소들의 각 지점과, 특정 한 속성에 주소와 이름을 지정, 주기적으로 각 요소가 가진 정보를 중앙 센터에 제공

NMS 모니터링 방식 설명
Polling 방식 * 요청/응답 방식으로 Manager가 Agent에 요청 시, Agent가 MIB로부터 정보를 추출하여 응답


* 주기적인 폴링으로 대상 Agent 상태변화 정보 획득
Event Reporting 방식 * Agent가 자신의 상태를 주기적으로 Manager에게 알림


* 중요 상태 변화/결함 등을 Polling보다 빠르게 파악 가능

 

반응형

'Information Security > Hacking' 카테고리의 다른 글

Database 보안  (0) 2021.05.28
DHCP (Dynamic Host Configuration Protocol)  (0) 2021.05.28
FTP (File Transfer Protocol)  (0) 2021.05.16
HTTP (Hyper Text Transfer Protocol)  (0) 2021.05.12
DRDoS (Distributed Reflection DoS)  (0) 2021.03.20