Mac業界の最新動向はもちろん、読者の皆様にいち早くお伝えしたい重要な情報、
日々の取材活動や編集作業を通して感じた雑感などを読みやすいスタイルで提供します。

Mac Fan メールマガジン

掲載日:

OS Xのセキュリティ機能「Gatekeeper」ってどういう仕組みなの?

著者: 千種菊理

OS Xのセキュリティ機能「Gatekeeper」ってどういう仕組みなの?

昔と今のセキュリティ認識

「ゲートキーパー(Gatekeeper)」はOS X10.8マウンテンライオンで導入された、ユーザの意図せぬソフトウェアの実行を阻止することで、安全性を高めるセキュリティの仕組みです。なぜソフトウェアの実行を制限することがコンピュータの安全性につながるのか? それは今と昔のコンピュータの使われ方の違いにあります。

かつてコンピュータといえば、「大型汎用機」や「ホストコンピュータ」と呼ばれる、大企業や国の機関に設置された、巨大で強力なものが各地に1台や数台程度存在しただけでした。1台の大きなコンピュータに複数のユーザが同時にアクセスして使用していたのです。

当時すでにマルチユーザ、マルチタスクで動作していたホストコンピュータの管理者権限を奪えば、ほかの人のデータを読み出したり改ざんができたりしたので、対策をしないと、データを盗む企業スパイや国家間の破壊工作になりかねませんでした。そのため、システム管理者の権限を守ることが重要視されたのです。UNIXには、当時のほかのOSに比べれば比較的単純ではありますが、強力な「管理者」と規律のある「一般ユーザ」というアカウントの種別がシステムレベルで用意されていました。

その当時のいわゆる「パソコン」はまだ非力で、乗っ取っても意味がない、せいぜい音を鳴らしたりデータを消したりといった「嫌がらせ」「愉快犯」がいた程度でした。

コンピュータが一般的になった弊害

インターネットが世界を席巻した90年代以降になると、180度話が変わってきます。ネットにつながった一般のコンピュータの、管理者でもない普通のユーザ権限でも「乗っ取る価値」ができたのです。たとえば、家庭などのコンピュータを乗っ取ってそこを経由して悪事を働くことで自分の所在を隠すことができること。また、たくさんのパソコンを従えて一斉にアクセスすることで企業サイトを利用不可にさせる、「DDoS」という攻撃ができたのです。

2000年以降のデスクトップOS、OS Xやウィンドウズなどはシステム管理者と一般ユーザの権限を分け、以前よりも頑丈になりました。しかし、DDoSを仕掛けたり、迷惑メールの送信に使うには一般ユーザの権限でも十分。WEBブラウザを使える、メールクライアントを使えるだけでも「悪さ」ができます。そのため、一般ユーザの使うソフトウェアにも安全性が問われるようになってきました。

また、ホストコンピュータの時代は利用するユーザは技術者であることが多く、リテラシーが高く、簡単に悪意ある攻撃に惑わされませんでした。しかし今日、OS XやiOSを使っている人はごく普通の人たちで、ITに詳しいわけではありません。そうした人たちが騙されないように、かつ使いこなせる程度にわかりやすい仕組みが求められてきます。こうした問題が無視できないようになった2000年代中盤から後半にかけて、抜本的な対策がとられはじめました。

3つの対策でセキュリティを強固に

まず1つ目は、「コード署名(Code Sign)」というもので、ソフトウェアに電子署名を行うことで改ざんを防止する仕組みを入れました。たとえ優良ソフトウェアでも悪い人が脆弱性を通じて改ざんしてしまえば、その瞬間から「悪意あるソフト」になってしまいます。コード署名により、ディスク上に格納されたソフトウェアのファイルが、出荷された状態から変更されていないことが起動のたびに確認されるようになったのです。

次に、「Macアップストア(Mac App Store)」による安全なソフトウェアの配信を行うようになりました。iOSでもおなじみのソフトウェアマーケットは、アップルがソフトに悪意ある機能が搭載されていないかを確認しており、安全性が保証されます。

そして、最後が冒頭のゲートキーパーです。ゲートキーパーは、電子署名がされていないソフトウェアや、Macアップストアから配信されていないソフトウェアの利用を阻止します。安全なソフトウェアだけを利用できるように制約をかけるわけです。

ただし、OS Xはこれまでオープンソースやフリーソフトなどのいろいろなソフトウェアを動かしてきました。こうしたソフトウェアの作者の中には、アップルと契約してコード署名を施すことや、審査がいるMacアップストアでの販売を嫌う人もいたようです。彼らを排除しない、そして彼らのソフトウェアを利用するユーザを不便にしないために、ゲートキーパーはどのレベルのソフトウェアを使うのかを選択できるようになっているのです。

ゲートキーパーの前提が崩れる?

