정보보안 - SNMP(Simple Network Management Protocol)
SNMP (Simple Network Manage Protocol)
- 개요
- 간이 망 관리 프로토콜
- TCP/IP 초창기에는 ICMP 프로토콜의 ping 을 이용해 장비간 연결 상태 파악
- Host 수의 증가로 네트워크 시스템이 복잡해짐 -> 관리의 어려움
- 1988년 IAB (인터넷 표준제안 위원회) 에서 표준 작업을 시작
- SGMP -> SNMP
- 네트워크 장비를 관리, 감시하기 위한 프로토콜
- UDP, 응용계층 표준 프로토콜
- 모니터링 / 컨트롤
- 네트워크 관리 시스템 (NMS - Network Management System) 에서 사용
- 정기적으로 관리정보 수집 (SNMP Protocol)
- 실시간으로 네트워크 상태 모니터링, 설정 (SNMP Protocol)
- TCP/IP 초창기에는 ICMP 프로토콜의 ping 을 이용해 장비간 연결 상태 파악
- 대부분의 OS 에 탑재
- 네트워크 관리 정보를 얻기 위해서 관리 프로그램이 필요
- SNMP 는 Protocol
- 관리 프로그램 필요
- 관리시스템, 관리대상 필요
- 간이 망 관리 프로토콜
- SNMP 구조
- 관리시스템 Manager 모듈 (162/UDP)
- Manager 모듈이 Agent 모듈을 조회
- Agent 는 Manager 에 응답
- 관리대상 Agent 모듈 (161/UDP)
- Agent 는 Manager 에 Trap 전송
- MRTG (Multiple Router Traffic Grapher)
- SNMP 기반의 장비 모니터링 프로그램
- 네트워크 상에 발생하는 트래픽 사용량 모니터링
- MIB 를 이용해 정보 수집 가능
- MIB (Management Information Base)
- 관리장치에 대한 정보가 모인 데이터베이스
- Agent 각각이 MIB를 가지고 있음
- 관리시스템 Manager 모듈 (162/UDP)
- SNMP 동작 (PDU)
- Manager -> Agent
Get Request
: MIB 정보 요청
- Manager <- Agent
Get Response
- Manager -> Agent
Get Next Request
: 이미 요청한 정보의 다음 정보 요청
- Manager <- Agent
Get Response
- Manager -> Agent
Set Request
: MIB 설정 요청
- Manager <- Agent
Get Response
- Manager <- Agent
Trap
: Agent 가 Manager 에게 비동기적으로 알림 (Notify)
- Manager -> Agent
- SNMP 통신을 위한 3가지 조건
- SNMP 버전이 일치해야 함
- v1
- SGMP (Simple Gateway Management Protocol) 를 발전시킴
- 보안기능(암호, 인증) 없음
- community string 만 일치하면 모든 정보 획득가능
- 평문 전송 (Snipping 노출)
- v2
- 보안기능 추가
- 대칭키 암호화 알고리즘 (DES)
- 해시 알고리즘 (MD5)
- 송신처 인증 기능이 없음
- SNMP v2c
- 복잡한 보안기능 제거, 보안상 취약
- 평문 전송 (Snipping 노출)
- 보안기능 추가
- v3
- Data 인증
- 암호화
- 재사용방지
- 접근통제
- v1
- Community String
- 송수신 하기 전 미리 인증을 하기 위해 사용하는 P/W
- PDU (Protocol Data Unit) 이 일치해야 함
- 통신하기 위한 메시지 유형
- Get Request <–> Get Response
- Read 형
- SNMPv1
- Get Request
- Get Next Request
- SNMPv2 / v3
- Get Request
- Get Bulk Request : 요청 객체의 범위를 지정
- SNMPv1
- Write 형
- SNMPv1
- Set Request
- SNMPv2 / v3
- Set Request
- SNMPv1
- Response 형
- SNMPv1
- Get Response
- SNMPv2 / v3
- Response
- SNMPv1
- Trap
- SNMPv1
- Trap
- SNMPv2 / v3
- TrapV2
- InformRequest : Manager 가 다른 Manager 에 정보를 요청할 때 사용
- Report : 다른 Manager 에 보고할 때 사용
- SNMPv1
- 통신하기 위한 메시지 유형
- SNMP 버전이 일치해야 함
- (SNMPv3 기준) Message 구조
-
버전 공통 Header 보안 매개변수 PDU 데이터 - 공통 Header 부
-
메시지 ID 메시지 최대크기 메시지 Flag 메시지 보안모델 - 메시지 보안모델
- USM (User Security Model)
- VACM (View-based Access Control Model) 모델
- 메시지 보안모델
-
- 보안 매개변수 부
-
재전송 공격 방지 메시지위변조 방지 암호 매개변수 - 재전송 공격방지
- SNMP 엔진 IP (Authoritative 엔진 ID)
- 부트횟수 (Authoritative 엔진부트 횟수)
- 엔진 시간정보 (Authoritative 엔진 time)
-
메시지위변조 방지 (HMAC) - MD5 SHA - 사용자 인증 매개변수
- 암호 매개변수 (DES-CBC)
- 재전송 공격방지
-
- 공통 Header 부
-
- SNMP 데이터 수집 방식
- Polling : Manager 가 Agent 에 요청하면 응답
- Event Report : Agent 가 Manager 에 Trap Message 전송 (Notify)
- SNMP 취약점
- DoS 공격 취약점
- 버퍼오버플로우 취약점
- 비인가접속 취약점
- SNMP 보안
- SNMP는 관리자 입장에서 매우 중요한 정보를 제공
- SNMP에 읽기, 쓰기 권한이 있는데 쓰기 권한은 사용 자제
- Set Request 제한
- SNMP v3 에서 보안 서비스를 제공
- community string
- SNMP 데몬 (manager) 와 클라이언트 (Agent) 간 데이터 송수신 전 인증 필요
- 인증을 위해 사용하는 패스워드
- 읽기모드 RO (Read Only) / 쓰기모드 RW (Read Write)
- MIB : 관리장치에 대한 정보가 모인 데이터베이스
- 관리되어야 할 정보, 자원 => 객체의 집합체
- 객체별 트리형식 구조
- SMI (Structure Management Information)
- 객체의 구조, 형식
- ASN.1 (Abstract Syntax Notation) 언어 사용
- Data 와 Data 속성을 설명하기 위한 공식 언어
- name (OID:Object Identifier)
- syntax (객체의 Data 유형)
- encoding (Message 전송 시 비트변환 규칙)
- BER : encoding rule 중 하나
댓글남기기