SNMP Object ipForwarding / OID 1.3.6.1.2.1.4.1 を使用しネットワーク機器のルーティングを無効にする攻撃が多く発生していますのでご注意ください。
SNMP Object ipForwarding / OID 1.3.6.1.2.1.4.1 を使用すると、外部からルーターやスイッチなどのネットワーク機器に ip routing や no ip routing を設定することが可能です。
SNMP の community 名はパスワードのようなものですので、SNMP の community が特定しやすいもので、かつ、アクセス権限が Read-Write に設定されていると、悪意あるユーザーが SNMP Object ipForwarding を使用してネットワーク機器に no ip routing を設定することが可能です。no ip routing が設定されると全ての routing 機能は無効になります。
実際に、community 名 : private と SNMP Object ipForwarding を使用し、ネットワーク機器に no ip routing を設定する攻撃が多発しています。
そのため、以下のような特定しやすい community とアクセス権限 RW を同時に使用することは避けてください。
snmp-server community private RW
no ip routing が SNMP Object ipForwarding を使用して設定された場合、多くのルーターやスイッチでは一切ログが出力されません。そのため突然 no ip routing が設定され通信断が発生します。
*CSCup37781 の機能追加が行われている IOS version であれば SNMP Object ipForwarding を使用して ip routing / no ip routing が設定された場合にログが出力されます。
詳しくはこのドキュメントの「この問題に関連した機能追加」の項目を参照してください。
以下のように手動で no ip routing を設定してみるとわかりますが、no ip routing を設定すると static route, RIP, OSPF, EIGRP, BGP などの routing の設定は全て無効になります。
そのため見え方としては OSPF の設定が消える、BGP の設定が消えるといった見え方にもなります。
Router#show run | i ip route|router
router eigrp 1
router ospf 1
router rip
router bgp 1
ip route 0.0.0.0 0.0.0.0 1.0.0.100
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no ip routing
Router(config)#exit
Router#
Router#show run | i ip route|router
no ip route-cache
no ip route-cache
no ip route-cache
no ip route-cache
no ip route-cache
no ip route-cache
no ip route-cache
また、稼働中に Routing の設定が突然消えるような不具合は IOS にはありません。
稼動中に突然 Routing の設定が全て消え、no ip routing が設定されていた場合は、この問題によって no ip routing が設定された可能性を疑ってください。
この攻撃を回避するための回避策は以下のようなことが考えられます。
■アクセス権限を RW から RO に変更する。
以下のようにアクセス権限が RO であれば ipForwarding を使用して外部から no ip routing の設定を行うことは出来ません。
snmp-server community <community_name> RO
■特定しにくい community 名を使用する
記号、大小のアルファベット、数字を混ぜた community 名を使用することで攻撃を回避出来る可能性が高まります。
■ACLを使用する
以下のような ACL option を使用することで特定の SNMP Server からのパケットのみを許可することが可能です。ACL を設定することで攻撃パケットを drop させることが可能です。
Router(config)#snmp-server community <view_name> RW ?
<1-99> Std IP accesslist allowing access with this community string
<1300-1999> Expanded IP accesslist allowing access with this community
string
WORD Access-list name
ipv6 Specify IPv6 Named Access-List
<cr>
■VIEW を使用する
以下の設定を行い ipForwarding へのアクセスを禁止します。
snmp-server view <view_name> ip.1 excluded
snmp-server community <community_name> view <view_name> RW
この問題に関連した機能追加として以下の修正があります。
CSCup37781 Need to add log message when SNMP modifies ip routing config
CSCup37781 の修正を含む version では SNMP Object ipForwarding を使用して ip routing / no ip routing が設定された場合に以下のログが出力されるように機能追加が行われています。
%SYS-5-CONFIG_I: Configured from <IP Address> by snmp
SNMP オブジェクトナビゲータ
オブジェクト ipForwarding
OID 1.3.6.1.2.1.4.1
http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=ja&translate=Translate&objectInput=1.3.6.1.2.1.4.1