mcpField
P
performing-ssl-tls-inspection-configuration

performing-ssl-tls-inspection-configuration

github.com/mukul975セキュリティ35.2k87 回インストール8 週間前に更新
リポジトリ

performing-ssl-tls-inspection-configuration について

SSL/TLS通信検査を設定するセキュリティチーム向けのスキルです。CAの配布、復号ポリシーや例外の設定、検証に加え、プライバシーとコンプライアンスも扱います。

主な機能

  1. 01アウトバウンドとインバウンドの検査設定
  2. 02内部CA証明書の配布
  3. 03証明書ピンニングアプリの例外設定
  4. 04復号結果の検証
  5. 05性能、プライバシー、コンプライアンスの考慮

活用シーン

  1. 01ファイアウォールやセキュアWebゲートウェイのTLS検査設定
  2. 02エンドポイントへの信頼済みCA証明書の配布
  3. 03証明書ピンニングアプリの接続問題の調査
  4. 04復号対象通信のプライバシー例外の策定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill performing-ssl-tls-inspection-configuration

インストール後、Claude Code で/performing-ssl-tls-inspection-configurationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
references/
api-reference.md
scripts/
agent.py

詳細

SSL/TLS 検査の設定

概要

SSL/TLS 検査(SSL 復号、HTTPS 検査、TLS ブレークアンドインスペクトとも呼ばれます)は、クライアントとサーバー間の暗号化されたトラフィックを傍受し、マルウェア、データの持ち出し、ポリシー違反、コマンド&コントロール通信がないか、復号した内容を検査します。検査装置は信頼された中間者として動作し、クライアントとの TLS セッションを終端して、平文の内容を検査した後、宛先サーバーとの新しい TLS セッションを確立します。現在、ウェブトラフィックの 95% 以上が暗号化されているため、TLS 検査を行わない組織には大きな盲点があります。このスキルでは、次世代ファイアウォールでの TLS 検査の設定、信頼された CA 証明書の展開、証明書ピンニングを使用するアプリケーションの除外管理、プライバシー規制への準拠について説明します。

使用する場面

  • SSL/TLS 検査の設定を伴うセキュリティ評価を実施するとき
  • 関連するセキュリティ事象へのインシデント対応手順に従うとき
  • 定期的なセキュリティテストや監査活動を実施するとき
  • 実地テストを通じてセキュリティ制御を検証するとき

前提条件

  • TLS 検査機能を備えた次世代ファイアウォールまたはセキュアウェブゲートウェイ
  • 検査証明書への署名に使用する内部認証局(CA)
  • エンドポイントの証明書管理(GPO、MDM、または手動での展開)
  • TLS 検査の範囲に関するプライバシーおよび法務の審査
  • PKI、X.509 証明書、TLS ハンドシェイクに関する理解

基本概念

SSL/TLS 検査モード
モード方向説明
SSL フォワードプロキシアウトバウンドクライアントからインターネットへの HTTPS 接続を傍受します
SSL インバウンド検査インバウンド内部サーバー宛てのトラフィックを復号します
SSH プロキシ双方向SSH トンネル経由のトラフィックを検査します
フォワードプロキシの処理
Client                  Firewall/Proxy              Web Server
  │                         │                          │
  │──TLS ClientHello──────→│                          │
  │                         │──TLS ClientHello───────→│
  │                         │←─TLS ServerHello────────│
  │                         │  (real server cert)      │
  │                         │                          │
  │                         │  [Validates server cert]  │
  │                         │  [Generates proxy cert   │
  │                         │   signed by internal CA]  │
  │                         │                          │
  │←─TLS ServerHello───────│                          │
  │  (proxy-signed cert)    │                          │
  │                         │                          │
  │──Encrypted data────────→│  [Decrypt, Inspect]      │
  │                         │──Encrypted data────────→│
  │←─Encrypted data─────────│  [Decrypt, Inspect]      │
  │                         │←─Encrypted data─────────│
