Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ics-phishing-toolkit — ICSフィッシング(悪意のあるカレンダー招待)を阻止するためのオープンソースツール | Kitploit
ツール/GitHubGitHub/sublime-security/ics-phishing-toolkit
フィッシングクラウドセキュリティインシデントレスポンスAPIセキュリティメールセキュリティ
GitHubsublime-security/ics-phishing-toolkit

ics-phishing-toolkit

ICSフィッシング(悪意のあるカレンダー招待)を阻止するためのオープンソースツール

リポジトリを見る

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
1845ヶ月前未レビュー

ics-phishing-toolkit

このツールキットは、悪意のあるカレンダー招待状を是正するためのもので、これらの攻撃をネイティブに是正しないメールセキュリティソリューションを利用しているチームを支援するために設計されています。

Sublime を使用している場合、是正機能がネイティブサポートされているため、このツールキットは不要です。

サポートされているスタック

各メールセキュリティプロバイダーとカレンダープロバイダーの組み合わせに対して、スタック固有のスタンドアロンスクリプト(例:proofpoint-microsoft365.py、mimecast-google-workspace.py)が提供されています。

メールセキュリティプロバイダー:

  • Proofpoint
  • Mimecast
  • Abnormal Security

カレンダープロバイダー:

  • Microsoft 365
  • Google Workspace

すぐに始めたい場合はクイックスタートへ!

ご利用のスタックが表示されていませんか?[email protected]まで、サポートしてほしいスタックをお知らせください。

検出

これらのスクリプトは、ICSフィッシングメールをすでに検出しているが、それらのメールによって作成されたカレンダーイベントを削除していないメールセキュリティソリューションを必要とします。

ICSフィッシングを検出するメールセキュリティソリューションをお持ちでない場合は、Sublime Core が無料でセルフホスト可能なメールセキュリティを提供しており、ICSフィッシング検出と自動カレンダー是正機能が組み込まれています。

ICSフィッシングの台頭

ICSフィッシングは、悪意のあるペイロードをユーザーの受信トレイとカレンダーの両方に同時に配信する二段階の攻撃です。この攻撃ベクトルは、2025年の第1四半期から第4四半期にかけて約100倍に増加したと、Sublimeの2026年メール脅威調査レポートに記載されています。第4四半期のコールバックフィッシング攻撃の20%以上が、カレンダー招待状を配信メカニズムとして使用していました。

重要なセキュリティギャップ: カレンダーイベントは、メールセキュリティソリューションが悪意のあるメールを隔離または削除した後も残り続けます。これは、セキュアメールゲートウェイ(SEG)とAPIベースのメールセキュリティソリューションの両方に影響を及ぼし、2026年2月時点では、ほとんどのソリューションが悪意のあるカレンダーイベントをクリーンアップしません。

ICSフィッシングを阻止する

Sublimeの組み込み是正機能に基づき、これらのPythonスクリプトは、メールセキュリティソリューションがICSフィッシングメールを隔離した際に、悪意のあるカレンダーイベントを削除します。スクリプトは:

  • メールセキュリティプロバイダーから隔離されたメッセージを取得
  • それらのメッセージから.icsカレンダー添付ファイルやその他のiCalendar準拠の添付ファイルを抽出
  • ユーザーのカレンダー(Microsoft 365またはGoogle Workspace)から一致するイベントを検索して削除

SOAR

ピュアPythonであるため、Tines、Splunk SOAR、Cortex XSOARなど、多くのSOARでこれらのスクリプトを実行できます。

また、SOAR固有のガイドも作成中です。ヘルプが必要な場合や、特定のSOARのドキュメント公開時に通知を受け取りたい場合は、[email protected]までお問い合わせください。

クイックスタート

各スタンドアロンスクリプトには以下が必要です:

  1. 互換性のあるランタイム
  2. API認証情報を含む環境変数
  3. メールセキュリティソリューションとカレンダープロバイダーに適切なAPI権限

ランタイム

以下の環境でこれらのスクリプトを実行できます:

  • Python 3.9以降
  • requirements.txtにリストされているPyPIパッケージ(requestsとPyJWT)をインストールできる環境

本番環境では、cronジョブなどでスクリプトを定期的に実行するようにスケジュール設定することも必要です。

設定

スクリプトはデフォルトでドライランモードで実行され、イベントの誤削除を防ぎます。削除を有効にする方法と、悪意のある招待状やイベントを発見した際のカスタムロジックを実装する方法については、設定オプションを参照してください。

Proofpoint Cloud

root@kitploit:~
export PROOFPOINT_CLIENT_ID="your-client-id"
export PROOFPOINT_CLIENT_SECRET="your-client-secret"
  • PROOFPOINT_CLIENT_ID: Proofpoint Cloud Threat Response API用のOAuth 2.0クライアントID
  • PROOFPOINT_CLIENT_SECRET: OAuth 2.0クライアントシークレット

Mimecast

root@kitploit:~
export MIMECAST_CLIENT_ID="your-client-id"
export MIMECAST_CLIENT_SECRET="your-client-secret"
export MIMECAST_REGION="global"  # オプション: global, us, uk (デフォルト: global)
  • MIMECAST_CLIENT_ID: Mimecast API 2.0用のOAuth 2.0クライアントID
  • MIMECAST_CLIENT_SECRET: OAuth 2.0クライアントシークレット
  • MIMECAST_REGION: APIリージョンエンドポイント(オプション、デフォルトはglobal)

必要なAPI権限:

  • Services | Threat Remediation | Read
  • Gateway | Tracking | Read
  • Archive | Read

Abnormal Security

root@kitploit:~
export ABNORMAL_API_KEY="your-api-key"
  • ABNORMAL_API_KEY: Abnormal SecurityプラットフォームからのAPIキー

