3 年前、 によってウェブのセキュリティ境界についての考え方が変わりました。ウェブブラウザはアプリケーション間のデータ漏洩を防げるという保証が によって損なわれたことは、すぐに明らかになりました。その結果、ウェブブラウザ ベンダーが協力し合い、継続的にプラットフォームの堅牢化に取り組んでいます。しかし、この種の攻撃は依然として懸念され続けており、ウェブ デベロッパーが を導入することも求められています。 この投稿では、ウェブユーザーに対する Spectre の悪用に関して、Google セキュリティ チームが行った調査の結果を共有します。また、JavaScript で書かれた高速で柔軟な概念実証(PoC)も提示し、ブラウザのメモリから情報が漏洩することを示します。この概念実証やそのバリアントは、さまざまなオペレーティング システム、プロセッサ アーキテクチャ、ハードウェア世代で動作することを確認しています ...
この記事は情報セキュリティ エンジニア、Stephen Röttger、Artur Janc による Google Online Security Blog の記事 "A Spectre proof-of-concept for a Spectre-proof web" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

3 年前、Spectre によってウェブのセキュリティ境界についての考え方が変わりました。ウェブブラウザはアプリケーション間のデータ漏洩を防げるという保証が最新プロセッサの欠陥によって損なわれたことは、すぐに明らかになりました。その結果、ウェブブラウザ ベンダーが協力し合い、継続的にプラットフォームの堅牢化に取り組んでいます。しかし、この種の攻撃は依然として懸念され続けており、ウェブ デベロッパーがアプリケーション レベルの対策を導入することも求められています。

この投稿では、ウェブユーザーに対する Spectre の悪用に関して、Google セキュリティ チームが行った調査の結果を共有します。また、JavaScript で書かれた高速で柔軟な概念実証(PoC)も提示し、ブラウザのメモリから情報が漏洩することを示します。この概念実証やそのバリアントは、さまざまなオペレーティング システム、プロセッサ アーキテクチャ、ハードウェア世代で動作することを確認しています。

この発見をセキュリティ コミュニティと共有する目的は、ウェブ アプリケーションの所有者に、Spectre による脆弱性がユーザーのデータのセキュリティに与える可能性がある影響について深く理解してもらうためです。さらに、Google 全体の経験に基づき、ウェブ制作者が利用できる対策やウェブ アプリケーションで実現できるベスト プラクティスについても説明します。

簡単な背景

Spectre の脆弱性は、2018 年 1 月に一般に公表されました。プロセッサ(CPU)の設計上の脆弱性の一種を攻撃者が利用して、CPU が後続の命令を投機的に実行する際に、プログラムで意図された制御フローを変えることができます。たとえば、CPU が長さチェックに合格すると推測しても、実際には境界外のメモリにアクセスすることになります。CPU の状態は推測ミスが明らかになるとロールバックされますが、この動作による副作用は管理できるため、攻撃者にデータが漏洩する可能性があります。

2019 年、Chrome の JavaScript エンジンである V8 の担当チームは、ブログ投稿ホワイトペーパーを公開し、ソフトウェア レベルではこのような攻撃に確実に対策することはできないという結論を出しました。この問題に対する確実なソリューションとしては、ウェブブラウザなどのアプリケーションに、プロセスベースの分離のような低レベル プリミティブに合わせたセキュリティ境界が必要になります。

これと並行して、ブラウザのベンダーや標準化団体は、この種の攻撃からウェブユーザーを守るためのセキュリティ メカニズムを開発しました。これには、一部のブラウザ構成で実現できるデフォルトの保護を提供するためのアーキテクチャの変更(Site Isolation(サイト分離)out-of-process iframes = OOPIF(プロセス外 iframe)Cross-Origin Read Blocking = CORB(クロスオリジン読み取りブロック)など)と、ウェブ デベロッパーがアプリケーションに広く適用できるオプトイン セキュリティ機能(Cross-Origin Resource PolicyCross-Origin Opener PolicyCross-Origin Embedder Policy など)の両方が含まれています。

これらのメカニズムは非常に重要ですが、これで Spectre の悪用を防ぐことはできません。むしろ、攻撃者が読み取ることができるメモリに機密データが含まれないようにするための措置です。そのため、この対策の確実性を評価するには、セキュリティ エンジニアがアプリケーションに対する投機的実行攻撃の実際の影響について理解する際に役立つ、セキュリティ ツールを開発することが重要になります。

