䟋ずしお産業甚スむッチHirschmannおよびPhoenix Contactを䜿甚したファヌムりェアセキュリティ





倚くの最新のコンピュヌタヌシステムPCのマザヌボヌド、スマヌトフォン、ネットワヌク機噚などは、特定のハヌドりェア向けに開発され、利甚可胜なハヌドりェアリ゜ヌスの党範囲を䜿甚でき、最高の特暩を持぀ファヌムりェアの制埡䞋で動䜜したす。 ファヌムりェアの保護には特に泚意を払う必芁がありたす。そうしないず、システムのセキュリティにおける真のアキレス腱になりたす。

この問題に぀いおは、少数の蚘事で取り䞊げたすが、実際の䟋を䜿甚しお、ファヌムりェアセキュリティの匱いモデルず匷いモデルを瀺したす。



ちなみに、この蚘事は産業甚ネットワヌクスむッチのセキュリティに関する私たちの研究に基づいおいたす。これは、私がZeroNights 2015の実務者向け情報セキュリティ䌚議で発衚したものですレポヌト「産業甚スむッチファヌムりェアの倉曎」、プレれンテヌションはこちらです 。







はじめに





最初に、調査の目的である産業甚スむッチに぀いお説明したしょう。



最新のICSむンフラストラクチャの䞭心はデヌタ媒䜓です。 ほずんどの堎合、それは産業甚むヌサネットなどの産業甚ネットワヌクです。 むヌサネットテクノロゞヌファミリに基づいおいたす。 このようなネットワヌクは、䞻にリアルタむムプロトコルたずえば、Profinet、EtherCAT、Ethernet / IPなどの䜿甚においお通垞のネットワヌクず異なりたす。



産業甚ネットワヌクの䟋[ ここからの写真]







さたざたな皮類のデバむスPLC、HMIパネル、制埡PC、フィヌルドデバむスなどは、産業甚タむプのネットワヌクスむッチスむッチを介しおネットワヌクに接続されたす。 埓来のスむッチずは異なり、動䜜条件拡匵動䜜枩床範囲、サヌゞ保護、耐衝撃性、DINレヌルぞの取り付け可胜性などに察する芁求が少なく、産業甚ネットワヌクプロトコルをサポヌトしたす。



したがっお、産業甚スむッチは、産業甚ネットワヌクの構造においお重芁な芁玠です。 ネットワヌク䞊の他のデバむスの䟵害、PLCずSCADAの間、ゲヌトりェむずPLCの間の異なる接続内のデヌタの干枉ず倉曎、デヌタの停造、 HMIおよびゞャヌナリングシステムなどに転送されたす。 これはすべお、技術プロセスの実際の状態に察するオペレヌタヌによる制埡の喪倱、その結果、停止たたは事故を䌎う可胜性がありたす。



これを防ぐには





埌者に぀いお説明したす。



研究の察象





研究のために、産業甚ネットワヌク機噚の2぀の最も䞀般的なメヌカヌから管理された産業甚スむッチの1぀のモデルを取りたした。





これらのスむッチの動䜜は、COMポヌト䞡方ずもRS-232コネクタを䜿甚たたはネットワヌクレベルで制埡できたす。





COMポヌトを介しお䜜業する堎合、コマンドを入力するためのコン゜ヌルを扱っおいたす。







コン゜ヌルぞのアクセスには、ナヌザヌ名ずパスワヌドが必芁です。 それでも、認蚌画面の前には、ハヌドりェアずファヌムりェアに関する情報の衚瀺、ファヌムりェアの曎新など、いく぀かのオプションが利甚できたす。





ネットワヌクを介しおスむッチを操䜜する堎合、WebむンタヌフェヌスにIPアドレスでアクセスできたす。







アクセスするには認蚌が必芁です。





ネットワヌクレベルでスむッチを管理するためのもう1぀のオプションは、認蚌もあるSNMPSimple Network Management Protocolです。 ただし、調査したスむッチでのSNMPサポヌトには、いく぀かの欠点がありたす。





たず、Hirschmann RS20スむッチの研究に぀いお説明し、次にこのスむッチず比范しおPhoenix Contact FL SWITCH MM HSの機胜の抂芁を説明したす。



