hunting-credential-stuffing-attacks について
SOCアナリストや脅威ハンター向けに、認証ログからクレデンシャルスタッフィングを調査するセキュリティ分析スキルです。分散したログイン失敗、IPの多様性、ASN分布などを手掛かりに検出や監視状況の確認を進めます。
主な機能
- 01認証ログのパターン分析
- 02分散ログイン失敗の検出
- 03IP・ASNの多様性指標
- 04パスワードスプレーのクエリ例
- 05監視範囲の検証
活用シーン
- 01クレデンシャルスタッフィングの調査
- 02検出ルールやハンティングクエリの作成
- 03認証監視範囲の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill hunting-credential-stuffing-attacksインストール後、Claude Code で/hunting-credential-stuffing-attacksを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdscripts/agent.py詳細
クレデンシャルスタッフィング攻撃の調査
使用する場面
- クレデンシャルスタッフィング攻撃の調査が必要なセキュリティインシデントを調査する場合
- この分野の検出ルールや脅威ハンティング用クエリを作成する場合
- SOC アナリストがこの種の分析に体系的な手順を必要とする場合
- 関連する攻撃手法に対するセキュリティ監視のカバレッジを検証する場合
前提条件
- セキュリティ運用の概念やツールに関する知識
- 安全に実行できるテスト環境またはラボ環境へのアクセス
- 必要な依存関係をインストールした Python 3.8+
- テスト活動に必要な適切な許可
手順
認証ログを分析し、複数の地域に分散したログイン失敗、高い IP 多様性、不審な ASN 分布のパターンを特定して、クレデンシャルスタッフィングを検出します。
import pandas as pd
from collections import Counter
# Load auth logs
df = pd.read_csv("auth_logs.csv", parse_dates=["timestamp"])
# Credential stuffing indicator: many IPs trying few accounts
ip_per_account = df[df["status"] == "failed"].groupby("username")["source_ip"].nunique()
accounts_under_attack = ip_per_account[ip_per_account > 50]
主な検出指標:
- 失敗したユーザー名あたりの一意な送信元 IP 数が多い
- 多数のアカウントで成功率が低い(< 1%)
- クラウド/プロキシプロバイダーに ASN が集中している
- 地理的に不可能な状況(同じアカウントで離れた場所からアクセス)
- 分散した IP 間でユーザーエージェントが均一
例
# Password spray: one password tried across many accounts
spray = df[df["status"] == "failed"].groupby(["source_ip", "password_hash"]).agg(
accounts=("username", "nunique")).reset_index()
sprays = spray[spray["accounts"] > 10]
コメント
Markdown 対応