mcpField
S
security

security

github.com/travisjneumanセキュリティ106144 回インストール1 日前に更新
リポジトリ

security について

セキュリティや開発チーム向けの情報セキュリティリファレンスで、サイバーセキュリティ、インシデント対応、セキュリティアーキテクチャを扱います。脆弱性管理、アクセス制御、OWASP のリスク、アプリケーションおよびサプライチェーンの安全対策をまとめています。

主な機能

  1. 01セキュリティアーキテクチャとクラウド制御
  2. 02脆弱性評価とパッチ管理
  3. 03ID・特権アクセス管理
  4. 04OWASP Top 10 の例
  5. 05SAST、DAST、サプライチェーン対策

活用シーン

  1. 01組織のセキュリティアーキテクチャ策定
  2. 02脆弱性修正プロセスの構築
  3. 03アプリケーションコードの一般的なリスク確認
  4. 04セキュリティ研修と指標の計画

インストール

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

$npx skills add https://github.com/travisjneuman/.claude --skill security

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

同梱ファイル

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

references/
fortune50-information-security.md
incident-response.md
security-frameworks.md

詳細

情報セキュリティ専門家

サイバーセキュリティ、インシデント対応、セキュリティアーキテクチャのための包括的なセキュリティフレームワークです。

セキュリティアーキテクチャ

ゼロトラストアーキテクチャ
ZERO TRUST PRINCIPLES:
- Never trust, always verify
- Assume breach
- Verify explicitly
- Least privilege access
- Micro-segmentation

ZERO TRUST COMPONENTS:

IDENTITY:
- Strong authentication (MFA)
- Identity governance
- Privileged access management
- Continuous validation

DEVICES:
- Device health verification
- Endpoint detection and response
- Mobile device management
- Asset inventory

NETWORK:
- Micro-segmentation
- Software-defined perimeter
- Encrypted communications
- Network access control

APPLICATIONS:
- Application-level authentication
- API security
- Web application firewall
- Secure coding practices

DATA:
- Data classification
- Encryption at rest and in transit
- Data loss prevention
- Access controls
多層防御
SECURITY LAYERS:

PHYSICAL:
- Data center security
- Badge access
- Surveillance
- Environmental controls

PERIMETER:
- Firewalls
- IDS/IPS
- DMZ
- VPN

NETWORK:
- Segmentation
- Encryption
- Network monitoring
- NAC

HOST:
- Endpoint protection
- Host-based firewall
- Hardening
- Patch management

APPLICATION:
- WAF
- Secure coding
- Input validation
- Authentication

DATA:
- Encryption
- DLP
- Access controls
- Backup/recovery
クラウドセキュリティ
ドメイン対策
IDSSO、MFA、PAM、IAM ポリシー
コンピュート強化済みイメージ、コンテナーセキュリティ
ネットワークVPC、セキュリティグループ、WAF
ストレージ暗号化、アクセス ポリシー、バックアップ
ロギングCloudTrail、SIEM 連携
コンプライアンスConfig ルール、自動修復

詳細なセキュリティフレームワーク(NIST、ISO 27001、CIS Controls、MITRE ATT&CK)については、セキュリティフレームワークリファレンスを参照してください。

脆弱性管理

脆弱性管理プロセス
LIFECYCLE:

1. DISCOVERY
   - Asset inventory
   - Vulnerability scanning
   - Penetration testing
   - Code analysis

2. PRIORITIZATION
   - CVSS scoring
   - Asset criticality
   - Exploit availability
   - Business context

3. REMEDIATION
   - Patch management
   - Configuration changes
   - Compensating controls
   - Risk acceptance

4. VERIFICATION
   - Rescan
   - Validation testing
   - Documentation
   - Reporting

5. REPORTING
   - Executive dashboards
   - Trend analysis
   - Compliance reporting
   - SLA tracking
CVSS スコアリング
スコア深刻度SLA 目標
9.0-10.0緊急7 日
7.0-8.9高30 日
4.0-6.9中90 日
0.1-3.9低可能な限り対応
パッチ管理
PATCH PROCESS:

1. IDENTIFICATION
   - Vendor announcements
   - Vulnerability feeds
   - Security bulletins

2. ASSESSMENT
   - Applicability
   - Risk evaluation
   - Test requirements

3. TESTING
   - Lab validation
   - Compatibility testing
   - Rollback planning

