@elizaos/skills 2.0.0-alpha.13 → 2.0.0-alpha.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -3
- package/skills/security-ask-questions-if-underspecified/SKILL.md +61 -0
- package/skills/security-audit-context-building/SKILL.md +88 -0
- package/skills/security-building-secure-contracts/SKILL.md +75 -0
- package/skills/security-burpsuite-project-parser/SKILL.md +98 -0
- package/skills/security-claude-in-chrome-troubleshooting/SKILL.md +85 -0
- package/skills/security-constant-time-analysis/SKILL.md +116 -0
- package/skills/security-culture-index/SKILL.md +77 -0
- package/skills/security-differential-review/SKILL.md +94 -0
- package/skills/security-dwarf-expert/SKILL.md +73 -0
- package/skills/security-entry-point-analyzer/SKILL.md +78 -0
- package/skills/security-firebase-apk-scanner/SKILL.md +99 -0
- package/skills/security-fix-review/SKILL.md +73 -0
- package/skills/security-insecure-defaults/SKILL.md +73 -0
- package/skills/security-modern-python/SKILL.md +114 -0
- package/skills/security-property-based-testing/SKILL.md +122 -0
- package/skills/semgrep-rule-creator/SKILL.md +108 -0
- package/skills/semgrep-rule-variant-creator/SKILL.md +122 -0
- package/skills/sharp-edges/README.md +2 -3
- package/skills/spec-to-code-compliance/SKILL.md +1 -1
- package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/SKILL.md +1 -1
- package/skills/static-analysis/README.md +1 -1
- package/skills/static-analysis/SKILL.md +3 -5
- package/skills/static-analysis/skills/sarif-parsing/SKILL.md +1 -1
- package/skills/testing-handbook-skills/SKILL.md +4 -4
- package/skills/testing-handbook-skills/skills/constant-time-testing/SKILL.md +1 -1
- package/skills/variant-analysis/SKILL.md +89 -0
- package/skills/yara-authoring/SKILL.md +111 -0
- package/skills/security-ask-questions-if-underspecified/.claude-plugin/plugin.json +0 -10
- package/skills/security-ask-questions-if-underspecified/README.md +0 -24
- package/skills/security-ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md +0 -85
- package/skills/security-audit-context-building/.claude-plugin/plugin.json +0 -10
- package/skills/security-audit-context-building/README.md +0 -58
- package/skills/security-audit-context-building/commands/audit-context.md +0 -21
- package/skills/security-audit-context-building/skills/audit-context-building/SKILL.md +0 -297
- package/skills/security-audit-context-building/skills/audit-context-building/resources/COMPLETENESS_CHECKLIST.md +0 -47
- package/skills/security-audit-context-building/skills/audit-context-building/resources/FUNCTION_MICRO_ANALYSIS_EXAMPLE.md +0 -355
- package/skills/security-audit-context-building/skills/audit-context-building/resources/OUTPUT_REQUIREMENTS.md +0 -71
- package/skills/security-building-secure-contracts/.claude-plugin/plugin.json +0 -10
- package/skills/security-building-secure-contracts/README.md +0 -241
- package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md +0 -284
- package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -405
- package/skills/security-building-secure-contracts/skills/audit-prep-assistant/SKILL.md +0 -409
- package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/SKILL.md +0 -329
- package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -722
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/SKILL.md +0 -218
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/ASSESSMENT_CRITERIA.md +0 -355
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/EXAMPLE_REPORT.md +0 -248
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/REPORT_FORMAT.md +0 -33
- package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md +0 -334
- package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -740
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/SKILL.md +0 -252
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/ASSESSMENT_AREAS.md +0 -329
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/DELIVERABLES.md +0 -118
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/EXAMPLE_REPORT.md +0 -298
- package/skills/security-building-secure-contracts/skills/secure-workflow-guide/SKILL.md +0 -161
- package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/EXAMPLE_REPORT.md +0 -279
- package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/WORKFLOW_STEPS.md +0 -132
- package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/SKILL.md +0 -389
- package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -669
- package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/SKILL.md +0 -298
- package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -791
- package/skills/security-building-secure-contracts/skills/token-integration-analyzer/SKILL.md +0 -362
- package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/ASSESSMENT_CATEGORIES.md +0 -571
- package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/REPORT_TEMPLATES.md +0 -141
- package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/SKILL.md +0 -388
- package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -595
- package/skills/security-burpsuite-project-parser/.claude-plugin/plugin.json +0 -10
- package/skills/security-burpsuite-project-parser/README.md +0 -103
- package/skills/security-burpsuite-project-parser/commands/burp-search.md +0 -18
- package/skills/security-burpsuite-project-parser/skills/SKILL.md +0 -358
- package/skills/security-burpsuite-project-parser/skills/scripts/burp-search.sh +0 -99
- package/skills/security-claude-in-chrome-troubleshooting/.claude-plugin/plugin.json +0 -8
- package/skills/security-claude-in-chrome-troubleshooting/README.md +0 -31
- package/skills/security-claude-in-chrome-troubleshooting/skills/claude-in-chrome-troubleshooting/SKILL.md +0 -251
- package/skills/security-constant-time-analysis/.claude-plugin/plugin.json +0 -9
- package/skills/security-constant-time-analysis/README.md +0 -381
- package/skills/security-constant-time-analysis/commands/ct-check.md +0 -20
- package/skills/security-constant-time-analysis/ct_analyzer/__init__.py +0 -49
- package/skills/security-constant-time-analysis/ct_analyzer/analyzer.py +0 -1284
- package/skills/security-constant-time-analysis/ct_analyzer/script_analyzers.py +0 -3081
- package/skills/security-constant-time-analysis/ct_analyzer/tests/__init__.py +0 -1
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_analyzer.py +0 -1397
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/bn_excerpt.js +0 -205
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_constant_time.c +0 -181
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.c +0 -74
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.go +0 -78
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.rs +0 -92
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.cs +0 -174
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.java +0 -161
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.kt +0 -181
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.php +0 -140
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.py +0 -252
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.rb +0 -188
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.swift +0 -199
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.ts +0 -154
- package/skills/security-constant-time-analysis/pyproject.toml +0 -52
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/README.md +0 -90
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/SKILL.md +0 -219
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/compiled.md +0 -129
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/javascript.md +0 -136
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/kotlin.md +0 -252
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/php.md +0 -172
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/python.md +0 -179
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/ruby.md +0 -198
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/swift.md +0 -288
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/vm-compiled.md +0 -354
- package/skills/security-constant-time-analysis/uv.lock +0 -8
- package/skills/security-culture-index/.claude-plugin/plugin.json +0 -8
- package/skills/security-culture-index/README.md +0 -79
- package/skills/security-culture-index/skills/interpreting-culture-index/SKILL.md +0 -293
- package/skills/security-culture-index/skills/interpreting-culture-index/references/anti-patterns.md +0 -255
- package/skills/security-culture-index/skills/interpreting-culture-index/references/conversation-starters.md +0 -408
- package/skills/security-culture-index/skills/interpreting-culture-index/references/interview-trait-signals.md +0 -253
- package/skills/security-culture-index/skills/interpreting-culture-index/references/motivators.md +0 -158
- package/skills/security-culture-index/skills/interpreting-culture-index/references/patterns-archetypes.md +0 -147
- package/skills/security-culture-index/skills/interpreting-culture-index/references/primary-traits.md +0 -307
- package/skills/security-culture-index/skills/interpreting-culture-index/references/secondary-traits.md +0 -228
- package/skills/security-culture-index/skills/interpreting-culture-index/references/team-composition.md +0 -148
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/check_deps.py +0 -108
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/__init__.py +0 -20
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/constants.py +0 -122
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/extract.py +0 -187
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/models.py +0 -16
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/opencv_extractor.py +0 -520
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/extract_pdf.py +0 -237
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/pyproject.toml +0 -18
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/burnout-report.md +0 -113
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/comparison-report.md +0 -103
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/hiring-profile.md +0 -127
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/individual-report.md +0 -85
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/predicted-profile.md +0 -165
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/team-report.md +0 -109
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/analyze-team.md +0 -188
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/coach-manager.md +0 -267
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/compare-profiles.md +0 -188
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/define-hiring-profile.md +0 -220
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/detect-burnout.md +0 -206
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/extract-from-pdf.md +0 -121
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interpret-individual.md +0 -183
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interview-debrief.md +0 -234
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/mediate-conflict.md +0 -306
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/plan-onboarding.md +0 -322
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/predict-from-interview.md +0 -250
- package/skills/security-differential-review/.claude-plugin/plugin.json +0 -10
- package/skills/security-differential-review/README.md +0 -109
- package/skills/security-differential-review/commands/diff-review.md +0 -21
- package/skills/security-differential-review/skills/differential-review/SKILL.md +0 -220
- package/skills/security-differential-review/skills/differential-review/adversarial.md +0 -203
- package/skills/security-differential-review/skills/differential-review/methodology.md +0 -234
- package/skills/security-differential-review/skills/differential-review/patterns.md +0 -300
- package/skills/security-differential-review/skills/differential-review/reporting.md +0 -369
- package/skills/security-dwarf-expert/.claude-plugin/plugin.json +0 -10
- package/skills/security-dwarf-expert/README.md +0 -38
- package/skills/security-dwarf-expert/skills/dwarf-expert/SKILL.md +0 -93
- package/skills/security-dwarf-expert/skills/dwarf-expert/reference/coding.md +0 -31
- package/skills/security-dwarf-expert/skills/dwarf-expert/reference/dwarfdump.md +0 -50
- package/skills/security-dwarf-expert/skills/dwarf-expert/reference/readelf.md +0 -8
- package/skills/security-entry-point-analyzer/.claude-plugin/plugin.json +0 -10
- package/skills/security-entry-point-analyzer/README.md +0 -74
- package/skills/security-entry-point-analyzer/commands/entry-points.md +0 -18
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/SKILL.md +0 -251
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/cosmwasm.md +0 -182
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-aptos.md +0 -107
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-sui.md +0 -87
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solana.md +0 -155
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solidity.md +0 -135
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/ton.md +0 -185
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/vyper.md +0 -141
- package/skills/security-firebase-apk-scanner/.claude-plugin/plugin.json +0 -10
- package/skills/security-firebase-apk-scanner/README.md +0 -85
- package/skills/security-firebase-apk-scanner/commands/scan-apk.md +0 -18
- package/skills/security-firebase-apk-scanner/scanner.sh +0 -1408
- package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/SKILL.md +0 -197
- package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/references/vulnerabilities.md +0 -803
- package/skills/security-fix-review/.claude-plugin/plugin.json +0 -13
- package/skills/security-fix-review/README.md +0 -118
- package/skills/security-fix-review/commands/fix-review.md +0 -24
- package/skills/security-fix-review/skills/fix-review/SKILL.md +0 -264
- package/skills/security-fix-review/skills/fix-review/references/bug-detection.md +0 -408
- package/skills/security-fix-review/skills/fix-review/references/finding-matching.md +0 -298
- package/skills/security-fix-review/skills/fix-review/references/report-parsing.md +0 -398
- package/skills/security-insecure-defaults/.claude-plugin/plugin.json +0 -10
- package/skills/security-insecure-defaults/README.md +0 -45
- package/skills/security-insecure-defaults/skills/insecure-defaults/SKILL.md +0 -117
- package/skills/security-insecure-defaults/skills/insecure-defaults/references/examples.md +0 -409
- package/skills/security-modern-python/.claude-plugin/plugin.json +0 -10
- package/skills/security-modern-python/README.md +0 -58
- package/skills/security-modern-python/hooks/hooks.json +0 -16
- package/skills/security-modern-python/hooks/intercept-legacy-python.bats +0 -388
- package/skills/security-modern-python/hooks/intercept-legacy-python.sh +0 -109
- package/skills/security-modern-python/hooks/test_helper.bash +0 -75
- package/skills/security-modern-python/skills/modern-python/SKILL.md +0 -333
- package/skills/security-modern-python/skills/modern-python/references/dependabot.md +0 -43
- package/skills/security-modern-python/skills/modern-python/references/migration-checklist.md +0 -141
- package/skills/security-modern-python/skills/modern-python/references/pep723-scripts.md +0 -259
- package/skills/security-modern-python/skills/modern-python/references/prek.md +0 -211
- package/skills/security-modern-python/skills/modern-python/references/pyproject.md +0 -254
- package/skills/security-modern-python/skills/modern-python/references/ruff-config.md +0 -240
- package/skills/security-modern-python/skills/modern-python/references/security-setup.md +0 -255
- package/skills/security-modern-python/skills/modern-python/references/testing.md +0 -284
- package/skills/security-modern-python/skills/modern-python/references/uv-commands.md +0 -200
- package/skills/security-modern-python/skills/modern-python/templates/dependabot.yml +0 -36
- package/skills/security-modern-python/skills/modern-python/templates/pre-commit-config.yaml +0 -66
- package/skills/security-property-based-testing/.claude-plugin/plugin.json +0 -9
- package/skills/security-property-based-testing/README.md +0 -47
- package/skills/security-property-based-testing/skills/property-based-testing/README.md +0 -88
- package/skills/security-property-based-testing/skills/property-based-testing/SKILL.md +0 -109
- package/skills/security-property-based-testing/skills/property-based-testing/references/design.md +0 -191
- package/skills/security-property-based-testing/skills/property-based-testing/references/generating.md +0 -200
- package/skills/security-property-based-testing/skills/property-based-testing/references/libraries.md +0 -130
- package/skills/security-property-based-testing/skills/property-based-testing/references/refactoring.md +0 -181
- package/skills/security-property-based-testing/skills/property-based-testing/references/reviewing.md +0 -209
- package/skills/security-property-based-testing/skills/property-based-testing/references/strategies.md +0 -124
- package/skills/semgrep-rule-creator/.claude-plugin/plugin.json +0 -8
- package/skills/semgrep-rule-creator/README.md +0 -43
- package/skills/semgrep-rule-creator/commands/semgrep-rule.md +0 -26
- package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/SKILL.md +0 -168
- package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/quick-reference.md +0 -203
- package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/workflow.md +0 -240
- package/skills/semgrep-rule-variant-creator/.claude-plugin/plugin.json +0 -9
- package/skills/semgrep-rule-variant-creator/README.md +0 -86
- package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/SKILL.md +0 -205
- package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/applicability-analysis.md +0 -250
- package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/language-syntax-guide.md +0 -324
- package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/workflow.md +0 -518
- package/skills/variant-analysis/.claude-plugin/plugin.json +0 -8
- package/skills/variant-analysis/README.md +0 -41
- package/skills/variant-analysis/commands/variants.md +0 -23
- package/skills/variant-analysis/skills/variant-analysis/METHODOLOGY.md +0 -327
- package/skills/variant-analysis/skills/variant-analysis/SKILL.md +0 -142
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/cpp.ql +0 -119
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/go.ql +0 -69
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/java.ql +0 -71
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/javascript.ql +0 -63
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/python.ql +0 -80
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/cpp.yaml +0 -98
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/go.yaml +0 -63
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/java.yaml +0 -61
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/javascript.yaml +0 -60
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/python.yaml +0 -72
- package/skills/variant-analysis/skills/variant-analysis/resources/variant-report-template.md +0 -75
- package/skills/yara-authoring/.claude-plugin/plugin.json +0 -9
- package/skills/yara-authoring/README.md +0 -131
- package/skills/yara-authoring/skills/yara-rule-authoring/SKILL.md +0 -645
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Mac_ProtonRAT_Jan25.yar +0 -99
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_NPM_SupplyChain_Jan25.yar +0 -170
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Win_Remcos_Jan25.yar +0 -103
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_CRX_SuspiciousPermissions.yar +0 -134
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_JS_Obfuscation_Jan25.yar +0 -185
- package/skills/yara-authoring/skills/yara-rule-authoring/references/crx-module.md +0 -214
- package/skills/yara-authoring/skills/yara-rule-authoring/references/dex-module.md +0 -383
- package/skills/yara-authoring/skills/yara-rule-authoring/references/performance.md +0 -333
- package/skills/yara-authoring/skills/yara-rule-authoring/references/strings.md +0 -433
- package/skills/yara-authoring/skills/yara-rule-authoring/references/style-guide.md +0 -257
- package/skills/yara-authoring/skills/yara-rule-authoring/references/testing.md +0 -399
- package/skills/yara-authoring/skills/yara-rule-authoring/scripts/atom_analyzer.py +0 -526
- package/skills/yara-authoring/skills/yara-rule-authoring/scripts/pyproject.toml +0 -25
- package/skills/yara-authoring/skills/yara-rule-authoring/scripts/yara_lint.py +0 -631
- package/skills/yara-authoring/skills/yara-rule-authoring/workflows/rule-development.md +0 -493
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/skills",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.130",
|
|
4
4
|
"description": "Bundled skills and skill loading utilities for elizaOS agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"build": "tsc -p tsconfig.build.json",
|
|
19
19
|
"dev": "tsgo -p tsconfig.build.json --watch --preserveWatchOutput",
|
|
20
20
|
"test": "node --test --import tsx test/*.test.ts",
|
|
21
|
-
"prepublishOnly": "
|
|
21
|
+
"prepublishOnly": "bun run clean && bun run build",
|
|
22
22
|
"lint": "bunx @biomejs/biome check --write ./src",
|
|
23
23
|
"lint:check": "bunx @biomejs/biome check ./src"
|
|
24
24
|
},
|
|
@@ -48,8 +48,11 @@
|
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"yaml": "^2.8.2"
|
|
50
50
|
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"tsx": "^4.19.2"
|
|
53
|
+
},
|
|
51
54
|
"publishConfig": {
|
|
52
55
|
"access": "public"
|
|
53
56
|
},
|
|
54
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "5bb81d353eb6fa90639f9211be1d7609b4eaddf5"
|
|
55
58
|
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-ask-questions-if-underspecified
|
|
3
|
+
description: "Ensure thorough security analysis by identifying and asking clarifying questions when requirements, threat models, or context are underspecified. Use when a security task lacks sufficient context, when threat boundaries are unclear, or when assumptions need to be validated before proceeding."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Ask Questions When Underspecified
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- A security review request lacks context about the threat model
|
|
16
|
+
- The scope of an audit or assessment is ambiguous
|
|
17
|
+
- Assumptions about trust boundaries need validation
|
|
18
|
+
- The deployment environment or architecture is unclear
|
|
19
|
+
- Risk tolerance or compliance requirements are not stated
|
|
20
|
+
|
|
21
|
+
## When NOT to Use
|
|
22
|
+
|
|
23
|
+
- Context is already sufficient to proceed with analysis
|
|
24
|
+
- The task is purely mechanical (run a scan, parse output)
|
|
25
|
+
- Questions would block urgent incident response
|
|
26
|
+
|
|
27
|
+
## Key Questions to Ask
|
|
28
|
+
|
|
29
|
+
### Before Any Security Review
|
|
30
|
+
1. What is the threat model? Who are the adversaries?
|
|
31
|
+
2. What are the trust boundaries? What input is untrusted?
|
|
32
|
+
3. What is the deployment environment (cloud, on-prem, edge)?
|
|
33
|
+
4. What compliance requirements apply (PCI, HIPAA, SOC2)?
|
|
34
|
+
5. What is the risk tolerance? (startup MVP vs. banking app)
|
|
35
|
+
|
|
36
|
+
### Before Code Audit
|
|
37
|
+
1. What changed recently? What is the scope of review?
|
|
38
|
+
2. Are there known vulnerabilities or areas of concern?
|
|
39
|
+
3. What authentication/authorization model is used?
|
|
40
|
+
4. What sensitive data does the application handle?
|
|
41
|
+
5. Has there been a previous audit? What was found?
|
|
42
|
+
|
|
43
|
+
### Before Architecture Review
|
|
44
|
+
1. What are the data flow paths for sensitive information?
|
|
45
|
+
2. Where are secrets stored and how are they rotated?
|
|
46
|
+
3. What is the blast radius if a single component is compromised?
|
|
47
|
+
4. What monitoring and alerting is in place?
|
|
48
|
+
|
|
49
|
+
## Why This Matters
|
|
50
|
+
|
|
51
|
+
Security analysis with wrong assumptions is worse than no analysis — it creates false confidence. A SQL injection review is useless if the real risk is an exposed admin panel. Asking the right questions up front ensures effort is directed at actual risks.
|
|
52
|
+
|
|
53
|
+
## Anti-Patterns to Avoid
|
|
54
|
+
|
|
55
|
+
| Anti-Pattern | Problem |
|
|
56
|
+
|-------------|---------|
|
|
57
|
+
| Assuming scope | Missing critical attack surface |
|
|
58
|
+
| Skipping threat model | Defending against wrong adversary |
|
|
59
|
+
| Not asking about data sensitivity | Misjudging impact severity |
|
|
60
|
+
| Assuming deployment environment | Missing environment-specific risks |
|
|
61
|
+
| Not clarifying "secure enough" | Over- or under-engineering defenses |
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-audit-context-building
|
|
3
|
+
description: "Build comprehensive context before performing a security audit by mapping architecture, identifying trust boundaries, cataloging sensitive data flows, and understanding the threat model. Use when preparing for a security review, onboarding to a new codebase for audit, or establishing the scope and context for security testing."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Security Audit Context Building
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- Starting a security audit of an unfamiliar codebase
|
|
16
|
+
- Building a threat model before deep technical review
|
|
17
|
+
- Mapping data flows to identify sensitive paths
|
|
18
|
+
- Establishing audit scope and priorities
|
|
19
|
+
- Documenting architecture for security assessment
|
|
20
|
+
|
|
21
|
+
## When NOT to Use
|
|
22
|
+
|
|
23
|
+
- You already have full context and are ready to audit
|
|
24
|
+
- Quick spot-check of a specific code change (use fix-review)
|
|
25
|
+
- Automated scanning (use static analysis tools)
|
|
26
|
+
|
|
27
|
+
## Context Building Phases
|
|
28
|
+
|
|
29
|
+
### Phase 1: Architecture Overview
|
|
30
|
+
1. Identify the tech stack (languages, frameworks, databases)
|
|
31
|
+
2. Map service boundaries and communication patterns
|
|
32
|
+
3. Identify external dependencies and third-party integrations
|
|
33
|
+
4. Understand deployment topology (cloud, containers, serverless)
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Tech stack discovery
|
|
37
|
+
find . -name "package.json" -o -name "requirements.txt" -o -name "go.mod" -o -name "Cargo.toml" | head -20
|
|
38
|
+
cat package.json 2>/dev/null | grep -A5 '"dependencies"'
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Phase 2: Trust Boundaries
|
|
42
|
+
1. Where does untrusted input enter the system?
|
|
43
|
+
2. What authentication/authorization mechanisms are used?
|
|
44
|
+
3. Where are privilege escalation boundaries?
|
|
45
|
+
4. What services communicate and with what trust level?
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Find auth mechanisms
|
|
49
|
+
grep -rn "auth\|jwt\|session\|token\|middleware" --include="*.ts" --include="*.py" -l .
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Phase 3: Sensitive Data Flows
|
|
53
|
+
1. What sensitive data does the system handle? (PII, credentials, financial)
|
|
54
|
+
2. How is sensitive data stored? (encrypted at rest?)
|
|
55
|
+
3. How does sensitive data move between components? (encrypted in transit?)
|
|
56
|
+
4. Where are secrets stored and how are they accessed?
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Find potential secret handling
|
|
60
|
+
grep -rn "password\|secret\|key\|token\|credential" --include="*.env*" --include="*.yaml" --include="*.json" -l .
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Phase 4: Attack Surface Catalog
|
|
64
|
+
1. List all external-facing endpoints
|
|
65
|
+
2. Identify file upload/download capabilities
|
|
66
|
+
3. Map administrative interfaces
|
|
67
|
+
4. Catalog webhook and callback URLs
|
|
68
|
+
|
|
69
|
+
### Phase 5: Historical Context
|
|
70
|
+
1. Review recent security-related commits
|
|
71
|
+
2. Check for past vulnerability reports or advisories
|
|
72
|
+
3. Identify previously audited areas
|
|
73
|
+
4. Note known tech debt or deferred security work
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Security-related git history
|
|
77
|
+
git log --oneline --all --grep="security\|vulnerability\|CVE\|fix\|patch" | head -20
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Output: Audit Context Document
|
|
81
|
+
|
|
82
|
+
Produce a structured document covering:
|
|
83
|
+
- Architecture diagram (text-based)
|
|
84
|
+
- Trust boundary map
|
|
85
|
+
- Sensitive data inventory
|
|
86
|
+
- Attack surface catalog
|
|
87
|
+
- Prioritized review areas
|
|
88
|
+
- Known risks and assumptions
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-building-secure-contracts
|
|
3
|
+
description: "Guide secure smart contract development with best practices for Solidity, Rust (Solana/CosmWasm), and Move. Use when writing, reviewing, or hardening smart contracts against common vulnerability classes like reentrancy, integer overflow, access control issues, and flash loan attacks."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Building Secure Smart Contracts
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- Writing new smart contracts and need security-first patterns
|
|
17
|
+
- Reviewing contract code for common vulnerability classes
|
|
18
|
+
- Hardening existing contracts before audit or deployment
|
|
19
|
+
- Implementing access control, upgrade patterns, or token standards securely
|
|
20
|
+
- Evaluating contract architecture for systemic risks
|
|
21
|
+
|
|
22
|
+
## When NOT to Use
|
|
23
|
+
|
|
24
|
+
- General web application security (use other security skills)
|
|
25
|
+
- Off-chain backend code review
|
|
26
|
+
- Non-blockchain cryptographic protocol design
|
|
27
|
+
|
|
28
|
+
## Key Vulnerability Classes
|
|
29
|
+
|
|
30
|
+
### Solidity / EVM
|
|
31
|
+
|
|
32
|
+
| Vulnerability | Description | Mitigation |
|
|
33
|
+
|---------------|-------------|------------|
|
|
34
|
+
| Reentrancy | External calls allow recursive entry | Checks-Effects-Interactions pattern; ReentrancyGuard |
|
|
35
|
+
| Integer overflow/underflow | Arithmetic wraps silently (pre-0.8) | Use Solidity >=0.8 or SafeMath |
|
|
36
|
+
| Access control | Missing or incorrect permission checks | OpenZeppelin Ownable/AccessControl; multi-sig for admin |
|
|
37
|
+
| Flash loan manipulation | Price or governance manipulation via atomic loans | Time-weighted oracles; commit-reveal schemes |
|
|
38
|
+
| Front-running | Mempool observation enables MEV extraction | Commit-reveal; private mempools; batch auctions |
|
|
39
|
+
| Delegatecall injection | Arbitrary code execution via delegatecall | Restrict delegatecall targets; avoid user-controlled addresses |
|
|
40
|
+
| Storage collision | Proxy upgrade storage layout conflicts | Use EIP-1967 storage slots; OpenZeppelin upgradeable contracts |
|
|
41
|
+
|
|
42
|
+
### Solana / Rust
|
|
43
|
+
|
|
44
|
+
| Vulnerability | Description | Mitigation |
|
|
45
|
+
|---------------|-------------|------------|
|
|
46
|
+
| Missing signer check | Instructions accept unsigned accounts | Verify `account.is_signer` |
|
|
47
|
+
| Missing owner check | Accounts owned by wrong program | Verify `account.owner == program_id` |
|
|
48
|
+
| Account confusion | Wrong account type passed | Use discriminators; Anchor account validation |
|
|
49
|
+
| Arithmetic overflow | Unchecked math in native Rust | Use `checked_add`, `checked_mul`; saturating math |
|
|
50
|
+
|
|
51
|
+
## Secure Development Checklist
|
|
52
|
+
|
|
53
|
+
1. Use established, audited libraries (OpenZeppelin, Anchor)
|
|
54
|
+
2. Follow Checks-Effects-Interactions pattern
|
|
55
|
+
3. Implement comprehensive access control
|
|
56
|
+
4. Use time-weighted average prices for oracles
|
|
57
|
+
5. Add emergency pause mechanisms
|
|
58
|
+
6. Write invariant tests and fuzz tests
|
|
59
|
+
7. Get independent audit before mainnet deployment
|
|
60
|
+
8. Use formal verification where practical
|
|
61
|
+
|
|
62
|
+
## Testing Approach
|
|
63
|
+
|
|
64
|
+
- Unit tests for all state transitions
|
|
65
|
+
- Invariant/property-based tests for protocol invariants
|
|
66
|
+
- Fork tests against mainnet state
|
|
67
|
+
- Fuzz testing with Foundry or Echidna
|
|
68
|
+
- Symbolic execution with Halmos or Manticore
|
|
69
|
+
|
|
70
|
+
## Resources
|
|
71
|
+
|
|
72
|
+
- Trail of Bits: Building Secure Contracts — https://secure-contracts.com/
|
|
73
|
+
- OpenZeppelin Contracts — https://docs.openzeppelin.com/contracts/
|
|
74
|
+
- Solidity Security Pitfalls — https://github.com/sigp/solidity-security-blog
|
|
75
|
+
- Anchor Book — https://book.anchor-lang.com/
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-burpsuite-project-parser
|
|
3
|
+
description: "Parse and analyze Burp Suite project files, HTTP history, and scan results. Use when extracting findings from Burp Suite exports, analyzing intercepted HTTP traffic, processing Burp XML exports, or correlating Burp scan results with source code."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Burp Suite Project Parser
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- Parsing Burp Suite XML export files for findings
|
|
17
|
+
- Analyzing HTTP request/response history from Burp
|
|
18
|
+
- Extracting and deduplicating vulnerability findings
|
|
19
|
+
- Correlating Burp scan results with source code locations
|
|
20
|
+
- Converting Burp output to other formats (CSV, JSON, SARIF)
|
|
21
|
+
|
|
22
|
+
## When NOT to Use
|
|
23
|
+
|
|
24
|
+
- Running active Burp scans (use Burp Suite directly)
|
|
25
|
+
- Configuring Burp extensions
|
|
26
|
+
- General web application testing without Burp data
|
|
27
|
+
|
|
28
|
+
## Burp XML Export Format
|
|
29
|
+
|
|
30
|
+
Burp Suite exports data in XML format with these key elements:
|
|
31
|
+
|
|
32
|
+
```xml
|
|
33
|
+
<items>
|
|
34
|
+
<item>
|
|
35
|
+
<time>...</time>
|
|
36
|
+
<url>https://example.com/api/user</url>
|
|
37
|
+
<host ip="1.2.3.4">example.com</host>
|
|
38
|
+
<port>443</port>
|
|
39
|
+
<protocol>https</protocol>
|
|
40
|
+
<method>POST</method>
|
|
41
|
+
<path>/api/user</path>
|
|
42
|
+
<request base64="true">...</request>
|
|
43
|
+
<response base64="true">...</response>
|
|
44
|
+
<status>200</status>
|
|
45
|
+
<responselength>1234</responselength>
|
|
46
|
+
<mimetype>JSON</mimetype>
|
|
47
|
+
</item>
|
|
48
|
+
</items>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Parsing Commands
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Extract all unique URLs from Burp export
|
|
55
|
+
xmllint --xpath '//item/url/text()' burp_export.xml 2>/dev/null | sort -u
|
|
56
|
+
|
|
57
|
+
# Extract URLs with response status
|
|
58
|
+
python3 -c "
|
|
59
|
+
import xml.etree.ElementTree as ET
|
|
60
|
+
tree = ET.parse('burp_export.xml')
|
|
61
|
+
for item in tree.findall('.//item'):
|
|
62
|
+
url = item.findtext('url', '')
|
|
63
|
+
status = item.findtext('status', '')
|
|
64
|
+
method = item.findtext('method', '')
|
|
65
|
+
print(f'{method} {status} {url}')
|
|
66
|
+
"
|
|
67
|
+
|
|
68
|
+
# Decode base64 request/response bodies
|
|
69
|
+
python3 -c "
|
|
70
|
+
import xml.etree.ElementTree as ET, base64
|
|
71
|
+
tree = ET.parse('burp_export.xml')
|
|
72
|
+
for item in tree.findall('.//item'):
|
|
73
|
+
req = item.find('request')
|
|
74
|
+
if req is not None and req.get('base64') == 'true':
|
|
75
|
+
print(base64.b64decode(req.text).decode('utf-8', errors='replace'))
|
|
76
|
+
print('---')
|
|
77
|
+
"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Analysis Workflow
|
|
81
|
+
|
|
82
|
+
1. **Export** Burp project data as XML (HTTP history or scan results)
|
|
83
|
+
2. **Parse** XML to extract requests, responses, and findings
|
|
84
|
+
3. **Deduplicate** findings by URL pattern and vulnerability type
|
|
85
|
+
4. **Correlate** with source code (map endpoints to handlers)
|
|
86
|
+
5. **Prioritize** by severity, exploitability, and business impact
|
|
87
|
+
6. **Report** findings with request/response evidence
|
|
88
|
+
|
|
89
|
+
## Common Findings to Extract
|
|
90
|
+
|
|
91
|
+
| Finding Type | Indicator in Burp Data |
|
|
92
|
+
|-------------|----------------------|
|
|
93
|
+
| SQL Injection | Error-based responses, time delays |
|
|
94
|
+
| XSS | Reflected input in response body |
|
|
95
|
+
| Auth bypass | 200 status on restricted endpoints without auth |
|
|
96
|
+
| Information disclosure | Stack traces, debug info in responses |
|
|
97
|
+
| CSRF | Missing tokens on state-changing requests |
|
|
98
|
+
| Open redirect | 3xx with user-controlled Location header |
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-claude-in-chrome-troubleshooting
|
|
3
|
+
description: "Troubleshoot security issues with browser extensions and Chrome-based tools. Use when diagnosing browser extension security problems, Content Security Policy conflicts, cross-origin issues, extension permission problems, or browser automation security concerns."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Browser Extension Security Troubleshooting
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- Diagnosing Content Security Policy (CSP) violations blocking extension functionality
|
|
16
|
+
- Troubleshooting cross-origin request failures in browser extensions
|
|
17
|
+
- Debugging extension permission issues
|
|
18
|
+
- Resolving conflicts between extensions and page security policies
|
|
19
|
+
- Investigating browser automation tool security warnings
|
|
20
|
+
|
|
21
|
+
## When NOT to Use
|
|
22
|
+
|
|
23
|
+
- General Chrome debugging without security context
|
|
24
|
+
- Server-side security issues
|
|
25
|
+
- Mobile app security testing
|
|
26
|
+
|
|
27
|
+
## Common Issues
|
|
28
|
+
|
|
29
|
+
### Content Security Policy Violations
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Check page CSP headers
|
|
33
|
+
curl -sI https://example.com | grep -i "content-security-policy"
|
|
34
|
+
|
|
35
|
+
# Common CSP directives that block extensions
|
|
36
|
+
# script-src: blocks injected scripts
|
|
37
|
+
# connect-src: blocks fetch/XHR to extension URLs
|
|
38
|
+
# frame-src: blocks iframes from extensions
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Fix approaches:**
|
|
42
|
+
1. Use `chrome.declarativeNetRequest` to modify CSP headers
|
|
43
|
+
2. Use `world: "MAIN"` for content scripts needing page context
|
|
44
|
+
3. Use message passing instead of direct DOM manipulation
|
|
45
|
+
|
|
46
|
+
### Cross-Origin Issues
|
|
47
|
+
|
|
48
|
+
| Symptom | Cause | Fix |
|
|
49
|
+
|---------|-------|-----|
|
|
50
|
+
| CORS error in extension | Missing host permission | Add origin to `host_permissions` in manifest |
|
|
51
|
+
| Blocked by CORB | Response MIME type mismatch | Use background script as proxy |
|
|
52
|
+
| `opaque` response | `no-cors` mode fetch | Use `cors` mode with proper headers |
|
|
53
|
+
|
|
54
|
+
### Extension Permission Problems
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
// manifest.json - common permission issues
|
|
58
|
+
{
|
|
59
|
+
"permissions": [
|
|
60
|
+
"activeTab", // Preferred over broad host access
|
|
61
|
+
"scripting", // Required for script injection
|
|
62
|
+
"storage" // For local extension data
|
|
63
|
+
],
|
|
64
|
+
"host_permissions": [
|
|
65
|
+
"https://specific-domain.com/*" // Prefer specific over <all_urls>
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Debugging Steps
|
|
71
|
+
|
|
72
|
+
1. Open `chrome://extensions` and check for errors
|
|
73
|
+
2. Inspect extension background/service worker console
|
|
74
|
+
3. Check `chrome://net-internals/#events` for network issues
|
|
75
|
+
4. Review `chrome://policy` for enterprise-managed restrictions
|
|
76
|
+
5. Test in a clean profile to rule out extension conflicts
|
|
77
|
+
|
|
78
|
+
## Security Best Practices for Extensions
|
|
79
|
+
|
|
80
|
+
1. Request minimum required permissions
|
|
81
|
+
2. Use `activeTab` instead of broad host permissions where possible
|
|
82
|
+
3. Validate all messages received via `chrome.runtime.onMessage`
|
|
83
|
+
4. Sanitize any content injected into pages
|
|
84
|
+
5. Use Content Security Policy in extension pages
|
|
85
|
+
6. Avoid `eval()` and inline scripts in extension code
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-constant-time-analysis
|
|
3
|
+
description: "Analyze code for timing side-channel vulnerabilities and ensure constant-time operations for security-sensitive comparisons. Use when reviewing cryptographic implementations, secret comparison code, authentication token validation, or any code where timing leaks could reveal secrets."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Constant-Time Analysis
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- Reviewing code that compares secrets (tokens, passwords, MACs, signatures)
|
|
17
|
+
- Auditing cryptographic implementations for timing leaks
|
|
18
|
+
- Checking authentication or authorization code for side-channel risks
|
|
19
|
+
- Verifying that branching doesn't depend on secret values
|
|
20
|
+
- Analyzing code paths that process sensitive data with variable timing
|
|
21
|
+
|
|
22
|
+
## When NOT to Use
|
|
23
|
+
|
|
24
|
+
- Non-security-sensitive comparisons (public data)
|
|
25
|
+
- Performance optimization (different goal)
|
|
26
|
+
- General code review without cryptographic context
|
|
27
|
+
|
|
28
|
+
## Why Timing Matters
|
|
29
|
+
|
|
30
|
+
Non-constant-time string comparison reveals information bit by bit:
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
# VULNERABLE: Early exit leaks prefix length
|
|
34
|
+
def check_token(provided, expected):
|
|
35
|
+
if len(provided) != len(expected):
|
|
36
|
+
return False
|
|
37
|
+
for a, b in zip(provided, expected):
|
|
38
|
+
if a != b:
|
|
39
|
+
return False # Exits early - timing reveals match position
|
|
40
|
+
return True
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
An attacker can measure response times to determine how many characters match, then brute-force one character at a time.
|
|
44
|
+
|
|
45
|
+
## Safe Patterns by Language
|
|
46
|
+
|
|
47
|
+
### Python
|
|
48
|
+
```python
|
|
49
|
+
import hmac
|
|
50
|
+
# SAFE: constant-time comparison
|
|
51
|
+
hmac.compare_digest(provided_token, expected_token)
|
|
52
|
+
|
|
53
|
+
# Also safe for bytes
|
|
54
|
+
hmac.compare_digest(provided_hash, expected_hash)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Node.js
|
|
58
|
+
```javascript
|
|
59
|
+
const crypto = require('crypto');
|
|
60
|
+
// SAFE: constant-time comparison
|
|
61
|
+
crypto.timingSafeEqual(
|
|
62
|
+
Buffer.from(provided),
|
|
63
|
+
Buffer.from(expected)
|
|
64
|
+
);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Go
|
|
68
|
+
```go
|
|
69
|
+
import "crypto/subtle"
|
|
70
|
+
// SAFE: constant-time comparison
|
|
71
|
+
subtle.ConstantTimeCompare([]byte(provided), []byte(expected))
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Rust
|
|
75
|
+
```rust
|
|
76
|
+
use subtle::ConstantTimeEq;
|
|
77
|
+
// SAFE: constant-time comparison
|
|
78
|
+
provided.ct_eq(&expected).into()
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Detection Patterns
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Find potentially unsafe secret comparisons
|
|
85
|
+
grep -rn "==.*token\|==.*secret\|==.*password\|==.*api_key" --include="*.py" --include="*.js" --include="*.ts" .
|
|
86
|
+
|
|
87
|
+
# Find safe comparison usage
|
|
88
|
+
grep -rn "compare_digest\|timingSafeEqual\|ConstantTimeCompare\|ct_eq" .
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Vulnerable Code Patterns
|
|
92
|
+
|
|
93
|
+
| Pattern | Language | Risk |
|
|
94
|
+
|---------|----------|------|
|
|
95
|
+
| `if token == expected:` | Python | Timing leak |
|
|
96
|
+
| `if (token === expected)` | JavaScript | Timing leak |
|
|
97
|
+
| `strings.Compare(a, b)` | Go | Timing leak |
|
|
98
|
+
| `token.equals(expected)` | Java | Timing leak |
|
|
99
|
+
| `bcrypt.compare(a, b)` | Any | Safe (bcrypt is constant-time) |
|
|
100
|
+
|
|
101
|
+
## Beyond String Comparison
|
|
102
|
+
|
|
103
|
+
Timing leaks can also occur in:
|
|
104
|
+
- **Conditional branches** on secret values (if/else based on key bits)
|
|
105
|
+
- **Array indexing** with secret indices (cache timing)
|
|
106
|
+
- **Early returns** in validation functions
|
|
107
|
+
- **Database lookups** that vary by existence (user enumeration)
|
|
108
|
+
- **Regular expressions** with backtracking on secret data
|
|
109
|
+
|
|
110
|
+
## Mitigation Strategies
|
|
111
|
+
|
|
112
|
+
1. Use language-provided constant-time comparison functions
|
|
113
|
+
2. Avoid branching on secret values
|
|
114
|
+
3. Use constant-time select operations instead of if/else
|
|
115
|
+
4. Add artificial delays to normalize response times (last resort)
|
|
116
|
+
5. Use hash-then-compare for variable-length secrets
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-culture-index
|
|
3
|
+
description: "Assess and improve an organization's security engineering culture by evaluating codebase practices, CI/CD security hygiene, dependency management, and security testing integration. Use when auditing security maturity, evaluating security posture of a project, or recommending security process improvements."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Security Culture Index
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- Evaluating the security maturity of a codebase or project
|
|
16
|
+
- Assessing whether security practices are embedded in development workflows
|
|
17
|
+
- Identifying gaps in security tooling, testing, and processes
|
|
18
|
+
- Recommending improvements to security engineering practices
|
|
19
|
+
- Benchmarking security posture before and after improvements
|
|
20
|
+
|
|
21
|
+
## When NOT to Use
|
|
22
|
+
|
|
23
|
+
- Finding specific vulnerabilities (use static analysis or audit skills)
|
|
24
|
+
- Penetration testing or active exploitation
|
|
25
|
+
- Compliance audits against specific standards (SOC2, ISO27001)
|
|
26
|
+
|
|
27
|
+
## Assessment Dimensions
|
|
28
|
+
|
|
29
|
+
### 1. Dependency Management
|
|
30
|
+
- Are dependencies pinned to exact versions?
|
|
31
|
+
- Is there automated dependency scanning (Dependabot, Snyk, Renovate)?
|
|
32
|
+
- How quickly are security patches applied?
|
|
33
|
+
- Are lockfiles committed and reviewed?
|
|
34
|
+
|
|
35
|
+
### 2. CI/CD Security
|
|
36
|
+
- Are secrets managed via secret stores (not env vars or hardcoded)?
|
|
37
|
+
- Is SAST (Semgrep, CodeQL) integrated in CI?
|
|
38
|
+
- Are container images scanned?
|
|
39
|
+
- Is there branch protection requiring security checks to pass?
|
|
40
|
+
|
|
41
|
+
### 3. Code Review Practices
|
|
42
|
+
- Do PRs require security-focused review for sensitive areas?
|
|
43
|
+
- Are security-relevant changes flagged automatically?
|
|
44
|
+
- Is there a CODEOWNERS file for security-sensitive paths?
|
|
45
|
+
|
|
46
|
+
### 4. Testing Maturity
|
|
47
|
+
- Are there security-specific test cases?
|
|
48
|
+
- Is fuzzing integrated for parsing/input handling code?
|
|
49
|
+
- Are auth/authz boundaries tested explicitly?
|
|
50
|
+
|
|
51
|
+
### 5. Incident Readiness
|
|
52
|
+
- Is there a security incident response plan?
|
|
53
|
+
- Are logs sufficient for forensic investigation?
|
|
54
|
+
- Can deployments be rolled back quickly?
|
|
55
|
+
|
|
56
|
+
## Quick Assessment Commands
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Check for security scanning in CI
|
|
60
|
+
find . -name "*.yml" -path "*/.github/*" | xargs grep -l "semgrep\|codeql\|snyk\|trivy\|dependabot"
|
|
61
|
+
|
|
62
|
+
# Check for secrets in code
|
|
63
|
+
grep -rn "password\|secret\|api_key\|token" --include="*.env*" --include="*.yaml" .
|
|
64
|
+
|
|
65
|
+
# Check for pinned dependencies
|
|
66
|
+
grep -c "==" requirements.txt 2>/dev/null || echo "No requirements.txt"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Scoring Framework
|
|
70
|
+
|
|
71
|
+
| Dimension | 0 (None) | 1 (Ad-hoc) | 2 (Integrated) | 3 (Mature) |
|
|
72
|
+
|-----------|----------|------------|-----------------|------------|
|
|
73
|
+
| SAST | No scanning | Manual runs | CI-integrated | Custom rules + triage |
|
|
74
|
+
| Dependencies | No management | Manual updates | Automated scanning | Auto-merge for patches |
|
|
75
|
+
| Code Review | No security focus | Informal | Checklists | CODEOWNERS + auto-flag |
|
|
76
|
+
| Testing | No security tests | Some unit tests | Fuzz + property tests | Continuous fuzzing |
|
|
77
|
+
| Incident Response | No plan | Basic runbook | Tested playbooks | Regular game days |
|