Google Workspace

root@kitploit:~
# オプション1: サービスアカウントファイル
export GOOGLE_SERVICE_ACCOUNT_FILE="/path/to/service-account.json"

# オプション2: サービスアカウントJSON(インライン)
export GOOGLE_SERVICE_ACCOUNT_JSON='{"type":"service_account",...}'
  • GOOGLE_SERVICE_ACCOUNT_FILE: サービスアカウントJSONキーファイルへのパス
  • GOOGLE_SERVICE_ACCOUNT_JSON: インラインのサービスアカウント認証情報(JSON文字列)

必要な設定:

  • サービスアカウントに対してドメイン全体の委任を有効にする
  • スコープを承認: https://www.googleapis.com/auth/calendar.events
  • Google Workspace管理コンソールで設定

Microsoft 365

root@kitploit:~
export MICROSOFT_CLIENT_ID="your-client-id"
export MICROSOFT_CLIENT_SECRET="your-client-secret"
export MICROSOFT_TENANT_ID="your-tenant-id"
  • MICROSOFT_CLIENT_ID: Azure ADアプリケーション(クライアント)ID
  • MICROSOFT_CLIENT_SECRET: Azure ADアプリケーションのクライアントシークレット
  • MICROSOFT_TENANT_ID: Azure ADディレクトリ(テナント)ID

必要なAPI権限: Calendars.ReadWrite(アプリケーション権限)

例: Proofpoint + Microsoft 365

root@kitploit:~
export ICS_PHISHING_REMEDIATION_MODE="dry_run" # "dry_run"がデフォルト
export MESSAGE_LOOKBACK_MINUTES=10

export PROOFPOINT_CLIENT_ID="your-client-id"
export PROOFPOINT_CLIENT_SECRET="your-secret"
export MICROSOFT_TENANT_ID="your-tenant"
export MICROSOFT_CLIENT_ID="your-client"
export MICROSOFT_CLIENT_SECRET="your-secret"

python3 proofpoint-microsoft365.py

設定オプション

ドライランモード(デフォルト)

デフォルトでは、すべてのスクリプトはドライランモードで実行され、誤削除を防ぎます。このモードでは、スクリプトは以下を実行します:

  • 隔離されたメールを取得し、カレンダー招待状を抽出
  • 一致するカレンダーイベントを検索
  • 実際には何も削除せず、削除されるはずだったイベントをログに記録

これにより、実際の削除を有効にする前にスクリプトが正しく動作していることを確認できます。

削除を有効にする

カレンダーイベントを実際に削除するには、ICS_PHISHING_REMEDIATION_MODE環境変数を設定します:

root@kitploit:~
export ICS_PHISHING_REMEDIATION_MODE="delete_events"

有効な値:

  • dry_run(デフォルト)- 削除せずにアクションをプレビュー
  • delete_events - 一致するカレンダーイベントを実際に削除

無効な値を指定すると、設定ミスを防ぐためにエラーが発生します。

メッセージルックバックウィンドウ

すべてのスクリプトは、設定可能な時間ウィンドウ内で隔離されたメッセージを検索します:

root@kitploit:~
export MESSAGE_LOOKBACK_MINUTES=10  # オプション、デフォルトは5分

重要: この値は、cronスケジュールの頻度に、メッセージを見逃さないように少量のバッファを加えた値に設定する必要があります。たとえば、5分ごとに実行する場合は、ルックバックウィンドウを10分に設定します。

カスタムコールバック

ログシステムや監視ツールなどの追加の統合のために、スクリプト内にカスタムコールバックを実装し、delete_events_from_remediated_emails関数に渡すことができます:

  • on_invitation_found_callback(invitation: CalendarInvitation) - 隔離されたメッセージからカレンダー招待状が見つかったときに呼び出されます
  • on_event_found_callback(invitation: CalendarInvitation, event: CalendarEvent) - 一致するカレンダーイベントごとに呼び出されます

例:

root@kitploit:~
def log_invitation(invitation):
    print(f"Found malicious invitation for {invitation.user_id}, UID: {invitation.ics_uid}")

def log_event(invitation, event):
    print(f"Found calendar event {event.id} matching invitation {invitation.ics_uid}")

fetcher = ProofpointCloudFetcher()
deleter = GoogleWorkspaceEventDeleter()

delete_events_from_remediated_emails(
    fetcher,
    deleter,
    mode="delete_events",  # デフォルトのdry_runモードをオーバーライド
    on_invitation_found_callback=log_invitation,
    on_event_found_callback=log_event
)

注: コールバック内のエラーはログに記録されますが、イベント処理は停止しません。

アーキテクチャ

すべてのスクリプトはcommon.pyで定義された共通パターンに従います:

root@kitploit:~
class MessageFetcher:
    def yield_remediated_emails(self) -> Iterator[Message]:
        """メールセキュリティソリューションから隔離されたメッセージを取得"""

class EventDeleter:
    def delete_matching_events(
        self,
        invitation: CalendarInvitation,
        mode: Mode,
        on_event_found_callback: Optional[Callable[[CalendarInvitation, CalendarEvent], None]]
    ) -> None:
        """ICS添付ファイルに一致するカレンダーイベントを削除"""

スタック固有の実装が、API認証とプロバイダー固有のロジックを処理します。

ヘルプの入手

  • 質問、機能リクエスト、バグ報告: [email protected]
  • SOAR統合ガイド: SOARプラットフォーム向けの詳細な導入ガイドの早期アクセスについては、[email protected]までお問い合わせください
  • 脅威インテリジェンス: 当社のICSフィッシングブログ記事と2026年メール脅威調査レポートをご覧ください
ツールをダウンロード