ウェブブラウザを利用した Spectre のデモ

今日は、実際に Spectre が JavaScript エンジンを侵害することを確認できる概念実証(PoC)コードを共有します。攻撃のデモには Google Chrome を使いますが、これは Chrome に固有の問題ではなく、他のモダンブラウザも同様にこの脆弱性の影響を受けるものと考えられます。攻撃のインタラクティブなデモを開発し、https://leaky.page/ で公開しました。コードと詳しい説明は、こちらの Github をご覧ください。




Intel Skylake CPU で Chrome 88 を実行している場合、デモのウェブサイトでは 1 kB/ 秒のスピードでデータが漏洩する可能性があります。なお、このコードはわずかに変更するだけで他のバージョンの CPU やブラウザにも適用できると考えられます。ただし、Google のテストでは、大きな変更を加えなくても、この攻撃を Apple M1 ARM CPU などの他のいくつかのプロセッサで成功させることができました。

実験にあたり、異なる特性を持つ他の PoC も作成しました。いくつかの例を示します。
  • performance.now() を 5 マイクロ秒の精度のタイマーとして使うことで、安定性と引き替えに 8 kB/ 秒でデータを漏洩する PoC
  • 1 ミリ秒またはそれより粗い精度のタイマーを使うことで、60 B/ 秒でデータを漏洩する PoC

現在の PoC を公開することにしたのは、セットアップ時間が無視できる程度であり、SharedArrayBuffer のような高精度なタイマーがなくても動作するからです。

PoC の主な構成要素は、以下のとおりです。
  1. Spectre ガジェット : 攻撃者が制御する一時的実行を呼び出すコード
  2. サイドチャネル : 一時的実行の副作用を管理する方法

1. ガジェット

公開した PoC では、単純なバリアント 1 のガジェットを実装しました。コンパイラが挿入した長さチェックが成功することを予測する分岐予測のトレーニング後に、JavaScript 配列の境界外への投機的なアクセスが発生します。このガジェットではソフトウェア レベルの対策を取れますが、Chrome の V8 チームは、他のガジェットではそうはいかないと結論づけています。「一部の Spectre のバリアント、とりわけバリアント 4 に対しては、ソフトウェアで効果的に対策するのは不可能であるとわかりました」と述べています。

セキュリティ コミュニティの皆さんには、さらに調査をし、他の Spectre ガジェットを利用したコードを作成することをお勧めします。

2. サイドチャネル

投機的実行によって秘密データが漏洩する場合、キャッシュ サイドチャネルが使われるのが一般的です。メモリ内の特定の場所がキャッシュに存在するかどうかを管理すると、投機的実行によるメモリへのアクセスがあったかどうかを推測できます。JavaScript で難しいのは、キャッシュ アクセスとメモリ アクセスを判別できるほどの高精度タイマーを見つけることです。モダンブラウザは、タイミング攻撃を防ぐため、クロスオリジン分離が行われていない状況で performance.now() API のタイマーの精度を粗くし、SharedArrayBuffer を利用できないようにしています。

V8 チームは、2018 年時点ですでに、タイマーの精度を粗くすることは Spectre の対策としては不十分であると報告しています。攻撃者はタイミングの差を自由に増幅できるからです。ただし、そこで述べられている増幅テクニックは、秘密データを複数回読み取る方法に基づいているので、情報の漏洩が確率的なものである場合は、攻撃の効率を低下することができます。

今回の PoC では、新たなテクニックを使ってこの制限を回避しました。最近の CPU でよく使われる Tree-PLRU キャッシュ エビクション戦略の動作を悪用すれば、秘密データを 1 回読み取ることで、キャッシュのタイミングを大きく増幅することができます。これにより、低精度タイマーでも、効率よくデータを漏洩することができました。このテクニックの詳細については、https://leaky.page/plru.html のデモをご覧ください。

この PoC は、大きく改変しない限り、悪用目的で再利用できるとは考えられません。しかし、Spectre のリスクを示す上では、説得力のあるデモとなります。特に、このリスクを考慮してセキュリティ評価をする必要があるウェブ アプリケーション デベロッパーにとっての明らかなシグナルとなり、サイトを保護する積極的なアクションにつながることを期待しています。

ウェブにおける Spectre 対策の導入

