認証とセッションのテスト
ログインのブルートフォース、セッション固定、JWTの弱点、安全でないremember-meトークンをテストします。
「認証とセッションのテスト」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
認証テストの範囲
認証テストでは、ログインのブルートフォース、認証情報スタッフィング、セッション管理の弱点、JWTの脆弱性、安全でないRemember-meトークン、パスワードリセットの欠陥を対象とします。これらによって、アカウントが完全に乗っ取られることも少なくありません。
ユーザー名の列挙
無効なユーザー名と無効なパスワードで異なるエラーメッセージが表示されると、有効なユーザー名が漏洩します。レスポンス時間の違い、メッセージの内容、HTTPステータスコード、リダイレクト先のURLを確認してください。
# Test login with:
# Valid user, wrong pass → "Incorrect password"
# Invalid user → "User not found"
# This confirms valid usernames!
# Time-based: longer response for valid users
# (bcrypt hash computed only for valid users)Burp Intruderによるログインのブルートフォース
IntruderでSniperまたはPitchfork攻撃を使用し、ログインのブルートフォースを行います。パスワードフィールドをペイロード位置として指定し、ワードリストを読み込み、ステータスコードや長さの違いでレスポンスを絞り込んでください。
# In Burp Intruder:
# 1. Send login request to Intruder
# 2. Mark: username=admin&password=§PASS§
# 3. Attack type: Sniper
# 4. Payload: passwords.txt from SecLists
# 5. Filter: 302 redirects = success認証情報スタッフィング
認証情報スタッフィングでは、漏洩データベース(Have I Been Pwned)から入手したユーザー名とパスワードの組み合わせを、新しい対象に対して試します。ユーザーが複数のサービスでパスワードを使い回すため、効果があります。
# Tools:
# Hydra for HTTP login forms
hydra -L users.txt -P passwords.txt \
192.168.1.100 http-post-form \
"/login:user=^USER^&pass=^PASS^:Invalid"セッショントークンの分析
セッショントークンを取得し、予測可能性(連番のID)、長さ(短いほど推測しやすい)、エンコーディング(Base64デコードして構造を確認)、エントロピー(Burp Sequencerで分析)を調べてください。
# Burp Sequencer:
# Proxy > HTTP History
# Right-click login response
# Send to Sequencer
# Start live capture → Analyzeセッション固定化
セッション固定化は、ログイン後にサーバーがセッションIDを更新しない場合に発生します。ログイン前のセッションIDを記録し、認証後も同じIDが維持されているか確認してテストしてください。
JWTテスト
JSON Web Tokenは認証クレームを保持します。アルゴリズムの混同(alg:none)、脆弱なシークレットに対するブルートフォース、ヘッダーインジェクションをテストしてください。jwt.ioを使うと、JWTをデコードして確認できます。
# Decode JWT
echo "eyJ..." | base64 -d
# None algorithm attack:
# Modify header: {"alg":"none"}
# Remove signature
# Encode and submit
# Brute force HS256 secret:
john --format=HMAC-SHA256 token.txtパスワードリセットの欠陥
よくあるリセット機能の欠陥には、推測可能なリセットトークン(短い、または連番)、ホストヘッダーインジェクション(攻撃者のドメインにトークンが送信される)、トークンの再利用(同じトークンが複数回有効)、有効期限がないことなどがあります。
# Test host header injection:
# Modify Host: header in reset request:
Host: attacker.com
# If token arrives at attacker.com = vulnerability
# Test token entropy:
# Collect multiple tokens
# Check for patterns or short lengthRemember-meトークンのセキュリティ
Remember-meトークンには、暗号学的に安全なランダム性、十分な長さ(128ビット以上)、サーバー側でのハッシュ化された保存、1回限りの使用、ユーザーアカウントとの紐付けが必要です。予測可能性と再利用の有無をテストしてください。
多要素認証(MFA)のバイパス
よくあるMFAのバイパスには、レスポンスの改変(失敗を成功に変更する)、認証が一部完了した後のURLへの直接アクセス、レート制限のない短いOTPのブルートフォース、SIMスワッピング(ソーシャルエンジニアリングによるもので、技術的なものではありません)があります。
アカウントロックアウトのテスト
ログインに繰り返し失敗したときにロックアウトが発生するかテストしてください。ロックアウトがない場合はブルートフォースのリスクがあります。ロックアウトが厳しすぎる場合は、サービス拒否のリスクがあります。タイムアウト後にロックアウトが解除されるのか、管理者の操作が必要なのかも確認してください。
確認問題
アルゴリズムフィールドを"none"に変更して署名検証を回避するJWT攻撃は何ですか?
まとめ: 認証とセッションのテスト
認証テストでは、最初のログインからセッション管理までの一連の流れ全体を対象とします。ユーザー名の列挙、ロックアウトの欠如、予測可能なトークン、JWTのアルゴリズム混同、パスワードリセットへのインジェクション、MFAのバイパスを探してください。この流れの中の1つの欠陥だけで、あらゆるユーザーのアカウントが完全に乗っ取られる可能性があります。
よくある質問
「認証とセッションのテスト」レッスンは無料ですか?
はい。「認証とセッションのテスト」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「認証とセッションのテスト」で何を学びますか?
ログインのブルートフォース、セッション固定、JWTの弱点、安全でないremember-meトークンをテストします。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「認証とセッションのテスト」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。