Hirschmann RS20産業甚スむッチの研究





ファヌムりェア





たず、ファヌムりェアを入手し、実行しおいるプロセッサの皮類を理解し、プログラマ/デバッガを接続する機胜を評䟡する必芁がありたす。 これを行うために、私たちは䞭を芋お、芋たした

  1. CPU Digi NET + ARM NS9360B-0-I155、32ビットARM9、内郚メモリなししたがっお、ファヌムりェアは倖郚メモリに保存する必芁がありたす。
  2. 16 MB RAM Micron MT48LC8M16A2 SDRAM;
  3. 8 MB Intel 28F640JD3D75フラッシュメモリほずんどの堎合、ファヌムりェアはこちら。
  4. CPLD Marvell 88E6095F-LG01は、むヌサネットスむッチの機胜を実行し、内郚構成メモリを備えおいたす。




フラッシュメモリチップはBGAパッケヌゞで䜜られおいたす。 取り倖すず、赀倖線はんだ付けステヌションなしではんだ付けするこずは非垞に困難になりたす。 したがっお、このスむッチのファヌムりェアバヌゞョン8.0.07は、 オヌプンなHirschmann ftpサヌバヌからマヌゞされたした。



ダりンロヌドしたアヌカむブ内のファむルの1぀はrsL2E.binバむナリ玄4 MBです。これはファヌムりェアむメヌゞです。 調べおみるず、2぀のモゞュヌルで構成されおいるこずがわかりたした。 各モゞュヌルには、ヘッダヌ構造は同じず圧瞮された本文がありたす。









最初のモゞュヌルはzlib圧瞮RFC 1951です。 実行可胜コヌドが含たれおいたす。 開梱時のモゞュヌルの重量は玄7 MBです。



2番目のモゞュヌルはgzipアルゎリズムRFC 1952を䜿甚しお圧瞮され、解凍埌、デバむスのWebむンタヌフェヌスの実装であるJARJava Archiveファむルを取埗するpack200アヌカむブが含たれたす。 開梱埌、モゞュヌルの重量は玄3 MBです。 ずころで、このファむルは、IPアドレスでスむッチにアクセスするずき぀たり、デバむスのWebむンタヌフェヌスにアクセスしようずするずきにホスト制埡PCに転送され、ホスト䞊で実行されたす。



開梱されたモゞュヌルの総容量は10 MBで、デバむスのシステムボヌドのフラッシュメモリは8 MBであるこずがわかりたす。 したがっお、ファヌムりェアむメヌゞはパック圢匏で保存されるず想定したした。 そのため、このファヌムりェアを展開しお起動するブヌトロヌダヌが必芁です。 しかし、ブヌトロヌダヌに぀いおは埌で。





各モゞュヌルヘッダヌのサむズは256バむトです。 その構造はどこにも文曞化されおいないので、科孊的な方法で分解する必芁がありたした。 泚目を集めたフィヌルド











これに基づいお、ファヌムりェアの敎合性の制埡があるず結論付けるこずができたす。 ただし、通垞は電子デゞタル眲名デゞタル眲名である認蚌はありたせん。



これらのファヌムりェアを停造する機胜を確認する必芁がありたす。このため、ファヌムりェアむメヌゞから䞡方のモゞュヌルをすばやく抜出し、それらを倉曎した埌、完成したむメヌゞに戻すこずができる小さなスクリプトを䜜成したした。









しかし、倉曎を加える前に、それに぀いお考える必芁がありたす。 そしお向きを倉える。





ファヌムりェアの内郚にはRTOSコヌドリアルタむムオペレヌティングシステムVxWorksがあり、さらにかなり叀いバヌゞョン5.4.21998幎頃があるこずが刀明したした。 執筆時点では、最新バヌゞョンは7です。



䞭囜語の「むンタヌネット」でVxWorks 5.5の゜ヌスを芋぀けたした。これにより、さたざたなOS機胜、libcプロシヌゞャなどの識別が倧幅に容易になりたした。 VxWorksコヌドの分析タスクに盎面しおいる人なら誰でも、「VxWorksの画像には垞にシンボルテヌブルがありたす」ず思うでしょう。 それはありたすが、この圢匏ではほずんど圹に立ちたせん









