一起走進SNMP協議的歷史講解
SNMP協議開發于九十年代早期,其目的是簡化大型網絡中設備的管理和數據的獲取。許多與網絡有關的軟件包,如HP的OpenView和Nortel Networks的Optivity Network Management System,還有Multi Router Traffic Grapher(MRTG)之類的免費軟件,都用SNMP服務來簡化網絡的管理和維護。
由于SNMP協議的效果實在太好了,所以網絡硬件廠商開始把SNMP協議加入到它們制造的每一臺設備。今天,各種網絡設備上都可以看到默認啟用的SNMP服務,從交換機到路由器,從防火墻到網絡打印機,無一例外。
僅僅是分布廣泛還不足以造成威脅,問題是許多廠商安裝的SNMP協議都采用了默認的通信字符串(例如密碼),這些通信字符串是程序獲取設備信息和修改配置必不可少的。采用默認通信字符串的好處是網絡上的軟件可以直接訪問設備,無需經過復雜的配置。
通信字符串主要包含兩類命令:GET命令,SET命令。GET命令從設備讀取數據,這些數據通常是操作參數,例如連接狀態、接口名稱等。SET命令允許設置設備的某些參數,這類功能一般有限制,例如關閉某個?緗涌凇⑿薷穆酚善韃問?裙δ?。?芟勻?,GET、SET命令都可能被用于拒絕服務攻擊(DoS)和惡意修改網絡參數。
最常見的默認通信字符串是public(只讀)和private(讀/寫),除此之外還有許多廠商私有的默認通信字符串。幾乎所有運行SNMP協議的網絡設備上,都可以找到某種形式的默認通信字符串。
SNMP 2.0和SNMP 1.0的安全機制比較脆弱,通信不加密,所有通信字符串和數據都以明文形式發送。攻擊者一旦捕獲了網絡通信,就可以利用各種嗅探工具直接獲取通信字符串,即使用戶改變了通信字符串的默認值也無濟于事。
近幾年才出現的SNMP協議 3.0解決了一部分問題。為保護通信字符串,SNMP 3.0使用DES(Data Encryption Standard)算法加密數據通信;另外,SNMP協議 3.0還能夠用MD5和SHA(Secure Hash Algorithm)技術驗證節點的標識符,從而防止攻擊者冒充管理節點的身份操作網絡。有關SNMP 3.0的詳細說明,請參見http://www.ietf.org/rfc/rfc2570.txt。
雖然SNMP協議 3.0出現已經有一段時間了,但目前還沒有廣泛應用。如果設備是2、3年前的產品,很可能根本不支持SNMP 3.0;甚至有些較新的設備也只有SNMP 2.0或SNMP 1.0。
即使設備已經支持SNMP協議 3.0,許多廠商使用的還是標準的通信字符串,這些字符串對黑客組織來說根本不是秘密。因此,雖然SNMP協議 3.0比以前的版本提供了更多的安全特性,如果配置不當,其實際效果仍舊有限。
【編輯推薦】