25
Drupal ササササ サササササササササササ ( サササ ) Yoshikazu Aoyama

Drupalサイトをセキュアに運用するには(入門編)

Embed Size (px)

DESCRIPTION

第3回 Drupal 勉強会@さっぽろ (http://atnd.org/events/51740) のプレゼン資料

Citation preview

Page 1: Drupalサイトをセキュアに運用するには(入門編)

Drupalサイトをセキュアに運用するには

(入門編 )

Yoshikazu Aoyama

Page 2: Drupalサイトをセキュアに運用するには(入門編)

セキュアに運用すると言っても

● 普通の事をやるだけです○ セキュリティ更新をすぐ適用する○ 不安定なコードをデプロイしない○ スパムの対策○ パスワードのポリシー制御などなど ..

Page 3: Drupalサイトをセキュアに運用するには(入門編)

どこに情報あるの?

● https://drupal.org/documentation/administer にサイト管理者向けのガイドがあります○ 日本語のリソースはないので英語を読みましょう○ とは言ってもすごい量なのでポイントだけ紹介します

Page 4: Drupalサイトをセキュアに運用するには(入門編)

Drupalに関わるセキュリティの構成要素

● Server● OS● Database ● Web Server● PHP● Drupalhttps://drupal.org/node/176052

● core● contributed module/theme● setting● operation● customized code

Page 5: Drupalサイトをセキュアに運用するには(入門編)

セキュリティアドバイザリについて

● https://drupal.org/security-advisory-policy

Page 6: Drupalサイトをセキュアに運用するには(入門編)

セキュリティアドバイザリの最新情報

● Twitter(@drupalsecurity)● drupal.org

○ https://drupal.org/security○ https://drupal.org/security/contrib○ https://drupal.org/security/psa○ 上記の URL + rss.xml で feedも取れる○ アカウントを持っていればメール通知もできる

Page 7: Drupalサイトをセキュアに運用するには(入門編)

セキュリティアドバイザリの対象バージョン

● https://drupal.org/documentation/version-info○ カレントと 1つ前のバージョンが対象

■ 2014/6 時点では Drupal 6/7■ Drupal 8がリリースされると 6のサポートは終了

Page 8: Drupalサイトをセキュアに運用するには(入門編)

セキュリティ更新ってどれくらいあるの?

● https://drupal.org/about/security-track-record○ メジャーなモジュールを一通り入れていると、大体月に一回くらい?

○ http://drupalsecurityreport.org/ により詳細なレポートもあります

Page 9: Drupalサイトをセキュアに運用するには(入門編)

サイトのセキュリティ更新の適用状況

● admin/reports/updates でチェック

● admin/reports/updates/settings でメール通知もできる

● 緑は最新● 黄色はバグ修正版が出ている

● 赤いとセキュリティ修正版が出ている

Page 10: Drupalサイトをセキュアに運用するには(入門編)

セキュリティ更新の適用方法

● ブラウザから (Drupal 7以降 )○ admin/modules/update○ ブラウザからは coreの更新はできない

● シェルから○ $ drush pm-update

● admin/reports/updates/settings でメール通知もできる

Page 11: Drupalサイトをセキュアに運用するには(入門編)

alphaとか betaとか rcのものは使って大丈夫?

● https://drupal.org/node/467020○ [alpha]: might include security issues.○ [beta]: all critical data loss and security bugs are

resolved.○ [rc]: no more critical bugs.

Page 12: Drupalサイトをセキュアに運用するには(入門編)

Enabling HTTP Secure (HTTPS)

● https://drupal.org/https-information○ デフォルトでは平文でフォームの post内容が飛ぶ

■ ユーザー名、パスワード、メールアドレス、 etc○ secure pages で以下の URLは httpsに

■ node/add*, node/*/edit, node/*/delete■ user, user/*■ admin, admin/*■ webformや form apiを使うページの URL

○ もしくは HTTPサーバで httpsを強制する

Page 13: Drupalサイトをセキュアに運用するには(入門編)

ログインの制限

● Login Security○ Limit the number of invalid login attempts before

blocking accounts.○ or denying access by IP address, temporarily or

permanently

Page 14: Drupalサイトをセキュアに運用するには(入門編)

パスワードポリシーの設定

● https://drupal.org/node/598562○ The minimum password length is currently 1

character (!)○ password policy モジュールでポリシーを強化

■ 使用する文字数、文字種を強制■ 定期的なパスワードのリセット

● D8で coreにポリシー設定機能が入るかも?

Page 15: Drupalサイトをセキュアに運用するには(入門編)

SPAM対策

● お問い合わせフォームやコメントフォームからの SPAM投稿を防止する機能は coreには含まれていない。○ CAPTCHA、 reCAPTCHA、Mollom あたりのモジュールを使いましょう

Page 16: Drupalサイトをセキュアに運用するには(入門編)

管理者アカウントの取り扱い

● https://drupal.org/node/947312○ User #1 (インストール時に最初に作成するユーザ )は全てのアクセス制御をバイパスする。インストールが終わったらアカウントをブロックしよう

○ admin, administratorのような名前は使わない○ 普段の保守は別に管理者用ロールとアカウントを作って行う

○ Restrict Login or Role Access by IP Address で接続元 IPアドレスを制限するのも有効な手段

Page 17: Drupalサイトをセキュアに運用するには(入門編)

テキストフォーマットの制限

● https://drupal.org/node/224921○ 入力を許可する HTMLタグを制限する○ 特に PHPコードの入力は信頼できるユーザーにのみ許可する

○ 「 Administer text formats and filters」の権限は一般ユーザーには付与しない

Page 18: Drupalサイトをセキュアに運用するには(入門編)

roles & permission

● https://drupal.org/node/1938536

Page 19: Drupalサイトをセキュアに運用するには(入門編)

Directory & File Permission

● https://drupal.org/node/244924

Page 20: Drupalサイトをセキュアに運用するには(入門編)

添付ファイルのアクセス制御

● https://drupal.org/node/15368○ 添付ファイルの種類は 2つ

■ public: HTTPで直接ファイルにアクセス■ private: アクセス前に drupalでアクセス制御が入る

○ privateにする場合は、ファイルの保存先は HTTP サーバがアクセスできない場所にする

Page 21: Drupalサイトをセキュアに運用するには(入門編)

ログの管理

● デフォルトだと DBにのみロギングされ、1000件を超えると古いレコードは消える

● syslogモジュールを有効化してファイルに吐くようにする

● syslogは適当にローテーションさせて、バックアップも取りましょう

Page 22: Drupalサイトをセキュアに運用するには(入門編)

Writing secure code

● https://drupal.org/documentation/is-drupal-secure○ セキュリティ・ホールの 90%以上は、 drupal

coreではなく自サイト向けにカスタマイズしたコードが原因

● https://drupal.org/writing-secure-code○ coder モジュールを使うとエスケープやサニタイズ、プレースホルダの利用などが適切に行われているかチェックできる

Page 23: Drupalサイトをセキュアに運用するには(入門編)

その他のセキュリティ改善に役立つモジュール

● https://drupal.org/node/382752

Page 24: Drupalサイトをセキュアに運用するには(入門編)

周辺要素のセキュリティ

● Server● OS● Database ● Web Server● PHP● Drupal

● OSのパッケージ更新● mysql, apacheなどのアクセス制御

● iptablesなどによるパケットフィルタ

● Zabbix/Negiosなどによるパフォーマンス監視

● etc..

Page 25: Drupalサイトをセキュアに運用するには(入門編)

Fin