Software Updateの脆弱性って?
2002.07.29

セキュリティホールやウイルスといった脅威とは無縁とも言える生活をおくれていた Mac OS 9 以前の頃と違い、 Mac OS X v10.0 が登場してから二度めのメジャーアップデートである Mac OS X v10.2(Jaguar) のリリースを間近に迎えた最近では、徐々にそれに対する意識が必要であることを個人 的に感じさせられてきています。

というのは、 Mac OS X のベースが、御存じの通り UNIX だからなんです。

Mac OS X を、従来の Mac OS と同じようにマックとして使うということは当たり前のことで、そこにベースが UNIX であるということを意識する必要は全く無いと思います(恩恵を意図的にあずかりたい という場合は別)。でも、ベースが UNIX である以上、 UNIX 、またはPC UNIX(ここではLinuxやFreeBSDなどを示す)で発覚したセキュリティホー ルやウイルスなどの脅威は、マックユーザであっても、無視できる問題では無いと言え るでしょう。

Mac OS 9が棺桶に入り 、これからは Mac OS X がMac OSとなっていくわけですから、その方面にも少しは目を向ける必要があると考え ているのです。

ところで、最近問題となった Software Updateに関する脆弱性(ぜいじゃくせい) ですが、いったい何が問題なのか、理解している方は少ないのではないでしょうか。偉 そうなことを言うつもりはありません。なにしろ僕自身もその一人でしたから。でも、 これを機に脱皮しようと考えているのです。

問題について調べて理解に努める。大事なことですね。しかし、残念ながら時間という 制約があるため、個人的には UNIX 系で起きている不穏な動きが、 Mac OS X にどう影響するか、またはしないのか、見極めるところまではできません。できること は、せいぜい明らかになった Mac OS X に関する問題が、どう問題なのかを調べることぐらいです。事後ではあるのですが、ま だマシと前向きに考えています。

そこでまず、第一段として調べたみたのが Software Updateに関する脆弱性問題 についてです。

Software Updateに関する脆弱性問題 は、 Security Update 7-12-2002と Security Update 7-18-2002 が該当します。 Security Update 7-18-2002 はSecurity Update 7-12-2002の強化版のようですが、詳しいことは分かりません。た だ、コマンドライン(Terminalから/usr/sbin/softwareupdateを実行)によるソフトウェ ア・アップデートにおいても、対処がされたようです。

では、肝心のいったい何が問題なのか、という点ですが、実はこれは Mac OS X に限った問題ではなさそうです。インターネットと言えばウェブがイコールのような存 在ですが、それにまつわる古来よりの問題と言えるかもしれません。(いや、正確には DNSを介す場合の問題でしょうか。)

DNS Spoofingという言葉を聞いたことがあるでしょうか。これは、なりすまし(Spoof) と呼ばれる類いの一種で、DNSが返すIPアドレスを偽造してしまうという手法です。DNS が返す情報が偽造され、全く違うIPアドレスが返されてきた場合、いったいどんな事態 が想定されるでしょう。

例えばウェブ経由で、www.foo.comというサーバからhogehoge.dmgをダウンロードする として、www.foo.comのIPアドレスは192.168.0.1だったとします。ユーザはまず、ウェ ブブラウザのURL入力フィールドにhttp://www.foo.com/hogehoge.dmgと入力します(張 られているリンクをクリックでも同じ)。そうすると、内部的なメカニズムでは、DNS サーバにwww.foo.comのIPアドレスを照会し、結果として返された192.168.0.1というIP アドレスのサーバに接続しにいき、それから目的のhogehoge.dmgをダウンロードします。 つまり、http://192.168.0.1/hogehoge.dmgとウェブブラウザのURL入力フィールドに入 力するイメージです。

ところが、DNSサーバにIPアドレスを照会しに行った際、DNSサーバが正常では無かった とすると、つまり悪意のある人間によって手が加えられていたとすると、IPアドレスは 192.168.0.1ではなく、全く違う123.456.78.90などといったIPアドレスが返されてきて しまいます。ここでなりすましが成立します。

