
この記事は、NFLaboratories Advent Calendar 2025 12日目の記事です。
はじめに
こんにちは、ソリューション事業部の保要 (@takahoyo) です。 以前は研究開発部でPurple Flairのコンテンツ開発を主に担当していましたが、2025年度からソリューション事業部へと異動しました。 現在は、ペネトレーションテストなどの攻撃者目線でのセキュリティ診断、研修 や Purple Flairのコンテンツの監修、社外での講演など NFLabs. の業務に幅広く関わっています。
NFLabs. は社員のスキルアップをとても良く支援してくれる会社であり、現在の担当業務の質を向上させるために私もトレーニングを受講させてもらっています。 そこで今回は、私が受講したトレーニング、Maldev Academy Offensive Phishing Operations Course について紹介します。
Maldev Academy
Maldev Academy は、セキュリティトレーニングを提供しているサービスであり、その名の通りマルウェア開発手法について扱っています。 サービス名だけを見ると危険なサイトのようにも思えますが、ホームページには "Advanced Training for Cyber Security Professionals" と書いてあり、サービスの Terms of Service には "Users must not use any of the knowledge or content for unlawful purposes." と明記されているため、セキュリティ学習のためのサイトであることがわかります。
本記事の執筆時点では、以下の3コースが提供されています。
- Malware Development Course
- Offensive Phishing Operations Course
- Ransomware Internals, Simulation and Detection Course
このうち、"Ransomware Internals, Simulation and Detection Course" 以外は、$499 USD で受講でき一度受講すれば永年アクセスが可能です。
Offensive Phishing Operations Course
私が受講した Offensive Phishing Operations Course は、公式サイトでは以下のように説明されています。
Maldev Academy's Offensive Phishing Operations course teaches to set up secure phishing infrastructure while analyzing each step to identify operational security flaws. The course covers detection methods used by security vendors and defenders, as well as implementing anti-analysis and anti-bot strategies to avoid detection.
Students enrolled in the course will learn to set up secure phishing infrastructure and implement measures to prevent scanners and bots from easily detecting and flagging their phishing websites.
これをGoogle翻訳で日本語にすると、以下のような説明です。
Maldev AcademyのOffensive Phishing Operationsコースでは、安全なフィッシング対策インフラの構築方法を学びながら、各ステップを分析して運用上のセキュリティ上の欠陥を特定します。このコースでは、セキュリティベンダーやセキュリティ対策担当者が使用する検出手法に加え、検出を回避するための分析対策やボット対策の実装についても解説します。
受講者は、安全なフィッシング対策インフラの構築方法と、スキャナーやボットによるフィッシングサイトの容易な検出とフラグ付けを防ぐ対策を習得します。
つまり、フィッシングサイトをインフラレベルからどのように構築するのか、それをどのように検知するか、または検知を回避するかの技術を学ぶことができます。
コースは「モジュール」というトピックごとの学習コンテンツに分かれています。 モジュールは、2025年3月のリリース時点では81個のメインモジュールで構成されていましたが、その後も継続的に追加されており、執筆時点ではさらに23個のモジュールが追加されています。 難易度はBeginner, Intermediate, Advancedの3段階で分かれており、受講者のレベルに合わせて受講できるようになっています。
詳しいコースのシラバスは以下のリンク先から閲覧できるので、より詳細に内容を知りたい方はこちらのURLからご確認ください。
https://maldevacademy.com/phishing-course/syllabus
受講の目的
受講するトレーニングは上記のとおり、実際の攻撃者も使用する技術が学べる内容となっています。 もちろん受講する目的は、実際に攻撃を行うことや、マルウェアの開発手法を学ぶことが目的ではありません。*1
では、なぜ受講したのでしょうか?
それは、実際の攻撃者の技術を学ぶことで、現実世界でも使われている手法を再現できるようになり、リアリティのあるセキュリティ診断や教育コンテンツを提供できるようになると考えたからです。
また、社内でもMalDev Academyの本トレーニングを受講した人がいなかったため、どのような内容か気になり受講しました。
学んだテクニックの紹介
本項ではトレーニングで個人的に学びになった内容を、概念レベルで2つ紹介します。
なお、各節のタイトルは、公式のシラバスにも掲載されているモジュール名を引用しています。詳細な実装内容については本記事では扱っていません。
Anti-Bot Via User-Agent Spoofing Detection
User-Agentによって表示されるコンテンツが変わるサイトがあることや、フィッシングサイトの調査であることを隠すために、セキュリティベンダーは調査の際にUser-Agentを変更することがあります。 このモジュールでは、User-Agentの変更をフィッシングサイト側で検知する方法が紹介されていました。
具体的には以下のような方法が紹介されていました。
- JavaScript の
navigator.userAgent,navigator.platformプロパティを確認し、HTTPリクエストのUser-Agentヘッダと一致しているか、OSが一致しているかを確認する - JavaScript の
screen.widthプロパティを確認し、画面幅が妥当であるか確認する- 例えば、User-Agentではモバイルを名乗っているが、画面幅が極端に広いかを確認する
- ブラウザによってサポートされてないCSSの機能がサポートされているかを確認する
- 例えば、
-webkit-user-dragという機能はFirefoxではサポートされていないので、これが使えるか確認する
- 例えば、
- など
そのため、フィッシングサイトの分析を行う際は可能な限り実際のOSやブラウザを使用し、実際にフィッシングサイトがターゲットにしている環境を再現した方が良いと感じました。
Adversary-In-The-Middle (AITM) Via Evilginx, Customizing Evilginx: Opsec Configuration
まず "Adversary-In-The-Middle (AITM) Via Evilginx" モジュールでは、フィッシング用のWebサイトを用意して、クライアントがアクセスしてきた通信を標的のWebサイトに転送、その通信を傍受することでクライアントが標的Webサイトで使用するセッションCookieを窃取し、MFA (Multi-Factor Authentication) を迂回し得る攻撃手法の考え方が紹介されていました。
この手法はMicrosoftの以下のブログでも詳細に説明されています。
これを実現する方法として、OSSのツールである Evilginx が紹介されていましたが、OSSが故に多くのセキュリティベンダーによって研究されており、インターネットのスキャンや組織内のセキュリティ監視を行うブルーチームに検知されやすい欠点があります。
そこで、次の "Customizing Evilginx: Opsec Configuration" モジュールでは、コードの改修やインフラ構成など様々なレイヤで工夫することで、OPSEC上の論点や、なぜ検知されやすいのかといった観点が解説されていました。
具体的には以下のような観点です。
- 特徴的なHTTPレスポンスヘッダの削除
- フロントエンドのコード難読化
- TLSのプロパティを変更することで、TLSフィンガープリントを変更
- 標的サーバとプロキシを経由してアクセスする
- など
近年、MFAを有効にすれば安全というような風潮があるように思えますが、MFAを回避する手法を知ることで、MFAを信用しすぎてはいけないことがよくわかりました。
また、攻撃者も常に防御側に検知されないように工夫を行っているため、防御者目線ではセキュリティ製品による検知を過信しすぎないこと、攻撃者の手法をキャッチアップすることでどのように検知出来るかを常に考える必要があると思いました。
受講した感想
フィッシングサイトというと、Webブラウザから見えるサイトの外観しか見えないですが、このトレーニングではフィッシングサイトをホストするWebサーバの設定から始まり、どのようなコードを書いて、どのような検知回避手法を用いてフィッシングサイトを作るかまで解説されており、フィッシングサイトが様々なレイヤで構成されていることがよくわかりました。
また、単純な構築方法だけでなく、どのようにフィッシングサイトが検出を回避するか、逆に検出されるかも解説されているため、ブルーチームの皆さんにもおすすめです。(敵を知り己を知れば百戦危うからず)
私としては、ここで学んだことを活かして教育コンテンツやセキュリティテストの質の向上に活かしていきたいと思います。
*1:日本においては、管理者の許可を得ていないシステムへの攻撃は「不正アクセス行為の禁止等に関する法律」に違反する可能性があります。さらに、正当な理由なくマルウェアを作成・提供・取得・保管する行為は「不正指令電磁的記録に関する罪」に問われる可能性があるため、学んだ内容の取り扱いには注意が必要です。