<不正アクセス>個人データ引き出す 京大の研究員を逮捕

 あまり時事ネタは扱わないようにしているのですが、不正アクセスって何だろうなどと思ったので扱ってみます。威力業務妨害についてはさっぱりわからないのでとりあえず保留です。

 さて、不正アクセスとは何を指すのでしょうか。条文のほうを見てみましょう。不正アクセス行為の禁止等に関する法律、第三条第二項には次のように定義されています。

2 前項に規定する不正アクセス行為とは、次の各号の一に該当する行為をいう。  

一 アクセス制御機能を有する特定電子計算機に電気通信回線を通じて当該アクセス制御機能に係る他人の識別符号を入力して当該特定電子計算機を作動させ、当該アクセス制御機能により制限されている特定利用をし得る状態にさせる行為(当該アクセス制御機能を付加したアクセス管理者がするもの及び当該アクセス管理者又は当該識別符号に係る利用権者の承諾を得てするものを除く。)  

二 アクセス制御機能を有する特定電子計算機に電気通信回線を通じて当該アクセス制御機能による特定利用の制限を免れることができる情報(識別符号であるものを除く。)又は指令を入力して当該特定電子計算機を作動させ、その制限されている特定利用をし得る状態にさせる行為(当該アクセス制御機能を付加したアクセス管理者がするもの及び当該アクセス管理者の承諾を得てするものを除く。次号において同じ。)

三 電気通信回線を介して接続された他の特定電子計算機が有するアクセス制御機能によりその特定利用を制限されている特定電子計算機に電気通信回線を通じてその制限を免れることができる情報又は指令を入力して当該特定電子計算機を作動させ、その制限されている特定利用をし得る状態にさせる行為

えーっと、つまりおおざっぱに言うと次のようになりますか?アクセス制御機能を持つ電子計算機に対して次のような行為を行うことが不正アクセス行為となります。

  1. 他人の識別符号(IDとパスワードなど)を入力してなんかすること。
  2. アクセス制御機能で利用できないはずの機能を、何かの手段で利用すること
  3. Aの電子計算機がBの電子計算機のアクセス制御機能を担当している場合にBを何かの手段で利用すること

次に、アクセス制御機能は何を指すかというと、第二条第三項に定義されています。

3 この法律において「アクセス制御機能」とは、特定電子計算機の特定利用を自動的に制御するために当該特定利用に係るアクセス管理者によって当該特定電子計算機又は当該特定電子計算機に電気通信回線を介して接続された他の特定電子計算機に付加されている機能であって、当該特定利用をしようとする者により当該機能を有する特定電子計算機に入力された符号が当該特定利用に係る識別符号(識別符号を用いて当該アクセス管理者の定める方法により作成される符号と当該識別符号の一部を組み合わせた符号を含む。次条第二項第一号及び第二号において同じ。)であることを確認して、当該特定利用の制限の全部又は一部を解除するものをいう。

 ということなので、識別符号によらなければアクセス制御機能にならないみたいですね。

 それで上の事件ですが・・。聞いた話によればPOSTメソッドで特定のURIとパラメータを送るだけでできたとか言う話なので*1、特定の識別符号があったようには思えないし、「不正アクセスではない」と京都大が会見しているので、この逮捕というのはかなり思い切った判断なのだろうと思います・・やはり詳細はわかりませんが。

 この話はここでおいておいて、次にこんな例を考えて見ましょう。これは不正アクセスにあたるのでしょうか。

BASIC認証でアクセス制御されているファイルがあった。POST,GETメソッドではアクセス制御が働くのだが、他のメソッドではこのアクセス制御が働かないので、他のメソッドでこのファイルにアクセスを行った。

 BASIC認証の設定で、.htaccessなんて書いてしまうと他のメソッドが素通りしてしまうのは当然ですよね。だって、読んで字のごとく、GETとPOSTしか制限してないのですから*2。たとえば、これによって意図せずファイルにアクセスすることができたとしても、プログラムのバグやセキュリティホールには当たらなくて、単なる設定ミス・・のはずなので、不正アクセスには当たらないような気がします。だって、もともと制限されていない設定なのですから。
 このように考えてくると、不正アクセスって、意外とわかったようでわからないような気がしてきます・・。

 まとめると、プログラムのミスやバグを使えば不正アクセスになる可能性がある。でもそれはバグが仕様なのかはよくわからないことが多そう。設定のミスはこれを使っても不正アクセスにならい。というわけで、不正アクセスになるかどうかはそのシステムに精通していないと判断できないことになってしまいませんでしょうか。

*1:SQL injectionじゃないかと思うのですが詳細はわかりません。もしSQL injectionならば、クエリが通るのはある意味仕様であって、想定しないクエリが通ってしまうことが問題です。想定していないとはいえ、それがプログラムのミスか設定なのかは、使う側からはわからない気がしますがどうなんでしょう。あと、「CGIプログラム」の一部を書き換えて と報道にあるのは誤報な気がします。

*2:ちなみにこのような記述例を薦めているサイトがたくさんありますがだいじょうぶですか?