4. DEPLOYMENT
   - Pilot group
   - Phased rollout
   - Monitoring

5. VERIFICATION
   - Confirm installation
   - Functional testing
   - Documentation

ID・アクセス管理

IAM フレームワーク
IAM COMPONENTS:

IDENTITY LIFECYCLE:
- Provisioning
- Modification
- De-provisioning
- Certification

AUTHENTICATION:
- Password policies
- Multi-factor authentication
- Single sign-on
- Passwordless

AUTHORIZATION:
- Role-based access (RBAC)
- Attribute-based access (ABAC)
- Least privilege
- Separation of duties

GOVERNANCE:
- Access reviews
- Policy enforcement
- Audit logging
- Compliance reporting
特権アクセス管理
PAM CONTROLS:

VAULT:
- Credential storage
- Password rotation
- Secrets management

SESSION:
- Session recording
- Just-in-time access
- Time-limited credentials

MONITORING:
- Activity logging
- Behavioral analytics
- Alert on anomalies

GOVERNANCE:
- Access certification
- Policy enforcement
- Compliance reporting

セキュリティ意識向上

セキュリティトレーニングプログラム
トピック頻度対象
新入社員向けセキュリティオンボーディング全従業員
年次更新毎年全従業員
フィッシング対策意識四半期ごと全従業員
開発者向けセキュリティ毎年開発チーム
経営幹部向け説明会四半期ごとリーダーシップ
役割別必要に応じて特定の役割
フィッシングシミュレーション
SIMULATION PROGRAM:

FREQUENCY: Monthly

DIFFICULTY LEVELS:
- Easy: Generic, obvious errors
- Medium: Branded, some personalization
- Hard: Targeted, well-crafted

METRICS:
- Click rate
- Report rate
- Training completion
- Trend over time

RESPONSE:
- Click → Immediate training
- Report → Positive reinforcement
- Repeat offenders → Additional training

セキュリティ指標

主なセキュリティ指標
カテゴリ指標目標
脆弱性30 日を超えて未解決の重大な脆弱性0
パッチ適用SLA 以内にパッチ適用されたシステム95%+
インシデント平均検知時間<24 時間
アクセス孤立アカウント0
トレーニング修了率95%+
フィッシングクリック率<5%
セキュリティダッシュボード
EXECUTIVE DASHBOARD:

RISK POSTURE:
- Overall risk score
- Risk trend
- Top risks

COMPLIANCE:
- Framework coverage
- Audit findings
- Remediation status

OPERATIONS:
- Incident summary
- Vulnerability status
- Patching compliance

INVESTMENT:
- Budget utilization
- Tool effectiveness
- Headcount

脅威インテリジェンス

脅威インテリジェンスの情報源
種類情報源用途
戦略業界レポート、地政学的情報経営幹部向け説明会
戦術TTP、マルウェア分析検知ルール
運用IOC、キャンペーンアクティブな対応
技術シグネチャ、ハッシュ自動ブロック

詳細なインシデント対応プロセスと SOC 運用については、インシデント対応リファレンスを参照してください。

参考資料


OWASP Top 10(コード例付き)

1. アクセス制御の不備
# WRONG - No authorization check
@app.get("/api/users/{user_id}/data")
async def get_user_data(user_id: str):
    return db.get_user_data(user_id)  # Any user can access any data

# RIGHT - Verify ownership
@app.get("/api/users/{user_id}/data")
async def get_user_data(user_id: str, current_user: User = Depends(get_current_user)):
    if current_user.id != user_id and not current_user.is_admin:
        raise HTTPException(status_code=403, detail="Forbidden")
    return db.get_user_data(user_id)
2. 暗号化の失敗
# WRONG - Weak hashing
import hashlib
password_hash = hashlib.md5(password.encode()).hexdigest()

# RIGHT - Use bcrypt or argon2
from passlib.context import CryptContext
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
password_hash = pwd_context.hash(password)
verified = pwd_context.verify(password, password_hash)
3. インジェクション
# WRONG - SQL injection via string formatting
query = f"SELECT * FROM users WHERE email = '{email}'"
cursor.execute(query)

# RIGHT - Parameterized queries
cursor.execute("SELECT * FROM users WHERE email = %s", (email,))

# WRONG - Command injection via unsanitized input
# Never pass user input to shell commands directly
# Always use subprocess with list arguments:

