Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DEFCON21×S2 REPORT

2,432 views

Published on

サーバ防衛要員としてDEFCON21へ参戦してきたレポートです。

DEFCON21×S2 REPORT

  1. 1. DEFCON21×S2 REPORT @alterakey 7.11.2013
  2. 2. 自己紹介 • @alterakey • 株式会社モノリスワークス CTO • チームではサーバの防衛を主にやる
  3. 3. ネットワーク構成 • IPv6?→まさかのIPv4!? • 10.5.[team #].0/24 →S2: 8: 10.5.8.0/24
  4. 4. ネットワーク構成 • 10.5.8.1: ルータ • 10.5.8.2: 問題サーバ • 10.5.8....: クライアント (DHCP) ※ルータと問題サーバは物理的には 多分同居
  5. 5. 問題 • trouver • atmail • avoir • bookworm • lonetuna/lonetuna2 • reeses
  6. 6. 問題 • 解析の難易度はかなり高い • ARM: hardware breakpointを持って いないのでgdbによるbreakが困難 • そもそも実機にattach不能 → UbuntuをGNに入れてデバッグ
  7. 7. 問題 • BOF系はExploitの難易度もかなり高い • Non-executable stack: ROP必須 • ASLR: 成功確率が大幅に低下
  8. 8. lonetuna I • 電光掲示板のようなデ ィスプレイサービス • SLA: Binary • DoS: ポートを枯渇させ られる • Buffer Overflow
  9. 9. atmail • MTAのようなもの • SLA: ASCII • Directory Traversal • リプレイが有効→豊漁
  10. 10. bookworm • 本のレビューなどを書 き込めるgopher的なサ ービス • SLA: ASCII only • Buffer Overflow
  11. 11. avoir • 難読化されたFTP的な プロトコルを使うファ イルサービス • SLA: ASCII only • DoS: ファイルを無限に 作れる • Buffer Overflow
  12. 12. trouver • カスタムプロトコルを 使ったファイルサービ ス • SLA: ASCII only • DoS: ファイルを無限に… • Buffer Overflow
  13. 13. lonetuna II • 基本的には対策が入っ たlonetuna I • 集中攻撃があった (reverse connect) • SLA: Binary • Buffer Overflow
  14. 14. reeses • MIPSエミュレータ (署名検証付き) • SLA: Binary • DoS: ? • バックドア的なinsnが 存在?
  15. 15. reeses • これにも集中攻撃… • Base64されていたので フィルタを抜けた
  16. 16. 防御戦略 • 問題サーバに対する攻撃 • Buffer Overflows • Directory Traversals • etc. etc....
  17. 17. 防御戦略 • 一般化は難しい
  18. 18. 防御戦略 • 一般化は難しい • 競技中何が起きるか分からない
  19. 19. 防御戦略 • 一般化が難しい • 競技中何が起きるか分からない • 即応する必要性
  20. 20. …! • Application Firewalling • input/output blacklist/whitelist
  21. 21. ということで • ptrace(2): Syscall trapping • bruco_proxy https://github.com/yoggy/bruco_proxy • bruco_pipe https://github.com/yoggy/bruco_pipe …という感じの準備を。
  22. 22. …が! • ptrace(2)がいやらしい程に完全封鎖 • 同一UIDでも利用不可っておい… • 多分yamaパッチ: https://wiki.ubuntu.com/SecurityTeam/Roadmap/ KernelHardening#ptrace_Protection • rootがないので設定変更不可
  23. 23. なんとかできないか? • ほとんどの問題について • ダイナミックリンク • non-SUID/SGID • xinetdで毎回起動されている …?!
  24. 24. !! • Library call trapping with LD_PRELOAD
  25. 25. !! • Library call trapping with LD_PRELOAD • Trap at: recv(3)/send(3)/read(3)/ write(3)
  26. 26. !! • Library call trapping with LD_PRELOAD • Trap at: recv(3)/send(3)/read(3)/ write(3) • Regular expression: regex(7) …
  27. 27. !! • ここまで思いついて書くまで60秒
  28. 28. !! • ここまで思いついて書くまで60秒 • こんな感じ→ https://gist.github.com/taky/7291969
  29. 29. パケット解析 • 正常な使用と攻撃の鑑別
  30. 30. SLA監視: 正常運転 • サービスの正常性を監 視するために運営側が 定期的に接続してくる • 実際のユーザが使用し ている状態に相当 • これに応答できないと 減点
  31. 31. 今回は… • SLA監視パケットが素直 • 正常な使用と攻撃の鑑別が容易だった!
  32. 32. 攻撃の特徴 • 脆弱性ごとにバラバラ… • Generic (leakage evidence) • Buffer Overflows • Directory Traversal • etc...
  33. 33. 攻撃の特徴 • 攻撃パケットから特徴を抽出 • recv(3)/send(3)/read(3)/write(3)ト ラップに正規表現を仕掛けて攻撃を検出 • 成功検知から数秒レベルの速度感で対策
  34. 34. Generic: Leakage Evidence • BsyKfdIOH2XBY4juNegffRMHOLNLb hUsGswX5LPyXzeEUJfaTHif → send/write blacklist: [a-zA-Z0-9] {52}
  35. 35. Buffer Overflow I: Padding • AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBB BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC... → recv/read blacklist: [A-C]{64} 
  36. 36. Buffer Overflow II: Shellcodes • xffxbexc5x34/bin/sh → recv/read blacklist: /bin/sh • xffxbexc5x34cat /home/tokens/... → recv/read blacklist: /tokens • xffxbexc5x34xffxbexc5x34xffxbexc5x34xffxbe xc5x34xffxbexc5x34xffxbexc5x34... → recv/read whitelist: ^[x20-x7f]*$
  37. 37. Directory Traversal • ../ → recv/read blacklist: ../
  38. 38. DoSの脅威 • 攻撃が蔓延するにつれ接続数が増加 • サーバの接続数やプロセス数が上限に到 達するなどでconnection refusedに • SLAを落としてしまう事案が頻発
  39. 39. DoSの脅威 • せっかく守っても DoSで死ぬと地味につらい…
  40. 40. DoS対策 • 定期的にkillするようなスクリプト • 張り付いて接続が集中してきた時点で手 動で一括killなどの対策を地道に
  41. 41. 自動化? • accept(3)→接続を拒否するなど • しかしSLA監視自体はどこかのアドレス レンジをspoofして来る →そこまで単純にはブロックできない
  42. 42. 自動化? • Layer 2アドレスは固定だったような? • ここでトラップできれば無敵だった疑惑
  43. 43. 自動化? • 攻撃が今回ほとんどexec*(3)経由 • ここでトラップできれば無敵だった疑惑
  44. 44. 攻撃検知 • パケットダンプを定期的に解析 • 外方向へキーが飛んでいることを検知・ 報告するスクリプト • op氏が運用
  45. 45. 課題 • 分業化や自動化 • パケット解析 • バイナリ解析 • SLA監視・確保
  46. 46. 課題 • 効率的な分業は簡単ではない • 会場にいない人が当事者になれない 今なにが起きているんだろう? 今なにが欲しいんだろう? 今なにができるだろう? etc...
  47. 47. 課題 • 効率的な分業は簡単ではない • メンバー間の温度差 • 刻々と変わる伝わらない戦況 攻撃検知、トレンド変化、解析知見、戦略変更、リア ルな事件、裁定、アナウンス、PV、etc, etc...
  48. 48. 対策 • 適材適所は重要 • 勝つには組織的にかつ冷徹に • バラバラに動いていては意味がない
  49. 49. 対策 • 定型作業は極力自動化 • SLA監視・対策 • anormally検出も…
  50. 50. 余談 • 反省会でも当然この辺りは出て…
  51. 51. 余談 • 紅白戦的なCTFでもやろうとか
  52. 52. 余談 • DEFCON21 Final相当の環境を使用 • 防御側: IDS/IPSを作る • 攻撃側: サービスを攻撃する • 運営側: SLA監視 etc.
  53. 53. この案 • スキルを磨くのになかなかいいかも
  54. 54. • ご静聴ありがとうございました。

×