@sikkuumiii/defuse 0.0.0-stage → 0.5.0
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/LICENSE +235 -0
- package/README.md +561 -2
- package/dist/src/cli.d.ts +20 -0
- package/dist/src/cli.js +619 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/core/analyze.d.ts +178 -0
- package/dist/src/core/analyze.js +834 -0
- package/dist/src/core/analyze.js.map +1 -0
- package/dist/src/core/coverage.d.ts +87 -0
- package/dist/src/core/coverage.js +181 -0
- package/dist/src/core/coverage.js.map +1 -0
- package/dist/src/core/finding.d.ts +196 -0
- package/dist/src/core/finding.js +178 -0
- package/dist/src/core/finding.js.map +1 -0
- package/dist/src/core/licence.d.ts +50 -0
- package/dist/src/core/licence.js +56 -0
- package/dist/src/core/licence.js.map +1 -0
- package/dist/src/core/paths.d.ts +21 -0
- package/dist/src/core/paths.js +58 -0
- package/dist/src/core/paths.js.map +1 -0
- package/dist/src/core/score.d.ts +137 -0
- package/dist/src/core/score.js +232 -0
- package/dist/src/core/score.js.map +1 -0
- package/dist/src/dast/targets.d.ts +30 -0
- package/dist/src/dast/targets.js +79 -0
- package/dist/src/dast/targets.js.map +1 -0
- package/dist/src/dast/zap.d.ts +42 -0
- package/dist/src/dast/zap.js +184 -0
- package/dist/src/dast/zap.js.map +1 -0
- package/dist/src/engine/scan.d.ts +80 -0
- package/dist/src/engine/scan.js +129 -0
- package/dist/src/engine/scan.js.map +1 -0
- package/dist/src/engine/shapes.d.ts +47 -0
- package/dist/src/engine/shapes.js +328 -0
- package/dist/src/engine/shapes.js.map +1 -0
- package/dist/src/engine/walk.d.ts +60 -0
- package/dist/src/engine/walk.js +156 -0
- package/dist/src/engine/walk.js.map +1 -0
- package/dist/src/parse/astDump.d.ts +31 -0
- package/dist/src/parse/astDump.js +66 -0
- package/dist/src/parse/astDump.js.map +1 -0
- package/dist/src/parse/languages.d.ts +70 -0
- package/dist/src/parse/languages.js +174 -0
- package/dist/src/parse/languages.js.map +1 -0
- package/dist/src/parse/location.d.ts +17 -0
- package/dist/src/parse/location.js +38 -0
- package/dist/src/parse/location.js.map +1 -0
- package/dist/src/parse/node-grammars.d.ts +12 -0
- package/dist/src/parse/node-grammars.js +35 -0
- package/dist/src/parse/node-grammars.js.map +1 -0
- package/dist/src/parse/parser.d.ts +126 -0
- package/dist/src/parse/parser.js +202 -0
- package/dist/src/parse/parser.js.map +1 -0
- package/dist/src/parse/tree-store.d.ts +139 -0
- package/dist/src/parse/tree-store.js +236 -0
- package/dist/src/parse/tree-store.js.map +1 -0
- package/dist/src/platform/dependency-rule.d.ts +27 -0
- package/dist/src/platform/dependency-rule.js +21 -0
- package/dist/src/platform/dependency-rule.js.map +1 -0
- package/dist/src/platform/deps.d.ts +86 -0
- package/dist/src/platform/deps.js +304 -0
- package/dist/src/platform/deps.js.map +1 -0
- package/dist/src/platform/php-facts.d.ts +49 -0
- package/dist/src/platform/php-facts.js +67 -0
- package/dist/src/platform/php-facts.js.map +1 -0
- package/dist/src/platform/runtime-version.d.ts +78 -0
- package/dist/src/platform/runtime-version.js +573 -0
- package/dist/src/platform/runtime-version.js.map +1 -0
- package/dist/src/report/colors.d.ts +50 -0
- package/dist/src/report/colors.js +97 -0
- package/dist/src/report/colors.js.map +1 -0
- package/dist/src/report/coverage-table.d.ts +90 -0
- package/dist/src/report/coverage-table.js +291 -0
- package/dist/src/report/coverage-table.js.map +1 -0
- package/dist/src/report/html-report.d.ts +66 -0
- package/dist/src/report/html-report.js +489 -0
- package/dist/src/report/html-report.js.map +1 -0
- package/dist/src/report/human.d.ts +44 -0
- package/dist/src/report/human.js +575 -0
- package/dist/src/report/human.js.map +1 -0
- package/dist/src/report/json.d.ts +24 -0
- package/dist/src/report/json.js +178 -0
- package/dist/src/report/json.js.map +1 -0
- package/dist/src/report/mark.d.ts +17 -0
- package/dist/src/report/mark.js +39 -0
- package/dist/src/report/mark.js.map +1 -0
- package/dist/src/report/pricing.d.ts +33 -0
- package/dist/src/report/pricing.js +343 -0
- package/dist/src/report/pricing.js.map +1 -0
- package/dist/src/report/sarif.d.ts +39 -0
- package/dist/src/report/sarif.js +219 -0
- package/dist/src/report/sarif.js.map +1 -0
- package/dist/src/report/site.d.ts +87 -0
- package/dist/src/report/site.js +742 -0
- package/dist/src/report/site.js.map +1 -0
- package/dist/src/rules/code-injection.d.ts +47 -0
- package/dist/src/rules/code-injection.js +326 -0
- package/dist/src/rules/code-injection.js.map +1 -0
- package/dist/src/rules/command-injection.d.ts +30 -0
- package/dist/src/rules/command-injection.js +286 -0
- package/dist/src/rules/command-injection.js.map +1 -0
- package/dist/src/rules/contract.d.ts +198 -0
- package/dist/src/rules/contract.js +39 -0
- package/dist/src/rules/contract.js.map +1 -0
- package/dist/src/rules/format-string.d.ts +46 -0
- package/dist/src/rules/format-string.js +146 -0
- package/dist/src/rules/format-string.js.map +1 -0
- package/dist/src/rules/hardcoded-secret.d.ts +38 -0
- package/dist/src/rules/hardcoded-secret.js +440 -0
- package/dist/src/rules/hardcoded-secret.js.map +1 -0
- package/dist/src/rules/lib/guards.d.ts +168 -0
- package/dist/src/rules/lib/guards.js +1179 -0
- package/dist/src/rules/lib/guards.js.map +1 -0
- package/dist/src/rules/lib/html-safety.d.ts +75 -0
- package/dist/src/rules/lib/html-safety.js +755 -0
- package/dist/src/rules/lib/html-safety.js.map +1 -0
- package/dist/src/rules/lib/local-build.d.ts +59 -0
- package/dist/src/rules/lib/local-build.js +320 -0
- package/dist/src/rules/lib/local-build.js.map +1 -0
- package/dist/src/rules/lib/strings.d.ts +208 -0
- package/dist/src/rules/lib/strings.js +1970 -0
- package/dist/src/rules/lib/strings.js.map +1 -0
- package/dist/src/rules/path-traversal.d.ts +33 -0
- package/dist/src/rules/path-traversal.js +96 -0
- package/dist/src/rules/path-traversal.js.map +1 -0
- package/dist/src/rules/registry.d.ts +19 -0
- package/dist/src/rules/registry.js +77 -0
- package/dist/src/rules/registry.js.map +1 -0
- package/dist/src/rules/sql-injection.d.ts +36 -0
- package/dist/src/rules/sql-injection.js +299 -0
- package/dist/src/rules/sql-injection.js.map +1 -0
- package/dist/src/rules/ssrf.d.ts +39 -0
- package/dist/src/rules/ssrf.js +111 -0
- package/dist/src/rules/ssrf.js.map +1 -0
- package/dist/src/rules/unbounded-copy.d.ts +37 -0
- package/dist/src/rules/unbounded-copy.js +147 -0
- package/dist/src/rules/unbounded-copy.js.map +1 -0
- package/dist/src/rules/unsafe-deserialization.d.ts +43 -0
- package/dist/src/rules/unsafe-deserialization.js +276 -0
- package/dist/src/rules/unsafe-deserialization.js.map +1 -0
- package/dist/src/rules/weak-hash.d.ts +37 -0
- package/dist/src/rules/weak-hash.js +197 -0
- package/dist/src/rules/weak-hash.js.map +1 -0
- package/dist/src/rules/xss.d.ts +38 -0
- package/dist/src/rules/xss.js +527 -0
- package/dist/src/rules/xss.js.map +1 -0
- package/dist/src/taint/content-type.d.ts +19 -0
- package/dist/src/taint/content-type.js +20 -0
- package/dist/src/taint/content-type.js.map +1 -0
- package/dist/src/taint/dictionaries.d.ts +23 -0
- package/dist/src/taint/dictionaries.js +1778 -0
- package/dist/src/taint/dictionaries.js.map +1 -0
- package/dist/src/taint/fold.d.ts +59 -0
- package/dist/src/taint/fold.js +1177 -0
- package/dist/src/taint/fold.js.map +1 -0
- package/dist/src/taint/java-scope.d.ts +61 -0
- package/dist/src/taint/java-scope.js +212 -0
- package/dist/src/taint/java-scope.js.map +1 -0
- package/dist/src/taint/local-map.d.ts +79 -0
- package/dist/src/taint/local-map.js +603 -0
- package/dist/src/taint/local-map.js.map +1 -0
- package/dist/src/taint/project.d.ts +172 -0
- package/dist/src/taint/project.js +617 -0
- package/dist/src/taint/project.js.map +1 -0
- package/dist/src/taint/tracer.d.ts +265 -0
- package/dist/src/taint/tracer.js +3817 -0
- package/dist/src/taint/tracer.js.map +1 -0
- package/dist/src/taint/types.d.ts +484 -0
- package/dist/src/taint/types.js +47 -0
- package/dist/src/taint/types.js.map +1 -0
- package/dist/src/taint/visibility.d.ts +25 -0
- package/dist/src/taint/visibility.js +96 -0
- package/dist/src/taint/visibility.js.map +1 -0
- package/docs/examples/defuse.json +20 -0
- package/docs/examples/dvwa-urls.json +14 -0
- package/docs/examples/github-code-scanning.yml +54 -0
- package/docs/examples/tiny.js +4 -0
- package/package.json +73 -4
- package/src/cli.ts +747 -0
- package/src/core/analyze.ts +1072 -0
- package/src/core/coverage.ts +269 -0
- package/src/core/finding.ts +311 -0
- package/src/core/licence.ts +61 -0
- package/src/core/paths.ts +59 -0
- package/src/core/score.ts +353 -0
- package/src/dast/targets.ts +121 -0
- package/src/dast/zap.ts +246 -0
- package/src/engine/scan.ts +200 -0
- package/src/engine/shapes.ts +348 -0
- package/src/engine/walk.ts +196 -0
- package/src/parse/astDump.ts +85 -0
- package/src/parse/languages.ts +232 -0
- package/src/parse/location.ts +44 -0
- package/src/parse/node-grammars.ts +41 -0
- package/src/parse/parser.ts +262 -0
- package/src/parse/tree-store.ts +301 -0
- package/src/platform/dependency-rule.ts +33 -0
- package/src/platform/deps.ts +374 -0
- package/src/platform/php-facts.ts +85 -0
- package/src/platform/runtime-version.ts +710 -0
- package/src/report/colors.ts +107 -0
- package/src/report/coverage-table.ts +359 -0
- package/src/report/html-report.ts +601 -0
- package/src/report/human.ts +811 -0
- package/src/report/json.ts +189 -0
- package/src/report/mark.ts +47 -0
- package/src/report/pricing.ts +374 -0
- package/src/report/sarif.ts +235 -0
- package/src/report/site.ts +760 -0
- package/src/rules/code-injection.ts +346 -0
- package/src/rules/command-injection.ts +296 -0
- package/src/rules/contract.ts +220 -0
- package/src/rules/format-string.ts +158 -0
- package/src/rules/hardcoded-secret.ts +485 -0
- package/src/rules/lib/guards.ts +1235 -0
- package/src/rules/lib/html-safety.ts +793 -0
- package/src/rules/lib/local-build.ts +329 -0
- package/src/rules/lib/strings.ts +2034 -0
- package/src/rules/path-traversal.ts +101 -0
- package/src/rules/registry.ts +90 -0
- package/src/rules/sql-injection.ts +311 -0
- package/src/rules/ssrf.ts +118 -0
- package/src/rules/unbounded-copy.ts +162 -0
- package/src/rules/unsafe-deserialization.ts +291 -0
- package/src/rules/weak-hash.ts +226 -0
- package/src/rules/xss.ts +572 -0
- package/src/taint/content-type.ts +20 -0
- package/src/taint/dictionaries.ts +1855 -0
- package/src/taint/fold.ts +1206 -0
- package/src/taint/java-scope.ts +200 -0
- package/src/taint/local-map.ts +594 -0
- package/src/taint/project.ts +774 -0
- package/src/taint/tracer.ts +4298 -0
- package/src/taint/types.ts +511 -0
- package/src/taint/visibility.ts +100 -0
- package/tsconfig.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dictionaries.js","sourceRoot":"","sources":["../../../src/taint/dictionaries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE CONSTANT FOLDER, SHARED.
|
|
3
|
+
*
|
|
4
|
+
* This lived inside traceFile() for as long as only the tracer needed it. Then
|
|
5
|
+
* the signature rules needed it too: 65 of BenchmarkJava's remaining false
|
|
6
|
+
* positives are SQL strings built from a `bar` that a decidable condition has
|
|
7
|
+
* already set to a literal, and the SQL rule could not see that, because the
|
|
8
|
+
* only thing that knew how to decide a condition was sealed inside the tracer.
|
|
9
|
+
*
|
|
10
|
+
* The alternative was a second, smaller folder in rules/lib. This project has
|
|
11
|
+
* paid for "the same fact written twice" more than once - ASSIGNMENT_NODES below
|
|
12
|
+
* carries a scar from exactly that - so the folder moved out instead, and both
|
|
13
|
+
* callers now use the one copy. Moving it was checked with `npm run identity`,
|
|
14
|
+
* which hashes every finding and every proof step on twelve fixed targets: the
|
|
15
|
+
* move was meant to change nothing, and it had to be shown to change nothing.
|
|
16
|
+
*
|
|
17
|
+
* createFolder() returns a fresh folder per language, per file, so its caches
|
|
18
|
+
* never leak an answer from one file into another.
|
|
19
|
+
*/
|
|
20
|
+
import type { Node } from 'web-tree-sitter';
|
|
21
|
+
import type { LanguageId } from '../parse/languages.js';
|
|
22
|
+
export declare const assignmentParts: (node: Node) => {
|
|
23
|
+
target: Node;
|
|
24
|
+
value: Node;
|
|
25
|
+
} | null;
|
|
26
|
+
export declare const ASSIGNMENT_NODES: Set<string>;
|
|
27
|
+
export type Folded = number | boolean | undefined;
|
|
28
|
+
export interface Folder {
|
|
29
|
+
/** Fold an expression to a number or boolean, or undefined when it cannot be decided. */
|
|
30
|
+
readonly foldExpression: (node: Node | null, body: Node, depth: number) => Folded;
|
|
31
|
+
/** True or false when a condition is decidable, undefined when it is not. */
|
|
32
|
+
readonly conditionTruth: (node: Node | null, body: Node) => boolean | undefined;
|
|
33
|
+
/** The three parts of a ternary, whatever the grammar calls them. */
|
|
34
|
+
readonly ternaryParts: (node: Node) => {
|
|
35
|
+
condition: Node | null;
|
|
36
|
+
consequence: Node | null;
|
|
37
|
+
alternative: Node | null;
|
|
38
|
+
};
|
|
39
|
+
/** The arm of an if-statement that certainly does not run, if any. */
|
|
40
|
+
readonly deadBranchOf: (node: Node, body: Node) => Node | null;
|
|
41
|
+
/** Which cases of a switch can run, when the selector and every label fold. */
|
|
42
|
+
readonly switchDecision: (node: Node, body: Node) => SwitchDecision | null;
|
|
43
|
+
/** Whether a name receives any write that is not a plain `name = value`. */
|
|
44
|
+
readonly writtenOtherwise: (name: string, body: Node) => boolean;
|
|
45
|
+
/** How many plain writes a name receives in a function, nested functions included. */
|
|
46
|
+
readonly plainWriteCount: (name: string, body: Node) => number;
|
|
47
|
+
}
|
|
48
|
+
export declare function createFolder(language: LanguageId): Folder;
|
|
49
|
+
/** What a decided switch tells the tracer and the constant proof. */
|
|
50
|
+
export interface SwitchDecision {
|
|
51
|
+
/** Case groups that cannot run. */
|
|
52
|
+
readonly dead: readonly Node[];
|
|
53
|
+
/** Whether a node inside the switch runs every time the switch does. */
|
|
54
|
+
readonly certain: (node: Node) => boolean;
|
|
55
|
+
/** A sentence for a receipt. */
|
|
56
|
+
readonly note: string;
|
|
57
|
+
}
|
|
58
|
+
/** Every switch node type, in every grammar here - decided or not. */
|
|
59
|
+
export declare const SWITCH_NODES: Set<string>;
|