Slide 1

Slide 1 text

Modern Honey Networkを使ったハニーポットの管理 第3回 ハニーポッター技術交流会 2018.02.24 (SAT) 1

Slide 2

Slide 2 text

自己紹介 • 黒彪 (くろひょう) • 医薬品の営業→インフラ系SE • ハニーポッター歴 約7ヶ月 2 @blackle0pard_

Slide 3

Slide 3 text

今回のLTについて 3 • ツールの紹介がメインになります。 • ログ分析や攻撃についての考察などの話は少ないです。 • 本日紹介するツールにログイン出来るアカウントを用意しました(実際 に数週間、ハニーポットとして運用しています)。適当に触りながら、お 聞きください。

Slide 4

Slide 4 text

今回の構成 4 Splunk MHN 日本 各インスタンス : 25GB SSD / $5 1CPU, 1024MB, 1000GB Bandwith フランスなど 管理サーバー

Slide 5

Slide 5 text

注意事項 • アカウント情報を変更しないで下さい。 • Twitterなどにアカウント情報を公開しないようにお願いします(公 開は勉強会の参加者のみです)。 • アカウント情報は本日中に削除する予定です。 • 個人利用の範囲であれば、データのダウンロードやキャプチャの取 得はご自由にどうぞ! 5

Slide 6

Slide 6 text

アカウント情報 6 • Modern Honey Network  ログインURL:https://hp.blackle0pard.net/  Email:[email protected]  Password:hanipotech0224 • Splunk  ログインURL:https://hp.blackle0pard.net:7443  Email:bee  Password:hanipotech0224 勉強会参加者のみに公開m(_ _)m

Slide 7

Slide 7 text

Modern Honey Network(MHN)とは • ハニーポットの管理サーバー  複数のハニーポットのデータを一つにまとめて、一元管理できるようにする • ログの可視化  ログの集計(過去24時間の攻撃回数、送信元IP、攻撃されたポート番号など)  SSH系ハニーポットへの攻撃に使用されたユーザ名、パスワードなどの集計  ログの分類(glastopf、suricata、dionaea、snort) • インストール用スクリプトの提供・構築の自動化  ハニーポット  ELK(Elasticsearch, Logstash, Kibana)  Splunkと連携するためのツール 7

Slide 8

Slide 8 text

Modern Honey Network(MHN)とは (参考) • GitHub - threatstream/mhn: Modern Honey Network https://github.com/threatstream/mhn • mhn - GitHub Pages https://threatstream.github.io/mhn/ • Modern Honey Network - Google グループ https://groups.google.com/forum/#!forum/modern-honey- network 8

Slide 9

Slide 9 text

MHNの大雑把な構成 ① Sensors ハニーポット ② hpfeeds, Mnemosyne, mongoDB ハニーポットから情報を収集・格納 https://github.com/rep/hpfeeds https://github.com/johnnykv/mnemosy ne ③ honeymap, Webapp, REST API 収集した情報の可視化。 9 ref : https://threatstream.github.io/mhn/images/architecture.png ハニーポット 管理サーバー

Slide 10

Slide 10 text

MHNの良いところ、駄目なところ • 良いところ  構築が簡単。スクリプトを実行するだけで管理サーバー、ハニーポットをインストー ルすることができる。  ログの可視化や集計が簡単にできる。  使っている人がわりと多いので、何かしらの情報は見つかる(ただし、日本語の情 報は皆無)。 • 駄目なところ  エラーでスクリプトの実行に失敗することが多い気がする(個人的な感想)。  スクリプトがメンテナンスされていないものもあり、インストールされるバージョンが古 い場合がある(例:Kibana)。  デフォルトの場合、集計方法の柔軟性が低い(他のツールと連携する必要があ る)。 10

Slide 11

Slide 11 text

インストールが簡単@管理サーバー 11 • サポートされているOSは、Ubuntu 14.04, 16.04、CentOS 6.9 • インストールのコマンドは下記のとおりです。 $ sudo apt-get install git -y $ cd /opt/ $ sudo git clone https://github.com/threatstream/mhn.git $ cd mhn/ $ sudo ./install.sh

Slide 12

Slide 12 text

