* 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 보안서비스
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 |