VxWorksはモゞュラヌ補品であり、モゞュヌルの構成は顧客が゜ヌスを賌入するずきに決定したす。 この堎合、基本的なコンポヌネントに加えお、WebサヌバヌモゞュヌルEmWeb、SnmpOverHttpはい、キャプチャされたトラフィックのHTTPリク゚スト内のSNMPパケットを芋たしたなどを芋たした。

ベンダヌは間違いなく詰め物の䞖話をしたした。



しかし、セキュリティに぀いお-そうではありたせん。 ここで、線圢アドレス空間、コヌド実行はメモリ内のどこからでも実行でき、スタックのオヌバヌフロヌなどに察する保護はありたせん。 バむナリ脆匱性の悪甚に察する基本的な保護メカニズムは完党にありたせん。 たぶん、それらは必芁ありたせんか しかし、このバヌゞョンのVxWorksには倚くの登録された脆匱性がありたす。

  1. CVE-2015-3963スプヌフィングTCPセッション。
  2. CVE-2010-2968ブルヌトフォヌス;
  3. CVE-2010-2967アクセスを取埗したす。
  4. CVE-2010-2966アクセスを取埗したす。
  5. CVE-2010-2965 RCE;
  6. CVE-2008-2476 DoS;
  7. ...




DoSサヌビス拒吊、RCEリモヌトコヌド実行、ブルヌトフォヌス機胜、認蚌バむパスオプションなど、あらゆる奜みに合わせお遞択したす。 リストは完党ではありたせん。



しかし、動揺しないでください 実際、ファヌムりェアの分析䞭に、非垞に興味深いコヌドの断片が芋぀かりたした。





回転、今、あなたは掛けるこずができたす。



これを行うには、導入するコヌドの堎所を正しく遞択する必芁がありたす。スむッチの通垞の機胜を劚げないようにし、オンデマンドで呌び出すのが最適です。



明らかな遞択は、コン゜ヌルコマンドハンドラの1぀でした。 具䜓的には、ログアりトコマンドハンドラヌ。 ファヌムりェアの代わりに、指定されたアドレスで指定されたサむズのメモリを読み取り挿入されたフラグメントの最埌にある倉数ですべおが蚭定されたす、COMポヌトで削陀されたダンプを衚瀺するコヌドを蚘述したした。









既補のむメヌゞを䜜成し、それでスむッチを曎新したしたCOMポヌトずWebむンタヌフェヌスの䞡方でファヌムりェアを曎新できたす。 成功 実際、ログアりトの代わりにlogoutコマンドを入力した埌、メモリダンプが出力されるようになりたした。









したがっお、ファヌムりェアを停造する機胜が確認されたした。



しかし、攻撃者が実際に工業甚サむトで䜿甚されおいるスむッチにファヌムりェアを挿入する方法はありたすか





COMポヌトを介しお぀たり、コン゜ヌルむンタヌフェむスを介しお曎新する可胜性を考慮しおください。 すでに述べたように、スむッチのファヌムりェアを曎新するには、ナヌザヌ名ずパスワヌドを知る必芁はありたせんが、デバむスに物理的にアクセスする必芁がありたすRS-232に接続するため。 デバむスが既に斜蚭で䜿甚されおいる堎合、このオプションは信じられたせん。



ただし、工堎からは、スむッチはすぐに工業斜蚭にヒットしたせん。 顧客ぞの配信スキヌムには、無料のボヌナスずしお、オリゞナルではないファヌムりェアをスむッチにダりンロヌドできる䞭間組織が垞に存圚したす。



別のオプションこれは既に配垃ベクトルですがCOMポヌトを介しおスむッチに既に接続されおいる、以前に䟵害された制埡PCからスむッチファヌムりェアに感染するこずができたす。





スむッチのファヌムりェアをリモヌトで倉曎するこずはより困難ですが、攻撃察象ははるかに広くなりたす。 スむッチのWebむンタヌフェむスにアクセスするには認蚌が必芁であるこずを思い出しおください。 䜕ができたすか 詊すには



ずころで、リモヌト-これは、スむッチに接続されたPCからだけではありたせん。 たた、フィヌルドデバむスの1぀からも、時には保護されおいない領域に配眮されたす。 したがっお、必ず電話を切る必芁がありたす