投機的実行による脆弱性は本質的に低レベルで発生するため、適切なパッチにはユーザーのデバイスのファームウェアやハードウェアの変更が必要になる場合があり、包括的な修正は難しくなります。オペレーティング システムやウェブブラウザのデベロッパーは、可能な限り重要な組み込みの保護機能を実装しています(Google Chrome の out-of-process iframes(プロセス外 iframe) や Cross-Origin Read Blocking(クロスオリジン読み込みブロック)による Site Isolation(サイト分離)、Firefox の Project Fission など)。しかし、既存の API 設計では、データが意図せずに攻撃者のプロセスに流れ込む可能性が残ります。

ウェブ デベロッパーは、この点を考慮してサイトをさらに確実に分離することを検討する必要があります。そのためには、新しいセキュリティ メカニズムを使い、攻撃者によるクロスオリジン リソースへのアクセスを積極的に防ぎます。このような保護は、Spectre スタイルのハードウェア攻撃や一般的なウェブレベルのクロスサイト漏洩の対策となりますが、デベロッパーはそういった脆弱性によるアプリケーションへの脅威を評価し、その対策のデプロイ方法を理解する必要があります。Chrome のウェブ プラットフォーム セキュリティ チームは、この評価に役立ててもらうため、デベロッパー向けの具体的なアドバイスを含む Spectre 後のウェブ開発サイドチャネル攻撃への対策を公開しました。このガイドに従って以下の保護をすることを強くお勧めします。
  • Cross-Origin Resource Policy(CORP)と Fetch メタデータ リクエスト ヘッダーを使うと、イメージやスクリプトなどのリソースを埋め込むことができるサイトを制御して、攻撃者が制御するブラウザのレンダリング プロセスにデータが渡るのを防げます。詳しくは、resourcepolicy.fyi と web.dev/fetch-metadata をご覧ください。
  • Cross-Origin Opener Policy(COOP)を使うと、アプリケーション ウィンドウで他のウェブサイトからの予期しないインタラクションの受け取りを拒否できます。これにより、ブラウザはプロセス内でウィンドウを分離できるようになります。これは重要なプロセスレベルの保護を追加することになり、完全なサイト分離を有効化できないブラウザで特に重要になります。詳しくは、web.dev/coop-coep をご覧ください。
  • Cross-Origin Embedder Policy(COEP)を使うと、アプリケーションがリクエストした認証済みリソースの読み込みを明示的にオプトインできます。 現在、Chrome や Firefox の機密性が高いアプリケーションでプロセスレベルの分離を保証するには、COEP と COOP の両方を有効化する必要があります。詳しくは、web.dev/coop-coep をご覧ください。
アプリケーションでは、これらの分離メカニズムに加えて、X-Frame-Options ヘッダーや X-Content-Type-Options ヘッダーなどの標準の保護も有効化し、SameSite Cookie を使うようにしてください。多くの Google 製アプリケーションでは、このようなメカニズムをすでに導入しているか、現在導入の過程にあります。このようなメカニズムは、デフォルトのブラウザ保護が十分でない場合に、投機的実行のバグに対する保護となります。

覚えておくべき重要な点は、この記事で説明したすべてのメカニズムは重要で強力なセキュリティ プリミティブですが、Spectre に対する完全な保護を保証するものではないことです。また、アプリケーションに固有の動作を考慮したデプロイ方法の検討も必要です。セキュリティ関連のエンジニアや研究者の皆さんには、この Spectre の概念実証の利用と貢献をお願いいたします。サイトのセキュリティ状況の確認や改善に役立てていただきたいと考えています。

ヒント : ウェブサイトを Spectre から守るために役立てていただけるよう、Google セキュリティ チームは Spectroscope を作成しました。これは Chrome 拡張機能のプロトタイプで、アプリケーションをスキャンして、さらなる防御が必要になる可能性があるリソースを見つけます。ウェブ分離機能の導入と合わせてご検討ください。

Reviewed by Eiji Kitamura - Developer Relations Team

この記事は(Chrome ウェブ プラットフォーム セキュリティ チームを代表して)Mike West による Chromium Blog の記事 "Mitigating Side-Channel Attacks" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

ウェブ プラットフォームは、セキュリティの土台となる境界線としてオリジンに依存しています。また、ブラウザは、あるオリジンから別のオリジンへの明示的なデータの漏洩をうまく防いでいます。しかし、Spectre のような攻撃から、明示的でないデータ漏洩への対策が必要になることがわかります。このような攻撃では、サイドチャネルが悪用され、攻撃者のコードを実行するプロセスに入ったあらゆるデータが攻撃者に読み取られることが実証されています。現在、こういった攻撃の実現性はかなり高く、ユーザーにとってのリスクは現実のものとなっています。