証明書の信頼チェーン
Enterprise Root CA
  └── Subordinate CA (SSL Inspection)
        └── Dynamically Generated Server Certificates
             (CN matches requested server)

ワークフロー

手順 1:SSL 検査用の内部 CA を生成する
# Create private key for SSL Inspection CA
openssl genrsa -aes256 -out ssl-inspect-ca.key 4096

# Create CA certificate (5 year validity)
openssl req -new -x509 -key ssl-inspect-ca.key \
  -sha256 -days 1825 \
  -out ssl-inspect-ca.crt \
  -subj "/C=US/ST=California/O=Corp Inc/OU=Network Security/CN=Corp SSL Inspection CA" \
  -extensions v3_ca \
  -config <(cat <<EOF
[req]
distinguished_name = req_dn
x509_extensions = v3_ca

[req_dn]

[v3_ca]
basicConstraints = critical,CA:TRUE,pathlen:0
keyUsage = critical,digitalSignature,keyCertSign,cRLSign
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
EOF
)

# Verify certificate
openssl x509 -in ssl-inspect-ca.crt -text -noout
手順 2:CA 証明書をエンドポイントに展開する

Windows(グループポリシー):

# Import CA cert to trusted root store via GPO
# Computer Configuration > Policies > Windows Settings >
# Security Settings > Public Key Policies > Trusted Root CAs

