ハニーポットを用いた攻撃兆候の自動検出

 ハニーポットを用いた攻撃兆候の自動検出

第2回 ハニーポッター技術交流会の発表スライド

61a110cb2b8a4a3ac53403f722ea4229?s=128

yuzuman_1014

November 25, 2017
Tweet

Transcript

  1. ハニーポットを用いた 攻撃兆候の自動検出

  2. AGENDA 1. モチベーション 2. 利用したハニーポット 3. 収集した通信 4. 攻撃の兆候把握 5.

    まとめ 2
  3. $ WHO AM I • 同人誌を頒布しました@技術書典3 • 今回の発表は、その中で自分が担 当した部分を再編集した内容と なっています

    3 • Twitter:@yuzuman_1014 • お仕事:見習いセキュリティ研究者? • ハニーポッター歴:約3ヵ月
  4. モチベーション(CONT’D) • 個人でのサーバ運用が増えている • 安価なサーバの普及 • VPSサービスの普及 • サーバ運用での脅威の一つに、サイバー攻撃がある •

    インターネットにサーバを公開している以上、攻撃を受 ける可能性は常に付きまとう • 攻撃に加担してしまう可能性もある → 攻撃の兆候を検知して、来るべき攻撃に備えたい やりたかったこと: ハニーポットを用いて収集した情報から攻撃の兆候を 自動で検知 4
  5. モチベーション(CONT’D) 5 JPCERT/CC, https://www.jpcert.or.jp/at/2014/at140055.html 各種機関が注意喚起の 形で情報提供

  6. モチベーション 個人のサーバ運用 大規模組織のサーバ運用 • 専任監視員は当然いない • 日々のアクセスログ監視は困難 • 情勢情報収集も同様 •

    セキュリティコントロールを実施する 情報源が不足しがち • 専任監視員がいて、以下の業務 に従事 • 日々アクセスログを監視 • 情勢情報を収集 • 上記業務を基にセキュリティコント ロールを実施 自動で攻撃を検知することによる個人サーバ運用の支援を目指す 6 一方で...
  7. 利用したハニーポット(CONT’D) • T-Pot • 各種ハニーポットをコンテナ上で動作させる • Glastopf(80/TCP) • Cowrie(22/TCP) •

    elasticpot(9200/TCP) • Dionaea(色々) など • それぞれからの情報を収集・可視化する機能も提供され ている • 各コンテナを1日ごとにリバートすることによって、攻撃 に加担してしまうリスクを低減している 7
  8. 利用したハニーポット(CONT’D) • T-PotのWeb画面 ログイン試行に用いられたユーザ名/パスワード 攻撃元の国 OS 各ハニーポットでのイベント数 各ポートへの通信数 8

  9. 利用したハニーポット • なぜT-Pot? • 色々はいるから初心者でもとりあえず何とかなる • それぞれからの情報を収集・可視化する機能も提供され ている • 各コンテナを1日ごとにリバートすることによって、攻撃

    に加担してしまうリスクを低減している • Web画面が格好良い! • ただし欠点(?)も • リソースがそこそこ必要(標準インストールでメモリ: 4GB、ストレージ:64GB) • 某VPS換算だと3,888円/月 9
  10. 収集した通信(CONT’D) • 収集期間:2017年8月31日~9月30日 • ポート毎の総通信数と利用例(下表、上位9件を抽出) • 各ポートにおける12時間毎の通信数遷移(次ページ) ポート番号 総通信数 利用例†

    2223 114,195 ESET remote administrator 4899 85,573 Radmin remote administration tool 5900 58,393 Virtual Network Computing (VNC) remote desktop protocol 445 55,430 Microsoft-DS Active Directory, Microsoft-DS SMB file sharing 2222 29,311 ESET Remote administrator 80 16,043 Hypertext Transfer Protocol (HTTP) 1433 4,890 Microsoft SQL Server database management system server 2323 3,711 Philips TVs based on jointSPACE 25 3,578 Simple Mail Transfer Protocol (SMTP) †Wikipedia: List of TCP and UDP port numbers, https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
  11. 収集した通信(CONT’D) 11

  12. :検出したい 収集した通信 12

  13. 攻撃の兆候把握(CONT’D) 13 Argmax.jp, http://argmax.jp/index.php?changefinder • 変化点検出アルゴリズム: Change Finderを利用 ✓自己回帰モデルを作成し、予測値と実測値の誤差から変化点を検出 青線:時系列データ

    赤線:変化点スコア
  14. 攻撃の兆候把握(CONT’D) 14 q t -log p t-1 (x t |

    xt-1) Read xt y t = 1 σ =− −1 + 1 ) -log q t-1 (y t | yt-1) Leaning probability density Scoring Leaning probability density Moving average of Scores Scoring p t 時刻tの際の時系列データ(入力) Change Finder: 確率密度関数を計算 入力の外れ値スコアを算出 ウインドウサイズTで平滑化 することでノイズを除去 再度確率密度関数を計算 変化点スコアを算出
  15. 攻撃の兆候把握 • @ 観測初期(変化点スコアが落ち着くまで)の変化点は検出できなかった :検出できなかった • @ :検出できた

  16. :検出できなかった 攻撃の兆候把握 • @ ある程度変化点スコアが落ち着いた後は、検出したかった点を概ね検出できた :検出できた

  17. まとめ • ハニーポットで収集した通信ログと変化点検出アルゴリズム を利用した攻撃兆候の検出について述べた。 • 定性的には攻撃兆候(通信の変化)を捉えれたと言えそう。 • ハニーポット楽しい! • ドメインに紐づけたりしていないのに、構築後すぐ通信

    を観測 • 今後は、長期的な観測や通信の内容まで含めた解析にも 取り組んでみたい。 17
  18. 収集した攻撃情報 Cowrieで収集したユーザ名/パスワード → miraiらしきものを多数観測 18 順位 ユーザ名 試行数 1 (なし)

    63,724 2 root 61,974 3 sh 55,125 4 system 49,809 5 admin 37,310 6 enable 27,972 7 >/dev/.ptmx && cd /var/ 14,530 8 support 9,132 9 user 8,984 10 guest 8,691 順位 パスワード 試行数 1 shell 71,468 2 enable 63,684 3 >/tmp/.ptmx && cd /tmp/ 38,021 4 /bin/busybox ECCHI 17,075 5 >/dev/.ptmx && cd /dev/ 14,530 6 admin 12,881 7 12345 9,191 8 user 8,729 9 (なし) 7,884 10 123456 7,074