Cisco製スイッチへの攻撃

2018年4月13日

先日、Ciscoのスイッチに対する大規模な攻撃が見られました。同社のスイッチは、世界中のデータセンターで使われています。

Ciscoのスイッチを狙うボット

攻撃は次のような流れで発生したと見られます。

正体不明のサイバー犯罪者グループがCisco Smart Install Clientというソフトウェアの脆弱性を悪用し、脆弱性を持つスイッチ上で任意のコードを実行可能となります。犯罪者はスイッチのCisco IOSイメージを書き換え、設定ファイルを変更し、「我々の選挙に手出しするな」という旨のメッセージを残します。スイッチは使用不能になります。

Ciscoの脆弱なスイッチをIoT検索エンジンShodanで探し出し、その脆弱性を悪用しているボットが存在したようです(または、脆弱なスイッチの検索を目的に作られたCisco製のツールが利用されているのかもしれません)。脆弱なスイッチが見つかると、Smart Install Clientが悪用されて設定ファイルが書き換えられ、インターネットの一部がダウンします。これにより一部のデータセンターが利用できなくなり、ひいては一部のWebサイトがダウンします。

Cisco Talosによると、この脆弱性を抱える機器はShodanの検索で168,000台以上見つかったとのことです(英語記事)。攻撃の規模は不明ですが、インターネットプロバイダーとデータセンターが全体的に影響を受けるほどの規模である可能性もあります。標的はほとんどがロシア語圏と見られているものの、程度の差はあれ他の地域も影響を受けています。当社はこの攻撃を調査中です。

システム管理者向け対処方法

Smart Install Client機能は、Ciscoスイッチのリモート設定やOSイメージ管理などを可能とする、本来はシステム管理者の負担を軽減するためのものです。たとえば、本社にいながら、離れた場所に機器を展開して諸々設定する、などの用途に利用できます。こういった用途に対応するのはZero Touch Deploymentという機能で、利用するには、Smart Install Clientを有効にし、TCP 4786ポートを開いておく必要があります(どちらも既定で有効になっています)。

Smart Install Clientが動作しているかどうか確認するには、スイッチ上で「show vstack config」というコマンドを実行します。スイッチからポジティブな反応が返ってくれば、Smart Install Clientが有効だということです。その場合は、「no vstack」コマンドで無効にしておいた方がよいでしょう。

しかし、一部のCisco OSでは、スイッチを再起動するとこのコマンドの効果がなくなってしまいます。これに該当するのは、3.9.2E/15.2(5)E2システム搭載のCisco Catalyst 4500および4500-X シリーズ スイッチ、システムバージョン15.1(2)SY11、15.2(1)SY5、15.2(2)SY3のCisco Catalyst 6500シリーズ スイッチ、15.2(5)E2および15.2(5)E2aシステム搭載のCisco Industrial Ethernet 4000シリーズ スイッチ、OS 12.2(60)EZ11搭載のCisco ME 3400およびME 3400Eシリーズ イーサネット アクセス スイッチです。該当する場合は、システムバージョンをアップグレード(またはダウングレード)するか、「no vstack」コマンドの実行を自動化することをお勧めします。使用中のOSのバージョンを確認するには、「show version」コマンドを実行してください。

業務上Smart Install Clientを停止できない場合や、「no vstack」コマンドがサポートされていないバージョンのCisco OSを使用している場合は(パッチで追加されたコマンドなので、十分にあり得る話です)、ポート4786への接続を制限した方がよいでしょう。Ciscoは、Interface Access Control Listsを使用して、適切な機器だけにポート4786からの接続を許可することを推奨しています。下記は、機器がIPアドレス10.10.10.1に置かれている場合の例です。

例:

ip access-list extended SMI_HARDENING_LIST
permit tcp host 10.10.10.1 host 10.10.10.200 eq 4786
deny tcp any eq 4786
permit ip any

この脆弱性の詳細については、こちらのアドバイザリ(英語)をご覧ください。