TOP比較データ> はじめに
Linuxディストリビュータが紐解くセキュアOS
Linuxディストリビュータが紐解くセキュアOS

第4回:Turbolinuxのセキュリティに対する取り組み

著者:ターボリナックス  高橋 功至   2005/12/26
1   2  3  次のページ
はじめに

   今回は、Linuxコンソーシアム主催の「LinuxディストリビュータによるセキュアOS・パネルディスカッション」にあわせ、開発者の視点からTurbolinuxのセキュリティに対する取り組みをSELinux中心に紹介します。
Turbolinux Serverの設計基本方針

   Turbolinux Serverサーバはエッジ系(Web、メール、プロキシ、DNS、ファイル)のサーバ分野に多く使われています。この分野のサーバは直接インターネットに接続されるため、セキュリティ上の問題に常にさらされています。

   また最近多くなってきたシステムとして、LAMP(Linux-Apache-MySQL-PHP)に代表されるようなデータベースをアプリケーションサーバとして利用する方法です。LAMP環境では、フロントエンドのWebサーバがクラッキングされると、プログラム的にはバックエンドで動作しているデータベースにアクセスできてしまうため、データベース上の重要な情報にアクセスされてしまう危険性があります。

   これはデータベースのセキュリティがきちんと設定されていても、フロントエンドのPHPが正常なアクセスと判断しているため、データの不正取得などを止めることができません。

   このような状況を踏まえると、特にサーバではセキュリティを重視して設計・実装を行う必要がありますが、セキュリティを強くしすぎるとユーザの利便性は制限されてしまいます。ターボリナックスでは、ディストリビューションの設計段階でその両者のバランスをどのように取っていくかが、セキュリティに対して重要な要素と考えています。


ネットワークサービスの設計

   Turbolinux Serverをインストールした経験のある方はご存知だと思いますが、インストール直後にはほとんどのネットワークサービスが停止しています。ネットワークの脅威はサービスを立ち上げればその分だけ増加していきます。ネットワークポートが開いていない限り、よほどのことがないと外部からの進入は困難なのです。例えれば、窓がない家に泥棒が進入するのは大変困難だということです。

   しかしエッジ系のサーバとして利用するかぎり、ネットワークポートを開かないという訳にはいかないのも事実です。しかもオープンなサービスをユーザに利用してもらうためには、接続先を限定したり認証ベースにしたりすることは困難な場合があります。不特定多数にサービスを提供するような、企業のWebサイトを運営するようなサーバはその最たる例です。

   誰でも入れるお店と同じで、エッジ系のサーバは侵入者からすれば非常に攻撃しやすい対象なのです。現実のお店では勝手に商品を持っていってしまう人はいませんが、インターネットではモラル意識が低い人のか、勝手にサーバに侵入して悪戯をする人が多いのです。インターネットには国境がなく、例え日本の国内法で保護されていたとしても、それを知らない外国からのクラッキングなどが多いのも事実です。

   このような危険性をできる限り少なくするため、Turbolinux Serverのネットワークポートは初期状態で閉じられています。こうすることで、管理者が明示的にサービスの起動設定を行うことになり、稼動しているサービスの状況を把握しやくなります。

   「telnetやftpサーバが起動していないサーバってどうなの?」という質問を受けることがありますが、管理者の知らないところであれこれ起動してしまうと、不要なセキュリティリスクを抱えることになります。簡単にいうと、家の窓を全部あけておいて自分が必要だと思ったところだけ鍵を閉めてくださいというのか、鍵は全部閉めてあるから必要なら開けてくださいというのかの違いです(実際に家を賃貸したとしたら、鍵は全部開いているからなんていう、不動産屋はいませんよね)。

   またサービスを起動しない理由のもう1つとして、管理者にサービスの設定を行ってもらって(内容を見直して)から、起動をしてもらいたいというのがあります。例えば、Apacheのデフォルト設定だとユーザがpublic_dirにアクセスできたとします。

   本来であれば、システムの利用目的とセキュリティを照らしあわせ、きちんとレビューしてからサービスを起動するべきです。社内向けのWebサーバでは正しいかもしれませんが、社外向けのWebサーバではpublic_dirへのユーザのアクセスは禁止すべきでしょう。

   一般的にセキュリティの強いシステムというのは、余計なことをしないシステムです。最近のサーバはCPUやメモリなどのリソースに余裕があるため、1つのサーバで様々なことを行わせようとしてシステムを組む傾向にあります。

   実は、これはセキュリティ上から考えるとあまり良い方向性とはいえません。例えばDNSにセキュリティホールがあってシステムがクラックされた場合、そのサーバにWebサーバやデータベースが乗っていれば、不要なデータが危険に晒されることになります。様々なサービスを立ち上げていると、危険性が大きくなります。その点からもサービスは初期状態で停止させておくべきであるというのが、Turbolinux Serverの設計方針です。

1   2  3  次のページ


ターボリナックス 高橋 功至
著者プロフィール
ターボリナックス  高橋 功至
2000年ターボリナックスジャパン(株)入社。一貫して、Turbolinuxディストリビューションの開発業務に携わる。開発エンジニアとして、インストーラMongooseをはじめ、各種ツールの開発を行う。その後、開発責任者として、ディスクトップ、サーバの両ラインのディストリビューションを設計・開発している。


INDEX
第4回:Turbolinuxのセキュリティに対する取り組み
はじめに
  Turbolinux 10 Serverのセキュリティ対策
  SELinuxトレーニングについて