助成研究者情報(西宏章先生2)|安全安心な科学技術の振興:セコム科学技術振興財団

慶應義塾大学理工学部システムデザイン工学科 教授 西宏章先生インタビュー 「ネットワークトラフィックに直接介入するサービス指向ルータにより展開される新たなスマートサービス」(第1回)


悪意ある攻撃からパソコンなどの端末を守るためには、個人でセキュリティソフトを入れるくらいしか方法がありません。しかしルータに中身を見る機能を付加することで、データを受け取る前段階から防御できるようになるのですね。

 攻撃を行おうとしているユーザは、アタックできるIPアドレスを順番に探しています。泥棒が留守宅を探して、住宅地にある家のドアチャイムを一軒ずつ鳴らしては逃げているような状態ですね。
 このような攻撃に対して、家のカギを頑丈にする、つまり最新のウイルスソフトを入れて防御することは大事です。しかしそれよりも怪しい動きをしている人物がいないか、道路に立って監視するほうが、より確実にリスクを発見することができるのです。

パソコンをはじめとする通信機器への攻撃を、未然に防ぐ可能性が高くなるということですね。しかし近年、インターネット通信は高速化・大容量化が進んでいますが、一つひとつのデータをチェックすることは可能なのですか。

 例えば、我々が対象としている回線では、1回線を6万人から10万人のユーザが使用しています。さらにパケットと呼ばれる小さなデータに分けられ、混ざり合った状態で伝送されています。
 この混ざり合ったパケットをそれぞれ順番に並べ直し、元の状態に戻してから確認すると、膨大なメモリが必要になり、処理速度が大きく落ちます。そのため、この研究の論文を初めて提出した2008年当時は、否定的な意見しかありませんでした。通信速度を落とさず、ホストに届く前段階で情報をチェックするのは「不可能だ」と言われていたのです。
 そこで、発想を変えました。パケットを元のデータに戻すのではなく、バラバラのまま、途中経過を記憶するという方法です。

途中経過を記憶とは、どういうことでしょうか。

 たとえば、あるウイルスが「ABC」という文字列を持っているとします。
 すべてのパケットには「誰から、どこへ」という、送り主と宛先のIPアドレスを示すラベルがついているので、「○から△へ」というパケットに「A」が入っていたら、「○から△へのデータに、Aを確認した」と記憶します。その後、同じ「○から△へ」のパケットで「BC」が含まれているものを探します。発見したら、それがウイルスを含むデータだとわかるので、ブロックします。
 バラバラのパケットを元のデータに戻してから、そこにABCが含まれているのかどうかを確認するのではなく、「Aを含むパケットが来た」という途中経過を記憶するだけなので、データ管理に必要な容量を劇的に減らすことができました。