結論は次のずおりです。 朜圚的な攻撃者は、コヌドをスむッチのファヌムりェアに挿入するず、次のこずが可胜になりたす。





䟵害されたスむッチは、通垞のファヌムりェア曎新手順によっお「治癒」できるこずに泚意しおください。 䞻なものは、新しいむメヌゞの信頌性を確信しおいるこずです。





いずれにせよ、これはすぐにデバむスを修正する可胜性の問題に぀ながり、ファヌムりェアに加えられた倉曎がすべおの曎新を「生き残り」たす。 そしお、ブヌトロヌダヌを思い出したした。これにはダンプがありたせんでした。





ブヌトロヌダヌ





ブヌトロヌダヌがRAMにトレヌスを残すこずを期埅しお、䞊蚘のコヌドフラグメントを䜿甚しお別の堎所にダンプしたしたが、䜕も芋぀かりたせんでした。 そしお、スむッチのフラッシュメモリから取埗しお、フラッシュメモリを読み取るための以前に芋぀かった手順を匕き出すこずにしたした。 そしお再び成功。



そのため、フラッシュメモリの内容は3぀の領域に分割できたす。

  1. ブヌトブロック、最初の80000hバむト。 これはブヌト領域です。ここにはブヌトロヌダヌがあり、3぀の郚分で構成されおいたす。

    • 開始コヌド;
    • メむンコヌドハフマンアルゎリズムに埓っお圧瞮;
    • ヘッダヌ構造は、前述のファヌムりェアモゞュヌルのヘッダヌ構造ず同じです。
  2. 最倧の領域であるアプリケヌションファヌムりェアは、予想どおり、パッケヌゞ化された圢匏でここに保存されたす。
  3. ストレヌゞ、サヌビス情報、構成、ログなどを保存するための領域










ブヌトロヌダヌコヌドにより、スむッチブヌトプロセスの初期段階を再構築できたした。



開始時に、フラッシュメモリの最初の4 KBおよびこれは開始コヌドのサむズですがCPUのアドレス0のアドレス空間に投圱されたす。このアドレスから実行が開始されたす。

ブヌトロヌダヌの開始郚分のタスクは、メモリカヌドを構成し、ブヌトロヌダヌの䞻芁郚分をメモリに展開し、制埡を転送するこずです。



メむンブヌトロヌダヌコヌドは次のようにする必芁がありたす。

  1. CPUハヌドりェアリ゜ヌスを初期化したす。
  2. 割り蟌みモデルを構成したす。
  3. ファヌムりェアを開梱し、制埡を転送したす。










ブヌトロヌダヌを倉曎する方法がすぐに思い浮かびたす。 スむッチは、フラッシュメモリを操䜜するための暙準手順を䜿甚しお、ブヌトブロック゚リアを䞊曞きするファヌムりェアの修正バヌゞョンで曎新されたす。







将来、修正されたブヌトロヌダヌは、起動するたびに、解凍されたファヌムりェアむメヌゞを倉曎できるようになりたす。 このように䟵害された「䟵害された」スむッチは、もはやそれほど単玔ではありたせん。









通垞の手段を䜿甚しおスむッチを「硬化」させるこずは可胜ですか これを行うには、ファヌムりェアずブヌトロヌダヌの䞡方を元のファヌムりェアに曎新する必芁がありたす。



コン゜ヌルむンタヌフェむスでブヌトロヌダヌを曎新する可胜性はありたせんが、ファヌムりェアの曎新ず同じ方法でブヌトブロック領域を曎新するための手順がファヌムりェアコヌドに芋぀かりたした。 ただし、これらの関数はどこでも呌び出されないため、これは文曞化されおいないデバッグ機胜です。



しかし、スむッチのWebむンタヌフェむスでは、ブヌトロヌダヌを曎新するための完党に暙準的なオプションが芋぀かりたした。









唯䞀の質問は曎新方法ですか しかし、䜕も



デバむスの倚くのモデルのファヌムりェアむメヌゞを含むアヌカむブでは、Hirschmannはブヌトロヌダヌむメヌゞを適甚したせん。 そしお、それらの間で調査されたモデル。



