| 취약점ID |
20018 |
| 위험도 |
30 |
| 포트 |
161 |
| 프로토콜 |
UDP |
| 분류 |
SNMP |
| 상세설명 |
해당 SNMP 에이전트는 원격지의 사용자들에게 snmpEnableAuthenTraps 오브젝트에 대한 불법적인 조작을 허용한다. snmpEnableAuthenTraps 오브젝트는 SNMP 서비스가 authenticationFailure 트랩(trap)의 생성을 허용할 것인지 말 것인지를 가르킨다. 이러한 SNMP 인증에 관한 트랩(authentication trap)들은 특별한 형태의 보안 트랩이다. SNMP 에이전트가 SNMP 요청을 받으면, 요청에 포함된 Community String(일종의 SNMP 패스워드)이 특정 OID (Object ID)를 Set 하거나 Get 할 권한을 가지고 있는지를 검증한다. 만약 Community String이 타당하지 않으면 에이전트는 snmpd.conf 파일의 트랩 정의부에 정의된 각각의 관리 호스트들로 트랩을 보낸다. 일반적으로 인증에 관한 트랩들은 작동중지로 되어있다. 많은 SNMP 에이전트들은 에이전트가 인증 테스트를 통과하지 못하는 SNMP 메시지를 받으면 SNMP 트랩, 혹은 알림기능(notification)을 관리 호스트로 보내게끔 구성되어 있다. 만약 snmpEnableAuthenTraps 오브젝트가 수정되어 진다면, 이 알림기능은 작동 중지되어 에이전트가 알림을 보내지 못하게 될 수도 있다. |
| 해결책 |
다음과 같이 SNMP 서비스를 중지시키거나 관련 조치를 해야 한다.
① 사용하지 않는다면 SNMP 서비스를 중지시킨다. - UNIX : ps 명령을 이용하여 snmp 데몬 프로세스의 pid를 확인후 kill 시킨다. 또한 부팅시 SNMP 서비스가 자동으로 시작되지 않게끔 rc script를 찾아 관련 조치를 한다.(OS 매뉴얼 참조) - Solaris 10, Solaris 11: # svcadm disable svc:/application/management/snmpdx - Enterprise Linux 6.4, CentOS 6.4, Fedora 19: # /etc/init.d/snmpd stop # rpm -e (snmp name) - Windows : services.msc 실행 -> '서비스'에서 '시작 유형'을 '사용 안함'으로 만든후, SNMP 서비스를 중지시킨다. ② Community Name을 디폴트인 'public'이나 'private'에서 추측하기 어려운 단어로 변경한다. - Unix : /etc/snmpd.conf에서 set-community-name 설정 - Router : show config 해서 snmp-community 확인 및 수정 - Windows : services.msc 실행 -> '서비스'에 있는 '보안' 탭에서 커뮤니티 이름 및 '권한'을 편집한다. ③ 네트웍의 진입지접, 즉 Gateway에서 161/UDP 포트를 필터링한다. |
| 관련 URL |
(CVE) |
| 관련 URL |
(SecurityFocus) |
| 관련 URL |
1799 (ISS) |
|