netresearch/security-audit-skill
요약
netresearch에서 개발한 보안 감사 스킬은 OWASP Top 10, CWE Top 25 등 업계 표준을 기반으로 하는 포괄적인 자동 코드 검사 기능을 제공합니다. 이 에이전트 스킬은 PHP/TYPO3 코드를 심층적으로 스캔하며, XXE, SQL 주입, XSS 등 다양한 취약점을 식별하고 CVSS 점수 산정 및 안전 코딩 모범 사례를 제시합니다.
핵심 포인트
- OWASP Top 10, CWE Top 25 기반의 포괄적인 보안 감사 기능 제공
- PHP/TYPO3에 특화된 심층 스캔과 80개 이상의 자동 체크포인트 포함
- XXE, SQL 주입 등 주요 취약점 유형을 식별하고 위험 점수를 산정
- Claude Code, Cursor, GitHub Copilot 등 다양한 AI 에이전트에서 사용 가능
어떤 프로젝트든 적용 가능한 보안 감사 패턴(OWASP Top 10, CWE Top 25 2025, CVSS v4.0) 및 GitHub 프로젝트 보안 검사 기능. 80개 이상의 체크포인트, 41개의 참고 가이드, 그리고 PreToolUse 경고와 함께 심층적인 자동 PHP/TYPO3 코드 스캔을 제공합니다.
이것은 Anthropic이 개발한 개방 표준을 따르며 크로스 플랫폼 사용을 위해 공개된 **에이전트 스킬(Agent Skill)**입니다.
지원되는 플랫폼:
- Claude Code (Anthropic)
- Cursor
- GitHub Copilot
- 기타 에이전트 스킬 호환 AI 에이전트
스킬은 에이전트 스킬 사양을 지원하는 모든 AI 에이전트에서 작동하는 절차적 지식의 이식 가능한 패키지입니다.
취약점 평가: XXE 주입, SQL 주입, XSS, CSRF, 명령어 주입, 경로 탐색(path traversal), 파일 업로드 취약점, 안전하지 않은 역직렬화(insecure deserialization), SSRF, 타입 조작(type juggling), SSTI, JWT 결함, LDAP 주입, 이메일 헤더 주입, 세션 고정(session fixation)
위험 점수 산정: CVSS v3.1 및 v4.0 점수 산정 방법론, 위험 매트릭스 평가, 영향도 및 발생 가능성 분석, 우선순위 지정 프레임워크
안전 코딩: 입력 유효성 검사(Input validation), 출력 인코딩(output encoding), 암호화 모범 사례 (sodium), 세션 관리, 인증 패턴, 보안 헤더
표준 준수: OWASP Top 10, CWE Top 25 (2025), OWASP ASVS v4.0, 사전 예방적 통제(Proactive Controls) — 모든 프로젝트에 적용 가능
PHP/TYPO3 심층 스캔: 80개 이상의 자동 체크포인트, PHP 8.x 보안 기능, 프레임워크 패턴 (TYPO3, Symfony, Laravel)
DevSecOps: CI/CD 보안 파이프라인, SAST, 종속성 스캐닝(dependency scanning), 공급망 보안(supply chain security), SLSA
Netresearch 마켓플레이스에 한 번 추가한 후, 스킬을 탐색하고 설치하세요:
# Claude Code
/plugin marketplace add netresearch/claude-code-marketplace
/plugin install security-audit@netresearch-claude-code-marketplace
Claude Code 2.1.157부터는 플러그인 디렉토리가 개인 스킬 디렉토리 아래에 로드되므로, 이 리포지토리가 제공하는 후크(hooks)도 포함됩니다:
mkdir -p ~/.claude/skills
git clone https://github.com/netresearch/security-audit-skill.git \
~/.claude/skills/security-audit
다음 세션에서 security-audit@skills-dir로 로드됩니다.
git -C ~/.claude/skills/security-audit pull을 사용하여 업데이트하고 새 세션을 시작하세요. 디렉터리를 삭제하여 제거할 수 있습니다. 이 경로는 claude plugin update가 없습니다.
모든 Agent Skills와 호환되는 에이전트를 사용하여 설치합니다:
npx skills add https://github.com/netresearch/security-audit-skill --skill security-audit
제한 사항: npx skills는 SKILL.md-기반 스킬만 설치합니다. 이 레포지토리에는 또한 hooks도 포함되어 있지만, 이는 설치하지 않습니다. 해당 기능은 마켓플레이스나 스킬 디렉터리를 사용하세요.
최신 릴리스를 다운로드하여 에이전트의 스킬 디렉터리에 추출합니다.
git clone https://github.com/netresearch/security-audit-skill.git
composer require netresearch/security-audit-skill
netresearch/composer-agent-skill-plugin이 필요합니다.
npm install --save-dev \
@netresearch/agent-skill-coordinator \
github:netresearch/security-audit-skill
@netresearch/agent-skill-coordinator가 필요한데, 이는 node_modules에서 스킬을 발견하고 postinstall 훅을 통해 AGENTS.md에 등록합니다. pnpm의 경우, coordinator의 postinstall을 허용 목록에 추가해야 합니다:
{
"pnpm": {
"onlyBuiltDependencies": ["@netresearch/agent-skill-coordinator"]
...
}
이 스킬은 다음 상황에서 자동으로 트리거됩니다:
- 보안 평가 수행 시
- 취약점 식별 (XXE, SQL injection, XSS, CSRF, command injection)
- CVSS v3.1 또는 v4.0으로 보안 위험 점수화
- 안전한 코딩 관행 구현
- PHP 애플리케이션의 보안 문제 감사
- OWASP Top 10 취약점에 대한 코드 검토
- CI/CD 보안 파이프라인 설정
예시 질의:
- "XXE 취약점에 대해 이 코드를 감사해 주세요"
- "SQL injection 위험을 확인하세요"
- "CVSS v4.0을 사용하여 이 취약점을 점수화하세요"
- "보안 결함을 위해 인증 구현을 검토해 주세요"
- "안전한 XML 파싱을 구현하세요"
- "이 애플리케이션은 어떤 보안 헤더를 설정해야 하나요?"
security-audit-skill/
├── SECURITY.md # 보안 정책
├── hooks/
...
-
XXE (XML External Entity) 주입 탐지
-
SQL 주입 패턴 인식
-
XSS (Cross-Site Scripting) 분석
-
CSRF 보호 검증
-
명령어 주입 탐지
-
경로 순회 방지(Path traversal prevention)
-
파일 업로드 보안
-
안전하지 않은 역직렬화(Insecure deserialization)
-
SSRF 탐지
-
인증/권한 오류
-
CVSS v3.1 점수 산정 방법론
-
CVSS v4.0 점수 산정 방법론
-
위험 매트릭스 평가
-
영향도 및 발생 가능성 분석
-
우선순위 지정 프레임워크
-
입력값 검증 패턴
-
출력 인코딩 전략
-
안전한 설정(Secure configuration)
-
암호학적 모범 사례 (sodium)
-
세션 관리
-
인증 패턴 (Argon2, JWT, MFA)
-
보안 헤더 (HSTS, CSP)
-
SAST 통합 (PHPStan, Semgrep, CodeQL)
-
의존성 스캐닝 (composer audit, Trivy)
-
공급망 보안 (SLSA, Sigstore)
-
컨테이너 보안 (Hadolint, Trivy)
-
SBOM 생성 (CycloneDX)
-
비밀번호 해싱에 bcrypt/Argon2 사용 (PASSWORD_ARGON2ID)
-
세션 토큰은 암호학적으로 무작위(random_bytes)여야 함
-
세션 고정 방지 활성화 (session_regenerate_id)
-
모든 상태 변경 작업에 CSRF 토큰 적용
-
모든 보호된 리소스에 대한 권한 확인
-
인증 엔드포인트에 속도 제한(Rate limiting) 적용
-
모든 입력값은 서버 측에서 검증됨
-
모든 SQL에는 매개변수화된 쿼리 사용
-
외부 엔티티를 비활성화하여 XML 파싱 (LIBXML_NONET만 허용)
-
파일 업로드는 유형(MIME 검증) 및 크기로 제한됨
-
파일 작업 시 경로 순회 방지 적용
-
사용자 입력을 이용한 unserialize() 사용 금지
-
컨텍스트에 맞는 출력 인코딩 (htmlspecialchars) 적용
-
Content-Type 헤더가 올바르게 설정됨
-
X-Content-Type-Options: nosniff 설정
-
Content-Security-Policy 구성
-
X-Frame-Options 또는 CSP frame-ancestors 설정
-
Strict-Transport-Security (HSTS) 활성화
-
민감 데이터는 저장 시 암호화됨 (sodium_crypto_secretbox)
-
전송 중 데이터에는 TLS 1.2 이상 사용
-
비밀 정보(Secrets)를 버전 관리 시스템에 포함하지 않음
-
PII 처리 규정 준수
-
민감한 작업에 대한 감사 로깅(Audit logging)
enterprise-readiness-skill: 보안 평가를 위해 이 스킬을 참조합니다php-modernization-skill: 타입 안정성(Type safety)이 보안을 강화합니다typo3-testing-skill: 보안 테스트 패턴
저장소 루트에서 uv로 테스트를 실행하세요:
uv run scripts/test_risky_patterns.py # 훅 패턴: 예상되는 일치 및 불일치
uv run scripts/test_check_risky_command.py # 훅 입력 및 출력이 Claude Code가 사용하는 방식임
uv run scripts/test_audit_scripts.py # 테스트용 데이터(fixtures)에 대한 감사 스크립트 (bash 4+, GNU grep, jq 필요)
...
CI는 Python 3.12와 3.13에서 세 가지 테스트 스크립트를 실행합니다 (.github/workflows/ci.yml). 실패한 테스트는 이름과 실패한 단언(assertion)을 출력하며; 테스트 스크립트는 비영점 종료(non-zero exit)를 합니다. 훅이나 감사 스크립트가 변경되면 이 파일들에는 해당 테스트가 포함됩니다.
스킬 사용하기: 감사 스크립트는 bash 4+, GNU grep (grep -P) 및 find를 필요로 하며; github-security-audit.sh는 gh CLI를 필요로 합니다. 훅은 python3을 필요로 하며 표준 라이브러리만 사용합니다. composer, npm, govulncheck, 그리고 trufflehog는 선택 사항입니다: 스캐너가 command -v로 찾았을 때만 호출하며, 이 스킬은 이를 설치하지 않습니다.스킬 설치: composer.json은 netresearch/composer-agent-skill-plugin (^2.0)을 필요로 하고; package.json은 @netresearch/agent-skill-coordinator를 피어 의존성(peer dependency)으로 선언합니다. 저장소는 어느 쪽도 잠금 파일(lock file)을 커밋하지 않으며; 사용하는 프로젝트가 이를 해결합니다.개발 및 CI: scripts/validate_checkpoints.py는 PyYAML을 인라인 스크립트 메타데이터로 선언하며, 이는 uv run이 설치합니다; 테스트 스크립트는 표준 라이브러리를 사용합니다. pre-commit 훅은 .pre-commit-config.yaml에서 rev:로 고정됩니다. 워크플로우는 @main에서 netresearch/skill-repo-skill, netresearch/.github, 그리고 netresearch/typo3-ci-workflows의 재사용 가능한 워크플로우(reusable workflows)를 호출합니다; 그 안에 있는 서드파티 액션들은 해당 커밋 SHA로 고정됩니다.추적: Renovate (renovate.json, config:recommended)
pre-commit 업데이트가 활성화된 경우)는 업데이트 풀 리퀘스트를 열고, .github/workflows/auto-merge-deps.yml에 전달합니다. 풀 리퀘스트에서는 종속성 검토 및 Composer Audit이 종속성을 확인합니다 (.github/workflows/security.yml). 새로운 종속성은 아래 연결된 조직의 보안 정책의 라이선스 및 취약점 규칙을 충족해야 합니다.
이 저장소는 Netresearch 조직의 정책을 따릅니다:
- 거버넌스 (Governance): 소유권, 역할, 의사 결정 방식 및 분쟁 해결 방식, 연속성.
- 로드맵 (Roadmap): 다가오는 해에 계획된 작업과 명시적으로 제외된 작업.
- 종속성 및 코드 분석 결과 처리: 종속성 (SCA) 및 정적 분석 (SAST) 결과에 대한 임계값, 마감일 및 예외 프로세스.
- 비밀 관리 (Secret management): CI 및 릴리스 자격 증명이 저장, 액세스 및 로테이션되는 방식.
- 접근 명단 (Access roster): 이 저장소와 조직에 관리자 액세스를 보유한 사람.
이 스킬의 아키텍처(액터, 구성 요소, 데이터 흐름)는 docs/ARCHITECTURE.md에 설명되어 있으며, 보안 보증 사례(위협 모델, 신뢰 경계, 대응책 및 한계)는 docs/SECURITY-ASSURANCE.md에 있습니다. 지원되는 버전 및 취약점 보고는 SECURITY.md를 참조하십시오.
이 저장소의 모든 풀 리퀘스트에서 실행되는 검사:
보안 (Security) (.github/workflows/security.yml): Betterleaks 비밀 스캐닝, zizmor 워크플로우 분석, 종속성 검토 및 typo3-ci-workflows 보안 재사용 기능을 통해 Composer Audit 및 Opengrep SAST(결과는 조직의 정적 분석 규칙에 따름).스킬 유효성 검사 (Skill Validation) (.github/workflows/lint.yml): 스킬 구조, 플러그인 매니페스트 동기화, markdownlint, yamllint, actionlint, JSON 구문, 버전 확인, 기본 심각도 error의 ShellCheck, ruff 및 체크포인트 스키마. pre-commit 훅은 style에서 ShellCheck를 실행합니다.CI (.github/workflows/ci.yml)
):
개발(Development) 섹션에 나열된 테스트들, Eval Validation, Harness Verification, 템플릿 드리프트 체크, Labeler, 그리고 PR Quality Gates. GitHub의 기본 설정에 따른 CodeQL은 레포지토리 설정에서 구성됩니다.
워크플로우 외부에서 구성되는 항목으로는:
DCO 서명 확인, SonarCloud 코드 분석, CodeRabbit 리뷰, 그리고 인식된 비밀 정보를 포함하는 푸시를 거부하는 푸시 보호 기능을 갖춘 GitHub 시크릿 스캐닝이 있습니다.
병합(merge)을 설정하기 전에 통과해야 하는 검사 항목들은 이 레포지토리의 브랜치 보호 규칙에 있는 것이 아니라, 다른 곳에 있습니다.
본 프로젝트는 분할 라이선스를 사용합니다:
코드(스크립트, 워크플로우, 구성): MIT
콘텐츠(스킬 정의, 문서, 참고 자료): CC-BY-SA-4.0
자세한 약관은 개별 라이선스 파일을 참조하십시오.
Netresearch DTT GmbH에서 개발 및 유지보수했습니다.
Netresearch가 오픈 소스를 위해 사랑을 담아 제작했습니다
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기