작성자 : 홍석범
시스템 및 네트워크의 모니터링을 위한 용도로 많이 사용하는
snmpd 에 대한 취약성이 발견되었습니다.
이 취약성을 이용할 경우 외부에서 장비및 시스템에 대한 DoS 공격뿐만 아니라
원격에서 관리자 권한을 획득할 수 있게 되는 매우 심각한 취약성입니다.
CERT에 의하면 100개 이상의 벤더에서 제공하는 snmp 가 취약하다고 하니
대부분의 시스템 및 장비가 취약하다고 생각하셔도 무방하겠군요..
일부에서는 벌써부터 161번 포트에 대한 스캔이 확인되고 있다고
알려주고 있으며, 조만간 CodeRed와 같이 Worm의 형태로
공격이 진행될 가능성도 조용히 점쳐지고 있습니다.
이를 위해 다음과 같이 조치할 것을 권장하고 있습니다.
# snmpd 패치
많은 벤더에서 이와 관련된 권고문과 패치를 발표하고 있습니다.
* Cisco
http://www.cisco.com/warp/public/707/cisco-malformed-snmp-msgs-pub.shtml
* Microsoft
http://www.microsoft.com/technet/security/bulletin/MS02-006.asp
* CVE
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2002-0012
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2002-0013
# snmpd 서비스 중지
당연한 이야기지만 snmp를 사용하지 않는다면 아예 서비스를 중지하시는 것이
좋습니다. netstat -na 로 udp 161로 listen 하고 있는지 여부를 확인하면
됩니다.
snmpd 를 설치하지 않았다 하더라도 compaq등 third party 프로그램에 의해
자동으로 설치되는 경우도 있으니 반드시 확인해 보시기 바랍니다.
특정 네트워크를 스캔하시려면 아래와 같이 하시면 됩니다.
(udp 스캔이므로 결과가 정확하지 않을 수 있다는 것을 참고하시기 바랍니다.)
nmap -v -sU -p161,162,1993 192.168.1.0/24
# snmp 서비스 필터링
* iptables 이용
$IPTABLES -A INPUT -p UDP -s xxx.xxx.xxx.xxx --sport 1024: --dport 161 -m
state --state NEW,ESTABLISHED -j ACCEPT
xxx.xxx.xxx.xxx 는 NMS나 SMS 서버, 이외 모두 DROP
* Cisco Access-list
access-list 110 deny tcp any any eq 161
access-list 110 deny udp any any eq 161
access-list 110 deny tcp any any eq 162
access-list 110 deny udp any any eq 162
access-list 110 deny tcp any any eq 1993
access-list 110 deny udp any any eq 1993
access-list 110 permit ip any any
snmpd 는 대부분 udp 161번을 사용하지만 일부는
tcp 161및 IOS 버전에 따라 다른 포트를 사용하는 것으로
알려져 있으므로 관련된 모든 포트를 필터링하는 것이 좋습니다.
아울러 가능하다면 egress 필터링도 함께 한다면 좋습니다.
# community string 변경
실제로 3/4 정도가 snmp의 default community string 인 public 을 사용하고
있으므로 이 string 을 수정하시는 것이 중요합니다.
또한 라우터의 snmpd 에 대한 필터링도 중요합니다.
예) snmp-server community xxxxxxx RO 7
access-list 7 permit 192.68.1.2
xxxxxxxx 는 자신만의 community name, 7은 access-list
192.168.1.2는 nms 나 sms.
특정 공격의 경우 community string 을 몰라도 공격할 수 있으므로
필터링과 함께 하셔야 하며 더군다나 snmp community name은
plain text 로 전송되므로 아래와 같이 sniffing 이 가능합니다.
# tcpdump -vv port 161
tcpdump: listening on all devices
11:40:51.570203 eth0 > nms.server.51524 > 192.168.1.14.snmp:
|30|60|02|01SNMPv1|04|09C=xxxxxxx |a0|50GetRequest(80)
|02|04|02|01|02|01|30|42 |30|11|06|0dE:cisco.9.13.1.3.1.3.1|05|00
|30|11|06|0dE:cisco.9.13.1.3.1.3.3|05|00|30|0c|06|
08system.sysUpTime.0|05|00 |30|0c|06|08system.sysName.0|05|
00 (DF) (ttl 64,id 0)
이 취약성과 관련하여 아래의 사이트를 참고하시기 바랍니다.
# snmp 에 대한 FAQ
http://www.cert.org/tech_tips/snmp_faq.html
# CERT 권고문
http://www.cert.org/advisories/CA-2002-03.html
# ISS 권고문
http://www.iss.net/security_center/alerts/advise110.php
# snmp test-suite
http://www.ee.oulu.fi/research/ouspg/protos/testing/c06/snmpv1/
#아래링크는 certcc에 올라온 글의 링크입니다.
http://www.certcc.or.kr/advisory/ka2002/ka2002-018.txt
관련 링크: http://www.certcc.or.kr
'Security' 카테고리의 다른 글
Chrooting All Services in Linux (0) | 2002.02.24 |
---|---|
new photos from my party! 바이러스 Sendmail 필터링 (0) | 2002.02.22 |
race condition을 이용한 exploit의 실행과 결과 (1) | 2002.01.17 |
간단한 파일무결성 검사 (Fcheck) (0) | 2002.01.14 |
IP traceback (0) | 2002.01.12 |