# RIGHT - Safe subprocess usage
import subprocess
subprocess.run(["convert", user_filename, "output.png"], check=True)
4. 安全でない設計
# WRONG - No rate limiting on password reset
@app.post("/api/reset-password")
async def reset_password(email: str):
    send_reset_email(email)

# RIGHT - Rate limit + CAPTCHA
@app.post("/api/reset-password")
@limiter.limit("3/hour")
async def reset_password(email: str, captcha: str):
    if not verify_captcha(captcha):
        raise HTTPException(400, "Invalid CAPTCHA")
    send_reset_email(email)
5. セキュリティ設定の不備
# WRONG - Debug mode in production, exposing stack traces
# RIGHT - Environment-aware configuration
app = FastAPI(debug=os.getenv("ENV") == "development")

@app.exception_handler(Exception)
async def handle_error(request, exc):
    logger.error(f"Unhandled error: {exc}", exc_info=True)
    return JSONResponse(status_code=500, content={"error": "Internal server error"})
6. 脆弱なコンポーネント
# Audit dependencies regularly
npm audit
pip audit
cargo audit
# Pin versions, use lockfiles (package-lock.json, Pipfile.lock, Cargo.lock)
7. 認証の失敗
// WRONG - JWT with no expiration, weak secret
const token = jwt.sign(payload, "secret123");

// RIGHT - Short expiry, strong secret, refresh tokens
const token = jwt.sign(payload, process.env.JWT_SECRET, {
  expiresIn: "15m",
  algorithm: "RS256",
  issuer: "my-app",
});
8. ソフトウェアとデータの整合性の失敗
# Pin action versions in GitHub Actions (not @main)
- uses: actions/[email protected]
9. セキュリティログとモニタリングの失敗
# Log security-relevant events with structured data
logger.info("auth.login.success", extra={"user_id": user.id, "ip": request.client.host})
logger.warning("auth.login.failed", extra={"email": email, "ip": request.client.host})
logger.critical("auth.bruteforce.detected", extra={"ip": request.client.host, "attempts": count})
10. サーバーサイドリクエストフォージェリ(SSRF)
# WRONG - User controls URL without validation
# RIGHT - Allowlist domains, block internal IPs
from urllib.parse import urlparse
import ipaddress

ALLOWED_HOSTS = {"api.example.com", "cdn.example.com"}

def safe_fetch(url: str) -> Response:
    parsed = urlparse(url)
    if parsed.hostname not in ALLOWED_HOSTS:
        raise ValueError("Host not allowed")
    ip = ipaddress.ip_address(socket.gethostbyname(parsed.hostname))
    if ip.is_private:
        raise ValueError("Internal addresses not allowed")
    return requests.get(url, timeout=10)

静的アプリケーションセキュリティテスト(SAST)

ツール言語統合
Semgrep30 以上の言語CI/CD、IDE、CLI
CodeQLC/C++、Java、JS、Python、GoGitHub Actions
SonarQube30 以上の言語セルフホスト、CI/CD
BanditPython のみCLI、CI/CD
# Semgrep (recommended - fast, customizable)
semgrep scan --config auto .
semgrep scan --config p/owasp-top-ten .
semgrep scan --config p/secrets .

動的アプリケーションセキュリティテスト(DAST)

# OWASP ZAP baseline scan (passive, fast)
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \
  -t https://your-app.com

# Full scan (active, thorough)
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py \
  -t https://your-app.com

# API scan
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-api-scan.py \
  -t https://your-app.com/openapi.json -f openapi

サプライチェーンセキュリティ

Sigstore(コード署名)
# Sign container images with cosign
cosign sign --key cosign.key docker.io/myapp:latest

# Verify signatures
cosign verify --key cosign.pub docker.io/myapp:latest
SLSA(ソフトウェア成果物のサプライチェーンレベル)
レベル要件
SLSA 1ビルドプロセスが文書化されている
SLSA 2ホスト型ビルドサービス、署名付き来歴情報
SLSA 3強化されたビルドプラットフォーム、改ざん不可能な来歴情報
依存関係の管理
# Lock dependencies and audit regularly
npm ci                    # Install from lockfile only
npm audit --audit-level=high
pip-audit
cargo audit
# Use Dependabot or Renovate for automated updates

関連項目

コメント