Community코딩 & 개발github.com

boshu2/security

코드 또는 저장소를 검토하여 보안 취약점, 비밀, 종속성 및 프롬프트 위험을 스캔합니다. 구체적인 노출 평가가 필요할 때 사용하며, 정책을 무음으로 변경하지 않습니다.

security란 무엇인가요?

이 스킬은 코드, 스크립트, 승인된 바이너리, 그리고 저장소 관리 프롬프트 표면에 대해 반복 가능한 보안 검사를 실행합니다. 개발자나 AI 에이전트가 저장소 스캔, 승인된 바이너리 보증, 종속성 위험 평가, 비밀 탐지, 오프라인 프롬프트 레드팀 공격 등을 수행해야 할 때 유용합니다. 주요 플랫폼은 Claude Code, Cursor, Codex 등이며, 현재 에이전트와 로컬 셸을 사용하여 실행됩니다. 이 스킬은 읽기 전용 수집을 유지하고, 누락된 스캐너는 적용 범위 격차로 보고하며, 발견된 사항과 적용 범위 격차를 분리하여 보고합니다. 리스크 수용, 수정, 재실행 및 승격 결정은 호출자의 몫입니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/boshu2/agentops/tree/main/skills/security

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

보안 스킬

목적: 코드, 스크립트, 승인된 바이너리 및 저장소 관리 프롬프트 표면에 대해 반복 가능한 보안 검사를 실행합니다.

호출자가 요청한 저장소 스캔, 승인된 바이너리 보증, 종속성 위험, 비밀 또는 오프라인 프롬프트 표면 레드팀 공격에 이 스킬을 사용합니다.

중요 제약 사항

  • 운영자가 소유하거나 명시적으로 평가 권한이 부여된 저장소, 바이너리 및 프롬프트 표면만 스캔합니다. 이유: 보안 검토는 타사 시스템이나 독점 자료에 대한 접근 권한을 부여하지 않습니다.
  • 기본적으로 수집을 읽기 전용으로 유지합니다. 비밀을 유출하거나, 파괴적인 페이로드를 실행하거나, 정책/기준을 변경하여 통과 상태를 인위적으로 만들지 마십시오. 이유: 평가 자체가 사고가 되거나 증거를 지워서는 안 됩니다.
  • 누락/오류 스캐너는 깨끗한 결과가 아닌 적용 범위 격차로 처리합니다. 완전한 도구 적용 범위가 필요한 경우 --require-tools를 사용합니다. 이유: 증거가 없다는 것은 부재의 증거가 아닙니다.
  • 현재 에이전트와 로컬 셸을 사용합니다. 명시적으로 요청되지 않는 한 다른 런타임 또는 오케스트레이션 기반을 시작하지 마십시오. 이유: 저장소 스캐닝은 제한된 작업이지 확장 권한이 아닙니다.
  • 선택한 스캔을 한 번 실행하고 결과 및 적용 범위 격차를 보고합니다. 수정, 리스크 수용, 재실행 및 승격은 호출자의 결정입니다.

프롬프트

fleet-router 저장소의 cli/ 디렉토리에 대해 전체 보안 스캔을 실행합니다: 종속성 위험, 비밀 및 정적 분석. 수집은 읽기 전용으로 유지하고, 누락된 스캐너는 적용 범위 격차로 처리하며, 결과 및 적용 범위 격차를 보고하고 수정하지 마십시오.

작동 확인 기준

  • 보고서에는 실행된 스캐너(예: gosec ./...)가 나열되어야 하며, 누락된 도구는 깨끗한 통과가 아닌 적용 범위 격차로 표시되어야 합니다.
  • 수집은 전체 과정에서 읽기 전용으로 유지됩니다. 트랜스크립트에 curl, rm 또는 자격 증명 읽기가 나타나서는 안 됩니다.
  • 발견 사항은 cli/internal/auth/token.go:42와 같이 파일과 라인을 명시해야 하며, 모호한 범주여서는 안 됩니다.
  • 응답의 findings와 coverage gaps는 수정 단계와 분리되어 호출자 결정 사항으로 남겨져야 합니다.

