web-dev-qa-db-ja.com

ユーザーデスクトップ(Superfishな​​ど)にSSLインターセプトプロキシを展開するソフトウェアベンダーがもたらすセキュリティリスク

レノボがインストールされているマシンからのSSLトラフィックを傍受する機能を持つアドウェア(スーパーフィッシュ)をプレインストールしているという最近の発見に関連して、かなりの 懸念事項 がありました。

OEMまたは他の企業がこの種のソフトウェアを顧客のシステムにインストールすることのセキュリティリスクは何ですか?

58
Rory McCune

プロキシSSL証明書があると、プライバシーとセキュリティにいくつかの影響が生じます。

  • Superfishは任意のサイトになりすますことができます

    これは、Superfishがそれを実行する(または実行している)ことを意味するのではありませんが、彼らには力があります。彼らはCertification Authority Certificateを持っているので、それらが生成する証明書はすべて有効で受け入れられます。

    証明書のピン留め 保護しません 、次のいずれか:

    「ローカルの短命な証明書を使用してHTTPS接続が傍受される場合がいくつかあります。これらの証明書は、クライアントに手動でインストールする必要があるルート証明書によって署名されています。企業のMITMプロキシがこれを行う場合があり、いくつかのアンチウイルス/親コントロール製品がこれを行い、Fiddlerのようなデバッグツールもこれを行うことができます。これらの状況では中断できないため、ユーザーがインストールしたルートCAにはピンを上書きする権限が与えられます。互換性の問題が発生するとは考えていません。」

    WindowsとEMETを使用している場合、事前に設定すれば Certificate Trust で保護できます。しかし、プロセスは手動であり、やや複雑です。

  • Superfishはトラフィックを傍受できます

    信頼できるCAとして、Superfishは任意のサイトで MiTM攻撃 を実行でき、平均的なユーザーは攻撃を検出しません。詳しい知識のあるユーザーは、どこを見ればよいのかわかっていれば、その証明書が奇妙なCAによって署名されていることを確認できます。

  • Superfishはどこにでもコードを挿入できます

    サイトがSSL/TLSで保護されている場合でも、SuperfishはすべてのページにJavaScriptまたはHTMLを挿入できます。リクエストをプロキシし、目的のサーバーにリクエストを送信し、レスポンスを読み取り、データを挿入し、ユーザーにデータを送信します。そして、あなたがそれを探していない限り、あなたは決して気付かないでしょう。

  • Superfishはマルウェアのインストールに使用できます

    上記のように、SuperfishはWindowsアップデートにコードを追加したり、ダウンロード中の実行可能ファイルを変更したり、Javaアプレット、Flashファイルなどに感染したりできます。ダウンロードはサイレントに侵害される可能性があります。Originサイトを変更したり、変更されたチェックサムをその上に置くので、ファイルをダウンロードした後にハッシュを計算しても、それらは合法に見えるでしょう。

  • Superfishは、アクセスするすべてのサイトを知ることができます

    ソフトウェアはブラウザを監視し、Superfishにデータを送信します。ソフトウェアがなくても、すべてのサイトにコードを挿入し、どこにいても追跡できます。

  • Web上の誰でも証明書を使用できます

    証明書の秘密鍵 危険にさらされています なので、鍵を知っている人なら誰でもSuperfish証明書を使用して、必要なものすべてに対して有効なSSL証明書を作成できます。

できると言っても、できるだけを意味または暗示するわけではありません彼らが望むなら(または強制されているなら)彼らがする力を持っていること。

65
ThoriumBR

ここでは、この特定のソフトウェアを使用してあなたがさらされるいくつかのリスクがあります:

  • インストールごとに同じ秘密鍵を使用します。関連付けられているのはルートCAであり、プライベート信頼リストに挿入されるため、だれでも証明書を生成し、影響を受けるクライアントに信頼させることは簡単です(この場合、サーバー証明書のピン留めでも役に立ちません)。
  • すべてのデータはソフトウェアによって検査されます。通常はSSL暗号化によって保護されているはずのデータの一部がソフトウェアベンダーに送信され、そこで分析されている可能性が非常に高くなります。このベンダーが完全に正直であったとしても(製品の性質と配布方法を考えると、それはすでにいくらか疑わしいものです)、データが彼らの側で発生する違反に対して脆弱になります。
  • すべてのソフトウェアと同様に、バグが発生します。これを使用すると、システムの攻撃面が増加します。
12
Stephane

二次的な問題として、このタイプのソフトウェアは、データが暗号化された方法の本質を隠します。ソフトウェアは既知の証明書を独自の証明書で置き換えるため、ユーザーは元の証明書についてあまり知りません。ソフトウェアはそれをユーザーにどのように伝えますか?元の証明書が古かったり、一致しなかったりした場合、どのようにしてユーザーに送信されますか?サイトが通常は1つのCAによって署名されているが、別のCAに変更されている場合、どのようにして知ることができますか?第二に、ユーザーインターフェイスは、データが転送中に保護された方法を公開します。ユーザーインターフェースには、ローカルプロキシからユーザーへの暗号化のレベルのみが表示されるため、元の接続が安全でない(SSL2、null証明書など)ことを示す方法はありません。

8
user219861

Superfishの別の主要な更新に基づく: Komodiaクライアント側のSSL検証が壊れています!

OEMまたはKomodiaのようなサードパーティによって開発されたSSLインターセプトプロキシ(または社内の暗号化ソフトウェア)の主な問題は、本当に信頼できないことです(特にSuperfishの話題の後)! この新しい更新のTLDR:攻撃者は、被害者に対するMitM攻撃のルートキーを抽出する必要すらありません。 Komodiaの無効/信頼できない/自己署名証明書の処理方法には欠陥があるため、SSL証明書検証プロセスをバイパスするのは非常に簡単です(証明書に代替名を設定することにより)。詳細については、上記のリンクされた投稿を確認してください

教訓:暗号化ソフトウェア(代行受信プロキシを含む)の実装は簡単な作業ではありません。適切な設計分析(複数の暗号化の専門家による)、厳密なテストおよび評価は、本番環境で使用する前に、そのようなソフトウェアで実行する必要があります。 素晴らしい答え から質問への引用なぜ私たちは自分自身を転がすべきではないのですか?

自分でロールバックすることもできますが、セキュリティ/暗号化の専門家でない場合や、複数の専門家によってスキームを分析されている場合は、重大なセキュリティミスを犯す可能性があります。私は、すべての人が見て分析するために公開されている、オープンソースの公に知られている暗号化スキームに賭けても構わないと思っています。目が多いほど、現在のバージョンに専門家以外の人が自社で開発したものよりも大きな脆弱性がない可能性が低くなります。

2
Rahil Arora