👻

T-Potでハニーポットを体験してみよう!

2024/06/26に公開

もう何番煎じの記事になるかもしれませんが、ハニーポット(honeypot)を設置してみたので、構築方法や利用方法について紹介します。

ハニーポットとは?

Wikipedia[1]からの引用になりますが

ハニーポット (英: honeypot) は、コンピュータセキュリティにおいて、悪意のある攻撃を受けやすいように設定した機器を、おとりとしてネットワーク上に公開することにより、サイバー攻撃を誘引し、攻撃者の特定や攻撃手法を分析する手法、あるいは、そのような用途で使用するシステムをいう

とのことなので、要はおとり用のシステムを動かして、攻撃者の動きを観察するものです。

孫氏曰く 「彼を知り己を知れば百戦殆からず」 ということなので、攻撃者の行動を観察できるハニーポットはまさに「彼を知り」の部分に該当しますね。

ハニーポットは様々存在しており、下記にリストがまとまっています。
https://github.com/paralax/awesome-honeypots

今回はハニーポットを設置することが初めてということもあり、様々な種類のハニーポットを稼働させることができるオールインワン型であるT-Potを設置することにしました。
https://github.com/telekom-security/tpotce

T-Pot

Dockerを利用して複数のハニーポットを動かすことができます。
起動するハニーポットは下記のようです。

Honeypot 概要 Repository
ADBHoney Android Debug https://github.com/huuck/ADBHoney
Cisco ASA honeypot Cisco ASA https://github.com/Cymmetria/ciscoasa_honeypot
CitrixHoneypot Citrix ADCのCVE-2019-19781検知 https://github.com/MalwareTech/CitrixHoneypot
Conpot ICS/SCADA https://github.com/mushorg/conpot
Cowrie SSH/TELNET https://github.com/cowrie/cowrie
Ddospot DNS/NTP/SSDP/CHARGEN/UDP https://github.com/aelth/ddospot
Dicompot DICOM(医療データ通信) https://github.com/nsmfoo/dicompot
Dionaea shellcodes検知 https://github.com/DinoTools/dionaea
ElasticPot Elasticsearch https://github.com/bontchev/elasticpot
Endlessh SSH Tarpit https://github.com/skeeto/endlessh
Heralding credentials(ftp, telnet, ssh, http, https, pop3, pop3s, imap, imaps, smtp, vnc, postgresql and socks5) https://github.com/johnnykv/heralding
qHoneypots 25 low-high level honeypots https://github.com/just5ky/honeypots
IPPHoney IPP(Internet Printig Protocol Honeypot) https://github.com/bontchev/ipphoney
Log4Pot Log4Shell https://github.com/thomaspatzke/Log4Pot
mailoney SMTP https://github.com/phin3has/mailoney
medpot HL7/FHIR(医療データ系) https://github.com/schmalle/medpot
RedisHoneyPot Redis https://github.com/cypwnpwnsocute/RedisHoneyPot
SentryPeer SIP(IP電話) https://github.com/SentryPeer/SentryPeer

T-Potを稼働させるために必要なスペック[2]は下記になります。他の方の記事を読む限り、CPUも4コア必要なようです。

EC2や各種VPSで動かすことができます。ちょうどVultrのDepositが余っていたので、今回はVultrで構築しました。以降で紹介する内容は T-Pot 24.04.0 のものになります。

インストール方法

インストール方法は下記の通り、Repositoryをcloneしてきて、install.shを叩くだけなので、非常に簡単です。
https://github.com/telekom-security/tpotce?tab=readme-ov-file#installation

ほとんど詰まる所はなかったのですが、下記2点ほど注意が必要でした。

  1. 非rootでの実行が望ましいとのことだったので、tpotユーザを作成してインストールを進めていたのですが、インストール中に実行されるAnsibleで、tpotユーザを別途作成するようでユーザが重複してエラーになりました。作業用のユーザはバッティングしないように別のユーザ名を利用しましょう。
  2. 123ポートがntpdで利用されており、T-Potの各種コンテナの起動に失敗していたため、下記のコマンドで無効化しました。[3]
sudo systemctl stop ntpd
sudo systemctl disable ntpd

dpsコマンドで起動しているハニーポット(コンテナ)が確認できます。

コンテナが立ち上がっていない等、起動で問題が発生した場合は、下記のログで原因を確認できます。

