AIを駆使したサイバー攻撃:インテリジェントな脅威を検知、予防、防御する方法

今すぐ読む
サイト翻訳には人工知能を利用しており、正確性を追求しておりますが、必ずしも100%正確とは限りません。ご了承ください。

ロックウェル・オートメーションのPLCに対するOT攻撃からの保護 

By OPSWAT
この記事を共有する

この度、当社の高度な脅威検知技術で特定・修復可能な様々なCVE(共通脆弱性・暴露)に焦点を当てた技術分析ブログシリーズをご紹介いたします。すべての研究は、2023年12月に開始されたOPSWAT サイバーセキュリティ・フェローシップ・プログラムに参加した大学院生によって行われています。 

ホーチミン科学大学の大学院生、ルアン・ファムとベト・チャン
OPSWAT フェローシップ・プログラムに参加。

このブログでは、Rockwell MicrologixのCVE-2017-14469と、CVE-2017-14469の悪用攻撃に対する組織の防御方法について説明します。

ロックウェル・オートメーション MicroLogix 1400 コントローラ 

PLC(プログラマブル・ロジック・コントローラ)は、産業用製造プロセスを制御するために特別に設計されたコンピュータである。組立ライン、機械監視、プロセス制御などの重要なインフラ分野で使用されています。ロックウェル・オートメーションのMicroLogix 1400コントローラは、モジュール式で拡張可能なPLCで、高いI/O数、高速カウンタ、強化されたネットワークサポートを特長としており、幅広いアプリケーションに適しています。

ロックウェル・オートメーション MicroLogix 1400 コントローラの製品写真
ロックウェル・オートメーションのMicroLogix 1400コントローラ

14469

説明

ロックウェル・オートメーションの MicroLogix 1400 シリーズ B FRN 21.2 およびそれ以前のバージョンには、攻撃者がデバイス上の機密データを読み書き/上書きできる脆弱性があります。認証されていない、コマンドを含む特別に細工されたパケットにより、ユーザー定義のフォールトルーチン番号が変更され、デバイスの実行が予期せず停止する可能性があります。

MicroLogix 1400 デバイスを標的とする攻撃者によるセキュリティシナリオを示す図。
インパクト 

NVD(National Vulnerability Database)は、この脆弱性を CVSS(Common Vulnerability Scoring System)スコアが最大の「Critical」に分類している。その影響は、追加の認証を必要とせずに、デバイスの機密性、完全性、可用性に大きな影響を与える可能性がある。システムの可用性は極めて重要であり、特に重要なインフラシステムでは、中断やダウンタイムが発生すると、巨額の金銭的損失や物理的な損害につながる可能性がある。このCVEは、コントローラ内で「システム・フォールト」をトリガすることでPLC機能の停止につながる可能性があり、その結果、重要なインフラ・システムを中断させるリスクをもたらします。 

サイバーセキュリティ脆弱性CVE-2017-14469の深刻度評価、NIST NVDとTalosのCVSSスコアとクリティカル・ベース・スコアの詳細。
NIST NVDにおけるCVE-2017-14469の情報 

脆弱性分析

フォルトとフォルト・ルーティンとは何か?

フォルトの概念は、プログラミングにおける例外とよく似ている。フォルトが発生すると、命令の実行が停止され、デバイスがフォルト状態になる。フォルトは、ユーザー・フォルトと非ユーザー・フォルトの2種類に分類できる。  

フォールトをクリアするメカニズムには、コントローラの電源を再投入することで自動的にクリアする方法と、ユーザー・フォールト・ルーチン(ユーザー・フォールトに応答して自動的に実行されるように設定可能な手順)を使用して手動でクリアする方法の2つがある。CVE-2017-14469 は、2 番目のメカニズムに関するものです。ユーザー障害によってシステムが予期せずシャットダウンしたり実行が停止したりすることを防ぐため、ユーザー障害ルーチンは、割り当てられた障害をその障害番号に基づいて処理するように定義され、対応する障害が発生したときに実行される。フォルトを処理するルーチンがない場合、デバイスは実行を停止し、フォルト番号を表示します。ユーザ・フォルト・ルーチンの値は、デバイスが正常に動作しているときは 0x00 に設定され、フォルト処理用に 0x03 ~ 0xFF の範囲でのみ設定する必要があります。

