Fortinet

Fortinet VPN サーバーのロギングメカニズムにおける設計上の欠陥を利用することで、ブルートフォース攻撃中に認証情報の確認に成功したことを、漏洩したログインを防御する側に密告することなく隠蔽することができます。

ブルートフォース攻撃はまだ目に見えますが、新しい技術により、失敗した試行のみをログに記録し、成功した試行は記録しないようにすることで、偽のセキュリティ感覚を作り出すことができます。

VPN 資格情報の検証

FortiClient VPN サーバは、認証段階と承認段階の 2 段階のプロセスを使用してログイン情報を保存します。

自動化されたセキュリティ検証ソリューションを提供するPentera社の研究者は、認証と認可の両方の段階を通過した場合のみログインが成功したことが記録され、それ以外の場合はFortiClient VPNが認証に失敗したことが記録されることを発見しました。

「このため、スクリプトまたはVPNクライアントによる完全なログインは、ログを作成することになります」と、Penteraのセキュリティ研究者であるPeter Viernikは述べている。

本日発表されたレポートの中で、サイバーセキュリティ企業は、研究者が認証段階の後に完全なログインプロセスを停止する方法を考案し、成功したログを記録することなくVPN認証情報を検証できるようにしたことを説明している。

研究者は、クライアントとVPNサーバ間の相互作用を記録するためにBurpアプリケーションセキュリティテストツールを使用した.

彼らは、最初の HTTPS リクエストに対するレスポンスが、有効な認証情報(”ret=1 “値を通して)、認証失敗(”ret=0″)、または複数回連続して失敗した場合の “An error occurred “レスポンスを示すことに気付きました。

FortiClient VPN server returning value for valid credentials in authentication stage
認証段階で有効な資格情報の値を返す FortiClient VPN サーバー
出典:Pentera:Pentera

より簡単に言えば、認証は資格情報が有効であることを確認し、認可は VPN セッションを確立するだけです。

しかし、認証段階でプロセスが停止すると、VPN サーバーは失敗した試行だけを記録し、成功した試行は記録しない。

「認証段階で認証に成功した試行をログに記録できないことは、重大なセキュリティ・リスクとなる。攻撃者はこの脆弱性を悪用し、成功した試行を検知することなくブルートフォース攻撃を行う可能性がある。

この方法で発生する問題は、インシデント対応チームが、このような攻撃におけるブルートフォースの試みが成功したかどうかを判断できず、失敗したプロセスのログしか見ることができないということだ。

認証の試行が失敗しても、フォーティネットの管理者はデバイスがブルートフォース攻撃を受けていることを知ることができ、試行をブロックできる可能性があります。

しかし、攻撃者が認証情報の確認に成功したことはわかりません。これらの認証情報は、管理者が悪意のあるアクティビティに気づかなくなった時点で、他の脅威アクターに販売されたり、後日ネットワーク侵入に使用されたりする可能性があります。

なお、脅威アクターが正しいログインセットを決定して攻撃に使用したとしても、認証プロセスが完了するのは、FortiClient VPNがデバイスのセキュリティコンプライアンスとユーザのアクセスレベルを検証する2つのAPIコールを送信した後であることは注目に値します。

FortiClient VPN checks device compliance and user access level
FortiClient VPN はデバイスのコンプライアンスとユーザのアクセスレベルをチェックする
Source:Pentera

このチェックによって攻撃は大幅に複雑化するが、十分なリソースを持つ攻撃者であれば、Pentera 社の方法を使用して組織のネットワークに侵入することは可能だ。

Pentera社によると、Fortinet社とこの調査を共有し、同社はこの問題を脆弱性とは考えていないと回答したという。特に複雑な修正ではないため、フォーティネットがこの問題に対処するかどうかは不明だ。

本日の情報公開の一環として、Penteraはこの設計上の欠陥を悪用してフォーティネットのVPN認証情報を検証するスクリプトを公開した。

昨日、フォーティネットにこの問題に関するコメントを求めたが、発表時間までに声明は得られなかった。