← 脆弱性の記事一覧へ

セキュリティノート

Siemens SIMATIC IoT2050Node-REDの認証欠落を突く攻撃を観測

分類:攻撃手法認証回避攻撃手法RCE攻撃手法Webシェル対象技術IoT・制御システムインシデント種別悪用確認

要点

影響を受けるもの

  • SIMATIC IoT2050 Advanced(6ES7647-0BA00-1YA2) の V4.3.4.1 未満で、Industrial OS 上に Node-RED をインストールしているもの(Siemens SSA-834709)。

今すぐやること

  • V4.3.4.1 以降に更新する。すぐ更新できなければ、Node-REDを削除するか、Node-REDの管理画面・管理APIに認証をかける。
  • Node-REDの画面(通常はTCP 1880番)がインターネットや社内の広い範囲から届かないか確認する。
  • 配置済みのフローに、身に覚えのない exec ノードや http in のエンドポイントがないか点検する。

何が起きているか

事実(Siemens、VulnCheck)

  • Siemens ProductCERTは2026年8月11日、SSA-834709 で CVE-2026-58115 を公表した。Node-REDのHTTPインターフェースで認証が強制されておらず、認証なしの遠隔の攻撃者が不正なフローを作り、最高権限で任意のコードを実行できるというもの。CVSS v3.1・v4.0ともに 10.0、弱点の種類は CWE-306(重要な機能の認証欠落)。
  • 脆弱性情報を集める米VulnCheckは11月2日、自社のおとり(カナリア)環境で10月30日にこの脆弱性を突く攻撃を捉えたと公表した。同社は同じ脆弱性の検知ルールを10月27日に出しており、その3日後の観測になる。
  • 攻撃は POST /flows の1回のリクエストで、Node-REDのフローを配置する。フローは「起動時に一度だけ動く inject ノード」と「シェルコマンドを実行する exec ノード」をつないだもので、配置した直後にコマンドが走る。コマンドはbase64で符号化されていた。
  • 復号されたコマンドは、外部サーバー(85.215.73[.]250:8080)から bot-linux-amd64 を取得し、メモリ上のファイルシステムに /dev/shm/.b として保存して実行するものだった。
  • 11月1日の追記では、同じ送信元から次の手口も見つかったとしている。
    • 同じサーバーから wget.sh を取得して実行する2段階型
    • 別のサーバー(45.194.90[.]57:38472)から .sys_update を取得し、/tmp/.kworker として実行するもの
    • ダウンロードはせず、/cmd などのHTTPエンドポイントからクエリで受け取ったコマンドを実行するフロー(Webシェル)を残すもの。再起動でメモリ上の不正プログラムが消えても残る。
  • 送信元は1つのIPアドレス(MicrosoftのAS8075)で、10月30日〜11月1日にこの脆弱性に対して16回、他の8件の脆弱性(Apache Solr、Gitea、MLflowなど)にも計125回アクセスしていた。VulnCheckは特定の標的を狙ったものではなく、無差別な大量スキャンとみている。
  • VulnCheckは取得されたプログラムやスクリプトそのものは入手・解析しておらず、ボットの機能は不明としている。
  • VulnCheckはこの脆弱性を自社のKEV(悪用確認済み脆弱性リスト)に追加した。2026年11月3日時点で、CISAのKEVには登録されていない(CISA KEV)。
  • 観測はおとり環境への攻撃であり、実際のIoT2050の被害は公表されていない。

影響を受ける製品・バージョン

製品影響を受ける版修正版
SIMATIC IoT2050 Advanced(6ES7647-0BA00-1YA2)V4.3.4.1 未満で、Industrial OS 上に Node-RED を導入しているものV4.3.4.1 以降
  • Siemensの勧告の対象は上の製品のみ。VulnCheckは、Node-REDがEmersonなど他社の産業用製品にも組み込まれていると触れているが、それらが影響を受けるかは確認していないとしている。
  • 攻撃で使われたのは「認証なしでフローを配置できる」というNode-REDの状態そのもので、VulnCheckは「adminAuth(管理画面の認証)を設定していないNode-RED」が自動的に見つけられ悪用されていると書いている。

修正版・回避策

  • 修正:V4.3.4.1 以降に更新する(Siemensのダウンロードページ)。
  • 回避策(Siemens):
    • Node-REDをアンインストールする。
    • Node-REDを堅牢化する(Node-REDの公式ガイド)。具体的には、HTTPSを有効にする、エディターと管理APIに認証(ID・パスワード、またはOAuth/OpenID)をかける、HTTPノードとダッシュボードにBasic認証をかける。
  • Siemensは一般的な対策として、機器へのネットワークアクセスを適切に保護するよう求めている。

今すぐやること

  1. 社内にSIMATIC IoT2050 Advancedがあるか、ファームウェアの版とNode-REDの有無を確認する。
  2. 該当すればV4.3.4.1以降に更新する。止められない機器は、Node-REDの削除か認証設定を先に行う。
  3. Node-REDのポートが外部から届かないか確認し、届くならファイアウォールで閉じる。IoT2050以外でNode-REDを動かしている機器・サーバーも同じように確認する。
  4. 配置済みのフローを開き、作った覚えのない exec ノード、http in ノード、function ノードがないか見る。
  5. 機器上に /dev/shm/.b、/tmp/.kworker などの不審なファイルやプロセスがないか、VulnCheckが公表した通信先(85.215.73[.]250、45.194.90[.]57、攻撃元 4.201.105[.]116)への通信がないかを確認する。

考察

  • 「機能」がそのまま攻撃手段になる: Node-REDはもともとシェルコマンドを実行できる道具で、認証さえなければ脆弱性の細工は要らない。フロー1つを送るだけで済むため、攻撃の敷居は極めて低いと考える。
  • 8月の修正が3か月後に効いてくる: 修正版は8月に出ていたが、検知ルールが出回った直後に攻撃が始まった。産業用の機器は更新が後回しになりやすく、未更新の機器が残っている可能性は高いとみる。
  • IoT2050だけの問題と考えない方がよい: 勧告の対象はIoT2050だが、攻撃者が探しているのは「認証のないNode-RED」全般と読める。試作や現場の見える化で立てたNode-REDが外部に公開されたままになっていないか、この機会に棚卸ししたい。
  • Webシェル型は更新だけでは消えない: フローとして残された裏口は、機器の更新後も残る可能性がある。更新と合わせてフローの中身を確認するのが無難だと考える。

出典

原文をGitHubで読む ↗

あわせて読む

RVTools ― 検索広告経由で改ざん版インストーラーが配布された