周波数に依存しない SDR ベースの信号理解とリバース エンジニアリング
FISSURE は、信号の検出と分類、プロトコル検出、攻撃実行、IQ 操作、脆弱性分析、自動化、AI/ML のフックを備え、あらゆるスキル レベル向けに設計されたオープンソースの RF およびリバース エンジニアリング フレームワークです。このフレームワークは、ソフトウェア モジュール、無線、プロトコル、信号データ、スクリプト、フロー グラフ、参考資料、サードパーティ ツールの迅速な統合を促進するために構築されました。 FISSURE は、ソフトウェアを 1 か所に保管し、特定の Linux ディストリビューションの実績のある同じベースライン構成を共有しながら、チームが簡単に作業を進められるようにするワークフロー イネーブラーです。
FISSURE に含まれるフレームワークとツールは、RF エネルギーの存在の検出、信号の特性の理解、サンプルの収集と分析、送信および/または注入技術の開発、カスタム ペイロードまたはメッセージの作成を目的として設計されています。 FISSURE には、識別、パケット作成、およびファジングを支援するプロトコルおよび信号情報の増加するライブラリが含まれています。信号ファイルをダウンロードし、トラフィックをシミュレートしてシステムをテストするためのプレイリストを構築するオンライン アーカイブ機能が存在します。
使いやすい Python コードベースとユーザー インターフェイスにより、初心者は RF やリバース エンジニアリングに関連する一般的なツールやテクニックについてすぐに学ぶことができます。サイバーセキュリティとエンジニアリングの教育者は、組み込みのマテリアルを利用したり、フレームワークを利用して独自の実世界のアプリケーションをデモンストレーションしたりできます。開発者や研究者は、日常業務に FISSURE を使用したり、最先端のソリューションをより多くの人に公開したりできます。コミュニティ内で FISSURE の認識と使用が高まるにつれて、その機能の範囲と、それが包含するテクノロジーの範囲も広がります。
インストーラー セットアップの呼び出し[エクスポート] ボタンと [インポート] ボタンを使用して、FISSURE インストーラーでチェックしたソフトウェア項目をエクスポートおよびインポートします。必要なプログラムだけをすばやくインストールします。
「/IQ Recordings」フォルダー内のファイルをワンクリックで SigMF ファイルにロードするための、IQ データ タブとメニューのローカル IQEngine サポート。 [ツール] > [データ] > [IQEngine] メニューを使用して、IQEngine ドッカー コンテナーを停止します。
コンピュータで制御できるあらゆる種類の周辺機器をサポートする、汎用コンピュータ (SBC、ミニ PC、ラップトップ、デスクトップ) 用の展開可能なリモート センサー ノード。これらのリモート センサー ノードは、FISSURE ダッシュボード GUI を介してネットワーク経由で制御できるコードの小さなサブセットを実行して、従来の FISSURE 操作を実行するだけでなく、起動時に自律的に、またはユーザー操作を通じて半自律的に実行できる新しいタイプのスクリプト アクションも実行します (自動実行プレイリスト)。
同じネットワーク上に複数のセンサー ノードを展開すると、FISSURE の将来の開発に向けて多くの地理空間アプリケーションが可能になります。このようなアプリケーションには、方向探知、追跡、侵入検知、モバイル展開、境界防御などが含まれます。小型フォームファクターと自律機能により、既存のプラットフォーム上でステルス展開およびパッケージ化する独自の機会が得られます。これらのアップデートは、リモート ワーカーが RF とサイバーセキュリティを組み合わせたテストを実施し、国際的な対象地域、研究所、テスト サイトなどの特殊な RF 環境にアクセスするための低コストのメカニズムも提供します。
自動実行プレイリスト、単一段階攻撃、複数段階攻撃、アーカイブ再生のトリガー機能。電磁効果を開始するための音響、環境、ファイルシステム、ネットワーキング、RF、時間、および視覚的なトリガーの 20 を超える例が含まれています。現在のリストについてはユーザー マニュアルの「トリガー リスト」セクションを参照し、独自のリストを追加する方法については「トリガーの作成」セクションを参照してください。
IQ データから抽出された統計的特徴のみに基づいてデシジョン ツリーと DNN モデルをトレーニングするための[信号分類子] タブ。このタブは、TensorFlow と scikit-learn を使用して機械学習モデルを開発するために、分離信号ファイル (Signal Conditioner から生成) から収集された特徴セット (Feature Extractor から生成) に真実の情報を割り当てるために使用されます。未知の信号を利用可能なすべてのモデルで実行して、結果を比較し、信頼性を確立できます。 Signal Conditioner、Feature Extractor、Signal Classifier の各タブは、新しいアルゴリズムを開発するためのテストベッドとして機能し、最終的には結果 (分離された IQ 信号、統計的特徴、分類の信頼度) が、さらなる分析のための対象信号として FISSURE ライブラリにカタログ化されます。自動アクションをトリガーします。
[IQ データ] タブのオン/オフ キーイング信号発生器により、信号/デバイスを簡単に表示してテストできます。カスタム信号は、ターゲット上でアクションを実行したり、RF デバイスをシミュレートするために再生するために IQ ファイルとして保存できます。
土曜日2024 年 8 月 10 日: DEF CON 32 - RF 村 - 1400 ~ 1500 PST。事前録画ビデオ、ライブ録画
木2024 年 9 月 5 日: ビンガムトン大学 STEM ジョブおよびインターンシップ フェア - 東部時間 1100-1530
火曜日2024 年 9 月 17 日: GNU ラジオ カンファレンス 2024 - EST 1605-1635 説明/スライド、ライブ録音
2024 年 12 月 (最終日は近日公開!) : 2024 FISSURE チャレンジ。リンク (近日公開予定)
以下は、さまざまな統合レベルで「サポートされる」ハードウェアのリストです。
サポートされています
現在、FISSURE 内には Python3 ブランチと Python2_maint-3.7 ブランチの 2 つのブランチがあります。 Python3 ブランチには最新のコードが含まれており、PyQt5 と GNU Radio バージョン 3.8 および 3.10 がサポートされています。 Python2_maint-3.7 ブランチは非推奨となり、特定のサードパーティ ツールが GNU Radio バージョン 3.7 またはそれより古いオペレーティング システムを必要とする場合にのみ更新されます。オペレーティング システムの最新のマイナー バージョンのみがインストールでサポートされており、私たちは最新のマイナー バージョンに対応できるよう最善を尽くします。
オペレーティング·システム | 亀裂支店 | デフォルトの GNU ラジオ バージョン |
---|---|---|
バックボックス Linux 8 (amd64) | Python3 | メインテ-3.10 |
DragonOS FocalX (x86_64) | Python3 | メインテ-3.10 |
カリ 23.1 (x64) | Python3 | メインテ-3.10 |
KDE neon 5.25 (x64) (6.0 はテストされていません) | Python3 | メインテ-3.8 |
Parrot セキュリティ 6.1 (amd64) | Python3 | メインテ-3.10 |
Raspberry Pi OS (本の虫) | Python3 | メインテ-3.10 |
Ubuntu 18.04 (x64) | Python2_maint-3.7 | メインテ-3.7 |
Ubuntu 20.04 (x64) | Python3 | メインテ-3.8 |
Ubuntu 22.04 (x64) | Python3 | メインテ-3.10 |
Ubuntu 22.04 (ARM/Orange Pi) | Python3 | メインテ-3.10 |
Ubuntu 24.04 (x86) | Python3 | メインテ-3.10 |
進行中 (ベータ版)
これらのオペレーティング システムはまだベータ版です。これらは開発中であり、いくつかの機能が欠けていることが知られています。インストーラー内の項目は、既存のプログラムと競合するか、ステータスが削除されるまでインストールに失敗する可能性があります。
オペレーティング·システム | 亀裂支店 | デフォルトの GNU ラジオ バージョン |
---|---|---|
なし |
注: 特定のソフトウェア ツールは、すべての OS で動作するとは限りません。 「既知の競合とサードパーティ ソフトウェア」を参照してください。
インストール
GitHub に SSH キーを追加するには:
ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub
Paste text into "Settings" > "SSH and GPG keys" > "New SSH Key"
git clone [email protected]:ainfosec/FISSURE.git
git clone https://github.com/ainfosec/FISSURE.git
cd FISSURE
git checkout Python3 # or Python2_maint-3.7
git submodule update --init
./install
注:
既存のソフトウェアとの競合を避けるために、FISSURE をクリーンなオペレーティング システムにインストールすることをお勧めします。仮想化と依存関係管理に対するさらなる取り組みは継続されます。インストーラーに関する注意事項:
~/Installed_by_FISSURE
ディレクトリにダウンロードされ、そこからインストールされます。 FISSURE インストーラーは、コンピューターをステージングしたり、目的のソフトウェア プログラムを選択してインストールしたりするのに役立ちます。コードをすぐに変更して、カスタム ソフトウェアをインストールできるようにすることができます。プログラムのサイズの見積もりは、フル インストールによる読み取りの前後のものです。以前にチェックした項目には一部の依存関係がインストールされているため、各プログラムのサイズは正確ではありません。プログラムが更新されると、時間の経過とともにサイズも変化する可能性があります。
リモートセンサーノードのインストール
通常どおり、汎用コンピュータに FISSURE をインストールします。特定の操作でのファイルパス エラーを回避するために、ローカル コンピューターと同じディレクトリの場所にあるリモート コンピューターに FISSURE をインストールします (追って通知があるまで)。センサー ノードをリモート操作用に設定するには、 ./fissure/Sensor_Node/Sensor_Node_Config/
Sensor_Node_Config/ ディレクトリにある「default.yaml」ファイルを編集します。次のフィールドを編集して、ローカル操作からリモート操作に変更します。
「autorun」フィールドをfalse
からtrue
に変更して、起動時にデフォルトの自動実行プレイリスト ファイルを実行し、リモート操作を省略します。新しい自動実行プレイリストは、ダッシュボードの [自動実行] タブから生成および保存できます。
リモート センサー ノードはサーバーとして機能し、クライアント (ローカル コンピューター) と一致する有効な証明書のセット (インストール中に生成される) を持っている必要があります。サーバーには「server.key_secret」ファイルと「client.key」ファイルが必要で、クライアントには「client.key_secret」ファイルと「server.key」ファイルが必要です。証明書フォルダーがサーバー コンピューター上に生成された場合は、クライアント ファイルを他のコンピューターに手動で転送する必要があります。
ローカル ダッシュボードの使用法
ターミナルを開いて次のように入力します。
fissure
FISSURE ダッシュボードを起動するための意図された方法は、sudo を使用せずにターミナルを使用することです。端末は、一部の操作について重要なステータスとフィードバックを提供します。詳細については、FISSURE のドキュメントを参照してください。
ローカル センサー ノードは、FISSURE ダッシュボードの上部のボタンから起動でき、スタンドアロン ワークステーション上で既存のすべての FISSURE 機能を維持するのに役立ちます。現時点では、ローカル センサー ノード 1 つとリモート センサー ノード 4 つ (またはリモート 5 つ) のみがサポートされています。
いずれかのプログラムが終了時にフリーズまたはハングした場合は、次のコマンドを使用して問題を検出したり、強制的にシャットダウンしたりできます。
sudo ps -aux | grep python3
sudo pkill python3
sudo kill -9
リモートセンサーノードの使用法
センサー ノード構成ファイル (上記を参照) を構成した後、ルート ディレクトリから次のコマンドを使用してコードを実行できます。
python3 ./fissure/Sensor_Node/SensorNode.py
センサー ノード コードは、ctrl+c が適用されるまでアクティブなままになります。リモート センサー ノードへの接続は、FISSURE ダッシュボードの上部のボタンから実行されます。上部のボタンを右クリックすると、操作を実行するアクティブなセンサー ノードが選択されます。一度に複数のノードを使用する今後の操作は、個別のタブ内でケースバイケースで処理されます。
FISSURE には、さまざまなテクノロジーやテクニックに慣れるための役立つガイドがいくつか付属しています。多くの場合、FISSURE に統合されているさまざまなツールを使用するための手順が含まれています。私たちは、時間の経過とともに品質を向上させ、新しいコンテンツを追加することを目指しています。
FISSURE への新しい追加を披露するための毎年恒例の「FISSURE Challenge」キャプチャ ザ フラッグ コンテストは、毎年 12 月に開催されます。過去の課題はアーカイブされており、一年中解くことができます。 FISSURE Challenge で実践的な経験を積み、ソリューションを確認してください。
FISSURE を改善するための提案を強くお勧めします。以下についてご意見がある場合は、ディスカッション ページまたは Discord サーバーにコメントを残してください。
FISSURE の開発を促進するには、FISSURE を改善するための貢献が不可欠です。皆様のご貢献は大変感謝しております。コード開発を通じて貢献したい場合は、リポジトリをフォークしてプル リクエストを作成してください。
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)バグに注意を向けるために問題を作成することも歓迎されます。
もっと具体的なアイデアが必要ですか?まだ調査していないトピックがたくさんあります。潜在的な To-Do アイテムの実行中のリストを確認してください。助けていただければ幸いです。簡単なものを選んで、FISSURE に貢献したことを履歴書/CV に書きましょう。
あなたは学生ですか、RF とプログラミングについてもっと学びたいと考えていますか、それとも学生にオープンソースの世界に触れてもらいたいと考えている組織ですか?今すぐ連絡して、2023 年のプロジェクト アイデア リストを参照してください。
ソフトウェアの統合に時間を割く、AIS の有能な人材に技術的課題に対するソリューションを開発してもらう、または FISSURE を他のシステムに統合するなど、FISSURE コラボレーションの機会を提案および正式にするには、Assured Information Security, Inc. (AIS) ビジネス開発にお問い合わせください。プラットフォーム/アプリケーション。
GPL-3.0
ライセンスの詳細については、LICENSE ファイルを参照してください。
Discord サーバーに参加します: https://discord.gg/JZDs5sgxcG
Twitter/X でフォローしてください: @FissureRF、@AinfoSec
LinkedIn で接続: FISSURE - RF フレームワーク
Chris Poore - Assured Information Security, Inc. - [email protected]
事業開発 - Assured Information Security, Inc. - [email protected]
このプロジェクトへの貢献に対して、Samuel Mantravadi 博士と Joseph Reith に特に感謝します。
シグナルの操作、リバース エンジニアリング、またはサイバーセキュリティの他の分野が好きですか?現在の求人情報を参照するか、将来の検討のために人材コミュニティに参加してください。
ハッキングに興味がある場合は、Can You Hack It?® チャレンジをチェックして自分のスキルをテストしてください。あなたのスコアを送信して、あなたのスコアを見せてください。 AIS は、米国全土にオフィスとリモート従業員を擁する全国的な拠点を持ち、競争力のある給与と優れた福利厚生を提供しています。サイバースペースの未来だけでなく、従業員の成功にも尽力するチームに加わってください。