一般的なオペレーションでは、www.foo.comになりすまされ、全く関係のないサーバに 接続しているとは思いませんから、偽のhogehoge.dmgをダウンロードしてしまうでしょ う。そしてhogehoge.dmgをマウントして、その中にあるfefefe.pkgなどというファイル をダブルクリックしたら・・・。

Software Updateは、 Apple または Apple が依託しているサーバから必要なソフトウェアをダウンロードしてきますが、前述した ように、DNSサーバがおかしければ、このような事態は発生しうるのです。

これが Software Updateの脆弱性 にあたるわけですね。そしてその対策が、Security Update 7-12-2002なり Security Update 7-18-2002 になるわけです。

ではどう対策されているのかというと、そこにはデジタル署名という技術が使われてい ます。そして、デジタル署名のメカニズムのポイントは公開鍵暗号方式です。

公開鍵暗号方式というのは、データを暗号化し、第三者にそのデータの内容を見られな いようにするために使用される暗号の仕組みの一種です。

公開鍵暗号方式の特徴は、鍵を2つ使用するところにあります。1つは公開鍵と呼ばれる もので、文字通り、暗号化データをやり取りしたい相手に公開しておく鍵です。暗号化 データを送ってもらう際は、予め相手にこの公開鍵を渡しておき、この公開鍵を使って データを暗号化してもらいます。

一方、暗号化データの複合(暗号化されたデータを元に戻す)には、秘密鍵と呼ばれる 鍵を使用します。やり取りしたい相手に渡しておいた公開鍵では複合できません。つま り、公開鍵で暗号化されたデータは、公開鍵で複合できません。できても意味が無いで すしね。

秘密鍵は自分だけが持っておく鍵になるので、公開鍵で暗号化されたデータの複合は、 自分だけが行うことができます。他人にはできません。

また、秘密鍵でデータを暗号化することもできます。秘密鍵で暗号化されたデータは、 公開鍵でしか複合できません。これは、例えば、暗号化データを幾人かに送りたい場合 などに使えます。予め、幾人かに公開鍵を渡しておき、データを秘密鍵で暗号化します。 暗号化データをその公開鍵を渡した幾人かに送信すれば、公開鍵を持つその人たちだけ が複合できることになります。これを、公開鍵で暗号化したデータでやろうとすると、 暗号化データを渡したい人の公開鍵を予め受け取り、それで暗号化しなくてはいけない ので、人数が多い場合は大変です。

さて、この秘密鍵で暗号化したデータを公開鍵で複合する、というメカニズムを使用し ているのがデジタル署名になります。

デジタル署名は、そのデータが正しいものであることを証明するものです。Software Updateで言うと、ダウンロードしたソフトウェアなりが、本当に Apple から提供されたものなのかをユーザが見極めるために必要な情報なのです。

ソフトウェアを提供する Apple は、秘密鍵で署名を暗号化し、Software Updateでソフトウェアと一緒に提供します。 ユーザはそれをダウンロードし、公開鍵で署名を複合するのです。ユーザが持っている 公開鍵で正しくその署名が複合できなければ、不正なデータとして検出することができ ます。

今回のアップデートで、このメカニズムがSoftware Updateに組み込まれるようになっ たため(つまり、公開鍵を持ち、そしてそれを使って署名を検証するプログラムが組み 込まれた)、前述したようなDNS Spoofingといったなりすましにあった(あっていた) 場合でも、ただちに検出してくれるはずです。

・・・調べて分かったことはこんなところですが、デジタル署名はもうちょっと奥が深 いのです。その辺りはセキュリティ関連のウェブや書籍におまかせし、ここでは簡単に 触れてみました。もしかすると間違っているかもしれないので、確実なことを知りたい 人は、各々追求してみて下さい。

最後に一つ気になることが。 Software Updateに関する脆弱性問題 の対策は Mac OS X のみで、 Mac OS 9 については現状されていません。 棺桶入りしたOS のサポートはもうしないんでしょうか・・・ね?


info@Mackers