それでは、サーバーのセキュリティを高めるには、どういう考え方で対処すればいいでしょうか。
セキュリティは、安全性を高めれば高めるほど、利便性が失われるというトレードオフの関係があります。例えば、情報漏洩を気にするあまり、私物の持ち込みをいっさい禁止にし、インターネットも閲覧できなくした職場というのは、利用者(社員)にとって快適とはいえないでしょう。
また、100%の安全性に近づけば近づくほど、それにかかるコストや時間というのは飛躍的に増加していきます。100%にするのは不可能なので、どこかで折り合いを付けなければなりません(コストも時間も無尽蔵ではないのですから)。
そこで、どこまでセキュリティ対策をするのか、何を優先してすべきなのか、その判断をするための基本的な考え方を身につけることが大切になってきます。そのためにサーバー管理者が意識しておくべき、いくつかの原則を示します。あくまで筆者の個人的な考えですが、これをおさえておくだけで安全性は大幅に向上します。
・原則(1)「アップデート重要」
くどいようですが、ソフトウェアには日々、不具合が発見されます。また、そういった不具合を悪用した攻撃も日々新たなものが登場しています。
セキュリティに直結する不具合が発見された場合は、すみやかにアップデート版が提供されます。サーバー管理者としては、アップデート版が提供されたらただちに適用することが大切です。週末にまとめてやろう、などと思っていると、週末前に攻撃を受けてしまい、貴重な週末をつぶして対策に追われてしまうことになりかねません。
CentOSを始め多くのLinuxディストリビューションでは、OSを自動的に最新状態にすることができる機能が付いているので、それを使って最新の状態をキープし続けることが大切です。
・原則(2)「不要なものは不要」
ソフトウェアにはどうしても不具合が紛れ込みます。まったく不具合のないソフトウェアを揃える、なんてことはまず無理です。今現在は問題が見つかっていなくても、ただ見つかっていないだけで、サーバーを構成する数万のソフトウェアのどれかに脆弱性が潜んでいる可能性は十分にあるのです。
その前提で考えると、サーバーにインストールされているソフトウェアは少なければ少ないほどよい、ということになります。いずれ使うかもしれない、という程度の理由で不要なソフトをインストールしておいて、その脆弱性が悪用されサーバーに侵入されたりしたら目も当てられません。
また、インストールされているソフトウェアが多ければ多いほど、それらのアップデートにかかる時間やコストも増えますし、セキュリティ的なチェックをしなければならない項目も増えます。使わないソフトウェアはインストールしない、ということが大前提となるのです。
・原則(3)「原則禁止」
人が通用門を通過するときのチェックを考えてみます。2つのパターンが考えられます。
セキュリティの考え方では、(2)が基本原則となります。
例えば、ネットワーク経由でのログインを考えてみましょう。(1)の場合、サーバーにアカウントがあれば誰でも(パスワードを知っていれば)ログインできる、という状態です。けれどもその場合、本来であればログインする必要のないユーザーでもログインできることになってしまいます。そのようなユーザーが多ければ多いほど、パスワードが漏洩したり、ログインを試行錯誤してパスワードがまぐれ当たりでログインできてしまう、といった数が増えていきます。
(2)であれば、最小限のユーザーだけにログインを許可し、しかも接続元を制限する(原則的にログインできない)、という対策を行えば、攻撃者を閉め出し、リスクを低く抑えることができます。
Copyright © ITmedia, Inc. All Rights Reserved.