$30 off During Our Annual Pro Sale. View Details »

Phishing Hunging Operations (PHOps)

phishing-hunter
February 04, 2023

Phishing Hunging Operations (PHOps)

Phishing Hunging Operations (PHOps)
フィッシングハンティングの自動化

解説記事: https://zenn.dev/tatsui/articles/56ca648e79faff

Gitリポジトリ: https://github.com/phishing-hunter/PHOps
---------------------------------------------------------------------------
他にも以下のツールやサービスを提供しております

フィッシングサイト通知サービス「フィッシングハンター」
http://phishing-hunter.com/

サイトクローン検出ツール
https://github.com/phishing-hunter/phishing-blocker

類似ドメイン検索サイト
http://demo.phishing-hunter.com/

phishing-hunter

February 04, 2023
Tweet

More Decks by phishing-hunter

Other Decks in Research

Transcript

  1. Phishing Hunging Operations (PHOps)
    フィッシングハンティングの自動化

    View Slide

  2. はじめに
    ● 内容はあくまで自組織に関わる不正なコンテンツの検出やテイクダウンを目的とし
    ており、不正なコンテンツに含まれるセンシティブな情報の利用や拡散を目的とす
    るものではありません
    ● 収集するプログラムには外部にメールや情報を送信する機能が含まれていること
    があり、注意深く取り扱う必要があります。

    View Slide

  3. フィッシング攻撃の流れ
    ● 攻撃者はホスティングサーバーを購入する

    ● 購入したサーバにフィッシングキットをアップロードしセットアップする

    ● 動作確認を完了させた攻撃者は潜在的な被害者に大量のフィッシングメールを送信する

    ● 被害者はフィッング ページにアクセスして資格情報を入力する

    ● フィッシング キットは資格情報を処理し、外部の電子メール アカウントに送信する

    ● 最後に、攻撃者はこの電子メール アカウントにアクセスし、資格情報を収集する

    View Slide

  4. フィッシングキットを入手してみた
    Zipファイルダウンロード後にもう一度アクセスしたら接続拒否されました。

    View Slide

  5. 実際に入手したフィッシングキットの解説
    index.php
    ● サイトにアクセスするためにはパスワードが必要になるオプションが用意されている
    ● パスワードがないと本物のサイトに自動的にリダイレクトされます。
    ● サイト構築中にアクセスしてきたipアドレスをbotと判断しリストに記録している

    View Slide

  6. 実際に入手したフィッシングキットの解説
    killbot.php
    ● botとして判定されたIPアドレスはhttps://killbot.orgに登録される
    ● botを複数のフィッシングキットで共有するための仕組みだと思われる

    View Slide

  7. 実際に入手したフィッシングキットの解説
    antibot.php
    ● botとして判定されたIPアドレスはhttps://antibot.pwに登録される
    ● こちらもbotを複数のフィッシングキットで共有するための仕組みだと思われる

    View Slide

  8. アンチウイルスベンダをブロックする仕組み
    killbot.org antibot.pw
    フィッシングサイトA
    フィッシングサイトB
    アンチウイルスベンダ
    リサーチャーなど
    フィッシングサイト間でブロックリストを共有
    している状態

    View Slide

  9. 実際に入手したフィッシングキットの解説
    submit_email.php
    ● 被害者が入力したemailアドレスやパスワード、IP情報が攻撃者の用意したemail
    アドレスに転送されるようになっている

    View Slide

  10. 実際に入手したフィッシングキットの解説
    ● メールの送信に成功したか失敗したかどうかを記録している

    View Slide

  11. 実際に入手したフィッシングキットの解説
    lang.php
    ● IPアドレスから国を判定して、表示言語を切り替えている

    View Slide

  12. 一般的なフィッシングキットの動作フロー
    フィッシングサイト
    フィッシングサイトへ誘導するメールを送信
    フィッシングサイトに認
    証情報を入力
    認証情報がメールで送
    信される

    View Slide

  13. SSL証明書を取得すると履歴が残る
    ● まず最初に攻撃者はホスティングサーバ購入する必要があります
    ● ホスティング業者は攻撃者との契約が完了するとSSLの証明書と専用のドメインの
    取得を行います。
    ● この段階でCertificate Transparencyの仕組みによって、証明書取得のログがイン
    ターネット上に公開されます。
    ログが公開される サーバを契約
    攻撃者

    View Slide

  14. フィッシングサイトを構築段階で検出する方法
    ● 公開されたログのビッグデータ解析を行い、フィッシングに使われる手法が含まれ
    たドメインを抽出しサーバ上のコンテンツを確認します。
    ● タイミング良くアクセスできれば、攻撃者がサーバに置いたばかりのフィッシング
    キットを入手することができます。
    ● 構築段階ではアクセス元を制御する設定がされていない場合が多いため、フィッシ
    ングキットのログに残らないようにアクセスすることができます
    キットのアップロード
    キットのダウンロード
    攻撃者

    View Slide

  15. 悪質なサイトは報告しないと生き続ける
    サイトの構築・設定
    継続的な監視
    通知
    関係組織
    コミュニティ
    攻撃者
    テイクダウン

    View Slide

  16. 悪質なサイトは報告しないと生き続ける

    View Slide

  17. 構築したシステム
    Pull Request
    ルールのパフォーマ
    ンスを検証
    ルールのリリース
    スコアリング結果の保存
    フィッシングキットの保存
    Google Safe Browsingへ報告
    承認
    CI/CD
    ダウンロード
    スコアリング&キット収集
    score > 150
    通知

    View Slide

  18. スコアが高いドメインはDiscordで公開
    Discord招待URL:
    https://discord.gg/c2WWJDpnAw

    View Slide

  19. 構築したシステム
    このシステムは、AWS上で動作しており、Certstreamから収集した証明書の更新履歴を収集しています。収集している履歴は定義さ
    れたルールに基づいてスコアリングされGoogleドライブへと保存して公開しています。

    スコアが閾値を超えたドメインについてはurlscanを使ってスキャンを行います。コンテンツが取得できる場合はYaraルールを使ってス
    キャンを実施し、結果をDiscordに通知しています。

    フィッシングサイトと判定された場合にはGoogleセーフブラウジングとTwitterに詳細を投稿しています。

    スコアリングルールやYaraルールについてもGithubに公開してるので、プルリクエスト経由で誰でも修正することが可能です。
    Githubリポジトリ: phishing-hunter/PHOps
    PRお願いします

    View Slide

  20. データのパイプライン処理
    AWS EventBridige Pipesを使う
    証明書の情報をSourceに送信するプログラムは別に用意する
    データのエンリッチメントはlambda(Docker)で実装
    Certstreamから
    データを受け取る
    スコアリング
    Yaraルールで検査
    重複排除 通知

    View Slide

  21. バッチ処理
    ● バッチ処理はGithubActionsを使う
    ○ dockerイメージのビルド
    ○ バックエンドのデプロイ
    ○ ルールの動作を検証
    ● 2000分/月まで無料で使える
    ● ルールは公開しているので認証情報の取扱に注意する
    イベント
    (push, pull_request,..)
    workflow実行

    View Slide

  22. Github Actionsを利用する場合の注意点
    ● pull_request triggerはforkからのpull requestを受け取ったときにはfork先のリポジトリの設定で github actions が動く
    ○ fork元で設定している secrets にアクセスできない

    ○ テストに時間がかかる場合はfork先のアカウントでクレジットが消費される


    View Slide

  23. Github Actionsを利用する場合の注意点
    ● trigger を pull_request の代わりに pull_request_target を使うようにすると、fork先からのリポジトリからの pull request で
    も fork元の設定で github actions が動くのでsecrets にアクセスできる

    ○ pull request のauthorにsecretsをダンプするようなコードを pull request で送りつけられてしまう

    ○ テストに時間がかかる場合はfork元のアカウントでクレジットが消費される


    View Slide

  24. Github Actionsを利用する場合の注意点
    トリガー: schedule

    build用リポジトリ 検証用リポジトリ
    docker push
    docker pull
    トリガー: push
    個人リポジトリ
    トリガー: push

    1.Fork
    3.Pull Request
    ・サービスアカウント
    ・Dockerhub認証情報
    2. Git push
    検証用リポジトリのworkflowはPRが承認されマー
    ジが行われたタイミングで実行される
    secrets (機密情報)
    トリガーがpushなので、リポジトリの所有者が
    workflowを実行する(クレジットを消費する
    )
    リクエスト レスポンス

    View Slide

  25. まとめ
    ● フィッシングハンティングにクラウドサービスを活用する一例としてAWSとGithubを活用した

    ● スコアリング等のデータパイプライン処理はAWS Eventbridge Pipesを使って実装した

    ● GithubActionを使えばバッチ処理をクラウド上で実行できる(2000分/月まで無料)

    ● Githubから機密情報にアクセスするための設定は気をつけないと事故を起こしてしまう可能性がある

    View Slide