# Or deploy via PowerShell
Import-Certificate -FilePath "\\server\share\ssl-inspect-ca.crt" `
  -CertStoreLocation "Cert:\LocalMachine\Root"

# Verify deployment
Get-ChildItem Cert:\LocalMachine\Root | Where-Object {
    $_.Subject -like "*SSL Inspection CA*"
}

macOS(MDM プロファイルまたは手動):

# Install via command line
sudo security add-trusted-cert -d -r trustRoot \
  -k /Library/Keychains/System.keychain ssl-inspect-ca.crt

Linux:

# Ubuntu/Debian
sudo cp ssl-inspect-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

# RHEL/CentOS
sudo cp ssl-inspect-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
手順 3:Palo Alto SSL フォワードプロキシを設定する
# Import CA certificate to firewall
# Device > Certificate Management > Certificates > Import

# Set as Forward Trust CA
set shared certificate SSL-Inspect-CA forward-trust-certificate yes

# Create Decryption Profile
set profiles decryption Corporate-Decrypt ssl-forward-proxy block-expired-certificate yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy block-untrusted-issuer yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy block-unknown-cert yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy restrict-cert-exts yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy strip-alpn no

# Minimum TLS version
set profiles decryption Corporate-Decrypt ssl-protocol-settings min-version tls1-2
set profiles decryption Corporate-Decrypt ssl-protocol-settings max-version max

# Decryption policy - decrypt outbound HTTPS
set rulebase decryption rules Decrypt-Outbound from Trust to Untrust
set rulebase decryption rules Decrypt-Outbound source any
set rulebase decryption rules Decrypt-Outbound destination any
set rulebase decryption rules Decrypt-Outbound service any
set rulebase decryption rules Decrypt-Outbound action decrypt
set rulebase decryption rules Decrypt-Outbound type ssl-forward-proxy
set rulebase decryption rules Decrypt-Outbound profile Corporate-Decrypt
手順 4:除外を設定する

特定のアプリケーションやカテゴリは、TLS 検査の対象から除外する必要があります。

# Exempt certificate-pinned applications
set rulebase decryption rules No-Decrypt-Pinned from Trust to Untrust
set rulebase decryption rules No-Decrypt-Pinned application [ apple-update microsoft-update dropbox-base ]
set rulebase decryption rules No-Decrypt-Pinned action no-decrypt

# Exempt privacy-sensitive categories
set rulebase decryption rules No-Decrypt-Privacy from Trust to Untrust
set rulebase decryption rules No-Decrypt-Privacy category [ health-and-medicine financial-services ]
set rulebase decryption rules No-Decrypt-Privacy action no-decrypt

# Exempt specific high-trust domains
set rulebase decryption rules No-Decrypt-Trusted from Trust to Untrust
set rulebase decryption rules No-Decrypt-Trusted destination [ bank-of-america.com chase.com healthcare.gov ]
set rulebase decryption rules No-Decrypt-Trusted action no-decrypt
手順 5:内部サーバー向けのインバウンド検査を設定する
# Import server certificate and private key
# Device > Certificate Management > Certificates > Import

# Inbound inspection policy
set rulebase decryption rules Inspect-WebServers from Untrust to DMZ
set rulebase decryption rules Inspect-WebServers destination [ 10.0.20.10 10.0.20.11 ]
set rulebase decryption rules Inspect-WebServers service service-https
set rulebase decryption rules Inspect-WebServers action decrypt
set rulebase decryption rules Inspect-WebServers type ssl-inbound-inspection
set rulebase decryption rules Inspect-WebServers profile Corporate-Decrypt
手順 6:SSL 検査を検証する
# Test from client - verify certificate issuer is internal CA
openssl s_client -connect www.google.com:443 -servername www.google.com 2>/dev/null | \
  openssl x509 -noout -issuer -subject

# Expected output (with inspection active):
# issuer= /C=US/O=Corp Inc/OU=Network Security/CN=Corp SSL Inspection CA
# subject= /CN=www.google.com

# Verify no certificate errors in browser
# Check firewall decryption logs for errors

# Test with curl
curl -v https://www.example.com 2>&1 | grep "issuer"

# Check decryption statistics on firewall
show system setting ssl-decrypt memory
show system setting ssl-decrypt certificate-cache
show counter global filter category ssl

パフォーマンスに関する考慮事項

要因影響軽減策
CPU オーバーヘッドセッションあたり 50~80% 増加ハードウェア SSL アクセラレーション、専用の復号アプライアンス
スループットの低下通常 40~60%暗号化トラフィックのピークに合わせて復号ハードウェアの容量を確保する
レイテンシの増加1~5 ミリ秒増加検査装置をユーザーの近くに配置する
TLS 1.3 0-RTT0-RTT データを検査できない0-RTT をブロックするか、リスクを受け入れる
証明書ピンニング検査に失敗する除外リストに追加する
QUIC/HTTP3従来型のプロキシを迂回するQUIC をブロックし、HTTP/2 を強制する

コンプライアンスとプライバシー

  • 従業員への通知 - ネットワークトラフィックが検査対象であることをユーザーに通知します
  • プライバシー上の除外 - 医療、金融、法的に秘匿特権のあるトラフィックを除外します
  • データの取り扱い - 検査で得られた平文は、不必要に記録または保存してはなりません
  • GDPR への準拠 - 暗号化された個人データを処理する法的根拠を文書化します
  • 証明書ピンニング - HPKP または組み込みのピンを使用するアプリケーションの除外リストを維持します

ベストプラクティス

  • まずログ記録から開始 - 検出のみのモードでデプロイし、証明書ピンニングを使用するアプリケーションを特定します
  • 例外リストを維持 - 復号をバイパスする必要があるアプリケーションのリストを厳選して管理します
  • QUIC をブロック - UDP/443 をブロックし、TLS 検査を通じて HTTP/2 を使用するよう強制します
  • 証明書エラーを監視 - ファイアウォールのログで復号エラーを追跡します
  • TLS 1.2 を最小バージョンに設定 - TLS 1.2 以上を必須とし、SSLv3 と TLS 1.0/1.1 をブロックします
  • 鍵を保護 - 本番環境では、検査 CA の秘密鍵を HSM に保管します
  • CA を定期的にローテーション - 有効期限が切れる前に、CA 証明書のローテーションを計画します

参考資料

コメント