FakeNet-NG の Linux サポートの導入: FLARE の次世代動的ネットワーク分析ツール

Starting FakeNet-NG on Linux news

序章

FLARE は 2016 年に、Python で記述されたオープンソースのネットワーク分析ツールであるFakeNet-NG を導入しました。 FakeNet-NG を使用すると、セキュリティ アナリストは、単一の Windows ホスト上で標準またはカスタム プロトコルを使用してネットワーク アプリケーションを監視し、対話することができます。これは、マルウェア分析とリバース エンジニアリングに特に役立ちます。 FakeNet-NG のリリース以降、FLARE は追加のプロトコルのサポートを追加しました。 FakeNet-NG は、DNS、HTTP (BITS を含む)、FTP、TFTP、IRC、SMTP、POP、TCP、UDP、および SSL をすぐにサポートできるようになりました。

この作業に基づいて、FLARE は FakeNet-NG を Linux に導入しました。これにより、アナリストは、単一の Linux ホスト上で、または INetSim と同じ方法で別の専用マシンを使用して、基本的な動的分析を実行できます。 INetSim は、セキュリティ コミュニティの生産性に驚くべき貢献をしており、今でも多くのアナリストに選ばれているツールです。現在、FakeNet-NG は、アナリストにマルウェア分析用のクロスプラットフォーム ツールを提供します。このツールは、この分野で継続的に出現しているすべての優れた Python ベースの情報セキュリティ ツールと直接統合できます。

Linux での FakeNet-NG の入手とインストール

REMnuxを実行している場合は、朗報です。REMnux には FakeNet-NG がインストールされており、既存のユーザーはupdate-remnuxコマンドを実行して入手できます。

他の Linux ディストリビューションの場合、FakeNet-NG をセットアップして使用するには、Python pip パッケージ マネージャー、 net-toolsパッケージ、および OpenSSL、 libffi 、およびlibnetfilterqueueの開発ファイルが必要です。いくつかの一般的な Linux ディストリビューションの適切な前提条件をすばやく取得する方法を次に示します。

  • Debian および Ubuntu: sudo apt-get install python-pip python-dev libssl-dev libffi-dev libnetfilter-queue-dev net-tools
  • Fedora 25 および CentOS 7:
    • yum -y 更新;
    • yum -y install epel-release; # <– CentOS の場合
    • yum -y インストール redhat-rpm-config; # <– Fedora の場合
    • yum -y groupinstall ‘開発ツール’; yum -y install python-pip python-devel openssl-devel libffi-devel libnetfilter_queue-devel net-tools

前提条件が整ったら、最新バージョンの FakeNet-NG をダウンロードし、 setup.py installを使用してインストールできます。

2 つのモードの物語

Linux では、 FakeNet -NG は、ネットワーク シミュレーション専用の別のホストにマルチホスト モードで展開するか、ソフトウェアをローカルで分析するための実験的なシングルホスト モードで展開できます。 Windows はSingleHostモードのみをサポートします。 FakeNet-NG はデフォルトでNetworkMode: Autoで実行するように構成されており、Windows ではSingleHostモード、Linux ではMultiHostモードが自動的に選択されます。表 1 に、オペレーティング システムごとに現在サポートされているNetworkMode設定を示します。

シングルホスト

マルチホスト

ウィンドウズ

デフォルト (自動)

サポートされていません

Linux

実験的

デフォルト (自動)

表 1: プラットフォームごとの FakeNet-NG NetworkMode サポート

Linux でのSingleHostモードに対する FakeNet-NG のサポートには、現在のところ制限があります。

まず、FakeNet-NG は、Linux 上の特定のプロセス、ホスト、またはポートの条件付きリダイレクトをまだサポートしていません。これは、 ProcessWhiteListなどの設定が期待どおりに機能しないことを意味します。今後のリリースでこれらの設定のサポートを追加する予定です。それまでの間、 SingleHostモードは、インターネットに向かうすべてのトラフィックをローカル リスナーにリダイレクトすることをサポートします。これは、マルウェア アナリストの主な使用例です。

次に、 python-netfilterqueueライブラリは、長さが 4,012 オクテット以下のデータグラムを処理するようにハードコーディングされています。ループバック インターフェイスは通常、特定のアプリケーションがこのハードコードされた制限を超えることを可能にする高い最大転送単位 (MTU) 設定で構成され、予期しないネットワーク動作が発生します。これが原因で問題が発生する可能性があるネットワーク アプリケーションの例として、FTP を介した大きなファイル転送があります。回避策として、バッファ サイズを大きくしてpython-netfilterqueueを再コンパイルするか、ループバック インターフェイス (つまり lo) の MTU を 4,012 以下に減らします。

Linux での FakeNet-NG の構成

新しいNetworkMode設定に加えて、FakeNet-NG の Linux サポートでは、次の Linux 固有の構成項目が導入されています。

  • LinuxRedirectNonlocal : マルチホスト モードの場合、この設定は、 FakeNet -NG が応答できるように、すべてのトラフィックをローカル ホストにリダイレクトするネットワーク インターフェイスのコンマ区切りリストを指定します。 FakeNet-NG のデフォルト構成の設定は * で、FakeNet-NG がすべてのインターフェースでリダイレクトするように構成されます。
  • LinuxFlushIptables : FakeNet-NG のルールを追加する前に、すべてのiptablesルールを削除します。元のルールは、Ctrl+C を押すとトリガーされる FakeNet-NG のシャットダウン シーケンスの一部として復元されます。これにより、予期しない終了が発生した場合にルールの競合、エラー、または重複の可能性が減少し、FakeNet-NG のデフォルト構成で有効になります。
  • LinuxFlushDnsCommand : DNS リゾルバー キャッシュをフラッシュするコマンドを指定します。 Linux のシングルホスト モードでFakeNet -NG を使用する場合、これにより、キャッシュされた回答を使用する代わりに、名前解決要求が FakeNet-NG DNS リスナーなどの DNS サービスに確実に転送されます。この設定は、Linux のすべてのディストリビューションに適用できるわけではありませんが、Ubuntu Linux の正しいコマンドがデフォルトで設定されています。この動作の適切なコマンドについては、ディストリビューションのドキュメントを参照してください。

Linux で FakeNet-NG を起動する

FakeNet-NG を使用する前に、使用する予定の FakeNet-NG リスナーに対応するポートにバインドする可能性のあるサービスも無効にしてください。例として、Ubuntu でのローカルdnsmasqサービスの使用があります。 netstatを使用してそのようなサービスを見つけることができます。これらのサービスを無効にする方法については、Linux ディストリビューションのドキュメントを参照してください。

図 1 に示すように、root 権限でfakenetを呼び出すことにより、FakeNet-NG を開始できます。

Starting FakeNet-NG on Linux
Linux で FakeNet-NG を起動する

FakeNet-NG の出力の最初の行に表示されるファイルを直接編集するか、コピーを作成して-cコマンドライン オプションでその場所を指定することにより、FakeNet-NG の構成を変更できます。

結論

FakeNet-NG は、最新の Python ベースのマルウェア指向ネットワーク シミュレーション ツールの利便性を Linux にもたらし、FakeNet-NG for Windows で利用可能なリスナーを完全にサポートします。 REMnux のユーザーはすでに FakeNet-NG を利用できますが、他の Linux ディストリビューションのユーザーは、標準のパッケージ管理ツールを使用してダウンロードおよびインストールできます。

参照: https://www.mandiant.com/resources/blog/introducing-linux-support-fakenet-ng-flares-next-generation-dynamic-network-analysis-tool

Comments

Copied title and URL