ghost-scan-code skill
scripts애플리케이션 및 라이브러리에서 SQL injection, XSS, BOLA와 같은 보안 취약점을 식별하기 위해 SAST 코드 스캔을 수행합니다.
- GitHub 스타
- 441
- 파일
- 12
- 마지막 커밋
- 2026년 9월 28일
- 라이선스
- apache-2.0
- 허용된 도구
- 6
ghost-scan-code skill은 무엇을 하나요?
ghost-scan-code은(는) agent skill입니다. 애플리케이션 및 라이브러리에서 SQL injection, XSS, BOLA와 같은 보안 취약점을 식별하기 위해 SAST 코드 스캔을 수행합니다.
skill의 SKILL.md에서 생성된 요약입니다.
ghost-scan-code skill 정보
ghost-scan-code는 백엔드, 프론트엔드, 모바일 애플리케이션 또는 라이브러리를 개발하는 개발자가 소스 코드에 대한 보안 감사를 수행할 수 있도록 지원합니다. 이 SKILL은 계획 및 타겟 스캔 실행을 통해 SQL injection, XSS, BOLA, BFLA, SSRF와 같은 취약점을 식별합니다. 사용자가 코드베이스의 보안 결함을 찾기 위해 SAST 스캔이나 취약점 평가가 필요한 경우에 사용하도록 설계되었습니다.
에이전트는 이 SKILL을 로드하여 계획, 파일 지명 및 분석을 포함하는 다단계 프로세스를 수행합니다. 프로젝트 유형을 특정 취약점 벡터에 매핑하기 위해 loop.sh 및 criteria/index.yaml과 같은 내부 스크립트를 활용합니다. 프로세스 결과로 생성된 분석 결과는 전용 디렉토리에 정리되어 저장되며, 확인된 이슈와 거부된 이슈로 분류됩니다. 사용자는 스캔 강도를 quick, balanced, full 단계로 지정하여 제어할 수 있으나, full 스캔은 높은 토큰 사용량으로 인해 명시적인 확인이 필요합니다.
이 도구는 저장소를 검사하기 위해 Read, Write, Edit, Glob, Grep, Bash를 포함한 표준 파일 시스템 및 셸 기능을 활용합니다. 또한 계획, 지명 및 분석을 추적하는 구조화된 디렉토리 시스템을 통해 자체 상태를 관리합니다.
agent가 수행할 수 있는 작업
- 1전체 보안 감사 수행저장소에 대해 포괄적인 SAST 스캔을 수행하여 OWASP 취약점을 찾습니다.
- 2라이브러리의 특정 결함 스캔라이브러리에서 prototype pollution, unsafe deserialization 또는 ReDoS와 같은 이슈를 확인합니다.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
ghost-scan-code skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.플러그인에 ghost-scan-code skill 설치
/plugin marketplace add ghostsecurity/skills /plugin install ghost@ghost-security
Claude Code에 ghost-scan-code skill 설치
~/.claude/skills/ghost-scan-code/SKILL.md
$ npx degit ghostsecurity/skills/plugins/ghost/skills/scan-code ~/.claude/skills/ghost-scan-codeClaude Code (project)에 ghost-scan-code skill 설치
.claude/skills/ghost-scan-code/SKILL.md
$ npx degit ghostsecurity/skills/plugins/ghost/skills/scan-code .claude/skills/ghost-scan-codeCodex에 ghost-scan-code skill 설치
~/.agents/skills/ghost-scan-code/SKILL.md
$ npx degit ghostsecurity/skills/plugins/ghost/skills/scan-code ~/.agents/skills/ghost-scan-codeGemini CLI에 ghost-scan-code skill 설치
~/.gemini/skills/ghost-scan-code/SKILL.md
$ npx degit ghostsecurity/skills/plugins/ghost/skills/scan-code ~/.gemini/skills/ghost-scan-codeClaude.ai에 ghost-scan-code skill 설치
npx degit ghostsecurity/skills/plugins/ghost/skills/scan-code ghost-scan-code && zip -r ghost-scan-code.zip ghost-scan-code # claude.ai → Customize → Skills → + → Create skill → Upload a skill → ghost-scan-code.zip
자동 검사
2026년 11월 15일에 실행됨전체 보고서 →아직 검증되지 않았습니다. 스킬은 점수 80, 심각한 발견 없음, 검사에 충분한 데이터가 필요합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능ghostsecurity/skills/plugins/ghost/skills/scan-code is public and reachablegithub.com/ghostsecurity/skills/tree/HEAD/plugins/ghost/skil ↗통과
- 오픈 소스 라이선스 (OSI)apache-2.0spdx.org/licenses/apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit 2026-09-28github.com/ghostsecurity/skills/commits ↗통과
- 스크립트에 다운로드 후 실행이나 자격 증명 탈취가 없음1 script read; no download-and-run, remote eval, base64 execution or credential upload통과
- SKILL.md에 숨겨진 지침 없음No override phrases, safeguard switches, credential requests or hidden charactersgithub.com/ghostsecurity/skills/blob/HEAD/plugins/ghost/skil ↗통과
- 사전 허용 도구가 제한됨Bash lets the agent run any shell command without askinggithub.com/ghostsecurity/skills/blob/HEAD/plugins/ghost/skil ↗결함 발견
- SKILL.md가 Agent Skills 형식을 따름name "ghost-scan-code" differs from the folder "scan-code"github.com/ghostsecurity/skills/blob/HEAD/plugins/ghost/skil ↗결함 발견
SKILL.md
GitHub에서 보기Find Issues
You find security issues in a repository. This skill plans which vulnerability vectors to scan, then executes those scans against each project.
Inputs
- depth:
quick(default),balanced, orfull— override via$ARGUMENTS
$ARGUMENTS
Note: Arguments passed can be used to customize the scan workflow if provided. For example, if the user specifies a specific set of vectors, count of vectors, specific candidate files, areas to focus on, count of candidate files, etc., ensure the relevant details are passed to the relevant steps in the skill.
Supporting files
- Loop script: scripts/loop.sh
- Scan criteria: criteria/index.yaml
Step 1: Setup
Compute the repo-specific output directory:
repo_name=$(basename "$(pwd)") && remote_url=$(git remote get-url origin 2>/dev/null || pwd) && short_hash=$(printf '%s' "$remote_url" | git hash-object --stdin | cut -c1-8) && repo_id="${repo_name}-${short_hash}" && short_sha=$(git rev-parse --short HEAD 2>/dev/null || date +%Y%m%d) && ghost_repo_dir="$HOME/.ghost/repos/${repo_id}" && scan_dir="${ghost_repo_dir}/scans/${short_sha}/code" && cache_dir="${ghost_repo_dir}/cache" && mkdir -p "$scan_dir" && echo "scan_dir=$scan_dir cache_dir=$cache_dir"
- Read
$cache_dir/repo.md— if missing, run the repo-context skill first and then continue. - Read criteria/index.yaml to get the valid agent→vector mappings per project type
- Set
depthtoquickif not provided - If
depthisfull, warn the user that a full scan uses significantly more tokens and ask them to confirm before proceeding. If they decline, fall back tobalanced.
Step 2: Plan Scans
If $scan_dir/plan.md already exists, skip to the next step.
Otherwise, run the planner using scripts/loop.sh:
bash <path-to-loop.sh> $scan_dir planner.md "- depth: <depth>
- arguments: <relevant argument overrides if any, otherwise omit>" 1 $cache_dir
Use a 10-minute timeout. If the command times out, re-run it — the script resumes from where it left off. If it fails 3 times consecutively with the same error, stop and report the failure.
Verify: $scan_dir/plan.md exists and contains at least one ## Project: section before proceeding.
Step 3: Nominate Files
If $scan_dir/nominations.md does not exist, generate it by reading $scan_dir/plan.md and for each project section (## Project: <base_path> (<type>)), parse the Recommended Scans table. For each row, extract the Agent and Vector columns. Write $scan_dir/nominations.md - one line per (project, agent, vector) combination. Skip projects with empty scan tables.
# Nominations
- [ ] <base_path> (<type>) | <agent> | <vector>
- [ ] <base_path> (<type>) | <agent> | <vector>
...
If $scan_dir/nominations.md already exists, change every top level task - [x] to - [ ]. Keep all indented lines/subtasks beneath each item unchanged.
Run nomination script
Using scripts/loop.sh:
bash <path-to-loop.sh> $scan_dir nominator.md "- depth: <depth>
- arguments: <relevant argument overrides if any, otherwise omit>" 5 $cache_dir
Use a 10-minute timeout. If the command times out, re-run it — the script resumes from where it left off. If it fails 3 times consecutively with the same error, stop and report the failure.
Verify: $scan_dir/nominations.md contains at least one - [x] line before proceeding.
Step 4: Analyze Nominated Files
Read $scan_dir/nominations.md. For each candidate file under a checked - [x] line, append to $scan_dir/analyses.md (skip candidates already listed in analyses.md).
- [ ] <base_path> (<type>) | <agent> | <vector> | <candidate_file>
Create the findings directory:
mkdir -p $scan_dir/findings
Run analysis script
Using scripts/loop.sh:
bash <path-to-loop.sh> $scan_dir analyzer.md "" 5 $cache_dir
Use a 10-minute timeout. If the command times out, re-run it — the script resumes from where it left off. If it fails 3 times consecutively with the same error, stop and report the failure.
Verify: $scan_dir/analyses.md contains at least one - [x] line before proceeding.
Step 5: Verify Findings
List all .md files in $scan_dir/findings/. If none exist, write a no-findings.md summary and stop.
Using scripts/loop.sh:
bash <path-to-loop.sh> $scan_dir verifier.md "" 5 $cache_dir
Use a 10-minute timeout. If the command times out, re-run it — the script resumes from where it left off. If it fails 3 times consecutively with the same error, stop and report the failure.
Completion
After all steps complete, report the scan results:
- List all finding files in
$scan_dir/findings/ - Count verified vs rejected findings
- Present a summary to the user
이 스킬의 파일
12ghost-scan-code skill 질문
Claude Code에 ghost-scan-code skill을 어떻게 설치하나요?
npx degit ghostsecurity/skills/plugins/ghost/skills/scan-code ~/.claude/skills/ghost-scan-code를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
ghost-scan-code skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
이 도구는 어떤 유형의 보안 취약점을 찾을 수 있나요?
SQL injection, XSS, BOLA, BFLA, SSRF, prototype pollution, unsafe deserialization, ReDoS, path traversal, zip slip 등의 문제를 스캔합니다.
전체 스캔(full scan)을 선택하면 어떻게 되나요?
전체 스캔은 토큰을 훨씬 더 많이 사용하므로, 에이전트가 경고를 표시하고 진행하기 전에 확인을 요청합니다.