Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Honeypot-on-GCP-20191201.pdf
hiro
December 24, 2019
Technology
0
190
Honeypot-on-GCP-20191201.pdf
hiro
December 24, 2019
Tweet
Share
More Decks by hiro
See All by hiro
ctrl_z3r0
1
640
ctrl_z3r0
2
500
ctrl_z3r0
2
1.7k
ctrl_z3r0
5
750
ctrl_z3r0
4
640
ctrl_z3r0
4
930
ctrl_z3r0
2
440
ctrl_z3r0
1
440
ctrl_z3r0
6
900
Other Decks in Technology
See All in Technology
sugimomoto
1
370
kawaguti
0
120
yaegashi
0
250
yunon_phys
1
360
nkjzm
1
860
harshbothra
0
150
yosshi_
3
360
ocise
0
170
yosshi_
2
250
takuros
3
600
kraj
0
5.2k
texmeijin
1
350
Featured
See All Featured
matthewcrist
73
7.5k
afnizarnur
176
14k
trishagee
20
2.1k
phodgson
87
3.9k
holman
448
130k
davidbonilla
70
3.5k
hatefulcrawdad
257
17k
jasonvnalue
82
8.1k
kastner
54
1.9k
tmm1
61
8.5k
cherdarchuk
71
260k
addyosmani
494
110k
Transcript
手探りでハニーポットを 作ってみよう勉強会 【赤羽ラボ】手探りでハニーポットを作ってみよう勉強会 2019/12/1 hiro(@ctrl_z3r0) a.k.a ねこさん⚡(@catnap707)
自己紹介
アジェンダ 1 ハニーポットとは 2 ハニーポットに必要なもの 3 仮想サーバ(VPS)の準備 4 GCP/GPEを使ってみよう 5 ハニーポットの選定 6 ハニーポットの設置 7 まとめ ▪参考情報 ・これから始めるGCP(GCE)安全に無料枠を使い倒せ(2019-05-23)
https://qiita.com/Brutus/items/22dfd31a681b67837a74 この内容は、仕事とは無関係です。個人の意見です。 間違っている場合は、あとでこっそり教えてください 撮影不可 のスライドの撮影は ご遠慮ください。
4 1 ハニーポットとは
ハニーポットとは(1/2) 5 ▪ハニーポットの概要 ▪参考情報 ・ハニーポットとは - IT用語 https://e-works.jp/w/ハニーポット.html ・ハニーポット
- WikiPedia https://ja.wikipedia.org/wiki/ハニーポット ハニーポットとは、はちみつの入った壺という意味の英単語。情報セ キュリティの分野では、わざと脆弱性がある状態のように見せかけた サーバなどを指す。 高対話型:脆弱性が存在する本物のOSやアプリケー ションを用いて構築されたもの。 低対話型:脆弱性が存在するOSやアプリケーションの 環境や振る舞いをエミュレートする。
6 ▪ハニーポットの目的 ▪参考情報 ・サイバー・デセプション(Cyber Deception)とは何か?(2016-07-28) https://www.scientia-security.org/entry/2016/07/28/094709 ・サイバー攻撃を偽のネットワークに誘いこむ「STARDUST」 NICTが開発(2017-05-31) https://www.itmedia.co.jp/enterprise/articles/1705/31/news155.html
何らしかの有益そうな情報や資源がありそうに見せかけて攻撃者の 手法や攻撃の傾向を収集・分析を目的として設置することが多い。 ハニーポットとは(2/2) サイバー・デセプション(Cyber Deception)とは、ハニーポットのような デコイ(囮)サーバを多数用意して、攻撃者が攻撃すべき対象を選定し たり囮サーバを攻撃している間に、攻撃を検知したり、本当に攻撃され てはいけないサーバへの対応時間を稼ぐ技術のこと。 例)サイバー攻撃誘引基盤「STARDUST」(NICT) Deceptions Everywhere (illusive networks) Attivo (Attivo Networks)、 Deception GRID(TrapX Security) ▪サイバー・デセプション(おとりとしてのハニーポット)
7 2 ハニーポットに必要なもの
【手軽にハニーポットを始めるには・・・】 物理サーバや通信回線の準備が不要な仮想サーバ(VPS Virtual Private Server)を用意して構築することをお勧めします。 ハニーポットに必要なもの 8 ▪ハニーポットを稼働させるサーバ サーバのサイジング(CPUコア、メモリ、ディスク等)をどうするか。 →稼働させたいハニーポットプログラムによって要求するスペックが
異なるが、2コア、メモリ1〜4GBで基本十分 ▪通信回線 基本的に常時接続回線が必要。 自宅サーバの場合、別途、回線契約するのが無難。 ▪OS Linux推奨(Ubuntu、Debian、CentOS)、Windowsは要ライセンス ▪知識 Linuxに関する知識(稼働には設定ファイルの修正が必要) ファイアウォールに関する知識
9 3 仮想サーバ(VPS)の準備
VPSサービス メモリ ストレージ 月額費用(税込み) さくらのVPS 512MB 20GB 685円 カゴヤのVPS 1GB
20GB 648円 ServerMan 256MB 5GB 350円 NTTコミュニケーションズ 1GB 20GB 349円 仮想サーバ(VPS)の準備(1/2) 10 ▪国内のVPSサービス 撮影不可 ハ ニ ポ の 運 用 は ハ ニ ポ の 運 用 は 金 が か か る か ね 金 が か か る う ん よ う
仮想サーバ(VPS)の準備(2/2) 11 ▪参考情報 ・Google Cloud Platform の無料枠 https://cloud.google.com/free/?hl=ja ・AWS 無料利用枠
https://aws.amazon.com/jp/free/ ・Oracle Cloud Free Tier New Always Free Services https://oracle.com/jp/cloud/free/ ・Azure の無料アカウントを今すぐ作成しましょう | Microsoft Azure https://azure.microsoft.com/ja-jp/free/ ▪海外のVPSサービス(無料枠) VPSサービス 特徴 メモリ ストレージ GCP Always Free usリージョン、f1-micro、永年 614MB 30GB AWS EC2 12か月無料(RHEL、SUSE、 Windows Server 2019) 1GB 30GB Oracle Cloud Always Free 2VM、全リージョン、永年 1GB 46GB Microsoft Azure 無料試用プラン 「F1プラン(無料)」への 移行が可能 460MB 30GB すぐにOut of Memory になってログインすら ままならない。 1GB以上をお勧め。
GCP(Google Cloud Platform)とは 12 ▪GCP(Google Cloud Platform) ▪参考情報 ・GCEとGAE、どっち使えばいいの?という人のためのGCP運用診断(2019-04-10) https://qiita.com/defunty/items/f837c9e09c8ccc6033b3
Googleが提供する クラウドサービス群の総称 Amazon ⇒ AWS Microsoft ⇒ Azure Oracle ⇒ Oracle Cloud ▪GCE(Google Compute Engine) Googleが提供する IaaS(Infrastructure as a Service) AWS ⇒ EC2 Azure ⇒ VirtualMachine Oracle Cloud ⇒ コンピュート 【Google Cloudをお勧めする理由】 ・WebブラウザからSSH接続可能(SSHクライアント不要) ・GUIが分かりやすい(あくまで個人の感想です)
13 4 GCP/GCEを使ってみよう
GCP/GCEを使ってみよう(1/4) 14 「GCP 無料枠 長期トライアル」で検索! https://cloud.google.com/free/?hl=ja
GCP/GCEを使ってみよう(2/4) 15 無料枠(Always Free)の条件は3つ ①アメリカusのリージョンを選択する。 (西海岸のus-west1が東京に近くておすすめ) ②f1-microというマシンタイプを選択する。 ③ストレージは30GBのHDDを選択する。
GCP/GCEを使ってみよう(3/4) 16 usリージョンを選択 マシンは、f1-micro Debian、CentOS、Ubuntuなど が、選べます。
GCP/GCEを使ってみよう(4/4) 17 ブラウザからSSHログイン できます。 タブレット(iPad)のGoogle Consoleアプリなら、SSH ログインもできちゃいます!
やっておこうGCPのSSH設定(1/2) 18 ssh-keygenコマンドで、SSHのホストキー(秘密鍵)を 作って、その秘密鍵をコンソールに登録しておきます。
やっておこうGCPのSSH設定(2/2) 19 ▪SSHのポート番号を変更(22/tcp⇒22022/tcp) # OpenSSH is to specify options with
their default value where # possible, but leave them commented. Uncommented options override the # default value. #Port 22 Port 22022 ハニーポット用途なので、 SSH(22/tcp)のほか、TELNET(23/tcp)、 HTTP(80/tcp)などをGCPのファイアウォールで許可。
20 5 ハニーポットの選定
ハニーポットの選定 21 ▪参考情報 ・British Airwaysの情報流出、Ticketmaster事件のハッカーグループが関与か(2018-09-12) https://japan.zdnet.com/article/35125475/ ・サイバー犯罪集団「Magecart」の新しい攻撃を確認、広告配信サービスを侵害しスキミングコードを注入(2019-01-18) https://blog.trendmicro.co.jp/archives/20150 ハニーポット 監視対象
目的 WOWHoneypot HTTP Webサーバへの攻撃手法の収集 Cowrie SSH/Telnet SSH/Telnetへの攻撃の収集 HoneyTrap ポート 監視対象ポートへのアクセスを収集 iNetSim ポート 監視対象ポートへのアクセスを収集 Dionaea HTTP、FTP、 TFTP、SMB、 MSSQL、VoIP Webサーバ、FTP/TFTPサーバ、SMB、MSSQL、 VoIPの攻撃の収集 T-Pot 各種詰合せ 各種のハニーポットを同時に稼働 ElasticSearchとKibanaを搭載 BW-Pot WordPress、 Tomcat、 phpMyAdmin 高対話型ハニーポット 詳細な攻撃者のログを収集可能 【悲報】 無料枠ではリソースが足りない
22 6 ハニーポットの構築
WOWHoneypotの構築 23 ▪参考情報 ・GitHub - morihisa / WOWhoneypot https://blog.kawa-xxx.jp/entry/2018/04/30/161300
・WoWHoneypotを植えてみよう - hogehogehugahuga(2018-08-04) https://qiita.com/hogehogehugahuga/items/cad931485f58ae487d53 ・WOWHoneypotを構築してみた - かわろぐ(2018-04-30) https://blog.kawa-xxx.jp/entry/2018/04/30/161300 ・WOWHoneypotをサービス化してみる - かわろぐ(2018-05-06) https://blog.kawa-xxx.jp/entry/2018/05/06/133615 ▪Welcome to Omotenashi Web Honeypot(WOWHoneypot) 【ユーザwowの作成】 # adduser wow # su - wow 【git cloneでインストール】 $ git clone https://github.com/morihisa/WOWHoneypot.git wowhoneypot 【実行】 $ cd ~/wowhoneypot $ python3 ./wowhoneypot.py 詳細は、先人の方々のブログを ご参照ください!
cowrie、cowrie-logviewerの構築 24 ▪参考情報 ・Cowrie SSH/Telnet Honeypot https://github.com/cowrie/cowrie ・ハニーポットCowrieを設置した話(2018-01-22) https://socketo.hatenablog.jp/entry/2018/01/22/000537 ・SSHハニーポットのCowrieをインストールしてみた
- とりあえずブログ(2018-05-29) https://saito.hatenadiary.com/entry/2018/05/29/231306 ・SSHハニーポット「Cowrie」を構築してみた - ITオムライス(2018-11-17) https://it-omurice.tokyo/?p=59 ▪cowrie、cowrie-logviewerの構築 【ユーザwowの作成】 # adduser cowrie # su -cowrie 【git cloneでインストール】 $ git clone https://github.com/cowrie/cowrie.git 【実行】 $ cd ~/cowrie/bin $ cowrie 詳細は、先人の方々のブログを ご参照ください!
サービスの自動起動(WOWHoneypot) 25 ▪参考情報 ・Linux systemctl サービスの自動起動 / 解除を行なう(2019-05-20) https://tadtadya.com/linux-systemctl-automatically-start-cancel-service/ ・systemdでプロセス自動再起動(2019-05-08)
https://tex2e.github.io/blog/linux/systemd-restart-config ▪WOWHoneypotの自動起動設定(その1) [Unit] Description=WoWHoneypot daemon Documentation=https://github.com/morihisa/WOWHoneypot [Service] ExecStart = /home/wow/wowhoneypot.sh ExecRestart = /bin/kill -WINCH ${MAINPID} ; /home/wow/wowhoneypot.sh ExecStop = /bin/kill -WINCH ${MAINPID} Restart = no Type = simple User = wow Group = wow [Install] WantedBy = multi-user.target (1)/etc/systemd/system/wowhoneypot.service の作成
26 ▪WOWHoneypotの自動起動設定(その2) #!/bin/sh cd /home/wow/wowhoneypot /usr/bin/python3 /home/wow/wowhoneypot/wowhoneypot.py (2)/home/wow/wowhoneypot.sh の作成 (3)systemdへの組込みと起動
$ sudo systemctl enable wowhoneypot $ sudo systemctl start wowhoneypot (4)状況表示と停止 $ sudo systemctl status wowhoneypot $ sudo systemctl stop wowhoneypot サービスの自動起動(WOWHoneypot)
起動確認(プロセスの確認) 27 ▪ポートが開いているか(netstat) (1)VPSのグローバルIPを確認(VPSのコンソール上で実行) ubuntu@oracloud1:~$ netstat -an Active Internet connections
(servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0: 2223 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0: 8080 0.0.0.0:* LISTEN tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22022 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0: 2222 0.0.0.0:* LISTEN ubuntu@oracloud1:~$ sudo lsof -i:2222 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME twistd 13615 cowrie 9u IPv4 465141 0t0 TCP *:2222 (LISTEN) ubuntu@oracloud1:~$ sudo lsof -i:2223 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME twistd 13615 cowrie 10u IPv4 465142 0t0 TCP *:2223 (LISTEN) ubuntu@oracloud1:~$ sudo lsof -i:8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python3 13363 wow 3u IPv4 463348 0t0 TCP *:http-alt (LISTEN) ▪プロセスが起動し、ポートが開いているか(lsof)
導通確認(ファイアウォールの設定確認) 28 ▪インターネット側から見えているかの確認 (1)VPSのグローバルIPを確認(VPSのコンソール上で実行) $ curl https://ifconfig.io/ip 35.247.xxx.xxx (2)check-host.netで、ハニーポット用に開けたポートの導通を確認 cowrie⇒IPアドレス:22、IPアドレス:23でTCP
Portボタンを押下 WOWHoneypot⇒IPアドレスで、HTTPボタンを押下
サービスの自動起動(WOWHoneypot) 29 ▪WOWHoneypotが停止:inactive(dead) ubuntu@oracloud1:/etc/systemd/system$ sudo systemctl status wowhoneypot ??owhoneypot.service -
WoWHoneypot daemon Loaded: loaded (/etc/systemd/system/wowhoneypot.service; enabled; vendor preset: enabled) Active: inactive (dead) since Sun 2019-12-01 00:43:48 JST; 9s ago Docs: https://github.com/morihisa/WOWHoneypot Process: 13332 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Process: 1128 ExecStart=/home/wow/wowhoneypot.sh (code=killed, signal=TERM) Main PID: 1128 (code=killed, signal=TERM) ▪WOWHoneypotが起動:active(running) ubuntu@oracloud1:/etc/systemd/system$ sudo systemctl status wowhoneypot.service ??owhoneypot.service - WoWHoneypot daemon Loaded: loaded (/etc/systemd/system/wowhoneypot.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-11-24 18:31:10 JST; 6 days ago Docs: https://github.com/morihisa/WOWHoneypot Main PID: 1128 (wowhoneypot.sh) Tasks: 2 (limit: 1103) CGroup: /system.slice/wowhoneypot.service ??1128 /bin/sh /home/wow/wowhoneypot.sh ??1137 /usr/bin/python3 /home/wow/wowhoneypot/wowhoneypot.py
サービスの自動起動(cowrie) 30 ▪参考情報 ・Linux systemctl サービスの自動起動 / 解除を行なう(2019-05-20) https://tadtadya.com/linux-systemctl-automatically-start-cancel-service/ ・systemdでプロセス自動再起動(2019-05-08)
https://tex2e.github.io/blog/linux/systemd-restart-config ▪cowrieの自動起動設定(その1) [Unit] Description=cowrie daemon [Service] ExecStart = /home/cowrie/cowrie/cowrie.sh ExecRestart = /bin/kill -WINCH ${MAINPID} ; /home/cowrie/cowrie/cowrie.sh ExecStop = /bin/kill -WINCH ${MAINPID} Restart = no Type = simple User = cowrie Group = cowrie [Install] WantedBy = multi-user.target (1)/etc/systemd/system/cowrie.service の作成
31 ▪cowrieの自動起動設定(その2) #!/bin/sh cd /home/cowrie/cowrie/ ./bin/cowrie start (2)/home/cowrie/cowrie/cowrie.sh の作成 (3)systemdへの組込みと起動
$ sudo systemctl enable cowrie $ sudo systemctl start cowrie (4)状況表示と停止 $ sudo systemctl status cowrie $ sudo systemctl stop cowrie サービスの自動起動(cowrie)
サービスの自動起動(WOWHoneypot) 32 ▪WOWHoneypotが停止:inactive(dead) ubuntu@oracloud1:/etc/systemd/system$ sudo systemctl status wowhoneypot ??owhoneypot.service -
WoWHoneypot daemon Loaded: loaded (/etc/systemd/system/wowhoneypot.service; enabled; vendor preset: enabled) Active: inactive (dead) since Sun 2019-12-01 00:43:48 JST; 9s ago Docs: https://github.com/morihisa/WOWHoneypot Process: 13332 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Process: 1128 ExecStart=/home/wow/wowhoneypot.sh (code=killed, signal=TERM) Main PID: 1128 (code=killed, signal=TERM) ▪WOWHoneypotが起動:active(running) ubuntu@oracloud1:/etc/systemd/system$ sudo systemctl status wowhoneypot.service ??owhoneypot.service - WoWHoneypot daemon Loaded: loaded (/etc/systemd/system/wowhoneypot.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-11-24 18:31:10 JST; 6 days ago Docs: https://github.com/morihisa/WOWHoneypot Main PID: 1128 (wowhoneypot.sh) Tasks: 2 (limit: 1103) CGroup: /system.slice/wowhoneypot.service ??1128 /bin/sh /home/wow/wowhoneypot.sh ??1137 /usr/bin/python3 /home/wow/wowhoneypot/wowhoneypot.py
iptablesでのひと工夫 許可されたIP (メンテ用) 許可しないIP (ハニポ行き) iptables PREROUTING
SSH 22022/tcp Cowrie 2222/tcp 2223/tcp WOWHoneypot 8080/tcp PortSentry HTTP:80/tcp SSH:22/tcp Telnet:23/tcp Proxy:8080/tcp Squid:3128/tcp Sock:1080/tcp iptables DROP TCP Wrapper hosts.deny ポート スキャン 33 FTP:21/tcp RDP:3389/tcp SMTP:25/tcp POP3:110/tcp NetBIOS:139/tcp NetBIOS:445/tcp
34 7 まとめ
35 ハニーポット依存症にはご注意
◆#ハニーポット観察 でつぶやこう! ◆無料枠を活用するとハニポ運用も無料! ◆Linuxとネットワークの知識は役に立つ! 良 い 時 代 に な
っ た も の だ 無 料 こ そ が 正 義 好 き な ハ ニ ポ を デ プ ロ イ で き る 心 お き な く 撮影不可 36
ご清聴ありがとうございました。 フォロー待ってるニャ! @catnap707
38
39 6 ハニーポッターの紹介
ツイッターで見かけるハニーポッターの皆様 40 ▪ハニーポット、ちょっとできる勢 (作者) morihi-soc @morihi_soc WOWHoneypot graneed @graneed111 BW-pot
▪ハニーポット観察(#ハニーポット観察) sec_chick (せっくちっく) @one_chick_sec WOWHoneypot、Honeytrap 弐参 @sec2323 WoWHoneypot TK @ookura1978 T-pot SmokyJp@右座骨 神経痛療養中 @smokyjp WOWHoneypot Nick @STUSecInfo BW-pot