Search ConsoleでのSharedArrayBufferの警告:新しいクロスオリジン分離セキュリティポリシーの明確化

会社の秘密を盗もうとするハッカーと戦うため、Webに面したページは情報セキュリティの戦いの場です。最近のWebページは、多くの場合、複数のオリジン(ドメイン)からのリソースを活用します。これはしばしば脆弱性につながります。新機能に影響を与えるセキュリティ上の懸念を取り巻く圧力が高まるにつれ、ウェブマスターは、情報漏えいを防ぐのに役立つ「クロスオリジン」リソースを処理するためのディレクティブを含む、ブラウザメーカーからのオプションのリストを増やしています。

セキュリティ対策

すでにrel="noopener"に精通しているかもしれません。これは、ページのハイパーテキストリンクと、新しいブラウザタブで別のサイトを開くリンクなど、アウトバウンドアクションを持つフォーム要素が外部からのJavascriptアクセスを許可しないようにする方法です。 Window.openerプロパティを介して内部ページにページします。新しいタブを開くリンクをクリックすることを想像してみてください。新しいタブを閉じると、元のページが密かにフィッシングルアーのあるページに切り替わりました。 openerプロパティを使用すると、攻撃者は元のタブのURLを変更できます。

あなたは考えているかもしれません:「私はそれをするページに決してリンクしません!」ここSELでは、常に多くのページにリンクしており、ソースコードをチェックする余裕がありません。 rel="noopener"を使用するので、使用する必要はありません。ブラウザメーカーは高度なセキュリティオプションを提供しているので、まさにそのような攻撃にさらされるのを防ぐために、あらゆる方法で物事をロックすることができます。

Cross-Origin-Resource-Sharing( CORS )http 応答ヘッダーへの参照を見たことがあるかもしれません。 Webサーバーを制御できない場合、これを管理することは技術的に困難です。 CORS( Access-Control-Allow-* )値は、リストとして指定したドメインのセットのみへのアクセスを制限します。ページに分析、広告、およびその他のサードパーティのスクリプトリソースが含まれている場合、許可リストに特に含まれていないもの(CORSを使用している場合)はブロックされ、ブラウザコンソールのエラーメッセージが表示されて通知されます。

スペクターメルトダウン

物事が熱くなりすぎる場合は、ブラウザメーカーが機能を完全にオフにする方が安全です。これは、 SharedArrayBuffersがデビューから6か月後にデフォルトで無効にされ、ソリューションが準備され、最近コンセンサスによって合意されるまで、数年前に起こったこととまったく同じです。問題は、共有メモリにアクセスする「サイドチャネル」の脆弱性を示す概念実証の投稿が公開されたことでした。これは、URLの切り替えよりも深刻な問題です。

一言で言えば、 Spectreのおかげでタイミングの欠陥に対して脆弱なCPUは、SharedArrayBuffersがデータを格納するメモリキャッシュへのアクセスを許可します。タイミングの欠陥により、マルウェアが作成したページがメモリや他のすべてのページにアクセスするために競争する可能性があります。これらのページは、リンクをたどって開いたページだけでなく、ブラウザで開いたページにもアクセスできます。

売り上げアップするならホームページ制作で長崎市

アカウントの詳細が表示された個人の銀行ページを固定することを想像してみてください。次に、残念ながらエクスプロイトが含まれているページを個別に閲覧します。攻撃者は、バンキングページに含まれるすべてのものとその他のページを取得できます。この種の攻撃から漏洩する情報は、機密性の高い個人情報を構成する可能性があり、個人情報の盗難にさらされる可能性があり、政府システムを含む組織に対する標的型攻撃を可能にする可能性があります。

SharedArrayBuffersの戻り

GoogleのAndroidChrome88とデスクトップChrome91、およびFirefox 79以降はすべて、新しいセキュリティポリシーによってプライベートメモリへのアクセスによる危険を軽減できるようになった後、 SharedArrayBuffers再び実装するSharedArrayBuffersなりました。特に「許可」リストにないリソースはブロックされます。この機能はデフォルトでオフになっていたため、再びオンになったため、この機能を使用したJavaScript APIは、事前にサイレントに失敗したときにブロッキングアクションをトリガーし始めています。

たとえば、 WebGLRenderingContextは、ブラックアウト期間中にサイレントに失敗したSharedArrayBuffersを実装します。これに対応するためのセキュリティ設定は十分に新しいものであり、聞いたことのある開発者はほとんどいません。グーグルでブロックアクションの報告が山積みになっているので、グーグル検索コンソールに突然の通知が表示されると、私たちは不意を突かれる可能性があります。

新しいセキュリティポリシーの実装

