アプリバウンド暗号化では、特権サービスを利用して要求元アプリケーションの身元を確認します。アプリバウンド暗号化サービスは、暗号化する際にアプリの ID をエンコードして暗号データに埋め込み、復号化が試行されたときにその有効性を確認します。システムに存在する別のアプリが同じデータを復号化しようとすると、失敗します。
アプリバウンド サービスはシステム権限で実行されます。そのため攻撃者には、単にユーザーを誘導して悪意のあるアプリを実行させる以上のことが必要になります。つまり、マルウェアはシステム権限を取得するか、Chrome にコードを挿入しなければならなくなります。これは、正規のソフトウェアが行うべきことではありません。そのため、動作の疑わしさが高まり、ウイルス対策ソフトウェアによって検出される可能性が高くなります。この保護とともに、Cookie 復号化のイベントログ を提供するといった最近の取り組みも合わせて動作します。その目的は、ユーザーのデータを盗もうとする攻撃者のコストと検出リスクを高めることにあります。
企業での考慮事項
マルウェアは、昇格して実行することでこの保護をバイパスできます。そのため、エンタープライズ環境でダウンロードしたファイルを管理者として実行できないようにすることが特に効果的です。このような環境では、マルウェアが単純に昇格した権限を要求することはできなくなるので、インジェクションなどの技術を使わざるを得なくなります。このような操作は、エンドポイント エージェントでかなり容易に検出できます。
アプリバウンド暗号化では、暗号化鍵がマシンに強くバインドされるため、Chrome のプロファイルが複数のマシンをローミングする環境では正しく動作しません。ローミング プロファイルをサポートしたい企業には、現在のベスト プラクティス に従うことをお勧めします。必要な場合は、新しい ApplicationBoundEncryptionEnabled ポリシーを使ってアプリバウンド暗号化を構成できます。
互換性のない状況の検出に役立つように、Chrome は検証に失敗した際にイベントを発行します。イベントは、アプリケーション ログの「Chrome」ソースの ID 257 です。
まとめ
アプリバウンド暗号化により、攻撃者のデータ盗難コストは増加し、システムでの動作ははるかに目立ちやすくなります。また、システムの他のアプリに許容される動作について、防御側が明確な線引きを行うことができます。マルウェアの状況は継続的に進化します。それに合わせて、セキュリティ コミュニティの他のメンバーと協力しながら、検出の改善、強力なアプリ分離プリミティブといったオペレーティング システムの保護の強化など、バイパス対策の取り組みを続けていきたいと考えています。
Posted by
Eiji Kitamura - Developer Relations Team
この記事は Will Harris による Google Security Blog の記事 "Improving the security of Chrome cookies on Windows " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 Cookie を盗む情報窃取 マルウェアを使うサイバー犯罪者は、ユーザーの安全とセキュリティにリスクをもたらし続けています。この分野では、すでに多くの取り組みが実施されています。たとえば、セーフ ブラウジングによる Chrome のダウンロード保護 、デバイス バウンド セッション認証情報 、盗まれた Cookie が使われたことを検知する Google のアカウントベースの脅威検出などです。この度、新たな保護レイヤーについてお知らせします。これにより、この種のマルウェアから Windows ユーザーを保護する際の安全性が向上します。
Chrome は現在、秘密情報を保存する必要がある他のソフトウェアと同じように、OS が利用できる技術を使用して Cookie やパスワードといった機密データを保護しています。macOS ではキーチェーン サービス という技術を、Linux では kwallet や gnome-libsecret などのシステムが提供するウォレットを使っています。Windows の Chrome は、システムの他のユーザーやコールドブート攻撃から保存データを保護するために、データ保護 API(DPAPI)を使っています。しかし、悪意のあるアプリケーションがログイン中のユーザーとしてコードを実行できる場合、DPAPI では保護できません。
Chrome 127 で、DPAPI を改善する新しい保護機能を Windows に導入します。これは、アプリケーション バウンド(アプリバウンド) 暗号化プリミティブを提供することによって実現します。Chrome は、ログイン中のユーザーとして実行されるアプリがこのデータにアクセスできるようにするのではなく、アプリの ID に紐付けてデータを暗号化できるようにします。これは、macOS のキーチェーンの動作と同様です。
今後、各種シークレットをこの新しいシステムに移行する予定ですが、Chrome 127 では、まず Cookie の移行を行います。今後のリリースでは、この保護をパスワードや支払いデータ、その他の永続的な認証トークンに拡大し、情報窃取マルウェアに対するユーザー保護をさらに強化する予定です。
動作の仕組み
アプリバウンド暗号化では、特権サービスを利用して要求元アプリケーションの身元を確認します。アプリバウンド暗号化サービスは、暗号化する際にアプリの ID をエンコードして暗号データに埋め込み、復号化が試行されたときにその有効性を確認します。システムに存在する別のアプリが同じデータを復号化しようとすると、失敗します。
アプリバウンド サービスはシステム権限で実行されます。そのため攻撃者には、単にユーザーを誘導して悪意のあるアプリを実行させる以上のことが必要になります。つまり、マルウェアはシステム権限を取得するか、Chrome にコードを挿入しなければならなくなります。これは、正規のソフトウェアが行うべきことではありません。そのため、動作の疑わしさが高まり、ウイルス対策ソフトウェアによって検出される可能性が高くなります。この保護とともに、Cookie 復号化のイベントログ を提供するといった最近の取り組みも合わせて動作します。その目的は、ユーザーのデータを盗もうとする攻撃者のコストと検出リスクを高めることにあります。
企業での考慮事項
マルウェアは、昇格して実行することでこの保護をバイパスできます。そのため、エンタープライズ環境でダウンロードしたファイルを管理者として実行できないようにすることが特に効果的です。このような環境では、マルウェアが単純に昇格した権限を要求することはできなくなるので、インジェクションなどの技術を使わざるを得なくなります。このような操作は、エンドポイント エージェントでかなり容易に検出できます。
アプリバウンド暗号化では、暗号化鍵がマシンに強くバインドされるため、Chrome のプロファイルが複数のマシンをローミングする環境では正しく動作しません。ローミング プロファイルをサポートしたい企業には、現在のベスト プラクティス に従うことをお勧めします。必要な場合は、新しい ApplicationBoundEncryptionEnabled ポリシーを使ってアプリバウンド暗号化を構成できます。
互換性のない状況の検出に役立つように、Chrome は検証に失敗した際にイベントを発行します。イベントは、アプリケーション ログの「Chrome」ソースの ID 257 です。
まとめ
アプリバウンド暗号化により、攻撃者のデータ盗難コストは増加し、システムでの動作ははるかに目立ちやすくなります。また、システムの他のアプリに許容される動作について、防御側が明確な線引きを行うことができます。マルウェアの状況は継続的に進化します。それに合わせて、セキュリティ コミュニティの他のメンバーと協力しながら、検出の改善、強力なアプリ分離プリミティブといったオペレーティング システムの保護の強化など、バイパス対策の取り組みを続けていきたいと考えています。
Posted by
Eiji Kitamura - Developer Relations Team