セキュリティ
近年においてセキュリティはウェブサイトにとって最も重大な懸念事項のひとつです。ウェブサイトは常に脅威に晒されており、concrete5を含めあらゆるシステムはユーザーに100%の完璧な安全を保証することはできません。ですが、セキュリティへの取り組みについていくつかの事実をお伝えすることはできます。
Webアプリケーションの脆弱性について対応を行なっています
Concrete CMS は、IPA(情報処理推進機構)が公開している『安全なウェブサイトの作り方』で解説されているSQLインジェクション、XSS、CSRFなどへの対応策を実装し、データを安全に取り扱うよう務めています。また、オープンソースとして公開されている Concrete CMS では、これらの脆弱性がアプリケーションに見つかった場合の 脆弱性報告窓口 を設けています。報告された脆弱性についてはCVEが発行され、修正はアップデートによって提供されています。Concrete CMSのCVEプログラムは、バージョン8.5.4以降で始まりました。
Concrete CMS の脆弱性は NIST と Concrete CMS Disclosed CVE Public Tracker で公開されています。ウェブサイトを安全に保つため、セキュリティ脆弱性は、修正が適用されたリリースかまたはパッチが提供されるまで、公開されることはありません。
ユーザーのパスワードは適切に暗号化して復号できない形式で保存されています
Concrete CMS のユーザーアカウントのパスワードは、アカウントごとに固有のパスワードソルトを用いて十分な強度のアルゴリズムで暗号化されています。
ブルートフォースアタックに対応するIPアドレスブロック機能を搭載しています
一定回数以上Concrete CMSへのログインに失敗した場合に、アカウントにログインしようとしてきたIPアドレスをブロックし、ログイン不可能にするIPアドレスブロック機能を搭載しています。
企業のガバナンスに対応する詳細な権限機能を搭載しています
ファイルマネージャーにアップロードされたファイルや、サイト内に存在するページについて、アカウントごとにアクセス権限を設定することができます。ログインユーザーの多いサイトの場合に、CMS内の情報の公開範囲を適切に制限することで、人為的な事故を減らし適切なウェブサイトの運用が可能になります。
リスクの少ないアプリケーションの設計になっています
CMSのログイン権限を奪取され、不正なプラグインをインストールされたり、PHPファイルを改ざんされることによるケースが報告されています。Concrete CMSでは、万が一ログイン権限を奪取されても、管理画面からPHPファイルを書き換えたり、データベースを直接変更できるような機能を実装していません。また、追加機能のインストールは、公式に運営されているマーケットプレイスから、ソースコードの審査が行なわれたアドオンのみをインストールすることができます。ただし、CMSの機能でGoogle Analyticsの計測タグなどのJavascriptを埋め込むことは可能なので、過信は禁物です。
ご自分でできるセキュリティ対策
バックアップを定期的に取得してください
万が一ハッキング被害を受けた際に、サイトを復旧するために、バックアップを定期的に取得するようにしてください。データベースのダンプと、application以下のファイルをバックアップとして保管しておけば、ウェブサイトを復旧することができます。
ログインパスワードを適切に設定・管理してください
123456、password、P@ssw0rdなどのありきたりなパスワードを設定しないようにしてください。これらのよく使われるパスワードを用いてCMSへのログインを試みようとする攻撃が横行しています。英数字記号を含む複雑なパスワードを設定するように心掛けてください。また、重要なパスワードを目につくところにメモしておくなども避けてください。
バージョンアップを常に行なってください
Concrete CMSでは、報告された脆弱性をバージョンアップの際に修正しています。CMSのバージョンを最新版に保つように心掛けてください。
サーバーの権限設定を適切に行なってください
Concrete CMSをインストールするディレクトリやファイルのパーミッションを、不用意に緩い権限設定にしないようにしてください。concrete5からの書き込み権限が必要なディレクトリがいくつかありますが、全てのユーザーから書き込みができる必要はありません。
さらに詳細は、公式サイトの Configuration Best Practices ページもご覧ください(英語)。