セキュリティ: LAN全体をカラダと見なし防衛 |
未知の攻撃を検知し,防御する――。こういった生物の免疫機構をコンピュータ・システムに取り入れようという動きがある。
生物の免疫系は,大きくB細胞とT細胞と呼ばれる二つの細胞が担っている(図4[拡大表示])*2。B細胞は抗原(ウイルス)に対抗する。表面に抗原を検知するさまざまなアンテナを持つ。これで抗原を検知すると,対応した抗体を作り出す。抗体が抗原を攻撃する。未知のウイルスの場合は,対応するアンテナをB細胞は持たないが,B細胞は突然変異を繰り返し,やがて未知のウイルスに対応するアンテナを持ったB細胞を作り出す。
T細胞はウイルスに感染してしまった細胞を攻撃する役目を負う。T細胞は胸腺と呼ばれる個所で作られる。胸腺では突然変異を繰り返し,ウイルスに感染した細胞だけを攻撃する細胞が選り分けられる。これらが体内に流通する。
東京理科大学で情報メディアセンター長を務める溝口文雄教授らはこの免疫機構をLAN全体に適用するシステム1を開発し,実験を行っている(図5[拡大表示])。「LANがあたかも一つの個体のように動作し,外敵となるユーザーやプログラム,通信を発見し,排除するシステムを作り上げる」(東京理科大学の溝口教授)のが目標だ。
このシステムでB細胞に相当するのが通信を監視するエージェント(B細胞エージェント)。細胞に感染する前に検知し,食い止めるという点でB細胞と同じである。T細胞に相当するのがプロセスを監視するエージェント(T細胞エージェント)。問題のある細胞を検知し,破壊するという点でT細胞と同じだ。
B細胞エージェントは,監視対象のサービスに対して通信が発生するごとに生成する。このとき,送信側のIPアドレスとポート番号,受信側(自分)のポート番号などを記録する。また,自分以外を発見するためのルールを持っており,ルールに合致するようなパケットがやってきた場合は,セッションを切るなどの措置を取る。
T細胞エージェントは,監視対象のサービスから起動したプロセスごとに作る。また,起動したプロセスが立ち上げたプロセスに対しても新しいT細胞エージェントを生成する。T細胞エージェントは,プロセスのユーザーID(権限),プロセスID,プロセスを起動した親プロセスのIDなどを持つ。また,非自己を判定するルールを持っており,これに合致した場合は,担当しているプロセスを停止する。
このシステムのミソは,エージェント間に通信チャネルがあることだ*3。これにより,何か不正な処理が行われた可能性がある場合は,関連するエージェントに問い合わせて,確認することができる。
例えば,Guestユーザーが不正な処理をすることで,root権限を取るという手口がある(エスカレーションという)。プロセスレベルで見ると,Guest権限のプロセスからroot権限のプロセスが起動されたように見える。そこで,「root権限で起動されたプロセスがある場合,その親プロセスに通信チャネルを使って問い合わせる。もし,rootプロセスではないときは,プロセスを停止する」「関連あるT細胞エージェントやB細胞エージェントにプロセスや通信の遮断を指示する」というルールを作っておけば,不正アクセスを排除できる。
また,不正アクセス・パケットの送信側にこのシステムが導入されていれば,受信側のB細胞エージェントと,送信先のプロセスが通信チャネルを通して連携し,攻撃しているプロセスを止めることが可能だ。こういった処理が連鎖していけば,LAN全体から不正プログラムを排除できる。実験では,1台のコンピュータにだけ不正アクセスを排除する新しいルールを導入して,全体から不正プログラムを排除できたという。