Submit Search
WordPress安全運用の基礎
1 like
2,182 views
H
hiro345
第51回NSEG勉強会で発表したときの資料です。発表時にいただいたアドバイスやコメントを反映してあるので、発表時から若干の編集をしてあります。
Software
Read more
1 of 19
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
More Related Content
PPTX
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
Hiroshi Tokumaru
PDF
WordPressでサイト作成するときに知っておくといいことあれこれ
YUKI YAMAGUCHI
PDF
WordCamp KOBE 「初めてのWordPress!オリジナルのテーマでブログを作る方法」Parkn'Park
parkn-park
PDF
レスポンシブ+フラットデザイン+WordPress
Junko Nukaga
PPTX
千葉コワーキングスペース201の紹介
Aki Sasaki
PDF
20160430co-edo
Chieko Aihara
PDF
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
Chieko Aihara
PDF
Think user first #2 フリルの機能改善における仮説と検証
YUKI YAMAGUCHI
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
Hiroshi Tokumaru
WordPressでサイト作成するときに知っておくといいことあれこれ
YUKI YAMAGUCHI
WordCamp KOBE 「初めてのWordPress!オリジナルのテーマでブログを作る方法」Parkn'Park
parkn-park
レスポンシブ+フラットデザイン+WordPress
Junko Nukaga
千葉コワーキングスペース201の紹介
Aki Sasaki
20160430co-edo
Chieko Aihara
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
Chieko Aihara
Think user first #2 フリルの機能改善における仮説と検証
YUKI YAMAGUCHI
Viewers also liked
(19)
PDF
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
Mignon Style
PPTX
かんたん!わかりやすいWafのおはなし
haruna tanaka
PPTX
スタートアップの 3 分ピッチテンプレート
Takaaki Umada
DOCX
من اجلك
سعيد مخربش
PPT
Funcionario, ¿qué le pides tú a la administración electrónica?
Alberto Ortiz de Zarate
PDF
MvSM: 7) Co tam dávat - tvorba obsahu pro sociální média
Matez Jindra
PDF
Valsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēma
Pārresoru kordinācijas centrs (PKC)
PPTX
Tudatos márkaépítés
Gabor Papp
PDF
Virtualni svet Second Life
Alja Isakovic
PDF
Estrategias de comunicación para el ciberactivismo
Freire Juan
PDF
Bolsas de Estudo para Australia
Rogério Marques Júnior
PDF
Business Analytics with R
Edureka!
PDF
الإرشاد التربوي والنفسي في المؤسسات التعليمية
khalid mechkouri
PDF
00025233
fpem
DOC
Clase+de+tarnsporte
Fernando Blanco
PDF
ספר וטהר לבנו השלם.
יוחנן ריינר
DOCX
Program rada i financijski plan 2015.
stipepetrina
KEY
Design persuasivo: alcuni esempi
Alberto Mucignat
DOCX
Holy Work of Raising Soil, Sample Chapters2016
Anita Amstutz
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
Mignon Style
かんたん!わかりやすいWafのおはなし
haruna tanaka
スタートアップの 3 分ピッチテンプレート
Takaaki Umada
من اجلك
سعيد مخربش
Funcionario, ¿qué le pides tú a la administración electrónica?
Alberto Ortiz de Zarate
MvSM: 7) Co tam dávat - tvorba obsahu pro sociální média
Matez Jindra
Valsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēma
Pārresoru kordinācijas centrs (PKC)
Tudatos márkaépítés
Gabor Papp
Virtualni svet Second Life
Alja Isakovic
Estrategias de comunicación para el ciberactivismo
Freire Juan
Bolsas de Estudo para Australia
Rogério Marques Júnior
Business Analytics with R
Edureka!
الإرشاد التربوي والنفسي في المؤسسات التعليمية
khalid mechkouri
00025233
fpem
Clase+de+tarnsporte
Fernando Blanco
ספר וטהר לבנו השלם.
יוחנן ריינר
Program rada i financijski plan 2015.
stipepetrina
Design persuasivo: alcuni esempi
Alberto Mucignat
Holy Work of Raising Soil, Sample Chapters2016
Anita Amstutz
Ad
Similar to WordPress安全運用の基礎
(20)
PDF
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
KojiMaruyama5
PDF
コンテナで作れるFaaS
真吾 吉田
PDF
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
PDF
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
Arata Fujimura
PDF
正規表現勉強会入門
Shugo Numano
PPTX
ブログメディアにおけるData APIの活用について
Hatsuhito UENO
PPTX
ウェブから情報をあつめる
Shuhei Iitsuka
PDF
WordPressで始めるphp入門
Hiroaki Murayama
PDF
Djangoフレームワークの紹介
Shinya Okano
PPTX
CMSとPerlで遊ぼう
Daiki Ichinose
PDF
Silex入門
Takuya Sato
PDF
初めてのPadrino
Takeshi Yabe
PDF
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
PDF
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
PDF
TerraformでECS+ECRする話
Satoshi Hirayama
PDF
Node予備校 vol.1 名古屋
Mori Shingo
PDF
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
KEY
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
PDF
CodeIgniterによるPhwittr
kenjis
PDF
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
nabe-abk
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
KojiMaruyama5
コンテナで作れるFaaS
真吾 吉田
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
Arata Fujimura
正規表現勉強会入門
Shugo Numano
ブログメディアにおけるData APIの活用について
Hatsuhito UENO
ウェブから情報をあつめる
Shuhei Iitsuka
WordPressで始めるphp入門
Hiroaki Murayama
Djangoフレームワークの紹介
Shinya Okano
CMSとPerlで遊ぼう
Daiki Ichinose
Silex入門
Takuya Sato
初めてのPadrino
Takeshi Yabe
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
TerraformでECS+ECRする話
Satoshi Hirayama
Node予備校 vol.1 名古屋
Mori Shingo
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
CodeIgniterによるPhwittr
kenjis
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
nabe-abk
Ad
More from hiro345
(11)
PPTX
手軽に使ってみようIoTデバイス
hiro345
ODP
Raspberry Pi を楽しもう
hiro345
ODP
リーダブルパスワード - SQLアンチパターンより抜粋 -
hiro345
PDF
Raspberry Pi and WebIOPi
hiro345
PPTX
Frontend framework and Template
hiro345
PDF
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
hiro345
PDF
5分でわかる! SqljockyでDart+MySQL
hiro345
PDF
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
PDF
15分で知るVagrant (NSEG 2013-08-24)
hiro345
ODP
Nseg20120929
hiro345
PDF
Nseg20120825
hiro345
手軽に使ってみようIoTデバイス
hiro345
Raspberry Pi を楽しもう
hiro345
リーダブルパスワード - SQLアンチパターンより抜粋 -
hiro345
Raspberry Pi and WebIOPi
hiro345
Frontend framework and Template
hiro345
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
hiro345
5分でわかる! SqljockyでDart+MySQL
hiro345
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
15分で知るVagrant (NSEG 2013-08-24)
hiro345
Nseg20120929
hiro345
Nseg20120825
hiro345
WordPress安全運用の基礎
1.
WordPress安全運用の基礎 NSEG 小山博史
2.
自己紹介 ● hiro345 twitter: @hiro345 ●
blog: http://www.sssg.org/blogs/hiro345/ ● 執筆 @IT ... Java, Eclipse, Android, C 日経Linux ... Raspberry Pi, Java, Dart 日経ソフトウェア ... Java Java World, WEB+DB Press など
3.
WordPressとは ● 覚え書きや論評などを記事として公開する ウェブサイトであるブログを構築するための ソフトウェア ● コンテンツマネージメントシステム(CMS) として利用される事も多い ● オープンソースソフトウェア(OSS) ●
ライセンスはGNU General Public License(GPL)
4.
WordPressセキュリティ対策の基本 ● 最新版にしておくこと ● 必要な機能だけを有効にすること ● 暗号化通信路を利用すること ● ログを保存しておくこと ● バックアップをとっておくこと
5.
セキュリティ対策はなぜ必要か ● 無防備だと困ったことが起きる – サイトの改竄 – ユーザ情報や顧客情報の漏洩 ● インターネットのどこからでも攻撃される –
防御は必須 – 攻撃されたことを素早く検知して対策 ● 実際の被害について把握と対策が必要 – アクセスログの記録をしていれば把握できる – 被害があったら復旧が必要
6.
事例 ● 第三者によるユーザーサイトの改ざん被害に関するご報告 - 2013年08月29日
10時57分 / 新着情報 / お知らせ - レンタルサーバーならロリポップ! http://lolipop.jp/info/news/4149/ – 被害 ● サイトタイトルに「Hacked by Krad Xin」が含まれるものに変更された ● サイトのキャッチコピーが「BD GREY HAT HACKERS」と変更された ● サイトの表示が文字化けして読めなくなった ● サービスに登録されている個人情報にアクセスされた形跡はなく情報の流出はない – 原因 ● サーバー側のディレクトリパーミッションが不適切だった ● FollowSymLinks の設定を有効にできる状態であった ● 同一サーバー上のユーザー領域を辿り、他のユーザーの wp-config.php の内容を 参照できた ● 他のユーザが使っているデータベースの更新を実行できた
7.
WordPressのシステム構成 管理者 訪問者サーバ
8.
WordPressの動作に必要な環境 ● サーバ(サービス提供側) – OS: Linux –
Web Server: Apache HTTP Server – Runtime: PHP – DB Server: MySQL ● クライアント(サービス利用側) – Web Brower: Internet Explorer, Firefox, Chrome, Safari – セキュリティの観点からは利用する JavaScript Engine も チェックが必要
9.
WordPressの運用に必要な環境 ● クライアントマシン – Web Brower:
Internet Explorer, Firefox, Chrome, Safari – リモートシェル: SSH – ファイル転送: SCP, SFTP, WebDAV
10.
置き場所や通信路等もチェック ● サーバマシンは安全な場所にあるか ● クライアントマシンのロックはできるか ● スマートフォン紛失時にロックはできるか ● Wifiのフリースポットを使う事があるか ● ホテルのインターネット設備を使う事がある か ● etc...
11.
最新版にしておくこと ● WordPressの更新機能は4つの種類 – コアファイル更新 –
プラグイン更新 – テーマ更新 – 翻訳ファイル更新 ● 自動アップグレード – WordPress3.7から有効 – デフォルトで有効なもの ● コアファイルのマイナーアップグレード ● 翻訳ファイルアップグレード
12.
自動アップグレードの設定 ● 自動バックグラウンド更新の設定 WordPress Codex 日本語版 http://goo.gl/CwCUhC ●
wp-config.php へ定数を指定 ● フィルタを追加して指定 (wp-config.php か functions.php で指定)
13.
設定例 ■コアの自動更新を指定(定数で指定) define( 'WP_AUTO_UPDATE_CORE', true
); 備考) ・true – 開発版、マイナー、メジャーアップグレードをすべて有効化 ・false – 開発版、マイナー、メジャーアップグレードをすべて無効化 ・minor – マイナーアップグレードのみ有効化(開発版・メジャーアップグレードを無効化) ■コアの自動更新の明示的な指定(フィルタで指定) add_filter( 'allow_dev_auto_core_updates', '__return_true' ); add_filter( 'allow_minor_auto_core_updates', '__return_true' ); add_filter( 'allow_major_auto_core_updates', '__return_true' ); ■コア、プラグイン、テーマ、翻訳の自動更新無効の明示的な指定(フィルタで指定) add_filter( 'auto_update_core', '__return_false' ); add_filter( 'auto_update_plugin', '__return_false' ); add_filter( 'auto_update_theme', '__return_false' ); add_filter( 'auto_update_translation', '__return_false' ); ■自動更新の無効化(定数で指定) define( 'AUTOMATIC_UPDATER_DISABLED', true ); ■自動更新の無効化(フィルタで指定) add_filter( 'automatic_updater_disabled', '__return_true' );
14.
必要な機能だけ有効化 ● アカウントの整理 ● プラグインの整理 ● 管理用画面はアクセス制限 ● サーバのリモートアクセスは制限
15.
ユーザ名とパスワード ● 単純なユーザ名とパスワードの組み合わせは推 測されやすい – 推測されやすい例 ● 管理者アカウント:admin ●
パスワード: Password1! ● パスワードは、英数字で8文字以上、ただし、大 文字1文字以上、数字1文字以上、記号1文字以上 を推奨 ● パスワードジェネレータを使う
16.
パスワードジェネレータ <?php class GenPassword { public
$signs = [ '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '', ']', '^', '_', '`', '{', '|', '}', '~', ]; public function getPass($n) { if ($n < 8) { $n = 8; } return $this->getPassword(1, 1, 3, $n - 5); } public function getPassword($s, $n, $A, $a) { if ($s < 0) $s = 0; if ($n < 0) $n = 0; if ($A < 0) $A = 0; if ($a < 0) $a = 0; $length = $s + $n + $A + $a; if ($length < 8) { $s = 1; $n = 1; $A = 3; $a = 3; } $ar = array(); $p = 0; for ($i = 0; $i < $s; $i++) { $ar[$p] = $this->getSign(); $p++; } public function getSign() { $index = $this->randomNumber(count($this->signs)); $salt_value = $this->signs[$index]; return $salt_value; } public function randomNumber($max = 0x7FFFFFFF) { if (0x7FFFFFFF < $max) { $max = 0x7FFFFFFF; } $bytes = openssl_random_pseudo_bytes(4); if ($bytes === false || strlen($bytes) !== 4) { throw new RuntimeException('randomNumber error'); } $val = unpack('Nint', $bytes)['int'] & 0x7FFFFFFF; $fp = (float) $val / 0x7FFFFFFF; return (int) round($max * $fp); } } $app = new GenPassword(); $s = $app->getPass(8); for ($i = 0 ; $i<count($s) ; $i++) { echo $s[$i]; } echo "n"; for ($i = 0; $i < $n; $i++) { $ar[$p] = $this->getChar(ord('0'), 9); $p++; } for ($i = 0; $i < $A; $i++) { $ar[$p] = $this->getChar(ord('A'), 25); $p++; } for ($i = 0; $i < $a; $i++) { $ar[$p] = $this->getChar(ord('a'), 25); $p++; } shuffle($ar); return $ar; } public function getChar($base, $length) { $index = $this->randomNumber($length); $value = $base + $index; return chr($value); }
17.
管理画面へのアクセス制限 ● HTTPSによる暗号化通信路を使う ● BASIC認証などによる保護を追加する ●
接続できるIPを制限する ● クライアント証明書により接続できるWebブラ ウザを制限する ● SSHポートフォワードを使って接続するように する ● 管理画面のURLを変更する
18.
プラグイン ● WordPressにはいくつかのセキュリティ向け プラグインが公開されています。 ● 例: WP Security
Scanプラグイン データベーステーブル接頭辞変更
19.
wp-config.phpの保護 ● 書き換えがされないようにする ● コードが閲覧されないようにする ● 配置を工夫する – Wordpressのwp-config.phpファイルの場所をドキュメント ルート以外のディレクトリへ変更する -
Surflog 2.0 http://d.hatena.ne.jp/stylist/20120609/1339207873 – wp-load.php を確認してみると、どんな処理をしているか わかる ● 認証用ユニークキーの生成用URL – https://api.wordpress.org/secret-key/1.1/salt/
Download