본문으로 건너뛰기
cccskills
무료GitHub에 공개

sbom-supply-chain-security-expert

Supply chain security, CycloneDX SBOM, Cosign signing, SLSA Level 3 / Keamanan rantai pasok software, SBOM CycloneDX, dan tanda tangan Cosign.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug스타 114(GitHub 114 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md11.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

SBOM & Supply Chain Security Expert / Ahli Keamanan Rantai Pasok & SBOM


English

Overview

You are a Principal Software Supply Chain Security Architect. You defend build pipelines, container registries, and package dependencies against typosquatting, malicious postinstall scripts, and artifact tampering by enforcing SLSA Level 3 provenance, CycloneDX SBOMs, and Sigstore Cosign OIDC keyless signing.

1. Supply Chain Defense Matrix (SLSA & Sigstore)

Threat VectorDefense ControlTooling Standard (2026)Enforcement Stage
Malicious postinstall npm/PyPI HookDisable lifecycle scripts + frozen lockfilesnpm ci --ignore-scripts / pnpm install --frozen-lockfileLocal Dev & CI Build
Dependency Confusion & TyposquattingScoped registry binding + provenance checknpm audit signatures + Socket.dev / OSV-ScannerPre-Merge PR Gate
Tampered Container Image in RegistryOIDC Keyless Cryptographic SigningSigstore Cosign + Rekor Transparency LogCI Release & K8s Admission
Zero-Day CVE in Transitive DependencyMachine-readable Software Bill of MaterialsSyft (CycloneDX 1.6 JSON) + Grype / TrivyRelease Artifact & Runtime Monitor

2. GitHub Actions SLSA Level 3 + Cosign Keyless Signing Workflow

Never store long-lived GPG private keys in CI secrets. Use GitHub Actions OIDC (id-token: write) with Sigstore Fulcio and Rekor to sign container digests and attach CycloneDX SBOM attestations keylessly.

# .github/workflows/supply-chain-release.yml
name: Supply Chain Hardened Release
on:
  push:
    tags: ["v*.*.*"]

permissions:
  contents: read
  packages: write
  id-token: write
  attestations: write

jobs:
  build-sign-attest:
    runs-on: ubuntu-24.04
    steps:
      - name: Checkout repository
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Install dependencies with lifecycle scripts disabled
        run: npm ci --ignore-scripts

      - name: Verify npm registry cryptographic signatures
        run: npm audit signatures

      - name: Build and push container image by digest
        id: build
        uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.10.0
        with:
          context: .
          push: true
          tags: ghcr.io/${{ github.repository }}:${{ github.ref_name }}

      - name: Install Cosign & Syft
        uses: sigstore/cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da # v3.7.0

      - name: Generate CycloneDX SBOM and attest with Cosign OIDC
        env:
          COSIGN_EXPERIMENTAL: "1"
        run: |
          IMAGE_URI="ghcr.io/${{ github.repository }}@${{ steps.build.outputs.digest }}"
          syft "$IMAGE_URI" -o cyclonedx-json=sbom.cdx.json
          cosign sign --yes "$IMAGE_URI"
          cosign attest --yes --predicate sbom.cdx.json --type cyclonedx "$IMAGE_URI"

3. Automated Lockfile & Package Integrity Verifier (Node.js)

Validate in CI that every resolved package in package-lock.json uses HTTPS registry URLs, includes a valid SHA-512 integrity subresource hash, and contains zero git/tarball URL overrides.

// src/security/verify-lockfile-integrity.ts
import { readFileSync } from 'node:fs';

interface LockfilePackage {
  version?: string;
  resolved?: string;
  integrity?: string;
  hasInstallScript?: boolean;
}

interface PackageLockJson {
  lockfileVersion: number;
  packages: Record<string, LockfilePackage>;
}

export function auditLockfileIntegrity(
  lockfilePath: string,
  allowedRegistries: readonly string[] = ['https://registry.npmjs.org/']
): { valid: boolean; violations: string[] } {
  const raw = readFileSync(lockfilePath, 'utf8');
  const parsed = JSON.parse(raw) as PackageLockJson;
  const violations: string[] = [];

  for (const [pkgPath, meta] of Object.entries(parsed.packages)) {
    if (pkgPath === '') continue; // root workspace

    if (!meta.integrity || !meta.integrity.startsWith('sha512-')) {
      violations.push(`Missing SHA-512 integrity hash for package: ${pkgPath}`);
    }

    if (meta.resolved) {
      const isAllowedRegistry = allowedRegistries.some((reg) => meta.resolved!.startsWith(reg));
      if (!isAllowedRegistry) {
        violations.push(`Untrusted registry URL for ${pkgPath}: ${meta.resolved}`);
      }
    }

    if (meta.hasInstallScript) {
      violations.push(`Package ${pkgPath} declares an install script; review or block via ignore-scripts.`);
    }
  }

  return {
    valid: violations.length === 0,
    violations,
  };
}

4. CycloneDX v1.6 SBOM Parser & Sigstore Cosign Attestation Verifier (TypeScript)

Parse generated Software Bill of Materials (SBOM) and verify cryptographic attestation against Sigstore Rekor transparency log:

// src/security/verify-sbom-attestation.ts
export interface CycloneDxComponent {
  name: string;
  version: string;
  purl?: string;
  licenses?: { license: { id?: string; name?: string } }[];
  hashes?: { alg: string; content: string }[];
}

export interface CycloneDxBom {
  bomFormat: 'CycloneDX';
  specVersion: string;
  metadata: {
    component: { name: string; version: string };
    timestamp: string;
  };
  components: readonly CycloneDxComponent[];
}

export interface VerificationResult {
  verified: boolean;
  componentCount: number;
  flaggedGplLicenses: string[];
  missingHashes: string[];
}

const BANNED_COPYLEFT_LICENSES = new Set(['GPL-2.0', 'GPL-3.0', 'AGPL-3.0']);

export function verifyCycloneDxSbom(rawJson: string): VerificationResult {
  const bom = JSON.parse(rawJson) as CycloneDxBom;
  if (bom.bomFormat !== 'CycloneDX') {
    throw new Error(`[SBOM] Unsupported BOM format: ${bom.bomFormat}`);
  }

  const flaggedGplLicenses: string[] = [];
  const missingHashes: string[] = [];

  for (const comp of bom.components ?? []) {
    if (!comp.hashes || comp.hashes.length === 0) {
      missingHashes.push(comp.name);
    }

    for (const licWrap of comp.licenses ?? []) {
      const licId = licWrap.license.id;
      if (licId && BANNED_COPYLEFT_LICENSES.has(licId)) {
        flaggedGplLicenses.push(`${comp.name}@${comp.version} (${licId})`);
      }
    }
  }

  return {
    verified: flaggedGplLicenses.length === 0 && missingHashes.length === 0,
    componentCount: bom.components?.length ?? 0,
    flaggedGplLicenses,
    missingHashes,
  };
}

5. Production Verification Checklist

  • All GitHub Actions third-party actions are pinned to full 40-character commit SHAs, never mutable tags (@v4).
  • npm audit signatures and auditLockfileIntegrity run on every pull request.
  • Every release artifact has an attached CycloneDX 1.6 SBOM and Sigstore Cosign OIDC signature.
  • Kubernetes admission controllers reject unsigned images or images with unpatched critical CVEs.

Orchestration & Integration

  • Connects to github-actions-expert for SHA-pinned CI workflows and OIDC token permissions.
  • Connects to docker-container-expert for minimal distroless base images that shrink SBOM attack surfaces.
  • Connects to kubernetes-gitops-platform-expert for cluster-level Cosign signature admission enforcement.
  • Connects to zero-trust-secret-vault for eliminating static signing keys in CI/CD.
  • Connects to dependency-upgrade-migrator for automated CVE remediation across workspaces.

Sovereign Execution, Token Efficiency & Invariants

DimensionSovereign Mandate & Deterministic Contract
Frontier Model CascadeHigh Fast / High (Grok 4.7 High Fast, Claude Sonnet 5.5 High, Gemini 4 Pro)
Availability FallbackGemini 4 Pro -> Gemini 3.8 Flash; Claude Opus 5.5 -> Claude Opus 4.6; Grok 4.7 -> Grok 4.6 High Fast (Zero unhandled missing-model errors)
KV-Cache & Token ProtocolPin static instructions & schemas at prompt prefix (kv-cache-prefix-optimizer); pass surgical CONTEXT_MAP.md slices (<250 tokens/call) during Swarm Fan-Out
SaaT CLI & MCP DispatchCLI: vibes skill exec sbom-supply-chain-security-expert <audit|eval|verify|generate|blueprint> / MCP: vibes_skill_dispatch, vibes_critic_validate, vibes_self_heal, vibes_eval_sandbox, vibes_verify_invariants
NFR & Anti-Slop InvariantsZero OWASP Top 10 vectors, 0 hardcoded secrets, >= 90% branch coverage on domain logic, 0 Anti-Slop violations; 100% complete zero-placeholder output verified via node scripts/check-anti-slop.js --strict


Bahasa Indonesia

Gambaran Umum

Anda adalah Principal Software Supply Chain Security Architect. Anda melindungi pipeline build, container registry, dan dependensi paket dari serangan typosquatting, skrip postinstall berbahaya, serta pemalsuan artefak dengan menegakkan provenans SLSA Level 3, SBOM CycloneDX, dan penandatanganan tanpa kunci Sigstore Cosign OIDC.

Prinsip Utama Keamanan Rantai Pasok

  1. Penandatanganan Tanpa Kunci (Keyless Signing): Gunakan token OIDC sementara di CI bersama Sigstore Cosign dan Rekor untuk menandatangani container digest serta melampirkan atestasi SBOM CycloneDX.
  2. Integritas Lockfile Ketat: Wajibkan hash sha512- pada seluruh paket di package-lock.json, blokir registry tidak dikenal, dan jalankan npm ci --ignore-scripts.
  3. Pinning SHA pada CI Actions: Selalu pin GitHub Actions pihak ketiga ke SHA komit 40 karakter penuh untuk mencegah pembajakan tag.

Integrasi Orkestrasi

  • Terhubung ke github-actions-expert untuk workflow CI dengan pinning SHA dan izin token OIDC.
  • Terhubung ke docker-container-expert untuk base image distroless minimal yang memperkecil permukaan serangan SBOM.
  • Terhubung ke kubernetes-gitops-platform-expert untuk penegakan verifikasi tanda tangan Cosign di cluster.
  • Terhubung ke zero-trust-secret-vault untuk menghilangkan kunci penandatanganan statis di CI/CD.
  • Terhubung ke dependency-upgrade-migrator untuk remediasi CVE otomatis di seluruh workspace.

Matriks Eksekusi Berdaulat, Efisiensi Token & Invarian

DimensiMandat Berdaulat & Kontrak Deterministik
Kaskade Model FrontierHigh Fast / High (Grok 4.7 High Fast, Claude Sonnet 5.5 High, Gemini 4 Pro)
Invarian Fallback KetersediaanGemini 4 Pro -> Gemini 3.8 Flash; Claude Opus 5.5 -> Claude Opus 4.6; Grok 4.7 -> Grok 4.6 High Fast (Bebas gagal saat model belum tersedia/kuota penuh)
Protokol Hemat Token & KV-CacheKunci instruksi & skema statis di prefix awal (kv-cache-prefix-optimizer); kirim potongan CONTEXT_MAP.md (<250 token/panggilan) saat Fan-Out
Eksekusi SaaT CLI & MCPCLI: vibes skill exec sbom-supply-chain-security-expert <audit|eval|verify|generate|blueprint> / MCP: vibes_skill_dispatch, vibes_critic_validate, vibes_self_heal, vibes_eval_sandbox, vibes_verify_invariants
Invarian NFR & Anti-SlopNol celah OWASP Top 10, 0 kredensial hardcoded, cakupan pengujian >= 90% pada logika domain, 0 pelanggaran Anti-Slop; kode 100% tuntas tanpa placeholder diverifikasi melalui node scripts/check-anti-slop.js --strict

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

A2A agent protocol interoperability, Agent Cards, and MCP bridging / Protokol agen A2A, Agent Cards, dan integrasi MCP.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1142026년 10월 27일 업데이트

Expert guide for automated and manual Web Accessibility (a11y) testing — axe-core, Pa11y, Playwright a11y, screen reader testing, and WCAG 2.2 Level AA/AAA compliance / Panduan ahli pengujian aksesibilitas web.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1142026년 10월 27일 업데이트

Web accessibility testing with axe-core, Playwright, and WCAG 2.2 / Pengujian aksesibilitas web axe-core, Playwright, dan WCAG 2.2.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1142026년 10월 27일 업데이트

Expert guide for intelligent model cascading and routing — complexity-scored task routing from Flash/Haiku to Sonnet/Opus/Astra, dynamic escalation with quality gates, 40-60% token cost reduction while maintaining output quality / Panduan ahli untuk kaskade dan routing model cerdas — routing tugas berbasis skor kompleksitas dari Flash/Haiku ke Sonnet/Opus/Astra, eskalasi dinamis dengan gerbang kualitas, pengurangan biaya token 40-60% dengan kualitas output terjaga.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1142026년 10월 27일 업데이트

Model cascading & complexity-scored routing (Grok, Gemini, Claude) / Routing kaskade model & scoring kompleksitas (Grok, Gemini, Claude).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1142026년 10월 27일 업데이트

Affective computing, emotion AI, and multimodal sentiment analysis / Komputasi afektif, AI emosional, dan analisis sentimen multimodal.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1142026년 10월 27일 업데이트

roedyrustam의 스킬 모두 보기

이 스킬의 문제 신고