組み込み機器でTOMOYO Linuxを使う
組み込み機器とは?
「TOMOYO Linux徹底解剖」では、これまでUbuntu、Debian、GentooといったディストリビューションとTOMOYO Linuxとのかかわりについて解説してきました。この最終回では、組み込み機器とTOMOYO Linuxの関係を取り上げていきます。
まず「組み込み機器」というとどのようなものが思いつきますか?
携帯電話や携帯音楽プレーヤー、PDA、ゲーム機、AV機器などだと思いますが、炊飯器や洗濯機、エアコンなどの家電製品、ATMやコンビニの情報端末、駅の券売機や改札機も組み込み機器です。そのほかにも自動車や航空機、人工衛星など、組み込み機器を多数組み合わせたシステムもあります。このように私たちは数多くの組み込み機器に取り囲まれて生活しています。これらには、次のような特徴があります。
・処理に必要な機能を、最小限の資源で構成
製造コストや販売価格を抑えたり、信頼性を向上したりするため、機能を実現するのに必要最小限のソフトウエアとCPU・メモリなどのハードウエアを実装します。
・機器ごとに特化したハードウエア上で専用のソフトウエアが動作
機器の使用目的に合わせて設計されたハードウエア上で、その機能を有効に使うために専用のソフトウエアが動作する場合も多くあります。
・ソフトウエアは頻繁に書き換えることがない
ソフトウエアはファームウエアとしてROMなどに書き込まれている場合が多く、書き換える頻度は多くはありません。また機器によっては書き換え不可能なものもあります。
・市場に同じ機器が多数存在する
家電製品や携帯機器など、量産されるものは、同じハードウエア/ソフトウエアの構成で大量に出回ります。
組み込み機器とセキュリティー
以上の特徴を持つ組み込み機器は時代とともに進化してきました。CPUの高速化やメモリ容量の増加などハードウエア資源が豊富になるにつれ、機器に実装される機能もどんどん豊富になっています。ネットワーク対応もその一つでしょう。今後もIPv6の利用が進んでいくにつれ、ネットワークに接続する機器がどんどん増えていくと予想されます。
この高機能化に伴うソフトウエアのコード量の増加や、昨今の製品サイクルの短縮化、低価格化などに対応するために、開発をいかに効率よくしていくかが重要な課題になっていきます。
そのような課題を改善する一つの手段として、Linuxのような汎用OSをベースにした組み込みOSを利用する方法があります。汎用OSにはネットワーク機能を含めさまざまな機能が備わっているので、開発の手間が省けます。組み込みLinuxの場合、多くのCPUアーキテクチャや、さまざまなハードウエアデバイスに対応しているほか、オープンソースであるためカスタマイズしやすいなどの利点もあり、多くの組み込み機器に利用されています。
しかし、このような汎用OSをベースとした組み込みOSを利用すると、PCと同じようなネットワーク経由の攻撃やウイルスなどの脅威にさらされることになります。
ところが組み込み機器ではPCと同じようなセキュリティー対策が取れるわけではありません。前述の通り、OSがファームウエアとしてROMなどに書き込まれていることが多いため、脆弱(ぜいじゃく)性のあるプログラムを簡単にアップデートできないのです。また24時間365日連続動作し続けるような産業分野の組み込み機器などでは、書き換えのための停止も簡単にはできません。
また、パターンファイルを用いるようなアンチウイルスソフトを組み込む余裕もありません。もし組み込めたとしても、パターンファイルの更新やウイルスの検索だけでCPUやメモリなどのリソースの大半が食いつぶされてしまう可能性があります。
とはいえセキュリティー対策を怠ると、問題が起きたときに市場に出回った機器の量だけ被害が大きくなっていきます。実際に組み込み機器でよく使われるMIPSのCPUを搭載したネットワーク機器が攻撃され、数万台の機器がボットネットの一部として利用されてしまった例もあります。もし大量に流通している機器で同様のことが発生した場合、直接被害による影響だけではなく、製品の回収やサポート要員の現地派遣など、企業の対策コストは莫大(ばくだい)なものになりかねません。