更新されたlibssh
ネットワーク ボックス メーカー F5 は、認証バイパス バグに対して潜在的に脆弱なファイアウォール ギアを出荷しました。
つまり、ネットワークまたはインターネット経由で危険にさらされているシステムにアクセスできる人なら誰でも、構成に応じて、丁寧に尋ねるだけでバックエンド インフラストラクチャにトンネルを通過できることになります。
この脆弱性は、一般的に、攻撃者がサーバーを騙して有効な認証情報なしでアクセスを許可してしまうことを可能にします。サーバーがメッセージを待っているときにSSH2_MSG_USERAUTH_REQUEST
ハッカーが送信するとSSH2_MSG_USERAUTH_SUCCESS
、サーバーはそれをそのまま受け入れ、それ以上の質問は一切なく、攻撃者がログインできるようにします。
このプログラミングの失敗は、一見するとあまりにも単純なため、業界では大爆笑の嵐でした。しかし、Amazon Web ServiceのColm MacCárthaigh氏がTwitterで指摘したように、「ステートマシンは難しい!」
ファームウェアやソフトウェアにこの脆弱性を使用している機器メーカーはlibssh
、自社製品をレビューし、脆弱性のあるライブラリを使用している機器を特定し、必要に応じてパッチを配布する必要がありました。この脆弱性はOpenSSHには影響しないため、sshd
機器でClassicを使用している場合は影響を受けません。
パッチ火曜日は大変だと思った?それなら、このOracleのメガアドバイザリをチェックしてみて。
続きを読む
F5 は自社のポートフォリオを徹底的に調査し、その調査の終了を発表する中で、Big-IP Advanced Firewall Manager 製品群のうち、脆弱性があるのは少数の製品のみであると述べた。
木曜日のアドバイザリによると、 Big-IP AFMの12.x、13.x、14.xブランチはすべて、脆弱性のあるlibssh
SSHプロキシを使用しているため、鍵認証に依存している場合は悪意のあるアクセスの危険にさらされています。つまり、ハッカーは脆弱なSSHプロキシをすり抜けてバックエンドシステムに到達する可能性があります。
「この問題はコントロールプレーンには影響しません。仮想サーバー上でBIG-IP AFMデータプレーンのSSHプロキシ機能を使用する場合にのみ影響します」と同社は警告している。「libsshのバージョン0.7.6および0.8.4より前のバージョンでは、サーバー側のステートマシンに脆弱性が見つかりました。悪意のあるクライアントが認証を行わずにチャネルを作成し、不正アクセスを引き起こす可能性があります。」
メーカーはまだ修正プログラムをリリースする時間がありませんでしたが、現時点では管理者がAFM SSHプロキシの公開鍵認証をブロックし、代わりに「パスワードとキーボードによる対話型認証」を使用するようにユーザーを戻すことができると述べています。このパスワードベースのログインは脆弱性のないOpenSSHを使用しているため、この方法ではバグは発生しないようです。
ステートマシンは難しい
の話題に関連してlibssh
、MacCárthaigh 氏のスレッド全体 (ここから始まる) は、Amazon のクラウド大企業が同様の問題をいかに回避しているかをわかりやすくまとめた興味深い記事です。
問題は、プログラマーがメッセージ処理ステートマシン コードをスパゲッティ化してしまう傾向があり、論理上の欠陥を見つけるのが難しくなることです。
MacCárthaig氏は、上記のようなミスを見つけるには、libssh
単なるコードレビュー以上のものが必要だと述べています。「コードレビューでは、メッセージを解析するコードと次の状態に進むコードを混在させるという典型的なアプローチのため、こうしたミスを見つけるのは困難です。例えば、最初の「Hello」メッセージを処理するパーサーがあるとします。パーサーが実行される前、おそらく「これはHelloメッセージだ。このパーサーを呼び出してくれ!」といったコードが実行されるでしょう。そして最終的に、パーサーは一連の分岐を持ち、基本的に「もしこのモードでXが有効になっているなら、次はここへ、そうでなければ次はあそこへ」といった処理を実行することになります。」
AWS Labs には独自の TLS/SSL 実装である s2n があり、このコード行で、メッセージが混乱を招く分岐をトリガーするのを回避する方法を確認できます。
AWS からの今日のコーディングのヒント: ステートマシンを表にまとめる... クリックして拡大
関数ポインタのテーブルにすべてを格納することで(MacCárthaigh 氏はこの設計を AWS の Doug Lawrence 氏と Signal の Trevor Perrin 氏に帰しています)、ステートマシンの「考えられるすべての有効な順序を完全に線形化」することができ、s2n は「順序が間違っているメッセージはすべてを停止する」ように記述されています。®
追加更新
この記事の公開後、F5はアドバイザリを更新し、SSHプロキシと鍵認証を備えたBIG-IP AFM(Advanced Firewall Manager)仮想サーバーに適用されることを改めて強調しました。重要なポイントは以下のとおりです。