11. セキュリティに関する考慮事項 (Security Considerations)
本章では、SCTPプロトコルのセキュリティ問題、潜在的な脅威、および対応する保護メカニズムについて説明します。
11.1. セキュリティ目標 (Security Objectives)
11.1.1. 完全性保護
- CRC32cチェックサム: パケット全体を保護
- Verification Tag: パケット偽造を防止
11.1.2. 可用性保護
- Cookieメカニズム: SYNフラッド攻撃を防止
- マルチホーミング: 経路冗長性を提供
11.1.3. 機密性
注意: SCTP自体は暗号化を提供しません。TLS/DTLS/IPsecの使用を推奨。
11.2. 潜在的脅威への対応 (SCTP Responses to Potential Threats)
11.2.1. なりすまし攻撃
保護: Verification Tag検証、4ウェイハンドシェイク、HMAC署名付きState Cookie
11.2.2. リプレイ攻撃
保護: TSN(単調増加)、Cookie有効期限、アソシエーション固有のVerification Tag
11.2.3. サービス拒否攻撃
SYNフラッド型攻撃
Cookieメカニズム:
1. INIT受信 → TCB割り当てなし
2. State Cookie生成 → INIT ACK送信
3. COOKIE ECHO受信 → このときTCB割り当て
パケットフラッド攻撃
保護: Verification Tagフィルタリング、チェックサム検証、輻輳制御
マルチホーミング悪用攻撃
保護: HEARTBEATによるアドレス検証、速度制限
11.2.4. 盗聴
制限: SCTPは暗号化を提供しない 推奨: TLS over SCTP、DTLS over SCTP、IPsec
11.2.5. ブラインド攻撃
困難性: 32ビットVerification Tag + TSN範囲の推測が必要 成功確率: 1/2^32以下
11.3. ファイアウォールとの相互作用 (SCTP Interactions with Firewalls)
11.3.1. ファイアウォールの課題
- SCTP状態マシンの理解が必要
- マルチホーミング処理(複数IPアドレス)
- 動的アドレス追加/削除
11.3.2. 推奨事項
基本フィルタリング:
- SCTPチェックサムの検証
- 状態追跡
- INITの速度制限
- マルチホーミングサポート
設定例:
許可(アウトバウンド): INIT, COOKIE ECHO, DATA, SACK, HEARTBEAT
許可(インバウンド): INIT ACK, COOKIE ACK, DATA, SACK, HEARTBEAT ACK
ブロック: 無効な状態遷移、不正なVerification Tag
11.3.3. NAT考慮事項
課題: SCTPにIPアドレス情報が含まれる(INIT、ASCONF) 推奨: SCTP対応NAT/ALG、NATトラバーサル技術
11.4. SCTP非対応ホストの保護 (Protection of Non-SCTP-Capable Hosts)
11.4.1. 問題
攻撃者がSCTP INITを使用してSCTP非対応ホストを攻撃
11.4.2. SCTP動作
ICMPエラー受信時: ログ記録、経路を到達不能としてマーク、アソシエーション即座中止せず 速度制限: 単一宛先へのINIT送信速度を制限
11.4.3. ネットワーク保護
- イングレスフィルタリング: 送信元アドレス詐称を防止(BCP 38)
- エグレスフィルタリング: 非SCTPポートへのSCTPトラフィックを制限
- ホストファイアウォール: 非サポートプロトコルのパケット破棄
まとめ
SCTPセキュリティメカニズム:
- Verification Tag(偽造・ブラインド攻撃防止)
- Cookieメカニズム(SYNフラッド防止)
- CRC32cチェックサム(改ざん・エラー検出)
- アドレス検証(マルチホーミング悪用防止)
- 4ウェイハンドシェイク(認証強化)
セキュリティ制限:
- 暗号化を提供しない(TLS/DTLS/IPsec必要)
- 送信元認証を提供しない(上位層メカニズム必要)
ベストプラクティス:
- 暗号化層で機密データを保護
- 速度制限と監視を実装
- ファイアウォールとNATを適切に設定
- セキュアコーディングプラクティスに従う
- セキュリティ更新を迅速に適用