Back to skills
SKILL.md
Infogram Yoshida Aiko Book App Project Book App Project
ASecurityPython コードのセキュリティ脆弱性を検出・分析し、ベストプラクティスを提案する skill
- 4 stars
- 0 votes
- 0 copies
- 2 views
- Added September 12, 2026
Works with
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add aibot88/sec_skill_store --skill infogram-yoshida-aiko-book-app-project-book-app-project --agent claude-codeAre you the author of Infogram Yoshida Aiko Book App Project Book App Project?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-infogram-yoshida-aiko-book-app-project-book-app-pr)---
name: security-audit
description: Python コードのセキュリティ脆弱性を検出・分析し、ベストプラクティスを提案する skill
---
# Security Audit Skill
Python コードのセキュリティをレビューするときは、このチェックリストと分析パターンを使ってください。
## セキュリティ脆弱性チェックリスト
### 入力バリデーション
- [ ] すべてのユーザー入力が検証されているか
- [ ] SQL インジェクションのリスクがないか
- [ ] ファイルパストラバーサルのリスクがないか
- [ ] バッファオーバーフローのリスクがないか
- [ ] 型チェックが適切に行われているか
### 認証・認可
- [ ] パスワードが平文で保存されていないか
- [ ] パスワードが十分なハッシュ関数(bcrypt, argon2)を使用しているか
- [ ] JWT トークンの検証が行われているか
- [ ] セッション管理が適切か
- [ ] 権限チェックが実装されているか
### 暗号化・データ保護
- [ ] 機密データが暗号化されているか
- [ ] 通信が HTTPS/TLS で保護されているか
- [ ] キーの管理が安全か(環境変数、シークレット管理)
- [ ] ログに機密情報が含まれていないか
### エラーハンドリング
- [ ] エラーメッセージが詳細すぎないか(情報漏洩のリスク)
- [ ] 例外を適切にキャッチしているか(bare except なし)
- [ ] スタックトレースが公開されていないか
### 外部依存
- [ ] サードパーティライブラリが信頼できるか
- [ ] 依存関係が最新版か(セキュリティパッチが当たっているか)
- [ ] 不要な依存関係を削除しているか
### コード実行
- [ ] eval(), exec() を使用していないか
- [ ] pickle を信頼できないデータで使用していないか
- [ ] subprocess で shell=True を使用していないか
- [ ] 動的コード生成が安全か
### ファイルアクセス
- [ ] ファイルパーミッションが適切か
- [ ] ファイルの読み書き時に例外処理をしているか
- [ ] 一時ファイルが安全に作成・削除されているか
- [ ] 機密ファイルがバージョン管理に含まれていないか
### 環境設定
- [ ] API キーがハードコードされていないか
- [ ] Debug モードが本番環境で有効になっていないか
- [ ] デフォルト認証情報を使用していないか
## セキュリティ分析パターン
### パターン 1: 入力バリデーション関数の分析
```python
# チェックするコード
def validate_and_process_user_input(user_input: str) -> dict:
"""ユーザー入力を検証して処理する."""
# 分析ポイント:
# 1. 入力の型チェックがあるか
# 2. 長さ制限があるか
# 3. 許可される文字が制限されているか
# 4. 範囲チェックがあるか
# 5. エラーハンドリングが適切か
pass
```
### パターン 2: 認証・パスワード処理の分析
```python
# チェックするコード
def hash_password(password: str) -> str:
"""パスワードをハッシュ化する."""
# 分析ポイント:
# 1. ハッシュ関数は安全か (bcrypt, argon2, scrypt vs MD5, SHA1)
# 2. ソルトが使用されているか
# 3. イテレーション回数は十分か
# 4. メモリコストの設定は適切か
pass
```
### パターン 3: 外部データ処理の分析
```python
# チェックするコード
import pickle
def load_data(filename: str):
"""ファイルからデータを読み込む."""
# 分析ポイント:
# 1. pickle を信頼できないソースで使用していないか
# 2. json, yaml, xml は安全か
# 3. シリアライゼーション方式の安全性
pass
```
## 出力フォーマット
次の形式で結果をまとめてください。
```
# Security Audit: [filename]
## 総合リスク評価: [LOW / MEDIUM / HIGH / CRITICAL]
## 検出された脆弱性
### 脆弱性 1: [タイトル]
**重大度**: [LOW / MEDIUM / HIGH / CRITICAL]
**ファイル/行番号**: [location]
**説明**: [詳細説明]
**影響**: [セキュリティへの影響]
```python
# 問題のあるコード
problematic_code()
```
**修正提案**:
```python
# 修正後のコード
fixed_code()
```
---
### 脆弱性 2: [タイトル]
[同じフォーマット]
## セキュリティベストプラクティスの実装状況
- [ ] 入力バリデーション: [完全 / 部分的 / 未実装]
- [ ] 認証: [完全 / 部分的 / 未実装]
- [ ] 暗号化: [完全 / 部分的 / 未実装]
- [ ] エラーハンドリング: [完全 / 部分的 / 未実装]
- [ ] ログ記録: [完全 / 部分的 / 未実装]
## 改善の優先順位
### 緊急 (CRITICAL)
1. [脆弱性]
### 高 (HIGH)
1. [脆弱性]
### 中 (MEDIUM)
1. [脆弱性]
### 低 (LOW)
1. [脆弱性]
## 推奨する次のステップ
1. [提案1]
2. [提案2]
3. [提案3]
```
## チェックリスト別の分析方法
### 1. パスワードセキュリティ分析
パスワード処理関数を見つけたら、以下をチェック:
- ハッシュ関数の種類
- ソルトの存在と生成方法
- ストレッチング回数
- タイミング攻撃対策
### 2. 入力バリデーション分析
外部入力を受け取るすべての場所をチェック:
- 型チェック
- 長さチェック
- 文字種チェック
- 範囲チェック
### 3. 依存関係分析
`requirements.txt` を見つけたら、以下をチェック:
- パッケージのバージョン固定方法
- セキュリティアップデートの頻度
### 4. 設定・環境分析
`.env`, `config.py` などを見つけたら:
- ハードコードされた秘密情報
- デバッグモードの有効化
- デフォルト認証情報
## 参考リソース
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
- [Python セキュリティ ベストプラクティス](https://python.readthedocs.io/en/latest/library/security_warnings.html)
- [CWE - Common Weakness Enumeration](https://cwe.mitre.org/)
- [NIST Cybersecurity Framework](https://www.nist.gov/cyberframework)
Files in this skill
- SKILL.md
- source.json
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.