Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
riotpot — IoTおよび運用技術ハニーポット | Kitploit
ツール/GitHubGitHub/aau-network-security/riotpot
防御ツールIoTセキュリティSCADA/ICSセキュリティ情報収集ネットワークセキュリティ
GitHubaau-network-security/riotpot

riotpot

IoTおよび運用技術ハニーポット

リポジトリを見る
105282年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
📢 注意!!!
このリポジトリは Honeynet Project に移動しました :)

RIoTPot

GitHub Actions status

RIoTPot はハイブリッド相互作用ハニーポットであり、主に IoT および OT プロトコルのエミュレーションに焦点を当てていますが、他のサービスもエミュレート可能です。 本質的に、RIoTPot はシステムに含まれる他のハニーポットのプロキシサービスとして機能します。 したがって、任意のハニーポットやその他のサービスを RIoTPot と一緒に実行できます。 さらに、ルーティングを管理するための UI Web アプリケーションも用意されています。

このハニーポットには、すぐに使用できる複数の低対話サービスが付属しています。 これらのサービスは プラグイン として記述されているため、Linux でのみサポートされています。ただし、プラグインなしで RIoTPot を起動することもできます。 次の表は、RIoTPot にデフォルトで含まれているサービス、その内部ポート、およびプロキシポートの一覧です。

目次

  • RIoTPoT
    • 1. アーキテクチャ
    • 2. RIoTPot の使い方
    • 3. コマンド

1. アーキテクチャ

RIoTPot のアーキテクチャは、内部および周辺(または外部)のサービス(例:ハニーポット、フルサービス、コンテナ、リモートホストなど)へのプロキシ接続に基づいています。 そのために、ハニーポットはユーザー定義の複数の プロキシ を管理し、サービスと RIoTPot の間の接続を中継します 1。 これにより、RIoTPot は受信した攻撃をどのように、どこにルーティングするかを決定できます。 受信攻撃の処理方法を決定するロジックは、ミドルウェア の形で実装されています 2。 サービス、ミドルウェア、プロキシを管理するために、RIoTPot には REST API 3 と Web アプリ UI 4 が標準で付属しています。 UI はブラウザから localhost:2022 でアクセスでき、API エンドポイントは localhost:2022/api/swagger で Swagger インターフェースを通じて試すことができます。

図 1 は RIoTPot のアーキテクチャを示しています。これには、RIoTPot を構成する 2 つの主要アプリケーション(RIoTPot 自体と RIoTPot UI)とそのコンポーネント、および外部(または隣接)サービスを囲むセクションが含まれています。

図 1. RIoTPot のアーキテクチャ。メインアプリケーション、外部サービス、および RIoTPot インスタンスを管理する Web アプリ UI を含む。

RIoTPot は Golang で書かれています 5。 各 RIoTPot インスタンスは、登録されたプロキシ(ポートに基づく)をオンデマンドで公開します。 プロキシを提供するには、バインドされたサービスが存在し、プロキシポートが利用可能である 必要があります(現在、RIoTPot は同じポートで複数のサービスを実行することは許可していません)。 プロキシがバインドされて提供されると、攻撃者はそのポートで RIoTPot にメッセージを送信できるようになり、メッセージはバインドされたサービスに中継され、攻撃者に返信されます 6。

アクセスを容易にするために、複数の RIoTPot インスタンスを RIoTPot UI Web アプリから管理できます。 各インスタンスに登録されたプロキシの管理に加えて、UI では プロファイル の作成、使用、編集が可能です。 各プロファイルには、プロトコルやその他のサービスにちなんだ名前のプロキシが含まれており、RIoTPot インスタンスを実際のデバイス(例:ホームアシスタント)のように見せかけます。 つまり、プロファイルは特定の構成で RIoTPot インスタンスをセットアップおよびプロビジョニングするプロセスを高速化します。 UI は React フロントエンド JavaScript ライブラリ(このプロジェクトでは TypeScript を使用)と Recoil 状態管理ライブラリを使用して記述されています。 RIoTPot は比較的小規模であるため、現時点ではデータベースを使用していません。

