この脆弱性は Patrick DeSantis によって検出されました。
説明
Talos はこのほど、Rockwell Automation の Allen-Bradley MicroLogix 1400 プログラマブル ロジック コントローラ(PLC)のデフォルト設定に関する脆弱性を発見しました。この脆弱性が潜むファームウェア バージョンを搭載したデバイスは、このデフォルト設定で出荷されています。この脆弱性は、文書に記載されていない SNMP コミュニティ ストリングに起因するものです。攻撃者はこれを利用し、デバイスを完全に制御して設定権限を取得するか、デバイスで実行中のファームウェアを攻撃者のコードで置き換えるか、または、デバイスの操作を中断させます。産業用制御プロセスにおけるこの PLC の利用方法によっては、深刻な被害がもたらされる恐れがあります。
SNMP コミュニティ ストリングには、文書に記載されている、デフォルトの「public」(読み取り専用)、「private」(読み取り/書き込み)以外にも、記載されていない「wheel」(読み取り/書き込み)が存在します。攻撃者はこれを利用して、設定変更や、ファームウェアの悪意あるアップデートなどの、不正なデバイス変更を行います。このコミュニティ ストリングを使用して、他の OID にアクセスできる可能性もありますが、Talos で検証したのは特定の事例についてのみです。
テストしたバージョン
Rockwell Automation の Allen-Bradley MicroLogix 1400 プログラマブル ロジック コントローラ システム、バージョン 7 – 15.004。
まとめ
従来、SNMPv1 および SNMPv2c サービスに対する攻撃は、実稼働環境におけるデフォルトのコミュニティ文字列を利用して行われていました。それ以外の方法としては、SNMP を使用する 2 つのデバイス間のネットワーク通信をスニッフィングして、デバイスへの攻撃に必要なコミュニティ ストリングの値を取得していました。
デバイスのデフォルトの SNMP コミュニティ ストリングを顧客側で変更することは可能ですが、このストリング(「wheel」)については文書に記載されていなかったため、ほとんどの顧客はその存在すらも認識しておらず、PLC の実稼働前に変更できる可能性は限りなく少なくなっていました。問題の重大性と、この脆弱性が関連デバイスから除去されたわけではないことを考え合わせると、実稼働環境における悪用を防ぐために、何らかの軽減措置を取ることを推奨します。軽減措置についてはこちらを参照してください。
TALOS-2016-0184 は SID 39876 および 39877 で検出できます。
この脆弱性に関する詳細については、こちらよりアドバイザリをご覧ください。
本稿は 2016年8月12日に Talos Group のブログに投稿された「Vulnerability Spotlight: Rockwell Automation MicroLogix 1400 SNMP Credentials Vulnerability」の抄訳です。