- リアルタイムスキャンはバッテリー消費が大きいですが、iOS環境では効果が限定的です。
- iOSではアプリのインストールをApp Storeからに限定している上、アプリ間のデータアクセスも厳しく制限しているからです。
- 仮に悪意のあるプログラムがあっても、ユーザーのアクセス許可なしには、iPadやiPhone内にあるデータにアクセスできません。
つまり、アクセス権限の確認で従来の「スキャン」を前倒しにしているわけです。
従来型のウイルス対策ソフトが前提としていた脅威モデルそのものを、システム設計で避けているのが iOSの特徴です。
その分、ユーザーの最終的な判断は重要だね。
1. iPadにウイルススキャンがないのはなぜ?
iPadのセキュリティの仕組みでは、アプリのインストールに厳しい制限があることはわかりました。
しかし、それでも iPadなどが「ウイルス感染」することは 0 ではないと思います。
では、iPadはどうやって安全な状態かどうかを確認できるのでしょうか?
例えば、Windowsならセキュリティソフトのフルスキャンなどでいつでもチェックできます(100%ではないとは思いますが)。
iPadにもそういったスキャン機能はあるのでしょうか?
iPhoneやiPadのシステム(iOS)には、マルウェアを常時スキャンするような機能は基本的にありません。
これは、システムの設計段階からセキュリティを重視されているからです。
特に大切なのは「アプリのアクセス権限」の考え方です。
1-1. iPadで不審なアプリをチェックするには?
iPhoneやiPadで不審なアプリをチェックする基本は、「アプリのアクセス権限」が正しく管理されているか確認することです。
「設定」にある「プライバシーとセキュリティ」を確認し、「アプリの権限」に不自然な項目が追加されていないか確認します。
そのためには、ふだんから正常な状態を知っておくことが大事です。
あとは、一般的なセキュリティ対策で十分です。
- iOSやアプリを最新の状態にアップデートしておくこと、
- パスワードを正しく管理して使いまわしを避けること、
- 不審なリンクにはアクセスせず、個人情報の入力の際はサイトURLを確認すること
2. iPadに「ウイルススキャン」がない理由
iPhoneやiPadのシステム(iOS)には、リアルタイムスキャンのような機能は基本的にありません。
これは、おおまかに言えば、スキャン処理でバッテリー電力などを消費してしまう割に、そこまで必要性がないからです。
どうして、「ウイルス」をスキャンする必要性がないの?
それは、iOSのセキュリティは、Windows PCと異なるアプローチをしているからです。
- アプリのサンドボックス方式
- App Storeによる厳格な審査
- システムレベルのアクセス制限
- リソース効率の重視
かんたんに言えば、iOSは「問題が起きてから対処する」のではなく、「問題が起こる余地をなくす」というアプローチを取っています。
ですので、マルウェアの脅威を防ぐために必要なことは、システムの定期的なアップデートとアプリ権限の管理で十分です。
もう少し厳密には、「攻撃対象領域(attack surface)を最小化する」アプローチと言えます。
2-1. Windowsは(比較的)オープンな設計
Windows PCの場合、いろんな開発元のアプリケーションソフトを自由にインストールできます。
さまざまなソフトを組み合わせて作業するため、Windowsのファイルシステムがデータの保存や読み込みに利用されます。
ソフトをフロッピーディスクやCD-ROMなどで購入していたオフラインの時代にはそこまで問題にならなかったのですが、インターネットを通してソフトやデータが流通するようになった頃から、不正なプログラムの問題が大きくなりました。
システム領域へのアクセスが容易なため、悪意のあるプログラムを検知したり、ブロックする必要が生まれます。
ただし、特に Windows 10以降は、だいぶ改善されています。
2-2. iOSは(比較的)クローズドな設計
一方、iOSの場合は、原則的に公式のアプリストア(App Store)からしか、アプリを追加できません。
つまり、すべてのアプリは必ずアプリストアでの審査をクリアしないといけません。
また、それぞれのアプリは原則として、お互いのデータにアクセスできないように独立して動作するようになっています。
写真や連絡先・位置情報などの共有する「システムリソース」には、アクセス範囲を限定して、必ずユーザーが許可する形になっています。
いわば iPhoneやiPadの中は、事前審査制のオートロックのマンション。
入口での厳重なセキュリティチェックがあるだけでなく、エレベーターは許可された階にしか止まらないようなものです。
2-3. プログラムの構造から違う
でも、アプリがこっそり情報を取ったりしているんじゃないの?
これには、プログラミングの段階から違いがあります。
そもそも、プログラムは「何でもできる」わけではなく、基本システムが用意している機能(API)を組み合わせて作られます。
iOSの場合は、もともとの機能が Windowsより厳選されていて、勝手なマルウェアが作りにくい環境になっています。
さらに、iOSアプリ開発ではシステムリソースにアクセスにするには厳密な宣言と実装が必要です。
「Info.plist
」というファイルで、そのプログラム内で利用するシステムリソースのアクセス権限とその用途を明示しておく必要がありるのです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- カメラ使用の権限 -->
<key>NSCameraUsageDescription</key>
<string>写真撮影のためにカメラを使用します</string>
<!-- 位置情報の使用権限 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>現在地周辺の情報を表示するために位置情報を使用します</string>
<!-- 写真ライブラリへのアクセス権限 -->
<key>NSPhotoLibraryUsageDescription</key>
<string>写真の保存のために写真ライブラリを使用します</string>
<!-- マイクの使用権限 -->
<key>NSMicrophoneUsageDescription</key>
<string>音声録音のためにマイクを使用します</string>
</dict>
</plist>
ですので、「そのアプリが位置情報を使うか」などというのはアプリストアで審査する前にかんたんに確認できます。
3. 「スキャン」は不審なアクセスを防ぐため
いわゆる「ウイルススキャン」は、不審なデータアクセスをするプログラムが知らないうちにシステム内で動作していないか調べる操作です。
しかし、iOSの場合は、マルウェアが端末内に元からあるデータにアクセスしようとすると、その前には必ずユーザーの同意が必要になっています。
また、マルウェアのスキャンについては、ユーザーの iPhone / iPad で実行せずとも、アプリストアでの審査の段階で行われています。
インストール後でも、アプリストアで不審なアプリが見つかれば、端末側でも無効化されます。
つまり、「知らないうちに不審なアクセスがある」という状況を極力防ぐように設計されているわけです。
あの「アプリ権限の同意」って、セキュリティのために大事なんだね。
3-1. リアルタイムスキャンは負荷も大きい
iOSでリアルタイムスキャンをするのは、無駄も大きいです。
動作が遅くなったりバッテリーを消耗したりするばかりで、あまり利益がないからです。
特に、iPhoneやiPadは、モバイル機器のため電池持ちは重要です。
なるべく不要な処理は入れたくないのです。
3-2. 【補足】「ウイルススキャン」アプリはあるけれど?
あれ?
でも、App Storeにセキュリティアプリはあるよ?
確かに、App StoreにはPC用と同じ名前の「セキュリティアプリ」があります。
- Avast Security
- McAfee Mobile Security
- Norton Mobile Security など
ただし、これらのアプリにはPCのような全システムスキャン機能はありません。
iOSのサンドボックス制限で、他のアプリやシステム全体をスキャンできないからです。
したがって、これらのセキュリティアプリは、iPhone内ではなく「外」を監視しています。
Webブラウジングの保護やWi-Fi接続のセキュリティチェック、個人情報の漏洩監視などが主要な機能になっています。