はじめに
本稿で記載する対策事項は,サーバ管理者やCMS管理者が実施するべき一般的な事項をまとめた内容です。ご自身のCMSの状況を把握した上で,該当する箇所を適宜ご対策願います。なお,事前の参考情報として次の項もご覧ください。
前提条件
ご自身が運用管理しているCMSについて
- 誰が
- 何を
- どのような形態で
- 契約/管理/運用しているのか
を十分に把握した上で読み進めてください。
一つの判断基準として,ご自身のCMSがどのような運用管理形態であるか簡単な概念図が描けない場合は正しい状況判断ができていない可能性が高いと思われます。
なお,これから説明するモデルパターンは
- 管理者権限を有したサーバ(Redhad系)を運用管理している。
(=サーバのホスティングサービスを契約している。) - CMSは「Wordpress」を導入している。
- サーバやCMSの保守業務を業者へ外注し,本学担当者はCMSの運用のみを行う。
以上の条件(一般的な運用モデル)で行います。
CMS運用管理チェックリスト
CMSは便利な反面,運用や管理を怠るとサイバー攻撃を受ける確率が格段に高くなります。CMSを利用する以上は,必ず運用管理責任が発生しますので,以下のチェックリストを参考にしてCMSを安全に運用管理してください。
特に,研究や業務でCMSを運用する場合は,必ずチェックリストで確認を行った上で運用管理を行ってください。
(参考)CMS運用管理チェックリスト
サーバの設定・確認事項
ご自身で保有している物理サーバ,仮想ホスティングサービスやクラウドサービス等の仮想サーバなどを用いて(サーバの管理者権限を有した契約形態で)CMSを運用している場合は以下の対策を実施してください。なお,チェックリストに準ずる内容となっていますので,該当する箇所があった場合は必ずご確認願います。
定期的なアップデートの実施
OSのアップデートは一般常識と言っても過言ではありません。セキュリティ対策の初歩中の初歩です。
- サーバへログインし,アップデートコマンド(yumなど)の実施。
- cronデーモンによるアップデートコマンドのスケジュール実行。
上記いずれかの対策を「月に1回以上」実施してください。
それ以外にも定期的に脆弱性情報を収集し,緊急のセキュリティアップデートが提供された場合やサーバ設定変更等(ゼロデイ脆弱性の暫定対応など)に早急な対応可能な体制であることが望ましいと言えます。
SSL証明書(HTTPS)の導入
最近のウェブブラウザは,HTTPS(暗号化通信)が標準仕様となっています。
HTTPSが未導入の場合は,ブラウザによってはセキュリティアラートが表示される場合があるため,社会的に推奨される対策となります。
- 有償のサーバ証明書を導入する。
- 本学UPKIサーバ証明書発行サービスを利用し,サーバ証明書を導入する。
(※UPKIサーバ証明書発行サービス利用には,条件があります。)
上記いずれかの対策の実施を推奨します。
CMS管理画面へのアクセス制限の実施
CMS管理画面へのサイバー攻撃は非常に容易に可能である点に留意してください。
Webサイトのソースコードを見れば利用しているCMSの種別は簡単に把握可能であり,管理画面へのアクセスURLも簡単に予測することができます。CMS管理画面へのアクセスは,限定的であればあるほど安全性が高まります。
- .htaccess等を用いたCMS管理画面へのIPアドレス制限の実施。
(CMSのプラグインを用いたアクセス制限の実施等でも可。)
上記の対策の実施は必須の対策事項です。
遠隔操作接続への適切なアクセス制限の実施
サーバの運用管理を行う上では遠隔での操作(SSH接続)が一般的です。しかし,その対策を怠った場合はサイバー攻撃の温床となります。
サーバの遠隔操作を行う者以外は接続できない設定が安全と言えます。
- hosts.allow,hosts.deny を用いたアクセス制限の実施。
- 公開鍵認証方式によるSSHの暗号化の実施。
遠隔操作を行う場合は,上記いずれかの対策の実施は必須の対策事項です。
不必要なアプリケーションやプロセスの削除/停止
サーバの運用管理を行う上で重要なポイントは「必要最小限」であることです。不必要なアプリケーション(パッケージ)導入やプロセスの稼働はサイバー攻撃の原因になるので注意が必要です。
- topコマンドやpsコマンドを実施し,稼働中のデーモン/プロセス等を把握する。
- 不必要なアプリケーション等はアンインストールする。
- 不必要なプロセス等はkillし,再稼働しないように設定する。
ログイン記録や操作記録(ログ)の定期的な確認
Unix系サーバの記録(ログ)は,基本的に「/var/log」の下に残ります。
less,grep,tailなどのコマンドを駆使して,「必要なログを必要な時に確認できる」ことが望ましいと言えます。
内部監視対策の実施
サーバの運用管理を行う上で,内部監視対策として実施(導入)可能なツールを紹介します。
- ルートキット検知ツール。
- Rootkit Hunter (rkhunter)
- chkrootkit
- OSSEC (Rootcheck)
- コマンド改ざん検知ツール。
外部監視対策の実施
サーバの運用管理を行う上で,外部監視対策を実施する場合の対策事例を紹介します。
外部監査をご自身で実施する場合は,専用ソフトウェアを利用したり別途監視サーバを構築して実施しますが,監査内容の客観性を担保するために外部のセキュリティ監査会社へ依頼するのが一般的となります。
- システム監視ソフトウェア
CMSの設定・確認事項
CMSを運用している場合は以下の対策を実施してください。
なお,ご自身のCMS管理ユーザが「どの程度の権限を有しているのか」を事前に把握した上で読み進めてください。
CMS本体の定期的なアップデートの実施
CMSの脆弱性は頻繁に発見されるため,アップデートもかなりの頻度で発生します。
アップデートの実施は手動/自動を問いませんが,常に最新バージョンを利用するよう心がけてください。
プラグインの定期的なアップデートの実施
CMSと同様にプラグインにも脆弱性が発見されるため,定期的にアップデートが発生します。
アップデートの実施は手動/自動を問いませんが,常に最新バージョンを利用するよう心がけてください。
なお,利用するプラグインについては「直近1年以内にでアップデートが提供されているもの」を選定するよう心がけてください。
(1年以上アップデートが提供されていない場合は,開発者が対応を放棄した可能性があるため,代替プラグインへの移行を推奨します。)
管理画面へ多要素認証の導入
ユーザ名とパスワードの認証方式は,スーパーコンピュータ等の汎用機を使えば一瞬(数十秒〜数分)で解析が可能です。
複雑な文字列を使用することに加えて,画像認証や文字列認証,認証コードなど,複数の要素と組み合わせて利用することでセキュリティレベルが向上すると言われています。
本サイトでは,管理画面へのIPアドレスによる接続制限に加えて
- .htaccessと.htpasswdを用いたBASIC認証(二段階認証)。
- ひらがな認証プラグインの導入。
以上を組み合わせた認証方式を導入しています。
適切な権限付与の設定
CMSでは基本的に複数名の運用担当者での運用が想定されているため,管理レベルに応じて様々な権限を持ったユーザの作成が可能になっています。
業務内容や職種,責任範囲等を明確にし,適切な権限が付与されたユーザで運用することが重要です。
初期設定のユーザ名は利用しない
サイバー攻撃の初手はデフォルト(初期設定)ユーザへの攻撃です。
攻撃者は,各メーカーやCMSなどのデフォルトユーザ(≒利用頻度が高いユーザ名)やデフォルトパスワード情報の全容を把握しています。
初期設定で利用されるようなユーザ名(adminやuserなど)は,セキュリティレベルを下げる設定となりますので利用しないでください。
また,万が一,このようなユーザ名で運用している場合は早急に削除もしくは変更をしてください。
管理画面へログインがあった場合,管理者へのメール通知の実施
CMS管理における初歩的なセキュリティ対策は,管理画面へのログイン状況を常に把握することです。
プラグインなどを導入することで,ログイン状況のメール通知設定等が可能になります。
管理画面URLの初期設定値からの変更
「CMS管理画面へのアクセス制限の実施」項でも説明しましたが,CMS管理画面へのアクセスURLは簡単に予測することができます。
CMSのサイバー攻撃において管理画面への攻撃は攻撃頻度が高いため,CMSのセキュリティ対策として最も効果的な対策の一つです。
WordPressの場合は,.htaccessによる設定変更やセキュリティ対策プラグインを導入するなど様々な対策手法が情報公開されていますので,ご自身のCMSに見合う対策方法を実施してください。
不要な初期設定ファイルの確認および削除
CMSには初期設定を簡素化するために,初期設定専用の設定ファイルが導入されている場合があります。
これらの初期設定専用ファイルを残しておくとサイバー攻撃に悪用される可能性がありますので,初期設定完了後は不要なファイルを削除してください。
WordPressの場合は
- 不要なファイル
- 「/wp-config-sample.php」:設定ファイルのサンプル
- 「/wp-admin/install.php」:インストール用ファイル
- 「/wp-admin/install-helper.php」:インストールのヘルプファイル
- 「/wp-admin/setup-config.php」:WordPress設定ファイル
- 不要スタイルシート
- 「/wp-admin/css/install.css」:インストール用ファイルのCSS
- 「/wp-admin/css/install.min.css」:インストール用ファイルのCSS(最小化)
などが削除しても動作や機能に支障のないファイルです。
不要なテーマやプラグイン等の確認および削除
CMSには初期設定でテーマやプラグインが初期導入されている場合があります。
利用しないテーマやプラグインを残しておくとサイバー攻撃に悪用される可能性がありますので,不要なものは削除してください。
また,利用するプラグインについては「直近1年以内にでアップデートが提供されているもの」を選定するよう心がけてください。
(1年以上アップデートが提供されていない場合は,開発者が対応を放棄した可能性があるため,代替プラグインへの移行を推奨します。)
公開されたフォルダ/ファイル等の定期的な確認
従来のWebサイト更新とCMSを比較して,最も簡素化されるのが「ファイル転送ソフト等によるファイルのアップロード作業」です。
ファイルのアップロード作業は,無意識的にサーバ上にあるフォルダやファイルを目視することに繋がり,確認作業としても一定の効果を有していましたが,CMSを利用するとサーバ上にあるフォルダやファイルの目視をする頻度は限りなくゼロになるため,不適切に公開されたフォルダやファイル(もしくはそれらのパーミッション設定)の発見が遅れ,重大な情報漏洩事案に繋がる危険性もある点に留意する必要があります。
ファイル転送ソフト等を利用し,不適切なフォルダ/ファイルがサーバにアップロードされていないか(加えて,それらのパーミッション設定)の定期的な目視確認を実施してください。
運用・保守等の設定/確認事項
運用管理体制の整備と定期的な見直しの実施
情報インシデント等の緊急事態が発生した場合の連絡体制やサポート体制などの運用管理体制は適切に整備してください。また,契約更新時や担当者の異動が発生した場合など,節目節目で運用管理体制の見直しを行い,適切な体制を維持してください。
保守業務等を外部業者へ委託する場合は,本学と業者の責任分界点の明確化を行う
「はじめに(前提条件)」項でも触れましたが,運用管理形態の概念図を作成した上で責任の所在を明確化してください。
特に,保守業務等を外部業者へ委託する場合は,情報インシデント等の緊急事態が発生した場合に備えて,仕様書や契約書に本学と業者の責任分界点が明記されていることが望ましいと言えます。万が一,責任分界点が明確化されていない場合は,覚え書き等を作成しておくことが望ましいと言えます。