2. RIoTPot の使い方

RIoTPot の実行は比較的簡単です。 全体的に、3つのオプションがあります。 最初のオプションは、RIoTPot のリリースをダウンロードすることです。最新リリースまたは以前のリリースを選択できます。 2番目のオプションは、自分でプロジェクトをビルドすることです。 最後のオプションは、ソースコードを使用して RIoTPot とハニーポットを強化するいくつかの追加アプリケーションを含む Docker コンテナを作成することです。

リリースバージョンを使用する

情報: このガイドは、特別なニーズがなく、すぐに使えるシンプルな体験を求めるユーザー向けです。

各リリースは riotpot という名前のフォルダにあり、実行可能バイナリ(これも riotpot という名前)と、複数のサービス(または低対話ハニーポット)が入った plugins フォルダが含まれています。 RIoTPot を意図したとおりに動作させるには、内部フォルダ構造を維持することが重要です。

root@kitploit:~
📁 riotpot
    ┕ riotpot
    ┕ 📁 plugins

  1. まず、リリース ページから好みのリリースをダウンロードします。お使いのオペレーティングシステム(OS)に合ったものを選択してください。
  2. riotpot フォルダを解凍します。
  3. riotpot バイナリを実行します。これにより、API が有効になり、すべてのプラグインが使用可能になり、UI サーバーが起動します。
    • API と UI はアドレス localhost:2022 からアクセスできます。
自分でビルドする

情報: このガイドは、開発環境に慣れている上級ユーザー向けです。

要件
  • Golang - プロジェクトのビルドに必要
  • Node - UI のビルドに必要

オプション:

  • Git - ソースコードのダウンロードに使用
  • Make - 既成のコマンドを実行するため

  1. GitHub から RIoTPot ソースコードをダウンロードします。コンソールを開き、次の行を入力します。

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. RIoTPot ソースをダウンロードしたフォルダに移動し、必要な node パッケージをインストールします。

    root@kitploit:~
    npm install
    
  3. Make をインストールしている場合、プロジェクトのビルドを支援する複数のコマンドヘルパーが含まれています。簡単に言うと、RIoTPot バイナリとプラグインをビルドする(そして適切なフォルダに配置する)2つの簡単なコマンドを実行できます。

    root@kitploit:~
    # サーバーをビルド
    make build-ui
    # RIoTPot とプラグインをビルド
    make riotpot-build
    

注記: UI は Vite を使用してビルドされています。別のビルダーを使用したい場合は、事前にいくつかの変更を自身で行う必要があるかもしれません。

Docker(仮想化)

情報: このガイドは、仮想環境で RIoTPot を使用したい上級ユーザー向けです。

要件
  • Docker - RIoTPot インスタンスと UI サーバーのイメージをビルドするために使用
  • Docker-compose - RIoTPot インスタンス、UI、その他のアプリケーションやサービスを含む単一のコンテナを作成するために使用

このセットアップを使用する主な利点は、最小限のコンテナ構成変更で追加のセキュリティ機能とコンテナ自体が得られることです。 例えば、分離された仮想プライベートネットワークやオーバーレイネットワークを定義して、RIoTPot や他の隣接サービスを隠蔽、サンドボックス化、カプセル化できます。 さらに、コンテナを使用すると、IP アドレスではなく Docker アドレス名を使用してサービスをバインドできるため、非常に便利です。 最後に、他のサービスに影響を与えることなく、オンデマンドで個別のコンテナを起動および停止できます。

一方、仮想化はベアメタルでアプリケーションを使用するよりも、間違いなくリソースを消費します。 RIoTPot の単一インスタンスは比較的軽量ですが、仮想化とハードウェアエミュレーションによって導入される欠点(応答遅延など)を考慮することが重要です。

警告: 技術的には、熟練した攻撃者は、仮想化によって導入される応答時間の遅延を実際のサーバーと比較分析することで、RIoTPot がハニーポットであることに気づく可能性があります(!!)。この種のハニーポットフィンガープリンティングは以前から研究されていますが、クラウドホスティングサービスの一般化と仮想マシンや詳細なサーバー構成により、一般的なインターネットサービス(HTTP、Telnet、SSHなど)の結果は依然として決定的ではありません。

