返回技能列表

security-audit-codebase

pjt222
更新于 5 days ago
10 次查看
17
2
17
在 GitHub 上查看
开发api

关于

This skill performs automated security audits of codebases to detect exposed secrets, vulnerable dependencies, and common vulnerabilities like injection flaws. It's designed for use before deployment, during periodic reviews, or when preparing for compliance audits. Key capabilities include checking for OWASP Top 10 issues and insecure configurations across the project.

快速安装

Claude Code

推荐
主要方式
npx skills add pjt222/agent-almanac -a claude-code
插件命令备选方式
/plugin add https://github.com/pjt222/agent-almanac
Git 克隆备选方式
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/security-audit-codebase

在 Claude Code 中复制并粘贴此命令以安装该技能

技能文档

程式碼倉庫安全審計

對程式碼倉庫執行系統化安全審查以識別漏洞與已洩之秘密。

適用時機

  • 發佈或部署項目前
  • 既有項目之定期安全審查
  • 新增認證、API 整合或用戶輸入處理後
  • 將私有倉庫開源前
  • 為安全合規審計作準備

輸入

  • 必要:待審計之程式碼倉庫
  • 選擇性:特定關注領域(秘密、依賴、注入、認證)
  • 選擇性:合規框架(OWASP、ISO 27001、SOC 2)
  • 選擇性:先前審計發現以供比較

步驟

步驟一:掃描已洩之秘密

搜尋指示硬編碼秘密之模式:

# API keys and tokens
grep -rn "sk-\|ghp_\|gho_\|github_pat_\|hf_\|AKIA" --include="*.{md,js,ts,py,R,json,yml,yaml}" .

# Generic secret patterns
grep -rn "password\s*=\s*['\"]" --include="*.{js,ts,py,R,json}" .
grep -rn "api[_-]key\s*[=:]\s*['\"]" --include="*.{js,ts,py,R,json}" .
grep -rn "secret\s*[=:]\s*['\"]" --include="*.{js,ts,py,R,json}" .

# Connection strings
grep -rn "postgresql://\|mysql://\|mongodb://" .

# Private keys
grep -rn "BEGIN.*PRIVATE KEY" .

預期: 無真秘密——僅佔位如 YOUR_TOKEN_HERE[email protected]

失敗時: 若找到真秘密,立即移除之、輪換已洩之憑證、並以 git filter-branchgit-filter-repo 清理 git 歷史。任何已洩秘密皆視為已洩漏。

步驟二:檢查 .gitignore 覆蓋

驗證敏感文件已被排除:

# Check that these are git-ignored
git check-ignore .env .Renviron credentials.json node_modules/

# Look for tracked sensitive files
git ls-files | grep -i "\.env\|\.renviron\|credentials\|secret"

預期: 所有敏感文件(.env.Renvironcredentials.json)列於 .gitignore 中,且 git ls-files 不返已追蹤之敏感文件。

失敗時: 若敏感文件已追蹤,執行 git rm --cached <file> 取消追蹤、加入 .gitignore 並提交。文件保留於磁碟但不再受版本控制。

步驟三:審計依賴

Node.js

npm audit
npx audit-ci --moderate

Python

pip-audit
safety check

R

# Check for known vulnerabilities in packages
# No built-in tool, but verify package sources
renv::status()

預期: 依賴中無高或關鍵漏洞。中與低漏洞已記錄供審視。

失敗時: 若找到關鍵漏洞,以 npm audit fixpip install --upgrade 立即更新受影響之套件。若更新引入破壞性變更,記錄漏洞並建立補救計劃。

步驟四:檢查注入漏洞

SQL 注入

# Look for string concatenation in queries
grep -rn "paste.*SELECT\|paste.*INSERT\|paste.*UPDATE\|paste.*DELETE" --include="*.R" .
grep -rn "query.*\+.*\|query.*\$\{" --include="*.{js,ts}" .

所有資料庫查詢應用參數化查詢,非字串串接。

命令注入

# Look for shell execution with user input
grep -rn "system\(.*paste\|exec(\|spawn(" --include="*.{R,js,ts,py}" .

XSS(跨站腳本)

# Look for unescaped user content in HTML
grep -rn "innerHTML\|dangerouslySetInnerHTML\|v-html" --include="*.{js,ts,jsx,tsx,vue}" .

預期: 無 SQL、命令或 XSS 注入向量。所有資料庫查詢用參數化語句、shell 命令避免用戶控制之輸入、HTML 輸出已正確跳脫。

失敗時: 若找到注入漏洞,將查詢中之字串串接代以參數化查詢、shell 執行前對用戶輸入消毒或跳脫、用框架安全之渲染方法而非 innerHTMLdangerouslySetInnerHTML

步驟五:審視認證與授權

清單:

  • 密碼以 bcrypt/argon2(非 MD5/SHA1)雜湊
  • 會話 token 為隨機且足夠長
  • 認證 token 有過期
  • API 端點檢查授權
  • CORS 配置嚴格
  • 變更狀態之操作啟用 CSRF 保護