機密データが意図せずに攻撃者のプロセスに入り込まないようにしなくてはなりません。ブラウザは、この責任の大部分を背負っています。Chromium の Site Isolation(サイト分離)は、アクセスしたサイトを OS レベルで専用のプロセスに隔離します。Cross-Origin Read Blocking = CORB(クロスオリジン読み込みブロック)は、そのままでは保護されないクロスオリジンリソースの一部が攻撃者に読み込まれることを防ぎます。攻撃者の帯域幅を大幅に増やす API(SharedArrayBuffer など)は、クロスオリジン分離コンテキストにロックされます。しかし、この最後のメカニズムは、ブラウザが単独では行えない作業を指しています。

ウェブ デベロッパーはアプリケーションを熟知しており、各ページやリソースの漏洩によるリスクを情報に基づいて判断できます。ユーザーのデータが漏洩することを防ぐため、ウェブ デベロッパーはホストしているリソースを評価し、適切にリソースを分離するようブラウザに指示するという対策をとる必要があります。概念レベルでは、この対策は次の要素で構成されます。

  1. 受信したヘッダーを調べ、一方で Origin ヘッダー、もう一方で Sec-Fetch- で始まる各ヘッダーに注目し、リクエストに応答するべきかどうかを判断します
  2. 攻撃者がリソースをサブリソースとして読み込む機能を制限します。これをするには、Cross-Origin Resource Policy として same-origin を設定します(必要な場合のみ、same-site または cross-origin にします)。
  3. 攻撃者がリソースをドキュメントとしてフレームに含めることができるかを制限します。これをするには、X-Frame-Options: SAMEORIGIN を使ってフレーム化保護にオプトインするか、さらに細かい制御が可能な CSP の frame-ancestors ディレクティブを使います。たとえば、frame-ancestors 'self' https://trusted.embedder とします。
  4. 攻撃者がアプリケーションのウィンドウを参照する機能を制限します。これをするには、Cross-Origin Opener Policy を設定します。制限が強い same-origin 値をデフォルトとし、必要な場合のみ same-origin-allow-popups または unsafe-none にするのが最適です。
  5. MIME-type confusion 攻撃を防ぎCross-Origin Read Blocking(クロスオリジン読み込みブロック)などの消極的防御の確実性を高めます。これをするには、正しい Content-Type ヘッダーを設定し、X-Content-Type-Options: nosniff となっていることをグローバルで確認します。

以上のさまざまな防御策を合わせれば、サイト分離が利用できるかどうかにかかわらず、すべてのブラウザでユーザーのデータに対してある程度の保護をプロセスレベルで提供できます。

これらの防御策の適用に関する詳しい情報は、Spectre 後のウェブ開発をご覧ください。以上で説明したセキュリティ プリミティブがどのようにサイト上のリソースに適用されるかについて、詳しく説明する実例も含まれています。

ここで示したのは、明示的でないデータ漏洩からオリジンを守るために、すぐにでも実施できる有用な手順です。今後は、ウェブの各種デフォルトを安全なものに移行し、デベロッパーが何もしなくてもこういった攻撃からユーザーを守れるようにしたいと考えています。


Reviewed by Eiji Kitamura - Developer Relations Team



はじめてみよう Google Cloud ハンズオン セミナー 機械学習編 をオンラインにて開催いたします。

機械学習の実運用基盤の構築では「MLOps」と呼ばれる機械学習に固有のさまざまな課題が生じます。このハンズオンでは、AI Platform Pipelines の使い方を解説し、AI Platform における MLOps 環境の構築方法を紹介します。

このハンズオンでは Google Cloud のカスタマー エンジニアの解説を聞きながらハンズオンを進めるだけでなく、不明点をチャットツールを通じて質問することができます。

Google Cloud プロダクトに興味のある方、知識を増やしたい方はぜひご参加ください。

参加登録受付中:http://goo.gle/gcblog_homlops



————————————————————

開催概要

名 称 はじめてみよう Google Cloud ハンズオン セミナー 機械学習編
日 程 2021 年 4 月 9 日(金)
対 象 Google Cloud Platform を利用したことがあり、機械学習や、
                その環境の構築に興味のあるエンジニア