docker-compose ファイルには、RIoTPot 体験を強化するための追加サービスが含まれています。 次の表は、このコンテナに含まれるサービスとアプリケーションの一覧をまとめたものです。

サービス

3. コマンド

RIoTPot には、何をどのように起動するかに影響するフラグコマンドが用意されています。 例:

root@kitploit:~
# UI なしで RIoTPot を実行
./riotpot --ui false

Footnotes

  1. https://raw.githubusercontent.com/aau-network-security/riotpot/HEAD/%E5%86%85%E9%83%A8%E3%81%8A%E3%82%88%E3%81%B3%E5%91%A8%E8%BE%BA%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AF%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%8B%E3%82%89%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82 内部サービスは統合されており、RIoTPot からのみアクセス可能です。 これらのサービスは起動時に読み込まれ、削除はできませんが、停止は可能です。 周辺サービスは RIoTPot と同じネットワーク上にある 必要があります。 外部サービスは RIoTPot のみ をホワイトリストに登録する 必要があります。 ↩

  2. https://raw.githubusercontent.com/aau-network-security/riotpot/HEAD/%E3%83%9F%E3%83%89%E3%83%AB%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AF%E7%8F%BE%E5%9C%A8%E9%96%8B%E7%99%BA%E4%B8%AD%E3%81%A7%E3%81%99%E3%80%82 ↩

  3. RIoTPot API はインターネットに公開しては いけません。 いずれにせよ、現在 API は localhost からの接続のみを受け付けています。 これは将来的に変更される可能性があり、ホストのホワイトリストと標準認証が提供される予定です。 ↩

  4. Web インターフェースは別のコンポーネントとして使用できますが、RIoTPot バイナリに組み込まれています。 ↩

  5. 基本アプリケーションは相互運用可能ですが、内部サービス(プラグイン)は Linux、FreeBSD、macOS 環境 でのみ使用できます。 この制限を克服するために、プラグインを gRPC を介して通信するマイクロサービスに置き換える予定です。 ↩

ツールをダウンロード
サービス内部ポートプロキシポート
Echo200077
SSH2002222
Telnet2002323
HTTP2808080
Modbus20502502
MQTT218831883
CoAP256835683
サービスイメージポート詳細
MQTTeclipse-mosquitto1883Mosquito MQTT サーバー
HTTPhttpd80通常の HTTP サーバー
Modbusoitc/modbus-server502Modbus サーバー
OCPPocpp1.6-central-system443OCPP v1.6(電気自動車充電スタンドで使用)
アプリケーション
アプリケーションイメージ詳細
TCPDumpkaazing/tcpdumpパケットレコーダー。ネットワークトラフィックを .pcap ファイルに保存します

コンテナは 3 つの簡単な手順でセットアップできます:

  1. GitHub から RIoTPot ソースコードをダウンロードします。コンソールを開き、次の行を入力します。

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. RIoTPot ソースをダウンロードしたフォルダに移動します。

  3. Docker が実行されている状態で:Make がインストールされている場合は、次のコマンドを実行します。それ以外の場合は、build/docker フォルダに含まれている docker-compose ファイルを使用して docker-compose コマンドを実行します。

    • Make を使用する場合
    root@kitploit:~
    # Make を使用する場合
    make up
    
    • Docker-compose を使用する場合
    root@kitploit:~
    # docker-compose を使用する場合
    docker-compose -p riotpot -f build/docker/docker-compose.yaml up -d --build
    
フラグ型デフォルト説明
debugBooleanfalseログレベルをデバッグに設定
apiBooleantrueAPI を起動するかどうか
pluginsBooleantrue低対話ハニーポットプラグインを読み込むかどうか
whitelistStringhttp://localhost,http://localhost:3000API に接続を許可するカンマ区切りのホストリスト
uiBooleantrueUI を起動するかどうか

倫理的およびセキュリティ上の理由から、RIoTPot は外部への未承諾リクエスト(リバースシェルなど)を許可しません。 ↩