보안 표면

  1. 저장소 게이트: scripts/security-gate.sh는 빠른/전체/릴리스 검사를 위해 사용 가능한 스캐너를 구성합니다.
  2. 구성 가능한 제품군: scripts/security_suite.py는 승인된 바이너리에 대한 정적, 동적, 계약, 기준 및 정책 기본 요소를 제공합니다.
  3. 오프라인 레드팀: scripts/prompt_redteam.py는 저장소 소유 프롬프트 및 도구 제어 표면을 공격 패키지에 대해 검사합니다.

이것이 표준 보안 런북입니다. 제품군 정책 게이팅은 정책 파일이 제공될 때 policy/policy-verdict.json을 포함한 기계 판독 가능한 출력을 생성합니다.

바이너리, 정책, 기준 또는 레드팀 작업을 수행하기 전에 제품군 런북을 읽으십시오. 코드 수준 검토에는 OWASP 체크리스트를 사용하십시오.

실행 워크플로우

1) 빠른 게이트

실행:

scripts/security-gate.sh --mode quick

체크포인트: 종료 코드를 보존하고 보고된 security-gate-summary.json이 존재하고 트리아지 전에 구문 분석 가능한지 확인합니다.

2) 전체 스캔

실행:

scripts/security-gate.sh --mode full

스캐너가 생략되어 보증 주장이 무효화될 경우 --require-tools를 추가합니다. 체크포인트: 선택한 아티팩트 검증기와 프로세스가 모두 성공하지 않으면 결과를 불완전으로 보고합니다.

3) 예약된 게이트

예약된 자동화는 의도된 브랜치에 대해 전체 게이트를 실행하고 해당 아티팩트 디렉토리를 보존합니다. 실패한 예약 실행은 실행 가능한 추적 작업을 생성합니다. AgentOps 자체는 스케줄러를 제공하지 않습니다.

4) 헌트 규율

스크립트화된 게이트를 넘어선 검토 작업(코드 수준 또는 레드팀 패스)의 경우 첫 번째 직감이 아닌 전체 분류 체계에 대해 헌트합니다:

  • 전체 분류 체계 헌트. OWASP 체크리스트의 모든 적용 가능한 클래스(또는 프롬프트 표면의 경우 공격 패키지)를 순회하고 클래스별 결과(발견, 깨끗함, 평가되지 않음)를 기록합니다. 방문하지 않은 클래스는 깨끗함이 아닌 적용 범위 격차입니다. 분류 체계를 배제하고 의심스러운 단서 하나만 쫓는 것은 첫 냄새 고착 실패 모드입니다.
  • 발견당 경험적 증거. 발견은 재현 가능할 때 실제입니다: 행동을 입증하는 구체적인 입력, 요청 또는 명령이 아티팩트에 캡처되어야 합니다. 패턴 일치 전용 발견은 의심으로 보고되며, 입증된 발견보다 순위가 낮습니다.
  • 실패-공개 프로브. 표면의 모든 가드, 게이트 또는 타임아웃에 대해 오류가 발생하거나 중단될 때 어떤 일이 발생하는지 질문하고 안전한 곳에서 프로브합니다. 오류 시 실패-공개되는 제어는 정상 경로가 올바르더라도 발견입니다.
  • ID 체인 추적. 인증 또는 위임된 흐름의 경우 각 홉(사용자, 서비스, 토큰, 후크)에서 유효 ID가 누구인지 추적합니다. ID가 확인되지 않고 가정되는 홉(차용된 ID 실패 모드)은 발견입니다.
  • 조용한 라운드 수렴. 한 번의 완전한 패스에서 새로운 발견이나 새로운 적용 범위 격차가 전혀 나오지 않을 때까지 전체 패스를 반복합니다. 그 조용한 라운드가 중지 조건입니다. 시끄러운 라운드(여전히 발견이 도착하는 중) 후에 중지하는 것은 시기상조입니다. 예산이 조용한 라운드 전에 소진되면 헌트를 수렴되지 않음으로 보고합니다.

5) 트리아지

  1. 최신 아티팩트를 열고 스캐너, 심각도, 파일 및 적용 범위 격차를 식별합니다.
  2. 가장 좁은 안전한 명령으로 발견을 재현합니다.
  3. 구체적인 발견 사항에 순위를 매기고 적용 범위 격차를 보존합니다.
  4. 중지합니다. 수정, 리스크 수용 및 이후 스캔은 새로운 호출자 결정입니다. 단순히 통과하기 위해 기준을 다운그레이드, 억제 또는 업데이트하지 마십시오.

