$30 off During Our Annual Pro Sale. View Details »

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. 手探りでハニーポットを

    作ってみよう勉強会

    【赤羽ラボ】手探りでハニーポットを作ってみよう勉強会

    2019/12/1

    hiro(@ctrl_z3r0) a.k.a ねこさん⚡(@catnap707)


    View Slide

  2. 自己紹介


    View Slide

  3. アジェンダ

    1 ハニーポットとは

    2 ハニーポットに必要なもの

    3 仮想サーバ(VPS)の準備

    4 GCP/GPEを使ってみよう

    5 ハニーポットの選定

    6 ハニーポットの設置

    7 まとめ

    ■参考情報

    ・これから始めるGCP(GCE)安全に無料枠を使い倒せ(2019-05-23)

     https://qiita.com/Brutus/items/22dfd31a681b67837a74
    この内容は、仕事とは無関係です。個人の意見です。

    間違っている場合は、あとでこっそり教えてください

    撮影不可
 のスライドの撮影は

    ご遠慮ください。


    View Slide

  4. 4
    1 ハニーポットとは


    View Slide

  5. ハニーポットとは(1/2)

    5
    ■ハニーポットの概要   

       

    ■参考情報

    ・ハニーポットとは - IT用語

     https://e-works.jp/w/ハニーポット.html

    ・ハニーポット - WikiPedia

     https://ja.wikipedia.org/wiki/ハニーポット

     ハニーポットとは、はちみつの入った壺という意味の英単語。情報セ
    キュリティの分野では、わざと脆弱性がある状態のように見せかけた
    サーバなどを指す。

    高対話型:脆弱性が存在する本物のOSやアプリケー

           ションを用いて構築されたもの。

    低対話型:脆弱性が存在するOSやアプリケーションの

           環境や振る舞いをエミュレートする。


    View Slide

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

      

    ■サイバー・デセプション(おとりとしてのハニーポット)


    View Slide

  7. 7
    2 ハニーポットに必要なもの


    View Slide

  8. 【手軽にハニーポットを始めるには・・・】

     物理サーバや通信回線の準備が不要な仮想サーバ(VPS

     Virtual Private Server)を用意して構築することをお勧めします。

    ハニーポットに必要なもの

    8
    ■ハニーポットを稼働させるサーバ

     サーバのサイジング(CPUコア、メモリ、ディスク等)をどうするか。

     →稼働させたいハニーポットプログラムによって要求するスペックが

      異なるが、2コア、メモリ1〜4GBで基本十分

    
■通信回線

     基本的に常時接続回線が必要。

     自宅サーバの場合、別途、回線契約するのが無難。

    
■OS

     Linux推奨(Ubuntu、Debian、CentOS)、Windowsは要ライセンス



    ■知識

     Linuxに関する知識(稼働には設定ファイルの修正が必要)

     ファイアウォールに関する知識


    View Slide

  9. 9
    3 仮想サーバ(VPS)の準備


    View Slide

  10. VPSサービス
 メモリ
 ストレージ
 月額費用(税込み)

    さくらのVPS
 512MB
 20GB
 685円

    カゴヤのVPS
 1GB
 20GB
 648円

    ServerMan
 256MB
 5GB
 350円

    NTTコミュニケーションズ
 1GB
 20GB
 349円

    仮想サーバ(VPS)の準備(1/2)

    10
    ■国内のVPSサービス
 撮影不可

    ハ

    ニ

    ポ

    の

    運

    用

    は

    ハ

    ニ

    ポ

    の

    運

    用

    は

    金

    が

    か

    か

    る

    か

    ね

    金

    が

    か

    か

    る

    う

    ん

    よ

    う


    View Slide

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


    View Slide

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


    View Slide

  13. 13
    4 GCP/GCEを使ってみよう


    View Slide

  14. GCP/GCEを使ってみよう(1/4)

    14
    「GCP 無料枠 長期トライアル」で検索!

    https://cloud.google.com/free/?hl=ja


    View Slide

  15. GCP/GCEを使ってみよう(2/4)

    15
    無料枠(Always Free)の条件は3つ

    ①アメリカusのリージョンを選択する。

     (西海岸のus-west1が東京に近くておすすめ)

    ②f1-microというマシンタイプを選択する。

    ③ストレージは30GBのHDDを選択する。


    View Slide

  16. GCP/GCEを使ってみよう(3/4)

    16
    usリージョンを選択

    マシンは、f1-micro

    Debian、CentOS、Ubuntuなど

    が、選べます。


    View Slide

  17. GCP/GCEを使ってみよう(4/4)

    17
    ブラウザからSSHログイン

    できます。

    タブレット(iPad)のGoogle
    Consoleアプリなら、SSH

    ログインもできちゃいます!


    View Slide

  18. やっておこうGCPのSSH設定(1/2)

    18
    ssh-keygenコマンドで、SSHのホストキー(秘密鍵)を

    作って、その秘密鍵をコンソールに登録しておきます。


    View Slide

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


    View Slide

  20. 20
    5 ハニーポットの選定


    View Slide

  21. ハニーポットの選定

    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

    高対話型ハニーポット

    詳細な攻撃者のログを収集可能

    【悲報】 無料枠ではリソースが足りない


    View Slide

  22. 22
    6 ハニーポットの構築


    View Slide

  23. 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


    詳細は、先人の方々のブログを
    ご参照ください!


    View Slide

  24. 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


    詳細は、先人の方々のブログを
    ご参照ください!


    View Slide

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


    View Slide

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


    View Slide

  27. 起動確認(プロセスの確認)

    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)


    View Slide

  28. 導通確認(ファイアウォールの設定確認)

    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ボタンを押下


    View Slide

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

    View Slide

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


    View Slide

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


    View Slide

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

    View Slide

  33. 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


    View Slide

  34. 34
    7 まとめ


    View Slide

  35. 35
    ハニーポット依存症にはご注意


    View Slide

  36. ◆#ハニーポット観察 でつぶやこう!

    ◆無料枠を活用するとハニポ運用も無料!

    ◆Linuxとネットワークの知識は役に立つ!

    良

    い

    時

    代

    に

    な

    っ

    た



    だ

    無

    料

    こ

    そ

    が

    正

    義


    好

    き

    な

    ハ

    ニ

    ポ

    を

    デ

    プ

    ロ

    イ

    で

    き

    る

    心

    お

    き


    く

    撮影不可

    36

    View Slide

  37. ご清聴ありがとうございました。

    フォロー待ってるニャ!

    @catnap707


    View Slide

  38. 38

    View Slide

  39. 39
    6 ハニーポッターの紹介


    View Slide

  40. ツイッターで見かけるハニーポッターの皆様

    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

    View Slide