故障検出、ルーチン・チェック、エラー・コードの表示など、デバイスの故障を処理する手順を説明するフローチャート。
ユーザー障害ルーチンを使用したユーザー障害クリアのメカニズム。
ロックウェル・オートメーション MicroLogix 1400 動作モード

ロックウェル・オートメーションの MicroLogix 1400 には、PROGRAM、REMOTE、および RUN の 3 つのモードスイッチがあります。PROGRAM モードと REMOTE モードの両方では、デバイスへのプログラムのダウンロードが許可され、同時に受信要求も受け入れて処理します。しかし、RUN モードでは、デバイスは制限されたリクエストしか受け付けない。本脆弱性の文脈では、デバイスが RUN モードの場合、悪用は不可能です。

プログラム
  • プログラムのダウンロードと編集に使用されるアイドルモード
  • 通信ポートのメッセージに応答する
  • 実行が停止し、出力がない
リモート
  • ソフトウェアからデバイスを制御するセッションを許可する
  • 通信ポートのメッセージに応答する
  • 通常の実行と出力
走る
  • 連続ループでプログラムを実行
  • 制限されたメッセージにのみ応答する
CVE-2017-14469の仕組み

このデバイスは、PCCC拡張機能を持つCIP(共通Industrial プロトコル)を介して通信します。CIPプロトコルはEthernet/IPIndustrial プロトコル)の上に構築されています。パケットの構造を下図に示します:

産業用プロトコル通信のEthernet/IPパケットとCIPオブジェクトの構造の概略図
ユーザー障害ルーチンを使用したユーザー障害クリアのメカニズム。

上の画像からわかるように、認証用に指定されたフィールドはない。これは、デバイスが攻撃者のリクエストとユーザーからの通常のトラフィックを区別する能力を欠いているため、重要な課題となる。 

通常、オペレータは制御ソフトウェアを介してデバイスの構成を監視し、更新することができます。デバイスと通信するために、制御Software 、CIP PCCCオブジェクトに入力された保護された論理書き込みまたは読み取りコマンドで、対応する要求を送信します。CIP PCCCプロトコル形式では、コマンドはコマンドコードとファンクションコードで識別されます。 

コマンドコード
機能コード
説明
0x0F0800モード変更
0x0F0xAA3つのアドレス・フィールドを持つプロテクト型論理書き込み
0x0F0xA23つのアドレス・フィールドを持つプロテクト型論理リード

保護タイプ論理書き込みコマンドは、ステータス・ファイル、ビット・ファイル、カウンタ・ファイル、その他デバイスのコンフィギュレーションなど、機密性の高いファイルへの書き込みに使用される。  

デバイスは、CIPパケットの3つのアドレス・フィールド(ファイル・タイプ、 ファイル番号、エレメント番号)を使って、読み書きする場所を特定します。以下は、コマンドによって影響を受けるコンフィギュレーション・ファイルの場所を特定するための値の例である: 

File Type
ファイル番号
エレメント番号
説明
084000200x1dステータスファイル - ユーザー障害ルーチン番号
084000200060ステータスファイル - メジャーエラーコード
084000200050ステータスファイル - メジャーエラーコード

しかし、デバイスがリクエストを処理する際には、入力の検証が欠けている。書き込みコマンドで送信されたデータは検証されず、無効な値が設定される可能性がある。 

この脆弱性の原因は主に2つある。第一に、デバイスが受信リクエストを認証できないため、攻撃者が認証されていないリクエストを送信し、機密設定を変更することが可能になる。第二に、デバイスが誤って受信データを検証するため、設定が無効な状態に変更されてしまう。 

この脆弱性を悪用するには、攻撃者が保護されたタイプ論理書き込みコマンドを悪用して悪意のあるリクエストを送信し、ステータス・ファイル内のフォルト・ルーチン番号を 0x01 や 0x02 などの無効な値で上書きします。フォールト・ルーチン番号が無効な値で上書きされ、デバイスが別の CIP パケットを介して RUN モードに切り替わると、フォールトがトリガーされ、実行が停止する。 

脆弱性の悪用

攻撃は4つのステップに分けられる。

  1. イーサネット/IP経由でデバイスとの接続を確立し、セッション・ハンドルを取得する。
  2. 障害ルーチン番号を上書きする悪意のあるリクエストを送信する。
  3. 悪意のある CIP パケットを作成して PLC をランモードに戻し、フォルトをトリガする。
  4. デバイスに障害が発生し、実行が停止する。
