64
Macへの侵入を阻止するための簡単なヒント

Macユーザーの多くは、他のプラットフォームのユーザーほどセキュリティについて心配する時間がありません。確かにMacはWindowsほどマルウェアに遭遇しませんが、だからといってセキュリティリスクから逃れられるわけではありません。私自身も今週、そのことを実感しました。

不法侵入

火曜日の朝、自宅のMac miniで一晩中実行されていたダウンロードを確認しました。不思議なことに、画面共有のリクエストにも、普段使っているBluetoothキーボードとワイヤレスマウスにも反応しなかったので、強制的に再起動しました。再起動後(その間は正常に動作していましたが)、クラッシュの原因を突き止めようとしました。

このような状況でまず最初に私が立ち寄るのは、アプリケーション/ユーティリティフォルダにあるコンソールアプリです。このプログラムを使うと、Macとインストール済みのソフトウェアのログファイルにアクセスできます。「すべてのメッセージ」セクションをざっと確認したところ、原因と思われるものが見つかりました。似たような行が何百回も繰り返されていたのです。

それは次のようなものです:

6/1/10 9:59:40 AM sandboxd[404] sshd(403) deny mach-per-user-lookup

もし意味不明に思えてもご心配なく。私もよく分かりませんでした。ただ、sshd がリモートログインプロトコルである Secure Shell (SSH) のデーモン(バックグラウンドプログラム)であることは知っていました。

この文字列全体をGoogleで検索してみると、別のコンソールログ(/private/var/secure.log)で詳細を確認するようにという提案が見つかりました。Secure.logは、その名の通り、OS Xがセキュリティ関連のアクティビティを記録する場所です。案の定、何が起こったのかを詳細に、数百行にも及ぶ以下のようなエントリで記録していました。

Jun 1 04:05:41 Defiant sshd[59733]: Invalid user admin from 210.17.215.215

Jun 1 04:05:43 Defiant sshd[59735]: reverse mapping checking getaddrinfo for ip103.hellovoice.com [210.17.215.215] failed - POSSIBLE BREAK-IN ATTEMPT!

リストをざっと見返してみると、基本的に何が起こったのかはすぐに分かりました。何らかのリモートソースが私のminiに繰り返しログインを試み、多数のユーザー名とパスワードを試していたのです。ご覧の通り、この試みはhellovoice.comというサイトにまで遡ります。これはアジアに拠点を置くメッセージングサービス会社のようですが、真犯人がそのコンピューターを乗っ取って自分の命令を実行させていた可能性も十分にあります。

私のシステムは(少なくとも私の知る限りでは)侵害を受けずに済んだものの、それでも全体的に少し不安な気持ちになりました。幸いなことに、このような攻撃から身を守るのに役立つ簡単な方法がいくつかあります。

私はコーヒーが好きなようにパスワードも好きです。濃いコーヒーが好きです。

一番のポイントは、強力なパスワードを設定することです。パスワードは、ユーザーであるあなた自身が管理できる数少ないセキュリティ要素の一つです。最新のパッチを適用してシステムを最新の状態に保つことはできますが、パスワードが例えば「password」では何の役にも立ちません。私を狙ったような攻撃は、よく使われるユーザー名とパスワードの膨大なリストを巡回することで実行されます。

幸いなことに、強力なパスワードを作るのはそれほど難しくありません。Mac OS Xには内蔵のパスワードアシスタント機能があり、パスワードの強度を測るのに役立ちます(このユーティリティへの簡単なアクセス方法については、Mac Gemsの記事をご覧ください)。

Mac OS X に組み込まれているパスワードアシスタントを使用すると、パスワードの強度を評価することができます。