CORSポリシーを確立するための作業に着手するのにこれほど良い時期はありませんでした。セキュリティポリシーが設定されていないと、サードパーティのリソースがすでに十分な大混乱を引き起こしており、秘密が漏洩する可能性は言うまでもありません。利用する予定のサードパーティのリソースのみをページにリストしてください。リスクを制限するために、すべてのリソースを常に「デフォルトで不信」にする必要があります。次に、回避できる限り少ないドメインを意図的にホワイトリストに登録します。

独自のWebサーバーを管理していない場合、一部のコンテンツ配信ネットワーク(CDN)は、応答ヘッダーをオンザフライで変更する機能を提供します。いずれにせよ、フィールド名と値を1行に1つのディレクティブで追加するだけです。 SEO担当者は、サイトレビューレポートによって駆動されるダイアログを使用して、サードパーティのリソースの包含に疑問を投げかけることができます。これにより、ホストでWebサーバーを管理する人のための洗練されたリストを作成できます。

クロスオリジン分離

SharedArrayBuffers実装には、1つ以上の応答ヘッダーディレクティブを使用してアクセスをロックダウンするセキュリティ環境が必要です。求められる特定のポリシーは、クロスオリジン分離と呼ばれます。 Cross-Origin Isolationを構成するには、COOPとCOEPの2つの新しいページヘッダー(以下に示す)を追加します。これらは、1つ以上の他のセキュリティヘッダー、つまりCORSまたはCORPと連携して機能し、個別にまたは組み合わせてホワイトを提供します。 -リストされたクロスオリジンドメイン。

 Cross-Origin-Opener-Policy : same-origin
Cross-Origin-Embedder-Policy : require-corp

OpenerポリシーにOpenerか? same-origin値は、あるページが別のページのWindow.openerプロパティにアクセスするために、同一のドメインを必要とします。 http応答ヘッダーポリシーがWindow.openerへの外部アクセスをブロックするため、 rel="noopener"なしで外部の「tab-opening」 _blankターゲットリンクを安全に書き込むことができます。

デバッグのためのレポートの使用

統計を収集するには、Chrome レポートAPIを使用して、これらのセキュリティポリシーに対して実行されるアクションを実行できます。これはGoogleが使用しているものと同じです。あなたがGoogleSearch Consoleユーザーである場合のように、あなたのウェブページによって引き起こされたかなりの数のブロッキングイベントが積み重なると、Googleはあなたに通知するかもしれません。さらに、Chrome固有のReport-Toページヘッダーフィールドを使用して、データを独自のリポジトリに個別に送信できます。

ただし、開発中に実験的なWindowWorkerGlobalScopeAPIのcrossOriginIsolatedプロパティのブール状態を確認する方がはるかに簡単です。そうすれば、開発ワークフロー内から直接これらの問題を処理できます。

 if(crossOriginIsolated) { // Post SharedArrayBuffer console.log("CrossOriginIsolation: true") } else { // Do something else console.log("CrossOriginIsolation: false") }

なぜ私たちが気にするのか

失敗したセキュリティポリシーがすでにLighthouse、Search Consoleで警告をトリガーし、ブラウザコンソールでエラーメッセージが表示されることを考えると、何をすべきかについてアドバイスを提供するために詳細を理解する必要があります。私たち自身がWeb開発に携わっているときは、作業の一環として修正の実装をガイドまたは実施できるように、特定の情報を準備しておく必要があります。

さらなる技術情報の詳細については、 SMXのSEO for Developers Workshopをチェックしてください。これは、検索エンジン最適化の実践者に固有の問題について話し合うためのプラットフォームを提供することを目的としています。ライブコードワークショップ環境では、SEOに精通したWeb開発者がこのような状況で何をするかを示します。 SharedArrayBuffersCookieポリシーの変更、およびSharedArrayBuffersする可能性のあるその他の多くの問題からも明らかなように、情報セキュリティは重要な役割を果たします。


著者について

Detlef Johnsonは、検索エンジンランドとSMXの開発者エキスパート向けのSEOです。彼はまた、SMXイベントのプログラミングチームのメンバーであり、 検索エンジンランドで開発者向けSEOシリーズを執筆しています。 Detlefは、20年以上前にプロのSEO分野を確立した先駆的なウェブマスターの最初のグループの1つです。それ以来、彼は主要な検索エンジンテクノロジープロバイダーで働き、シカゴトリビューンのプログラミングおよびマーケティングチームを管理し、フォーチュン500企業を含む多数の企業のコンサルティングを行ってきました。 Detlefは現在、インターネットマーケティング忍者の忍者として働いており、テクニカルSEOについての深い理解と、会社のレポートや特別サービスへのWebプログラミングへの情熱を提供しています。