Skip to content

feat: marketplace PR 자동 보안 감사 CI#4

Merged
bluejayA merged 1 commit into
mainfrom
feat/marketplace-auto-audit-ci
Apr 2, 2026
Merged

feat: marketplace PR 자동 보안 감사 CI#4
bluejayA merged 1 commit into
mainfrom
feat/marketplace-auto-audit-ci

Conversation

@bluejayA
Copy link
Copy Markdown
Owner

@bluejayA bluejayA commented Apr 2, 2026

Summary

  • marketplace에 PR 제출 시 skill-security-audit을 자동 실행하는 GitHub Actions 워크플로우 3개 추가
  • Direct (skill-audit-direct.yml): skills/** 직접 제출 PR 감사
  • Remote (skill-audit-remote.yml): marketplace.json 외부 플러그인 URL 등록 PR 감사
  • Gate (skill-audit-gate.yml): 모든 PR에서 실행, 감사 대상 안내
  • marketplace.jsonrevision (commit SHA) 필드 추가로 감사 재현성 보장
  • skill-security-audit_audit-tool/ submodule로 연결

보안 설계

  • 2-job 분리: scan (read-only) → artifact → report (write 권한) 시크릿 격리
  • Base branch checkout: audit tool을 PR HEAD가 아닌 base branch에서 가져와 변조 방어
  • URL allowlist: https://github.com/{owner}/{repo} 패턴만 허용
  • Fail-Closed: claude CLI 실패 시 BLOCKED 처리 (Fail-Open 방지)
  • Shell injection 방어: 모든 ${{ }} → env 변수 전환 + 입력값 정규식 검증
  • revision 고정: checkout 실패 시 HEAD fallback 없이 BLOCKED

3자 리뷰 반영

Codex (gpt-5.3), AIDLC Security Reviewer, AIDLC Code Reviewer 3개 리뷰어의 피드백을 반영:

  • Shell injection 전면 수정 (Critical x3)
  • URL allowlist dynamic output → JSON 파일 기반 재설계 (Critical)
  • Fail-Open → Fail-Closed 전환 (Critical)
  • verdict 판정 JSON 파싱 우선 (Important)
  • Claude CLI 버전 고정 (Minor)
  • PR 이벤트 타입 reopened 추가 (Medium)

Test plan

  • skills/test-dummy/SKILL.md 추가 PR → Direct 워크플로우 트리거 확인
  • marketplace.json 테스트 플러그인 추가 PR → Remote 워크플로우 트리거 확인
  • 관련 없는 파일 변경 PR → Gate만 실행, success 확인
  • 악성 URL 테스트 → allowlist 차단 확인
  • GitHub Secrets 설정: ANTHROPIC_API_KEY (필수), SLACK_WEBHOOK_URL (선택)

🤖 Generated with Claude Code

marketplace에 스킬/플러그인 제출 PR 시 skill-security-audit을 자동 실행하여
보안 리포트를 PR 코멘트로 게시하고 CRITICAL 시 머지를 차단한다.

- Direct (skills/**): 직접 스킬 제출 PR 감사
- Remote (marketplace.json): 외부 플러그인 URL 등록 PR 감사
- Gate: 모든 PR에서 실행, 감사 대상 안내

보안 설계:
- 2-job 분리 (scan → artifact → report)
- Audit tool은 base branch SHA에서만 checkout (변조 방어)
- URL allowlist (https://github.com/ 패턴만)
- revision(commit SHA) 필드로 감사 재현성 보장
- Shell injection 방어 (${{ }} → env 변수)
- Fail-Closed (CLI 실패 시 BLOCKED)
- 입력값 정규식 검증

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bluejayA bluejayA merged commit 8d130fb into main Apr 2, 2026
2 checks passed
@bluejayA bluejayA deleted the feat/marketplace-auto-audit-ci branch May 13, 2026 23:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant