Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WordPress Hardening CheetSheet 8/20
Search
tsb
August 22, 2015
Technology
1
1.1k
WordPress Hardening CheetSheet 8/20
2015/8/20 WASNight 2015 Summer で発表したスライド資料です。
tsb
August 22, 2015
Tweet
Share
More Decks by tsb
See All by tsb
20151206_AWS+Security
tsb
0
760
Other Decks in Technology
See All in Technology
君は隠しイベントを見つけれるか?
mujyun
0
290
使えそうで使われないCloudHSM
maikamibayashi
0
170
ユーザーの購買行動モデリングとその分析 / dsc-purchase-analysis
cyberagentdevelopers
PRO
2
100
話題のGraphRAG、その可能性と課題を理解する
hide212131
4
1.5k
サイバーエージェントにおける生成AIのリスキリング施策の取り組み / cyber-ai-reskilling
cyberagentdevelopers
PRO
2
200
コンテンツを支える 若手ゲームクリエイターの アートディレクションの事例紹介 / cagamefi-game
cyberagentdevelopers
PRO
1
130
omakaseしないための.rubocop.yml のつくりかた / How to Build Your .rubocop.yml to Avoid Omakase #kaigionrails
linkers_tech
3
730
チームを主語にしてみる / Making "Team" the Subject
ar_tama
4
310
スプリントゴールにチームの状態も設定する背景とその効果 / Team state in sprint goals why and impact
kakehashi
2
100
CyberAgent 生成AI Deep Dive with Amazon Web Services / genai-aws
cyberagentdevelopers
PRO
1
480
Commitment vs Harrisonism - Keynote for Scrum Niseko 2024
miholovesq
6
1.1k
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
290k
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
45
6.6k
Statistics for Hackers
jakevdp
796
220k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
167
49k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
790
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
32
2.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Designing Experiences People Love
moore
138
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
Navigating Team Friction
lara
183
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
Transcript
WordPress Hardening CheetSheet Hardening 10 MarketPlace 2015.8.20 @ MP4
陽気なMP4がhardeningをまわす!
MP4 とは MarketPlace4 と呼ばれる4人組です。 Hardening 10 MarketPlace (2015/06/20-21沖縄開催)で 下記のように特殊任務をいただき参加いたしました。 競技に申し込んだものの、競技チームではなく
「専門家としてプロフェッショナルサービスを展開する」側として ご出場いただきたいという実行委員会からの悲報を頂きました。 → つまり、プロとしてお金をいただきチームをサポートする役割!
MP4 自己紹介 @TSB_KZK 鬼軍曹 @delphinz プロジェクトマ ネージャ @sasser_jp セキュリティ コンサルタント @YuhoKameda
脆弱性診断士
MP4 本日の発表内容について 今回、我々MP4でHardeningの経験を元に WordPress Hardening CheetSheet を作成いたしました。 本日は作成経緯からチートシートの内容紹介・活用方法まで 簡単にご紹介いたします。
WordPress Hardening CheetSheet 作成に至る背景 MP4のミッションは 6月20日、 競技当日に沖縄で知ることとなる
競技参加者のミッションをまとめるお仕事のはず・・・ 競技者作成のマニュアルをまとめればいいのか〜 やることは明確だね あれ?提出したのはたった 1チーム?! 脆弱性に特化した内容でチートシートには・・・
ならばつくってしまいましょう! コンセプト: 比較的易しめで、最低限実施すべきセキュリティ 対策を網羅したシートを作成する 対象者: ・WordPress初心者層 ・個人でブログやプラグインを利用しサイトを管理している人 ・中小企業でカスタマイズ・チューニングを実施できる人 ・Hardening参加者(が最初に実施すべき事項)
Summary コンテンツ抜粋: ・WordPressアップデート ・デフォルト設定を変更 ・管理画面のアクセス権限 ・不要なサービス起動の禁止 ・攻撃緩和策の実施 ・ログの管理 ・バックアップ ・個人情報の管理 等々
鋭意取りまとめ中。近日公開予定!
Hardening Projectの教訓について チートシートの一部内容や今後の活動を紹介 いたします。特にHardeningの経験を通じて学んだ 内容をピックアップ。 メニュー: ・WordPressアップデートについて (@sasser_jp) ・脆弱な環境の構築について (@delphinz)
・可用性について (@TSB_KZK)
WordPressアップデートについて (@sasser_jp)
WordPressアップデートについて ▼WordPressアップデート(チートシート抜粋) ・WordPressの最新版が無いか確認する。 - WordPressダッシュボードから最新版を確認する。 コアのアップデート プラグインの アップデート
Hardening 10 MarketPlaceでも・・・ 本体(コア)と3つのプラグインの 脆弱性が攻撃対象に・・・ 既知の脆弱性はアップデートすれば 対処できる
いきなり攻撃はやってくる まずはプラグインの一時停止を検討する 例:FancyBox:画像を拡大表示不可 wp−filemanger : FTPクライアントを利用 Hardening 10 MarketPlaceでは、今回より用意いただいた検証環境が あるので確認してから停止するとなおよし
プラグインの手動アップデートを実施 ①アップデートファイル のダウンロード # cp -pR /var/www/wordpress/wp-content/plugins/fancybox-for-wordpress/ /tmp/ # unzip
-d /var/www/wordpress/wp-content/plugins/ -o fancybox-for-wordpress.3.0.6.zip # diff -qr /tmp/fancybox-for-wordpress/ /var/www/wordpress/wp-content/plugins/fancybox-for-wordpress/ ②プラグインファイル上書き ③ アップデート完了 # 本体(コア)の手動アップグレードは下記参照 http://wpdocs.osdn.jp/WordPress_のアップグレード Hardening の環境ではサーバが直接インターネット上のファイ ルを取得できないので手動アップデートが必要
それでもアップデートできない場合 ▼別のリスク緩和策を検討する ・アクセスを制御 (IPアドレス制御、BASIC認証) ・ログの取得・監視(アクセスログ・エラーログ) ・バックアップを定期的に取得 ・WAF、セキュリティ系プラグインの利用 ・WPSCAN等で脆弱性診断を実施 ・機密情報を保持しない ・インシデント対応の事前準備
Hardeningでは、できる範囲で対策を実装すること
脆弱な環境の構築について (@delphinz)
そもそも検証環境をどうやって用意すべきか WordPressの脆弱性を検証するのって面倒じゃない? よろしいならば構築だ! 残暑お見舞いにhardeningで使われた WordPress脆弱性をつめこんだ 環境構築スクリプトを作成しました! githubにて公開(READMEはあとで書く!) https://github.com/delphinz/vulnerable-wordpress-playbook
WordPress脆弱性詰め合わせの内容 インストールされるパッケージ 項目 属性 バージョン リリース日 WordPress 本体 4.1 2014-12-19
welcart_default テーマ プラグインに準拠 - MailPoet newsletters プラグイン 2.6.6 2014-04-30. fancy box プラグイン 3.0.2 ? wp-file manager プラグイン 1.2 ? Welcart e-Commerce プラグイン 1.2.1 2012-10-5 amazon ami (micro) でおよそ3分前後で構築できます! ※ wpcli の制限で4.1より古いバージョンが入らなかった(汗) amazon ami@ec2 & centos6.6@vmware で検証済み!
環境構築に使用した要素技術 ansible Pythonで書かれたサーバ環境の構成管理ツール。 chefと違ってサーバへのインストール不要! 設定はYAMLファイルとして記述します。 Pythonがわからなくても使えます! http://www. ansible.com/home wpcli wordpresの操作をコマンドラインから行えるようにするツール
WordPress本体、plugin、theme のインストール・アップデートや投稿の管理も可能! http://wp-cli.org/ その他 「awscli」 もサーバの起動・破棄が即座に行えて便利!
今後の展望 盛り込めなかったコト - WordPress以外の脆弱性も入れたかった → shellshckやheartbleed 、サーバ設定不備etc - サンプルデータの投入 → 商品0件、初期画面がwelcartデフォルト画面・・・ -
クローラの実装 → 負荷をかける & チューニングを試してみる - 監視環境のインストール → 負荷を監視してみる ( Pandora FMS がイイよ!) ゆくゆくは 「ぼっちMINI hardening環境」 へ???
可用性について (@TSB_KZK)
可用性は Hardening の永遠の命題 そもそもサイトが停止したらビジネスに直結 他のECサイトが落ちているときはビジネスチャンス wikipedia にも書いてある
可用性を考える 負荷ひとつ取っても正常異常さまざま考えられる 古くはF5連打 DoS 不正パケット系 トラフィック埋める系 バルス! Yahoo砲とかWBS砲とか とにかく、自分にできることをやろう! 対処すべき攻撃
助けてーと叫ぶ
ぜひ聞きたい そのデフォルト設定で、 8時間戦えますか? デフォルト設定だと最大で 256clients x 128MB ≒ 32GB ※memory_limitに依存。デフォルト128MB?
$ cat /etc/httpd/conf/httpd.conf StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000
・具体的には何やればいいの? チューニング httpd.conf の設定 MaxRequestsPerChild: デフォルト4000 -> php なら数百以下がベター MaxClients:
メモリ量に応じて。デフォルト256は大きい Keepalive on かつ KeepAliveTimeout 短めに ※ロードバランサ利用時は要注意 キャッシュプラグインの導入 静的ファイルのキャッシュ / ブラウザキャッシュ フロントでの防御 主にiptables。DoS を防ぐ設定を。 “粘り強い”設定を!
まだ足りない? ・よろしい、ならば翼を授けよう APC(Alternative PHP Cache) リバースプロキシの導入(nginx, varnish, etc) mysqlチューニング LAMP
からの脱却。 nginx とか ・最後はお金の力で解決 スケールアップ バランシング CDN
まとめ ”習うより慣れよ” 最後に、まずは体感してください。 MINI Hardening という初心者向けハードニング 競技イベントを定期的に開催していますので、 是非ご検討ください。 ※ 次回は8/29(土)に開催。大阪開催予定も? http://minihardening.connpass.com/
ハッシュタグ #minihardening