ゲートキーパーの安全性は、指定したレベルのソフトウェアしか動かさないという前提で成り立っています。しかし昨年6月に、ある手順を通すことでこれをすり抜けられるのが、セキュリティの専門家によって発見されました。

「CVE-2015-7024」という番号で識別されるこの脆弱性は、署名された安全なソフトウェアでも、内部的に別プロセスを実行するときにできる隙を突いており、ソフトは「自分の知っているバックグラウンドのコマンド」を実行したつもりが、攻撃者が指定した別のコマンドを実行させることができてしまうというものでした。

もちろん、悪意あるコマンドをMacに送り届ける必要があったり、隙を突くためにはユーザにソフトを起動させる必要があったりという前段が必要なので、そこまで重い脆弱性というわけではありません。しかし、人を騙す行為との合わせ技が考えられる以上、早急に対策を打つ必要がありました。

すぐにアップルは昨年12月に出したセキュリティアップデートでこの問題を解決したといっています。一方、セキュリティの専門家はその解決策を不十分とみて、結果、今年に入ってからネットの話題になっています。

脆弱性への対策はあるのか?

こうした脆弱性の対策として徹底したいのは、見知らぬWEBサイトからダウンロードしたZIPファイル、見知らぬ相手から送られてきたメールの添付ファイルなど、怪しいファイルを不用意に開かないということです。そのうえで、先述のセキュリティアップデートにより直る部分もあるので、ソフトウェアアップデートは必ず行いましょう。この問題は原理的に OS X10.8マウンテンライオンから起こりますが、パッチはOS X10.9マーベリックス、OS X10.10ヨセミテ、OS X10.11 エルキャピタンでしか提供されていません。古いOSを使っている場合は、可能ならば新しいOSにアップグレードすべきです。

また、タイムマシンなどを使って、データのバックアップをとっておくことを強くおすすめします。万が一何かあっても、クリーンインストールしてからタイムマシンバックアップでファイルを取り戻して、直すことができるからです。いずれも、OS Xではそこまで難しいことではありません。できることをきっちりやっておく。それだけでも安全性は高まるのです。

Gatekeeperの仕組み

ソフトウェア起動の前にコード署名を検証し、正しくなければ起動しません。また、Macアップストアから配布されたものかも確認し、そうでない場合は同様に起動しません。これらの2つがどちらもOKなら、ソフトウェアが起動します。

Gatekeeperの設定

ゲートキーパーの設定は「システム環境設定」から[セキュリティとプライバシー]パネル→[ダウンロードしたアプリケーションの実行許可]で設定ができます。[Mac App Storeからのアプリケーションのみを許可]を選ぶと、Macアップストアでダウンロードされたソフトしか起動できなくなります。

【 電子署名 】

電子署名は公開鍵暗号という暗号の特性を使って、データが改ざんされてないことを保証する仕組みです。公開鍵暗号には2つの鍵があり、一方をみんなに公開する公開鍵、もう一方を隠す秘密鍵とします。暗号として使う場合は、公開されている公開鍵で暗号化し、それは秘密鍵でしか解除できなくなります。逆に秘密鍵で暗号化すると、誰もが公開鍵で開封できるわけです。しかし、秘密鍵を持ってる人はその人だけで、ほかの誰も同じ秘密鍵で暗号化できないのため、暗号化した瞬間から中身が変わってないことを保証できます。

【 DDoS攻撃 】

DDoS攻撃(Distributed Denial of Service attack)は多数のコンピュータから一斉にサーバへアクセスをかけることで、サーバを飽和させ、サービスを機能停止にしてしまうことを意味します。もともと、サーバソフトの弱点を突いたり1台から少数のコンピュータで負荷をかける「DoS攻撃」というのがあったのですが、これを多数のコンピュータから大規模に行うことから「分散」を意味する「Distributed」がつけられ区別されるようになりました。もちろんDDoS攻撃に参加することに賛成の人はまずいないので、人のコンピュータにこっそり悪意あるプログラムを仕掛け、それに指示を出して攻撃するのが主流になります。

【公開鍵】

開発者はそれぞれ固有の公開鍵を持ちますが、その公開鍵がその開発者のもので改ざんされていないと保証するために、アップルにより電子署名がされます。ちなみにアップルの開発者登録をしないと、この署名は行われないようになっています。

【SPAM】

迷惑メールのことを「SPAM」(スパム)と呼ぶことがあります。これは、「モンティパイソン」というコメディ番組で、レストランにいる周囲の人間が食べ物の「スパム」を連呼し、ほかの客が迷惑を被った、ということから由来になっています。

文●千種菊理

本職はエンタープライズ系技術職だが、一応アップル系開発者でもあり、二足の草鞋。もっとも、近年は若手の育成や技術支援、調整ごとに追い回されコードを書く暇もなく、一体何が本業やら…。