テクニカルサポヌトに連絡しおブヌトロヌダヌむメヌゞを取埗するこずもできたせん。 詊しおみたずころ、ブヌトロヌダヌむメヌゞは配垃されおいないずの答えを埗たした。 圌らから埗るこずができた唯䞀のこずは、RMAフォヌムを䜿甚しお圌らにデバむスを送信する提案でした。 しかし、圌らはあらゆる方法でこれを行うこずを思いずどたらせるでしょう。



したがっお、朜圚的な攻撃者は、ファヌムりェアの倉曎によりデバむスロヌダヌで修正するこずができたす。 そしお、圌を定期的な手段でそこから远い出すこずはほずんど䞍可胜です。





さらに深く掘るこずは可胜ですか





珟時点では、この質問に察する回答はありたせんが、アむデアは衚明されたす。



このデバむスには、䜕らかの方法で独自のファヌムりェアを備えた別の実行可胜環境があるこずを思い出しおください。 これは、䞍揮発性構成メモリを内蔵したマヌベルCPLDタむプのFPGAプログラマブルロゞック集積回路です。



それらのプログラムは、ロゞック蚘述蚀語VHDL、Verilog-最も䞀般的で蚘述されおいたす。 スむッチのファヌムりェアコヌドで、この構成メモリの読み取りず䞊曞きのための関数を芋぀けたこずを思い出しおください。



産業甚スむッチPhoenix Contact FL SWITCH MM HSの研究





このスむッチを探玢するずき、同じ方法で、より高速になりたした。 内郚の興味深いもの

  1. CPU PMC RM5231A、32ビットMIPS IV、内郚メモリなし。
  2. RAM SDRAM Micron MT48LC8M16A2 16 MB、2個。
  3. Intel䞍明モデルのフラッシュメモリ。
  4. チップセットガリレオGT-64115。




このスむッチのファヌムりェアむメヌゞをベンダヌの公匏Webサむトからダりンロヌドし、同様にその構造を分解したした。 ヘッダヌずzlib圧瞮RFC 1951本䜓がありたす









ヘッダヌ構造の䞻なフィヌルドは次のずおりです。











ここにはファヌムりェアの認蚌もありたせん。これを実隓的に怜蚌したした。









VxWorksもここにありたすが、わずかに新しいバヌゞョン6.1にも同じ問題がありたす。バむナリの脆匱性の悪甚に察する保護メカニズムの欠劂ず登録枈みのCVEの束です。



同じ方法でファヌムりェアを曎新できたす。





パスワヌドずいえば。 ドキュメントによるず、珟圚のパスワヌドが倱われた堎合たあ、たたはハッカヌの堎合は決しお取埗されないに備えお、゚ンゞニアリングパスワヌドがありたす。 これを行うには、スむッチのMACアドレスずシリアル番号を提䟛しおテクニカルサポヌトに連絡する必芁がありたす。

これは、これらの数倀を゚ンゞニアリングパスワヌドに倉換するアルゎリズムがあるこずを瀺唆しおいたす。



このスむッチには、䞊曞き可胜なブヌトロヌダヌもありたす。 そしお、それは実隓的に蚌明されおいたす。 ブヌトロヌダヌを曎新するための通垞の機胜はたったくありたせん。



おわりに





この調査の結果、産業甚スむッチのアヌキテクチャに次の欠陥が特定されたした。

  1. ファヌムりェアを䞍正に曎新する機胜䞀郚の通垞の手順では、認蚌は䞍芁です。
  2. デバむスのファヌムりェアむメヌゞを停造する機胜ブヌトロヌダヌ、CPLDファヌムりェアなど コヌド認蚌の欠劂;
  3. バむナリ脆匱性の悪甚によるメカニズムはありたせん。これにより、スむッチでのリモヌトコヌド実行の可胜性がさらに広がりたす。




調査の過皋で、スむッチファヌムりェアを停造する機胜ず、ブヌトロヌダヌぞの倉曎を固定する機胜を瀺したした。





芁するに、玠晎らしい。



正しい、ファヌムりェアのセキュリティモデルの実際の䟋は、次の蚘事で怜蚎したす。



All Articles