$ less tpotce/data/tpotinit.log

Landing Page

Landig Pageが用意されているので、そこから各種ツールにアクセスできます。
アクセス方法は https://<your.ip>:64297 にブラウザからアクセスします。ユーザとパスワードはインストール時に指定したものを利用します。

以下で各種ツールについて説明します。

Attack Map

現在のリクエスト状況を視覚的に確認することができます。リクエストの種類やどこの国からアクセスされているかも確認することができます。リクエストされる種類(HTTP, FTP, SSH, etc..)によって、色が変わるので、見ているだけで楽しいですね。

CyberChef

Encoding/DecodingやEncriptionがWeb画面から操作できるツールです。
https://github.com/gchq/CyberChef

Honeytrap等いくつかのハニーポットのログに記載されるpayloadは、Hex形式で保存されます。そのため、各種のログのpayloadのDecodeに利用するために付属しているのかなと思います。

Elascticvue

各種リクエストはElasticsearchに保存されます。ElasticvueはElasticsearchのための、フロントエンドで、Web GUI上でリクエストを検索することができます。Vue.jsで書かれているので、Elasticvueという名前になっているようです。

https://github.com/cars10/elasticvue

Kibana

Elasticsearchに保存されたデータの可視化、分析ツールになります。T-Potのメインツールです。既存で各種ダッシュボードが用意されているので、起動してすぐに詳細に攻撃状況を確認することができます。ダッシュボードについては、以降でいくつか紹介しますが、まず最初は総合的に確認できる T-Pot ダッシュボードから確認するのが良いのかなと思います。

SpiderFoot

いわゆるOSINT用のツールになります。
https://github.com/smicallef/spiderfoot

KibanaやElasticvueで確認した攻撃者の情報(IPアドレス等)について調査するために、付属しているのかなと思います。

Kibana Dashboard

既存で用意されているDashboardについて、以下にいくつか紹介します。

T-Pot

各種ハニーポットのデータを統合したダッシュボードになります。どのハニーポットへのリクエストが多いのか確認できたり、またアクセス元の国についても視覚的に確認することができます。

今回のケースではNTPやDNSなどのUDP系のハニーポットである Ddospot へのリクエストが一番多いようです。
また、どのようなUser名やPassでアクセスが試行されているかもタグクラウド形式で確認することができます。
右下のようにSuricataによる分析と検知結果も確認することができます。一番多いのは SURICATA STREAM Packet with broken ack なので、Port ScanにおけるSYN Scanの結果でしょうか。

Cowrie

CowrieはSSH/Telnet用のハニーポットです。他のダッシュボード同様にアクセス数やどの国からのアクセスが多いかなどを一目で確認することができます。

下記(Command Line Input)のように、ログイン後、攻撃者がどのようなコマンドを実行しているかも確認することができます。またダウンロードされたファイルも保存されているので、後述するログから確認することができます。[4]

tanner(/snare)

tanner(/snare)はWebアプリのハニーポットになります。snareがハニーポットを担当し、tannerがsnareのデータを分析するようです。

User Agentやどのメソッドの種別、どのパスへのアクセスが多いかなどを確認することができます。

ログ

Dashboardではサマライズされた情報しか確認できないため、詳細にログを確認したい場合には、Elasticvueを利用するか、SSHでサーバにログインして、直接ログを確認できます。
ログは tpotce/data/<honeypot>/log に格納されています。

まとめ

簡単にですが、T-Potによるハニーポットの利用方法について、説明しました。
T-Potは導入が簡単ですが、それなりのスペックのサーバが必要になるため、T-Potでまずは様々な体験をしてみて、気になったハニーポットを別途立ててみるのも良いかもしれません。もしくはT-Potで稼働するサービスはカスタマイズすることが可能なようなので、カスタマイズをして、スペックを調整するのも良いかもしれません。

https://github.com/telekom-security/tpotce?tab=readme-ov-file#customize-t-pot-honeypots-and-services

脚注
  1. https://ja.wikipedia.org/wiki/ハニーポット ↩︎

  2. https://github.com/telekom-security/tpotce?tab=readme-ov-file#system-requirements ↩︎

  3. ntpdが起動しているかどうかは環境に依存すると思いますが ↩︎

  4. tpotce/data/tanner/files に保存されるようです ↩︎

Cyber-sec+

Discussion