Drupalのセキュリティー対策について

Events happening in the community are now at Drupal community events on www.drupal.org.
kenppx's picture

いつもお世話になっております。
この数日にロリポップで起きた、WordPressに対する大規模なサイト改ざん騒動を見ていて不安になったのですが、皆さんはdrupalでサイトを運営する上でどのようなセキュリティー対策を実施していますか?
今回はWordPressが狙われましたが、この騒動を見ていると決して他人ごとでは無いと思いました…。

ファイルのパーミッション設定や、インストール後に行ったほうが良い対策、
イザという時の為のバックアップの方法など皆さんと情報共有が出来ればと思います。

Comments

production環境ではstableではないcontr

blauerberg's picture
  • production環境ではstableではないcontribute moduleは極力利用しない
  • 運用に不要なファイルは削除する(install.php, update.phpなど)
  • バージョンを示唆する情報はできるだけ隠蔽する(DrupalのCHANGELOG.txt, apacheが返すレスポンスヘッダなど)。全部は無理なので簡単にできる事のみ。どうせ見る人が見れば分かりますし..
  • CoreとContiribute Moduleのsecurity updateは即適用する

とかですね。
パーミッションについては、Drupalの場合は標準の状態から変更しなければ問題はないかとは思います。

自分でコードを書く人向けのセキュリティ関係の情報はPro Drupal developmentの"Writing Secure Code"の章にわかりやすくまとまっています。

大変参考になります

kenppx's picture

blauerbergさん

大変参考になります、ご回答ありがとうございます。
ファイルのパーミッションに関してなのですが、drupal7をインストールした状態で
Security Reviewというモジュールを導入してみました。
https://drupal.org/project/security_review
このモジュールはセキュリティ上の問題点を指摘してくれるモジュールのようです。
その結果、Some files and directories in your install are writable by the server.
という項目が問題点として検出されて、大量のファイルのパーミッションが不適切だと列挙されて
しまいました。

やはり、インストール時そのままでは何か設定上問題が有るのでしょうか?

blauerberg's picture

確認してみました。

Drupalのコードをそのまま展開すると、多くのファイルのパーミッションは644になっています。
つまり、

  • ファイルのオーナーはRead/Write可能
  • 同じーグループのユーザーはRead可能
  • 異なるグループのユーザーはRead可能

という状態です。Security Reviewの実行結果を見ると、とにかくW属性がついているファイルがあれば
警告が出るようです。

ただし、前述したように書き込みがでいるのはファイルのオーナーのみですので、余程セキュリティレベルの高いサイトを運用していない限り、特に気にするレベルではないかなーと思います。

Drupalのファイルパーミッションについては、 https://drupal.org/node/244924 にまとまっているので、一度目を通すと良いと思います。

参考になります。

qchan's picture

概要として、
"基本的にfilesディレクトリ以外へはGroupに書き込み権限を与えない"
というのが、リンク先ドキュメントの方針のようです。
マルチサイトを構築した場合、作業が煩雑になるのでシェルスクリプトで処理しようとしていています。

一度試してみたいですね。
コメント欄にも改良版がおいてあります。

https://drupal.org/node/244924#comment-7478980

MinnPost/drupal-permissions · GitHub
https://github.com/MinnPost/drupal-permissions

qchan's picture

いろいろな方の推察を読むとサーバー設定・管理の問題が大きかったようですね。

さくらインターネット社長田中さんの記事が非常にわかりやすいまとめになっています。

共用サーバにおけるSymlink Attacksによる攻撃とその対策について - さくらインターネット創業日記
http://tanaka.sakura.ad.jp/2013/09/symlink-attack.html

ところで、この騒ぎの中で「共用サーバは危ない」「AWSやさくらのVPSへ移行しよう」という意見を見受けますが、これは多くのケースにおいては間違った対応です。共用サーバを提供する多くの事業者においては、知られた脆弱性に対して迅速に対応されていますし、逆にセキュリティ対策ができない状況でAWSやVPSのような素のサーバを使うことは非常に危険です。しっかりとサーバ管理の出来るケースに限って、AWSやVPSなどを活用すべきだと思います。

とありますが、改めて、自前でOSを管理する大変さを思い知ります。

blauerberg さんの提案に追加して行きますと

  • サイトの状態 ページで設定ファイルが保護されているかどうかのチェックは必須です。
    admin/reports/status

  • ファイルアップロードにFTPは使わないこと。
     FTPはPWや送信内容が平文でそのまま流れますので、危険です。SFTPかFTPSを使いましょう。
     

  • ブルートフォースを防ぐにはいろいろモジュールも出ていますので、利用するのも一手。
    Login Security | drupal.org
    https://drupal.org/project/login_security

  • 管理できなくなったDrupalサイトを静的HTMLとしてアーカイブする
    https://groups.drupal.org/node/305973

  • 可能であればサイトをSSL化する。

  • WAFを利用する。
     設定が少し難しいですが、サーバー側で提供されているなら利用すべき。
     最近のレンタルサーバーではメニューに入っていることは多いです。

など、まだまだ有ると思いますので、みなさん追記していってください。

いつも勉強になります!

kenppx's picture

qchanさん

AWSやVPSを中途半端な知識で使うのが一番危険ですよね…。私もそう思います。
私には自信がありません…。

サイトの状態 ページで設定ファイルが保護されているかどうかのチェックは必須です。
admin/reports/status→私はコレはOKです。必ずチェックしています。

ファイルアップロードにFTPは使わないこと。
SFTPかFTPSを使いましょう。→SFTPにしています。

ブルートフォースを防ぐにはいろいろモジュールも出ていますので、利用するのも一手。
Login Security→試してみます!

Drupalサイトを静的HTMLとしてアーカイブする→これは大切ですね!今後やってみます。

可能であればサイトをSSL化する。→勉強してみます。

WAFを利用する→導入してみました。ただ、たまに誤検知をするのが悩みの種です…。
           運用上、問題の無いサイトについては積極的に導入していこうと思います。

ロリポップ!から報告が出ました。

qchan's picture

第三者によるユーザーサイトの改ざん被害に関するご報告 / 新着情報 / お知らせ - レンタルサーバーならロリポップ!
http://lolipop.jp/info/news/4149/

■原因
・改ざんの原因
簡単インストールを利用して設置された WordPress においてインストールが完了していない WordPress が狙われ、WordPress の管理者権限を第三者に取得されたことで、サーバー上にサーバー構成上の不備を悪用するスクリプトが設置されました。また、wp-config.php のパーミッションが 644 だったことを利用して、設置されたスクリプトによりデータベースの接続情報の取得がおこなわれ、データベース上のデータの書き換えが可能な状態となっておりました。

・改ざんが拡大した原因
サーバー側のディレクトリパーミッションが不適切だったことと、FollowSymLinks の設定を有効にできる状態であったため、同一サーバー上のユーザー領域を辿り、他のユーザー様の wp-config.php の内容を参照し、データベースの更新を実行することで改ざんの被害が拡大しました。

Drupal用の簡単インストールを各社に入れてもらいたいと思っているのですが、
いろいろ対策が必要なのですね。

さくらインターネットの共用サーバーで、.htaccessをカスタマイズしないとDrupalが動かないのも
このFollowSymLinks対策だったようです。
近々、解決されてそのまま動くようになるとのことなのでアップデートも楽になります。

blauerberg's picture

少し前になりますが、Drupal 勉強会@さっぽろ[1] で、セキュア運用をテーマにした話をしました。

入門レベルを想定しているのであまり目新しい情報はないかもしれませんが、
一応、資料を貼っておきます。

http://www.slideshare.net/blauerberg/drupal-35592153

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: