ウイルスを未然に防ぐ
『Gatekeeper(ゲートキーパー)』
皆さんは「あなたのMacのセキュリティを高めます」という謳い文句で無料配布されているソフトや、普段使っているソフトウェアの更新通知が出てダウンロードしてきたアップデータ、こういったものが本当に「安全な」ものか自信を持って確認できますか? 最近はセキュリティソフトの厳しいチェックをすり抜けるために、私たちの隙を突くような心理的アプローチでダウンロードさせ、Macにインストールさせようとする悪質なソフトウェア(マルウェア)が増えています。
従来までは一度入り込んでしまうと発見が難しかったマルウェアですが、アップルはこれを封じ込める機能をOS Xに搭載しました。それがゲートキーパー(Gate
keeper)と呼ばれるものです。実行されるソフトウェアが「本当に信頼できるものか」をチェックするための、文字どおり「門番」の役割を果たしています。
その仕組みはどうなっているのでしょうか。ソフトウェア開発者は、アップルから固有の開発者証明書(Developer ID)を取得していますが、ゲートキーパーの搭載以降、開発者はこの証明書を使って「電子署名」を作成し、ソフトウェアに埋め込んで配布することが義務づけられました。ゲートキーパーはこの電子署名が改ざんされていないかどうか整合性をチェックし、正常に確認できたソフトだけを使用できるようにしています。非正規のルートで作られたソフトウェアは認証に失敗し、ユーザに警告が表示され、システム上で動作できないように封じ込められるのです。
また、ゲートキーパーには、アップルの配信プラットフォーム「Macアップストア(以下、MAS)」からダウンロードされたものだけを使用可能にするという、より厳密なオプションも存在します。MASで配布されているソフトウェアは、先述の電子署名のほかに「MAS領収書」という電子購入証明書も埋め込まれています。この証明書の有効性をチェックすることで、ダウンロード経路の安全性を保証しようという仕組みです。
ゲートキーパーは、こうした複数のチェック機能を持っており、開発者がマルウェアを配布していることが発覚したり、それによる汚染が発生したときにすぐに証明書を無効にし、機能を停止する柔軟性と対応レスポンスの良さを実装しています。こうして、ネット上に点在するマルウェアからシステムを保護しているのです。
大事なデータを暗号化させる
『FileVault 2(ファイルボルト)』
作成したデータの機密保護はパーソナル・セキュリティを語るうえで欠かせないものです。OS Xにはデータに暗号化を施して第三者に盗み見られないようにする「ファイルボルト(FileVault)」がOS Xパンサー(2003年)の頃から実装されており、10年以上の長い実績を誇っています。
現在は第2世代にシフトしており、OS X内部のフレームワーク「コアストレージ」として、よりシステムの中心に近い部分で高速に動作するようになりました。これによって、ボリューム全体を暗号化できるため、Mac内蔵のストレージだけでなく、外付けのハードディスクやUSBメモリなどもファイルボルトで暗号化が可能になりました。この暗号化はパスワードがわからない限り、データを盗み見ることができなくなるという非常に強固なセキュリティです。
その強固さはどれくらいのものなのでしょうか。アップルによると最新世代では「XTS-AES 128暗号化」を採用していると記載されています。AESはアメリカの新暗号規格として採用された「共通鍵暗号方式」というシステムです。データを小さなブロック単位に分割してグループ化し、それらを複雑なアルゴリズムで並び変えることにより暗号化しています。
しかし、暗号は復号化(データを元に戻す作業)ができる以上、データの解読はある程度の時間をかければ可能になっています。ファイルボルトは128ビットのAESを利用していますが、全体の暗号化作業10ラウンドのうち7ラウンド目までは解読可能とされていて、将来的には完全解読される恐れがあります。そこでアップルは暗号化するためのパスワードにXTSモードを採用しました。これは2つの暗号化キーを利用するもので、1つ目のキーでファイルをAES暗号化したあとに、2つ目のキーでさらに暗号化するという「二重暗号化」を行うことで、解読を極めて難しくしています。
ファイルボルトが優れているのは単に「強固な暗号化である」というだけではありません。新機能である「インスタントワイプ」を利用すれば、Macから暗号鍵を削除、データにまったくアクセスできないようにしたうえで、データを完全に消去してくれます。また、XTSモードはGF演算によってデータが生成されていますが、これは万が一暗号化されたデータが破損しても被害を最小の範囲にとどめる「非チューニングモード」と呼ばれる手法で保護されています。
ユーザもウイルスも変更不可能な「防壁」
『SIP(エスアイピー)』
OS Xの基礎となる部分は「BSD」というオープンソースUNIXシステムです。これによって、Mac専用に開発されたソフトウェアだけでなく、UNIX由来のソフトウェアも利用できるため、大学や研究機関などより専門的なコンピューティングを必要とする現場でも高い人気を誇ります。
この自由度の高さがOS Xの特徴であり、利点ともいえます。しかし、近年増え続けるマルウェアの問題を考えると、この自由さが脆弱性に直結するという問題があるのも否めません。そこでアップルは、最新のOS Xエルキャピタンから、「SIP(System Integrity Protection)」というセキュリティ概念を新たに導入しました。
別名「ルートレス(rootless)」とも呼ばれるこの新しい仕組みが従来のUNIXと異なるのは、本来オペレーティングシステム(OS)のすべての領域にアクセス、実行できる権限を持つ「root(システム管理者)」でもファイルを追加したり、変更できないエリアが設けられていることです(範囲は左下図参照)。
SIPの導入によって「UNIXらしさがなくなってしまった」という指摘もありますが、実際に影響を受けるのはシステムフォルダなどオペレーティングシステムのコアとなる部分がほとんどで、どのUNIXディストリビューションでも本来は「システム開発元(OS Xの場合はアップル)以外がデータを追加するべきではない」と規定されているエリアがその範囲になっています。一般的な操作には、支障がないように設計されているのです。このためSIPの影響を受けるのはごく一部のソフトウェアにとどまり、その多くがすでに対策済みのアップデートが配布されています。
もちろん、重宝していたソフトがSIPの影響で動かないということも稀にあるかと思います。どうしてもそのソフトウェアが使いたいという場合は、SIPを解除することも可能です。しかし、SIPを無効化するということは、OS Xの「強固なセキュリティ」の一角が失われてしまうということにつながりますので、できるかぎり避けるべきでしょう。
SIPは、専門知識がない一般ユーザ含め、私たちの大多数が恩恵を受けるもので、悪意のあるマルウェアやウイルスがOS Xのコアに感染することを物理的に不可能にする「防壁」のような役割を持っているのです。
SIPが適用されるエリア
/Applications/に含まれる標準のソフトウェア
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
/System
/bin
/private/var/db/dyld
/sbin
/usr
SIPによって保護されるのは、標準ソフトやシステムのコアな部分。標準ソフトのアイコンを変更できないのもSIPによるものです。SIPを無効化する方法はありますが、セキュリティ機能を解除してしまうことになるので、おすすめはしません。
管理者、ゲストなど簡単に権限分けできる
『Access Restriction(アクセス制限)』
システムファイルやドライバ、ソフトウェアにライブラリなど、Macには間違って消してしまったり、書き換えてしまうと正常に動かなくなるファイルがたくさん存在します。そこでOS Xには、アクセス権という「誰が、どのファイル(もしくはフォルダ)を触っていいのか」という許可情報を扱う概念があります。
OS Xを含むUNIXのシステムはPOSIX(Portable Operating System Interface)に準拠しており、ユーザにはそれぞれ個別のアカウント名のほかに、属するグループが設定されています。これはファイルを扱えるルールとして、「オーナー(所有者)」「グループ」「その他」の3つのカテゴリに応じ、読み出し、書き込み、ファイルの実行という3つの動作権限を管理できる、シンプルなシステムを持っているからです。管理者権限を持つユーザはシステムファイルに近い部分にアクセスできる「Admin」グループに、この権限を持たない通常ユーザは「Staff」グループに、それぞれ属するように設定されています。
また、アクセス管理は当初は「読み/書き/実行」というシンプルなPOSIXアクセス権のみが提供されていましたが、現在では複数のユーザやグループに対してより細かなアクセス制御ができる「ACL(Access Control List)」というPOSIX拡張が利用できるようになっています。
このACLはファイルとフォルダへのアクセスを制御するための13のアクセス権がサポートされ、より下の階層にあるファイルやフォルダへアクセス権の伝達方法を指定する4種類の継承が定義されており、非常に詳細で柔軟なアクセス制御が利用できるようになっています。
柔軟な反面、要素が複雑で専門的なACLを使いこなすのが難しい場合には「ペアレンタルコントロール」を利用するのも良いでしょう。ペアレンタルコントロールとは、子どもによるパソコンや携帯電話などといったデジタルデバイスの利用を、親が把握して制限する取り組みのことを指します。OS Xの機能として搭載されており、システム環境設定にある[ペアレンタルコントロール]パネルを使うと、対象となる通常ユーザに対して、利用できるシステム機能やソフトウェアの種類を制限したり、WEBサイトのアクセス先やメール(もしくはメッセージ)で連絡できる相手といったコンテンツの管理、さらにはMacの利用時間帯まで制限できるようになります。
このペアレンタルコントロールの機能をうまく使っているのが「ゲストユーザ」です。システム環境設定にある[ユーザとグループ]パネルからゲストのログインを許可すると、システムや設定に影響する変更ができない範囲での権限を持ったユーザを作成して、ほかの人にMacを使わせることができます。ゲストユーザが使用したデータはログアウト後にすべて消去されるため、内部にデータが残らないなどプライバシーに配慮した設計が実現できるのも、これらのアクセス制御機能を組み合わせるからこそ実現できるソリューションなのです。
「システム環境設定」より、[ペアレンタルコントロール]パネルを選択します。アカウントを選択し、どの機能を制限するか選択します。[ブラウザの制限]を設定すれば、アダルトサイトのアクセスを制限したり、指定したWEBサイトのアクセスを制限できます。
Macソフトを安全に保つ仕組み
『App Sandbox(アップサンドボックス)』
ソフトウェア設計における「サンドボックス(砂場)化」というのは、ソフトウェアのアクセス制御とも呼べる存在です。OS Xの「アップサンドボックス(App Sandbox)」は、ソフトウェアが意図された動作だけを行うようにして、重要なシステムコンポーネントやユーザ個人のデータ、そしてほかのソフトウェアから分離、アクセスさせないように制限する「囲い(=砂場の外には出られないという意)」の役割を持ちます。
もしソフトウェアに問題のあるプログラムが含まれていたとしても、サンドボックス化されていることによって自動的にそれをブロックし、重要なプログラムやデータが破壊されないように予防してくれます。
OS Xの中にある標準ソフトでは、すでにほとんどがサンドボックス化に対応しています。Macアップストアからダウンロードして利用できるソフトも、サンドボックス対応が原則です。さらに、内蔵されたPDFビューアや、アドビ・フラッシュプレーヤ、シルバーライト、クイックタイム、ジャバなどのプラグインをサンドボックス化することで、サファリに保護機能を持たせているのです。
安全面では非常に強固になるサンドボックスですが、その反面アクセスできるエリアが大きく限られてソフトウェアが提供できる機能も制限されてしまうという問題も出てきています。そのためサンドボックスを実装しない(MASを使用しない、もしくは離脱した)ソフトウェアもあるなど、必ずしも「OS Xで動くソフトウェア=サンドボックス化されていて安全」ではないので注意が必要な部分もあります。
アップルの開発者向けWEBサイトの「Mac App Store Review Guidelines」には、サンドボックス化の概念と利点、機能説明などが記載されています。【URL】https://developer.apple.com/app-sandboxing/
OS Xに組み込まれたウイルス対策
『Internet Security(インターネットセキュリティ)』
コンピュータの「ハッキング」は、一般的に第三者が遠隔地からアクセスして乗っ取ろうとする行為を指しますが、近年では大きく分けて3つのやり方で攻撃されるといわれています。
1つ目が「ポートスキャン攻撃」。インターネットに接続して通信を行う際にデータの送受信を行う窓口(ポート)を外部からスキャンして、通信中のソフトウェアにある脆弱性を突いてシステムに攻撃を加えたり、未使用のまま解放されているポートからシステムへの侵入を試みる手法です。
OS Xでは、ポートスキャン攻撃を防ぐために「ソケットフィルタファイアウォール(socketfilterfw)」というソフトウェアがシステムに組み込まれています。これはシステム環境設定の[セキュリティとプライバシー]パネルから起動するもので、ソフトウェアごとにアクセスを許可するかどうか設定できます。別名「アプリケーションファイアウォール(Application Firewall)」とも呼ばれ、専門的な知識を必要とせずにポートスキャン攻撃を抑制できます。
加えて、より詳細で高性能な防御を行いたい場合には、コマンドラインベースの「パケットフィルタ(Packet Filter)」があります。こちらは、ポートごとに通信を制限することができるなど、専門家が必要とするような細かな設定まで利用可能なのが特徴です。
ポートスキャン攻撃はかつては有効なハッキング手段でしたが、ソフトウェアやシステムが成熟し成功率が極めて下がってきたことから新たな攻撃手法が主流となってきました。それが先述の「フィッシング」と呼ばれる詐欺行為です。
フィッシングに対する防衛が難しいのは、ソフトウェアの脆弱性ではなく、私たち人間の「心理的なスキ」を突くことでセキュリティ突破を試みるところにあります。その対策として、たとえばサファリにはフィッシング対策テクノロジーが組み込まれ不正なWEBサイトを検出する機能があり、「セーフ・ブラウジング・データ」という危険なWEBサイトを記録したブラックリストのようなデータベースを持っています。もし私たちが意図せず疑わしいWEBサイトにアクセスした場合でも、これをもとにページの表示をブロックし警告を表示してくれます。後述する設定方法を確認しておくといいでしょう。
また、インターネットからダウンロードした画像や音楽といった「一見無害」なファイルに、危険なマルウェアが潜んでいることもあります。OS Xはサファリ、メール、メッセージを使ってダウンロードしたファイルは、悪意のあるソフトウェアが組み込まれているかを自動検査するための「隔離」というメタ情報がファイルに追加されます。そのファイルを最初に開くと、ファイルのダウンロード元について警告したうえで、「開いてもよろしいですか?」と確認するメッセージが表示されます。
こういった注意を促す機能は「パーソナルファイアウォール」とも呼ばれ、ウイルス対策よりも水際で進入を防ぐソリューションとしてセキュリティ業界でも主軸として扱われ始めているテクノロジーなのです。
「システム環境設定」の[セキュリティ]パネルより、ファイアウォールをオンにし、ファイアウォールオプションから、個別のソフトウェアごとにアクセスの許可の設定ができます。
OS Xがメモリを保護する
『System Protection(システムプロテクション)』
システムに対する悪意のある攻撃は、直接システムにアクセスするのではなく別のソフトウェアの欠点を利用してくるものもあります。「バッファオーバーラン」はその典型で、これは設計者が意図していないサイズのデータを読み込ませ、メモリ領域全体の破壊を引き起こす不具合です。コンピュータセキュリティ上においてはもっとも深刻なセキュリティホールの1つとして認識されており、この問題が発見されれば最優先で修復にあたるという、極めて危険なバグです。
バッファオーバーランはそもそも発生させないように設計するのも大切ですが、万が一の事故を防ぐためにOS Xにはランタイム保護(Runtime protection)が搭載されています。これは実行されているプログラムの振る舞いを解析し、悪意があると思われるものを停止する機能で、バッファオーバーランを未然に防ぐ役割を持ちます。
システムが利用するデータの集積所である「メモリ」はその重要性と頻繁にデータが入れ替わる特性から、悪意のある攻撃者にもっとも狙われやすい箇所でもあります。そこでMacが採用するインテル社製のCPUにはXDビットというメモリ保護機能がハードウェアレベルで組み込まれています。これはデータに使うメモリ領域にマーキング(ビット)を付けることにより、プログラムが実行可能な命令に使うメモリとの間に頑丈な壁を築きます。これにより、データとプログラムを同等に扱わせて、システムを攻撃しようとするマルウェアを防げるのです。
もう1つ、モダンなメモリ保護機能としてASLR(Address Space Layout Randomization)という技術を紹介しましょう。これは日本語に訳すと「アドレス空間配置のランダム化」になりますが、ソフトウェアのさまざまな構成要素が保存されるメモリ上の位置をランダムに変更する機能です。これにより、悪意のある者がソフトウェアの構成要素を見つけ出して組み替え、サブルーチンを呼び出させるなどの「本来の意図」とは違う悪質な動作をさせる「Return-to-libc攻撃」の実行が難しくなります。これはOSが扱うメモリのビット数が長いほど効果的で、完全な64ビットに移行しているOS Xではシステムの中心となる「カーネル」上の攻撃成功確率を劇的に低下させています。
このように、OS Xでは複数のプロテクションを組み合わせてメモリを保護することで、その堅牢性と安定性を高めています。
アップデートにはセキュリティ修正が含まれる
ソフトウェアには、設計時に予期できないような不具合が発生することが、残念ながら、間々あります。これらはときに致命的な被害をもたらすこともあるため、アップルではその不具合報告をオープンに受け付けており、深刻度が高い不具合にも迅速に対応できる準備を整えています。機能の追加を含む「OSアップデート」以外に配布される「セキュリティアップデート」はまさにその代表格です。実際にどんな不具合があって修正されたかを知るにはアップルのWEBサイト「Appleセキュリティアップデート」に詳細な記事が公開されています。OS X用にリリースされたセキュリティアップデートは、通常の場合、次回のOS Xソフトウェアアップデートにも組み込まれています。
WEBサイト「Appleセキュリティアップデート」には、アップデートの項目がリリース日ごとに並んでいます。リンクをクリックすると、セキュリティコンテンツの詳細説明が表示されます。【URL】https://support.apple.com/HT201222