
ThePhish: 自動化されたフィッシングメール分析ツール
ThePhishは、TheHive、Cortex、MISPをベースとした自動フィッシングメール分析ツールです。Python 3で書かれたFlaskベースのWebアプリケーションで、メールのヘッダーと本文から観測可能データを抽出し、ほとんどの場合最終的な判定を下すまで、分析プロセス全体を自動化します。さらに、アナリストが分析プロセスに介入し、必要に応じて分析中のメールに関する詳細情報を取得することも可能です。TheHiveおよびCortexとの連携には、それぞれのREST APIを利用するためのPython APIクライアントであるTheHive4pyとCortex4pyを使用しています。
以下の図は、ThePhishの高レベルでの動作を示しています。
この例では、ユーザーが分析のためにThePhishにメールを送信する方法と、アナリストがThePhishを使用してそのメールを実際に分析する方法を示します。
ユーザーは、分析対象のメールを取得するためにThePhishが使用するメールアドレスにメールを送信できます。メールはEML形式の添付ファイルとして転送する必要があります。これにより、メールヘッダーの汚染を防ぎます。この例では、使用するメールクライアントはMozilla Thunderbirdで、使用するメールアドレスはGmailアドレスです。
アナリストはThePhishのWebページに移動し、「List emails」ボタンをクリックして、分析対象のメールのリストを取得します。
アナリストが選択したメールに関連する「Analyze」ボタンをクリックすると、分析が開始され、その進行状況がWebインターフェースに表示されます。
その間、ThePhishはメールから観測可能データ(URL、ドメイン、IPアドレス、メールアドレス、添付ファイル、およびそれらの添付ファイルのハッシュ)を抽出し、TheHiveと連携してケースを作成します。
ケース内に3つのタスクが作成されます。
次に、ThePhishは抽出された観測可能データをケースに追加し始めます。
この時点で、Mailerレスポンダーにより、ユーザーに分析が開始されたことがメールで通知されます。
最初のタスクの説明により、Mailerレスポンダーがメールで通知を送信できるようになります。
最初のタスクがクローズされた後、2番目のタスクが開始され、観測可能データに対してアナライザーが起動されます。アナライザーが起動している間、分析の進行状況がWebインターフェースに表示されます。
分析の進行状況は、TheHiveのライブストリーム機能を使用して表示することもできます。
すべてのアナライザーの実行が終了すると、2番目のタスクがクローズされ、3番目のタスクが開始され、ThePhishが判定を計算します。判定が「malicious(悪意あり)」であるため、悪意があると判断されたすべての観測可能データがIoCとしてマークされます。この例では、1つの観測可能データのみがIoCとしてマークされています。
ケースはイベントとしてMISPにエクスポートされ、上記の観測可能データを表す単一の属性が含まれます。
次に、ThePhishはMailerレスポンダーにより、判定をメールでユーザーに送信します。
最後に、タスクとケースの両方がクローズされます。3番目のタスクの説明により、Mailerレスポンダーが判定をメールで送信できるようになります。さらに、ケースは5分後にクローズされ、「True Positive(真陽性)」、「No Impact(影響なし)」として解決されています。これは、攻撃が被害を及ぼす前に検出されたことを意味します。
ケースがクローズされると、判定が分析の進行状況の完全なログとともにWebインターフェースで利用可能になります。
この時点で、アナリストは戻って別のメールを分析できます。上記の例はフィッシングメールに関するものでしたが、分析されたメールが「safe(安全)」と分類された場合も同様のワークフローが見られます。実際、ケースはクローズされ、判定がメールでユーザーに送信されます。
その後、判定はWebインターフェースでもアナリストに表示されます。
一方、メールが「suspicious(疑わしい)」と分類された場合、判定はアナリストにWebインターフェースでのみ表示されます。
この時点で、アナリストはページ左側のボタンを使用して、TheHive、Cortex、MISPを使用したさらなる分析を行う必要があります。これは、分析がまだ完了しておらず、ユーザーには転送したメールの分析が開始されたことのみが通知されているためです。実際、最後のタスクとケースは、アナリスト自身が最終的な判定を下した後にクローズする必要があるため、まだクローズされていません。
アナリストはTheHiveとCortexですべてのアナライザーのレポートを表示でき、それだけでは不十分な場合は、メールのEMLファイルをダウンロードして手動で分析することもできます。
アナリストが分析を終了すると、最後のタスクの説明にユーザーに送信するメールの本文を入力し、Mailerレスポンダーを起動し、判定が「malicious」の場合は「Export」ボタンをクリックしてケースをMISPにエクスポートし、その後ケースをクローズできます。
ThePhishはPython 3で書かれたWebアプリケーションです。WebサーバーはFlaskを使用して実装されており、アプリケーションのフロントエンド部分(HTML、CSS、JavaScriptで書かれた動的ページ)はBootstrapを使用して実装されています。Webサーバーモジュールとは別に、アプリケーションのバックエンドロジックは、アプリケーション自体のロジックをカプセル化する3つのPythonモジュールと、WebSocketプロトコルを介したログ機能をサポートするために使用されるPythonクラスで構成されています。アプリケーションロジックのグラフィカルな表現を見たい場合は、こちらをクリックしてください。さらに、前述のモジュールが使用するいくつかの設定ファイルがあり、さまざまな目的に使用されます。
アナリストがアプリケーションのベースURLに移動すると、ThePhishのWebページが読み込まれ、サーバーとの双方向接続が確立されます。これは、WebページでSocket.IO JavaScriptライブラリを使用して行われ、ブラウザとサーバー間のリアルタイム、双方向、イベントベースの通信を可能にします。この接続は、可能な場合はWebSocket接続で確立され、フォールバックとしてHTTP long pollingが使用されます。これを機能させるために、サーバーアプリケーションはFlask-SocketIO Pythonライブラリを使用しており、FlaskアプリケーションにSocket.IO統合を提供します。この接続は、ThePhishが分析の進行状況をWebインターフェースに表示するために使用されます。
アナリストがWebインターフェースでアクションを実行するたびに、AJAXリクエストがサーバーに送信されます。これは非同期HTTPリクエストであり、バックグラウンドでサーバーとデータを交換し、ページをリロードせずに更新することを可能にします。これにより、アナリストは分析するメールのリストを表示したり、分析を開始したりすることができます。
ThePhishは、TheHive4pyとCortex4pyを使用してTheHiveおよびCortexと対話します。さらに、IMAPサーバーと対話して分析対象のメールを取得します。
本番環境向けにTheHive、Cortex、MISPサービスをスクラッチからインストールして設定するのは非常に簡単ではない可能性があるため、TheHive ProjectはこちらでDockerイメージとDocker Composeテンプレートを提供しており、インストール手順を容易にしています。簡略化のために、提供されているテンプレートは各Dockerイメージの完全な設定オプションを提供せず、シンプルに作られています。
ThePhishを試してみるだけの場合、または可能な限り迅速に稼働させたい場合は、dockerフォルダにある提供されたDocker Templateを使用できます。これはTheHive Projectが提供するDocker Templateの修正版であり、ThePhishコンテナも作成できます。DockerとDocker Composeを使用してThePhishをインストールするには、このガイドを参照してください。初めて使用する場合は、少なくともこの方法でインストールすることを強くお勧めします。これにより、基本を学び、最小限の設定で最初の試行で動作するはずの構成方法を学ぶことができます。実際、前述のガイドでは、TheHive、Cortex、MISPインスタンスを設定するためのステップバイステップの手順も提供しています。
このガイドはThePhish単体のインストールに関するものであり、以下のものが必要です。
TheHive、Cortex、MISPインスタンスのインストール、設定、統合については、それぞれの公式ドキュメントを参照してください。
ThePhishが分析用メールを取得するメールアドレスは、Gmailアドレスであることが推奨されます。これは、ThePhishが最もテストされているアドレスだからです。アカウントは新しく作成されたもので、ThePhishでの使用のみを目的としていることが望ましいです。ThePhishがメールボックスに接続してメールを取得するために必要なアプリパスワードを有効にする手順は、こちらで説明されています。
このインストール手順は、Python 3.8がインストールされたUbuntu 20.04.3 LTSを実行するVMでテストされており、このdocker-compose.ymlファイルに示されているTheHive、Cortex、MISPのバージョンを使用しています。
TheHive、Cortex、MISPが設定され、特定のURLでリッスンし、メールアドレスが使用可能になったら、ThePhishをインストールして設定できます。
リポジトリをクローンする
$ git clone https://github.com/emalderson/ThePhish.git
Python仮想環境を作成して有効にする(良い習慣ですが必須ではありません)
$ cd ThePhish/app
$ sudo apt install python3-venv
$ python3 -m venv venv
$ source venv/bin/activate
要件をインストールする
$ pip install -r requirements.txt
run_responder()関数をTheHive4pyのapi.pyファイルに追加する
ユーザーにメールを送信するために、ThePhishはMailerレスポンダーを使用します。ThePhishはTheHive4pyを使用してTheHiveと対話するため、レスポンダーをそのIDで実行できる関数が必要です。残念ながら、この関数はまだTheHive4pyの一部ではありませんが、TheHive4pyに追加するためのプルリクエストが行われています(#219)。追加されるのを待つ間、ThePhishが正しく動作するように、以下のコマンドを使用して手動で追加する必要があります(異なるバージョンのPythonを使用する場合は、コマンド内のPythonのバージョンを置き換えてください)。
$ (cat << _EOF_
def run_responder(self, responder_id, object_type, object_id):
req = self.url + "/api/connector/cortex/action"
try:
data = json.dumps({ "responderId": responder_id, "objectType": object_type, "objectId": object_id})
return requests.post(req, headers={"Content-Type": "application/json"}, data=data, proxies=self.proxies, auth=self.auth, verify=self.cert)
except requests.exceptions.RequestException as e:
raise TheHiveException("Responder run error: {}".format(e))
_EOF_
) | tee -a venv/lib/python3.8/site-packages/thehive4py/api.py > /dev/null
ThePhishは、アナライザーまたはレスポンダーがCortex上で有効かつ正しく設定されている場合にのみ、それを起動できます。こちらのドキュメントではそれらを有効にする方法が説明されており、こちらでは利用可能なアナライザーとレスポンダーとその設定パラメータが一覧されています。多くのアナライザーは無料で使用できますが、中には特別なアクセスが必要なものや、有効なサービスサブスクリプションや製品ライセンスが必要なものもあることに注意してください。
各アナライザーはJSON形式のレポートを出力し、オブザーバブルの悪意度レベルとして "info"、"safe"、"suspicious"、"malicious" のいずれかを含みます。しかし、レポート構造は通常ある規則に従っていますが、その規則が常に守られているわけではありません。さらに、多くのアナライザーのコード分析と複数のテストの結果、いくつかのアナライザーにバグが含まれていることが判明しています。このため、これらのアナライザーが提供する悪意度レベルを何とかして取得するため、またはバグによるアプリケーションのクラッシュを防ぐために、いくつかの調整や回避策が使用されています。
さらに、これらのレベルは必ずしもオブザーバブルの実際の悪意度レベルを表しているわけではありません。これはアナライザー自体のプログラミング方法に依存するため、ThePhishには analyzers_level_conf.json という別の設定ファイルが付属しており、これを使用して任意のアナライザーが提供する実際の悪意度レベルと、アナリストが決定したレベルとの間のマッピングを作成できます。さらに、このファイルにより、アナリストはこれらの変更を適用するオブザーバブルのタイプを選択できます。ファイルは以下の例に示す構造に従う必要があり、設定するアナライザーの正確な名前と、右側に希望するレベルを指定します。アナライザーがこのファイルにリストされていない場合、そのアナライザーが提供する悪意度レベルはそのまま残されます。ファイルは以下の例に示す構造に従う必要があり、設定するアナライザーの正確な名前と、右側に希望するレベルを指定します。アナライザーがこのファイルにリストされていない場合、そのアナライザーが提供する悪意度レベルはそのまま残されます。```json
{
"DomainMailSPFDMARC_Analyzer_1_1" : {
"dataType" : ["url", "ip", "domain", "mail"],
"levelMapping" : {
"malicious" : "suspicious",
"suspicious" : "suspicious",
"safe" : "safe",
"info" : "info"
}
},
"MISP_2_1" : {
"dataType" : ["url", "ip", "domain", "mail"],
"levelMapping" : {
"malicious" : "malicious",
"suspicious" : "malicious",
"safe" : "safe",
"info" : "info"
}
}
}
この例では、*MISP_2_1* アナライザのレベル "suspicious" が "malicious" に引き上げられています。これは、現在分析中のメールに含まれる一部の観測可能データが、以前に分析された「悪意あり」の判定が下されたメールで既に確認されていることを示しているためです。逆に、*DomainMailSPFDMARC_Analyzer_1_1* アナライザのレベル "malicious" は "suspicious" に引き下げられています。これは、多くの正当なドメインにはDMARCやSPFレコードが設定されていないためです。
このファイルには、自由にアナライザを追加または削除できますが、既存のアナライザは変更しないことをお勧めします。これらの変更は、多数の異なるメールに対して実施された多くのテストに基づいているためです。
### テスト済みアナライザ
ThePhishは以下のアナライザでテストされています。
- AbuseIPDB_1_0
- AnyRun_Sandbox_Analysis_1_0
- CyberCrime-Tracker_1_0
- Cyberprotect_ThreatScore_3_0
- *DomainMailSPFDMARC_Analyzer_1_1*
- DShield_lookup_1_0
- EmailRep_1_0
- FileInfo_8_0
- Fortiguard_URLCategory_2_1
- IPinfo_Details_1_0
- **IPVoid_1_0**
- KasperskyThreatIntelligencePortal_1_0
- Maltiverse_Report_1_0
- *Malwares_GetReport_1_0*
- *Malwares_Scan_1_0*
- MaxMind_GeoIP_4_0
- MetaDefenderCloud_GetReport_1_0
- *MISP_2_1*
- NERD_1_0
- *Onyphe_Summary_1_0*
- OTXQuery_2_0
- PassiveTotal_Enrichment_2_0
- *PassiveTotal_Malware_2_0*
- PassiveTotal_Osint_2_0
- PassiveTotal_Ssl_Certificate_Details_2_0
- PassiveTotal_Ssl_Certificate_History_2_0
- PassiveTotal_Unique_Resolutions_2_0
- PassiveTotal_Whois_Details_2_0
- PhishTank_CheckURL_2_1
- **Pulsedive_GetIndicator_1_0**
- *Robtex_Forward_PDNS_Query_1_0*
- *Robtex_IP_Query_1_0*
- *Robtex_Reverse_PDNS_Query_1_0*
- Shodan_DNSResolve_1_0
- **Shodan_Host_1_0**
- **Shodan_Host_History_1_0**
- Shodan_InfoDomain_1_0
- **SpamhausDBL_1_0**
- StopForumSpam_1_0
- *Threatcrowd_1_0*
- UnshortenLink_1_2
- **URLhaus_2_0**
- Urlscan_io_Scan_0_1_0
- *Urlscan_io_Search_0_1_1*
- VirusTotal_GetReport_3_1
- VirusTotal_Scan_3_1
- Yara_2_0
*斜体*で強調されたアナライザは、レベルが変更されたものです(上書きは可能ですが推奨されません)。**太字**で強調されたアナライザは、レポート構造の規約に従っていないか、バグがあるため、ThePhishのコード内で直接処理されるものです。さらに、以下のアナライザは、最適な方法で使用するためにThePhishのコード内で処理されます。
- **DomainMailSPFDMARC_Analyzer_1_1**: メール送信が可能であると想定されるドメインに対してのみ起動されます。
- **MISP_2_1**: MISPとの統合に使用されます。
- **UnshortenLink_1_2**: URLに対して他のアナライザよりも先に起動され、リンクを短縮解除し、その短縮解除されたリンクを追加の観測可能データとして追加できるようにします。
- **Yara_2_0**: EML添付ファイルに対してのみ起動される唯一のアナライザです。
### *MISP* アナライザの有効化
CortexをMISPと統合するには、*MISP_2_1* アナライザを有効にし、CortexがMISPとやり取りするために使用するMISP上で作成されたユーザーの認証キーを設定する必要があります。つまり、事前にMISP上で組織とその組織内に `sync_user` ロールを持つユーザーを作成し、認証キーを取得しておく必要があります(その方法については、[こちら(ThePhishドキュメント、推奨)](https://github.com/emalderson/ThePhish/tree/master/docker#configure-the-misp-container)または[こちら(MISPドキュメント)](https://www.circl.lu/doc/misp/administration/#users)を参照してください)。
### *Yara* アナライザの有効化
*Yara_2_0* アナライザを使用する場合は、Cortexが実行されているマシン上に以下のものを含むフォルダを作成する必要があります。
- Yaraルール(各ルールは `.yar` 拡張子のファイル)
- `index.yar` という名前のファイル。このファイルには、そのフォルダ内の各Yaraルールに対して、`include "yara_rule_name.yar"` という構文に従った行が含まれている必要があります。
次に、このフォルダのパスをCortexで設定する必要があります。例えば、`/opt/cortex` パスに `yara_rules` フォルダを作成した場合、Cortexでパス `/opt/cortex/yara_rules` を設定します(Webインターフェース上で)。
## *Mailer* レスポンダの有効化
ユーザーにメールを送信するには、*Mailer* レスポンダを有効にして正しく設定する必要があります。レスポンダを有効にする手順は、アナライザを有効にする手順と同じです。Gmailアドレスを使用する場合、正しいパラメータは以下の通りです。
- from: `<YourGmailEmailAddress>`
- smtp_host :`smtp.gmail.com`
- smtp_port: `587`
- smtp_user: `<YourGmailEmailAddress>`
- smtp_pwd: `<YourGmailEmailAddressAppPassword>`
## ホワイトリストの使用
ThePhishでは、誤検知の原因となる可能性がある観測可能データや、分析中に考慮すべきでないとアナリストが判断した観測可能データの分析を回避するために、ホワイトリストを作成できます。ホワイトリストは `whitelist.json` というファイルに格納され、多数の異なるリストで構成されているため、一致させる観測可能データの種類と一致モードの両方において高い柔軟性を提供します。以下の一致モードをサポートしています。
- メールアドレス、IPアドレス、URL、ドメイン、ファイル名、ファイルタイプ、ハッシュに対する完全一致
- メールアドレス、IPアドレス、URL、ドメイン、ファイル名に対する正規表現一致
- 指定されたドメインを含むサブドメイン、メールアドレス、URLに対する正規表現一致
以下に、`whitelist.json` ファイルの簡単な例を示します。
```json
``````json
{
"exactMatching": {
"mail" : [],
"ip" : [
"127.0.0.1",
"8.8.8.8",
"8.8.4.4"
],
"url" : [],
"domain" : [
"adf.ly",
"paypal.com"
],
"filename" : [],
"filetype" : [
"application/pdf"
],
"hash" : []
},
"domainsInSubdomains" : [
"paypal.com"
],
"domainsInURLs" : [
"paypal.com"
],
"domainsInEmails" : [
"paypal.com"
],
"regexMatching" : {
"mail" : [],
"ip" : [
"10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}",
"172\\.16\\.\\d{1,3}\\.\\d{1,3}",
"192\\.168\\.\\d{1,3}\\.\\d{1,3}"
],
"url" : [],
"domain" : [],
"filename" : []
}
}
完全一致マッチングと正規表現マッチングに関する部分は変更せずに使用されますが、残りの部分はさらに3つの正規表現リストを作成するために使用されます。これらの機能を有効にするために複雑な正規表現を設計する必要はなく、ドメインを適切なリストに追加するだけで、ThePhishが残りを行います。例えば、上記の例では、ドメイン「paypal.com」だけでなく、そのドメインを含むすべてのサブドメイン、URL、メールアドレスもフィルタリングされます。これらの正規表現は、望ましくない動作を避けるために設計されており、例えば「paypal.com.attacker.com」のようなドメインが誤ってホワイトリストに登録されるのを防ぎます。
注意: 「domainsInSubdomains」にドメインを追加した場合、そのドメイン自体もフィルタリングされます。したがって、同じドメインを「exactMatching」のドメインリストに追加する必要はありません。この区別は、サブドメインではなくドメインのみをホワイトリストに登録する必要がある場合のためにあります。したがって、この例では「paypal.com」を両方のリストに含めるのは冗長です。
このリポジトリで提供されているホワイトリストファイルには、すでにいくつかのホワイトリスト登録された観測対象が含まれていますが、これは単なる例です。要素を削除または追加して、必要に応じて編集することができます(また、そうすべきです)。
ThePhishは、ケースをイベントとしてMISPにエクスポートできるというTheHiveの優れた機能を利用しています。これにより、MISP_2_1アナライザを使用して、ケース内の観測対象とMISP上のそれらのイベントの属性との一致を検索できます。残念ながら、ThePhishの開発初期段階では、PythonのAPIを介してこれを実行できる関数はまだTheHive4pyで利用できませんでした。そのため、この機能を追加するためにTheHive4pyにプルリクエスト(#187)が行われました。このプルリクエストは受け入れられ、関数export_to_misp()がTheHive4pyの1.8.0マイルストーンに追加されました。
ThePhishはCortexが提供するアナライザに大きく依存しています。それらが意図したとおりに機能し続けることを保証するために、それらを含むリポジトリにプルリクエストが行われています。以下は、そのようなプルリクエストの更新されたリストです。
ThePhishはオープンソースのフリーソフトウェアであり、AGPL(Affero General Public License)の下でリリースされています。
このプロジェクトは2020年に開始され、その初期の不完全なバージョンは、ナポリフェデリコ2世大学が主催するCybersecurity HackAdemyの卒業研究として提出されました。その際、初期のアイデアを提供してくれたRoberto Cellettiと、初期のデプロイと最初のテストでアプリケーション開発の初期段階を手伝ってくれたチームメンバーであるgianpor、MrFelpon、xdinaxに感謝します。
その後、機能、ロゴ、UIの面でツールを完全に再設計し、Dockerサポートを追加し、2021年にナポリフェデリコ2世大学でコンピュータ工学の修士号取得のための最終論文として提出するために、指導教官Simon Pietro Romano(spromano)の下で徹底的なドキュメントを作成しました。
また、IMAP2TheHiveを開発し、GitHubで公開してくれたXavier Mertens(xme)にも感謝します。それがこのプロジェクトの開発のきっかけとなり、ThePhishのコードはそのコードを参考にしています。
設定
ファイルconfiguration.jsonはグローバル設定ファイルであり、メールボックスおよびTheHive、Cortex、MISPインスタンスへの接続パラメーターを設定できます。また、TheHiveに作成されるケースに関連するパラメーターも設定できます。
{
"imap" : {
"host" : "imap.gmail.com",
"port" : "993",
"user" : "",
"password" : "",
"folder" : "inbox"
},
"thehive" : {
"url" : "http://thehive:9000",
"apikey" : ""
},
"cortex" : {
"url" : "http://cortex:9001",
"apikey" : "",
"id" : "local"
},
"misp" : {
"id" : "MISP THP"
},
"case" : {
"tlp" : "2",
"pap" : "2",
"tags" : ["email", "ThePhish"]
}
}
TheHive上で組織と、その組織内でorg-adminロールを持つユーザーを作成し、そのAPIキーを取得する方法については、こちら(ThePhishドキュメント、推奨)またはこちら(TheHiveドキュメント)を参照してください。同様に、Cortex上で組織と、その組織内でread, analyzeロールを持つユーザーを作成し、そのAPIキーを取得する方法については、こちら(ThePhishドキュメント、推奨)またはこちら(Cortexドキュメント)を参照してください。
このファイルで設定されるURLとIDは、TheHiveの設定ファイルapplication.confで設定されているものと同じである必要があります。このファイルにはCortexとMISPに関連する部分が含まれています。両方の部分で確認すべきパラメーターはnameとurlで、これらはCortexおよびMISPインスタンスのIDとURLに対応します。IDは、TheHiveのWebインターフェースの「About」ウィンドウでも確認できます。Cortex IDが文字列local、MISP IDが文字列MISP THPである例を次の図に示します。
ファイルapplication.confは、TheHiveをCortexおよびMISPと統合するために使用されます。Cortexとの統合の設定方法については、こちら(ThePhishドキュメント、推奨)またはこちら(TheHiveドキュメント)を参照してください。MISPとの統合については、こちら(ThePhishドキュメント、推奨)またはこちら(TheHiveドキュメント)を参照してください。TheHive、Cortex、MISPの各インスタンスにアクセス可能なURLもtemplates/index.htmlファイル内で置き換える必要があります。これにより、Webインターフェースのボタンからそれらにアクセスできるようになります。そのためには、以下のコード部分の最後の3つのhrefを置き換えてください。
<ul class="navbar-nav text-light" id="accordionSidebar">
<li class="nav-item"><a class="nav-link active" href="/" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/logo_rounded.png" style="margin-top: 0px;margin-left: 0px;"></a></li>
<li class="nav-item"><a class="nav-link" href="http://thehive:9000" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/thehive.png" style="margin-right: 0px;margin-left: 0px;"></a></li>
<li class="nav-item"><a class="nav-link" href="http://cortex:9001" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/cortex.png" style="transform: translate(0px);"></a></li>
<li class="nav-item"><a class="nav-link" href="https://misp" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/misp.png" style="transform: translate(0px);"></a></li>
</ul>
アプリを起動する
$ python3 thephish_app.py
アプリケーションの実行に使用されるサーバーは、requirementsに記載されているeventletが提供するWSGIサーバーです。これはWebSocketプロトコルを機能させ、HTTPロングポーリングへのフォールバックを避けるために必要です。eventletがない場合、デフォルトのFlask WSGIサーバー(Werkzeug)が使用されます。 別のWSGIサーバー(例:Gunicorn)を使用したい場合やリバースプロキシ(例:NGINX)を使用したい場合は、Flask-SocketIOドキュメントにその方法が説明されています。
これで、アプリケーションは http://localhost:8080 でアクセスできるようになります。
⚠️ 警告: Mozilla Firefoxを使用してThePhishを利用しており、何らかの理由で分析中にエラーメッセージが表示される場合、解決策はこちらにあります。