banner

ニュース

May 06, 2023

研究者はシーメンス PLC からマスター暗号化キーを抽出します

ルシアン・コンスタンティン

CSO シニアライター、CSO |

セキュリティ研究者は、シーメンスのいくつかのプログラマブル ロジック コントローラー (PLC) 製品ラインの CPU にハードコーディングされ、安全な通信と認証を侵害できるグローバル暗号化キーを抽出する方法を発見しました。 シーメンスはすべての顧客に対し、影響を受けるデバイスのファームウェアと、エンジニアがデバイスとの通信やプログラムの展開に使用する TIA ポータル ソフトウェアの両方をアップグレードするようアドバイスしています。

Claroty のセキュリティ研究者によると、シーメンスはほぼ 10 年前に SIMATIC S7-1200/1500 PLC CPU に非対称暗号化を導入し、構成、プログラム、通信を保護しました。 しかし、同社は、当時、動的なキーの配布と管理が一般的ではなく、顧客にとって負担になる可能性があったため、これらの製品ファミリーのすべてのデバイスに対してハードコーディングされたグローバル秘密キーを使用することを選択しました。

「しかしそれ以来、技術の進歩、セキュリティ研究、脅威の状況の急速な変化により、このようなハードコードされた暗号鍵は容認できないリスクとなった」と研究者らは報告書の中で述べている。 「グローバルなハードコードされたキーを抽出できる悪意のある攻撃者は、デバイス製品ライン全体のセキュリティを修復不可能な方法で侵害する可能性があります。」

Claroty によると、Siemens S7-1200 および S7-1500 PLC は複数のキーを使用します。 「ファミリーごと」のキーは製品ラインのすべてのデバイスで共有され、「モデル/ファームウェアごと」のキーは構成の暗号化とコードの整合性の維持に使用され、接続キーは認証プロセスで使用されます。クライアントとの通信を暗号化します。 接続キーは構成キーから派生し、楕円曲線ベースの暗号化に使用されます。

これは、攻撃者が構成キーを入手し、暗号化された構成を読み取るアクセス権がない場合でも、PLC の構成からユーザー パスワードを復号したり、中間者攻撃を開始したりできる可能性があることを意味します。

問題は、このファミリー全体の構成キーがデバイスのファームウェア (デバイス上で実行されているオペレーティング システム) ではなく CPU 自体に保存されているため、読み取りにはオペコードを介して CPU と直接対話するためのアクセスが必要であることです。 すべてのデバイスがキーを共有しているため、これは 1 つのデバイスで 1 回だけ実行する必要があります。

昨年、Claroty の研究者は、S7 PLC に影響を及ぼし、デバイス上でネイティブ コードを実行できるリモート コード実行の脆弱性 (CVE-2020-15782) を発見しました。 通常、エンジニアが作成し、専用のエンジニアリング ソフトウェアを介して PLC に展開するプログラムまたはロジックは、PLC OS のサンドボックス内で実行されます。 CVE-2020-15782 により、研究者らはそのセキュリティ層をバイパスし、PLC 上の通常は保護されているメモリ アドレスに直接読み書きできるようになりました。

「取得したDA(ダイレクトメモリアクセス)読み取り許可を使用して、暗号化されたPLCファームウェア(SIMATIC S7-1500)全体を抽出し、その機能をマッピングすることができました」と研究者らは述べた。 「マッピング プロセス中に、PLC 上の秘密キーを読み取る関数を見つけました。関数アドレスを取得したら、特定の MC7+ オペコードの機能をシェル コードで書き直し、秘密キーを読み取るネイティブ関数を強制的に呼び出すようにしました。次に、キーを既知のメモリ アドレスにコピーし、そこから読み取りました。上書きされた関数を実行すると、PLC の完全な秘密キーが得られました。」

Siemens PLC との対話にはパスワードが必要ですが、クライアントにデバイスに付与される権限は、構成可能な 4 つの保護レベルによって定義されます。 保護レベルが 3 より低い場合、攻撃者は特別な許可なしに PLC から設定を抽出できます。 この設定にはパスワード ハッシュが含まれていますが、暗号化されています。 ただし、グローバル秘密キーを持っている場合、攻撃者はパスワード ハッシュを復号化し、それを使用してより高い権限を持つ PLC に対する認証を行うことができます。

保護レベルが 4 より高い場合、攻撃者は秘密キーを使用して、正規のクライアントに対して中間者攻撃を開始することができます。 これがどのように機能するかというと、偽の PLC をシミュレートし、クライアントにその PLC に対する認証を試行させることです。 これにより、クライアントは暗号化された接続キーを不正な PLC に送信し、攻撃者が所有する抽出されたグローバル キーで復号化され、実際の PLC への接続に使用されます。 実際の PLC はパスワード チャレンジで応答し、攻撃者はそれをクライアントに転送して応答を取得します。

チャレンジ応答を実際の PLC に転送すると、パスワード ハッシュを含む構成を読み取る権限を持つ認証済みセッションを確立できるようになります。 その後、グローバル秘密キーを使用してパスワード ハッシュを復号化することができ、攻撃者は中間者によるセッション ハイジャックを繰り返すことなく将来的にアクセスできるようになります。

最後に、「ネットワーク上の特定の PLC へのトラフィックをキャプチャするパッシブ アクセスを持つ攻撃者は、PLC からの構成の読み取り/書き込みを傍受する可能性がある」と研究者らは警告しています。 「攻撃者は秘密キーを使用して設定を復号化し、パスワード ハッシュを抽出できます。攻撃者はパスワード ハッシュを使用してコントローラに対して認証を行い、新しい設定を書き込むことができます。」

シーメンスはこの問題に対する新たな勧告の中で、「SIMATIC S7-1200、S7-1500 CPUおよび関連製品は、もはや十分とは考えられない方法で内蔵グローバル秘密鍵を保護している」と述べた。 「シーメンスは、影響を受ける製品と、対応する TIA ポータル プロジェクトの両方を最新バージョンに更新することをお勧めします。TIA ポータル V17 および関連する CPU ファームウェア バージョンでは、デバイスごとの個別のパスワードと TLS で保護された PG/PC に基づく機密構成データの保護が導入されました。 HMI通信。」

脆弱なデバイスには、SIMATIC ドライブ コントローラー ファミリ バージョン 2.9.2 より前のバージョン、SIMATIC ET 200SP オープン コントローラ CPU 1515SP PC2 (SIPLUS バリアントを含む) バージョン 21.9 より前のバージョン、SIMATIC S7-1200 CPU ファミリ (SIPLUS バリアントを含む) バージョン 4.5.0 より前のバージョンが含まれます。 、SIMATIC S7-1500 CPU ファミリ (関連する ET200 CPU および SIPLUS バリアントを含む) バージョン 2.9.2 より前のバージョン、SIMATIC S7-1500 ソフトウェアコントローラーのバージョン 21.9 より前のバージョン、および SIMATIC S7-PLCSIM Advanced バージョン 4.0 より前のバージョン。 SIMATIC ET 200SP オープン コントローラー CPU 1515SP PC (SIPLUS バリアントを含む) のすべてのバージョンも影響を受けますが、それらに対する修正は利用可能または計画されていません。

Lucian Constantin は、CSO のシニア ライターで、情報セキュリティ、プライバシー、データ保護を担当しています。

著作権 © 2022 IDG コミュニケーションズ株式会社

シーメンス PLC は認証とコード保護に暗号キーを使用 研究者はキーを抽出するために直接メモリ アクセスを取得しました ユーザーは脆弱なデバイスとエンジニアリング ソフトウェアをアップグレードするようアドバイスしました 次に読む
共有