
PENIOT: IoT用ペネトレーションテストツール
PENIOTは、モノのインターネット(IoT)デバイス向けの侵入テストツールです。 インターネット接続を標的としたさまざまな種類のセキュリティ攻撃を用いて、デバイスのテスト/侵入を支援します。言い換えれば、デバイスを能動的・受動的双方のセキュリティ攻撃にさらすことができます。対象デバイスとそのデバイスの必要な情報(パラメータ)を決定した後、システムリソースの改ざん/消費、有効な通信ユニットの再生などの能動的セキュリティ攻撃を実行できます。また、重要な情報の機密性侵害やトラフィック分析のような受動的セキュリティ攻撃も実行可能です。PENIOTのおかげで、これらの操作は半自動化、あるいは完全自動化さえ可能です。要するに、PENIOTはプロトコルベースのセキュリティ攻撃でIoTデバイスを標的にするためのパッケージ/フレームワークです。
また、新しいセキュリティ攻撃や新しいIoTプロトコルをさらに注入するためのベース構造を提供します。PENIOTの最も重要な特徴の一つは拡張性です。デフォルトでいくつかの一般的なIoTプロトコルと、それらに関連する多数のセキュリティ攻撃を備えています。しかし、内部で使用されるコンポーネントの基本構造をエクスポートすることでさらに拡張でき、PENIOTの内部構造と調和した攻撃を開発できます。
IoTパラダイムは過去10年間で爆発的な成長を遂げ、数十億のデバイスがインターネットに接続されています。これらのデバイスのほとんどは、容量の制約や、市場投入までの時間の短さゆえにセキュリティを考慮せずに設計されたため、基本的なセキュリティ対策すら欠いています。IoTにおける高い接続性のため、脆弱なデバイスを介してハッカーが拡張ネットワークに壊滅的な影響を与える攻撃を容易に仕掛けられます。
これまで、侵入テストは完全に無視されていなければ手動で行われていました。この手順により、デバイスのテスト段階は非常に遅くなっていました。一方、IoTデバイスを製造する企業は、悪意ある人物によるセキュリティ攻撃にさらされるとエンドユーザーに予期せぬ影響を与える可能性があるため、提供する機能だけでなく、信頼性や堅牢性の面でもデバイスのテストを常に最新に保つ必要があります。PENIOTの主な目的は、セキュリティテストのプロセスを加速することです。時間のかかる侵入テストフェーズを自動化することで、IoTデバイスのセキュリティ上の欠陥を特定できるようにします。
まず第一に、PENIOTは新規性を提供します。これはIoT分野における侵入テストツールの初期の例の1つです。IoTに特化した類似ツールは1つか2つしかありませんが、それらはまだ開発段階にあり、完成していません。
IoTデバイスの数は急増しており、私たちの日常生活でますます一般的になっています。スマートホーム、スマート自転車、医療用センサー、フィットネストラッカー、スマートロック、コネクテッドファクトリーは、IoT製品のほんの一例です。このことを踏まえ、私たちは最も一般的に使用されるIoTプロトコルのいくつかをPENIOTにデフォルトで組み込む必要性を感じました。以下のプロトコルをPENIOTに含まれるデフォルトのIoTプロトコルとして選択しました。これらのIoTプロトコルは、DoS、ファジング、スニッフィング、リプレイ攻撃など、さまざまな種類のセキュリティ攻撃でテストされています。
現在サポートされているプロトコルは以下の通りです:
さらに、独自に実装されたプロトコルと攻撃の内部フレームワークをエクスポートして、独自のプロトコルや攻撃を実装することができます。また、既存のプロトコルに新しく実装した攻撃を拡張することもできます。最後に、使いやすくユーザーフレンドリーなグラフィカルユーザーインターフェースを提供します。
まず、マシンにPythonのsetuptoolsモジュールがインストールされている必要があります。また、インストールとビルドの前にpython-tkと**bluepy**をインストールする必要があります。
要約すると、インストールスクリプトを実行する前に以下が必要です。
注意:依存ライブラリはかなり古く、既存の外部ライブラリの中にインストールすると問題を引き起こす可能性があるため、Peniot専用に別の仮想環境を用意することを推奨します。
以下のコードを実行することで、ローカルにプロジェクトをビルドできます。
$ git clone [email protected]:yakuza8/peniot.git
$ cd peniot
$ python setup.py install
最新のインストールスクリプトを提供しようと努めていますが、プロジェクトを長期間メンテナンスできていないため、一部が欠落している可能性があります。インストールに問題があればお知らせください。
重要なお知らせ: ファジング攻撃でファジングペイロードを生成するには、マシンにRadamsaがインストールされている必要があります。
仮想環境をセットアップし、上記の必要なライブラリをインストールした後、コマンドラインまたはお好みのIDEでPeniotを実行できます。
$ python src/peniot.py
このコマンドを実行すると、ユーザーインターフェースが表示されるはずです。その後、ツールを自分で探索できます。
Design Overview Document と Final Design Document は resources/documents フォルダにあります。いくつかの図は resources/diagrams フォルダに添付されています。以下は、PENIOTがどのようにモジュールに分割され、どのように設計されているかを示す最も単純な表現です。
ほとんどの攻撃には、攻撃スクリプト内に独自のサンプル統合テストがあります。これらのテストを実行するには、対象プロトコルの実行中のプログラムが必要です。各プロトコル用のサンプルプログラムを提供するよう努めており、各プロトコルの examples ディレクトリにサーバー/クライアントスクリプトがあります。
このプロジェクトは以下のプロジェクトメンバーによって貢献されています:
そして、Pelin Angın が監督を務めています。
まず、私たちのプロジェクトサイトを訪れてくださりありがとうございます。エンドツーエンドのセキュリティ攻撃により、IoTデバイスが使用するプロトコルを介してどのように侵入しハッキングできるかを示そうと努めました。私たちの主な目的は、これらのデバイスを汎用的なセキュリティ攻撃でハッキングすることです。どのプロトコルにも特化した攻撃は簡単に見つかりますが、私たちの目的は汎用的で拡張可能な侵入フレームワークを提供することでした。
次に、PENIOTはPython2.7で開発されました。そして、私たちのコードはおそらくレガシー状態になっているかもしれません。それでも、誰でも独自の侵入ツールを開発するための洞察やインスピレーションを得られるように、公開することにしました。それが実現すれば、私たちにとっては喜ばしいことです。
さらに、時間が許せば、ツールをPython3に移植する予定です。その際には、このページでもお知らせします。ご清聴ありがとうございました。
開発者: @yakuza8 (Berat Cankar)