参加費 無料(事前登録制)
登 録 http://goo.gle/gcblog_homlops

————————————————————


Google Cloud は、ビジネス課題を解決できる最新のヒントをご提供する、デジタル カンファレンス を 2 週にわたって開催します。 本カンファレンスは、全ての業界で活躍する開発者、ビジネスの意思決定者やリーダーなど幅広い立場の方々を対象にしており、Google Cloud の最新のソリューションやサービスの情報をお届けします。 1 週目となる 5 月 25 〜 27 日は、基調講演やブレイクアウト セッションに集中して、様々なビジネスヒントを知ることができます。2 週目となる 6 月 1 〜 3 日には、前週に学んだことを活かして、実践的なハンズオンに取り組みましょう。このインプットとアウトプットを通して、より深く Google Cloud を体験できる、またとない機会です ...


Google Cloud は、ビジネス課題を解決できる最新のヒントをご提供する、デジタル カンファレンス Google Cloud Day: Digital を 2 週にわたって開催します。

本カンファレンスは、全ての業界で活躍する開発者、ビジネスの意思決定者やリーダーなど幅広い立場の方々を対象にしており、Google Cloud の最新のソリューションやサービスの情報をお届けします。

1 週目となる 5 月 25 〜 27 日は、基調講演やブレイクアウト セッションに集中して、様々なビジネスヒントを知ることができます。2 週目となる 6 月 1 〜 3 日には、前週に学んだことを活かして、実践的なハンズオンに取り組みましょう。このインプットとアウトプットを通して、より深く Google Cloud を体験できる、またとない機会です。

多岐にわたるソリューションを様々なコンテンツを通してご体験いただき、 皆様のビジネスをより良くしていくための、実践的ヒントが見つかる場となれば幸いです。

登録はこちらからお申し込みください。



開催概要

日程:

2021 年 5 月 25 日 (火) - 27 日 (木):基調講演、ブレイクアウトセッション

2021 年 6 月 01 日 (火) - 03 日 (木):ハンズオンセッション


対象:開発者、ビジネスの意思決定者やリーダー


ハッシュタグ:#GoogleCloudDay


————————————————————
お問い合わせ先:Google Cloud Day: Digital 事務局
google-cloudday-tokyo-office@google.com
————————————————————




...
この記事は David Wihl による Google Ads Developer Blog の記事 "Changes to phrase match and broad match modifier" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

 2021 年 2 月 4 日に、フレーズ一致と絞り込み部分一致の変更予定についてお知らせしました。キーワード ポートフォリオを簡素化し、広告主が関連性の高いユーザー検索に到達できるように、絞り込み部分一致(BMM)の動作にフレーズ一致を組み込み、BMM のサポートを段階的に廃止します。この変更は徐々にロールアウトされ、キーワードのマッチタイプのバックエンド処理が変更されます(AdWords APIGoogle Ads APIGoogle 広告スクリプト)。これによってキーワードがシンプルになり、関連顧客層に到達しやすくなります。

アップデート後のフレーズ一致は、両方のマッチタイプの優れた部分、すなわちフレーズ一致の制御と絞り込み部分一致の到達範囲の広さを組み合わせたものになります。フレーズと BMM のキーワードはどちらも動作し続け、2021 年 2 月 18 日より、最初の言語群(英語、ドイツ語、スペイン語、フランス語、イタリア語、オランダ語、ポルトガル語、ロシア語)のキーワードでフレーズまたは BMM 表記を使った場合に、アップデート後のフレーズ一致動作が適用されるようになります。第 2 四半期には他のすべての Google 広告の言語で同じ処理が始まり、2021 年 7 月には完了する見込みです。

2021 年 7 月にアップデート後のフレーズ一致動作がすべての言語に適用されると、広告主は新しい BMM キーワードを作成できなくなります(ただし、古い BMM キーワードは動作し続けます)。

除外キーワードのマッチタイプは、フレーズ一致と BMM の変更による影響を受けません。


この変更によって、AdWords API、Google Ads API、Google 広告スクリプトにはどのような影響を受けますか?

2021 年 7 月以降は、新しい BMM キーワード(matchType が BROAD とトークンが + で始まるキーワード テキスト)を作成できなくなります。このマイルストーンが近づきましたら、改めてお知らせする予定です。


広告主はどのような影響を想定すべきですか?