ソケット接続、セッション登録、デバイスのフォールト・ルーチンとCPU状態を変更するコマンド送信のためのpythonコード・スニペット。
コードは、脆弱性を悪用するためのステップ・バイ・ステップの機能を示している。 
ステップ1

デバイスと通信するために、攻撃者はデバイスにセッションを登録することで接続を開始し、セッ ション・ハンドルを取得して継続的な通信に使用しなければならない。以下のコードは、標準的なセッション登録リクエストの例です:

生のバイトデータでセッションを登録し、それをソケット経由で送信し、セッションハンドルの応答をデコードするためのpython関数
ステップ2

その後、攻撃者は以前に取得したセッションハンドルを使用してリクエストを作成し、CIPパケットにカプセル化された、障害ルーチン番号を上書きするための保護された型付き論理書き込みコマンドを含むペイロードを含む。

ネットワーク通信スクリプトの一部で、ネットワークソケット経由で命令を送信し、応答を受信する関数を定義するpythonコード
ステップ3

最後のステップでは、別のCIPパケットが送信され、デバイスをランモードに切り替え、フォルトをトリガーする。

特定のコマンドペイロードを送信することで、デバイスのCPUの状態をランモードかプログラムモードのいずれかに設定するpython関数
ステップ4

画像に示されているように、PLC の実行は停止し、脆弱性の悪用に成功する。

システムのユーザーインターフェイスと、通常状態で動作するロックウェル・オートメーションの MicroLogix 1400 の図
システムは通常の状態で動作する
システムのユーザー・インターフェースと、脆弱性を悪用した後にロックウェル・オートメーションのMicroLogix 1400がダウンした様子を示す図
この脆弱性を悪用してシステムがダウンしている

修復

OPSWATのICSセキュリティ向け製品は、この種の攻撃に耐えるように設計されている。 MetaDefender OT Securityは、AIを活用した脅威検知・インテリジェンスツールで、攻撃者からの異常なリクエストを検知し、管理者が潜在的な脅威を特定できるようにします。 

MetaDefender OT Security には、OT環境のセキュリティ態勢を改善するための次のような機能がある: 

  1. スマート・アセット・プロファイリングによる資産インベントリの迅速な発見と構築
  2. 脅威や異常を能動的・受動的に監視する
  3. 一元化された自動パッチ機能によるリモートパッチ管理
  4. 包括的かつカスタマイズ可能なダッシュボードで管理される、構造化され合理化されたリスクアラートワークフロー
  5. グローバル、地域、業界の規制コンプライアンス報告
CVE リストと CVSS スコアを含む、ロックウェル・オートメーションの MicroLogix 1400 PLC デバイスの詳細な脆弱性評価を表示するダッシュボード

さらに、MetaDefender OT Security 、以下のものと統合することもできます。 MetaDefender Industrial Firewallと統合することもできます。MetaDefender Industrial Firewall 、ミッションクリティカルなPLC、VFD、RTU、その他の産業資産を保護する最後の防衛ラインです。非常にきめ細かいデバイスアクセスポリシーを適用し、デバイスアクセスゾーンを強制し、不正アクセスや変更が重要なハードウェアに影響を与えないようにします。  

この2つを組み合わせることで、シームレスなIDPS(侵入検知・防御システム)が構築され、異常なネットワーク接続、リクエスト、通信などを効果的に検知し、ネットワークへの影響を防ぐことができる。

MetaDefender OT Security は、資産の可視化と堅牢な脅威検知を通じて、重要なインフラストラクチャに極めて重要な保護を提供しています。OPSWAT 、その技術力の高さだけでなく、サイバーセキュリティに情熱を傾ける人材にエキサイティングなキャリアの機会を提供しています。私たちと一緒にセキュリティの未来を形作り、最も重要なものを守りましょう。OPSWAT で多様な役割とインパクトのあるプロジェクトを探求し、あなたの専門知識が具体的な違いを生み出します。一緒に、世界で最も重要なシステムを守りましょう。

OPSWATで最新情報をお届けします!

今すぐご登録ください、 ストーリー、イベント情報などをお届けします。