SELinuxで組み込み機器のセキュリティを高める(前編) ―― SELinuxの概要
● Linuxの問題点
Linuxに関する情報は豊富なので,攻撃する側にとっても,攻略しやすいプラットホームと言えます.Linuxを使う場合は,セキュリティに十分気を使う必要があります.しかし,不正侵入が発生した場合,Linuxではその被害が大きくなりがちです注1.その原因は,「root権限の存在」と「粗いアクセス制御」です.
1) root権限の存在
Linuxには,任意の操作が許可されるroot権限があります.つまり,攻撃者にroot権限を取られると任意の操作を許してしまいます.組み込み機器では,すべてのアプリケーションをroot権限で動作させていることも多くあります.もし,そのようなアプリケーションにセキュリティ・ホールがあり,攻撃者に乗っ取られると,攻撃者に任意の悪事を働かれてしまいます.
2) 粗いアクセス制御
Linuxは,プロセスのユーザIDをベースに,プロセスがアクセスできるファイルを制限できます.しかし,このアクセス制御は,root権限を持ったプロセスには回避されてしまいます(root権限があれば,すべてのファイルにアクセスできる).悪いことに,root権限に昇格できるようなセキュリティ・ホールがよく見つかっています.その上,アクセス制御をかけられる対象はファイルのみで,ポート番号のようなネットワーク・リソースにはアクセス制御をかけられません.ポートに対するアクセス制御がないと,「攻撃者が組み込み機器を乗っ取り,http通信(80番ポート)を使って,ほかのWebサイトに不正なパケットを送りつける」というように,機器を攻撃の踏み台に使われてしまいます.
● 組み込み機器におけるセキュリティ対策の難しさ
このような不正侵入を防ぐためのセキュリティ対策として,パソコン環境ではファイアウォールを設置する,ウイルス対策ソフトウェアを導入する,定期的なアップデートを適用する,などの対策が行われています.しかし,これらの対策をそのまま組み込み機器の環境に持っていくのは困難です(図2).
図2 組み込み向けのセキュリティ対策の難しさ
1) 専用の機器を置けない
ファイアウォールは,一般的に業務用で高価です.一般家庭にそのような機器を設置するのは,コスト面から難しいでしょう.
2) ファイル・サイズが限られる
ウイルス対策ソフトウェアですが,そもそも組み込み向けのウイルス対策ソフトウェアは,ほとんど存在しません.仮にパソコン向けのものを転用すると考えても,パターン・ファイルの大きさが10Mを超える場合もしばしばです.組み込み機器では,フラッシュROMなどの補助記憶装置の容量が数Mバイト~数十Mバイトしかないことも多く,容量が不足します.
3) アップデート困難
定期的なアップデートを提供する場合,Windowsを搭載するパソコンならばMicrosoft社がアップデートの提供の面倒を見てくれましたが,組み込み機器では,アップデートを継続的かつ漏れなく提供する体制をメーカが整えねばなりません.この体制を整えるのは容易ではありません.