Upload
yoshinori-matsumoto
View
344
Download
1
Embed Size (px)
Citation preview
松本 悦宜 @ ym405nm
(加筆修正版)
WordCamp Kansai 2016
• 自己紹介
• WordPressのセキュリティ事象
• 抑えておきたい攻撃パターン
• 吹き飛ばすには ~運用者編~
• 吹き飛ばすには ~開発者編~
• 吹き飛ばすには ~初心者編~
• 最後に
WordCamp Kansai 2016
WordPressは脆弱性が多い ← わかる
WordPressは危ない ← ええ・・・
WordPress使うな ← !?!?
WordCamp Kansai 2016
その後の某社
WP
危ない
脆弱性
レンタル
サーバごと
やられる
あああ
↑提案してきた人
WordCamp Kansai 2016
• 増え続けるユーザ数
管理できないサイトが増え続けていた
• WordPressに起因するセキュリティ事件が多発
WordPressを狙った攻撃が増加した
• プラグイン / テーマの脆弱性が多数発見
深刻な脆弱性をもつ製品が多く使用されていた
別のCMSが安全という人もおりました(´・ω:;.:…
WordCamp Kansai 2016
• WordPress本体のセキュリティアップデート
発見されたセキュリティ問題を迅速に修正
自動アップデートで配信
• セキュリティを強化するプラグインが登場
• セキュリティ関連の情報が増加
有志のユーザやホスティング会社などによる解説サイト
WordCamp Kansai 2016
他のCMSでも問題は数多く出てるんです・・・
大事なのはセキュリティに対し、みんなで取り組む
ことですよね!
J-WAVE、コマンドインジェクション攻撃による不正アクセス、個人情報64万件が流出した恐れhttp://internet.watch.impress.co.jp/docs/news/754885.html
WordCamp Kansai 2016
•WordPressに対する攻撃を2年間かけて追跡
•攻撃の傾向を調べてみました
WordCamp Kansai 2016
• IDパスワードに対する攻撃
• プラグインとテーマに対する攻撃
• サーバに対する攻撃
WordCamp Kansai 2016
• 攻撃検出の頻度を集計結果
• パスワードは短期間に大量のツールによる攻撃が来
ていた
WordCamp Kansai 2016
検出したパスワード攻撃の上位 20 件
11 . 1234567
12 . 123456789
13 . 123123
14 . adminpass
15 . pass
16 . abc123
17 . トップレベル付きドメイン名(小文字)18 . test
19 . Info12345678
20 . admin1
1 . admin2 . administrator3 . admin1234 . password5 . 1234566 . ドメイン名(小文字)7 . 1238 . 123459 . 1234567810 . 1234
WordCamp Kansai 2016
• 攻撃検出の頻度を集計結果
• 攻撃が継続的に行われている
WordCamp Kansai 2016
ソースIPをGeoIPにて国を検索した結果
※踏み台となっている可能性もある
ロシア
スウェーデン
ウクライナ
カナダ
WordCamp Kansai 2016
wp-mobile-detector
motopress-content-editor
formcraft
revslider
WordCamp Kansai 2016
• 各ファイルのパーミッションの設定が不適切
但しこの場合攻撃ケースは稀
• サーバの認証が不備にあっている
SSH接続、各種アカウント
• FTPはできるだけ使わないように
クライアントの脆弱性、FTPの仕様上の弱さ
WordCamp Kansai 2016
自動アップデート機能をなるべく使用する
「WordPress」「テーマ」「プラグイン」は最新のものを使
用する
それぞれ更新のタイミングがバラバラなので、ダッシュボー
ドの通知を要チェック
使っているものは最新版に保つ
WordCamp Kansai 2016
自分のアカウントのパスワードは強固なものにする(推測不
能、英数字混在8文字以上)
(できれば)ログインフォームへのアクセス制限、二要素認
証の導入など
サーバへのアクセスや、コントロールパネルへのアクセスも
同様
アカウントの管理をしっかりする
WordCamp Kansai 2016
メンテナンス頻度が高いものを選ぶ
脆弱性は無いのにこしたことはないが最初から0のものは
ない → 見つかった脆弱性に対し迅速に対応されているかが
重要
明らかに不要なものは削除しておく
無効にしている状態のままでは攻撃を受ける可能性がある
テーマ / プラグインの選定をする
WordCamp Kansai 2016
ユーザがアップロードしたファ
イルを使用する場合は要注意
アップロード機能をプラグイン
やテーマ内で実装するのではな
く、WordPressのギャラリーを
使用する
アップロード機能に注意
画像
攻撃用
WordPress
テーマ/プラグイン
WordCamp Kansai 2016
plugins/wp-sample/download.php?file=sample.png
ダウンロード機能に注意
ダウンロード機能があるプラグイン
ここにファイル名を指定してる場合
WordCamp Kansai 2016
GET /wp-content/plugins/_____/downloadpdffile.php?fileName=../../../../../../../../../../etc/passwd HTTP/1.1Host: [server].infoKeep-Alive: 300Connection: keep-aliveUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 OPR/36.0.2130.32
サーバの任意のファイルが取得可能
同様の手法で wp-config.php もダウンロードされる
実際の攻撃事例
WordCamp Kansai 2016
• 対策
ファイルを配列などで間接的に指定する
または、ディレクトリを表す記号(例:「/」、
「../」、「..¥」)が来た場合はエラーを返す
WordCamp Kansai 2016
脆弱性に注意
XSS : スクリプトを埋め込まれる脆弱性
出力値にWordPressのエスケープ関数を使用する
WordCamp Kansai 2016
脆弱性に注意
SQLインジェクション : DBに不正な操作を行われる脆弱性
できるだけ文字列連結でクエリを構成するのを避ける
$wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->postmeta
( post_id, meta_key, meta_value )VALUES ( %d, %s, %s )",
10, $metakey, $metavalue
) ); Codex関数リファレンス/wpdb Classhttps://wpdocs.osdn.jp/関数リファレンス/wpdb_Class
対策コード
WordCamp Kansai 2016
脆弱性に注意
CSRF : 不正なページ遷移により、なりすましをさせられる
脆弱性
nonce を使用しページ遷移を検証する
※ プラグインのconfig画面など
生成 : wp_create_nonce( $action );
検証 : wp_verify_nonce( $nonce, $action );
WordCamp Kansai 2016
<?php$nonce = wp_create_nonce( 'my-nonce' );?><a href='myplugin.php?do_something=some_action&_wpnonce=<?phpecho $nonce; ?>'>Do some action</a>
<?php// このコードは行き先ページに書く。// nonce を検証する必要がある。$nonce = $_REQUEST['_wpnonce'];if ( ! wp_verify_nonce( $nonce, 'my-nonce' ) ) {
// nonce が無効な場合。die( 'Security check' );
} else {// nonce が有効な場合。// 目的のアクションを実行。
}?>
Codex関数リファレンス/wp create noncehttps://wpdocs.osdn.jp関数リファレンス/wp_create_nonce
対策コード
WordCamp Kansai 2016
「よくわからんけど怖いことだけわかった」
「全部やるのは面倒くさいよね・・・」
最低限やったほうがいいことだけ
今から教えます!
WordCamp Kansai 2016
悪い例 : adminpass
良い例 : aDm1n4ss
パスワードを見直す
8文字以上、英数混合、推測されにくいもの
パスワードジェネレータで生成するのもOK
意外と日本語のローマ字表記も有効?
WordCamp Kansai 2016
テーマ・プラグインの選定
1年以内に更新されているもの
ユーザ数が多いもの
安全性の観点では無料・有料は関係ない
WordCamp Kansai 2016
ログインするたびに通知はみておく
特に見ておく必要があるのはこのあたり
WordCamp Kansai 2016
レンタルサーバを利用する
自分で管理する場合…
iptables ? PHPのアップデート? OpenSSL ?
WordPress.com
WordPress専用サーバなど
WordCamp Kansai 2016
WordPressは適切に開発・運用すれば、
安全にしやすいソフトウェアです!
今日紹介したもの
・開発者の対策
・運用者の対策
・初心者の対策
WordCamp Kansai 2016
WordPressの安全のおともに(登録無料)
https://wp-portal.net
国内のWordPressに対する攻撃情報が掲載されている
ご自身のWordPressサイトのセキュリティチェックができる