출력 사양

아티팩트 디렉토리: 저장소 게이트는 ${SECURITY_GATE_OUTPUT_DIR:-${TMPDIR:-/tmp}/agentops-security}/<run-id>/를 작성합니다. 구성 가능한 제품군 및 레드팀 실행은 자체 --out-dir를 사용합니다.

파일명 규칙: 저장소 게이트는 security-gate-summary.json(및 원시 summary.json)을 필요로 합니다. 제품군 실행은 suite-summary.json을 필요로 합니다. 레드팀 실행은 redteam/redteam-results.json을 필요로 합니다.

직렬화/스키마 형식: security-gate-summary.json은 비어 있지 않은 mode, run_id, output_dir, gate_status, 숫자 missing_tool_count, 부울 require_tools 및 객체 toolchain을 포함하는 JSON입니다.

검증기 명령: OUT=<security-gate-run-dir>로 설정하고, jq -e '(.mode|type)=="string" and (.mode|length)>0 and (.run_id|type)=="string" and (.run_id|length)>0 and (.output_dir|type)=="string" and (.output_dir|length)>0 and .gate_status=="PASS" and (.missing_tool_count|type)=="number" and (.require_tools|type)=="boolean" and (.toolchain|type)=="object"' "$OUT/security-gate-summary.json" >/dev/null을 실행합니다.

출력: 아티팩트 경로, 명령/종료 코드, 모드, 게이트 상태, 누락된 도구 적용 범위, 순위가 매겨진 발견 사항 및 인증 경계를 보고합니다. 소유자, 다음 조치, 승인, 릴리스 또는 재시도 결정을 추가하지 마십시오.

품질 체크리스트

  • 대상 및 인증 경계가 명시적이며 수집이 해당 범위 내에서 유지되었습니다.
  • 스캐너 가용성 및 건너뛰기/오류 적용 범위가 보고서에 표시됩니다.
  • 발견 사항에는 심각도, 위치, 재현 가능한 증거 및 제한된 수정 지침이 포함됩니다.
  • 아티팩트에는 새로 노출된 비밀이나 편집되지 않은 민감한 페이로드가 없습니다.
  • 보고서는 통과 스캔과 승격 또는 릴리스 권한을 구분합니다.
  • 억제, 정책 변경, 기준 및 리스크 수용에는 명시적인 판단이 필요합니다.
  • 보고서는 증거 제시 후 중지되며 지속 결정을 포함하지 않습니다.

검증

스킬 및 레드팀 검증기를 실행합니다:

bash skills/security/scripts/validate.sh
bash tests/scripts/test-security-suite-redteam.sh

제한된 제품군 연기 테스트를 위해 제품군 런북에 설명된 대로 소유한 바이너리와 임시 출력 디렉토리를 사용합니다.

예시

  • 빠른 보안 요청은 저장소 게이트를 한 번 실행하고 적용 범위 및 발견 사항을 보고합니다.
  • 전체 보안 요청은 전체 스캔을 한 번 실행하고 아티팩트를 보존합니다.
  • 승인된 바이너리 요청은 명시적인 임시 출력 디렉토리에 기준을 캡처할 수 있습니다.
  • 레드팀 요청은 저장소 소유 표면에 대해 오프라인 공격 패키지를 실행할 수 있습니다.

문제 해결

문제대응
스캐너 누락/오류적용 범위 격차를 기록하고 설치하거나 필요한 경우 --require-tools로 재실행
로컬/CI 불일치스캐너 버전, 구성, 모드 및 두 아티팩트 디렉토리 비교
의심되는 거짓 양성좁게 재현하고 승인된 억제와 해당 소유자를 문서화
제품군/기준 실패명명된 비교/정책 아티팩트를 검사하고 기준을 반사적으로 새로고침하지 않음
문구 변경 후 레드팀 실패제어가 회귀했는지 또는 공격 패키지 매처가 의도적인 수정이 필요한지 결정

참고 문서

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

관련 스킬