インストールが簡単@ハニーポット 12 • 管理サーバーからダウンロードしたスクリプトを実行するだけです。 • インストールのコマンドは下記のとおりです。 (例 : Dionaea) $ sudo wget "https://example.com/api/script/?text=true&script_id=4" -O deploy.sh && sudo bash deploy.sh https://example.com

Slide 13

Slide 13 text

インストール手順 (参考) • README mhn/README.md at master · threatstream/mhn · GitHub https://github.com/threatstream/mhn/blob/master/README.md • 詳細な手順は下記のPDFを参照 Exercise 1: Deploy and Configure Modern Honey Network https://mhn-training.s3.amazonaws.com/labs.pdf • 記載された手順通りにインストールしてもサービスが起動しないとかスク リプトの実行に失敗するとか色々あるので、困ったときはGitHubの issuesを参照 https://github.com/threatstream/mhn/issues 13

Slide 14

Slide 14 text

デモ • 言葉の説明だけではModern Honey Networkが何なのか全く伝 わらなかったと思うので、ハニーポットをインストールしながら実際のツー ルを見てみましょう。 14

Slide 15

Slide 15 text

Sensors (ハニーポット) 15 ref : https://threatstream.github.io/mhn/images/architecture.png

Slide 16

Slide 16 text

ハニーポットのインストール 16 インストールするハニーポットを選択してコ マンドを実行する。

Slide 17

Slide 17 text

スクリプトが提供されているハニーポット一覧 17 ハニーポット 対応OS 備考 Conpot Ubuntu ICS/SCADA honeypot Wordpot Ubuntu A WordPress Honeypot Shockpot Ubuntu WebApp Honeypot for detecting Shell Shock exploit attempts p0f Ubuntu a passive TCP/IP stack fingerprinting tool Suricata Ubuntu Open Source IDS / IPS / NSM engine Glastopf Ubuntu Web Application Honeypot ElasticHoney Ubuntu A Simple Elasticsearch Honeypot Amun Ubuntu vulnerability emulation honeypot Snort Ubuntu Network Intrusion Detection & Prevention System Cowrie Ubuntu Cowrie SSH Honeypot (based on kippo) Dionaea Ubuntu,CentOS Raspberry Pi A Malware Capturing Honeypot ref : https://github.com/threatstream/mhn/tree/master/scripts

Slide 18

Slide 18 text

自作のスクリプト登録も可能 • hpfees, mnemosyneと連携すれば一覧に載っていないハニーポッ トのログもMHNで管理することが出来る。 • Howto: Add Support for New Sensors to the MHN · threatstream/mhn Wiki · GitHub https://github.com/threatstream/mhn/wiki/Howto%3A-Add- Support-for-New-Sensors-to-the-MHN 18

Slide 19

Slide 19 text

本編から話が少しズレますが。。。。。。。 19 ref : https://honeyscore.shodan.io

Slide 20

Slide 20 text

Honeypot Or Not? • 有名なSHODANから提供されている。 • IPアドレスを入力して確認すると対象サーバーがハニーポットか、そうで ないかを判定してくれるサイト。 • (自分はこのサイトの存在を最近、知りましたがハニーポット判定の仕 組みを理解していないので)真偽のほどは不明。。。。。 • 目安にはなるかも? 20

Slide 21

Slide 21 text

Honeymap 21 ref : https://threatstream.github.io/mhn/images/architecture.png

Slide 22

Slide 22 text

Honeymap 22

Slide 23

Slide 23 text

Honeymap • ハニーポットへの攻撃を地図上に、リアルタイムに表示する。 • Cyber Threat Mapsみたいなもの。 https://www.fireeye.com/cyber-map/threat-map.html https://cybermap.kaspersky.com http://map.norsecorp.com/#/ • GitHub - fw42/honeymap: Real-time websocket stream of GPS events on a fancy SVG world map https://github.com/fw42/honeymap 23

Slide 24

Slide 24 text

Webapp 24 ref : https://threatstream.github.io/mhn/images/architecture.png

Slide 25

Slide 25 text

ログの可視化 • ハニーポットから収集したログの可視化(インストール時に設定済みな ので設定は不要) • Attack Stats  攻撃元のIPアドレス・国名、攻撃されているポート番号などの統計情報 • Attacks Report  各ハニーポットからのログを時系列で表示 • Payloads Report  収集したログを分類して表示 • Charts  SSHハニーポットの攻撃に使用されたユーザ名やパスワードなどの統計情報 25

