[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AEEJHMSYVHCVMZF815DMKN":3,"skill-same:01M6AEEJHMSYVHCVMZF815DMKN":104},{"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":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":59,"commitSha":60,"skillDirectory":61,"forksCount":62,"repositoryHtmlUrl":63,"repositoryHomepageUrl":64,"ownerHtmlUrl":65,"ownerBlogUrl":66,"ownerDescription":67,"updatedAt":68,"install":69,"resources":82},"01M6AEEJHMSYVHCVMZF815DMKN","detecting-malicious-npm-packages",null,"Triage npm packages and lockfiles for install-script malware, credential exfiltration, and worming behavior using GuardDog, manual tarball inspection, and dynamic detonation with network\u002Ffilesystem monitoring. Use when vetting a new dependency, reviewing a package.json\u002Fpackage-lock.json during code review, checking lockfiles against a supply-chain advisory's known-bad versions, or investigating a host suspected of installing a trojanized package.","mukul975\u002FAnthropic-Cybersecurity-Skills","mukul975","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F42860185?v=4","01M6ADEQR8T5M4EEG6C67BQCWF","Mahipal","01M6ADJPMYWG1E5GM1FWBE3128",35925,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdetecting-malicious-npm-packages\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"detecting malicious npm packages","malicious","packages","npm","malware","install-scripts","guarddog","supply-chain-security","detection","network","threat-detection","exfiltration","malware-analysis","code review","static-analysis","monitoring","package","code","cybersecurity","review","2026-11-10 10:12:30",false,"---\nname: detecting-malicious-npm-packages\ndescription: Triage npm packages and lockfiles for install-script malware, credential exfiltration, and worming behavior using GuardDog, manual tarball inspection, and dynamic detonation with network\u002Ffilesystem monitoring. Use when vetting a new dependency, reviewing a package.json\u002Fpackage-lock.json during code review, checking lockfiles against a supply-chain advisory's known-bad versions, or investigating a host suspected of installing a trojanized package.\ndomain: cybersecurity\nsubdomain: supply-chain-security\ntags:\n- supply-chain-security\n- npm\n- malware-analysis\n- guarddog\n- install-scripts\n- exfiltration\n- static-analysis\n- threat-detection\nversion: '1.0'\nauthor: mahipal\nlicense: Apache-2.0\nnist_csf:\n- DE.CM-09\nmitre_attack:\n- T1195.002\n---\n# Detecting Malicious npm Packages\n\n> **Legal Notice:** Analyze packages in an isolated, disposable environment. Some malicious packages execute on install (`npm install` runs lifecycle scripts automatically) or on import. Never analyze a suspect package on a workstation with credentials, SSH keys, cloud tokens, or network access to production. This skill is for defensive analysis and authorized incident response only.\n\n## Overview\n\nThe npm registry is the largest software package ecosystem in the world and the most heavily targeted by supply-chain attackers. Malicious packages reach victims through typosquatting (`expresss`, `crossenv`), dependency confusion, account\u002Fmaintainer takeover (the 2025 Shai-Hulud worm and the `event-stream` compromise are canonical examples), and starjacking. The defining danger of npm is that `npm install` automatically runs `preinstall`, `install`, and `postinstall` lifecycle scripts with the developer's full privileges **before any application code is invoked** — so simply installing a package is enough to be compromised. Roughly 2% of npm packages use install scripts, which makes them both common and a powerful malware delivery vehicle.\n\nTypical malicious behaviors are: exfiltrating environment variables, `~\u002F.npmrc` tokens, SSH keys, and cloud credentials to an attacker-controlled URL; opening reverse shells; dropping cryptominers; reading and posting `process.env`; obfuscating payloads with base64\u002Feval; and self-propagating (worming) by stealing the maintainer's npm token and republishing trojanized versions of other packages they own.\n\nThis skill provides a repeatable triage workflow centered on **GuardDog** (Datadog's open-source heuristic scanner built on Semgrep + metadata rules), supplemented by manual tarball inspection, lockfile-based compromise checks against known-bad version lists, and dynamic detonation with network and filesystem monitoring. The goal is to decide, quickly and safely, whether a given package or a project's dependency tree contains malicious code.\n\n## When to Use\n\n- Triaging a specific npm package before adding it as a dependency.\n- Vetting a full `package.json` \u002F `package-lock.json` during code review or onboarding a third-party library.\n- Responding to a supply-chain advisory (e.g., a worm campaign) and needing to check whether your lockfiles pulled a known-bad version.\n- Investigating an endpoint or CI runner suspected of having installed a trojanized package.\n- Building a pre-install gate in CI\u002FCD that blocks packages exhibiting malicious indicators.\n\n## Prerequisites\n\n- An isolated VM or disposable container with **no production credentials** and snapshot\u002Frollback capability.\n- GuardDog:\n  ```bash\n  pip install guarddog\n  # or run via Docker without local install:\n  docker pull ghcr.io\u002Fdatadog\u002Fguarddog\n  alias guarddog='docker run --rm ghcr.io\u002Fdatadog\u002Fguarddog'\n  ```\n- Node.js + npm (use `--ignore-scripts` when downloading for analysis).\n- `jq`, `tar`, and optionally OSV-Scanner for known-vulnerability\u002Fknown-malicious cross-checks:\n  ```bash\n  go install github.com\u002Fgoogle\u002Fosv-scanner\u002Fcmd\u002Fosv-scanner@v1\n  ```\n- For dynamic analysis: a sandbox with egress logging (e.g., `tcpdump`, a DNS sink, or a network namespace).\n\n## Objectives\n\n- Statically scan an npm package (or a whole dependency tree) for malicious heuristics without executing it.\n- Identify install-script abuse, environment\u002Fcredential exfiltration, obfuscation, and silent process execution.\n- Cross-check lockfile-pinned versions against known-malicious version lists \u002F OSV.\n- Safely detonate a suspect package and observe network and filesystem behavior.\n- Extract indicators of compromise (URLs, IPs, hashes) for blocking and threat intel.\n- Produce a defensible verdict (benign \u002F suspicious \u002F malicious) with evidence.\n\n## MITRE ATT&CK Mapping\n\n| Technique ID | Technique Name | Relevance |\n|--------------|----------------|-----------|\n| T1195.002 | Supply Chain Compromise: Compromise Software Supply Chain | Core technique — trojanized npm package delivered through the registry. |\n| T1059.007 | Command and Scripting Interpreter: JavaScript | Malicious install scripts \u002F module code execute attacker JavaScript. |\n| T1552.001 | Unsecured Credentials: Credentials In Files | Packages steal `~\u002F.npmrc`, `.env`, SSH keys, and cloud credential files. |\n| T1041 | Exfiltration Over C2 Channel | Stolen secrets posted to attacker HTTP(S) endpoints. |\n| T1027 | Obfuscated Files or Information | base64\u002Feval\u002Fhex obfuscation hides the payload from review. |\n\n## Workflow\n\n### 1. Download the package without executing it\nFetch the tarball with scripts disabled so nothing runs during acquisition.\n```bash\nmkdir triage && cd triage\n# Resolve the tarball URL and download it (no install, no scripts)\nnpm pack express@4.18.2            # produces express-4.18.2.tgz\n# or for an arbitrary version:\nnpm view some-pkg@1.2.3 dist.tarball\ncurl -sL \"$(npm view some-pkg@1.2.3 dist.tarball)\" -o some-pkg.tgz\ntar -xzf some-pkg.tgz              # extracts into .\u002Fpackage\n```\n\n### 2. Scan a single package with GuardDog\nGuardDog applies metadata + source heuristics and prints which rules matched.\n```bash\n# Scan the latest published version from the registry\nguarddog npm scan express\n\n# Scan a specific version\nguarddog npm scan some-pkg --version 1.2.3\n\n# Scan the local tarball \u002F extracted directory you downloaded above\nguarddog npm scan .\u002Fsome-pkg.tgz\nguarddog npm scan .\u002Fpackage\u002F\n```\n\n### 3. Verify an entire dependency tree\n`verify` scans every dependency declared in a manifest — ideal for code review.\n```bash\nguarddog npm verify \u002Fpath\u002Fto\u002Frepo\u002Fpackage.json\n```\n\n### 4. Focus on the highest-signal heuristics\nFilter to the npm rules most indicative of malware to cut noise during triage.\n```bash\nguarddog npm scan some-pkg \\\n  --rules npm-install-script \\\n  --rules npm-serialize-environment \\\n  --rules npm-exec-base64 \\\n  --rules npm-silent-process-execution \\\n  --rules npm-obfuscation \\\n  --rules shady-links \\\n  --rules typosquatting\n```\n\n### 5. Emit machine-readable output for pipelines\nJSON for tooling, SARIF for GitHub code scanning.\n```bash\nguarddog npm scan some-pkg --output-format=json   > guarddog.json\nguarddog npm verify package.json --output-format=sarif > guarddog.sarif\n```\n\n### 6. Manually inspect lifecycle scripts and source\nLifecycle scripts are the first thing to read; obfuscation and outbound URLs are red flags.\n```bash\n# Show all lifecycle hooks\njq '.scripts' package\u002Fpackage.json\n\n# Hunt for exfiltration \u002F execution primitives in the source\ngrep -rEn \"child_process|exec\\(|spawn|eval\\(|Buffer\\.from\\(.*base64|process\\.env|https?:\u002F\u002F\" package\u002F \\\n  --include='*.js' --include='*.ts' | head -50\n```\n\n### 7. Cross-check lockfiles against known-malicious versions\nDuring an active campaign, compare pinned versions to the advisory's bad-version list, and run OSV.\n```bash\n# Extract resolved name@version pairs from a v3 lockfile\njq -r '.packages | to_entries[] | select(.key|startswith(\"node_modules\u002F\")) | \"\\(.key|ltrimstr(\"node_modules\u002F\"))@\\(.value.version)\"' package-lock.json\n\n# OSV-Scanner flags known-vulnerable AND known-malicious (MAL-) advisories\nosv-scanner --lockfile=package-lock.json\n```\n\n### 8. Detonate safely with monitoring (only if static is inconclusive)\nRun the install inside a disposable, network-monitored sandbox.\n```bash\n# In a throwaway container \u002F VM with egress capture running (tcpdump -w capture.pcap):\nnpm install .\u002Fsome-pkg.tgz            # scripts WILL run — sandbox only\n# Baseline-diff the filesystem afterwards for writes outside node_modules,\n# and inspect capture.pcap for unexpected DNS \u002F HTTP beacons.\n```\n\n### 9. Extract and operationalize IOCs\nPull URLs, IPs, and hashes for blocking and intel sharing.\n```bash\ngrep -rhoE \"https?:\u002F\u002F[a-zA-Z0-9.\u002F?=_%:-]+\" package\u002F | sort -u > urls.txt\nsha256sum some-pkg.tgz package\u002F*.js > hashes.txt\n```\n\n### 10. Run the bundled triage helper\n`agent.py` orchestrates GuardDog, lifecycle-script inspection, and IOC extraction into one report.\n```bash\npython scripts\u002Fagent.py --package some-pkg --version 1.2.3 --output verdict.json\n# or against a local tarball:\npython scripts\u002Fagent.py --tarball .\u002Fsome-pkg.tgz --output verdict.json\n```\n\n## Tools and Resources\n\n| Tool | Purpose | Source |\n|------|---------|--------|\n| GuardDog | Heuristic npm\u002FPyPI\u002FGo malware scanner | https:\u002F\u002Fgithub.com\u002FDataDog\u002Fguarddog |\n| OSV-Scanner | Known-vulnerable & known-malicious (MAL-) advisory matching | https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fosv-scanner |\n| OSV malicious DB | Open-source malicious package advisories | https:\u002F\u002Fgithub.com\u002Fossf\u002Fmalicious-packages |\n| npm lifecycle docs | preinstall\u002Finstall\u002Fpostinstall semantics | https:\u002F\u002Fdocs.npmjs.com\u002Fcli\u002Fv10\u002Fusing-npm\u002Fscripts |\n| Datadog Security Labs | npm campaign writeups & rules | https:\u002F\u002Fsecuritylabs.datadoghq.com\u002F |\n| Semgrep | Rule engine GuardDog uses for source heuristics | https:\u002F\u002Fsemgrep.dev\u002F |\n\n## Validation Criteria\n\n- [ ] Package acquired with scripts disabled in an isolated environment.\n- [ ] GuardDog `scan` run on the target version with results captured.\n- [ ] Full dependency tree run through GuardDog `verify` where applicable.\n- [ ] Lifecycle scripts (`preinstall`\u002F`install`\u002F`postinstall`) read and assessed.\n- [ ] Lockfile versions cross-checked against OSV \u002F known-bad lists.\n- [ ] Dynamic detonation performed in a sandbox if static analysis was inconclusive.\n- [ ] IOCs (URLs, IPs, hashes) extracted and recorded.\n- [ ] Documented verdict (benign \u002F suspicious \u002F malicious) with supporting evidence.\n- [ ] Malicious findings reported to the registry and shared as threat intel.\n","# Detecting Malicious npm Packages\n\n> **Legal Notice:** Analyze packages in an isolated, disposable environment. Some malicious packages execute on install (`npm install` runs lifecycle scripts automatically) or on import. Never analyze a suspect package on a workstation with credentials, SSH keys, cloud tokens, or network access to production. This skill is for defensive analysis and authorized incident response only.\n\n## Overview\n\nThe npm registry is the largest software package ecosystem in the world and the most heavily targeted by supply-chain attackers. Malicious packages reach victims through typosquatting (`expresss`, `crossenv`), dependency confusion, account\u002Fmaintainer takeover (the 2025 Shai-Hulud worm and the `event-stream` compromise are canonical examples), and starjacking. The defining danger of npm is that `npm install` automatically runs `preinstall`, `install`, and `postinstall` lifecycle scripts with the developer's full privileges **before any application code is invoked** — so simply installing a package is enough to be compromised. Roughly 2% of npm packages use install scripts, which makes them both common and a powerful malware delivery vehicle.\n\nTypical malicious behaviors are: exfiltrating environment variables, `~\u002F.npmrc` tokens, SSH keys, and cloud credentials to an attacker-controlled URL; opening reverse shells; dropping cryptominers; reading and posting `process.env`; obfuscating payloads with base64\u002Feval; and self-propagating (worming) by stealing the maintainer's npm token and republishing trojanized versions of other packages they own.\n\nThis skill provides a repeatable triage workflow centered on **GuardDog** (Datadog's open-source heuristic scanner built on Semgrep + metadata rules), supplemented by manual tarball inspection, lockfile-based compromise checks against known-bad version lists, and dynamic detonation with network and filesystem monitoring. The goal is to decide, quickly and safely, whether a given package or a project's dependency tree contains malicious code.\n\n## When to Use\n\n- Triaging a specific npm package before adding it as a dependency.\n- Vetting a full `package.json` \u002F `package-lock.json` during code review or onboarding a third-party library.\n- Responding to a supply-chain advisory (e.g., a worm campaign) and needing to check whether your lockfiles pulled a known-bad version.\n- Investigating an endpoint or CI runner suspected of having installed a trojanized package.\n- Building a pre-install gate in CI\u002FCD that blocks packages exhibiting malicious indicators.\n\n## Prerequisites\n\n- An isolated VM or disposable container with **no production credentials** and snapshot\u002Frollback capability.\n- GuardDog:\n  ```bash\n  pip install guarddog\n  # or run via Docker without local install:\n  docker pull ghcr.io\u002Fdatadog\u002Fguarddog\n  alias guarddog='docker run --rm ghcr.io\u002Fdatadog\u002Fguarddog'\n  ```\n- Node.js + npm (use `--ignore-scripts` when downloading for analysis).\n- `jq`, `tar`, and optionally OSV-Scanner for known-vulnerability\u002Fknown-malicious cross-checks:\n  ```bash\n  go install github.com\u002Fgoogle\u002Fosv-scanner\u002Fcmd\u002Fosv-scanner@v1\n  ```\n- For dynamic analysis: a sandbox with egress logging (e.g., `tcpdump`, a DNS sink, or a network namespace).\n\n## Objectives\n\n- Statically scan an npm package (or a whole dependency tree) for malicious heuristics without executing it.\n- Identify install-script abuse, environment\u002Fcredential exfiltration, obfuscation, and silent process execution.\n- Cross-check lockfile-pinned versions against known-malicious version lists \u002F OSV.\n- Safely detonate a suspect package and observe network and filesystem behavior.\n- Extract indicators of compromise (URLs, IPs, hashes) for blocking and threat intel.\n- Produce a defensible verdict (benign \u002F suspicious \u002F malicious) with evidence.\n\n## MITRE ATT&CK Mapping\n\n| Technique ID | Technique Name | Relevance |\n|--------------|----------------|-----------|\n| T1195.002 | Supply Chain Compromise: Compromise Software Supply Chain | Core technique — trojanized npm package delivered through the registry. |\n| T1059.007 | Command and Scripting Interpreter: JavaScript | Malicious install scripts \u002F module code execute attacker JavaScript. |\n| T1552.001 | Unsecured Credentials: Credentials In Files | Packages steal `~\u002F.npmrc`, `.env`, SSH keys, and cloud credential files. |\n| T1041 | Exfiltration Over C2 Channel | Stolen secrets posted to attacker HTTP(S) endpoints. |\n| T1027 | Obfuscated Files or Information | base64\u002Feval\u002Fhex obfuscation hides the payload from review. |\n\n## Workflow\n\n### 1. Download the package without executing it\nFetch the tarball with scripts disabled so nothing runs during acquisition.\n```bash\nmkdir triage && cd triage\n# Resolve the tarball URL and download it (no install, no scripts)\nnpm pack express@4.18.2            # produces express-4.18.2.tgz\n# or for an arbitrary version:\nnpm view some-pkg@1.2.3 dist.tarball\ncurl -sL \"$(npm view some-pkg@1.2.3 dist.tarball)\" -o some-pkg.tgz\ntar -xzf some-pkg.tgz              # extracts into .\u002Fpackage\n```\n\n### 2. Scan a single package with GuardDog\nGuardDog applies metadata + source heuristics and prints which rules matched.\n```bash\n# Scan the latest published version from the registry\nguarddog npm scan express\n\n# Scan a specific version\nguarddog npm scan some-pkg --version 1.2.3\n\n# Scan the local tarball \u002F extracted directory you downloaded above\nguarddog npm scan .\u002Fsome-pkg.tgz\nguarddog npm scan .\u002Fpackage\u002F\n```\n\n### 3. Verify an entire dependency tree\n`verify` scans every dependency declared in a manifest — ideal for code review.\n```bash\nguarddog npm verify \u002Fpath\u002Fto\u002Frepo\u002Fpackage.json\n```\n\n### 4. Focus on the highest-signal heuristics\nFilter to the npm rules most indicative of malware to cut noise during triage.\n```bash\nguarddog npm scan some-pkg \\\n  --rules npm-install-script \\\n  --rules npm-serialize-environment \\\n  --rules npm-exec-base64 \\\n  --rules npm-silent-process-execution \\\n  --rules npm-obfuscation \\\n  --rules shady-links \\\n  --rules typosquatting\n```\n\n### 5. Emit machine-readable output for pipelines\nJSON for tooling, SARIF for GitHub code scanning.\n```bash\nguarddog npm scan some-pkg --output-format=json   > guarddog.json\nguarddog npm verify package.json --output-format=sarif > guarddog.sarif\n```\n\n### 6. Manually inspect lifecycle scripts and source\nLifecycle scripts are the first thing to read; obfuscation and outbound URLs are red flags.\n```bash\n# Show all lifecycle hooks\njq '.scripts' package\u002Fpackage.json\n\n# Hunt for exfiltration \u002F execution primitives in the source\ngrep -rEn \"child_process|exec\\(|spawn|eval\\(|Buffer\\.from\\(.*base64|process\\.env|https?:\u002F\u002F\" package\u002F \\\n  --include='*.js' --include='*.ts' | head -50\n```\n\n### 7. Cross-check lockfiles against known-malicious versions\nDuring an active campaign, compare pinned versions to the advisory's bad-version list, and run OSV.\n```bash\n# Extract resolved name@version pairs from a v3 lockfile\njq -r '.packages | to_entries[] | select(.key|startswith(\"node_modules\u002F\")) | \"\\(.key|ltrimstr(\"node_modules\u002F\"))@\\(.value.version)\"' package-lock.json\n\n# OSV-Scanner flags known-vulnerable AND known-malicious (MAL-) advisories\nosv-scanner --lockfile=package-lock.json\n```\n\n### 8. Detonate safely with monitoring (only if static is inconclusive)\nRun the install inside a disposable, network-monitored sandbox.\n```bash\n# In a throwaway container \u002F VM with egress capture running (tcpdump -w capture.pcap):\nnpm install .\u002Fsome-pkg.tgz            # scripts WILL run — sandbox only\n# Baseline-diff the filesystem afterwards for writes outside node_modules,\n# and inspect capture.pcap for unexpected DNS \u002F HTTP beacons.\n```\n\n### 9. Extract and operationalize IOCs\nPull URLs, IPs, and hashes for blocking and intel sharing.\n```bash\ngrep -rhoE \"https?:\u002F\u002F[a-zA-Z0-9.\u002F?=_%:-]+\" package\u002F | sort -u > urls.txt\nsha256sum some-pkg.tgz package\u002F*.js > hashes.txt\n```\n\n### 10. Run the bundled triage helper\n`agent.py` orchestrates GuardDog, lifecycle-script inspection, and IOC extraction into one report.\n```bash\npython scripts\u002Fagent.py --package some-pkg --version 1.2.3 --output verdict.json\n# or against a local tarball:\npython scripts\u002Fagent.py --tarball .\u002Fsome-pkg.tgz --output verdict.json\n```\n\n## Tools and Resources\n\n| Tool | Purpose | Source |\n|------|---------|--------|\n| GuardDog | Heuristic npm\u002FPyPI\u002FGo malware scanner | https:\u002F\u002Fgithub.com\u002FDataDog\u002Fguarddog |\n| OSV-Scanner | Known-vulnerable & known-malicious (MAL-) advisory matching | https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fosv-scanner |\n| OSV malicious DB | Open-source malicious package advisories | https:\u002F\u002Fgithub.com\u002Fossf\u002Fmalicious-packages |\n| npm lifecycle docs | preinstall\u002Finstall\u002Fpostinstall semantics | https:\u002F\u002Fdocs.npmjs.com\u002Fcli\u002Fv10\u002Fusing-npm\u002Fscripts |\n| Datadog Security Labs | npm campaign writeups & rules | https:\u002F\u002Fsecuritylabs.datadoghq.com\u002F |\n| Semgrep | Rule engine GuardDog uses for source heuristics | https:\u002F\u002Fsemgrep.dev\u002F |\n\n## Validation Criteria\n\n- [ ] Package acquired with scripts disabled in an isolated environment.\n- [ ] GuardDog `scan` run on the target version with results captured.\n- [ ] Full dependency tree run through GuardDog `verify` where applicable.\n- [ ] Lifecycle scripts (`preinstall`\u002F`install`\u002F`postinstall`) read and assessed.\n- [ ] Lockfile versions cross-checked against OSV \u002F known-bad lists.\n- [ ] Dynamic detonation performed in a sandbox if static analysis was inconclusive.\n- [ ] IOCs (URLs, IPs, hashes) extracted and recorded.\n- [ ] Documented verdict (benign \u002F suspicious \u002F malicious) with supporting evidence.\n- [ ] Malicious findings reported to the registry and shared as threat intel.\n",{"name":5,"tags":52,"author":53,"domain":45,"license":15,"version":54,"nist_csf":55,"subdomain":34,"description":7,"mitre_attack":57},[34,30,39,33,32,38,41,37],"mahipal","1.0",[56],"DE.CM-09",[58],"T1195.002","main","54a798831d2266a3ca61ce68a7acb80b81160d57","skills\u002Fdetecting-malicious-npm-packages",4384,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills","https:\u002F\u002Fmahipal.engineer\u002FAnthropic-Cybersecurity-Skills\u002F","https:\u002F\u002Fgithub.com\u002Fmukul975","Mahipal.engineer","🔐 Cybersecurity | 💻 Dev | 📷 Street Photographer\r\n🎓 MSc | 📚 Research & AI Security","2026-08-31 12:32:44",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add mukul975\u002FAnthropic-Cybersecurity-Skills --skill detecting-malicious-npm-packages",{"tool":75,"command":76},"bunx","bunx skills add mukul975\u002FAnthropic-Cybersecurity-Skills --skill detecting-malicious-npm-packages",{"tool":78,"command":79},"pnpm","pnpm dlx skills add mukul975\u002FAnthropic-Cybersecurity-Skills --skill detecting-malicious-npm-packages","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdetecting-malicious-npm-packages\u002FSKILL.md",true,[83,88,94,98],{"path":84,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"LICENSE","许可证",11255,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdetecting-malicious-npm-packages\u002FLICENSE",{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fapi-reference.md","REFERENCE","参考文档",2262,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdetecting-malicious-npm-packages\u002Freferences\u002Fapi-reference.md",{"path":95,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fstandards.md",1519,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdetecting-malicious-npm-packages\u002Freferences\u002Fstandards.md",{"path":99,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":102,"sourceHtmlUrl":103},"scripts\u002Fagent.py","SCRIPT","脚本",6367,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdetecting-malicious-npm-packages\u002Fscripts\u002Fagent.py",[105,130,154,181,207,234],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":112,"publishedAt":47},"01M6AGDM3HJXTKXX15ZZ0ZVCJ3","verifying-build-provenance-with-slsa-sigstore","Verifies artifact signatures and SLSA provenance using Sigstore's cosign (verify, verify-attestation, verify-blob-attestation) and slsa-verifier (verify-artifact), enforcing keyless OIDC builder identity and source repo against SLSA Build levels. Use in CI\u002FCD before deploying artifacts, when consuming third-party attestations, establishing a SLSA Build L3 pipeline, or confirming provenance during incident response or admission control.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-build-provenance-with-slsa-sigstore\u002FSKILL.md",[111],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[113,114,115,116,117,45,118,119,120,44,121,122,123,124,34,125,126,127,128,129],"sigstore","provenance","slsa","verifying build provenance with slsa sigstore","security","incident response","identity","pr","artifacts","ci","supply-chain","pipeline","t1195","attestation","code-signing","cosign","keyless",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":137,"publishedAt":47},"01M6AGDGBPWYVZ2F11GFKJ4HZ9","validating-tpm-measured-boot-attestation","Verifies TPM 2.0 measured-boot integrity and remote attestation with tpm2-tools -- reading PCRs (tpm2_pcrread), replaying the boot event log, generating and checking signed quotes (tpm2_quote\u002Ftpm2_checkquote), and sealing secrets to a PCR policy. Use to confirm a system booted trusted firmware\u002Fkernel for Zero Trust device posture, detect boot-chain tampering via PCR drift, or build a golden-value baseline for fleet attestation.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fvalidating-tpm-measured-boot-attestation\u002FSKILL.md",[136],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[138,126,139,140,117,141,45,120,142,143,144,145,146,147,148,149,150,151,152,153],"boot","TPM","validating tpm measured boot attestation","policy","verification","ZeRO","firmware","Tools","measured-boot","PCR","integrity","secrets","remote-attestation","tpm2-tools","integrity-verification","trusted-computing",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":164,"publishedAt":47},"01M6AGDCW0Y4FXZ3362GT1941M","validating-backup-integrity-for-recovery","Validates backup integrity through cryptographic hash verification, automated restore testing, corruption detection, and recoverability checks to confirm backups are reliable for disaster recovery and ransomware response. Use before relying on backups for recovery, when building post-backup validation pipelines, auditing backup infrastructure for compliance, or checking immutable\u002Fair-gapped backups for silent corruption or tampering.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fvalidating-backup-integrity-for-recovery\u002FSKILL.md",[160,163],{"categoryNo":161,"categoryName":162,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[148,165,166,167,168,45,169,170,142,171,172,173,174,175,35,176,177,178,179,180],"backup","recovery","validating backup integrity for recovery","testing","infrastructure","validation","compliance","hash-verification","incident-response","ransomware","cryptocurrency","t1078","t1490","immutable","disaster-recovery","restore-testing",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"publishedAt":47},"01M6AGD9GBG2KZ336AE763J3WH","triaging-windows-with-kape","Runs KAPE (Kroll Artifact Parser and Extractor) to collect targeted forensic artifacts (registry hives, $MFT, event logs, prefetch, browser data) via Targets and parse them with Modules wrapping Eric Zimmerman's EZ Tools (PECmd, MFTECmd, RECmd). Use during early incident containment\u002Ftriage when full disk imaging is impractical but a defensible, parseable Windows artifact set is needed quickly, including at-scale remote collection.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-windows-with-kape\u002FSKILL.md",[187],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[189,190,191,45,192,193,194,195,196,197,198,199,200,201,202,203,145,204,205,206],"windows","kape","triaging windows with kape","registry","browser","logs","windows-forensics","dfir","mft","mftecmd","data","prefetch","eric-zimmerman","digital-forensics","SET","collection","pecmd","artifact-collection",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":211,"categories":212,"keywords":214,"publishedAt":47},"01M6AGD5PW5J4EVZM958WD74ZQ","triaging-vulnerabilities-with-ssvc-framework","Triages and prioritizes vulnerabilities with CISA's Stakeholder-Specific Vulnerability Categorization (SSVC) decision tree, weighing exploitation status (via the CISA KEV catalog and FIRST EPSS API), technical impact, automatability, and mission prevalence to output Track\u002FTrack*\u002FAttend\u002FAct decisions. Use when prioritizing vulnerability scan results (OpenVAS, Nessus, Qualys) for remediation planning beyond raw CVSS scores.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-vulnerabilities-with-ssvc-framework\u002FSKILL.md",[213],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[215,216,217,45,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233],"vulnerabilities","framework","triaging vulnerabilities with ssvc framework","status","planning","CISA","vulnerability-management","risk-management","nessus","qualys","openvas","cvss","remediation","risk","vulnerability","api","prioritization","ssvc","decision-tree",{"skillNo":235,"name":236,"nameZh":6,"description":237,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":238,"categories":239,"keywords":241,"publishedAt":47},"01M6AGD24TTQQM4CXG69E3B9TJ","triaging-security-incident","Performs initial triage of security incidents using the NIST SP 800-61r3 and SANS PICERL frameworks, classifying incident type, assigning priority by business impact, and routing to the appropriate response team. Use when a SIEM\u002FEDR alert needs human classification, concurrent alerts must be prioritized, or a user report or threat-intel IOC match requires initial incident categorization.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-security-incident\u002FSKILL.md",[240],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[117,242,45,243,244,245,246,247,248,249,250,176,251,177,252,253,254,255,256,257],"triaging security incident","siem","file","ioc","soc","NIST-800-61","NIST","severity","edr","execution","analysis","classification","severity-classification","incident-triage","SANS-PICERL","SOC-operations"]