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

Honeypot-on-GCP-20191201.pdf

hiro
December 24, 2019

 Honeypot-on-GCP-20191201.pdf

hiro

December 24, 2019
Tweet

More Decks by hiro

Other Decks in Technology

Transcript

  1. アジェンダ
 1 ハニーポットとは
 2 ハニーポットに必要なもの
 3 仮想サーバ(VPS)の準備
 4 GCP/GPEを使ってみよう
 5 ハニーポットの選定
 6 ハニーポットの設置
 7 まとめ
 ▪参考情報
 ・これから始めるGCP(GCE)安全に無料枠を使い倒せ(2019-05-23)


     https://qiita.com/Brutus/items/22dfd31a681b67837a74 この内容は、仕事とは無関係です。個人の意見です。
 間違っている場合は、あとでこっそり教えてください
 撮影不可
 のスライドの撮影は
 ご遠慮ください。

  2. ハニーポットとは(1/2)
 5 ▪ハニーポットの概要   
    
 ▪参考情報
 ・ハニーポットとは - IT用語
  https://e-works.jp/w/ハニーポット.html
 ・ハニーポット

    - WikiPedia
  https://ja.wikipedia.org/wiki/ハニーポット
  ハニーポットとは、はちみつの入った壺という意味の英単語。情報セ キュリティの分野では、わざと脆弱性がある状態のように見せかけた サーバなどを指す。
 高対話型:脆弱性が存在する本物のOSやアプリケー
        ションを用いて構築されたもの。
 低対話型:脆弱性が存在するOSやアプリケーションの
        環境や振る舞いをエミュレートする。

  3. 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)
   
 ▪サイバー・デセプション(おとりとしてのハニーポット)

  4. 【手軽にハニーポットを始めるには・・・】
  物理サーバや通信回線の準備が不要な仮想サーバ(VPS
  Virtual Private Server)を用意して構築することをお勧めします。
 ハニーポットに必要なもの
 8 ▪ハニーポットを稼働させるサーバ
  サーバのサイジング(CPUコア、メモリ、ディスク等)をどうするか。
  →稼働させたいハニーポットプログラムによって要求するスペックが


      異なるが、2コア、メモリ1〜4GBで基本十分
 
▪通信回線
  基本的に常時接続回線が必要。
  自宅サーバの場合、別途、回線契約するのが無難。
 
▪OS
  Linux推奨(Ubuntu、Debian、CentOS)、Windowsは要ライセンス
 
 
 ▪知識
  Linuxに関する知識(稼働には設定ファイルの修正が必要)
  ファイアウォールに関する知識
 

  5. VPSサービス
 メモリ
 ストレージ
 月額費用(税込み)
 さくらのVPS
 512MB
 20GB
 685円
 カゴヤのVPS
 1GB


    20GB
 648円
 ServerMan
 256MB
 5GB
 350円
 NTTコミュニケーションズ
 1GB
 20GB
 349円
 仮想サーバ(VPS)の準備(1/2)
 10 ▪国内のVPSサービス
 撮影不可
 ハ
 ニ
 ポ
 の
 運
 用
 は
 ハ
 ニ
 ポ
 の
 運
 用
 は
 金
 が
 か
 か
 る
 か
 ね
 金
 が
 か
 か
 る
 う
 ん
 よ
 う

  6. 仮想サーバ(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以上をお勧め。

  7. 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が分かりやすい(あくまで個人の感想です)

  8. やっておこう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のファイアウォールで許可。

  9. ハニーポットの選定
 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
 高対話型ハニーポット
 詳細な攻撃者のログを収集可能
 【悲報】 無料枠ではリソースが足りない

  10. 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
 
 詳細は、先人の方々のブログを ご参照ください!

  11. 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
 
 詳細は、先人の方々のブログを ご参照ください!

  12. サービスの自動起動(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 の作成

  13. 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)

  14. 起動確認(プロセスの確認)
 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)

  15. サービスの自動起動(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
  16. サービスの自動起動(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 の作成

  17. 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)

  18. サービスの自動起動(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
  19. 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

  20. ◆#ハニーポット観察 でつぶやこう!
 ◆無料枠を活用するとハニポ運用も無料!
 ◆Linuxとネットワークの知識は役に立つ!
 良
 い
 時
 代
 に
 な


    っ
 た
 も の だ
 無
 料
 こ
 そ
 が
 正
 義
 
 好
 き
 な
 ハ
 ニ
 ポ
 を
 デ
 プ
 ロ
 イ
 で
 き
 る
 心
 お
 き
 な く
 撮影不可
 36
  21. 38

  22. ツイッターで見かけるハニーポッターの皆様
 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