Webサーバに使用されているLinux OS。そのLinuxを狙う攻撃が急増しており、Linuxのセキュリティ対策が急務となっています。ここ数年、不正アクセスによる情報漏えいやWebサイトのサービス停止といったニュースをよく耳にしますが、これらの攻撃はLinuxの脆弱性を突くものがほとんどです。
攻撃を受けて顧客情報などの漏えいが発生してしまうと、その補償はもちろん、ブランドイメージの失墜や売り上げの低下、銀行の信用評価が下がるなど、多大な影響を受けることになってしまいます。Linuxはオープンソースのためコストを低く抑えることができますが、ソースが公開されているので攻撃者に弱点を研究されるというデメリットもあります。ここでは、Linuxに必要なセキュリティ対策を説明します。
1:Linuxに必要なセキュリティ対策
Linuxを使用している環境においては、大きく「ソフトウェア」「ユーザー」「運用」「ネットワーク」の4点でセキュリティ対策が必要になります。
1-1:ソフトウェア管理
1-1-1:ソフトウェアのアップデート情報をチェックする
使用しているLinuxの情報を常にチェックして、最新のアップデートがあれば適用します。Linux OSには、Red Hat LinuxやSUSE Linux、TurboLinuxなど多くのディストリビューターから提供されていますが、カーネルと呼ばれる基本機能をベースに、ディストリビューターごとにさまざまな機能がパッケージされています。ディストリビューターからの情報をこまめにチェックして、アップデートがあれば適用します。
Linuxは複数のディストリビューターが提供している
Linuxは複数のディストリビューターが提供している
アップデートが必要な理由には、Linuxがオープンソースであることが挙げられます。プログラムのソースがすべて公開されているのです。これにより、誰でもプログラムに変更を加えて使いやすくすることができます。しかしその一方で、サイバー攻撃者も同様にソースを研究して、攻撃に使える脆弱性を探しています。アップデートの多くは脆弱性の解消のために行われますので、攻撃を受けないためにもアップデートは重要です。
1-1-2:不要なソフトウェアをインストールしない
新規にLinuxをインストールする際には、パッケージグループの選択で「最小(Minimal)」を選びましょう。そこから必要なパッケージのみを個別にインストールするようにします。システムにインストールするソフトウェアが増えれば、それだけ脆弱性を抱える可能性が高くなります。一般的にLinuxはサーバー用途に使用されるため、その用途に必要最小限のソフトウェアで構成するようにしましょう。
インストールの際のパッケージに 最小構成(Minimal)を選びます
インストールの際のパッケージに
最小構成(Minimal)を選びます
1-2:ユーザー管理
1-2-1:不要になったユーザーアカウントは削除する
退職などの理由により使用されなくなったユーザーアカウントは、「userdel」コマンドによって削除しましょう。情報漏えい事件の多くは、退職した元社員などが在籍中に使用していたアカウントでログインしたことが原因です。このため、不要になったユーザーアカウントはすぐに削除するようにします。
なお、ユーザーアカウントが利用を再開する可能性がある場合は、「passwd」コマンドでログインできないように設定することが望ましいとされています。「/etc/passwd」を直接編集することも可能ですが、編集ミスが発生する可能性があるため、「passwd」コマンドを使用する方が確実で安全といえます。
「passwd」コマンドでユーザーアカウントをロックします
「passwd」コマンドでユーザーアカウントをロックします
1-2-2:パスワード漏えい対策に有効期限を設定する
ユーザーのログインパスワードは、「chage」コマンドで有効期限を設定します。一般的にログイン時に使用するアカウントはメールアドレスなど想定しやすいものとなっていますが、その対になるパスワードを定期的に変更することで不正アクセスを防止します。
パスワードの定期的な変更は、いわゆる「パスワードリスト攻撃」の対策にはなりません。しかし、メモすることや背後から盗み見される「ショルダーハッキング」などによって社内でパスワードが漏れる可能性もあるので、これを防ぐわけです。
1-2-3:ユーザーによる権限昇格を防止する
「pam_wheel.so」を設定して、「su」コマンドを使用できるユーザーを制限します。一般ユーザーの権限でログインしていても、「su」や「sudo」コマンドを実行することでroot権限に昇格させることができます。root権限はどんな設定も変更できる特権アカウントですので、重要なファイルにもアクセスできてしまいます。情報保護の観点からも、権限昇格の制限は重要です。
また、利用者が増えるとユーザーの管理が複雑になりますが、共通のアカウントを作成するのはやめましょう。確かに管理の手間は大幅に減らすことができますが、適切なパスワード管理が困難になることや、操作した人の特定が難しくなります。アカウントの共有はパスワードの漏えいや、なりすましのリスクを高めてしまいます。特にrootなどの管理者権限の共有には注意しましょう。
1-3:運用管理
1-3-1:アクセス権を適切に設定する
ファイルやディレクトリには適切なパーミッションを設定しましょう。パーミッションとは、ファイルやディレクトリに対するアクセス権のことで、「chmod」コマンドによって「読み込み」「書き込み」「実行」の権限を設定できます。基本的に必要最低限のパーミッションに設定しておくことで、ファイルやディレクトリをのぞき見されないようにできます。
特に/etc/securetty、/etc/shadow、/etc/sudoersなどはセキュリティ上重要なファイルですので、不要な権限を与えないよう注意しましょう。まや、アクセス権と同時にファイルを所有するユーザやグループについても、誰がどのような操作をするのかを検討した上で適切に設定しましょう。
1-3-2:不要なデーモンを起動させない
WebサーバなどでGUIを使ったサーバ管理ツールを使わないのであれば、ランレベルを3に設定し、不要なデーモンを起動しないようにします。Linuxで不必要なデーモンを起動させたままにすると、使用しないポートが開いた状態となるので、攻撃を受ける危険性が高くなります。CPUなどのリソースも消費してしまうので、不要なデーモンが起動しないよう適切に設定しましょう。
攻撃を受けて顧客情報などの漏えいが発生してしまうと、その補償はもちろん、ブランドイメージの失墜や売り上げの低下、銀行の信用評価が下がるなど、多大な影響を受けることになってしまいます。Linuxはオープンソースのためコストを低く抑えることができますが、ソースが公開されているので攻撃者に弱点を研究されるというデメリットもあります。ここでは、Linuxに必要なセキュリティ対策を説明します。
1:Linuxに必要なセキュリティ対策
Linuxを使用している環境においては、大きく「ソフトウェア」「ユーザー」「運用」「ネットワーク」の4点でセキュリティ対策が必要になります。
1-1:ソフトウェア管理
1-1-1:ソフトウェアのアップデート情報をチェックする
使用しているLinuxの情報を常にチェックして、最新のアップデートがあれば適用します。Linux OSには、Red Hat LinuxやSUSE Linux、TurboLinuxなど多くのディストリビューターから提供されていますが、カーネルと呼ばれる基本機能をベースに、ディストリビューターごとにさまざまな機能がパッケージされています。ディストリビューターからの情報をこまめにチェックして、アップデートがあれば適用します。
Linuxは複数のディストリビューターが提供している
Linuxは複数のディストリビューターが提供している
アップデートが必要な理由には、Linuxがオープンソースであることが挙げられます。プログラムのソースがすべて公開されているのです。これにより、誰でもプログラムに変更を加えて使いやすくすることができます。しかしその一方で、サイバー攻撃者も同様にソースを研究して、攻撃に使える脆弱性を探しています。アップデートの多くは脆弱性の解消のために行われますので、攻撃を受けないためにもアップデートは重要です。
1-1-2:不要なソフトウェアをインストールしない
新規にLinuxをインストールする際には、パッケージグループの選択で「最小(Minimal)」を選びましょう。そこから必要なパッケージのみを個別にインストールするようにします。システムにインストールするソフトウェアが増えれば、それだけ脆弱性を抱える可能性が高くなります。一般的にLinuxはサーバー用途に使用されるため、その用途に必要最小限のソフトウェアで構成するようにしましょう。
インストールの際のパッケージに 最小構成(Minimal)を選びます
インストールの際のパッケージに
最小構成(Minimal)を選びます
1-2:ユーザー管理
1-2-1:不要になったユーザーアカウントは削除する
退職などの理由により使用されなくなったユーザーアカウントは、「userdel」コマンドによって削除しましょう。情報漏えい事件の多くは、退職した元社員などが在籍中に使用していたアカウントでログインしたことが原因です。このため、不要になったユーザーアカウントはすぐに削除するようにします。
なお、ユーザーアカウントが利用を再開する可能性がある場合は、「passwd」コマンドでログインできないように設定することが望ましいとされています。「/etc/passwd」を直接編集することも可能ですが、編集ミスが発生する可能性があるため、「passwd」コマンドを使用する方が確実で安全といえます。
「passwd」コマンドでユーザーアカウントをロックします
「passwd」コマンドでユーザーアカウントをロックします
1-2-2:パスワード漏えい対策に有効期限を設定する
ユーザーのログインパスワードは、「chage」コマンドで有効期限を設定します。一般的にログイン時に使用するアカウントはメールアドレスなど想定しやすいものとなっていますが、その対になるパスワードを定期的に変更することで不正アクセスを防止します。
パスワードの定期的な変更は、いわゆる「パスワードリスト攻撃」の対策にはなりません。しかし、メモすることや背後から盗み見される「ショルダーハッキング」などによって社内でパスワードが漏れる可能性もあるので、これを防ぐわけです。
1-2-3:ユーザーによる権限昇格を防止する
「pam_wheel.so」を設定して、「su」コマンドを使用できるユーザーを制限します。一般ユーザーの権限でログインしていても、「su」や「sudo」コマンドを実行することでroot権限に昇格させることができます。root権限はどんな設定も変更できる特権アカウントですので、重要なファイルにもアクセスできてしまいます。情報保護の観点からも、権限昇格の制限は重要です。
また、利用者が増えるとユーザーの管理が複雑になりますが、共通のアカウントを作成するのはやめましょう。確かに管理の手間は大幅に減らすことができますが、適切なパスワード管理が困難になることや、操作した人の特定が難しくなります。アカウントの共有はパスワードの漏えいや、なりすましのリスクを高めてしまいます。特にrootなどの管理者権限の共有には注意しましょう。
1-3:運用管理
1-3-1:アクセス権を適切に設定する
ファイルやディレクトリには適切なパーミッションを設定しましょう。パーミッションとは、ファイルやディレクトリに対するアクセス権のことで、「chmod」コマンドによって「読み込み」「書き込み」「実行」の権限を設定できます。基本的に必要最低限のパーミッションに設定しておくことで、ファイルやディレクトリをのぞき見されないようにできます。
特に/etc/securetty、/etc/shadow、/etc/sudoersなどはセキュリティ上重要なファイルですので、不要な権限を与えないよう注意しましょう。まや、アクセス権と同時にファイルを所有するユーザやグループについても、誰がどのような操作をするのかを検討した上で適切に設定しましょう。
1-3-2:不要なデーモンを起動させない
WebサーバなどでGUIを使ったサーバ管理ツールを使わないのであれば、ランレベルを3に設定し、不要なデーモンを起動しないようにします。Linuxで不必要なデーモンを起動させたままにすると、使用しないポートが開いた状態となるので、攻撃を受ける危険性が高くなります。CPUなどのリソースも消費してしまうので、不要なデーモンが起動しないよう適切に設定しましょう。
コメント
コメントを投稿