影響は、それぞれの広告主のフレーズや BMM の利用状況、クエリのカバレッジの包括性の程度によって異なります。
  • 主にフレーズ一致を使っている広告主は、クリックやコンバージョンが徐々に増えることが想定されます。
    • これらのキーワードについてのクエリが追加され、それに対するマッチングが有効になるためです。たとえば、フレーズ キーワードが「ザンビアの観光」である場合、それまでは BMM のみで有効だった「ザンビアの観光スポット」が一致するようになります。
  • 主に BMM を使っている広告主は、クリックやコンバージョンがわずかに減ることが想定されます。
    • 減少の大半は、BMM でキーワードの一部にのみ部分一致が適用される場合です。例 : テニス + シューズ
    • また、キーワードの意味にとって語順が重要になる場合は、語順も考慮されるようになります。そのため、これまで BMM に一致していたものが除外される場合もあります。

対応が必要な事項は何ですか?


広告主のトラフィックが変動する可能性があります。これまで、あるマッチタイプでキーワードに一致していたユーザークエリが、フレーズまたは古い BMM のキーワードに一致する可能性があります。そのため、さまざまなキーワードでボリュームが変動します。広告主にとっては、アカウントを管理し、追加のボリュームに対応する必要がある場合は予算を調整することが重要になります。その他のベスト プラクティスは、お知らせに記載されています。

ご質問やさらにサポートが必要なことがありましたら、フォーラムからご連絡ください。


...
この記事は Adam Ohren による Google Ads Developer Blog の記事 "Sunsetting Portofolio Enhanced CPC Bid Strategies" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

 2021 年 3 月 22 日より、ポートフォリオ(共有)拡張クリック単価(ECPC)入札戦略の提供を終了します。AdWords API と Google Ads API のすべてのバージョンで、以下の動作がブロックされます。
  • 新しいポートフォリオ ECPC 戦略の作成
  • ポートフォリオ ECPC 戦略のキャンペーンへのアタッチ
なお、標準(ポートフォリオでない)ECPC 戦略は影響を受けません。

影響を受けるポートフォリオ拡張クリック単価戦略
Google Ads API Bidding_strategy.type = BiddingStrategyType.ENHANCED_CPC
AdWords API SharedBiddingStrategy.type = MANUAL_CPC,

SharedBiddingStrategy.biddingScheme.enhancedCpcEnabled = TRUE


変更点の説明
新しいポートフォリオ ECPC 戦略の作成、ポートフォリオ ECPC 戦略のキャンペーンへのアタッチに関するすべての操作で、次のいずれかのエラーが発生します。

作成時のエラー アタッチ時のエラー
Google Ads API BIDDING_STRATEGY_NOT_SUPPORTED CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN
AdWords API BIDDING_STRATEGY_NOT_SUPPORTED CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN


移行の説明
標準 ECPC を優先するため、将来的にポートフォリオ ECPC 戦略は完全に削除する予定です。この変更に備えて、あらかじめすべてのポートフォリオ ECPC 戦略を標準 ECPC 戦略に移行しておくことができます。以下の手順をご覧ください。

残されたポートフォリオ ECPC キャンペーンと戦略は、後ほどすべて自動的に移行されます。移行の前には、このブログで最新情報を投稿します。

Google Ads API を使って自分で移行する場合
CampaignService.MutateCampaigns() を使い、manual_cpc.enhanced_cpc_enabled フィールドを true に設定してキャンペーンを更新します。リクエストには、忘れずに update_mask を設定してマッチングをしてください。
operations: [
  {
    update: {
      resource_mame: customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID,
      manual_cpc: {
        enhanced_cpc_enabled: true
      }
    },
    update_mask: manual_cpc.enhanced_cpc_enabled
  }
]
AdWords API を使って自分で移行する場合
CampaignService.mutate() を使い、biddingStrategyTypeMANUAL_CPCbiddingScheme.enhancedCpc フィールドを true に設定してキャンペーンを更新します。
<operations>
  <operator>SET</operator>
  <operand>
    <id>CAMPAIGN_ID</id>
    <biddingStrategyConfiguration>
      <biddingStrategyType>MANUAL_CPC</biddingStrategyType>
      <biddingScheme>
        <enhancedCpcEnabled>true</enhancedCpcEnabled>
      </biddingScheme>
    </biddingStrategyConfiguration>
  </operand>