覚えやすく強力なパスワードを作成するための私の定番のヒントは、お気に入りの引用、歌詞、格言などを選び、それぞれの単語の頭文字を使うことです。例えば、ディケンズのファンなら、「It was the best of times, it was the worst of times(今が最高の時、最悪の時だった)」といった単語を選びます。それぞれの単語の頭文字を並べると、一見意味不明な文字列「iwtbotiwtwot」が出来上がります。そして、末尾または先頭に数字(できれば『二都物語』が出版された1859年など、意味のある数字)を加えると、「iwtbotiwtwot1859」になります。これは、たとえ人がても覚えられないようなパスワードです。覚えるために必要なのは、引用元の部分を覚えておくことだけです。(詳しいヒントについては、ジョー・キッセルによる強力なパスワード作成に関する記事をご覧ください。)

嵐の中で港なし

トラブルに巻き込まれた理由の一つは、自宅ネットワークの外からMac miniにアクセスできるように設定していたことです。つまり、自宅のルーターで特定の種類の接続をMac miniに転送するように設定していたのです。まるで窓を少し開けっ放しにしているようなものです。鍵を閉め出されてしまった場合の対策としては便利ですが、万が一泥棒に見つかった場合、侵入されてしまう可能性もあります。

この攻撃の標的となったリモートログインプロトコルをはじめ、多くのサービスは開いているネットワークポートに依存しています。これらのポートは、オフィスのメールボックスのようなものだと考えてみてください。特定の人宛のメッセージは特定のメールボックスに送られます。SSHは通常、ポート22でトラフィックを「リッスン」するため、悪意のある攻撃者にとっては、開いているウィンドウがどこにあるのかを一箇所で把握しているため、攻撃対象になりやすいのです。

私はルーター(AirPort Extreme)に、ポート 22 のすべての接続要求を mini のポート 22 に転送するように指示しました。こうすることで、ポート 22 でルーターの外部アドレス(ダイナミック DNS が設定されている)に接続するたびに、mini にログインしてファイルにアクセスできるようになります。

AirPort Extreme を含むほとんどのルーターでは、ポートを転送 (またはマップ) できます。

その利便性が、今回遭遇したような攻撃の脅威にさらされることにつながりました。しかし、開いているポートを分かりにくくする簡単な回避策が1つあります。それは、ルーターのポートを変更することです。ルーターでポート22への接続をminiのポート22に転送するのではなく、例えばポート5201(あるいは普段はあまり使われないポート)への接続をminiのポート22に転送するように設定しましょう。

AirPort Extremeなら、設定は簡単です。アプリケーション/ユーティリティからAirPortユーティリティを起動し、ベースステーションメニューで手動設定モードに切り替え、「詳細」アイコンをクリックするだけです。「ポートマッピング」セクションでプラスボタンをクリックして、パブリックポート(この場合は5201など任意のポート番号)と転送先のマシンのプライベートIPアドレス、そしてそのマシンのポート番号(ここでは22)を入力することで、新しい転送先を追加できます。あとは、リモートログイン機能を使用する際に、この新しいパブリックポートを指定するのを忘れないようにするだけです(ほとんどのクライアントにはポート番号を入力するフィールドがあります)。他のほとんどのルーターでも同様のポート転送機能をサポートしています。

ただし、これは決してあなたのマシンを防弾にするものではないことにご注意ください。特定のコンピュータで開いているポートを特定する技術は存在します(家の窓を覆うように)。そのため、あなたのマシンに侵入しようと企む攻撃者は、簡単には阻止できません。そのため、Macのファイアウォール(環境設定の「セキュリティ」パネル)とルーターのファイアウォールの両方で、接続を可能な限り少なく設定しておくことをお勧めします。

しかし、リモートからコンピュータにログインする能力を維持したい場合は、この方法は一般的なブルートフォース攻撃の多くを阻止するのに役立つはずです。その場合、すべてのアカウントに強力なパスワードを設定することをお勧めします。

ロックアップ

インターネットの世界は恐ろしいものです。Mac上では安全だと感じていても、常に予防策を講じることが重要です。しかし、安全のために地下にサバイバルシェルターを作る必要はありません。窓を閉め、ドアに鍵をかけることを忘れずに。中には極端な対策を推奨する人もいますが、セキュリティは常にトレードオフであり、専門家なら誰でも言うように、真に安全なシステムはユーザーがいないシステムだけです。