security-audit
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSecurity Audit Skill
Security Audit Skill
セキュリティ脆弱性を包括的に検出するスキルです。
这是一项全面检测安全漏洞的技能。
概要
概要
OWASP Top 10、CVE、セキュリティベストプラクティスに基づいて、コードとシステム設定のセキュリティ監査を実施します。
基于OWASP Top 10、CVE以及安全最佳实践,对代码和系统配置执行安全审计。
主な機能
主要功能
- OWASP Top 10 チェック: SQLインジェクション、XSS、CSRF、認証欠陥等
- 依存関係の脆弱性: 既知のCVEを持つライブラリの検出
- 機密情報漏洩: ハードコードされたAPI キー、パスワード、トークン
- 暗号化評価: 弱い暗号、不適切なハッシュアルゴリズム
- 認証・認可: JWT、OAuth、セッション管理の問題
- セキュアコーディング: インプットバリデーション、出力エスケープ
- HTTPS/TLS設定: 証明書、暗号スイート、プロトコルバージョン
- CORS/CSP設定: セキュリティヘッダーの適切性
- ファイルアップロード: 拡張子、MIME タイプ検証
- レート制限: DDoS、ブルートフォース対策
- OWASP Top 10 检查: SQL注入、XSS、CSRF、认证缺陷等
- 依赖项漏洞检测: 检测存在已知CVE的库
- 敏感信息泄露: 硬编码的API密钥、密码、令牌
- 加密评估: 弱加密、不恰当的哈希算法
- 认证与授权: JWT、OAuth、会话管理问题
- 安全编码: 输入验证、输出转义
- HTTPS/TLS配置: 证书、加密套件、协议版本
- CORS/CSP配置: 安全标头的合理性
- 文件上传: 扩展名、MIME类型验证
- 速率限制: DDoS、暴力破解防护
使用方法
使用方法
基本的なセキュリティ監査
基础安全审计
このコードのセキュリティ監査を実施:
[コード]
重点項目:
- SQLインジェクション
- XSS
- 認証・認可对这段代码执行安全审计:
[代码]
重点检查项:
- SQL注入
- XSS
- 认证与授权OWASP Top 10 スキャン
OWASP Top 10 扫描
OWASP Top 10 の観点で以下を監査:
[プロジェクトディレクトリ]
出力: 重大度別レポート从OWASP Top 10的角度审计以下内容:
[项目目录]
输出: 按严重程度分类的报告依存関係監査
依赖项审计
package.json / requirements.txt の脆弱性チェック:
既知のCVEを検出
推奨アップデート提案检查package.json / requirements.txt的漏洞:
检测已知CVE
推荐更新方案チェック項目
检查项目
1. インジェクション攻撃
1. 注入攻击
SQLインジェクション:
python
undefinedSQL注入:
python
undefined❌ 脆弱
❌ 存在漏洞
query = f"SELECT * FROM users WHERE id = {user_id}"
query = f"SELECT * FROM users WHERE id = {user_id}"
✅ 安全
✅ 安全写法
query = "SELECT * FROM users WHERE id = ?"
cursor.execute(query, (user_id,))
**コマンドインジェクション**:
```javascript
// ❌ 脆弱
exec(`ping ${userInput}`);
// ✅ 安全
execFile('ping', [userInput]);NoSQL インジェクション:
javascript
// ❌ 脆弱
db.users.find({ username: req.body.username });
// ✅ 安全
db.users.find({ username: { $eq: req.body.username } });query = "SELECT * FROM users WHERE id = ?"
cursor.execute(query, (user_id,))
**命令注入**:
```javascript
// ❌ 存在漏洞
exec(`ping ${userInput}`);
// ✅ 安全写法
execFile('ping', [userInput]);NoSQL注入:
javascript
// ❌ 存在漏洞
db.users.find({ username: req.body.username });
// ✅ 安全写法
db.users.find({ username: { $eq: req.body.username } });2. XSS (Cross-Site Scripting)
2. XSS(跨站脚本攻击)
javascript
// ❌ 脆弱
element.innerHTML = userInput;
// ✅ 安全
element.textContent = userInput;
// または
element.innerHTML = DOMPurify.sanitize(userInput);javascript
// ❌ 存在漏洞
element.innerHTML = userInput;
// ✅ 安全写法
element.textContent = userInput;
// 或者
element.innerHTML = DOMPurify.sanitize(userInput);3. 認証・セッション管理
3. 认证与会话管理
python
undefinedpython
undefined❌ 弱いパスワードハッシュ
❌ 弱密码哈希
password_hash = md5(password)
password_hash = md5(password)
✅ 強力なハッシュ
✅ 强哈希算法
password_hash = bcrypt.hashpw(password, bcrypt.gensalt(rounds=12))
password_hash = bcrypt.hashpw(password, bcrypt.gensalt(rounds=12))
❌ 予測可能なセッションID
❌ 可预测的会话ID
session_id = str(user_id) + str(time.time())
session_id = str(user_id) + str(time.time())
✅ 暗号学的に安全
✅ 符合加密安全标准
session_id = secrets.token_urlsafe(32)
undefinedsession_id = secrets.token_urlsafe(32)
undefined4. 機密情報の露出
4. 敏感信息泄露
javascript
// ❌ ハードコード
const API_KEY = "sk_live_abc123xyz";
// ✅ 環境変数
const API_KEY = process.env.API_KEY;
// ❌ ログに機密情報
console.log("User password:", password);
// ✅ 機密情報を除外
console.log("User authenticated:", userId);javascript
// ❌ 硬编码
const API_KEY = "sk_live_abc123xyz";
// ✅ 使用环境变量
const API_KEY = process.env.API_KEY;
// ❌ 日志中包含敏感信息
console.log("User password:", password);
// ✅ 排除敏感信息
console.log("User authenticated:", userId);5. アクセス制御
5. 访问控制
javascript
// ❌ 不十分な認可チェック
app.delete('/api/users/:id', (req, res) => {
User.delete(req.params.id);
});
// ✅ 適切な権限確認
app.delete('/api/users/:id', requireAuth, (req, res) => {
if (req.user.id !== req.params.id && !req.user.isAdmin) {
return res.status(403).json({ error: 'Forbidden' });
}
User.delete(req.params.id);
});javascript
// ❌ 授权检查不充分
app.delete('/api/users/:id', (req, res) => {
User.delete(req.params.id);
});
// ✅ 适当的权限验证
app.delete('/api/users/:id', requireAuth, (req, res) => {
if (req.user.id !== req.params.id && !req.user.isAdmin) {
return res.status(403).json({ error: 'Forbidden' });
}
User.delete(req.params.id);
});6. セキュリティ設定ミス
6. 安全配置错误
javascript
// ❌ 不適切なCORS
app.use(cors({ origin: '*' }));
// ✅ 適切なCORS
app.use(cors({
origin: ['https://example.com'],
credentials: true
}));
// ❌ 弱いCSP
helmet.contentSecurityPolicy({
directives: { defaultSrc: ["'unsafe-inline'", "'unsafe-eval'"] }
});
// ✅ 強力なCSP
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'"],
}
});javascript
// ❌ 不恰当的CORS配置
app.use(cors({ origin: '*' }));
// ✅ 恰当的CORS配置
app.use(cors({
origin: ['https://example.com'],
credentials: true
}));
// ❌ 弱CSP配置
helmet.contentSecurityPolicy({
directives: { defaultSrc: ["'unsafe-inline'", "'unsafe-eval'"] }
});
// ✅ 强CSP配置
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'"],
}
});出力例
输出示例
markdown
undefinedmarkdown
undefinedセキュリティ監査レポート
安全审计报告
サマリー
摘要
- Critical: 2件
- High: 5件
- Medium: 8件
- Low: 3件
- Critical: 2项
- High: 5件
- Medium: 8件
- Low: 3件
Critical 問題
Critical 问题
[CRITICAL] SQLインジェクション脆弱性
[CRITICAL] SQL注入漏洞
ファイル: api/users.py:45
問題: ユーザー入力を直接SQL クエリに埋め込んでいます
影響: データベース全体への不正アクセス、データ漏洩
CVE参照: CWE-89
脆弱なコード:
python
query = f"SELECT * FROM users WHERE username = '{username}'"修正案:
python
query = "SELECT * FROM users WHERE username = ?"
cursor.execute(query, (username,))優先度: 即時修正必須
文件: api/users.py:45
问题: 将用户输入直接嵌入SQL查询
影响: 非法访问整个数据库、数据泄露
CVE参考: CWE-89
存在漏洞的代码:
python
query = f"SELECT * FROM users WHERE username = '{username}'"修复方案:
python
query = "SELECT * FROM users WHERE username = ?"
cursor.execute(query, (username,))优先级: 必须立即修复
[CRITICAL] ハードコードされたAPI キー
[CRITICAL] 硬编码的API密钥
ファイル: config/api.js:12
問題: Stripe APIキーがコードに直接書かれています
影響: APIキーの漏洩、不正課金の可能性
現在:
javascript
const stripeKey = "sk_live_abc123xyz";推奨:
javascript
const stripeKey = process.env.STRIPE_SECRET_KEY;文件: config/api.js:12
问题: Stripe API密钥直接写入代码中
影响: API密钥泄露、可能被非法扣费
当前写法:
javascript
const stripeKey = "sk_live_abc123xyz";推荐写法:
javascript
const stripeKey = process.env.STRIPE_SECRET_KEY;High 問題
High 问题
[HIGH] 弱いパスワードハッシュ (MD5)
[HIGH] 弱密码哈希(MD5)
ファイル: auth/password.py:23
問題: MD5でパスワードをハッシュ化
影響: レインボーテーブル攻撃に脆弱
推奨: bcrypt または Argon2 使用
文件: auth/password.py:23
问题: 使用MD5对密码进行哈希
影响: 易受彩虹表攻击
推荐: 使用bcrypt 或 Argon2
[HIGH] XSS脆弱性
[HIGH] XSS漏洞
ファイル: views/profile.html:67
問題: ユーザー入力をエスケープせずに表示
影響: クロスサイトスクリプティング攻撃
文件: views/profile.html:67
问题: 未转义用户输入直接显示
影响: 跨站脚本攻击
依存関係の脆弱性
依赖项漏洞
| パッケージ | バージョン | CVE | 重大度 | 推奨 |
|---|---|---|---|---|
| lodash | 4.17.15 | CVE-2020-8203 | High | 4.17.21+ |
| axios | 0.18.0 | CVE-2020-28168 | Medium | 0.21.1+ |
| 包名 | 版本 | CVE | 严重程度 | 推荐版本 |
|---|---|---|---|---|
| lodash | 4.17.15 | CVE-2020-8203 | High | 4.17.21+ |
| axios | 0.18.0 | CVE-2020-28168 | Medium | 0.21.1+ |
推奨アクション
推荐措施
即時対応 (Critical/High):
立即处理(Critical/High):
- SQLインジェクションの修正
- ハードコードされたキーの削除
- パスワードハッシュアルゴリズムの変更
- XSS対策の実装
- 依存関係の更新
- 修复SQL注入问题
- 删除硬编码的密钥
- 更换密码哈希算法
- 实施XSS防护
- 更新依赖项
短期対応 (Medium):
短期处理(Medium):
- CORS設定の厳格化
- CSP ヘッダーの追加
- レート制限の実装
- 严格CORS配置
- 添加CSP标头
- 实现速率限制
セキュリティチェックリスト
安全检查清单
- すべてのユーザー入力を検証・サニタイズ
- パラメータ化クエリを使用
- 強力な暗号化アルゴリズム使用
- 環境変数で機密情報管理
- HTTPS強制
- セキュリティヘッダー設定
- 依存関係を最新に保つ
- エラーメッセージで情報を漏らさない
undefined- 验证并净化所有用户输入
- 使用参数化查询
- 使用强加密算法
- 通过环境变量管理敏感信息
- 强制使用HTTPS
- 配置安全标头
- 保持依赖项为最新版本
- 错误消息不泄露敏感信息
undefinedベストプラクティス
最佳实践
- 多層防御: 複数のセキュリティレイヤーを実装
- 最小権限の原則: 必要最小限の権限のみ付与
- セキュアバイデフォルト: デフォルト設定を安全に
- 定期的な監査: 継続的なセキュリティチェック
- 依存関係管理: 定期的なアップデートとスキャン
- 多层防御: 实现多个安全层级
- 最小权限原则: 仅授予必要的最小权限
- 默认安全: 默认配置设为安全状态
- 定期审计: 持续进行安全检查
- 依赖项管理: 定期更新和扫描
バージョン情報
版本信息
- スキルバージョン: 1.0.0
- 最終更新: 2025-01-22
- 技能版本: 1.0.0
- 最后更新: 2025-01-22