</operations>
ご質問やさらにサポートが必要なことがありましたら、フォーラムまたは googleadsapi-support@google.com にご連絡ください。

Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Android チーム、ソフトウェア エンジニア、Arvind Kumar Sugumar による Google Online Security Blog の記事 "New Password Checkup Feature Coming to Android" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

デジタル サービスが生活に身近になるにつれて、オンライン情報の安全を保つことの重要性も今までになく増しています。通常、パスワードはハッカーに対する防衛の第一線ですが、パスワードの漏洩につながりかねない情報流出の多さを考えれば、ユーザーは認証情報の保護に注意しなければならないことは明らかです。

これを簡単に行えるようにするため、2019 年に Password Checkup 機能を Chrome に導入し、Chrome に保存しているパスワードが漏洩した場合、通知が届くようになりました。今回、Google 自動入力を通してこの機能を Android アプリにも提供します。アプリで認証情報を自動入力したり保存したりすると、Chrome は侵害されたことがわかっている認証情報のリストと突き合わせて、そのパスワードが侵害されていた場合は、警告を表示します。そのプロンプトから Password Manager ページを開くこともできるので、そこで保存されているパスワードをすべてまとめて見直すこともできます。Android アプリでの Password Checkup は、Android 9 以降で Google 自動入力を使っているユーザーが利用できます。

Android デバイスで Autofill with Google を有効にする方法は次のとおりです

  1. スマートフォンの [ 設定 ] アプリを開く
  2. [ システム ] > [ 言語と入力 ] > [ 詳細設定 ] をタップする
  3. [ 自動入力サービス ] をタップする
  4. [ Google 自動入力サービス ] をタップして設定を有効化する

項目が見つからない場合は、こちらのページをご覧ください。デバイス メーカーから詳しい情報を得る方法が記載されています。

動作の仕組み

Google はユーザーのプライバシーを最優先に考えていますが、パスワードなどの機密データを扱う機能では特にそれを重視しています。Google 自動入力は Android の自動入力フレームワークがベースになっています。このフレームワークは、厳格かつ不変なプライバシーとセキュリティを遵守し、次の 2 つの場合にのみユーザーの認証情報にアクセスすることを保証します。1)ユーザーが Google アカウントに認証情報をすでに保存している場合。2)Android OS がユーザーに新しい認証情報を保存することを提案し、ユーザーがアカウントに認証情報を保存した場合。

ユーザーが認証情報を操作したとき(フォームに認証情報を入力する、または初めて保存するとき)、Chrome で使われているものと同じプライバシー保護 API を使い、Google が追跡している既知の侵害されたパスワードのリストにその認証情報が含まれていないかを確認します。

この実装では、以下の点が保証されています。

  • デバイスの外部に送信されるのは、暗号化された認証情報のハッシュのみ(データベースのパーティション化のため、ハッシュ化したユーザー名の最初の 3.25 バイトは暗号化せずに送信される)。
  • サーバーは、同じプレフィックスを持つ、侵害されたことがわかっている認証情報のリストを暗号化したハッシュとして返す。
  • 認証情報が実際に侵害されたものであるかどうかを判断する処理がユーザーのデバイス上で実行される。
  • サーバー(Google)は、暗号化されていないユーザーのパスワードのハッシュにはアクセスしない。クライアント(ユーザー)は、侵害された可能性がある認証情報の暗号化されていないハッシュのリストにはアクセスしない。

この API の内部処理の詳細については、Chrome チームによるこちらのブログをご覧ください。

その他のセキュリティ機能

Google 自動入力は、Password Checkup の他にも、データの保護に役立つ機能を提供します。

  • パスワード生成 : あまりに多くの認証情報を管理しなければならない場合、ユーザーは同じパスワードを複数のアカウントに流用しがちです。パスワード生成機能を使えば、Chrome が一意で安全なパスワードを生成し、Google アカウントへの保存まで行ってくれます。そのため、パスワードを覚える必要すらなくなります。Android アプリでは、パスワード フィールドを長押ししてポップアップ メニューから [ 自動入力 ] を選ぶことで、パスワード生成をリクエストできます。
  • 生体認証 : 認証情報や支払い情報を自動入力する際に生体認証を要求すると、デバイスの保護をさらに強化できます。生体認証は Google 自動入力設定から有効化できます。

いつものように、プロダクト全般のセキュリティ向上に関する最新情報をお届けする Google Security ブログにご注目ください。


Reviewed by Eiji Kitamura - Developer Relations Team