[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71C6HP9QWT94PVFGGXPYPCW":3,"skill-same:01M71C6HP9QWT94PVFGGXPYPCW":55},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":14,"repositoryHtmlUrl":31,"repositoryHomepageUrl":6,"ownerHtmlUrl":32,"ownerBlogUrl":6,"ownerDescription":33,"updatedAt":34,"install":35,"resources":48},"01M71C6HP9QWT94PVFGGXPYPCW","cloud-devsecops-ghaworkflows",null,"Cloud Devsecops Ghaworkflows.","DCx7C5\u002Fai-marketplace","DCx7C5","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F42419559?v=4","01M71C01G2AZV3NTNGWAWSHJPP","DC","01M71C01GQW6G50S2BYMS7PP3E",0,"MIT","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud-devsecops-ghaworkflows\u002FSKILL.md",[],[19,20,21,22],"devsecops","cloud","cloud devsecops ghaworkflows","cybersecurity","2026-11-10 10:12:30",false,"---\nname: cloud-devsecops-ghaworkflows\ndescription: \"Cloud Devsecops Ghaworkflows.\"\ndomain: cybersecurity\n---\n\n|\n| SHA Pinning | Referencing GitHub Actions by their immutable commit SHA instead of mutable version tags |\n| Script Injection | Attack where untrusted input (PR title, branch name) is interpolated into shell commands |\n| GITHUB_TOKEN | Automatically generated token with configurable permissions scoped to the current repository |\n| pull_request_target | Dangerous event trigger that runs in the base repo context with full permissions on fork PRs |\n| Environment Protection | GitHub feature requiring manual approval before jobs accessing an environment can run |\n| CODEOWNERS | File defining required reviewers for specific paths including workflow files |\n| OIDC Federation | Using GitHub's OIDC token to authenticate to cloud providers without storing long-lived credentials |\n\n## Tools & Systems\n\n- **Dependabot**: Automated dependency updater that keeps pinned action SHAs current\n- **StepSecurity Harden Runner**: GitHub Action that monitors and restricts outbound network calls from workflows\n- **actionlint**: Linter for GitHub Actions workflow files that detects security issues\n- **allstar**: GitHub App by OpenSSF that enforces security policies on repositories\n- **scorecard**: OpenSSF tool that evaluates supply chain security practices including CI\u002FCD\n\n## Common Scenarios\n\n### Scenario: Preventing Supply Chain Attack via Compromised Third-Party Action\n\n**Context**: A widely-used GitHub Action is compromised and its v3 tag is updated to include credential-stealing code. Repositories using `@v3` automatically pull the malicious version.\n\n**Approach**:\n1. Pin all actions to SHA digests immediately across all repositories\n2. Configure Dependabot for github-actions ecosystem to manage SHA updates\n3. Restrict GITHUB_TOKEN permissions so even compromised actions have minimal access\n4. Add StepSecurity harden-runner to detect anomalous outbound network calls\n5. Review all third-party actions and replace unnecessary ones with inline scripts\n6. Require CODEOWNERS approval for any changes to .github\u002Fworkflows\u002F\n\n**Pitfalls**: SHA pinning without Dependabot means missing legitimate security updates to actions. Overly restrictive permissions can break legitimate workflows. Using `pull_request_target` for label-based gating still exposes secrets if the workflow checks out PR code.\n\n## Output Format\n\n```\nGitHub Actions Security Audit\n================================\nRepository: org\u002Fweb-application\nDate: 2026-02-23\n\nWORKFLOW ANALYSIS:\n  Total workflows: 8\n  Total action references: 34\n\nSHA PINNING:\n  [FAIL] 12\u002F34 actions use mutable tags instead of SHA digests\n  - .github\u002Fworkflows\u002Fci.yml: actions\u002Fsetup-node@v4\n  - .github\u002Fworkflows\u002Fdeploy.yml: aws-actions\u002Fconfigure-aws-credentials@v4\n\nPERMISSIONS:\n  [FAIL] 3\u002F8 workflows have no explicit permissions (inherit default)\n  [WARN] 1\u002F8 workflows request write-all permissions\n\nSCRIPT INJECTION:\n  [FAIL] 2 workflow steps interpolate user input directly\n  - .github\u002Fworkflows\u002Fpr-check.yml:23: ${{ github.event.pull_request.title }}\n\nSECRETS:\n  [PASS] No secrets exposed in workflow logs\n  [PASS] All production deployments use environment protection\n\nSCORE: 6\u002F10 (Remediate 5 HIGH findings)\n```\n","|\n| SHA Pinning | Referencing GitHub Actions by their immutable commit SHA instead of mutable version tags |\n| Script Injection | Attack where untrusted input (PR title, branch name) is interpolated into shell commands |\n| GITHUB_TOKEN | Automatically generated token with configurable permissions scoped to the current repository |\n| pull_request_target | Dangerous event trigger that runs in the base repo context with full permissions on fork PRs |\n| Environment Protection | GitHub feature requiring manual approval before jobs accessing an environment can run |\n| CODEOWNERS | File defining required reviewers for specific paths including workflow files |\n| OIDC Federation | Using GitHub's OIDC token to authenticate to cloud providers without storing long-lived credentials |\n\n## Tools & Systems\n\n- **Dependabot**: Automated dependency updater that keeps pinned action SHAs current\n- **StepSecurity Harden Runner**: GitHub Action that monitors and restricts outbound network calls from workflows\n- **actionlint**: Linter for GitHub Actions workflow files that detects security issues\n- **allstar**: GitHub App by OpenSSF that enforces security policies on repositories\n- **scorecard**: OpenSSF tool that evaluates supply chain security practices including CI\u002FCD\n\n## Common Scenarios\n\n### Scenario: Preventing Supply Chain Attack via Compromised Third-Party Action\n\n**Context**: A widely-used GitHub Action is compromised and its v3 tag is updated to include credential-stealing code. Repositories using `@v3` automatically pull the malicious version.\n\n**Approach**:\n1. Pin all actions to SHA digests immediately across all repositories\n2. Configure Dependabot for github-actions ecosystem to manage SHA updates\n3. Restrict GITHUB_TOKEN permissions so even compromised actions have minimal access\n4. Add StepSecurity harden-runner to detect anomalous outbound network calls\n5. Review all third-party actions and replace unnecessary ones with inline scripts\n6. Require CODEOWNERS approval for any changes to .github\u002Fworkflows\u002F\n\n**Pitfalls**: SHA pinning without Dependabot means missing legitimate security updates to actions. Overly restrictive permissions can break legitimate workflows. Using `pull_request_target` for label-based gating still exposes secrets if the workflow checks out PR code.\n\n## Output Format\n\n```\nGitHub Actions Security Audit\n================================\nRepository: org\u002Fweb-application\nDate: 2026-02-23\n\nWORKFLOW ANALYSIS:\n  Total workflows: 8\n  Total action references: 34\n\nSHA PINNING:\n  [FAIL] 12\u002F34 actions use mutable tags instead of SHA digests\n  - .github\u002Fworkflows\u002Fci.yml: actions\u002Fsetup-node@v4\n  - .github\u002Fworkflows\u002Fdeploy.yml: aws-actions\u002Fconfigure-aws-credentials@v4\n\nPERMISSIONS:\n  [FAIL] 3\u002F8 workflows have no explicit permissions (inherit default)\n  [WARN] 1\u002F8 workflows request write-all permissions\n\nSCRIPT INJECTION:\n  [FAIL] 2 workflow steps interpolate user input directly\n  - .github\u002Fworkflows\u002Fpr-check.yml:23: ${{ github.event.pull_request.title }}\n\nSECRETS:\n  [PASS] No secrets exposed in workflow logs\n  [PASS] All production deployments use environment protection\n\nSCORE: 6\u002F10 (Remediate 5 HIGH findings)\n```\n",{"name":5,"domain":22,"description":7},"main","a91f1293287ffa9f4f1b8f486cd6e835a1568c84","skills\u002Fcloud-devsecops-ghaworkflows","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace","https:\u002F\u002Fgithub.com\u002FDCx7C5","#Python","2026-09-01 11:21:00",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add DCx7C5\u002Fai-marketplace --skill cloud-devsecops-ghaworkflows",{"tool":41,"command":42},"bunx","bunx skills add DCx7C5\u002Fai-marketplace --skill cloud-devsecops-ghaworkflows",{"tool":44,"command":45},"pnpm","pnpm dlx skills add DCx7C5\u002Fai-marketplace --skill cloud-devsecops-ghaworkflows","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud-devsecops-ghaworkflows\u002FSKILL.md",true,[49],{"path":50,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":53,"sourceHtmlUrl":54},"index.json","REFERENCE","参考文档",512,"https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud-devsecops-ghaworkflows\u002Findex.json",[56,81,104,126,148,164],{"skillNo":57,"name":58,"nameZh":6,"description":59,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":62,"publishedAt":23},"01M71HAPZ01KQ30RKTB0FFSQ05","services-wmi-persistence-detect","Detect WMI event subscription persistence by enumerating ActiveScriptEventConsumer, CommandLineEventConsumer, and permanent subscriptions in the WMI repository.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fservices\u002Fwmi\u002Fpersistence\u002Fdetect\u002FSKILL.md",[],[63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,22,80],"services","detect","services wmi persistence detect","wmi","persistence","de","cm","process","activescript","event","subscriptions","commandline-consumer","repository","subscription","event-subscription","t1546.003","forensics","process-forensics",{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":23},"01M71HAK6JTTTS229T17WJMMCG","services-wmi-exec-exploit","Perform lateral movement across Windows networks using WMI-based remote execution techniques including Impacket wmiexec.py, CrackMapExec, and native WMI commands for stealthy post-exploitation during red team engagements.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fservices\u002Fwmi\u002Fexec\u002Fexploit\u002FSKILL.md",[],[88,63,89,66,90,91,92,22,93,94,95,96,97,98,68,99,100,101,102,103],"exploit","services wmi exec exploit","exec","remote","traffic","Bash","analysis","team","across","crackmapexec","native","command","lateral movement","read","lateral-movement","Impacket",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":23},"01M71HAG6MHKNQV8KDZKMT4886","registry-artifact-extract","Extract and analyze Windows Registry hives to uncover user activity, installed software, autostart entries, and evidence of system compromise.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fregistry\u002Fartifact\u002Fextract\u002FSKILL.md",[],[111,112,113,114,115,116,22,93,117,94,118,119,68,101,120,121,122,123,124,125],"artifact","registry","registry artifact extract","extract","evidence-collection","artifact-analysis","collection","analyze","uncover","software","activity","digital-forensics","windows-registry","regripper","sonnet",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":23},"01M71HACR4A8XTWTTSXK4124AA","processes-token-impersonate-detect","Detect Windows token impersonation and privilege abuse including SeImpersonatePrivilege exploitation via Potato attacks and token stealing techniques.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fprocesses\u002Ftoken\u002Fimpersonate\u002Fdetect\u002FSKILL.md",[],[64,133,134,135,136,137,138,69,139,22,80,140,141,142,143,144,145,146,147,68],"processes token impersonate detect","token","processes","attacks","windows","escalation","techniques","privilege-escalation","seimpersonate","token-impersonation","printspoofer","exploitation","potato","impersonation","via",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":23},"01M71HAABSB4Z6QFSXEG00R4RK","processes-thread-injection-detect","Detect Windows thread injection techniques including CreateRemoteThread, QueueUserAPC, NtCreateThreadEx, and thread hijacking via process memory analysis.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fprocesses\u002Fthread\u002Finjection\u002Fdetect\u002FSKILL.md",[],[155,156,64,157,135,137,158,69,159,139,22,80,94,160,161,162,163,147,68,70],"thread","processes thread injection detect","injection","memory","process-injection","api","apc-injection","thread-injection","nt-api",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":23},"01M71HA7H311V5G14WMX58HQSS","processes-hollow-technique-detect","Detect process hollowing (RunPE) by identifying processes with mismatched image paths between PEB and VAD tree, or unmapped PE headers in memory.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fprocesses\u002Fhollow\u002Ftechnique\u002Fdetect\u002FSKILL.md",[],[171,64,135,172,158,69,173,174,22,80,175,176,177,178,179,180,68,70,181,182],"processes hollow technique detect","tree","memory-forensics","process-hollow","peb","runpe","image","pe-header","in memory","with","mismatched","headers"]