Slide 26

Slide 26 text

Attack Stats 26

Slide 27

Slide 27 text

Attacks Report 27

Slide 28

Slide 28 text

Payloads Report 28

Slide 29

Slide 29 text

Kippo/Cowrie Top Passwords 29 # パスワード (攻撃回数) 1 123456 (233) 2 support (219) 3 password (200) 4 1234 (129) 5 admin (128) 6 default (126) 7 ubnt (116) 8 service (114) 9 pfsense (109) 10 manager (103) 2018/01/28 – 2018/02/11

Slide 30

Slide 30 text

Kippo/Cowrie Top Users 30 # ユーザー名 (攻撃回数) 1 admin (1534) 2 support (247) 3 service (165) 4 oracle (152) 5 postgres (124) 6 user (108) 7 ubnt (108) 8 wp-user (86) 9 test (83) 10 wp-admin (81) 2018/01/28 – 2018/02/11

Slide 31

Slide 31 text

Kippo/Cowrie Top User/Passwords 31 # ユーザー名/パスワード 1 support/support (213) 2 admin/default (120) 3 admin/password (116) 4 admin/admin (110) 5 admin/pfsense (109) 6 service/service (108) 7 ubnt/ubnt (107) 8 admin/7ujMko0admin (101) 9 admin/manager (101) 10 admin/1234 (99) 2018/01/28 – 2018/02/11

Slide 32

Slide 32 text

Kippo/Cowrie Top Attackers 32 # 送信元 (攻撃回数) 1 アメリカ合衆国 (624) 2 ドイツ連邦共和国 (299) 3 チェコ共和国 (245) 4 大韓民国 (218) 5 アメリカ合衆国 (170) 6 フランス共和国 (160) 7 中華人民共和国 (160) 8 フランス共和国 (127) 9 ロシア連邦 (123) 10 フランス共和国 (120) 2018/01/28 – 2018/02/11

Slide 33

Slide 33 text

REST API 33 ref : https://threatstream.github.io/mhn/images/architecture.png

Slide 34

Slide 34 text

REST API • コマンドラインからjson形式で情報を取得できる  過去4時間の攻撃元のIPアドレス  特定の日時のログ  特定の攻撃元IPアドレスのログ  特定のハニーポットのログ など • Webappでは特定条件の情報しか収集できないが、APIを使えば条 件を柔軟に変更できる。 • MHN REST APIs · threatstream/mhn Wiki · GitHub https://github.com/threatstream/mhn/wiki/MHN-REST-APIs 34

Slide 35

Slide 35 text

API KEYの確認 35 ① [Settings]をクリックする。 ② Apikeyを確認する。

Slide 36

Slide 36 text

コマンドの実行例① • 2018/1/29のcowrieへの攻撃ログを取得する。 • 過去24時間で攻撃回数の多いものTOP5を取得する。 36 $ curl "https://example.com/api/session/?api_key=xxxx&honeypot=cowrie&times tamp=01-29-2018" $ curl "https://example.com/api/top_attackers/?api_key=xxxx&hours_ago=24&li mit=5"

Slide 37

Slide 37 text

コマンドの実行例② • IPアドレスxxx.xxx.xxx.xxxからの攻撃情報を取得する。 • Glastopfのログ情報を取得する。 37 $ curl "https://example.com/api/attacker_stats/xxx.xxx.xxx.xxx/?api_key=xxx xxxxxx" $ curl "https://example.com/api/feed/?api_key=xxxxxxxxxx&channel=glastopf.e vents"

Slide 38

Slide 38 text

3rd party apps 38 ref : https://threatstream.github.io/mhn/images/architecture.png

Slide 39

Slide 39 text

Splunkと連携 39

Slide 40

Slide 40 text

Splunkと連携 • Splunkのインストール用スクリプトは提供されていないので、自分でイ ンストールする。 • スクリプトを実行して、Splunkで読み込ませるためのログを生成する。 • MHNのアドオンをインストールすると、ダッシュボードを自動で作成して くれる。 https://splunkbase.splunk.com/app/2707/ 40 # cd /opt/mhn/scripts/ # ./install_hpfeeds-logger-splunk.sh