預期: 所有清單項皆通過:密碼用強雜湊、token 為隨機附過期、端點強制授權、CORS 嚴格、CSRF 保護啟用。

失敗時: 依嚴重度排修正之優先:弱密碼雜湊與缺授權為關鍵;CORS 與 CSRF 問題為高。記錄所有發現附其嚴重度等級。

步驟六:檢查配置安全

# Debug mode in production configs
grep -rn "debug\s*[=:]\s*[Tt]rue\|DEBUG\s*=\s*1" --include="*.{json,yml,yaml,toml,cfg}" .

# Permissive CORS
grep -rn "Access-Control-Allow-Origin.*\*\|cors.*origin.*\*" --include="*.{js,ts}" .

# HTTP instead of HTTPS
grep -rn "http://" --include="*.{js,ts,py,R}" . | grep -v "localhost\|127.0.0.1\|http://"

預期: 生產配置中除錯模式停用、生產中 CORS 不用萬用源、所有外部 URL 用 HTTPS。

失敗時: 若生產配置中除錯模式啟用,立即停用之。將萬用 CORS 源代以明確之允許域名。將 http:// URL 更新為 https://,於端點支援之處。

步驟七:記錄發現

建立審計報告:

# Security Audit Report

**Date**: YYYY-MM-DD
**Auditor**: [Name]
**Scope**: [Repository/Project]
**Status**: [PASS/FAIL/CONDITIONAL]

## Findings Summary

| Category | Status | Details |
|----------|--------|---------|
| Exposed secrets | PASS | No secrets found |
| .gitignore | PASS | Sensitive files excluded |
| Dependencies | WARN | 2 moderate vulnerabilities |
| Injection | PASS | Parameterized queries used |
| Auth/AuthZ | N/A | No authentication in scope |
| Configuration | PASS | Debug mode disabled |

## Detailed Findings

### Finding 1: [Title]
- **Severity**: Low / Medium / High / Critical
- **Location**: `path/to/file:line`
- **Description**: What was found
- **Recommendation**: How to fix
- **Status**: Open / Resolved

## Recommendations
1. Update dependencies to fix moderate vulnerabilities
2. [Additional recommendations]

預期: 完整 SECURITY_AUDIT_REPORT.md 已儲於項目根,發現按嚴重度分類,每附具體位置、描述與建議。

失敗時: 若發現過多難以個別記錄,按類別分組並優先處理關鍵/高發現。無論結果為何皆產生報告以建立基線。

驗證

  • 源碼中無硬編碼之秘密
  • .gitignore 涵蓋所有敏感文件
  • 無高/關鍵之依賴漏洞
  • 無注入漏洞
  • 認證已正確實作(如適用)
  • 審計報告完整且發現已處理

常見陷阱

  • 僅檢查當前文件:git 歷史中之秘密仍洩漏。以 git log -p --all -S 'secret_pattern' 檢查。
  • 忽視開發依賴:開發依賴仍可能引入供應鏈風險。
  • .gitignore 之假安全感.gitignore 僅阻止未來追蹤。已提交之文件需 git rm --cached
  • 忽略配置文件docker-compose.yml、CI 配置與部署腳本常含秘密。
  • 未輪換已洩之憑證:找到並移除秘密不夠。憑證須撤銷並重新生成。

相關技能

  • configure-git-repository - 適當之 .gitignore 設置
  • write-claude-md - 記錄安全要求
  • setup-gxp-r-project - 受監管環境之安全

GitHub 仓库

pjt222/agent-almanac
路径: i18n/wenyan-lite/skills/security-audit-codebase
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

相关推荐技能

qmd

开发

这是一个本地搜索和索引的CLI工具,支持BM25、向量搜索和重排序功能。开发者可以用它快速索引本地文件(如Markdown文档)并进行混合搜索,特别适合代码库或文档的本地检索。它还提供MCP模式,能轻松集成到Claude开发环境中使用。

查看技能

subagent-driven-development

开发

该Skill用于在当前会话中执行包含独立任务的实施计划,它会为每个任务分派一个全新的子代理并在任务间进行代码审查。这种"全新子代理+任务间审查"的模式既能保障代码质量,又能实现快速迭代。适合需要在当前会话中连续执行独立任务,并希望在每个任务后都有质量把关的开发场景。

查看技能

mcporter

开发

mcporter Skill 让开发者能在Claude中直接管理和调用MCP服务器。它支持列出可用服务器、调用工具、处理OAuth认证以及管理服务器守护进程。开发者可以通过命令行式交互快速执行`mcporter list`查看服务器,或使用`mcporter call`直接调用工具,简化了MCP工作流程。

查看技能

adk-deployment-specialist

开发

这是一个用于部署和编排Google Vertex AI ADK智能体的Claude Skill,专为构建生产级多智能体系统而设计。它支持通过A2A协议进行智能体通信,提供代码执行沙箱和记忆库功能,并能处理智能体发现与任务提交。当开发者需要部署ADK智能体或编排多智能体协作时,可使用此Skill来简化Vertex AI Agent Engine的部署流程。

查看技能