@vetala/vetala 0.1.0-beta
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.
Potentially problematic release.
This version of @vetala/vetala might be problematic. Click here for more details.
- package/CONTRIBUTING.md +77 -0
- package/LICENSE +184 -0
- package/README.md +136 -0
- package/THIRD_PARTY_LICENSES.md +17 -0
- package/dist/src/agent.d.ts +30 -0
- package/dist/src/agent.js +216 -0
- package/dist/src/agent.js.map +1 -0
- package/dist/src/approvals.d.ts +18 -0
- package/dist/src/approvals.js +81 -0
- package/dist/src/approvals.js.map +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +87 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/config.d.ts +12 -0
- package/dist/src/config.js +183 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/context-memory.d.ts +7 -0
- package/dist/src/context-memory.js +96 -0
- package/dist/src/context-memory.js.map +1 -0
- package/dist/src/ink/command-suggestions.d.ts +7 -0
- package/dist/src/ink/command-suggestions.js +179 -0
- package/dist/src/ink/command-suggestions.js.map +1 -0
- package/dist/src/ink/ink-terminal-ui.d.ts +36 -0
- package/dist/src/ink/ink-terminal-ui.js +79 -0
- package/dist/src/ink/ink-terminal-ui.js.map +1 -0
- package/dist/src/ink/repl-app.d.ts +9 -0
- package/dist/src/ink/repl-app.js +789 -0
- package/dist/src/ink/repl-app.js.map +1 -0
- package/dist/src/ink/transcript-cards.d.ts +6 -0
- package/dist/src/ink/transcript-cards.js +24 -0
- package/dist/src/ink/transcript-cards.js.map +1 -0
- package/dist/src/path-policy.d.ts +11 -0
- package/dist/src/path-policy.js +67 -0
- package/dist/src/path-policy.js.map +1 -0
- package/dist/src/process-utils.d.ts +13 -0
- package/dist/src/process-utils.js +52 -0
- package/dist/src/process-utils.js.map +1 -0
- package/dist/src/repl.d.ts +9 -0
- package/dist/src/repl.js +13 -0
- package/dist/src/repl.js.map +1 -0
- package/dist/src/sarvam/client.d.ts +15 -0
- package/dist/src/sarvam/client.js +208 -0
- package/dist/src/sarvam/client.js.map +1 -0
- package/dist/src/sarvam/models.d.ts +2 -0
- package/dist/src/sarvam/models.js +7 -0
- package/dist/src/sarvam/models.js.map +1 -0
- package/dist/src/search-provider.d.ts +6 -0
- package/dist/src/search-provider.js +8 -0
- package/dist/src/search-provider.js.map +1 -0
- package/dist/src/session-store.d.ts +19 -0
- package/dist/src/session-store.js +318 -0
- package/dist/src/session-store.js.map +1 -0
- package/dist/src/skills/runtime.d.ts +26 -0
- package/dist/src/skills/runtime.js +317 -0
- package/dist/src/skills/runtime.js.map +1 -0
- package/dist/src/skills/types.d.ts +25 -0
- package/dist/src/skills/types.js +2 -0
- package/dist/src/skills/types.js.map +1 -0
- package/dist/src/terminal-ui.d.ts +29 -0
- package/dist/src/terminal-ui.js +236 -0
- package/dist/src/terminal-ui.js.map +1 -0
- package/dist/src/tools/filesystem.d.ts +2 -0
- package/dist/src/tools/filesystem.js +622 -0
- package/dist/src/tools/filesystem.js.map +1 -0
- package/dist/src/tools/git.d.ts +2 -0
- package/dist/src/tools/git.js +326 -0
- package/dist/src/tools/git.js.map +1 -0
- package/dist/src/tools/index.d.ts +6 -0
- package/dist/src/tools/index.js +21 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/tools/registry.d.ts +15 -0
- package/dist/src/tools/registry.js +59 -0
- package/dist/src/tools/registry.js.map +1 -0
- package/dist/src/tools/shell.d.ts +2 -0
- package/dist/src/tools/shell.js +97 -0
- package/dist/src/tools/shell.js.map +1 -0
- package/dist/src/tools/skill.d.ts +3 -0
- package/dist/src/tools/skill.js +130 -0
- package/dist/src/tools/skill.js.map +1 -0
- package/dist/src/tools/web.d.ts +3 -0
- package/dist/src/tools/web.js +144 -0
- package/dist/src/tools/web.js.map +1 -0
- package/dist/src/types.d.ts +236 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/workspace-trust.d.ts +3 -0
- package/dist/src/workspace-trust.js +31 -0
- package/dist/src/workspace-trust.js.map +1 -0
- package/dist/src/xdg.d.ts +9 -0
- package/dist/src/xdg.js +77 -0
- package/dist/src/xdg.js.map +1 -0
- package/package.json +57 -0
- package/skill/agents-md-generator/SKILL.md +75 -0
- package/skill/agents-md-generator/references/agents_md_template.md +160 -0
- package/skill/agents-md-generator/references/loc_measurement.md +67 -0
- package/skill/agents-md-generator/references/monorepo_detection.md +78 -0
- package/skill/agents-md-generator/references/monorepo_strategy.md +60 -0
- package/skill/agents-md-generator/references/read_only_commands.md +151 -0
- package/skill/agents-md-generator/references/update_strategy.md +160 -0
- package/skill/agents-md-generator/references/working_agreements.md +53 -0
- package/skill/biz-opportunity-scout/SKILL.md +53 -0
- package/skill/biz-opportunity-scout/references/competitive_analysis.md +84 -0
- package/skill/biz-opportunity-scout/references/market_sizing.md +68 -0
- package/skill/biz-opportunity-scout/references/pmf_indicators.md +94 -0
- package/skill/biz-opportunity-scout/references/report_template.md +243 -0
- package/skill/biz-opportunity-scout/references/unit_economics.md +97 -0
- package/skill/code-review/SKILL.md +86 -0
- package/skill/code-review/references/change_analysis.md +116 -0
- package/skill/code-review/references/git_operations.md +115 -0
- package/skill/code-review/references/impact_detection.md +149 -0
- package/skill/code-review/references/output_format.md +137 -0
- package/skill/code-review/references/severity_criteria.md +100 -0
- package/skill/code-security-audit/SKILL.md +123 -0
- package/skill/code-security-audit/references/audit_process.md +277 -0
- package/skill/code-security-audit/references/remediation_patterns.md +599 -0
- package/skill/code-security-audit/references/report_format.md +391 -0
- package/skill/code-security-audit/references/security_domains.md +830 -0
- package/skill/code-security-audit/references/vulnerability_patterns.md +813 -0
- package/skill/composition-patterns/SKILL.md +83 -0
- package/skill/composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/skill/composition-patterns/rules/architecture-compound-components.md +112 -0
- package/skill/composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/skill/composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/skill/composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/skill/composition-patterns/rules/state-context-interface.md +191 -0
- package/skill/composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/skill/composition-patterns/rules/state-lift-state.md +125 -0
- package/skill/deploy-to-vercel/SKILL.md +293 -0
- package/skill/deploy-to-vercel/resources/deploy-sandbox.sh +301 -0
- package/skill/deploy-to-vercel/resources/deploy.sh +301 -0
- package/skill/doc/SKILL_GUIDELINES.md +138 -0
- package/skill/git-workflow/SKILL.md +94 -0
- package/skill/git-workflow/references/advanced-git.md +632 -0
- package/skill/git-workflow/references/branching-strategies.md +344 -0
- package/skill/git-workflow/references/ci-cd-integration.md +683 -0
- package/skill/git-workflow/references/code-quality-tools.md +351 -0
- package/skill/git-workflow/references/commit-conventions.md +439 -0
- package/skill/git-workflow/references/github-releases.md +288 -0
- package/skill/git-workflow/references/pull-request-workflow.md +773 -0
- package/skill/git-workflow/scripts/verify-git-workflow.sh +263 -0
- package/skill/jetbrains-vmoptions/SKILL.md +51 -0
- package/skill/jetbrains-vmoptions/references/common-options.md +357 -0
- package/skill/jetbrains-vmoptions/references/gc-options.md +350 -0
- package/skill/jetbrains-vmoptions/references/memory-options.md +339 -0
- package/skill/jetbrains-vmoptions/references/prerequisite-check.md +65 -0
- package/skill/kysely-converter/SKILL.md +62 -0
- package/skill/kysely-converter/references/delete.md +323 -0
- package/skill/kysely-converter/references/insert.md +386 -0
- package/skill/kysely-converter/references/operators.md +331 -0
- package/skill/kysely-converter/references/select.md +1000 -0
- package/skill/kysely-converter/references/update.md +349 -0
- package/skill/kysely-converter/references/window_function.md +537 -0
- package/skill/react-best-practices/SKILL.md +131 -0
- package/skill/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skill/react-best-practices/rules/advanced-init-once.md +42 -0
- package/skill/react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skill/react-best-practices/rules/async-api-routes.md +38 -0
- package/skill/react-best-practices/rules/async-defer-await.md +80 -0
- package/skill/react-best-practices/rules/async-dependencies.md +51 -0
- package/skill/react-best-practices/rules/async-parallel.md +28 -0
- package/skill/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skill/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skill/react-best-practices/rules/bundle-conditional.md +31 -0
- package/skill/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skill/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skill/react-best-practices/rules/bundle-preload.md +50 -0
- package/skill/react-best-practices/rules/client-event-listeners.md +74 -0
- package/skill/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skill/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skill/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skill/react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skill/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skill/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skill/react-best-practices/rules/js-cache-storage.md +70 -0
- package/skill/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skill/react-best-practices/rules/js-early-exit.md +50 -0
- package/skill/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skill/react-best-practices/rules/js-index-maps.md +37 -0
- package/skill/react-best-practices/rules/js-length-check-first.md +49 -0
- package/skill/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skill/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skill/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skill/react-best-practices/rules/rendering-activity.md +26 -0
- package/skill/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skill/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skill/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skill/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skill/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skill/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skill/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skill/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skill/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skill/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skill/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skill/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skill/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skill/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skill/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skill/react-best-practices/rules/rerender-memo.md +44 -0
- package/skill/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skill/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skill/react-best-practices/rules/rerender-transitions.md +40 -0
- package/skill/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skill/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skill/react-best-practices/rules/server-auth-actions.md +96 -0
- package/skill/react-best-practices/rules/server-cache-lru.md +41 -0
- package/skill/react-best-practices/rules/server-cache-react.md +76 -0
- package/skill/react-best-practices/rules/server-dedup-props.md +65 -0
- package/skill/react-best-practices/rules/server-hoist-static-io.md +142 -0
- package/skill/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skill/react-best-practices/rules/server-serialization.md +38 -0
- package/skill/react-native-skills/SKILL.md +115 -0
- package/skill/react-native-skills/rules/animation-derived-value.md +53 -0
- package/skill/react-native-skills/rules/animation-gesture-detector-press.md +95 -0
- package/skill/react-native-skills/rules/animation-gpu-properties.md +65 -0
- package/skill/react-native-skills/rules/design-system-compound-components.md +66 -0
- package/skill/react-native-skills/rules/fonts-config-plugin.md +71 -0
- package/skill/react-native-skills/rules/imports-design-system-folder.md +68 -0
- package/skill/react-native-skills/rules/js-hoist-intl.md +61 -0
- package/skill/react-native-skills/rules/list-performance-callbacks.md +44 -0
- package/skill/react-native-skills/rules/list-performance-function-references.md +132 -0
- package/skill/react-native-skills/rules/list-performance-images.md +53 -0
- package/skill/react-native-skills/rules/list-performance-inline-objects.md +97 -0
- package/skill/react-native-skills/rules/list-performance-item-expensive.md +94 -0
- package/skill/react-native-skills/rules/list-performance-item-memo.md +82 -0
- package/skill/react-native-skills/rules/list-performance-item-types.md +104 -0
- package/skill/react-native-skills/rules/list-performance-virtualize.md +67 -0
- package/skill/react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
- package/skill/react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
- package/skill/react-native-skills/rules/navigation-native-navigators.md +188 -0
- package/skill/react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
- package/skill/react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
- package/skill/react-native-skills/rules/react-state-dispatcher.md +91 -0
- package/skill/react-native-skills/rules/react-state-fallback.md +56 -0
- package/skill/react-native-skills/rules/react-state-minimize.md +65 -0
- package/skill/react-native-skills/rules/rendering-no-falsy-and.md +74 -0
- package/skill/react-native-skills/rules/rendering-text-in-text-component.md +36 -0
- package/skill/react-native-skills/rules/scroll-position-no-state.md +82 -0
- package/skill/react-native-skills/rules/state-ground-truth.md +80 -0
- package/skill/react-native-skills/rules/ui-expo-image.md +66 -0
- package/skill/react-native-skills/rules/ui-image-gallery.md +104 -0
- package/skill/react-native-skills/rules/ui-measure-views.md +78 -0
- package/skill/react-native-skills/rules/ui-menus.md +174 -0
- package/skill/react-native-skills/rules/ui-native-modals.md +77 -0
- package/skill/react-native-skills/rules/ui-pressable.md +61 -0
- package/skill/react-native-skills/rules/ui-safe-area-scroll.md +65 -0
- package/skill/react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
- package/skill/react-native-skills/rules/ui-styling.md +87 -0
- package/skill/react-vite-guide/SKILL.md +101 -0
- package/skill/react-vite-guide/references/composition-patterns.md +709 -0
- package/skill/react-vite-guide/references/performance-optimization.md +1222 -0
- package/skill/react-vite-guide/references/vite-specific.md +385 -0
- package/skill/react-vite-guide/references/web-interface.md +146 -0
- package/skill/skill-maker/SKILL.md +52 -0
- package/skill/skill-maker/references/content_spec.md +67 -0
- package/skill/skill-maker/references/frontmatter_spec.md +96 -0
- package/skill/skill-maker/references/input_validation.md +90 -0
- package/skill/skill-maker/references/skill_structure.md +74 -0
- package/skill/system-prompt-creator/SKILL.md +50 -0
- package/skill/system-prompt-creator/references/data_format_selection.md +135 -0
- package/skill/system-prompt-creator/references/multi_prompt_architecture.md +386 -0
- package/skill/system-prompt-creator/references/prompt_structure.md +140 -0
- package/skill/system-prompt-creator/references/quality_criteria.md +83 -0
- package/skill/typst-creator/SKILL.md +51 -0
- package/skill/typst-creator/references/layout.md +401 -0
- package/skill/typst-creator/references/math.md +297 -0
- package/skill/typst-creator/references/scripting.md +237 -0
- package/skill/typst-creator/references/styling.md +217 -0
- package/skill/typst-creator/references/syntax.md +234 -0
- package/skill/web-design-guidelines/SKILL.md +35 -0
- package/terminal.png +0 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
# Audit Process
|
|
2
|
+
|
|
3
|
+
Complete step-by-step methodology for OWASP-based code security audits.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Phase 1: Reconnaissance](#phase-1-reconnaissance)
|
|
8
|
+
- [Phase 2: Scope Definition](#phase-2-scope-definition)
|
|
9
|
+
- [Phase 3: Domain Analysis](#phase-3-domain-analysis)
|
|
10
|
+
- [Phase 4: Finding Synthesis](#phase-4-finding-synthesis)
|
|
11
|
+
- [Phase 5: Remediation Mapping](#phase-5-remediation-mapping)
|
|
12
|
+
- [Phase 6: Report Generation](#phase-6-report-generation)
|
|
13
|
+
|
|
14
|
+
## Phase 1: Reconnaissance
|
|
15
|
+
|
|
16
|
+
Technology stack, architecture, and security-relevant areas are identified before any analysis.
|
|
17
|
+
|
|
18
|
+
### 1.1 Technology Stack Identification
|
|
19
|
+
|
|
20
|
+
```yaml
|
|
21
|
+
targets:
|
|
22
|
+
- Package manifests: package.json, requirements.txt, go.mod, pom.xml, build.gradle, Gemfile, Cargo.toml, composer.json
|
|
23
|
+
- Framework configs: next.config.js, nuxt.config.ts, angular.json, settings.py, application.yml, appsettings.json
|
|
24
|
+
- Docker/infra: Dockerfile, docker-compose.yml, .env files, terraform/*.tf, k8s manifests
|
|
25
|
+
- CI/CD: .github/workflows/*.yml, .gitlab-ci.yml, Jenkinsfile
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 1.2 Entry Point Mapping
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
targets:
|
|
32
|
+
- API routes: controllers/, routes/, handlers/, api/, endpoints/
|
|
33
|
+
- Middleware: middleware/, filters/, interceptors/, guards/
|
|
34
|
+
- Authentication: auth/, login, signup, token, session, oauth
|
|
35
|
+
- File upload: upload, multipart, file, attachment, blob
|
|
36
|
+
- External calls: http client usage, fetch, axios, requests, webhooks
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 1.3 Security Configuration Discovery
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
targets:
|
|
43
|
+
- Auth config: JWT secret/config, OAuth settings, session config, CORS policy
|
|
44
|
+
- Crypto config: encryption keys, certificate paths, TLS settings
|
|
45
|
+
- Security headers: helmet, CSP, HSTS, X-Frame-Options settings
|
|
46
|
+
- Logging config: log levels, sensitive data masking, audit trail
|
|
47
|
+
- Environment: .env, .env.example, secrets management, config injection
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 1.4 Data Flow Mapping
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
targets:
|
|
54
|
+
- User input entry: request body parsing, query params, path params, headers, cookies
|
|
55
|
+
- Database interaction: ORM models, raw queries, migration files, schema definitions
|
|
56
|
+
- External API calls: third-party integrations, webhook handlers, service-to-service
|
|
57
|
+
- Output rendering: template engines, response serialization, HTML generation
|
|
58
|
+
- File I/O: file read/write, temporary files, log files, export/import
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Phase 2: Scope Definition
|
|
62
|
+
|
|
63
|
+
### 2.1 ASVS Level Selection
|
|
64
|
+
|
|
65
|
+
| Level | Target | Coverage |
|
|
66
|
+
|-------|--------|----------|
|
|
67
|
+
| **L1** | All applications (minimum baseline) | ~86 requirements — essential controls |
|
|
68
|
+
| **L2** | Applications handling sensitive data (recommended default) | ~230 requirements — standard security |
|
|
69
|
+
| **L3** | Critical applications (banking, healthcare, military) | ~345 requirements — comprehensive defense |
|
|
70
|
+
|
|
71
|
+
### 2.2 Domain Applicability Matrix
|
|
72
|
+
|
|
73
|
+
Domain applicability is determined based on the technology stack discovered in Phase 1.
|
|
74
|
+
|
|
75
|
+
| Domain | Applies When |
|
|
76
|
+
|--------|-------------|
|
|
77
|
+
| V1 Encoding & Sanitization | Always |
|
|
78
|
+
| V2 Validation & Business Logic | Always |
|
|
79
|
+
| V3 Web Frontend Security | Frontend code exists (HTML, JS, templates) |
|
|
80
|
+
| V4 API & Web Service | API endpoints exist (REST, GraphQL, SOAP) |
|
|
81
|
+
| V5 File Handling | File upload/download/processing exists |
|
|
82
|
+
| V6 Authentication | Auth system exists |
|
|
83
|
+
| V7 Session Management | Session-based auth exists |
|
|
84
|
+
| V8 Authorization | Multi-role or resource-based access exists |
|
|
85
|
+
| V9 Self-contained Tokens | JWT or similar token usage exists |
|
|
86
|
+
| V10 OAuth & OIDC | OAuth/OIDC integration exists |
|
|
87
|
+
| V11 Cryptography | Encryption, hashing, or signing is used |
|
|
88
|
+
| V12 Secure Communication | Network communication exists |
|
|
89
|
+
| V13 Configuration | Always |
|
|
90
|
+
| V14 Data Protection | PII, financial, or health data is processed |
|
|
91
|
+
| V15 Secure Coding & Architecture | Always |
|
|
92
|
+
| V16 Logging & Error Handling | Always |
|
|
93
|
+
| V17 WebRTC | WebRTC functionality exists |
|
|
94
|
+
|
|
95
|
+
### 2.3 Focus Area Prioritization
|
|
96
|
+
|
|
97
|
+
Focus areas map to domains as follows:
|
|
98
|
+
|
|
99
|
+
```yaml
|
|
100
|
+
mapping:
|
|
101
|
+
injection: [V1, V2]
|
|
102
|
+
authentication: [V6, V7, V9, V10]
|
|
103
|
+
authorization: [V8]
|
|
104
|
+
cryptography: [V11, V12]
|
|
105
|
+
api-security: [V4, V17]
|
|
106
|
+
session: [V7, V9, V10]
|
|
107
|
+
file-handling: [V5]
|
|
108
|
+
data-protection: [V14]
|
|
109
|
+
configuration: [V13, V16]
|
|
110
|
+
secure-coding: [V3, V15]
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Phase 3: Domain Analysis
|
|
114
|
+
|
|
115
|
+
Each applicable domain follows this analysis loop:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
For each domain:
|
|
119
|
+
1. Identify relevant code files using reconnaissance data
|
|
120
|
+
2. Read and analyze code against domain-specific requirements
|
|
121
|
+
3. Check for known vulnerability patterns (→ vulnerability_patterns.md)
|
|
122
|
+
4. Record findings with:
|
|
123
|
+
- Location (file:line)
|
|
124
|
+
- ASVS requirement ID
|
|
125
|
+
- CWE ID
|
|
126
|
+
- Severity level
|
|
127
|
+
- Evidence (code snippet)
|
|
128
|
+
- Confidence (confirmed / likely / possible)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Analysis Priorities Per Domain
|
|
132
|
+
|
|
133
|
+
Domains are ordered by this priority for maximum early detection:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
Priority 1 (Critical attack surface):
|
|
137
|
+
→ V1 Encoding & Sanitization (injection is top risk)
|
|
138
|
+
→ V6 Authentication (auth bypass = full compromise)
|
|
139
|
+
→ V8 Authorization (access control failures)
|
|
140
|
+
|
|
141
|
+
Priority 2 (High impact):
|
|
142
|
+
→ V4 API & Web Service
|
|
143
|
+
→ V11 Cryptography
|
|
144
|
+
→ V14 Data Protection
|
|
145
|
+
→ V15 Secure Coding & Architecture
|
|
146
|
+
|
|
147
|
+
Priority 3 (Standard coverage):
|
|
148
|
+
→ V2 Validation & Business Logic
|
|
149
|
+
→ V7 Session Management
|
|
150
|
+
→ V9 Self-contained Tokens
|
|
151
|
+
→ V13 Configuration
|
|
152
|
+
→ V16 Logging & Error Handling
|
|
153
|
+
|
|
154
|
+
Priority 4 (Specialized):
|
|
155
|
+
→ V3 Web Frontend Security
|
|
156
|
+
→ V5 File Handling
|
|
157
|
+
→ V10 OAuth & OIDC
|
|
158
|
+
→ V12 Secure Communication
|
|
159
|
+
→ V17 WebRTC
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Search Strategies Per Domain
|
|
163
|
+
|
|
164
|
+
```yaml
|
|
165
|
+
V1_encoding:
|
|
166
|
+
search_terms: [escape, encode, sanitize, htmlspecialchars, encodeURI, DOMPurify, parameterized, prepared]
|
|
167
|
+
anti_patterns: [innerHTML, dangerouslySetInnerHTML, string concatenation in queries, eval, exec]
|
|
168
|
+
|
|
169
|
+
V6_authentication:
|
|
170
|
+
search_terms: [login, authenticate, password, hash, bcrypt, argon2, jwt.sign, jwt.verify, compareSync]
|
|
171
|
+
anti_patterns: [plaintext password, md5, sha1 for passwords, hardcoded secrets, "alg":"none"]
|
|
172
|
+
|
|
173
|
+
V8_authorization:
|
|
174
|
+
search_terms: [authorize, permission, role, guard, policy, canActivate, @Roles, isAdmin, hasPermission]
|
|
175
|
+
anti_patterns: [missing auth checks on routes, client-side-only auth, direct object reference without check]
|
|
176
|
+
|
|
177
|
+
V11_cryptography:
|
|
178
|
+
search_terms: [encrypt, decrypt, AES, RSA, hmac, cipher, crypto, randomBytes, generateKey]
|
|
179
|
+
anti_patterns: [DES, 3DES, RC4, ECB mode, Math.random for security, hardcoded IV/key, weak key size]
|
|
180
|
+
|
|
181
|
+
V4_api:
|
|
182
|
+
search_terms: [rate limit, throttle, cors, helmet, csrf, content-type validation, schema validation]
|
|
183
|
+
anti_patterns: ["cors: { origin: '*' }", missing rate limit, no input size limit, verbose error response]
|
|
184
|
+
|
|
185
|
+
V2_validation:
|
|
186
|
+
search_terms: [validate, validator, schema, Joi, Zod, yup, class-validator, @IsString, @IsInt]
|
|
187
|
+
anti_patterns: [missing server-side validation, client-side-only validation, unchecked req.body fields]
|
|
188
|
+
|
|
189
|
+
V3_frontend:
|
|
190
|
+
search_terms: [CSP, Content-Security-Policy, X-Frame-Options, frame-ancestors, SameSite, Sec-Fetch, postMessage]
|
|
191
|
+
anti_patterns: [innerHTML, dangerouslySetInnerHTML, v-html, document.write, bypassSecurityTrustHtml, "unsafe-inline"]
|
|
192
|
+
|
|
193
|
+
V5_file_handling:
|
|
194
|
+
search_terms: [upload, multer, multipart, file-type, magic bytes, fs.readFile, path.join, Content-Disposition]
|
|
195
|
+
anti_patterns: [user filename in path, no file size limit, no extension allowlist, serve from web root]
|
|
196
|
+
|
|
197
|
+
V7_session:
|
|
198
|
+
search_terms: [session, cookie, Set-Cookie, express-session, HttpOnly, Secure, SameSite, __Host-, regenerate]
|
|
199
|
+
anti_patterns: [missing session regeneration on login, long session lifetime, no absolute timeout, session in URL]
|
|
200
|
+
|
|
201
|
+
V9_tokens:
|
|
202
|
+
search_terms: [jwt, jsonwebtoken, jose, JWT_SECRET, token.verify, algorithms, exp, aud, iss, nbf]
|
|
203
|
+
anti_patterns: ["algorithms: ['none']", missing exp check, hardcoded JWT secret, jwt.decode without verify]
|
|
204
|
+
|
|
205
|
+
V13_configuration:
|
|
206
|
+
search_terms: [.env, dotenv, config, DEBUG, NODE_ENV, X-Powered-By, server header, actuator, swagger]
|
|
207
|
+
anti_patterns: [DEBUG=True in production, .env committed, X-Powered-By present, actuator exposed, swagger in prod]
|
|
208
|
+
|
|
209
|
+
V14_data_protection:
|
|
210
|
+
search_terms: [sensitive, PII, redact, mask, Clear-Site-Data, Cache-Control, no-store, localStorage, sessionStorage]
|
|
211
|
+
anti_patterns: [password in URL, token in query string, sensitive data in logs, console.log(req.body)]
|
|
212
|
+
|
|
213
|
+
V15_secure_coding:
|
|
214
|
+
search_terms: [Object.assign, spread operator, prototype, __proto__, dependency, lock file, mass assignment]
|
|
215
|
+
anti_patterns: [prototype pollution, Object.assign(model, req.body), User.create(req.body), missing lock file]
|
|
216
|
+
|
|
217
|
+
V16_logging:
|
|
218
|
+
search_terms: [logger, winston, pino, log4j, logging, error handler, global exception, try catch]
|
|
219
|
+
anti_patterns: [stack trace in response, res.status(500).send(err), console.log(password), missing error handler]
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Phase 4: Finding Synthesis
|
|
223
|
+
|
|
224
|
+
### 4.1 Deduplication
|
|
225
|
+
|
|
226
|
+
Multiple source checks may flag the same underlying issue. Consolidation follows:
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
1. Group findings by file:line location
|
|
230
|
+
2. Merge overlapping findings into single entry
|
|
231
|
+
3. Keep the highest severity rating
|
|
232
|
+
4. Retain all cross-references (ASVS + API Top 10 + CWE + WSTG)
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### 4.2 Cross-Source Correlation
|
|
236
|
+
|
|
237
|
+
For each finding, attach applicable references from all 4 sources:
|
|
238
|
+
|
|
239
|
+
```yaml
|
|
240
|
+
finding:
|
|
241
|
+
asvs: "V1.2.1" # ASVS requirement ID
|
|
242
|
+
api_top10: "API1:2023" # API Security risk (if applicable)
|
|
243
|
+
cwe: "CWE-79" # CWE identifier
|
|
244
|
+
wstg: "WSTG-INPV-01" # WSTG test scenario ID
|
|
245
|
+
cheatsheet: "Cross_Site_Scripting_Prevention_Cheat_Sheet" # Remediation source
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### 4.3 Confidence Assessment
|
|
249
|
+
|
|
250
|
+
| Confidence | Criteria |
|
|
251
|
+
|------------|----------|
|
|
252
|
+
| **Confirmed** | Vulnerable pattern directly observed in code with exploitable context |
|
|
253
|
+
| **Likely** | Pattern matches known vulnerability, context strongly suggests exploitability |
|
|
254
|
+
| **Possible** | Suspicious pattern found, but exploitability depends on runtime context or configuration |
|
|
255
|
+
|
|
256
|
+
## Phase 5: Remediation Mapping
|
|
257
|
+
|
|
258
|
+
Each finding is paired with remediation guidance from the CheatSheet Series (→ remediation_patterns.md):
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
1. Identify the vulnerability category
|
|
262
|
+
2. Look up the corresponding CheatSheet
|
|
263
|
+
3. Extract the specific fix pattern applicable to the finding's language/framework
|
|
264
|
+
4. Include code-level fix example where possible
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## Phase 6: Report Generation
|
|
268
|
+
|
|
269
|
+
The final Markdown report follows the structure in report_format.md:
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
1. Compile executive summary with statistics
|
|
273
|
+
2. Build findings table sorted by severity
|
|
274
|
+
3. Write per-domain detailed sections
|
|
275
|
+
4. Generate remediation roadmap (Critical → High → Medium → Low)
|
|
276
|
+
5. Document audit metadata (scope, limitations, methodology)
|
|
277
|
+
```
|