モバイル通信におけるベストプラクティス
~ CISA「Mobile Communications Best Practice Guidance」を解説 ~
JSSEC技術部会マルウェア対策WG
KDDI株式会社 本間 輝彰
1.背景
米国のセキュリティ機関であるCISA(Cyber Defense Agency:サイバーセキュリティー・インフラセキュリティー庁)は、2024年12月18日にモバイル通信におけるベストプラクティスとして、Mobile Communications Best Practice Guidance[1]を発表しています。
本ベストプラクティスは、スマートフォンを安全に利用する上で参考となるため、JSSECが推進するセキュリティ対策と踏まえて解説しています。
本ベストプラクティスでは、General Recommendations(以下、推奨事項)、iPhone-Specific Recommendations (以下、iPhone推奨事項)、Android-Specific Recommendations (以下、Android 推奨事項)の3つがあり、それぞれの観点で解説します。
2.推奨事項
推奨事項では、8つの項目が推奨されています。
2.1. エンドツーエンドの暗号化通信のみを使用する(Use only end-to-end encrypted communications)
メッセージアプリを使用する際には、Signalのようにエンドツーエンドで暗号化通信を行うアプリの利用を推奨します。これらのアプリは、メッセージが送信される際に暗号化され、受信者のデバイスでのみ復号されるため、プライバシーを強化します。この方式により、万が一サービス提供元で情報漏洩が発生したとしても、通信内容が第三者に漏れることはなく、非常に安全です。
国内では、闇バイトでの利用などでエンドツーエンド暗号化アプリが負のイメージを持たれることもありますが、プライバシー保護が重要な現代において、その利点は非常に大きいと言えます。個人情報や機密情報を守るためには、通信のセキュリティが欠かせません。
ただし、これらアプリで通信をする際には、いくつか注意点があります。例えば、デバイスを紛失、盗難や故障にあった場合、共通鍵を失う可能性があります。この場合、過去の通信内容が見えなくなる可能性があるため、鍵の管理には十分な注意が必要です。したがって、エンドツーエンド暗号化の仕組みやその利点、そしてリスクを理解した上で利用することが重要です。例えば、定期的なバックアップを取ることで、デバイスの故障や紛失によるデータの消失を防ぐことができます。
2.2. 認証にFIDOを利用する(Enable Fast Identity Online (FIDO))
デジタル化が進む現代の社会において、オンラインセキュリティは重要な課題です。フィッシング詐欺やパスワード漏洩が増加する中、FIDO認証とパスキーは、パスワードに依存しない新たな安全基準として注目されています。これらの技術は、よりシンプルで安全な認証方法を提供し、多要素認証をより効率的に、そして場合によっては不要にする効果をもたらします。
FIDO認証は、生体認証(指紋や顔認証)やセキュリティキーを用いて、パスワードを使わずに本人確認を行う技術です。認証情報はデバイス内で処理され、外部に送信されないため、セキュリティが強化されています。パスキーは、FIDO認証を拡張したFIDO2の標準に基づく新しい認証メカニズムで、一般的は、FIDOという表現を使わずに、パスキーと呼ぶケースが多くなっています。
近年は、パスキーに対応したサービスも徐々に増えつつあるので、パスキーが利用できるサービスの場合、パスキーを利用することが推奨されます。
また、パスキーの利用は、JSSEC利用部会が発行している「スマートフォン利用シーンに潜むTop10解説ガイド」[2]において、対策解説として「パスキー(FIDO2 ~ 例:指紋・顔認証)の利用」として載っているので詳しくはこちらをご参照ください。
なお、パスキーを利用するには、サービス側での対応が必要となるため、特に金銭や重要情報を扱うサービスにおいては、パスキーの対応が期待されます。
2.3. 多要素認証にSMSを利用しない(Migrate away from Short Message Service (SMS)-based MFA)
デジタル時代において、オンラインアカウントの保護は重要な課題です。多要素認証(MFA)は、セキュリティを強化する有効な手段ですが、すべての方法が等しく安全であるわけではありません。特に、SMSを使用した多要素認証にはリスクが伴います。
特に、フィッシング詐欺の手法は日々進化しており、中には多要素認証を回避するものも存在します。SMS認証は、その特性上、攻撃者にとって狙いやすいターゲットとなることがあり、次のようなリスクがあります。
・フィッシング攻撃
攻撃者は偽のウェブサイトやメッセージを使用して、ユーザーにSMSコードを入力させることで、認証を突破しようとすることがあります。
・マルウェア攻撃
一部のマルウェアは、デバイスにインストールされるとSMSの内容を盗み取ることができ、これによりSMS認証コードが攻撃者の手に渡るリスクがあります。なお、マレウエアによるSMSの盗み取りの事例としては、JSSEC技術部会・マルウェア対策WGが発行している、「スマートフォン・サイバー攻撃対策ガイドPhishing as a Service(PhaaS)の拡大とその対策について」[3]の攻撃事例1でも取り上げています。
・SIMスワップ詐欺
攻撃者は、ユーザーのSIMカードを不正に入手して電話番号を乗っ取ることで、SMS認証を回避することが可能です。
したがって、利用しているサービスにおいて、SMS認証以外のサービスに対応している場合は、それ以外の認証方式を利用することが推奨されます。特に、パスキーが利用可能な場合は、パスキーの利用を第1優先するのがベストとなります。
なお、SMS以外の多要素認証としては、認証アプリを使ったものが一般的です。認証アプリの利用については、JSSECコラムである、「認証アプリによる2要素認証の利用について」[4]で解説していますので、参考にしてください。
2.4. パスワードマネージャー利用する(Use a password manager)
私たちの生活は日々デジタル化が進み、多数のオンラインサービスに依存するようになっています。しかし、この便利さの裏に潜むのが、パスワードに関するセキュリティリスクです。特に、簡単なパスワードやパスワードの使い回しは、個人情報を危険にさらす大きな要因となります。
・簡単なパスワードの危険性
簡単なパスワード(例:123456、password、qwertyなど)は、攻撃者にとって非常に狙いやすいターゲットです。これらのパスワードは、辞書攻撃や総当たり攻撃(ブルートフォースアタック)によって容易に解読される可能性があります。もし、このようなパスワードを使っている場合、個人情報やアカウントが不正アクセスによって危険にさらされるリスクが非常に高まります。
・パスワードの使い回しによるリスク
多くの人が複数のアカウントで同じパスワードを使い回しています。これは、一つのサービスで情報が漏洩した場合、他のすべてのサービスも同様に危険にさらされることを意味します。攻撃者は、一つの漏洩情報を基に、他のサービスへの不正アクセスを試みることがあるからです。
これらセキュリティを回避するために、パスワードマネージャーの活用が推奨されます。パスワードマネージャーでは、パスワードを一元管理でき、また、新規にアカウントを作成する際やパスワードを変更する際に、強力なパスワードの提案をしてくれます。さらには、サービス側が自動入力機能に対応していれば、自動でパスワード入力をしてくれるため、フィッシングサイトでパスワードを入力するリスクを減少させ、利用者の利便性も向上します。さらには、漏洩リスクのある危険なパスワードを使っている場合は、警告もしてくれます。
なお、パスワードマネージャーの利用については、JSSEC利用部会が発行している「スマートフォン利用シーンに潜むTop10解説ガイド」において、対策解説として「パスワードマネージャーによるサービス利用として掲載されていますので、詳しくはこちらを参照してください。さらにパスワードマネージャーワードマネージャーの利用に関しては、JSSEC利用部会が発行している「強化された!~ iOS18のパスワード管理」[5]も参考にしてください。
2.5. 通信事業者のPINを設定する(Set a Telco PIN)
携帯キャリアは、スマートフォンなどの利用時のセキュリティを強化するために、PIN(個人識別番号)と呼ばれる機能を提供しています。
PINを設定することで、デバイスを起動するたびにPINコードの入力が必要となり、端末が盗難や紛失した際に不正利用されるリスクを軽減できます。また、PINが設定されたスマートフォンに他人が別のSIMを挿入して利用することを防ぐことも可能です。
また、PINの入力を何度か間違えると、SIMカードがロックされ、解除するためには携帯キャリアから提供されたPUK(Personal Unblocking Key)[6]が必要になります。これにより、不正にPINを試行する行為を防止します。
一方で、PIN機能は一般の利用者には馴染みが薄い場合が多く、設定や管理が行き届かないことがあります。特に、PINを忘れてロックがかかるとPUKが必要になりますが、多くの利用者はPUKの管理をしていないことが多く、復旧に時間がかかることがあります。したがって、PINを利用する際には、これらのリスクを理解し、PUKを安全な場所に保管しておくことが重要です。
スマートフォンには、PINとは別にロック機能が備わっています。この機能を設定することで、端末の盗難や紛失時の悪用を防ぐことができます。ただし、ロック機能は他人が別のSIMを挿して利用することを防ぐことはできませんが、デバイス自体の不正アクセスを防ぐ上で非常に有効です。スマートフォンのロック機能を設定することは、少なくとも推奨される基本的なセキュリティ対策です。この機能を設定しない場合、前述のパスキーやパスワードマネージャーの利用も制限されることがあります。
2.6. ソフトウェアを定期的に更新(Regularly update software)
メーカーが提供するOS(オペレーティングシステム)やアプリケーションは、残念ながら完全に安全に問題なく提供されているものではありません。不具合等があった場合は、修正版のOSやアプリケーションを提供し改善に務めています。
したがって、OSやアプリケーションは定期的に更新することが重要です。
また、自動更新を設定することで、OSやアプリケーションをタイムリーに更新することが重要となります。
2.7. 携帯電話メーカーから最新のハードウェアバージョンを選択する(Opt for the latest hardware version from your cell phone manufacturer)
新しいハードウェアは古いハードウェアでサポートできない重要なセキュリティ機能が組み込まれていることがあります。また、OSはハードウェアごとにサポート期間が定められており、古いハードウェアでは最新のOSにアップデートできずに、最新のOSで具備されているセキュリティ機能が利用できない可能性もあります。
したがって、スマートフォン購入時には最新のハードウェアを選択することが推奨されます。しかしながら、最新のハードウェアは値段が高額なことも多く、容易に選択できないことも事実です。これら状況を踏めて、購入したスマートフォンを何年利用するかを考え、その期間にサポートされるスマートフォンを購入するなどすることも重要となります。
2.8. 個人用の仮想プライベートネットワーク(VPN)を使用しない(Do not use a personal virtual private network (VPN))
VPNの利用は、信頼できないWi-Fiネットワークを使用する際に、通信を保護しセキュリティを強化するために有効です。VPNは、ユーザーのインターネット通信を暗号化し、第三者による盗聴を防ぐ役割を果たします。しかし、利用に際しては注意すべき点も存在します。
モバイル通信では通常、信頼性の高い通信キャリアのネットワークを使用してインターネットに接続します。しかし、VPNを利用することで、通信が一旦VPN提供者のサーバーを経由することになります。このため、VPN提供者の信頼性が非常に重要です。信頼性の低いVPNを選択すると、ユーザーのデータが不適切に取り扱われや、悪意を持って監視される可能性があり、セキュリティが低下するリスクがあります。
さらには、信頼性の低いVPNプロバイダは、ユーザーのインターネットトラフィックを監視するリスクがあります。特にHTTPS(TLS)で暗号化されていない通信は、VPNサーバー上で内容を傍受される可能性があるため、プロバイダの選択には注意が必要です。
したがって、VPNを利用する際には、プロバイダの信頼性を十分に確認することが重要です。評判の良いプロバイダを選び、そのプライバシーポリシーやセキュリティ対策を確認することで、通信の安全性を確保できます。
無料VPNはコスト面で魅力的ですが、セキュリティやプライバシーに妥協があることが多いため、特に慎重に選択する必要があります。
3.iPhone推奨事項
iPhone端末向けの推奨事項では、5つの項目が推奨されています。
3.1. ロックダウンモードを有効にする(Enable Lockdown Mode)
ロックダウンモード[7]は、iOS16以降に具備され、きわめて稀で超精巧なサイバー攻撃の標的になった場合でもデバイスを守ってくれる機能です。
ロックダウンモードは、その立場や活動内容から、きわめて精巧なデジタル脅威の標的になる可能性を拭えないごく一部の個人を対象に考案された、任意で使える究極のセキュリティ対策です。ほとんどの人は、この類の攻撃の標的になる心配はないため、本機能を有効にする必要性はまずありません。
ロックモードを設定すると、メッセージの添付ファイルがブロックされる、複雑なWeb技術を使ったWebサイトにはアクセス不可、非セキュアなWi-Fiに接続不可など、さまざまな制限が行われます。
端末で取り扱う情報に応じて利用を検討してください。
3.2. iMessageが利用できない場合にメッセージがSMSとして送信されないようする(Disable the following setting to ensure messages do not send as SMS if iMessage is unavailable)
iMessageは、Appleユーザー間でのエンドツーエンド暗号化を提供し、メッセージの安全性を確保します。しかし、iMessageが利用できない場合、自動的にSMSとしてメッセージが送信される設定が有効になっていることがあります。SMSは暗号化されていないため、セキュリティ面でのリスクがあります。
一方で、SMSを完全に利用しないことは現実的ではないため、「SMSを利用する際は、パスワードやクレジットカード情報などの機密情報を送信しない」、「SMSで受け取ったメッセージに対しては、送信元を確認し、怪しいリンクや情報には注意を払う」など、SMSのリスクを踏まえて利用することになるのが現実的です。
3.3. ドメインネームシステム(DNS)クエリを保護する(Protect your Domain Name System (DNS) queries)
インターネットを安全に利用するために、DNSキャッシュポイズニングなどの攻撃から保護する対策を講じることが重要です。AppleのiCloud Private Relay[8]をはじめとする様々なサービスが、ユーザーのプライバシーとセキュリティを強化するための手段を提供しています。
また、Wi-Fiを利用する際には、自動で設定されるDNSサービスの利用ではなく、暗号化されたDNSサービスを利用する方法も推奨されます。なお、暗号化されたDNSサービスとしては、Cloudflare(DNS IP:1.1.1.1)、Google(DNS IP :8.8.8.8)、Quad(DNS IP: 9.9.9.9)などがあります。とくに、悪意のあるフリーWi-Fiの場合は、不正なDNSサーバーの設定が可能となり、正しいURLを入れても偽サイトに誘導可能となるため、本設定を利用することは非常に有効です。
3.4. Apple iCloudプライベートリレーに登録する(Enroll in Apple iCloud Private Rela)
3.3 ドメインネームシステム(DNS)クエリを保護する 対策に加え、iCloud Private Relayを利用することで、インターネットブラウジングのプライバシーを向上させることが可能となります。
iCloud Private Relayは、インターネットトラフィックを暗号化し、セキュアなDNSを使用します。これにより、DNSクエリが第三者に傍受されるリスクを減少させます。さらに、利用者のIPアドレスを隠すことで、ウェブサイトやネットワークがユーザーの実際の位置や識別情報を追跡するのを防ぐことも可能です。
なお、iCloud Private Relayのプライバシー保護機能は、Safariブラウザでのインターネット閲覧に限定されます。また、一部サービスで本機能を利用していると利用不可になる場合がありますので、利用にあたってはこのような問題があることを理解の上利用することが必要となります。
3.5. プライバシーとセキュリティを通じてアプリの権限を確認し、制限する(Review and restrict app permissions through Settings)
スマートフォンには、多くのアプリがインストールされており、それぞれがさまざまなデータやデバイス機能へのアクセスを求めることがあります。しかし、すべてのアプリが本当に必要な権限だけを要求しているとは限りません。無制限に権限を付与することは、プライバシーやセキュリティリスクを引き起こす可能性があります。
したがって、アプリの設定を確認し、不必要な機能の利用をしている場合は、その機能の利用を停止させることも必要となります。また、アプリインストール際には、求められる権限を注意深く確認し、必要以上の権限を要求するアプリには注意することも必要となります。
4.Android推奨事項
Android端末向けの推奨事項では、7つの項目が推奨されています。
4.1. 強力なセキュリティ実績と長期的なセキュリティアップデートのコミットメントを持つメーカーのモデルを優先する(Prioritize models from manufacturers with strong security track records and long-term security update commitments)
デジタルデバイスの使用が日常化する中で、セキュリティは重要な考慮事項です。特にスマートフォンやタブレットのようなデバイスでは、個人情報や機密情報が多く保存されるため、セキュリティが強化されたモデルを選ぶことが重要です。
第2章の「2.6 ソフトウェアを定期的に更新」、「2.7 携帯電話メーカーから最新のハードウェアバージョンを選定する」での説明にもありますが、最新のハードウェアと定期的なソフトウェアアップデートを組み合わせることで、Androidユーザーはプラットフォームの進化するセキュリティ強化を最大限に活用できるようになります。
なお、特に注目する点としては、ハードウェアセキュリティモジュール(HSM)をサポートしている、毎月OSのセキュリティアップデートをしている、少なくとも今後5年間のセキュリティアップデートを保証しているなどがあります。
適切なスマートフォンを選定することで、より長く安全に購入したスマートフォンを利用することが可能になります。
4.2. リッチコミュニケーションサービス(RCS)を使用する(Only use Rich Communication Services (RCS) if end-to-end encryption is enabled)
「2.1 エンドツーエンドの暗号化通信のみを使用する」で説明の通り、エンドツーエンド暗号化は、メッセージ内容が送信者から受信者までの間で暗号化されているため、通信経路上で第三者に内容を読み取られることを防ぎます。これにより、プライバシーとセキュリティが大幅に向上します。
Googleの「Messages」アプリを使用している場合、RCSを有効にしておけば、RCSを有効にしている利用者と、RCSチャットをエンドツーエンドで暗号化して利用することができます。これにより、メッセージが安全にやり取りされます。
なお、RCSはiPhoneでも利用可能となっていますが、現時点で日本国内のキャリアは未対応となっています。
4.3. AndroidプライベートDNSを信頼できるサービスを利用する(Configure Android Private DNS to use a trusted)
フィッシングサイトなど偽サイトに誘導させることを目的に、DNSへの問い合わせ時に、不正な応答を返すDNSキャッシュポイズニングという攻撃があります。
DNSキャッシュポイズニングは、特に提供元が不明なフリーなWi-Fiを利用時に攻撃されるリスクが高くなります。その対策として、安全なDNSを利用することでこれらリスクを防ぐことが可能となります。Androidでは、ネットワーク設定から、手動でDNSの設定が可能[9]となるため、セキュリティが気になる場合は、手動でDNSの設定をすることをお勧めします。
なお、安全なDNSとしては、Cloudflare(DNS IP:1.1.1.1)、Google(DNS IP :8.8.8.8)、Quad(DNS IP: 9.9.9.9)などが代表的です。
4.4. AndroidデバイスのChromeブラウザで「常に安全な接続を使用する」が有効にする(Confirm Always Use Secure Connections is enabled)
Google Chromeブラウザにおいて、ユーザーが悪意のあるウェブサイトやフィッシングの試み、危険なダウンロードから保護されるための機能として、セーフブラウジング(Enhanced Protection for Safe Browsing)[10]があります。
本機能を有効にすることで、接続したウェブサイトが危険な可能性がある場合、ユーザーに警告表示することでアクセスを防ぐことができます。また、ダウンロードしようとするファイルが危険な可能性がある場合にもユーザーに警告をし、ダウンロードをブロックすることができます。
なお、本機能はデフォルトで「標準保護機能」が有効となっているため、個別に設定する必要はありません。
また、セーフブラウジングは、Googleによって既知の脅威としてリストされているウェブサイトやファイルに対して警告を発します。したがって、これらの既知の問題に対して非常に有効です。しかしながら、データベースに登録されていない未知の脅威や新しい攻撃手法に対しては、即座に対応できない場合があります。このため、警告が出ないからといって、必ずしもそのサイトが安全であるとは限りません。セーフブラウジングは万能ではないため、ユーザー自身のセキュリティ意識も重要です。
リンクをクリックする際には、その信頼性を確認し、不審なサイトやファイルには注意を払うことが求められます。
4.5. AndroidデバイスのChromeブラウザで「安全なブラウジングのための強化保護」が有効にする(Confirm Enhanced Protection for Safe Browsing is enabled)
4.4 AndroidデバイスのChromeブラウザで「常に安全な接続を使用する」が有効にする で説明した通り、Google Chromeには、セーフブラウジングの機能は、デフォルトで有効となっています。
一方、本機能では、さらに強固な設定として、「保護機能強化」を選択することが可能です。本機能を有効にした場合、リアルタイムでの判定処理が強化されるので、より効果が高くなりますが、都度ネットワークに問い合わせが行われるため、ネットワークの状況によっては応答が遅くなる場合があります。
4.6. Google Play Protectが有効にする(Confirm Google Play Protect)
Androidには、標準でセキュリティ機能として、Google Play Protect[11]が具備されています。Google Play Protectは、Google Playストアを通じてインストールされるアプリのセキュリティの監視の他に、デバイス内のすべてのアプリをスキャンして潜在的な脅威を検出します。また、Google Play Protectは、デフォルトで有効となっているため、個別に設定は必要ありません。
なお、本機能は既知の脅威へは有効ではありますが、未知の脅威には効果がなく、特にサードパーティーストアやサイドローディングでアプリをインストールする際には脅威を検知できない可能性があります。したがって、安全なアプリをインストールするためには、利用するマーケットやアプリの安全性を十分確認の上、インストールすることが重要となります。特にサイドローディングの危険性については、JSSEC技術部会が発行しているスマートフォン・サイバー攻撃対策ガイド「サイドローディングの危険性」[12]が参考になります。
4.7. アプリの権限を確認し、制限する(Review and restrict app permissions)
スマートフォンには、多くのアプリがインストールされており、それぞれがさまざまなデータやデバイス機能へのアクセスを求めることがあります。しかし、すべてのアプリが本当に必要な権限だけを要求しているとは限りません。無制限に権限を付与することは、プライバシーやセキュリティリスクを引き起こす可能性があります。
したがって、アプリの設定を確認し、不必要な機能の利用をしている場合は、その機能の利用を停止させることも必要となります。また、アプリインストール際には、求められる権限を注意深く確認し、必要以上の権限を要求するアプリには注意することも必要となります。特に、アプリの位置情報、カメラ、マイクなど権限付与についてはアプリの仕様を踏まえて権限付与することが重要となります。
5.まとめ
米国政府のセキュリティ機関であるCSAが発表した、Mobile Communications Best Practice Guidanceについて解説を行いました。
なお、本解説の他にスマートフォンを安全に利用するためには様々な対策があります。JSSEC 技術部会・マルウェア対策WGでは、「スマートフォン・サイバー攻撃対策ガイド」[13]として技術的観点でスマートフォンの脅威とその対策のガイドを発行しています。また、JSSEC利用部会では、2023年に「スマートフォン利用シーンに潜む脅威 Top10」[14]を発表し、また、Top10であがった課題に対して特に注目の高かったフィッシングとフェイクに関するガイド[15]も発行しています。
スマートフォンを安全に利用するには、残念ながら1つの対策で防げるわけではありません。したがって、これらガイドを参考に、一人一人がセキュリティ意識を高め、安心・安全なスマートフォンの利用を出来ることを期待しています。
[1] https://www.cisa.gov/resources-tools/resources/mobile-communications-best-practice-guidance
[2] https://www.jssec.org/smartphone-use-10threats202301
[3] https://www.jssec.org/column/20240830.html
[4] https://www.jssec.org/column/20230522.html
[5] https://www.jssec.org/report/ios18-password-management_20241122.html
[6] PKUはSIMカードのカバー背面に記載されていることが一般的です
[7] https://support.apple.com/ja-jp/105120
[8] https://support.apple.com/ja-jp/102602
[9] https://www.android.com/intl/ja_jp/articles/402/
[10] https://support.google.com/chrome/answer/9890866
[11] https://support.google.com/googleplay/answer/2812853?hl=ja
[12] https://www.jssec.org/column/20220701.html
[13] https://www.jssec.org/smartphone-malware